%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). &lfs101_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), Datamatrix (deemed recommended for Prison by upstream) 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 , built with C++ bindings (which is the default). Optional dictionary backends for Sonnet Hspell and Hunspell 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" 2d37fbeda8a1863f49b4020094d27328 attica-5.79.0.tar.xz #020c6267046a065ee505c9b03d1bbe56 extra-cmake-modules-5.79.0.tar.xz b291790cba30ba5ca1a007e809c190a2 kapidox-5.79.0.tar.xz d9f0b3edb5610f709f849d0fcbeaa6a7 karchive-5.79.0.tar.xz a275f28db8233c408e41e086f770f703 kcodecs-5.79.0.tar.xz 0fa5b0f1e2f995242e493c9681970e3b kconfig-5.79.0.tar.xz 048d39a0aea41c1fb52143db4d4ec588 kcoreaddons-5.79.0.tar.xz 94f13ec26cc751662ed00a2184a3a3f7 kdbusaddons-5.79.0.tar.xz 16b9f5c62c5718ba89f19753337b0d53 kdnssd-5.79.1.tar.xz 66d2801bfe21a83d48da4617f7298de0 kguiaddons-5.79.0.tar.xz 086b5b66351ffd6b9c734896b6a740f9 ki18n-5.79.0.tar.xz e6523c6192b0a1247deb4df16490eb3e kidletime-5.79.0.tar.xz 0408433275e69e30d282bde4d62b383f kimageformats-5.79.0.tar.xz 0731f3adb4f88b9dd4acab7c454c8133 kitemmodels-5.79.0.tar.xz 0bae5399c32c011ab3a211200454dafd kitemviews-5.79.0.tar.xz b314220f88558d50c557e4a64237f08a kplotting-5.79.0.tar.xz b67544527fcc3c8a38cc14813da45290 kwidgetsaddons-5.79.0.tar.xz 61e99965def3149523d985361daeeeb5 kwindowsystem-5.79.0.tar.xz 8925ca98dfe1ded943ccb7b67ab22d99 networkmanager-qt-5.79.0.tar.xz dd47932e6d4cf3165f92656cf0331699 solid-5.79.0.tar.xz e564b71d2bf7f017890beca4a123c89b sonnet-5.79.0.tar.xz 8f056c25791b760cd5cbefd7f4833a4f threadweaver-5.79.0.tar.xz 29569aea274980c7be0fa113fbdd72b5 kauth-5.79.0.tar.xz 7ce37448704e52f833bf8745e2da1735 kcompletion-5.79.0.tar.xz 724d4809ae5a9ffac862f7e1eb3961d9 kcrash-5.79.0.tar.xz def0bffe069de1a332fd8ee3bc57da6f kdoctools-5.79.0.tar.xz 49f5d2ff5cbb2259aa599eeacc42408b kpty-5.79.0.tar.xz a59d86a63028c25e5a6e6870d38137cc kunitconversion-5.79.0.tar.xz 3e594da911338a9ea526f3b6ec1e1edd kconfigwidgets-5.79.0.tar.xz f2430143ec93ab42afa8f4c71398ee6d kservice-5.79.0.tar.xz 6e5217c6621e97fe90e99385720f968d kglobalaccel-5.79.0.tar.xz 724d79ae4f9019d793588c75dde5c69c kpackage-5.79.0.tar.xz 6dd0f61fd2defdd1d7a0edc44bf7a06c kdesu-5.79.0.tar.xz bda61c05c220c53f4866a6c5a43b8612 kemoticons-5.79.0.tar.xz 2cc3443c13bf99e7660a8df09cd6fc95 kiconthemes-5.79.0.tar.xz c5456e8581dada4a7d4bf8f08a89963f kjobwidgets-5.79.0.tar.xz 3f4611dfc589da49a5ea7a844e58262c knotifications-5.79.0.tar.xz 4f2f01042c5b6a28c3ceb0ecdeec5577 ktextwidgets-5.79.0.tar.xz c57d052f56800b4adb88b3daddd320f6 kxmlgui-5.79.0.tar.xz 216a661a5dec0ad28ac04893e9ad805c kbookmarks-5.79.0.tar.xz 66e705d82e006aac8071105f517f275b kwallet-5.79.0.tar.xz 1a730e3d51c5a6f8d568f91f433afb00 kded-5.79.0.tar.xz d796080d51e62c2b3cc3fbdb19ceaf66 kio-5.79.0.tar.xz a19eb4911c2fece7c2d5849f046733f7 kdeclarative-5.79.0.tar.xz 15f2b2030e36ae4d2ab1fbe572c60b45 kcmutils-5.79.0.tar.xz 56a4ea8393daec54189832d767f8f080 kirigami2-5.79.0.tar.xz a07e2d9babf366a29656d21e4ee66cf6 knewstuff-5.79.0.tar.xz c7c3bde5eb426f717f530ac03a19ef15 frameworkintegration-5.79.0.tar.xz 047c3d951b94c667b33e19e11c61e2ae kinit-5.79.0.tar.xz 317290d8ec99b95e73c680e65c29e4e4 knotifyconfig-5.79.0.tar.xz 03d1d45c3f029da0431f3145db65f25b kparts-5.79.0.tar.xz aa85d3aa9c57681b61d8330667062e77 kactivities-5.79.0.tar.xz #dae7d15553315aa7cc352c54d19dae9b kdewebkit-5.79.0.tar.xz a4db3d3a35151aeaebc9eaa8b825cbc9 syntax-highlighting-5.79.1.tar.xz 42d01794017416e54cabf71376d160b8 ktexteditor-5.79.0.tar.xz d23f9c74b3dc20f15c86e88723e2de00 kdesignerplugin-5.79.0.tar.xz 9d221f6fc2f4d704fa115b59275218fd kwayland-5.79.0.tar.xz 4dc731b88b3e28748622284622e65fc6 plasma-framework-5.79.0.tar.xz #7acca01fc2d463224b92c4095cfbcd69 modemmanager-qt-5.79.0.tar.xz 9261af304aff1defe6e5ef91f276a12a kpeople-5.79.0.tar.xz af9aed54f0ddcc9a481b58f585d48f90 kxmlrpcclient-5.79.0.tar.xz 18579f11a8763c02ab476aa886af91f5 bluez-qt-5.79.0.tar.xz 71bdc5e4dc4b4bda01190a9fea6209f4 kfilemetadata-5.79.0.tar.xz 4126fc0077942bcd09ecb5833010203f baloo-5.79.0.tar.xz #6977e21486ea56c642a5037647636925 breeze-icons-5.79.0.tar.xz #7266f03969ef7c91257d5a023bb0ddac oxygen-icons5-5.79.0.tar.xz 1a9684e30416fdead96fdd72dd5f1e59 kactivities-stats-5.79.0.tar.xz c86ae5aef97956907f8686819042def8 krunner-5.79.0.tar.xz ec189c854e1e671a030692d1eb17b2d4 prison-5.79.0.tar.xz c10d6a8662b4215cab57379827ea4d80 qqc2-desktop-style-5.79.0.tar.xz 3df2c2ad1f05499252c249a5bb9381e3 kjs-5.79.0.tar.xz 9055eb30f76245929b22b453bea681b9 kdelibs4support-5.79.0.tar.xz 79a58b58e4a14717413ab4344e5d9f84 khtml-5.79.0.tar.xz 861bff4ffdfa60fea90776817f959d51 kjsembed-5.79.0.tar.xz 3c20d76012b40f047c2ebcb9fdfa23fe kmediaplayer-5.79.0.tar.xz 0e8b13cdf366b09313c46b835184272f kross-5.79.0.tar.xz 4ff475cef2ff786c7218af07dda1e123 kholidays-5.79.0.tar.xz eccbb4b9427e07e9b0d88cbbe116beb9 purpose-5.79.0.tar.xz 2a92913826be0c89fa4980eff8dc1763 kcalendarcore-5.79.0.tar.xz 7830c9f2540d6726be23f36a399afb1c kcontacts-5.79.0.tar.xz 4a67bab900bcb25d7a2da20a098f438e kquickcharts-5.79.0.tar.xz 2534a448766bd73b8803c2e5c628d919 kdav-5.79.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 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. Useless systemd units have been installed in $KF5_PREFIX/lib. Remove them now (as root): rm -rf $KF5_PREFIX/lib/systemd 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 balooctl, baloo_file, baloo_file_extractor, baloosearch, balooshow, checkXML5, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca5, kcookiejar5, kdebugdialog5, kded5, kdeinit5, kdeinit5_shutdown, kdeinit5_wrapper, kf5-config, kf5kross, kgendesignerplugin, kglobalaccel5, kiconfinder5, kjs5, kjscmd5, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool5, kquitapp5, kreadconfig5, kshell5, ktelnetservice5, ktrash5, kwalletd5, kwallet-query, kwrapper5, kwriteconfig5, meinproc5, parsetrigrams, plasmapkg2, preparetips5, protocoltojson, and solid-hardware5 libkdeinit5_klauncher.so, libKF5Activities.so, libKF5ActivitiesStats.so, libKF5Archive.so, libKF5Attica.so, libKF5AuthCore.so, libKF5Auth.so, libKF5Baloo.so, libKF5BluezQt.so, libKF5Bookmarks.so, libKF5CalendarCore.so, libKF5CalendarEvents.so, libKF5Codecs.so, libKF5Completion.so, libKF5ConfigCore.so, libKF5ConfigGui.so, libKF5ConfigWidgets.so, libKF5Contacts.so, libKF5CoreAddons.so, libKF5Crash.so, libKF5DAV.so, libKF5DBusAddons.so, libKF5Declarative.so, libKF5DNSSD.so, libKF5DocTools.so, libKF5Emoticons.so, libKF5FileMetaData.so, libKF5GlobalAccel.so, libKF5GuiAddons.so, libKF5Holidays.so, libKF5I18n.so, libKF5IconThemes.so, libKF5IdleTime.so, libKF5ItemModels.so, libKF5ItemViews.so, libKF5JobWidgets.so, libKF5JSApi.so, libKF5JsEmbed.so, libKF5JS.so, libKF5KCMUtils.so, libKF5KDELibs4Support.so, libKF5KHtml.so, libKF5KIOCore.so, libKF5KIOFileWidgets.so, libKF5KIOGui.so, libKF5KIONTLM.so, libKF5KIOWidgets.so, libKF5Kirigami2.so, libKF5KrossCore.so, libKF5KrossUi.so, libKF5MediaPlayer.so, libKF5NetworkManagerQt.so, libKF5NewStuffCore.so, libKF5NewStuff.so, libKF5Notifications.so, libKF5NotifyConfig.so, libKF5Package.so, libKF5Parts.so, libKF5PeopleBackend.so, libKF5People.so, libKF5PeopleWidgets.so, libKF5PlasmaQuick.so, libKF5Plasma.so, libKF5Plotting.so, libKF5Prison.so, libKF5Pty.so, libKF5Purpose.so, libKF5PurposeWidgets.so, libKF5QuickAddons.so, libKF5Runner.so, libKF5Service.so, libKF5Solid.so, libKF5SonnetCore.so, libKF5SonnetUi.so, libKF5Style.so, libKF5Su.so, libKF5SyntaxHighlighting.so, libKF5TextEditor.so, libKF5TextWidgets.so, libKF5ThreadWeaver.so, libKF5UnitConversion.so, libKF5Wallet.so, libKF5WaylandClient.so, libKF5WaylandServer.so, libKF5WidgetsAddons.so, libKF5WindowSystem.so, libKF5XmlGui.so, libKF5XmlRpcClient.so, and libkwalletbackend5.so /opt/kf5 (symlink to /opt/kf5-&kf5-version;) if installing in /opt 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 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 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 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