Changes between Version 212 and Version 213 of KDEProblems/KDEMacPortsCI/Status
- Timestamp:
- Sep 5, 2014, 10:58:10 PM (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
KDEProblems/KDEMacPortsCI/Status
v212 v213 2 2 = Current status of setting up the CI system = 3 3 4 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 ports from MacPorts. 5 6 4 This page shall describe what has to be done to get a KDE/CI system up and running on an OSX host. 5 Partially this is achieved by using quite a few ports from MacPorts. 6 7 8 == Preparing the OSX host system == 7 9 8 == Start with a fresh Mavericks/MacPorts install == 10 11 === Start with a fresh Mavericks/MacPorts install === 9 12 10 13 Currently using the official MacPorts version 2.3.1 is recommended. To be on the safe side make sure your disk has about 60G space in total. … … 20 23 21 24 22 == Getting a MacPorts-compatible bash environment==25 === Getting a MacPorts-compatible bash environment === 23 26 24 27 Install ports for MacPorts' bash … … 30 33 31 34 32 == Apple developer tools==35 === Apple developer tools === 33 36 34 37 Install … … 41 44 42 45 43 == Tools already present on OSX==46 === Tools already present on OSX === 44 47 45 48 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. … … 48 51 49 52 50 == Some more software supplied by MacPorts==53 === Some more software supplied by MacPorts === 51 54 52 55 Install ports needed for the CI scripts as well as KF5: … … 61 64 62 65 63 == Basic setup of CI system == 66 == Setting up the CI system itself == 67 68 69 70 === Basic setup of CI system === 64 71 65 72 In order to start building up a build slave for KDE's Jenkins-based CI system it is in principle needed to clone [http://quickgit.kde.org/?p=websites%2Fbuild-kde-org.git websites/build-kde-org], BUT further down it will become clear, that it is a good idea to track all changes to be made for websites/build-kde-org in a dedicated branch. … … 83 90 84 91 85 == 1st step: Qt5 build == 86 87 88 === Prepare environment for Qt5 build === 92 93 === SSH setup === 94 95 96 Set up SSH for rsync access to build host: 97 {{{ 98 $ cat ~/.ssh/config 99 Host build.kde.org 100 Port 2022 101 $ ssh-keygen -C YOUR@EMAIL.ADDRESS # <-- send your public SSH key to Ben Cooksley in order to get access to the build server 102 }}} 103 104 105 106 107 === Helper bash scripts === 108 109 KDE's Jenkins-based CI system mainly makes use of these two python scripts: 110 {{{ 111 tools/prepare-environment.py 112 tools/perform-build.py 113 }}} 114 115 For qt5 they've further down been used in order to show the workflow. But in daily use it is more practical to consider some helper bash scripts which ease all actions needed to run project builds on an OSX/CI system for which there's not yet the Jenkins integration available. 116 117 The various projects on the CI system have to be handled by replacing "PROJECT" with the project name of the corresponding framework or application: 118 {{{ 119 $ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT 120 ... 121 $ (cd ~/WC/KDECI-builds/PROJECT; git checkout jenkins) 122 ... 123 $ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT 124 ... 125 }}} 126 or alternatively by using [http://quickgit.kde.org/?p=clones%2Fwebsites%2Fbuild-kde-org%2Fkaning%2Fmp-osx-ci.git&a=tree&hb=f19d176025af233c22ac2e7170a8ff7e109289e7 helper bash scripts in ~/scripts/ present in the mp-osx-ci branch of the mp-osx-ci repository] 127 {{{ 128 $ ./prepare.sh PROJECT 129 ... 130 $ ./build.sh PROJECT 131 ... 132 }}} 133 where {{{prepare.sh}}} takes care of creating the build directory if it is not yet existing as well as checks out the branch 'jenkins'. Alternatively one can combine these steps using: 134 {{{ 135 $ ./install.sh PROJECT [rebuild] 136 }}} 137 The {{{'rebuild'}}} option can be used to trigger calling {{{build.sh}}} even if {{{prepare.sh}}} didn't signal any changes in the remote project repository. 138 139 140 141 142 === 1st step: Qt5 build === 143 144 145 ==== Prepare environment for Qt5 build ==== 89 146 90 147 Install additional ports specific for Qt5 as well as KF5, set correct path to KDE-install directory in config/build/darwin-mavericks.cfg (note, some of the to-be-installed ports got already installed further up as dependencies for other tools, they're listed here to make the dependency on them explicit): … … 110 167 111 168 112 === Set up build environment for Qt5===169 ==== Set up build environment for Qt5 ==== 113 170 114 171 It is '''required''' to build the debug version. Also make sure that all libs can be found by adding search paths, use "-dbus-linked" to make the [https://bugs.kde.org/show_bug.cgi?id=337140#c22 session bus work] and avoid inclusion of MacPorts' glib2: … … 124 181 }}} 125 182 126 Set up SSH for rsync access to build host, then start building Qt5: 127 {{{ 128 $ cat ~/.ssh/config 129 Host build.kde.org 130 Port 2022 131 $ ssh-keygen -C YOUR@EMAIL.ADDRESS # <-- send your public SSH key to Ben Cooksley in order to get access to the build server 183 Start the qt5-build 184 {{{ 132 185 $ python2.7 tools/perform-build.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/qt5 133 186 ... … … 142 195 143 196 144 == Helper bash scripts == 145 146 KDE's Jenkins-based CI system mainly makes use of these two python scripts: 147 {{{ 148 tools/prepare-environment.py 149 tools/perform-build.py 150 }}} 151 152 For qt5 they've above been used in order to show the workflow. But in daily use it is more practical to consider some helper bash scripts which ease all actions needed to run project builds on an OSX/CI system for which there's not yet the Jenkins integration available. 153 154 The various projects on the CI system have to be handled by replacing "PROJECT" with the project name of the corresponding framework or application: 155 {{{ 156 $ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT 157 ... 158 $ (cd ~/WC/KDECI-builds/PROJECT; git checkout jenkins) 159 ... 160 $ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT 161 ... 162 }}} 163 or alternatively by using [http://quickgit.kde.org/?p=clones%2Fwebsites%2Fbuild-kde-org%2Fkaning%2Fmp-osx-ci.git&a=tree&hb=f19d176025af233c22ac2e7170a8ff7e109289e7 helper bash scripts in ~/scripts/ present in the mp-osx-ci branch of the mp-osx-ci repository] 164 {{{ 165 $ ./prepare.sh PROJECT 166 ... 167 $ ./build.sh PROJECT 168 ... 169 }}} 170 where {{{prepare.sh}}} takes care of creating the build directory if it is not yet existing as well as checks out the branch 'jenkins'. Alternatively one can combine these steps using: 171 {{{ 172 $ ./install.sh PROJECT [rebuild] 173 }}} 174 The {{{'rebuild'}}} option can be used to trigger calling {{{build.sh}}} even if {{{prepare.sh}}} didn't signal any changes in the remote project repository. 175 176 177 == Installation of cmake == 178 179 Cmake needs a '''manual''' checkout of its sources (which is demonstrated here the explicit way again): 197 === Installation of cmake === 198 199 CMake needs a '''manual''' checkout of its sources (which is demonstrated here the explicit way again): 180 200 {{{ 181 201 $ python2.7 tools/prepare-environment.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/cmake … … 193 213 194 214 195 == Setting up the build environment==215 === Setting up the build environment === 196 216 197 217 The branch 'mp-osx-ci' contains all required configuration settings for OSX. The most important shall be pointed out [wiki:/KDEProblems/KDEMacPortsCI/Status/Diff_mp-osx-ci here]: … … 214 234 215 235 216 == Installation of other projects and KDE frameworks ==236 == Installation of KF5 frameworks and other projects == 217 237 218 238 Specific frameworks can be installed using {{{install.sh}}} , but one can also build all frameworks of a specific tier as a whole using … … 241 261 242 262 243 == Troubleshooting for projects' dependencies==263 === Troubleshooting for projects' dependencies === 244 264 245 265 [http://quickgit.kde.org/?p=kde-build-metadata.git Dependency data for the CI system] is being downloaded by ~/scripts/update-setup.sh to ~/scripts/dependencies/. … … 251 271 252 272 253 == Notes concerning some files installed by the frameworks==273 === Notes concerning some files installed by the frameworks === 254 274 255 275 All notes regarding the placement of certain files (apps, config, data, etc.) have been moved aside to a [wiki:/KDEProblems/KDEMacPortsCI/Status/FileLocations dedicated page] as the patching of Qt5's QStandardPaths is still work in progress. … … 259 279 260 280 261 == KF5 software beyond the basic frameworks==281 === KF5 software beyond the basic frameworks === 262 282 263 283 Since the basic set of frameworks is now ready for use on OSX one can go ahead and start building other software depending on KF5.