%general-entities; ]> $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). &lfs111_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 Additional recommended dependencies for kapidox (Run time), , and (if those python modules are not present at build time, they will be downloaded) and (if this python module is not present at build time, it will be downloaded) Other python modules needed by kapidox requests, doxyqml, doxypypy, urllib3, idna, charset-normalizer, and certifi (all will be automatically installed at build time if not present on the system) 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=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" 4c58b14c3e9b566efa1192d4ecd2af79 attica-5.94.0.tar.xz #87284231fba89d63a644fd5580a93419 extra-cmake-modules-5.94.0.tar.xz 05881681bb54a656df941760ec95f78f kapidox-5.94.0.tar.xz 7755930b43e6d1c2ffd84d3a0900837c karchive-5.94.0.tar.xz 5e369a4776d905113ffd3ff4253ec242 kcodecs-5.94.0.tar.xz ef377ebb6a0a186f0b0c1d866e9cd9e0 kconfig-5.94.0.tar.xz 08307d77429c08cace165ee332774150 kcoreaddons-5.94.0.tar.xz ec62f262f1e18f18f98583e2c2a9eef0 kdbusaddons-5.94.0.tar.xz 6e904e169b64308f26a849e97b57a229 kdnssd-5.94.0.tar.xz b2c6301308c0d14e175ed7247a20a2f5 kguiaddons-5.94.0.tar.xz a5ed561a992e8c153ba8ee9e928df775 ki18n-5.94.0.tar.xz a20e40478fd1d97dfb1de841c618ddbb kidletime-5.94.0.tar.xz 5d8a593d887dd87ec275ecd60463c23e kimageformats-5.94.0.tar.xz c70d3292fd64cf0601031a77b952da16 kitemmodels-5.94.0.tar.xz 598084088d4aa8774ed45fd90f27b889 kitemviews-5.94.0.tar.xz a405d0efed821d49046701e23df3a15a kplotting-5.94.0.tar.xz 28ec585eb7b021d9fe36c34a04e15e45 kwidgetsaddons-5.94.0.tar.xz dc4600c342cf19a59f77a0a3e6f15f9a kwindowsystem-5.94.0.tar.xz 13b415dae8fecc7bc13fd74da8dcbd5c networkmanager-qt-5.94.0.tar.xz f01586b53ec25461a79e9b041384ccf6 solid-5.94.0.tar.xz 4d9bb4004e793c74090b09c517a73ed3 sonnet-5.94.0.tar.xz e0587825e0f9a9900907ebc5bdec4fc7 threadweaver-5.94.0.tar.xz 63298692e6643c2f9c46f5e896092249 kauth-5.94.0.tar.xz df116b33cd4701417804995181043e17 kcompletion-5.94.0.tar.xz b15403397a15cdd19cc9c37cc641a390 kcrash-5.94.0.tar.xz 89150622d44cbe16d0866630679ed344 kdoctools-5.94.0.tar.xz 8c9e66d27034ab827a7bff258c26ac40 kpty-5.94.0.tar.xz e4614a7ff9b50b45f0d331569b1f037c kunitconversion-5.94.0.tar.xz 99b651617d4aa11de8da3a29fca4f293 kconfigwidgets-5.94.0.tar.xz 0b503bfe8fa34c67d7cd05c3e4569deb kservice-5.94.0.tar.xz 8962279f6b830f6facb2b4774fe3bbd5 kglobalaccel-5.94.0.tar.xz f21bde21930493488e580b7ab2fb9a68 kpackage-5.94.0.tar.xz 0740b92bcdf9a693337a44d8d60010a8 kdesu-5.94.0.tar.xz 4074814f4ef40b9c4ef98730d04eacc3 kemoticons-5.94.0.tar.xz 39d57f459d465ee36257afa00d14c4af kiconthemes-5.94.0.tar.xz 4efc13aa9b4c25e0c8ecdccbded0258b kjobwidgets-5.94.0.tar.xz b1eed570adcf176e26732e11d443b45f knotifications-5.94.0.tar.xz 02196b04420b82dea5a8cfb1afe4c3ed ktextwidgets-5.94.0.tar.xz 9e3262d243d0647fa449637bb6721257 kxmlgui-5.94.0.tar.xz fdf2b3aa23143a61245d5c9c71b1e10a kbookmarks-5.94.0.tar.xz 33dfaa62d9a29c728d5517cb470f4cab kwallet-5.94.0.tar.xz df17b4d7749752ea870f41ee939a6de2 kded-5.94.0.tar.xz b173ed937a1031bbe3fcb9b00cde8ddf kio-5.94.0.tar.xz e1545546a5dffb1a204ee52ce35f262a kdeclarative-5.94.0.tar.xz 1db143e7ae245d53c83310532f22c42c kcmutils-5.94.0.tar.xz a7dd929fe16bee46a7a6405496e07c1a kirigami2-5.94.0.tar.xz 0b5af5f1b6a01fbfc2f9409080b1ed6d syndication-5.94.0.tar.xz 910e635386cdbc7fb001a26188f2ad2f knewstuff-5.94.0.tar.xz e1234f34020f69e96029159b985a90fe frameworkintegration-5.94.0.tar.xz 22d387e61144829658ee37e39dc63cd3 kinit-5.94.0.tar.xz 1eda63d543969f2e92a4bcd3431042d7 kparts-5.94.0.tar.xz 21e2b0a1a22a23b10396c8eed8c31b00 kactivities-5.94.0.tar.xz #c67ab93795b50e39b1e31628da1ca011 kdewebkit-5.94.0.tar.xz 1848474b94ea30081d287870f9cba116 syntax-highlighting-5.94.0.tar.xz 0b2d6b28c7d543c1d32ad9726e29e40f ktexteditor-5.94.0.tar.xz 4fbb3293df1edb2605ce928dcb562d97 kdesignerplugin-5.94.0.tar.xz 71e3be9e7c55af746b96d6ac72434019 kwayland-5.94.0.tar.xz a3e74066c093105e4bb46f6feeecf16c plasma-framework-5.94.0.tar.xz #37ee3c5a952c19c827bb183ae0c30af1 modemmanager-qt-5.94.0.tar.xz add7886e4c40a1f391bdb590130bc7ab kpeople-5.94.0.tar.xz f4b6e612931d90c89719a91710c1ca5c kxmlrpcclient-5.94.0.tar.xz f26170bc0c78b72cdeb0908df7524181 bluez-qt-5.94.0.tar.xz 3c1187cff306f87dce08100996a93b96 kfilemetadata-5.94.0.tar.xz a453a4ab37073aafeb6e5a5c487230b9 baloo-5.94.0.tar.xz #30d8ecac16f36e4b9fd1794a39460c42 breeze-icons-5.94.0.tar.xz #0101721db51fdce9dd6e3e3b6de46f2a oxygen-icons5-5.94.0.tar.xz ff23ccf6ade8f2a7709b36846748758e kactivities-stats-5.94.0.tar.xz 69f5c374d56ff468b8cd5d0cf6b3e223 krunner-5.94.0.tar.xz 60c71e3c275b97caacd7568987a4fab4 prison-5.94.0.tar.xz 5a24bcad8364bc54f08eeef64920d2c5 qqc2-desktop-style-5.94.0.tar.xz 10cd152091f2c14d7dcb888cd69aa902 kjs-5.94.0.tar.xz caa2c3e5dcc94924877e5f1d2430b5a6 kdelibs4support-5.94.0.tar.xz 3afa34590fcc12338c17118859a604b3 khtml-5.94.0.tar.xz 7b2dd5afb48757ea1ec22f22a9fe880e kjsembed-5.94.0.tar.xz 42434eaee534d1d82cd152368fd695a8 kmediaplayer-5.94.0.tar.xz 0ded971b6d9aa1fdc27d721c022fd6e4 kross-5.94.0.tar.xz 7f5fe39fa4d9714aeffa75d381a8d63a kholidays-5.94.0.tar.xz 62928a8400931c074e4f924899e0ee3b purpose-5.94.0.tar.xz cef3c9347f6feb52ccb5bdf3d32d3572 kcalendarcore-5.94.0.tar.xz e871157fef871e5b65c728b7bbc52c47 kcontacts-5.94.0.tar.xz 774aab02052060e0935b53a80b6aee2c kquickcharts-5.94.0.tar.xz d5eb244dabef2a80fef3344410fe1d89 knotifyconfig-5.94.0.tar.xz 67d0ce7a0c7bc64c5711440817585fce kdav-5.94.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 && 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 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