wiki:KDEProblems/KDEMacPortsCI/Status

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

transfer content from https://trac.macports.org/wiki/KDEProblems/KDEMacPortsCI

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

This is what has to be done to get a KDE/CI system up and running on OSX (partially by also using MacPorts):

A) Start with fresh Mavericks install and make sure your disk has at least 20G free space left

B) Install MacPorts 2.2.1 using the official PKG

C) Install ports for bash use:

$ sudo port install bash bash-completion

D) Set up bash environment for MacPorts use regarding search paths (PATH, MANPATH)

E) Install Xcode from AppStore (and agree actively to the developer license agreement)

F) Install developer command line tools and install some of MacPorts' ports needed for later

$ xcode-select --install
$ sudo port install py27-lxml bazaar mercurial wget automake autoconf

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

G) Since 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

H) Create some folders, clone and update KDE's 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.

I) Prepare environment for Qt5 build (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
...
$

J) Set up build environment:

$ 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

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

K) Include MySQL's binary path into PATH (assuming /opt/local as MacPort's prefix):

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

L) 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
...

M) Proceed with installation of cmake (needs manual checkout of 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
...

N) Installation of KDE frameworks, starting with kauth:

N.1) Framework kauth:

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

N.2) Framework polkit-qt-1 (still fails due to inability to find package Polkit):

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