%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). &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=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" 06d286995319fd9565d43bf736576a82 attica-5.85.0.tar.xz #e4d8d5d70334eb9f40feb14c0e5fa1c3 extra-cmake-modules-5.85.0.tar.xz 007581e41e7c13cc52f03c50f65c9826 kapidox-5.85.0.tar.xz deee0085dbd22032a437106ba01ba7b2 karchive-5.85.0.tar.xz 3fb5aba8c68be4c384ee17a91798ddec kcodecs-5.85.0.tar.xz eef295c85781ddf9a3abbd95a4da5df3 kconfig-5.85.0.tar.xz d7a2748aebb1206fc38cb00bb39bc0eb kcoreaddons-5.85.0.tar.xz c9b3062073d8fb0977aa63fab7582d1e kdbusaddons-5.85.0.tar.xz 510b0e437a855592d3512faa94fcd4ba kdnssd-5.85.0.tar.xz 7b5b4d7610c45895ac5138c1e762ef41 kguiaddons-5.85.0.tar.xz e9463a50c2bc56a6cebc70c487b5a45d ki18n-5.85.0.tar.xz 58a3e469ac54cb78469b27f216c87c0a kidletime-5.85.0.tar.xz 5cb4de5a5215b8f9412bbff02ac59f11 kimageformats-5.85.0.tar.xz 3f00cbe1c9ded4b9f061f0dcc3c38071 kitemmodels-5.85.0.tar.xz 5ed293814f6ca4c37a9fef6963431db0 kitemviews-5.85.0.tar.xz 040eaecd9952dc73b11ab4570f7b93f8 kplotting-5.85.0.tar.xz 381c75cf800cfe1483ea3493e2de245c kwidgetsaddons-5.85.0.tar.xz 4d9cca227b795280ee920156cdec4859 kwindowsystem-5.85.0.tar.xz f530333f5635266765b9d998ddc51d33 networkmanager-qt-5.85.0.tar.xz 254a03e4914ad144126a615ebbcbc11c solid-5.85.0.tar.xz 6883eeb4c62837d70c6d6cbd01ba4cb8 sonnet-5.85.0.tar.xz ceb00c86052dd1c9e4bef970c19f46d4 threadweaver-5.85.0.tar.xz 7e097f4474c43e08b2540a8883dc1e00 kauth-5.85.0.tar.xz dcf9b03389d733eac8ae930b26d5389a kcompletion-5.85.0.tar.xz cc72c9ac7cba7207ef1a170bb2e4719e kcrash-5.85.0.tar.xz 2676c29e1d3a93bd42e4f84f86961c4d kdoctools-5.85.0.tar.xz f85fe1b8f7319ed6e69d562671a705d0 kpty-5.85.0.tar.xz 298c9df17377b26ccd76d34f54ffad6c kunitconversion-5.85.0.tar.xz 530e29b6a5993c0f23adbe09c48a7f16 kconfigwidgets-5.85.0.tar.xz 3081cf3c1eae4121b9b1fb71a1aa7c64 kservice-5.85.0.tar.xz c3a62eeaf5d94bf326cab38dd1380204 kglobalaccel-5.85.0.tar.xz 5203415a3948fb0c3c1937bcba5c5758 kpackage-5.85.0.tar.xz f57850b50533be59335bdf2d76fcfc76 kdesu-5.85.0.tar.xz c4c930b28e1c5bd4e2a1aad9e8c328b0 kemoticons-5.85.0.tar.xz edf31862bd801304fdb578050b0326d2 kiconthemes-5.85.0.tar.xz b73b00a29afcf70d964190219ee6ccbc kjobwidgets-5.85.0.tar.xz 8b7c4520f6ffc7cfc1fbd22e0c9ffa18 knotifications-5.85.0.tar.xz fd3490e92465f433a5576b40ac348cbd ktextwidgets-5.85.0.tar.xz 5b2362e1d485d80c3111679ae4cad68b kxmlgui-5.85.0.tar.xz 679bb7a808f2d51e43f9dc26ce3f62d1 kbookmarks-5.85.0.tar.xz ceaebee871b3f792766377c1074216a3 kwallet-5.85.0.tar.xz aa1168d883e43dc304bbd809c9aa2f3d kded-5.85.0.tar.xz 30c8871003edb993afc385e16f8b1a64 kio-5.85.0.tar.xz 1da45e0185075d0c384100c17d8a789f kdeclarative-5.85.0.tar.xz 2e11d1726375387f2942cf9f3845760a kcmutils-5.85.0.tar.xz 975fa5fd7a1db023639eb26f0d5e6809 kirigami2-5.85.0.tar.xz 8de5ea8546df1d8a23a2eb1ce465dbc9 syndication-5.85.0.tar.xz 7b1926330878c8c9c8a28f2403ff2e81 knewstuff-5.85.0.tar.xz f6178e5a138b0fe4260bb74bfabd2a5f frameworkintegration-5.85.0.tar.xz e86d84f9d34aa94e55d0ca177f49a57c kinit-5.85.0.tar.xz 14c79ffe82f063ff67392f64005477d2 kparts-5.85.0.tar.xz 0fef80b90c110adfe7c775f93e1f3e1d kactivities-5.85.0.tar.xz #3557d248cdecb2bd03e0a00b0dab7ae2 kdewebkit-5.85.0.tar.xz 1ef1c6039a3e91ec533af11af19539ec syntax-highlighting-5.85.0.tar.xz 535adfca5246321df0f69de579c5f29c ktexteditor-5.85.0.tar.xz 6f09f3c76f6a698ede4fb67f6bb709cc kdesignerplugin-5.85.0.tar.xz 5253a422ba21dcb9bf92ffb53c035f2a kwayland-5.85.0.tar.xz fa2e79613982549dca6e20ecd0907fa5 plasma-framework-5.85.0.tar.xz #1ad46346789bc04b7ff10bb4bb257e84 modemmanager-qt-5.85.0.tar.xz 424f8cbccde63734ca9a41d2be38ce44 kpeople-5.85.0.tar.xz 148e239b5fd08a66e655116a7399c22d kxmlrpcclient-5.85.0.tar.xz 0a90f655455ab7dcbe5e652a84a06a6e bluez-qt-5.85.0.tar.xz 866ba6788b62d46011d6d23f4195230d kfilemetadata-5.85.0.tar.xz e4fa06ec978fece6eb13c2a9e6749fcc baloo-5.85.0.tar.xz #42665314255bdf88736973c28c8c0a65 breeze-icons-5.85.0.tar.xz #b6cad03903a685db1b323db2165355eb oxygen-icons5-5.85.0.tar.xz 65e8097e66204a7b8ae8fd616a9789a9 kactivities-stats-5.85.0.tar.xz 0da888b4320299c93b56259da68563a8 krunner-5.85.0.tar.xz baf7228889d33913fffd26faedca61e5 prison-5.85.0.tar.xz daf55ba893a81e851c42507cb7b99e48 qqc2-desktop-style-5.85.0.tar.xz 5c1a1d58b3ad5bb0d7fbbf427fc0dff1 kjs-5.85.0.tar.xz f5e0ca6f84d143f216a38cfb0c083267 kdelibs4support-5.85.0.tar.xz 06c9c414894382a06a150967d2b1bbee khtml-5.85.0.tar.xz e8f677e831ec75d8894ab77b139b0d77 kjsembed-5.85.0.tar.xz 346789a75525372ac67d46c39834b150 kmediaplayer-5.85.0.tar.xz 2e92ff7e9cc04bd2a3e06dfa24cf0f1f kross-5.85.0.tar.xz 75032ec4d4b432c7e3bb83b0bdbe0cac kholidays-5.85.0.tar.xz 7921bd89698216109cde504e59e115c0 purpose-5.85.0.tar.xz eaee772562d93a2752547c09427679cc kcalendarcore-5.85.0.tar.xz 565639b8a34802e97efaeac520d894a3 kcontacts-5.85.0.tar.xz 07a1780a5e1cb8479232cf2244b69f7a kquickcharts-5.85.0.tar.xz 345e20cbc8d815173ab5861a72b084bb knotifyconfig-5.85.0.tar.xz fc2b4c6df2f4f7c50955b31445774d3a kdav-5.85.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 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 && 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