%general-entities; ]> 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). &lfs120_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 ModemManager-Qt), (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), Datamatrix (deemed recommended for Prison by upstream) Runtime dependency for FrameworkIntegration Additional recommended dependencies for kapidox (Run time), , , , and Additional image formats support in KImageFormats , , , libheif, libjxl, 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 dependency for kdewebkit QtWebkit Optional dictionary backends for Sonnet Hspell and Hunspell 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=https://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" 787c2d668ea547c2516aee5f0bfc8726 attica-5.113.0.tar.xz #f037747c7a56fbbb64adb14d1f46fe5f extra-cmake-modules-5.113.0.tar.xz 82f34f7bc8d44d2bcf35fa3f94a38836 kapidox-5.113.0.tar.xz 7874e4ef6e9043a1fbe253e76b3b14fe karchive-5.113.0.tar.xz 89e1b0d3b26f23140142a8b6a3108475 kcodecs-5.113.0.tar.xz d9d231a843e344bfb69361eeff1df5dd kconfig-5.113.0.tar.xz 0967a05b9595e7fc37d9adc720e28881 kcoreaddons-5.113.0.tar.xz ea44849cafb7c183e5301a794f7efb98 kdbusaddons-5.113.0.tar.xz f1c3314fab259c3af769e78c146fc90b kdnssd-5.113.0.tar.xz 00f8015c6ffbbef09aa8977f6cf41e13 kguiaddons-5.113.0.tar.xz 369ddd0283921f1ed5a78f0bc1ebfc82 ki18n-5.113.0.tar.xz 30fbf16607d783a9e871344962eb6c90 kidletime-5.113.0.tar.xz dbe1d12387f95adc49d931102be44fb0 kimageformats-5.113.0.tar.xz c5e89f4c8dea0b9ef5d01f16968e046e kitemmodels-5.113.0.tar.xz d4bfe43c3516ffee86bb75aac9747d78 kitemviews-5.113.0.tar.xz 1668a8040e66b8d5df8f6576d8543e52 kplotting-5.113.0.tar.xz e660b75205043559de3623e0d4314dfc kwidgetsaddons-5.113.0.tar.xz b9ec086925b43ae1563c353246a17929 kwindowsystem-5.113.0.tar.xz bcad0b16cdc4ed3a525f489212d04f54 networkmanager-qt-5.113.0.tar.xz 9d4b38e3adae1c0da9f207786aacf497 solid-5.113.0.tar.xz 80f6fbb2005c4d1bd82407642bdd156d sonnet-5.113.0.tar.xz 3b712a2ca08ff91f0dffe857fd83474f threadweaver-5.113.0.tar.xz 9d39de86fb9c75faea71886267aa0c98 kauth-5.113.0.tar.xz 36a941b4dac38b548df513962593c6af kcompletion-5.113.0.tar.xz afe932f17e32d63659b2901157c3bc73 kcrash-5.113.0.tar.xz 1066c0b7878f5c920928954570e39730 kdoctools-5.113.0.tar.xz 6affbafd36a70bc51d9822347056ac2d kpty-5.113.0.tar.xz 49a1eee21895689b102fabd57d3dd92f kunitconversion-5.113.0.tar.xz e9418b112c6e12fa743aea190bc1f0df kconfigwidgets-5.113.0.tar.xz 38284f2e7a5e29643c2c7478f06de679 kservice-5.113.0.tar.xz 7397ea0349bf92b9a98a5a75a95e7860 kglobalaccel-5.113.0.tar.xz 90ccbb695797b041e94c39cb98139065 kpackage-5.113.0.tar.xz 9766a78f6ebb2dd760246cee72622de1 kdesu-5.113.0.tar.xz fcff19090cf18c03cc492768da8b62b4 kemoticons-5.113.0.tar.xz a48bfd069ba800de25ba3907b0e4a2e1 kiconthemes-5.113.0.tar.xz b51ee5c2bc66a45eb68ae681fd2a52b7 kjobwidgets-5.113.0.tar.xz aaec1ed5e8c1133decd4876c486f7958 knotifications-5.113.0.tar.xz 5533f0ed825339ce66f400c1058a207a ktextwidgets-5.113.0.tar.xz af3d95e975fcb00f865da003c823bfd9 kxmlgui-5.113.0.tar.xz 401472496f0539c6804c5758950704fc kbookmarks-5.113.0.tar.xz 72c93e9c087f03cecf75bf76113da7b0 kwallet-5.113.0.tar.xz 2bd168429da6337811b33e44175c92b2 kded-5.113.0.tar.xz 31f9bb082e740c90e8d2623f94117020 kio-5.113.0.tar.xz b7ab07daa1c8e7b441c92c9dabc74c77 kdeclarative-5.113.0.tar.xz 1df48c8564ec78f1f4782612a342accb kcmutils-5.113.0.tar.xz a836b9e3c64b86d2dd5fb45fa9bbb400 kirigami2-5.113.0.tar.xz 20589ba771d2df8ad3ddaf7f0341a2d9 syndication-5.113.0.tar.xz 24baca956b368ce051129a3d9ddb8d65 knewstuff-5.113.0.tar.xz f1c28e9fb51199710d7dfdd904572ba0 frameworkintegration-5.113.0.tar.xz 6c5bc8798c3c9dcca909998ae8ea376a kinit-5.113.0.tar.xz 461169baeb06dee7bc558a978889ae05 kparts-5.113.0.tar.xz 844c0457872c020e0e41dfa78348db86 kactivities-5.113.0.tar.xz #5063fba9a973754a1d74d25be3c1c879 kdewebkit-5.113.0.tar.xz 614ebb98192f9052f19edbd7976f0291 syntax-highlighting-5.113.0.tar.xz 042424fe37a12bf433c1db6853f5de39 ktexteditor-5.113.0.tar.xz 38e28b1563ca2bed2484c84c58f4d6a3 kdesignerplugin-5.113.0.tar.xz 924b688b1a9626506db888f7121c5ace kwayland-5.113.0.tar.xz d58abf4f8fe539995124dfec1f33d981 plasma-framework-5.113.0.tar.xz 11f566407f2d9dece0acc2ab839cd062 modemmanager-qt-5.113.0.tar.xz 0647a87e569c7650d2dc6608e7f57ed0 kpeople-5.113.0.tar.xz ca639bea4c95c28b2477960d8b7919e3 kxmlrpcclient-5.113.0.tar.xz f72cd083ecbc9f18cb5698922240f1f2 bluez-qt-5.113.0.tar.xz 709952cf04d6927d87f99aed9fc3d2b6 kfilemetadata-5.113.0.tar.xz 468982a87967b7459a094c62f4b53b16 baloo-5.113.0.tar.xz #130f406ffe1fe4d6778bb26b7688f5c3 breeze-icons-5.113.0.tar.xz #841ef4fa01803fe07ff4a96c72ac472d oxygen-icons-5.113.0.tar.xz f5ac81cfcbf79c5f7a583be8c92db53d kactivities-stats-5.113.0.tar.xz f32d7b8bfa1874b6ddb13c939a4c0190 krunner-5.113.0.tar.xz 4400d4a8b143b983d117ee76b5c49590 prison-5.113.0.tar.xz 62a77f1676426a864433f20dab62c7bb qqc2-desktop-style-5.113.0.tar.xz 9ed05a72f505238e7ddf605c8f4744ee kjs-5.113.0.tar.xz acc3916872c964677778152f0812970c kdelibs4support-5.113.0.tar.xz 0fb63bcab20b9e7e030cec139988e716 khtml-5.113.0.tar.xz 05fc8de448545b648f721cbab1f1e270 kjsembed-5.113.0.tar.xz 240fc62077d2d7605e057a3a3e883317 kmediaplayer-5.113.0.tar.xz b36746fe0fcb6760e4c6863c0aadee84 kross-5.113.0.tar.xz 1766fd510ce7c816760dd6b5e51fe9d0 kholidays-5.113.0.tar.xz 976e174b887f5e68ecf374053607cee4 purpose-5.113.0.tar.xz a0e98fee032e1b462a4b0a302b10f15b kcalendarcore-5.113.0.tar.xz 66bdceec34192e96a7a7dbc66fa01e6b kcontacts-5.113.0.tar.xz f347438bdea3e5b0d66c3cf098890a69 kquickcharts-5.113.0.tar.xz 650db9939b0c0b43929999b58ca588fc knotifyconfig-5.113.0.tar.xz b0d2454a0a729b2ec98a085ad7e454d5 kdav-5.113.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 kdewebkit package 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 && ln -sfv /usr/share/polkit-1 $KF5_PREFIX/share 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 && ln -sfv /usr/share/polkit-1 $KF5_PREFIX/share && install -v -dm755 $KF5_PREFIX/lib && ln -sfv /usr/lib/systemd $KF5_PREFIX/lib 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 # kapidox is a python module case $name in kapidox) &build-wheel-cmd; $PWD as_root &install-wheel; kapidox popd rm -rf $packagedir continue ;; 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. 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