| 1 | = Current status of setting up the CI system (still hanging on OSX up to now) = |
| 2 | |
| 3 | This is what has to be done to get a KDE/CI system up and running on OSX (partially by also using MacPorts): |
| 4 | |
| 5 | A) Start with fresh Mavericks install and make sure your disk has at least 20G free space left |
| 6 | |
| 7 | B) Install MacPorts 2.2.1 using the official PKG |
| 8 | |
| 9 | C) Install ports for bash use: |
| 10 | {{{ |
| 11 | $ sudo port install bash bash-completion |
| 12 | }}} |
| 13 | |
| 14 | D) Set up [https://projects.kde.org/projects/playground/sdk/macports-kde/repository/revisions/master/show/contrib/user-setup bash environment for MacPorts use] regarding search paths (PATH, MANPATH) |
| 15 | |
| 16 | E) Install Xcode from AppStore (and agree actively to the developer license agreement) |
| 17 | |
| 18 | F) Install developer command line tools and install some of MacPorts' ports needed for later |
| 19 | {{{ |
| 20 | $ xcode-select --install |
| 21 | $ sudo port install py27-lxml bazaar mercurial wget automake autoconf |
| 22 | }}} |
| 23 | Installing bazaar brings the also needed port gnutar into the system! |
| 24 | |
| 25 | 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 |
| 26 | |
| 27 | H) Create some folders, clone and update KDE's CI system (assuming a user "kdeci" with its home directory "/Users/kdeci"): |
| 28 | {{{ |
| 29 | $ cd |
| 30 | $ mkdir -p WC/KDECI-build; |
| 31 | $ cd WC |
| 32 | $ git clone git://anongit.kde.org/websites/build-kde-org |
| 33 | $ cd build-kde-org |
| 34 | $ git checkout production |
| 35 | $ ./update-setup.sh # Ignore 404 occurring due to error cloning ECMA262 by hg |
| 36 | }}} |
| 37 | The update shell script created a folder {{{~/scripts}}} in which subsequent commands will have to be executed. |
| 38 | |
| 39 | I) Prepare environment for Qt5 build (set correct path to kde install directory in config/build/darwin-mavericks.cfg): |
| 40 | {{{ |
| 41 | $ sudo port install dbus libmng libpng mysql55 pkgconfig sqlite2 tiff |
| 42 | $ sudo port uninstall cmake # Remove MacPorts' cmake (which came into the system as build-dependency for mysql55) |
| 43 | $ cd ~/scripts |
| 44 | $ cat config/build/darwin-mavericks.cfg |
| 45 | [DEFAULT] |
| 46 | scriptsLocation=/Users/kdeci/scripts |
| 47 | opSys=darwin |
| 48 | architecture=mavericks |
| 49 | compiler=clang |
| 50 | |
| 51 | [General] |
| 52 | installPrefix=/opt/kde/install/%(opSys)s/%(architecture)s/%(compiler)s/ |
| 53 | $ python2.7 tools/prepare-environment.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/qt5 |
| 54 | ... |
| 55 | $ |
| 56 | }}} |
| 57 | |
| 58 | J) Set up build environment: |
| 59 | {{{ |
| 60 | $ cd ~/scripts; cat config/build/qt5/darwin-mavericks.cfg |
| 61 | [Build] |
| 62 | 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 |
| 63 | }}} |
| 64 | Consider here the use of options "{{{-debug -separate-debug-info}}}" instead of "{{{-release}}}". |
| 65 | |
| 66 | K) Include MySQL's binary path into PATH (assuming /opt/local as MacPort's prefix): |
| 67 | {{{ |
| 68 | export PATH=/opt/local/lib/mysql55/bin:$PATH |
| 69 | }}} |
| 70 | |
| 71 | L) Set up SSH for rsync access to build host, then start building Qt5: |
| 72 | {{{ |
| 73 | $ cat ~/.ssh/config |
| 74 | Host build.kde.org |
| 75 | Port 2022 |
| 76 | $ ssh-keygen -C YOUR@EMAIL.ADDRESS # <-- send your public SSH key to Ben Cooksley in order to get access to the build server |
| 77 | $ python2.7 tools/perform-build.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/qt5 |
| 78 | ... |
| 79 | }}} |
| 80 | |
| 81 | M) Proceed with installation of cmake (needs manual checkout of sources): |
| 82 | {{{ |
| 83 | $ python2.7 tools/prepare-environment.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/cmake |
| 84 | ... |
| 85 | $ git clone git://cmake.org/cmake.git ~/WC/KDECI-build/cmake |
| 86 | $ python2.7 tools/perform-build.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/cmake |
| 87 | ... |
| 88 | }}} |
| 89 | |
| 90 | N) Installation of KDE frameworks, starting with kauth: |
| 91 | |
| 92 | N.1) Framework kauth: |
| 93 | {{{ |
| 94 | $ python2.7 tools/prepare-environment.py --project kauth --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/kauth |
| 95 | ... |
| 96 | $ python2.7 tools/perform-build.py --project kauth --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/kauth |
| 97 | ... |
| 98 | }}} |
| 99 | |
| 100 | N.2) Framework polkit-qt-1 (still fails due to inability to find package Polkit): |
| 101 | {{{ |
| 102 | $ python2.7 tools/prepare-environment.py --project polkit-qt-1 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/polkit-qt-1 |
| 103 | ... |
| 104 | $ python2.7 tools/perform-build.py --project polkit-qt-1 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/polkit-qt-1 |
| 105 | ... |
| 106 | }}} |