%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). &lfs84_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) Furthermore, the instructions below assume that the environment has been set up as described in . Optional (needed to build Bluez-Qt), (needed to build ModemManager-Qt) Runtime dependency for FrameworkIntegration and Runtime dependencies for kapidox , , and 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" f1b0eba58f4e29c6c9af2a39a4d92052 attica-5.58.0.tar.xz #ab2e42031a1aa96eca27d029827fe9d8 extra-cmake-modules-5.58.0.tar.xz 45ca6b083bf51ed1cebaf11431c20f71 kapidox-5.58.0.tar.xz 8d386da9f2e3a64018b979a8a0512a18 karchive-5.58.0.tar.xz 5e2fd0f6588523b30ab9c8ab53bb1d76 kcodecs-5.58.0.tar.xz f0a5d4f90ff74a764691e1d31caa378c kconfig-5.58.0.tar.xz ea7e5f1f3f880e1814e9952998476f76 kcoreaddons-5.58.0.tar.xz 2c0b68f305c296ab785c65d356ae0f45 kdbusaddons-5.58.0.tar.xz c373138c303866478fb848774bba0ce0 kdnssd-5.58.0.tar.xz 4485550ff755fd84f3126a2079dda66b kguiaddons-5.58.0.tar.xz 82e0f37a01ad489db993833470ea59a8 ki18n-5.58.0.tar.xz f9189c3ba90584800c51686167a310d5 kidletime-5.58.0.tar.xz 77c013f9a37934fc20239d0a3da205ba kimageformats-5.58.0.tar.xz 7d1a541f0e3ecb0e31a1e02bf14ec043 kitemmodels-5.58.0.tar.xz aa0444b0e1d59198eb5909931dacc8d7 kitemviews-5.58.0.tar.xz d714d9cbcb2a5083f283c5831f9d9969 kplotting-5.58.0.tar.xz 05f0c66e03250369f296dfedf99ae9b4 kwidgetsaddons-5.58.0.tar.xz 596760bde216cb7335193fec16baeec4 kwindowsystem-5.58.0.tar.xz 95bc9df762d4a99b6e71f3fae9ee2bad networkmanager-qt-5.58.0.tar.xz f6a9c58ce4e5a6ff82dd11f431aa3610 solid-5.58.0.tar.xz 1bb0c7eaaa57e91364da4ff023eaa7fd sonnet-5.58.0.tar.xz 39c96c38a87fee145d43d894cfbff64f threadweaver-5.58.0.tar.xz a5df25b21f6aab84e310cd1d4f201141 kauth-5.58.0.tar.xz 920cf624a739e63290743f5c3fa418f1 kcompletion-5.58.0.tar.xz c526a1714cf265711e0a20e9888978eb kcrash-5.58.0.tar.xz 0fb5dd4eb907b55782e321f3d86eb825 kdoctools-5.58.0.tar.xz fb18265b0c83adbb4af57b7c0588ff31 kpty-5.58.0.tar.xz dc840b7be1e9c8e4ba715b3fee264714 kunitconversion-5.58.0.tar.xz 1c3ef53c26083ccd886144d794f56b3f kconfigwidgets-5.58.0.tar.xz 748c4fe209139249efaa669edb07fc91 kservice-5.58.0.tar.xz 36c37994da9057dbda764229c847e873 kglobalaccel-5.58.0.tar.xz cddda5df856b84d82289056e2521e0f5 kpackage-5.58.0.tar.xz 4e927df18363fc6f7da0154e9d097f31 kdesu-5.58.0.tar.xz b5ccd7868f3b506c238c3492a56ba65a kemoticons-5.58.0.tar.xz 2111f28ff4051914be2b7caf355befb4 kiconthemes-5.58.0.tar.xz ba814954d8506f44f3f683a427f4628c kjobwidgets-5.58.0.tar.xz 4865198f8406068c67254ee3b59faab4 knotifications-5.58.0.tar.xz 1d030a5e1a52bac6528d39737d52ffb8 ktextwidgets-5.58.0.tar.xz 899f9dca54c336c0034fa0aee2b5bf8f kxmlgui-5.58.0.tar.xz 979b5612fd76e0959736347b4dbccce7 kbookmarks-5.58.0.tar.xz b27baeea7c21967609a4507cf616d47a kwallet-5.58.0.tar.xz 1c8b5a0d4eddab6a97f387c5e5fd67a2 kio-5.58.0.tar.xz c431a6562b643dcb1d56f3170d05025d kdeclarative-5.58.0.tar.xz cb3326fe23c757af9588f97f44882d71 kcmutils-5.58.0.tar.xz ba2f49c4a857c4fc603d6e7930a4e665 kirigami2-5.58.0.tar.xz c34bd0c3876e657c2dd92265a88071b3 knewstuff-5.58.0.tar.xz 4b8bd790e04ff1e7998fc96f4e505760 frameworkintegration-5.58.0.tar.xz 4d914c5ae3010ae600c858e9ccdeecb2 kinit-5.58.0.tar.xz e5917ac42030612bfc952e3967072469 knotifyconfig-5.58.0.tar.xz 79b028e61cbab0cfeb167e02363fad44 kparts-5.58.0.tar.xz e38977ae6c504a4f092c1c6ad3b6d28a kactivities-5.58.0.tar.xz 4cb98a0531c0c9aea801f7678400c280 kded-5.58.0.tar.xz #88b0b5fd5e7debdf6291263f1e4a9478 kdewebkit-5.58.0.tar.xz a93c3854a98a7616f02676cd2d6f1ed3 syntax-highlighting-5.58.0.tar.xz 9b26b1c6de1b19e8995f66fd31ab9901 ktexteditor-5.58.0.tar.xz 2b96b2eab04f75ec34b2017ca95d5a16 kdesignerplugin-5.58.0.tar.xz 1f029fbeb30e11fa362fa9a5ef836111 kwayland-5.58.0.tar.xz fc77bd0e0e3d0905be7b32cb7ae0f9eb plasma-framework-5.58.0.tar.xz #d1822d13276bde0be4dae6749a3b61b5 modemmanager-qt-5.58.0.tar.xz d379b213cf068b4a73503c3922ca20b5 kpeople-5.58.0.tar.xz 4ca1ac3fd1d98a08baf8f70536c6a27a kxmlrpcclient-5.58.0.tar.xz 13ba6a2b5051d0d03b0d0a6e056ec1a5 bluez-qt-5.58.0.tar.xz 5bd7d7b91b0c1e70a0c49bedc8eac381 kfilemetadata-5.58.0.tar.xz cf5ba6707cd5ee804bc6ee57b712bd84 baloo-5.58.0.tar.xz #551a7d46848ec758464a1cc96c68672f breeze-icons-5.58.0.tar.xz #4d2016bc53b675a776b7321e49132dee oxygen-icons5-5.58.0.tar.xz 8e1d8fdda1588b98fe0fc8dcda08d217 kactivities-stats-5.58.0.tar.xz f61cded81c889d8c92dde7c9234858e5 krunner-5.58.0.tar.xz #7c2a5f7808304f3d8404a8083bf54e8f prison-5.58.0.tar.xz 789d6b25e609a51e5fc86f397ccff7d2 qqc2-desktop-style-5.58.0.tar.xz 7c88ae56084c5b43538344af72b4b6d2 kjs-5.58.0.tar.xz 1c4d788d910c3d7c06734aed2524ad0d kdelibs4support-5.58.0.tar.xz d62ea2b2a7eecd46f3b95460b8a94956 khtml-5.58.0.tar.xz d9cac6962c2820ab99661ba6e2d0d799 kjsembed-5.58.0.tar.xz a117c2e069988d910ee5478346c6ca0f kmediaplayer-5.58.0.tar.xz 5e09b84e2675fe3c545d41ae347877c2 kross-5.58.0.tar.xz d3f3e84e2658cd46489b591d79d85226 kholidays-5.58.0.tar.xz 5fe559e1dc6f42b8b207f34b4aa8f340 purpose-5.58.0.tar.xz 3f83b4120f4de8021056d878bba60c9a syndication-5.58.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 kdewebkit may be built if the external package QtWebkit has been built. 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: 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 name=$(echo $pkg|sed 's|-5.*$||') # Isolate package name tar -xf $file pushd $packagedir 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