%general-entities; ]> Building KDE Frameworks 6 (KF6) KDE Frameworks KDE Frameworks is a collection of libraries based on top of Qt6 and QML derived from the previous KDE libraries. They can be used independent of the KDE Display Environment (Plasma 6). &lfs121_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: &kf6-md5sum; Download size: &kf6-size; Estimated disk space required: &kf6-buildsize; Estimated build time: &kf6-time; KF6 Dependencies Required , , , , , , , , , , , , , , , , , , and (required to download the packages) Recommended (Dictionary backend for Sonnet), (DNS-SD backend for KDNSSD), (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 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/&kf6-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-&kf6-version;.md5 << "EOF" 47c7b3b14fdfd20526f921893e33a6df attica-6.0.0.tar.xz #3e1b640fc5c3b4d96484029d1034c48a extra-cmake-modules-6.0.0.tar.xz fd71ce0819198e19dd050c582423eee1 kapidox-6.0.0.tar.xz 8fad68a775205e8247bf80ed9c3c5fc6 karchive-6.0.0.tar.xz 17861d96f9e2b02432796982fcc20bb1 kcodecs-6.0.0.tar.xz 294ae52167345f5d762691af6e1ade62 kconfig-6.0.0.tar.xz 92a8009b1730b681f0a91c0e064a292b kcoreaddons-6.0.0.tar.xz 2ecb30602c833a9646b490c4e451c2bd kdbusaddons-6.0.0.tar.xz 0fa4228b3314387071fa438d47098037 kdnssd-6.0.0.tar.xz aba6bc813350b590112f9968fd59536a kguiaddons-6.0.0.tar.xz 46836705302aafc233e02d9aa5874c28 ki18n-6.0.0.tar.xz 66c874a79a1cdca06d244d0af163b8a8 kidletime-6.0.0.tar.xz 5cdb039fbc21b8bd58cb357b6e2f9863 kimageformats-6.0.0.tar.xz 400fba4b2c11ebacb1ef7e496c741113 kitemmodels-6.0.0.tar.xz 070c90dfbe2eea82913b2cab66e6331b kitemviews-6.0.0.tar.xz 405d1db9454a29d34d0a5a86bb58edbe kplotting-6.0.0.tar.xz 583bc50cda0c24d3864381ab1135d529 kwidgetsaddons-6.0.0.tar.xz 9af0c4bdd92546078e096b719883dd28 kwindowsystem-6.0.0.tar.xz bdbee4bc5ba342e4830adf2e482a24bf networkmanager-qt-6.0.0.tar.xz 301bbd9f7d6f087d0afb248e895f13a7 solid-6.0.0.tar.xz 045795628122c1ed16732ac8f9d4c96d sonnet-6.0.0.tar.xz 3d2bc3128145680b6851796c7ad6e871 threadweaver-6.0.0.tar.xz 430907dc0f160f5588b060ffdcc358d4 kauth-6.0.0.tar.xz df90c97913a557375af05d5104c9a603 kcompletion-6.0.0.tar.xz 58c794a280d3e4434aa11e9a0f0c5652 kcrash-6.0.0.tar.xz 0a32d559bd1e00080163dc4b43312cde kdoctools-6.0.0.tar.xz 01e029d636d97fc9a257a273cbe0b211 kpty-6.0.0.tar.xz bbb148d38eed535bb9577748ceb06357 kunitconversion-6.0.0.tar.xz f2cc31377f41b79ca52d4eb40c42894b kcolorscheme-6.0.0.tar.xz 48df23dbabdd99d71abe5edae5394d62 kconfigwidgets-6.0.0.tar.xz 08e20f41e2688e573d781d7d692cacdf kservice-6.0.0.tar.xz e34267126f5e7d46ff5ab0c0fc78d64a kglobalaccel-6.0.0.tar.xz 2eacfd0463b1d5687b2c1c9ad3fa8014 kpackage-6.0.0.tar.xz b985ce1b579e4da7f2c0994fda195289 kdesu-6.0.0.tar.xz a33286edcde3d3ad7134a4db09227bf4 kiconthemes-6.0.0.tar.xz 3fc8f5b9a780a4848064dc72f9844003 knotifications-6.0.0.tar.xz 0b0a8c64155013ebb43f4cc001d6ce21 kjobwidgets-6.0.0.tar.xz 6bcd6ec8fd59771da4c9dbc705dde02d ktextwidgets-6.0.0.tar.xz 5de68ebf37021a60488388732388b76e kxmlgui-6.0.0.tar.xz e67eb02aa35a248937feca26b7028748 kbookmarks-6.0.0.tar.xz 33679e8e105abdfd1bb09f75d1749375 kwallet-6.0.0.tar.xz 2c782d6072737810e8ca371ccdcbb19d kded-6.0.0.tar.xz a3d60dc1c5ed3c7e4494ff58c5735c29 kio-6.0.0.tar.xz 6111defab41958eee9a52da6dc306db9 kdeclarative-6.0.0.tar.xz 8202576f8624c0a83d127e1da4514fff kcmutils-6.0.0.tar.xz 4184323526fa39a73c6e935958a68bcc kirigami-6.0.0.tar.xz 00ba7e0955491ce5aeccf5ac88f6a3ec syndication-6.0.0.tar.xz 2b0ec2d3a917703b5f41fbf5f5c7dbb0 knewstuff-6.0.0.tar.xz fca1fe0771881e164b6a215cf1e28b77 frameworkintegration-6.0.0.tar.xz 4c470da26e21c1531368ca524b480014 kparts-6.0.0.tar.xz 2503b86bd37eb4d9e4bf42a69f0da32a syntax-highlighting-6.0.0.tar.xz 81ecc55af1cb0a0f13f1fc3860eb61d6 ktexteditor-6.0.0.tar.xz e6ae9483863a45be56557c0500a17568 modemmanager-qt-6.0.0.tar.xz bcc9eacf11e58c9cbbac7d9e4b0cb82e kcontacts-6.0.0.tar.xz 99ea6f649906b13eb1456e58c260506f kpeople-6.0.0.tar.xz 3d2d05a15c28e359df9a94fc31ca6e21 bluez-qt-6.0.0.tar.xz 6234859a96372fcd260a3a229dc0bfb3 kfilemetadata-6.0.0.tar.xz 57d06b4db354d93cf82d4391e8e9e3e9 baloo-6.0.0.tar.xz #795661e00d90c350bfc57665060a0ebf breeze-icons-6.0.0.tar.xz bf373b60871e30f8ed1a0cc8fd82df2e krunner-6.0.0.tar.xz 0f56b81c3aa5b419d137fbe55f1a57ac prison-6.0.0.tar.xz 2c5a2c2eaa340a32227d4bce6f87fa48 qqc2-desktop-style-6.0.0.tar.xz 10b15c95f371c54f21e4cc49a305b9f6 kholidays-6.0.0.tar.xz e370b59bd1b5d827dbce2799ea1ba23e purpose-6.0.0.tar.xz 5d757437cbbad16e9830991f0f500ab9 kcalendarcore-6.0.0.tar.xz 07abf1cf5e5f52b846e6bf9aeaeb6518 kquickcharts-6.0.0.tar.xz cfe50038b8bffe743f28db553f958d5b knotifyconfig-6.0.0.tar.xz 84c03c331aa4af0c39f206e7cc30e156 kdav-6.0.0.tar.xz 306d264725d574b435eea8e57dfcec95 kstatusnotifieritem-6.0.0.tar.xz 9ffd741e4f57e6a619e113098cddcd87 ksvg-6.0.0.tar.xz e4067a993382ef01c82c6f15f05c2d14 ktexttemplate-6.0.0.tar.xz 430cd1f91678dd0ffaacf56458a8dd9d kuserfeedback-6.0.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 package is covered separately at . Installation of KDE Frameworks &as_root; If installing in /opt and there is an existing /opt/kf6 either as a regular directory or a symbolic link, it should be reinitialized (as root): mv -v /opt/kf6 /opt/kf6.old && install -v -dm755 $KF6_PREFIX/{etc,share} && ln -sfv /etc/dbus-1 $KF6_PREFIX/etc && ln -sfv /usr/share/dbus-1 $KF6_PREFIX/share && ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share mv -v /opt/kf6 /opt/kf6.old && install -v -dm755 $KF6_PREFIX/{etc,share} && ln -sfv /etc/dbus-1 $KF6_PREFIX/etc && ln -sfv /usr/share/dbus-1 $KF6_PREFIX/share && ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share && install -v -dm755 $KF6_PREFIX/lib && ln -sfv /usr/lib/systemd $KF6_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|-6.*$||') # 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=$KF6_PREFIX \ -DCMAKE_PREFIX_PATH=$QT6DIR \ -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-&kf6-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 $KF6_PREFIX/lib. Remove them now (as &root;): rm -rf $KF6_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/kf6 /opt/kf6-&kf6-version; ln -sfvn kf6-&kf6-version; /opt/kf6 Command Explanations -DCMAKE_PREFIX_PATH=$QT6DIR: 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, checkXML6, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca6, kcookiejar6, kdebugdialog6, kded6, kdeinit6, kdeinit6_shutdown, kdeinit6_wrapper, kf6-config, kf6kross, kgendesignerplugin, kglobalaccel6, kiconfinder6, kjs6, kjscmd6, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool6, kquitapp6, kreadconfig6, kshell6, ktelnetservice6, ktrash6, kwalletd6, kwallet-query, kwrapper6, kwriteconfig6, meinproc6, parsetrigrams, plasmapkg2, preparetips6, protocoltojson, and solid-hardware6 libkdeinit6_klauncher.so, libKF6Activities.so, libKF6ActivitiesStats.so, libKF6Archive.so, libKF6Attica.so, libKF6AuthCore.so, libKF6Auth.so, libKF6Baloo.so, libKF6BluezQt.so, libKF6Bookmarks.so, libKF6CalendarCore.so, libKF6CalendarEvents.so, libKF6Codecs.so, libKF6Completion.so, libKF6ConfigCore.so, libKF6ConfigGui.so, libKF6ConfigWidgets.so, libKF6Contacts.so, libKF6CoreAddons.so, libKF6Crash.so, libKF6DAV.so, libKF6DBusAddons.so, libKF6Declarative.so, libKF6DNSSD.so, libKF6DocTools.so, libKF6Emoticons.so, libKF6FileMetaData.so, libKF6GlobalAccel.so, libKF6GuiAddons.so, libKF6Holidays.so, libKF6I18n.so, libKF6IconThemes.so, libKF6IdleTime.so, libKF6ItemModels.so, libKF6ItemViews.so, libKF6JobWidgets.so, libKF6JSApi.so, libKF6JsEmbed.so, libKF6JS.so, libKF6KCMUtils.so, libKF6KDELibs4Support.so, libKF6KHtml.so, libKF6KIOCore.so, libKF6KIOFileWidgets.so, libKF6KIOGui.so, libKF6KIONTLM.so, libKF6KIOWidgets.so, libKF6Kirigami2.so, libKF6KrossCore.so, libKF6KrossUi.so, libKF6MediaPlayer.so, libKF6NetworkManagerQt.so, libKF6NewStuffCore.so, libKF6NewStuff.so, libKF6Notifications.so, libKF6NotifyConfig.so, libKF6Package.so, libKF6Parts.so, libKF6PeopleBackend.so, libKF6People.so, libKF6PeopleWidgets.so, libKF6PlasmaQuick.so, libKF6Plasma.so, libKF6Plotting.so, libKF6Prison.so, libKF6Pty.so, libKF6Purpose.so, libKF6PurposeWidgets.so, libKF6QuickAddons.so, libKF6Runner.so, libKF6Service.so, libKF6Solid.so, libKF6SonnetCore.so, libKF6SonnetUi.so, libKF6Style.so, libKF6Su.so, libKF6SyntaxHighlighting.so, libKF6TextEditor.so, libKF6TextWidgets.so, libKF6ThreadWeaver.so, libKF6UnitConversion.so, libKF6Wallet.so, libKF6WaylandClient.so, libKF6WaylandServer.so, libKF6WidgetsAddons.so, libKF6WindowSystem.so, libKF6XmlGui.so, libKF6XmlRpcClient.so, and libkwalletbackend6.so /opt/kf6 (symlink to /opt/kf6-&kf6-version;) if installing in /opt Short Descriptions checkXML6 is a tool to check for syntax errors in KDE DocBook XML files checkXML6 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 kbuildsycoca6 rebuilds the KService desktop file system configuration cache kbuildsycoca6 kcookiejar6 is a command line interface to the HTTP cookie store used by KDE, a D-BUS service to store/retrieve/clean cookies kcookiejar6 kded6 consolidates several small services in one process kded6 kdeinit6 is a process launcher somewhat similar to the famous init used for booting UNIX kdeinit6 kf6-config is a command line program used to retrieve information about KDE installation or user paths kf6-config kf6kross executes kross scripts written in KDE Javascript, Python, Ruby, Java and Falcon kf6kross kgendesignerplugin generates widget plugins for Qt(TM) Designer kgendesignerplugin kglobalaccel6 is a daemon use to register the key bindings and for getting notified when the action triggered kglobalaccel6 kjs6 is KDE ECMAScript/JavaScript engine kjs6 kjscmd6 is a tool for launching KJSEmbed scripts from the command line kjscmd6 kjsconsole is a console for kjs6 kjsconsole kpackagelauncherqml is a commandline tool for launching kpackage QML application kpackagelauncherqml kpackagetool6 is a command line kpackage tool kpackagetool6 kreadconfig6 is a command line tool to retrieve values from KDE configuration files kreadconfig6 kshell6 start applications via kdeinit kshell6 ktelnetservice6 is a telnet service ktelnetservice6 ktrash6 is a helper program to handle the KDE trash can ktrash6 kwalletd6 is the wallet manager daemon kwalletd6 kwriteconfig6 is a command line tool to write values in KDE configuration files kwriteconfig6 meinproc6 converts DocBook files to HTML meinproc6 plasmapkg2 is a tool to install, list, remove Plasma packages plasmapkg2 preparetips6 is a script to extract the text from a tips file preparetips6 solid-hardware6 is a command line tool to investigate available devices solid-hardware6