%general-entities; ]> $LastChangedBy$ $Date$ Building KDE Frameworks 5 (KF5) KDE Frameworks KDE Frameworks 5 is a collection of libraries based on top of Qt5 and QML derived from the monolithic KDE 4 libraries. They can be used independent of the KDE Display Environment (Plasma 5). &lfs81_checked; The instructions below build all of the KDE Frameworks packages in one step by using a bash script. Package Information Download (HTTP): Download (FTP): Download MD5 sum: &kf5-md5sum; Download size: &kf5-size; Estimated disk space required: &kf5-buildsize; Estimated build time: &kf5-time; KF5 Dependencies Required , , , , , , , , , , , , , , , , and (required to download the packages) Recommended (Dictionary backend for Sonnet), (DNS-SD backend for KDNSSD), (built with qt5), (needed to build NetworkManager-Qt), and (Authentication backend for KAuth) Optional (needed to build Bluez-Qt), (needed to build ModemManager-Qt) Runtime dependency for FrameworkIntegration and Runtime dependencies for kapidox , Jinja2 , and PyYAML Additional image formats support in KImageFormats and OpenEXR Optional dependencies for KIO Optional dependencies for Solid , and media-player-info (runtime) Optional dependency for KWallet gpgmepp Optional dictionary backends for Sonnet Hspell and Hunspell Required dependencies for Prison Datamatrix and QRencode User Notes: Downloading KDE Frameworks The easiest way to get the KDE Frameworks packages is to use a single wget to fetch them all at once: url=http://download.kde.org/stable/frameworks/&kf5-short-version;/ wget -r -nH -nd -A '*.xz' -np $url The options used here are: -r recurse through child directories -nH disable generation of host-prefixed directories -nd do not create a hierarchy of directories -A '*.xz' just get the *.xz files -np don't get parent directories Setting Package Order The order of building files is important due to internal dependencies. Create the list of files in the proper order as follows: cat > frameworks-&kf5-version;.md5 << "EOF" 1ebbd6b7636cbc463a3d5413c2e32a73 attica-5.41.0.tar.xz #6ec01cba580d3ef21d84f7255e6a1dac extra-cmake-modules-5.41.0.tar.xz eb1a924ff44e4ca3d0c1aebadf98dd2e kapidox-5.41.0.tar.xz 4552b6cee31f42f9d6746ebbbe8d65c9 karchive-5.41.0.tar.xz b7332e685615a6d730558044faa82c37 kcodecs-5.41.0.tar.xz ca16ea0465784e8cae48fcfd383ade22 kconfig-5.41.0.tar.xz 2de35d8c776f0510ec83e8aa91706613 kcoreaddons-5.41.0.tar.xz 82b2f634646b701268f2e8ed18a1c393 kdbusaddons-5.41.0.tar.xz f3c68c3f4f635cba8bd541365968fa19 kdnssd-5.41.0.tar.xz 68ff5c6e23100fbcb8e5df810c8446dd kguiaddons-5.41.0.tar.xz d232ea154a69d7bd81ddbb4238dd14b9 ki18n-5.41.0.tar.xz 4f0b0fbecc626761a4afdef751e3945b kidletime-5.41.0.tar.xz 55ea32eabc52b698ed9732daf913481c kimageformats-5.41.0.tar.xz c16c33b4e37dd61a1b6102e4dfa4084c kitemmodels-5.41.0.tar.xz 0712c43b59fb63227bbe4649bd3069aa kitemviews-5.41.0.tar.xz cfa7e31be126bab9514367529ee388e8 kplotting-5.41.0.tar.xz 36a55709d9232754de87fce845af407e kwidgetsaddons-5.41.0.tar.xz c37711fc60fba6f59e3d12202615384b kwindowsystem-5.41.0.tar.xz 8fe93eb125b593ca324a7f9c5ffc35f2 networkmanager-qt-5.41.0.tar.xz f3903da2459a5f6b2915a9ea20791811 solid-5.41.0.tar.xz f39210f1a1d609dc5ab91b81eab7496c sonnet-5.41.0.tar.xz 08710d126dd5e9295f6d2082e1c715ba threadweaver-5.41.0.tar.xz 4e2206fb13c1f7ecfc6ff8fdba3b6755 kauth-5.41.0.tar.xz 4dfd9f0b601b3b29fda431e67749d84b kcompletion-5.41.0.tar.xz f31bdd55610016116304a7c2895267cc kcrash-5.41.0.tar.xz b3674a19a7c16bee9f020645e0ddbc55 kdoctools-5.41.0.tar.xz 5bd431ca01ea01478089b1ae9e96248f kpty-5.41.0.tar.xz 870fbc616eeddace047a97cc49709826 kunitconversion-5.41.0.tar.xz 0a9f9185b73c61ff98d866b347cb84ab kconfigwidgets-5.41.0.tar.xz ac350a079c779228290d8ad6f7d95424 kservice-5.41.0.tar.xz 4c6269c4428df1e6f590619cb4c4ff79 kglobalaccel-5.41.0.tar.xz e5bbc196ebb357071988c1a5bf660de2 kpackage-5.41.0.tar.xz 1d03482ad18b4fcf5efdc08342dad0fd kdesu-5.41.0.tar.xz ae76e8c76beb51f43bbe2adb71f9ed2e kemoticons-5.41.0.tar.xz 11d64047d571925ec70b6b2774e2f7e6 kiconthemes-5.41.0.tar.xz a933f40379454c722fcc6748d02b1fa5 kjobwidgets-5.41.0.tar.xz ebd60e338a9e7b59a555a5d3cc0d7b5a knotifications-5.41.0.tar.xz b0f13d0727924a002fb3da6ba51b9b5e ktextwidgets-5.41.0.tar.xz 280907ea04c30f4d8ccf780e01061537 kxmlgui-5.41.0.tar.xz 436243672adfe56567c732d97924adba kbookmarks-5.41.0.tar.xz 894a257850904ba73491d33f77570dba kwallet-5.41.0.tar.xz 4249f48518556c174f9475e3f33ca3e1 kio-5.41.0.tar.xz 88160137086a2b01d97bcd13d0175cc1 kdeclarative-5.41.0.tar.xz 8e1f8ac1320b01c9f894eb4ae22452ae kcmutils-5.41.0.tar.xz e3ecbab2d0aef7ab54137dd10f260199 knewstuff-5.41.0.tar.xz 0dd6f089983ecd32155a980dd701d8bd frameworkintegration-5.41.0.tar.xz f1be560698aaa8329f61cc364208becd kinit-5.41.0.tar.xz d3a25384ba8bc72c34adc23431bfb1fc knotifyconfig-5.41.0.tar.xz c799742b700dc63cc29b43b05363caf6 kparts-5.41.0.tar.xz 94b470c2ab31754cec8b976dbcf914fb kactivities-5.41.0.tar.xz 55e4ea83c260ed6133d91baa85e83ee2 kded-5.41.0.tar.xz e6ca0e267d398418221b44686eeb8112 kdewebkit-5.41.0.tar.xz fc593a8fbb7ad9105d3f5cbab20025f9 syntax-highlighting-5.41.0.tar.xz 4a56a69a8d4180bed8e0fc62b104ae5b ktexteditor-5.41.0.tar.xz 4e68fcc75c98efbb52ad10cc93f94cac kdesignerplugin-5.41.0.tar.xz 182714e5cffb3f8d98cd9ec9e5e342a2 kwayland-5.41.0.tar.xz a824f972b674747dcf4c37b72ac5aafe plasma-framework-5.41.0.tar.xz d9f1c4a923b48fc6f27317be8d880279 modemmanager-qt-5.41.0.tar.xz d2fcacdd586ea9523dfdced3508a9018 kpeople-5.41.0.tar.xz fe298ffdfee126f9ba3bcdef1118fcdf kxmlrpcclient-5.41.0.tar.xz c1be30ad443b482cb64be7ec294e643d bluez-qt-5.41.0.tar.xz 2a0ca3328b99e0107a4037319747c079 kfilemetadata-5.41.0.tar.xz b7636f757203dc0c31bcebb9c43d82f4 baloo-5.41.0.tar.xz #4d9130ec475e1a99d44cddc3be5c0965 breeze-icons-5.41.0.tar.xz #b55b649450dcffe2b207e203915f8985 oxygen-icons5-5.41.0.tar.xz 98dfb00d6d376b9adaa45f28444cdc74 kactivities-stats-5.41.0.tar.xz 3eb823010cc1738302e3f0e89c088f62 krunner-5.41.0.tar.xz #c8f1ba624b752249fba8a590b9c67f4a prison-5.41.0.tar.xz #cbfb3f5b2135551975d9e204a18a1011 kirigami2-5.41.0.tar.xz #ca0658e0f314b957dae151c83f4f24db qqc2-desktop-style-5.41.0.tar.xz 50cf974dae417f0ba8785fd64ed186ab kjs-5.41.0.tar.xz d1dad42422f484912a1b32eee1344436 kdelibs4support-5.41.0.tar.xz 795c5ae86722acf4153ad77f9dcde6f6 khtml-5.41.0.tar.xz dcae4f0b65f53a64b4c6296fbe03be97 kjsembed-5.41.0.tar.xz 6bcc75b0773b2dbcc73a3e9db0e95efc kmediaplayer-5.41.0.tar.xz b58a7bdf8cc70e20293fad45990f8876 kross-5.41.0.tar.xz EOF In the above list, notice that some files have been commented out with a hash (#) character. The extra-cmake-modules entry has been commented out because it was built earlier in the . The icon packages are covered separately at and . The modemmanager-qt package may be built if its optional dependency has been installed. The prison package (bar code reader) may be built if the required external libraries are installed. The kirigami2 and qqc2-desktop-style packages are a set of libraries for the android platform (see https://techbase.kde.org/Kirigami for more information.) Installation of KDE Frameworks &as_root; If installing in /opt and there is an existing /opt/kf5 either as a regular directory or a symbolic link, it should be reinitialized (as root): mv -v /opt/kf5 /opt/kf5.old && install -v -dm755 $KF5_PREFIX/{etc,share} && ln -sfv /etc/dbus-1 $KF5_PREFIX/etc && ln -sfv /usr/share/dbus-1 $KF5_PREFIX/share First, start a subshell that will exit on error: bash -e Install all of the packages by running the following commands: export CXXFLAGS='-isystem /usr/include/openssl-1.0' while read -r line; do # Get the file name, ignoring comments and blank lines if $(echo $line | grep -E -q '^ *$|^#' ); then continue; fi file=$(echo $line | cut -d" " -f2) pkg=$(echo $file|sed 's|^.*/||') # Remove directory packagedir=$(echo $pkg|sed 's|\.tar.*||') # Package directory tar -xf $file pushd $packagedir case $packagedir in kdelibs4support*) sed -i.orig \ '/OPENSSL_FOUND/i set(OPENSSL_INCLUDE_DIR "/usr/include/openssl-1.0")' \ src/CMakeLists.txt ;; esac mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \ -DCMAKE_PREFIX_PATH=$QT5DIR \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_TESTING=OFF \ -Wno-dev .. make as_root make install popd as_root rm -rf $packagedir as_root /sbin/ldconfig done < frameworks-&kf5-version;.md5 exit Any modules that have been omitted can be installed later by using the same mkdir build; cd build; cmake; make; make install procedure as above. Sometimes the installation paths are hardcoded into installed files. If the installed directory is not /usr, rename the directory and create a symlink: mv -v /opt/kf5 /opt/kf5-&kf5-version; ln -sfvn kf5-&kf5-version; /opt/kf5 Command Explanations -DCMAKE_PREFIX_PATH=$QT5DIR: This switch is used to allow cmake to find the proper Qt libraries. -DCMAKE_BUILD_TYPE=Release: This switch is used to apply higher level of the compiler optimizations. -DBUILD_TESTING=OFF: This switch is used to prevent building test programs and libraries that are of no use to an end user. Contents Installed Programs Installed Libraries Installed Directories There are 48 programs installed in /opt/kf5/bin. There are too many kf5 libraries (191) to list separately. /opt/kf5 (symlink to /opt/kf5-&kf5-version;) Short Descriptions checkXML5 is a tool to check for syntax errors in KDE DocBook XML files. checkXML5 depdiagram-generate is a tool to generate a dependency diagram. depdiagram-generate depdiagram-generate-all is a tool to generate a dependency diagram for all frameworks at once.. depdiagram-generate-all depdiagram-prepare is a tool to prepare dot files. depdiagram-prepare desktoptojson is a tool to convert a .desktop file to a .json file. desktoptojson kactivitymanagerd is the KDE Plasma Workspace Activity Manager. kactivitymanagerd kbuildsycoca5 rebuilds the KService desktop file system configuration cache. kbuildsycoca5 kcookiejar5 is a command line interface to the HTTP cookie store used by KDE, a D-BUS service to store/retrieve/clean cookies. kcookiejar5 kded5 consolidates several small services in one process. kded5 kdeinit5 is a process launcher somewhat similar to the famous init used for booting UNIX. kdeinit5 kf5-config is a command line program used to retrieve information about KDE installation or user paths. kf5-config kf5kross executes kross scripts written in KDE Javascript, Python, Ruby, Java and Falcon. kf5kross kgenapidox is a tool to generate API documentation in the KDE style. kgenapidox kgendesignerplugin generates widget plugins for Qt(TM) Designer. kgendesignerplugin kglobalaccel5 is a daemon use to register the key bindings and for getting notified when the action triggered. kglobalaccel5 kjs5 is KDE ECMAScript/JavaScript engine. kjs5 kjscmd5 is a tool for launching KJSEmbed scripts from the command line. kjscmd5 kjsconsole is a console for kjs5. kjsconsole kmailservice5 is a mail service. kmailservice5 kpackagelauncherqml is a commandline tool for launching kpackage QML application kpackagelauncherqml kpackagetool5 is a command line kpackage tool. kpackagetool5 kreadconfig5 is a command line tool to retrieve values from KDE configuration files. kreadconfig5 kshell5 start applications via kdeinit. kshell5 ktelnetservice5 is a telnet service. ktelnetservice5 ktrash5 is a helper program to handle the KDE trash can. ktrash5 kwalletd5 is the wallet manager daemon. kwalletd5 kwriteconfig5 is a command line tool to write values in KDE configuration files. kwriteconfig5 meinproc5 converts DocBook files to HTML. meinproc5 plasmapkg2 is a tool to install, list, remove Plasma packages plasmapkg2 preparetips5 is a script to extract the text from a tips file. preparetips5 solid-hardware5 is a command line tool to investigate available devices. solid-hardware5