%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). &lfs78_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 , , , , , , , , , , , (built with qt5), , , 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) Optional (needed to build Bluez-Qt), ModemManager (needed to build ModemManager-Qt) Runtime dependency for FrameworkIntegration oxygen-fonts Runtime dependencies for kapidox , Jinja2, and PyYAML Additional image formats support in KImageFormats and OpenEXR Optional dependencies for KIO Optional dependencies for ModemManager-QT ModemManager Optional dependencies for Solid , and media-player-info (runtime) 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=http://download.kde.org/stable/frameworks/&kf5-short-version;/ wget -r -nH --cut-dirs=3 -A '*.xz' -np $url The options used here are: -r recurse through child directories -nH disable generation of host-prefixed directories --cut-dirs=3 remove three levels of directories when saving -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" db68ef6b8bc6841318f90f001db359b4 attica-5.17.0.tar.xz #dedb4a47cc8f850078792b5404de0d43 extra-cmake-modules-5.17.0.tar.xz b9b1139498ef920299b9a2afe18ef862 kapidox-5.17.0.tar.xz 30aad48540a1ff92ea9c1695f51fdb02 karchive-5.17.0.tar.xz 7cf030ca9ebb0815465a8bc5dce1a850 kcodecs-5.17.0.tar.xz 410edf8d9e568c962ab4941b0aab2aa1 kconfig-5.17.0.tar.xz faedee33ad814d566e3ecb0cb31872b4 kcoreaddons-5.17.0.tar.xz 9686e5800a49fc858e4247a71688739f kdbusaddons-5.17.0.tar.xz 4c000db2189d5e08a8f2f326ca8813d5 kdnssd-5.17.0.tar.xz ba46975a2e812203b76d86689b28eb86 kguiaddons-5.17.0.tar.xz 91f35b3fba203c887c697fce42cdffbe ki18n-5.17.0.tar.xz cf7239dc8473502578e2c48eaae0f291 kidletime-5.17.0.tar.xz 52efc6a1c2dc8f33ba49c44d0ed30a82 kimageformats-5.17.0.tar.xz a2a40aebeef9934bd710944fefe5855c kitemmodels-5.17.0.tar.xz 6f2daf1b78a59e4475f363fad1f5122f kitemviews-5.17.0.tar.xz 54b4aebe3c6a8e515f596f6e1fa50456 kplotting-5.17.0.tar.xz 54b3c5cd0cabc696d8660d44ca2f0418 kwidgetsaddons-5.17.0.tar.xz 294bcc6f70b12d3e4c1d1bc363ede9e6 kwindowsystem-5.17.0.tar.xz 8efcd476a709fe9307b9d819b7385b50 networkmanager-qt-5.17.0.tar.xz 911af1ae598c04d5183383cb4b36970f solid-5.17.0.tar.xz eed22fb1732900294751498519e5ac4a sonnet-5.17.0.tar.xz 0f18a9e9b945e6f5e390fe7ea86f9aa6 threadweaver-5.17.0.tar.xz 84489bee19eff7c58b9def9f93000783 kauth-5.17.0.tar.xz a8f376583e176844e84fe9eda5ac7fbf kcompletion-5.17.0.tar.xz 45ba2b1d2efadf752a04b99a873ba50b kcrash-5.17.0.tar.xz e238a08b2d496a855c726c5c186c97b9 kdoctools-5.17.0.tar.xz f1c3cb03e9b4c9df48a62b6186ef1ef7 kpty-5.17.0.tar.xz 17c85142d3e4b54fabd65eaa96ed3fc9 kunitconversion-5.17.0.tar.xz c3d2446e1d03bfeb4a98f158114227b6 kconfigwidgets-5.17.0.tar.xz afdd65793169dda4bc653fd1a3239d4f kglobalaccel-5.17.0.tar.xz 1afaa448abd0164df6be8c6c65283947 kpackage-5.17.0.tar.xz 6f6da4071f8da925be07cc51cd26b023 kservice-5.17.0.tar.xz 285803e12019449593eb7e80c5281a76 kdesu-5.17.0.tar.xz 96cb791209374e1e5ac016aba9da544d kemoticons-5.17.0.tar.xz c7e44b909ad5ff372dfd2a2341e09e0f kiconthemes-5.17.0.tar.xz c806e83a09b0e61ab0657b1de3a0afc7 kjobwidgets-5.17.0.tar.xz 6deaac0cc4563dc3abb7b6e2307886ee knotifications-5.17.0.tar.xz c58ad8e036b4665f1fe1fb8cc1a996bd ktextwidgets-5.17.0.tar.xz 597b6b55a035d3d53698cdfa18ec92c3 kwallet-5.17.0.tar.xz 86675f87a02ab8cf0a0222a69d448035 kxmlgui-5.17.0.tar.xz 27952c9e577d60b32777f7f03c8c14e8 kbookmarks-5.17.0.tar.xz b3491784b7d7ad5b450b70c1f6e19ea7 kio-5.17.0.tar.xz bd0f526ee90ef5f24a0af50f5d203919 kdeclarative-5.17.0.tar.xz 194528db96160fe854663244c7bac7ce kcmutils-5.17.0.tar.xz 9d893ef7de02b2e61dfe24ea82744e6f frameworkintegration-5.17.0.tar.xz 9af3424a0ffd700ee9a65e96c14470f4 kinit-5.17.0.tar.xz 99343eda8cfcf0a7632d145bd2107501 knewstuff-5.17.0.tar.xz bb5e0dd8aeffbe28c018225823a28190 knotifyconfig-5.17.0.tar.xz 0bbbd0837f1835a8e2ca149a188648bf kparts-5.17.0.tar.xz e30b0aea360b8dbc441347d5311df872 kactivities-5.17.0.tar.xz f29779d28bd5286dfde1e4ce7a5c1344 kded-5.17.0.tar.xz 8a7dc6209d292d61f03552b567c66692 kdewebkit-5.17.0.tar.xz 50aeddc84e24b3f69560c32aa56b9588 ktexteditor-5.17.0.tar.xz 972c4187b37644a4f8f491d759f01b2c kdesignerplugin-5.17.0.tar.xz 5b0f2f31497c81870f3ccc68e3e7a5fa plasma-framework-5.17.0.tar.xz #7422bc84440e9ffcfdc18e371e46184a modemmanager-qt-5.17.0.tar.xz 51288bcff1eb7bd8f360c5dc09d048f4 kpeople-5.17.0.tar.xz c5ae8477840ab1c93635dcc08910c65c kxmlrpcclient-5.17.0.tar.xz 40949a460db277907e2f9bb8163e295e bluez-qt-5.17.0.tar.xz b40348fe69764fd95cc5254e85b29dea kfilemetadata-5.17.0.tar.xz 68f4935a18f95a2737e1cc3bc9f76fb9 baloo-5.17.0.tar.xz #9559ac7cc25959800ecfc8ab3b2d4ee5 breeze-icons-5.17.0.tar.xz #4a6179f80c9e253ef790d1d409884f11 oxygen-icons5-5.17.0.tar.xz da071104f8507b04aebf201e006d234c portingAids/kjs-5.17.0.tar.xz 31293fec18749f0c0d8aad4be2ed27df portingAids/kdelibs4support-5.17.0.tar.xz b31c6e254c591438a28095b580d9b6f2 portingAids/khtml-5.17.0.tar.xz c38861c6dec77d27ede32cb0be49f721 portingAids/kjsembed-5.17.0.tar.xz 8b8a8b24664f2ad324d92fe83d468ce4 portingAids/kmediaplayer-5.17.0.tar.xz 2750d392adaa6fb1e5854722536ccb52 portingAids/kross-5.17.0.tar.xz cfba38c903d9a939e3a25174837903b3 portingAids/krunner-5.17.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 "TBD". The modemmanager-qt package may be built if its optional dependency has been installed. Installation of KDE Frameworks &as_root; If inatalling in /opt and there is an existing /opt/kf5 either as a regular directory or a symbolic link, it should be removed (as root): rm -rf /opt/kf5 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 tar -xf $file pushd $packagedir mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \ -DCMAKE_PREFIX_PATH=$QT5DIR \ -DCMAKE_BUILD_TYPE=Release \ -DLIB_INSTALL_DIR=lib \ -DBUILD_TESTING=OFF \ -Wno-dev .. make as_root make install popd 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. -DLIB_INSTALL_DIR=lib: This switch is used to get libraries to install to $KF5_PREFIX/lib instead of $KF5_PREFIX/lib64 on a 64 bit system. -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 There are 53 programs installed in /opt/kf5/bin. There are too many kf5 libraries (79) to list separately. /opt/kf5 (symlink to /opt/kf5-&kf5-version;) 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 kactivitymanagerd is the KDE Plasma Workspace Activity Manager. kactivitymanagerd 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 kgenapidox is a tool to generate API documentation in the KDE style. kgenapidox 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 kmailservice5 is a mail service. kmailservice5 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