Version 186 (modified by mkae (Marko Käning), 10 years ago) (diff) |
---|
-
Current status of setting up the CI system
- Start with a fresh Mavericks/MacPorts install
- Getting a MacPorts-compatible bash environment
- Apple developer tools
- Tools already present on OSX
- Some more software supplied by MacPorts
- Basic setup of CI system
- 1st step: Qt5 build
- Helper bash scripts
- Installation of cmake
- Setting up the build environment
- Installation of other projects and KDE frameworks
- Troubleshooting for projects' dependencies
- Notes concerning some files installed by the frameworks
- kdesupport-svn - a prerequisite for further projects
- KF5 software beyond the basic frameworks
Current status of setting up the CI system
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.
Start with a fresh Mavericks/MacPorts install
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.
However, currently a Mavericks 10.9.4 KDE/CI system on an i7-iMac uses something like this:
$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/disk0s2 64G 40G 25G 62% /
that is after all frameworks have been built and installed as shown further down.
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 as well as KF5:
$ # Ports for CI: $ sudo port install gnutar py27-lxml bazaar mercurial wget automake autoconf cppcheck lcov $ $ # Ports for KF5: $ sudo port install shared-mime-info docbook-xml docbook-xsl giflib boost
Basic setup of CI system
In order to start building up a build slave for KDE's Jenkins-based CI system it is in principle needed to clone 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. That is why the dedicated repository clone "mp-osx-ci" has been introduced which has the branch 'mp-osx-ci' containing all changes needed for a CI system on OSX.
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/clones/websites/build-kde-org/kaning/mp-osx-ci.git $ cd build-kde-org $ git checkout mp-osx-ci $ ./update-setup.sh # Ignore 404 occurring due to error cloning ECMA262 by hg
The update shell script created a folder ~/scripts
in which all subsequent commands will have to be executed.
(BTW, if you were checking out the original repository from git://anongit.kde.org/websites/build-kde-org you'd have to check out the "production" branch.)
Note: All configuration settings listed below should already be present in the configuration set up in branch 'mp-osx-ci'.
1st step: Qt5 build
Prepare environment for Qt5 build
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):
$ sudo port install zlib openssl dbus jpeg tiff libmng libpng mysql55 pkgconfig sqlite2 icu pcre libiconv $ 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 ... $
BTW, it could be important to also install freetype for Qt5, but it hasn't been clarified yet whether it should be there or not.
Set up build environment for Qt5
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 session bus work and avoid inclusion of MacPorts' glib2:
$ cd ~/scripts; cat config/build/qt5/darwin-mavericks.cfg [Build] configureCommand=%(configureExecutable)s -debug -separate-debug-info -system-zlib -system-libpng -system-libjpeg -system-sqlite -dbus-linked -plugin-sql-mysql -nomake examples -confirm-license -opensource -prefix {instPrefix} -no-framework -v -I/opt/local/include -L/opt/local/lib -no-glib
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 ...
A very important issue for Qt5 and KF5 is that QStandardPaths gets set appropriately for OSX in general and especially for the OSX/CI system, as this installs all frameworks and apps into separate install roots. To enable Qt5/KF5 apps to find the correct locations for files (for configuration, read-only data, writeable data, etc.) it is necessary to patch QStandardPaths. This is done as a temporary hack in
~/scripts/patches/qt5/kf5-qt5/patch-qstandardpaths_mac.cpp.diff
and still required more work. The patch enables kdoctools and kdelibs4support to locate their files successfully (which had up to now to be handled using an even nastier workaround), but apart from that there are still problems with config files. In short: this is still work in progress...
Helper bash scripts
KDE's Jenkins-based CI system mainly makes use of these two python scripts:
tools/prepare-environment.py tools/perform-build.py
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.
The various projects on the CI system have to be handled by replacing "PROJECT" with the project name of the corresponding framework or application:
$ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/PROJECT ... $ (cd ~/WC/KDECI-build/PROJECT; git checkout jenkins) ... $ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-build/PROJECT ...
or alternatively by using helper bash scripts from our MacPorts/KDE git repository
$ ./prepare.sh PROJECT ... $ ./build.sh PROJECT ...
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:
$ ./install.sh PROJECT
Installation of cmake
Cmake needs a manual checkout of its sources (which is demonstrated here the explicit way again):
$ 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 ... $ $ # Alternatively you can simply use this script (which does all of the above for you): $ ./install.sh cmake
Important note: Currently it seems to be necessary to NOT to install the latest git version on OSX, as this causes build problems for framework kcoreaddons later on. The version 3.0.x from June 3rd (0ee116b7eb1e65d7e7ae6c13628c57eec038b53d) is working fine so far. To achieve this DO NOT use install.sh, but do the following:
$ ./prepare.sh cmake $ cd ~/WC/KDE-builds/cmake $ git checkout 0ee116b7eb1e65d7e7ae6c13628c57eec038b53d $ cd ~/scripts $ ./build.sh cmake
Setting up the build environment
The branch 'mp-osx-ci' contains all required configuration settings for OSX. The most important shall be pointed out here:
- For KF5 on OSX one has to modify the configuration settings by commenting out the kauth dependency on polkit-qt-1, since that dependency is only needed on Linux.
- Problems appeared for some frameworks since kconfig_compiler_kf5.app doesn't yet get installed on OSX (the build scripts error out with "/Applications/KDE/kconfig_compiler_kf5.app/Contents/MacOS/kconfig_compiler_kf5 as location is wrong"). This can be fixed for now introducing a temporary configuration file for kconfig which sets CMAKE_INSTALL_BUNDLEDIR to make sure that the application bundle gets installed below PREFIX/lib/libexec/.
- CMAKE_INSTALL_BUNDLEDIR and DATA_INSTALL_DIR need to be set for OSX-like directories.
- Disable searching for X11 by setting CMAKE_DISABLE_FIND_PACKAGE_X11=ON.
- Disable running tests for now, until dbus works as expected and test applications can be started normally.
- DYLD_LIBRARY_PATH has only temporally been added due to wrong linking of phonon (e.g. for kate and kwrite).
- Disable coverage for plasma-framework for now until a coverage tool for clang is integrated.
$ git diff production config diff --git a/config/base/kf5-qt5 b/config/base/kf5-qt5 index 2260aa6..573bc24 100644 --- a/config/base/kf5-qt5 +++ b/config/base/kf5-qt5 @@ -20,7 +20,7 @@ general/vc: -qt5 general/shared-desktop-ontologies: -qt5 # KDE Frameworks -frameworks/kauth: kdesupport/polkit-qt-1 +#frameworks/kauth: kdesupport/polkit-qt-1 kde/*: general/kdesupport-svn kde/workspace/plasma-workspace: general/libdbusmenu-qt diff --git a/config/build/darwin-mavericks.cfg b/config/build/darwin-mavericks.cfg index cb62c49..64f14f6 100644 --- a/config/build/darwin-mavericks.cfg +++ b/config/build/darwin-mavericks.cfg @@ -1,7 +1,9 @@ [DEFAULT] +scriptsLocation=/Users/kdeci/scripts opSys=darwin architecture=mavericks compiler=clang +configurePlatformArgs=-DCMAKE_INSTALL_BUNDLEDIR="Applications/KF5" -DDATA_INSTALL_DIR="Library/Application Support" -DCMAKE_DISABLE_FIND_PACKAGE_X11=ON [General] -installPrefix=/opt/kde/install/%(opSys)s/%(architecture)s/%(compiler)s/ \ No newline at end of file +installPrefix=/opt/kde/install/%(opSys)s/%(architecture)s/%(compiler)s/ diff --git a/config/build/global.cfg b/config/build/global.cfg index 4052215..9dbe1e1 100644 --- a/config/build/global.cfg +++ b/config/build/global.cfg @@ -55,7 +55,7 @@ updateMimeDatabaseCommand=%(updateMimeDatabaseExecutable)s share/mime deployInstallation=True [Test] -testsEnabled=True +testsEnabled=False ctestCountTestsCommand=%(ctestExecutable)s -N xvfbDisplayName=:99 xvfbCommand=%(xvfbExecutable)s %(xvfbDisplayName)s -ac -screen 0 1600x1200x24+32 diff --git a/config/build/kconfig/darwin-mavericks.cfg b/config/build/kconfig/darwin-mavericks.cfg new file mode 100644 index 0000000..28e02d7 --- /dev/null +++ b/config/build/kconfig/darwin-mavericks.cfg @@ -0,0 +1,2 @@ +[DEFAULT] +configureExtraArgs=-DCMAKE_INSTALL_BUNDLEDIR="lib/libexec/kf5" diff --git a/config/build/kconfigwidgets/darwin-mavericks.cfg b/config/build/kconfigwidgets/darwin-mavericks.cfg new file mode 100644 index 0000000..e44ae1c --- /dev/null +++ b/config/build/kconfigwidgets/darwin-mavericks.cfg @@ -0,0 +1,2 @@ +[DEFAULT] +configureExtraArgs=-DDATA_INSTALL_DIR="{instPrefix}/Library/Application Support" diff --git a/config/build/plasma-framework/darwin-mavericks.cfg b/config/build/plasma-framework/darwin-mavericks.cfg new file mode 100644 index 0000000..3d76592 --- /dev/null +++ b/config/build/plasma-framework/darwin-mavericks.cfg @@ -0,0 +1,5 @@ +[DEFAULT] +configureExtraArgs= + +[QualityCheck] +runCppcheck=True
Installation of other projects and KDE frameworks
Specific frameworks can be installed using install.sh
, but one can also build all frameworks of a specific tier as a whole using
$ # This builds all frameworks of tier 1 $ ./tier-install.sh 1 ... $ # This builds all frameworks of tier 2, but forces rebuilding every project regardless of $ # whether git pulled in changes or not (useful when e.g. qt5 or cmake was updated) $ ./tier-install.sh 2 rebuild ...
All frameworks of all tiers can be build easily using
$ ./all-tiers-install.sh
which will iterate trough tiers 0 up to 5, with tiers 0 and 5 being just "virtual" tiers - which were introduced to more easily build some projects.
KF5 builds have been successfully done so far for these projects:
Additional dependencies (referred to as "Tier 0"): - extra-cmake-modules - phonon Tier 1 frameworks (COMPLETE): - attica - kapidox - karchive - kcodecs - kconfig - kcoreaddons - kdbusaddons - kdnssd - { kglobalaccel } - kguiaddons - ki18n - kidletime - kimageformats - kitemmodels - kitemviews - kplotting - kwidgetsaddons - { kwindowsystem } - solid - sonnet - threadweaver Tier 2 frameworks (COMPLETE): - kauth - kcompletion - { kcrash } - kdoctools - kjobwidgets - { kpty } - kunitconversion Tier 3 frameworks incl. phonon (ALMOST COMPLETE): [ATTENTION: the build order matters here] - kconfigwidgets - kservice - kiconthemes - ktextwidgets - kxmlgui - kcmutils - kbookmarks - { kdesu } - kemoticons - knotifications - kwallet - kio - kdeclarative - kactivities - kparts - kdewebkit - kinit - kmediaplayer - knewstuff - knotifyconfig - ktexteditor - kdesignerplugin - kded - plasma-framework Tier 4: - frameworkintegration Porting aids: - kjs - kdelibs4support - kjsembed - khtml - kross - krunner Meta-project including tiers 1-4 + porting aids: - kf5umbrella
Curly brackets in the above lists mark frameworks marked on KDE's official API page as having problems on MacOSX, since plasma won't be running for now.
Having the very compact Gentoo's Project:KDE/Frameworks wiki page around turned out to be very helpful while building the above KDE frameworks manually. More info is found on KDE's official API page and the above lists have been aligned with it: nice dependency graphs for every framework can be found there by clicking the "Dependencies" link on each frameworks page, some more (overview) graphs are here.
As of July 5th 2014 all KF5 frameworks build successfully.
Troubleshooting for projects' dependencies
Dependency data for the CI system is being downloaded by ~/scripts/update-setup.sh to ~/scripts/dependencies/. This folder contains files defining the dependencies (see subsections below) as well as some tools.
Sometimes it might be needed to add a new entry to the KF5-specific (logical) dependency data in case a project cannot find a required framework, although it is already available on the CI system! Take care that many dependencies get defined already globally.
Dependency data
Relevant for KF5 is the file
dependency-data-kf5-qt5
which contains information specific for KF5 projects.
See this snippet of the kmymoney part as an example
# Extragear Office extragear/office/kmymoney: extragear/office/alkimia extragear/office/kmymoney: kde/kdepimlibs
which defines things for KF5 in general (i.e. Linux/Windows/OSX).
On OSX it is currently necessary to exclude kdepimlibs from kmymoney's dependencies in
~/scripts/config/base/kf5-qt5
by appending these lines
+# Extragear Office +# Do not depend on kdepimlibs on OSX/CI for now because of akonadi +extragear/office/kmymoney: -kde/kdepimlibs
due to a build failure for akonadi.
Logical module structure
Information about the logical module structure is stored in
logical-module-structure
might be important if some branches aren't named the usual way, like again e.g. for kmymoney and its dependencies:
"kde/kdepimlibs" : { "oldstable-qt4": "KDE/4.13", "stable-qt4": "KDE/4.14", "latest-qt4": "KDE/4.14", "kf5-qt5": "master" }, ... "extragear/office/alkimia": { "stable-qt4": "master", "latest-qt4": "master", "kf5-qt5": "frameworks" }, ... "extragear/office/kmymoney": { "stable-qt4": "master", "latest-qt4": "master", "kf5-qt5": "frameworks" },
Notes concerning some files installed by the frameworks
Installs into "/Library/Application Support"
These folders should be copied into the MacPorts/KDE-CI system's "/Library/Application Support" directory (as it was done for as a temporary work-around for kdoctools above):
$ cd ~/WC/KDECI-builds; find . -type d -wholename "./*/local-inst/opt/kde/*/Library/Application Support/*" | egrep "/kf5$" ./frameworkintegration/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/frameworkintegration/inst/Library/Application Support/kf5 ./kauth/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kauth/inst/Library/Application Support/kf5 ./kconfigwidgets/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kconfigwidgets/inst/Library/Application Support/kf5 ./kdelibs4support/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kdelibs4support/inst/Library/Application Support/kf5 ./kdesignerplugin/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kdesignerplugin/inst/Library/Application Support/kf5 ./kdoctools/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kdoctools/inst/Library/Application Support/kf5 ./khtml/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/khtml/inst/Library/Application Support/kf5 ./kio/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kio/inst/Library/Application Support/kf5 ./kjs/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kjs/inst/Library/Application Support/kf5 ./knewstuff/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/knewstuff/inst/Library/Application Support/kf5 ./kwidgetsaddons/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kwidgetsaddons/inst/Library/Application Support/kf5 ./kxmlgui/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kxmlgui/inst/Library/Application Support/kf5 ./sonnet/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/sonnet/inst/Library/Application Support/kf5
Problematic installs into "/Library/Application Support"
As an example the following folders for project ktexteditor do not reside below a kf5 sub-directory of "/Library/Application Support" which seems to indicate that there is a problem in the corresponding CMake files of that framework:
$ cd ~/WC/KDECI-builds; find . -type d -wholename "./*/local-inst/opt/kde/*/Library/Application Support/*" | grep -v "/kf5/" | egrep -v "/kf5$" ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5 ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/commands ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/files ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/files/quickcoding ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/files/quickcoding/cpp ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/indentation ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/libraries ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/script/libraries/emmet ./ktexteditor/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/ktexteditor/inst/Library/Application Support/katepart5/syntax
Formerly there was a similar issue for the khtml framework:
./khtml/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/khtml/inst/Library/Application Support/khtml
but this has been already moved to another location, due to a change of the kxmlgui framework itself.
Installs into "/Applications/KF5"
These are all application packages which might have to be copied into /Applications/KF5
on the KDE/CI system:
$ cd ~/WC/KDECI-builds; find . -type d -wholename "./*/local-inst/opt/kde/*/frameworks/*/Applications/KF5/*.app" ./kactivities/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kactivities/inst/Applications/KF5/kactivitymanagerd.app ./kded/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kded/inst/Applications/KF5/kded5.app ./kdelibs4support/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kdelibs4support/inst/Applications/KF5/kdebugdialog5.app ./kinit/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kinit/inst/Applications/KF5/kdeinit5.app ./kjsembed/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kjsembed/inst/Applications/KF5/kjscmd5.app ./kross/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kross/inst/Applications/KF5/kf5kross.app ./kwallet/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kwallet/inst/Applications/KF5/kwalletd5.app
Installs NOT into "/Applications/KF5"
These are all application packages which MIGHT NOT have to be copied into /Applications/KF5
on the KDE/CI system:
$ cd ~/WC/KDECI-builds; find . -type d -wholename "./*/local-inst/opt/kde/*/frameworks/*.app" | grep -v "Applications/KF5" ./kauth/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kauth/inst/lib/libexec/kauth/kauth-policy-gen.app ./kconfig/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kconfig/inst/lib/libexec/kf5/kconfig_compiler_kf5.app ./kinit/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kinit/inst/lib/libexec/kf5/start_kdeinit.app ./kinit/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kinit/inst/lib/libexec/kf5/start_kdeinit_wrapper.app ./kio/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kio/inst/lib/libexec/kf5/kio_http_cache_cleaner.app ./kjsembed/local-inst/opt/kde/install/darwin/mavericks/clang/kf5-qt5/frameworks/kjsembed/inst/bin/kjsconsole.app
kdesupport-svn - a prerequisite for further projects
In order to be able to build some KDE applications it is necessary to install kdesupport-svn, which is not automatically handled by the prepare script. Therefore one needs to check out its sources using Subversion and install it like this:
$ mkdir ~/WC/KDECI-builds/kdesupport-svn $ svn checkout svn://anonsvn.kde.org/home/kde/trunk/kdesupport ~/WC/KDECI-builds/kdesupport-svn $ ./build.sh kdesupport-svn
where the first part will also get included in prepare.sh
.
KF5 software beyond the basic frameworks
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. Important projects are e.g. KDevelop, KMyMoney, but also KDE-EDU applications on their route to KF5 can serve as good test cases. This is referred to as "Tier 5":
Done: - kdesupport-svn - kio-extras - kde-cli-tools - khelpcenter (%) - kate (+) - libkomparediff2 - kfilemetadata - kdevplatform - kinfocenter (%) - kdevelop (?) - okteta (o) - qca - konversation ($) - konsole ($) - akonadi - alkimia (needs port gmp installed) - kmymoney (?1) - kde-baseapps (2) KDE edu: - libkdeedu (§) - libkeduvocdocument - analitza - kalgebra (!) - step (?) - kgeography (?) - kig (?) - kanagram (x?) - parley (?) - kstars (?, needs port eigen3 installed) Planned: - artikulate (3) - kiten (4) - prison (needs ports qrencode and "libdmtx -x11" [which pulls also these in: ImageMagick djvulibre fftw-3 fontconfig freetype ghostscript jbig2dec lcms2 urw-fonts webp]) - kdepimlibs (5) - oxygen (6) Unneeded on OSX (tried just for the fun of it): - kwin (a) - libkscreen (a) - kde-runtime (a,b) - ktp-common-internals (c) - libksysguard (d) - khotkeys (e) - kmenuedit (e) - milou (f) - powerdevil (f) - baloo (g) - xapian
Legend:
(NOTE: The dbus-related crashes during startup originate from the time when qt5 was unable to connect to the session bus, which is fixed by now. That means the status regarding those crashes is currently NOT up-to-date.)
NOTE: Many applications throw the error
QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", ... )which might be due to the lack of proper search paths for Qt. This is WIP.
(+) application has to be started with "QT_GRAPHICSSYSTEM=raster"
(%) starts, but unsuccessfully tries to fire up DrKonqi, then keeps running but is not showing any content
(o) throws QDBusError("org.freedesktop.DBus.Error.ServiceUnknown", ... )
($) does not start because it can't find dbus atm, i.e. exits gracefully
(-) crashes on startup (b.k.o. issue 337140) and needs DYLD_LIBRARY_PATH set for phonon
(x) crashes for some other reason
(§) according to PovAddictW not very much useful in there anymore these days (kalgebra doesn't need it)
(!) application can actually be executed successfully
(?) starting application still untested
(1) kmymoney has some (temporally) optional frameworks
(2) needs patch regarding docbook DTD
(3) Qt5GStreamer needed
(4) branch frameworks still missing
(5) needs prison
(6) needs kwin, but according to info for gentoo this can be optional
(a) FWs require Qt5X11Extras, although it is switched off in global configuration using -DCMAKE_DISABLE_FIND_PACKAGE_X11=ON
(b) kde-runtime is not needed, since its functionality is currently getting ported into other KF5 FWs step by step
(c) ktp-common-internals requires TelepathyQt5
(d) libksysguard is broken (see also this)
(e) need libksysguard
(f) needs baloo
(g) needs xapian