%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). &lfs110a_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) 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" cd3ab07ff2defd7d0557e1b974232bcf attica-5.89.0.tar.xz #402dfd0b61fa3772789bebfc06db8a84 extra-cmake-modules-5.89.0.tar.xz cebf1bed3081958f1236b229e22dca14 kapidox-5.89.0.tar.xz 0ad5c95426a4e5c7c38729bffe739c00 karchive-5.89.0.tar.xz eaf7e98e91eae32c941b93db7071e6d8 kcodecs-5.89.0.tar.xz 57111fa47703d8f9db485fb8bdf5fd49 kconfig-5.89.0.tar.xz cc0a6de366360550f640ae30cec5ce6a kcoreaddons-5.89.0.tar.xz 7a9b7e410ee53ebd5235c31390e97ace kdbusaddons-5.89.0.tar.xz a5979386dec6bc5ea07185c6191fd6a0 kdnssd-5.89.0.tar.xz c6eeee16c03cf9544fe3c05e5221b2da kguiaddons-5.89.0.tar.xz 830e21c13d9bd366018016d7505967ad ki18n-5.89.0.tar.xz cb8a131106eab204448a65633f6c927b kidletime-5.89.0.tar.xz c94fc0a53116df9a6ac3065c185cac5b kimageformats-5.89.0.tar.xz c71f2cb017d1bf561993b6ac459462d1 kitemmodels-5.89.0.tar.xz bf9c212e8a9b2e2b102d01f8fdf62163 kitemviews-5.89.0.tar.xz 78c56206930b563503b8af5cb0c1e724 kplotting-5.89.0.tar.xz a98c933b9a0e1d8821f653d523393387 kwidgetsaddons-5.89.0.tar.xz 7d7d98aa2de27ed819aa177a93d2630f kwindowsystem-5.89.0.tar.xz d055d3eac326d3787284d10146a0bea6 networkmanager-qt-5.89.0.tar.xz c760daf54bceb77206f9c27c8e896481 solid-5.89.0.tar.xz 47e19ec2307156950ef311022ab6035a sonnet-5.89.0.tar.xz 4117c5cc60f603fe6cc808f5f95cd6b1 threadweaver-5.89.0.tar.xz 63654c36292cc8f17802d0cd160c5e70 kauth-5.89.0.tar.xz 696ac4db4cee550110b73513d6de328d kcompletion-5.89.0.tar.xz c204be3aad70301948db962cd54f3154 kcrash-5.89.0.tar.xz 5fac418b35c1061a3ae2a6b12edb3437 kdoctools-5.89.0.tar.xz b4008d6247bb95dd260e505e5c499c91 kpty-5.89.0.tar.xz 50268ba699696ea8365d22ec629eda2e kunitconversion-5.89.0.tar.xz 649436d384174679aff13fe9119d7b1a kconfigwidgets-5.89.0.tar.xz 9656cd72609ff5bef5d15536e1104fcc kservice-5.89.0.tar.xz 4d76a71894bc3c64c7e33edec1d3033e kglobalaccel-5.89.0.tar.xz 83072a1336afe8f36d6ab1d350757fbd kpackage-5.89.0.tar.xz d58e8fd4fb916ec62607d8ef37bd5f41 kdesu-5.89.0.tar.xz 2ceee2c6b22d029e3d891d89b0ed9309 kemoticons-5.89.0.tar.xz fa4d699bdd8db1dda1688ffa97d104f7 kiconthemes-5.89.0.tar.xz cc378e780a902f30475ef0abbea6a944 kjobwidgets-5.89.0.tar.xz 86ab09ca98d090bb8ff151857f3bda61 knotifications-5.89.0.tar.xz 03251e33a1e32b98a5568c258ca80bd2 ktextwidgets-5.89.0.tar.xz 1cf21957104118c64e178b8c78eccec5 kxmlgui-5.89.0.tar.xz b73cee4a8bec3017cc6dd283c499b9fe kbookmarks-5.89.0.tar.xz 1263a6c5f3a7b3b4148b1c80b7864df5 kwallet-5.89.0.tar.xz db2278cb1ca2bcb313ca1dc244740081 kded-5.89.0.tar.xz 5f8fa4e729d4f30a8a367c380bd885eb kio-5.89.0.tar.xz eb7bb7b444c23c9e5c7b076a0350fe24 kdeclarative-5.89.0.tar.xz ef35550c2799d531fce7c7735a521d08 kcmutils-5.89.0.tar.xz 62bdd1ebc1feea4ad0838fc9a3b7f65a kirigami2-5.89.0.tar.xz 7e3bb71b4ad7b07103899b4ff41c96d4 syndication-5.89.0.tar.xz b0ce36bad9a8105b0b79f74f005e67ad knewstuff-5.89.0.tar.xz 8539510816205c3b2f53b73e25d8c5be frameworkintegration-5.89.0.tar.xz 54c136b83a78077cb739beaa7ba34f01 kinit-5.89.0.tar.xz c7499c3c23f9365f46389fe973541d9c kparts-5.89.0.tar.xz 8ca5ece8f271aa17fb95617c6506e457 kactivities-5.89.0.tar.xz #087dd7dce7d8290df28354d226c29d9e kdewebkit-5.89.0.tar.xz 35335e8dc86a04b18a3fe0d710b29446 syntax-highlighting-5.89.0.tar.xz c2560e22a1b7b468ece0ec52d3d111b8 ktexteditor-5.89.0.tar.xz 9ecfe14ff4c4910214dcc76566b34210 kdesignerplugin-5.89.0.tar.xz a1910f36f9d64d3967a5966d2ac5be30 kwayland-5.89.0.tar.xz a518b9329f31aea724d2c649098e33ba plasma-framework-5.89.0.tar.xz #a8c8af5e23d48548f20f43f3f84d57c7 modemmanager-qt-5.89.0.tar.xz 7367ad91d40f8695872f26dcccf5c0e6 kpeople-5.89.0.tar.xz 44209863b36e16eb49db828e5e0c4026 kxmlrpcclient-5.89.0.tar.xz b0ae1a63107953579e7ca6caf8bea395 bluez-qt-5.89.0.tar.xz 524638a04c2ea35048ded1f0444b6ffa kfilemetadata-5.89.0.tar.xz f659582f26a0e685a6c1083d01fb4dac baloo-5.89.0.tar.xz #1fbe6bf2340c03c45544f241e12a0fa8 breeze-icons-5.89.0.tar.xz #98ff341a87bbb3be3bb829df927918d3 oxygen-icons5-5.89.0.tar.xz c8f837be9d23595c43f4e8f0d03f91ca kactivities-stats-5.89.0.tar.xz 0d546ccb0328cd7ed93b625b907a7a3a krunner-5.89.0.tar.xz 24154b6d27e3a8e4a563f7e96daa0717 prison-5.89.0.tar.xz 896074feab4e571ab6115695f9f8f708 qqc2-desktop-style-5.89.0.tar.xz efbfbd3f04f50deb34a9b49b1a3ac9b5 kjs-5.89.0.tar.xz 9726f786ed53170f255fc974fc9926b9 kdelibs4support-5.89.0.tar.xz 183fdecd124341638be7922e2c76473c khtml-5.89.0.tar.xz a5a574e3a00d0913d52b54590278ac29 kjsembed-5.89.0.tar.xz f97a524f00c8932b076aa48f6902c4bc kmediaplayer-5.89.0.tar.xz 5e7e67177c5a113a947f62da2f2e03e0 kross-5.89.0.tar.xz 5a5c05323685c344ebe05b041b8966c5 kholidays-5.89.0.tar.xz 523c1b59f8c4a95f51533cb2441a6785 purpose-5.89.0.tar.xz d5b28590b5cf79dd7f1c0bc08ab485af kcalendarcore-5.89.0.tar.xz 4d0c6e8e5c7acb4938ddd263dcba810c kcontacts-5.89.0.tar.xz c8e5fd500c777839aa464e50f391b1c8 kquickcharts-5.89.0.tar.xz 733cfc12dbc63cbd485fe63e28ec1501 knotifyconfig-5.89.0.tar.xz 0d3c538d2d18e0e4b176c899cc91b6c2 kdav-5.89.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 case $name in plasma-framework*) sed -i 's/${EGL_TARGET}/GL EGL/' src/declarativeimports/core/CMakeLists.txt ;; 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