wiki:KDEProblems/KDEMacPortsCI/Status

Version 13 (modified by mkae (Marko Käning), 10 years ago) (diff)

update tier2

Current status of setting up the CI system (still hanging on OSX up to now)

This page shall describe what has to be done to get a KDE/CI system up and running on OSX. Partially this is achieved by using a few port from MacPorts.

Start with a fresh Mavericks/MacPorts install

Currently using the official PKG for MacPorts version 2.2.1 is recommended. To be on the safe side make sure your disk has about 60G space in total.

Getting a MacPorts-compatible bash environment

Install ports for MacPorts' bash

$ sudo port install bash bash-completion

and set up the bash environment for MacPorts use regarding search paths (PATH, MANPATH)

Apple developer tools

Install

  • Xcode from AppStore (and agree actively to the developer license agreement)
  • developer command line tools
    $ xcode-select --install
    

Tools already present on OSX

Some tools are already installed on OSX due to Xcode (like git, svn, ssh, rsync, make, clang etc.) they don't need to be installed via MacPorts for now. Should a more up-to-date version of any one of these be necessary for the CI system it could be added later.

Some more software supplied by MacPorts

Install ports needed for the CI scripts:

$ sudo port install py27-lxml bazaar mercurial wget automake autoconf cppcheck shared-mime-info

Installing bazaar brings the also needed port gnutar into the system!

Basic setup of CI system

Create some folders, clone and update CI system (assuming a user "kdeci" with its home directory "/Users/kdeci"):

$ cd
$ mkdir -p WC/KDECI-build;
$ cd WC
$ git clone git://anongit.kde.org/websites/build-kde-org
$ cd build-kde-org
$ git checkout production
$ ./update-setup.sh                    # Ignore 404 occurring due to error cloning ECMA262 by hg

The update shell script created a folder ~/scripts in which subsequent commands will have to be executed.

1st step: Qt5 build

Prepare environment for Qt5 build

Install additional ports specific for Qt5, set correct path to KDE-install directory in config/build/darwin-mavericks.cfg:

$ sudo port install dbus libmng libpng mysql55 pkgconfig sqlite2 tiff
$ sudo port uninstall cmake            # Remove MacPorts' cmake (which came into the system as build-dependency for mysql55)
$ cd ~/scripts
$ cat config/build/darwin-mavericks.cfg
[DEFAULT]
scriptsLocation=/Users/kdeci/scripts
opSys=darwin
architecture=mavericks
compiler=clang

[General]
installPrefix=/opt/kde/install/%(opSys)s/%(architecture)s/%(compiler)s/
$ python2.7 tools/prepare-environment.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/qt5
...
$

Set up build environment for Qt5

Make sure all libs can be found by adding search paths and avoid inclusion of MacPorts' glib2:

$ cd ~/scripts; cat config/build/qt5/darwin-mavericks.cfg
[Build]
configureCommand=%(configureExecutable)s -release -system-zlib -system-libpng -system-libjpeg -system-sqlite -dbus -plugin-sql-mysql -nomake examples -confirm-license -opensource -prefix {instPrefix} -no-framework -v -I/opt/local/include -L/opt/local/lib -no-glib

Consider here the use of options "-debug -separate-debug-info" instead of "-release".

Include MySQL's binary path into PATH e.g. in .macports/profile (assuming /opt/local as MacPort's prefix):

export PATH=/opt/local/lib/mysql55/bin:$PATH

Set up SSH for rsync access to build host, then start building Qt5:

$ cat ~/.ssh/config 
Host build.kde.org
   Port 2022
$ ssh-keygen -C YOUR@EMAIL.ADDRESS       # <-- send your public SSH key to Ben Cooksley in order to get access to the build server
$ python2.7 tools/perform-build.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/qt5
...

Installation of cmake

Cmake needs a manual checkout of its sources:

$ python2.7 tools/prepare-environment.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/cmake
...
$ git clone git://cmake.org/cmake.git ~/WC/KDECI-build/cmake
$ python2.7 tools/perform-build.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/cmake
...

Installation of other projects and KDE frameworks

The various frameworks have to be handled by replacing "PROJECT" with the framework's project name:

$ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/PROJECT
...
$ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/PROJECT
...

which has been successfully done so far for:

Additional cmake dependency:
 - extra-cmake-modules

Tier1 frameworks (COMPLETE):
 - attica
 - karchive
 - kcodecs
 - kconfig
 - kcoreaddons
 - kdbusaddons
 - kglobalaccel
 - kguiaddons
 - ki18n
 - kidletime
 - kimageformats
 - kitemmodels
 - kitemviews
 - kjs
 - kplotting
 - kwidgetsaddons
 - kwindowsystem
 - solid
 - sonnet
 - threadweaver

Tier2 frameworks (IN THE WORKS):
 - kcrash
 - kdnssd
 - kdoctools
 - kjobwidgets
 - kpty
 - kunitconversion

Problems currently appear for:

Tier2:
 - kauth (due to polkit-qt-1 dependency)
 - kcompletion (/Applications/KDE/kconfig_compiler_kf5.app/Contents/MacOS/kconfig_compiler_kf5 as location is wrong)

Other stuff:
 - polkit-qt-1 (still fails due to inability to find package Polkit - this is still Linux-specific and needs to be fixed for use on OSX):