%general-entities; ]> $LastChangedBy$ $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). &lfs10_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) 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 Required dependencies for Prison Datamatrix and QRencode 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=http://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" 1c88cf12490b17396b21628bf44ac2f5 attica-5.77.0.tar.xz #5a7910c636d46379a153b0bcde86fdb6 extra-cmake-modules-5.77.0.tar.xz 3ff69c0f50dd5f098f098d1041bed00f kapidox-5.77.0.tar.xz 1f78a31989a1edb49d9efda663fd7ad7 karchive-5.77.0.tar.xz 59aa68a9aa63bb5184ff55bbfe964bea kcodecs-5.77.0.tar.xz 4a90e5475fd7ca5325840f56d3d8665c kconfig-5.77.0.tar.xz e04c9ac5cc06caa258477f9703372484 kcoreaddons-5.77.0.tar.xz 9b43e68661403c868908d9de98fb55e5 kdbusaddons-5.77.0.tar.xz 2030bc33c273e1bb0f805ad03fdf107a kdnssd-5.77.0.tar.xz 1fdab3a35e02600ca7b83275cd4d1ee8 kguiaddons-5.77.0.tar.xz 18830bfe197660016a7b29c14930225d ki18n-5.77.0.tar.xz 08fb73549753f2c1d6f27d3e1fcb38af kidletime-5.77.0.tar.xz 0572e703b5f60873f6c2ecb5d53c7cee kimageformats-5.77.0.tar.xz 4e8d8e94c3b0f8803bba9d51388f7d51 kitemmodels-5.77.0.tar.xz c9576659a4edd52dff21ddfaa4b80799 kitemviews-5.77.0.tar.xz e5b494463be614a6622891906bc21e39 kplotting-5.77.0.tar.xz 12fb7639c25319b6710acb8e7743e9a4 kwidgetsaddons-5.77.0.tar.xz 60eeca9087697979006f3bd3c8131460 kwindowsystem-5.77.0.tar.xz 54199e7c793beaced8dbb6f1cbf4ff0a networkmanager-qt-5.77.0.tar.xz c50c31248301c30dc00d395c1eee579c solid-5.77.0.tar.xz 65b54bd20801b61c4ad414f7dda4f396 sonnet-5.77.0.tar.xz bb2392bdc19a1ced13e2ed7723f669bd threadweaver-5.77.0.tar.xz 29540787897712c6bd0d61ec99d29cd4 kauth-5.77.0.tar.xz ee50f594a2e9db21014366cadf77473d kcompletion-5.77.0.tar.xz 6c49aa9c2daa4b3689db17967279759a kcrash-5.77.0.tar.xz 617f7e630b988e89944caf6f51b6df87 kdoctools-5.77.0.tar.xz e69d0516c769d57acae792124d4c6ea2 kpty-5.77.0.tar.xz 5546bfc9051e31b3c99e25e1c90a8387 kunitconversion-5.77.0.tar.xz 56f3c52990c8e4422adb9f9d52c66aea kconfigwidgets-5.77.0.tar.xz ea9b11a949d5744f870736ffc674d854 kservice-5.77.0.tar.xz 2c5dc539320eb4f03c42eedff638d68d kglobalaccel-5.77.0.tar.xz 4d16dfbf54d9bee0cb3591226aa3ee7c kpackage-5.77.0.tar.xz 752cca700b5c3b032c2c2e3e8a8328ba kdesu-5.77.0.tar.xz 95629bcceac3ed8ed4726816e8c6043a kemoticons-5.77.0.tar.xz 3a135e90078316ee19a42189ea3832a0 kiconthemes-5.77.0.tar.xz e0ae97cc24b929bfbdb6eb2cf2d3bc18 kjobwidgets-5.77.0.tar.xz adff613f0122ddaefb9f002336349f70 knotifications-5.77.0.tar.xz 7a1306085ffad4445ba91427a7b52823 ktextwidgets-5.77.0.tar.xz 0e9464f19b23e3d43a87c002f62a3f40 kxmlgui-5.77.0.tar.xz 756b4ac1be8f996f480eab1a9cdc9580 kbookmarks-5.77.0.tar.xz b5021ed5e46eaf8ed25c172b0d73fbd6 kwallet-5.77.0.tar.xz a473d76a8ae084b6263a51a310535e1e kded-5.77.0.tar.xz 3d3d0655cd795a8ee4586c7d484f1a58 kio-5.77.0.tar.xz eb42f44df133e675de8417bb8407263d kdeclarative-5.77.0.tar.xz 1ac3b4b5b20e984f8fc9b0213cd4223b kcmutils-5.77.0.tar.xz c49f1148f38ded3c7803f87b9f29bf8b kirigami2-5.77.0.tar.xz 76ef015265429be8b5f99e4b697b7be0 knewstuff-5.77.0.tar.xz ff8a15b77f79935f90e08739ee40a6e7 frameworkintegration-5.77.0.tar.xz dd868056b62ed81696d6281d5bf3b0e0 kinit-5.77.0.tar.xz 0cfe9f9eadb47412a2f54d86354281b8 knotifyconfig-5.77.0.tar.xz c42cbd1c7b3af1fa33e8cf6e812fcafa kparts-5.77.0.tar.xz f164e8b93c36c1bcaa26a176eb9ba0c7 kactivities-5.77.0.tar.xz #d4731055b6508b48d29ad9c3459b9e16 kdewebkit-5.77.0.tar.xz bccbc38b25aa93f39cf92e7e33a8af1a syntax-highlighting-5.77.0.tar.xz ce2f83c56eebc81bb8ab1a6e6fb1c742 ktexteditor-5.77.0.tar.xz cb9c753eefe045f36f7acb6ce10edca5 kdesignerplugin-5.77.0.tar.xz c730b5144af115627149caf739786770 kwayland-5.77.0.tar.xz 8b23fd8555acbd2738d332f75a19d83d plasma-framework-5.77.0.tar.xz #21e8931f7d6ef1de21e68d041a5645ad modemmanager-qt-5.77.0.tar.xz 1be757e218979c4185806dfdaadd18df kpeople-5.77.0.tar.xz 137c6a33c782912e16ae413da627006d kxmlrpcclient-5.77.0.tar.xz b1ce3754f40518c0f6398db172d4adc3 bluez-qt-5.77.0.tar.xz 694aaf815cd828cfc116b29b78f253b4 kfilemetadata-5.77.0.tar.xz 9d83a40826cd0c5c189f217eafc8f33e baloo-5.77.0.tar.xz #6d4cd111ecaaf18137b3d927ee319aa0 breeze-icons-5.77.0.tar.xz #750e034aaf3a2a87f9823dfec211e068 oxygen-icons5-5.77.0.tar.xz c5f09fe172eca2f22cebc61ab1809a36 kactivities-stats-5.77.0.tar.xz fa11049dea1822a2c764d94e67cb0e98 krunner-5.77.0.tar.xz #4d040239746f41babc5289425444949a prison-5.77.0.tar.xz 01db2c910f5531ec6ecba475ade399fe qqc2-desktop-style-5.77.0.tar.xz 7b4dc53fc8edbcaa45dae31609637c97 kjs-5.77.0.tar.xz 86e8fa3f93ee20e8889b262738c1d106 kdelibs4support-5.77.0.tar.xz 3df88069e9e276e1a3d9ee3fb15f6951 khtml-5.77.0.tar.xz e20386bc2444ccf748405069ae6c509c kjsembed-5.77.0.tar.xz 896bd4400521378da00ea7db5cb1f212 kmediaplayer-5.77.0.tar.xz 57abd00bddc445af5cc268cbbf486876 kross-5.77.0.tar.xz c59eaf24aa8562948fd391ce9eda44b2 kholidays-5.77.0.tar.xz 7f7cb5fb7aef7fea4bf8bbd3f8858eba purpose-5.77.0.tar.xz 221abecad2ad845b4fda07b0da9deab1 syndication-5.77.0.tar.xz e5d8acac5cdb5cdea76071e5c7651d3a kcalendarcore-5.77.0.tar.xz 2c9da8790a2557b330d803698d91b65f kcontacts-5.77.0.tar.xz b52e8fa1def1211a041f73b4af1ecf55 kquickcharts-5.77.0.tar.xz b3e3350b3ee60902cefb017c5e70fb3f kdav-5.77.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 prison package (bar code reader) may be built if the required external libraries are 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 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. 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, libKF5Pty.so, libKF5Purpose.so, libKF5PurposeWidgets.so, libKF5QuickAddons.so, libKF5Runner.so, libKF5Service.so, libKF5Solid.so, libKF5SonnetCore.so, libKF5SonnetUi.so, libKF5Style.so, libKF5Su.so, libKF5Syndication.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