%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). &lfs79_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 and 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" 3b4b45a3e250cec426890735089c7fcf attica-5.19.0.tar.xz #c18b4e3ad6e37ce1fe372931d2b269fb extra-cmake-modules-5.19.0.tar.xz ed50b3908baef964e14266477133e3ea kapidox-5.19.0.tar.xz de8678f38303699cf66303f29bb06748 karchive-5.19.0.tar.xz 7569f06a767ddd08ece025fe50197eba kcodecs-5.19.0.tar.xz 79953233cd7d507f4f8394bf62e23078 kconfig-5.19.0.tar.xz 996db46c7e3b6a3b1837a0cc9373bcdd kcoreaddons-5.19.0.tar.xz 4ef9082483a46d04f531d1dce8be4232 kdbusaddons-5.19.0.tar.xz 678deda3ac690b5cc43f398504211273 kdnssd-5.19.0.tar.xz b423159cec98dbac442bdb88e1daeda4 kguiaddons-5.19.0.tar.xz 281cfa08356179d250b67b6d19b85b46 ki18n-5.19.0.tar.xz 945cd1f8bf3b5b34c7db3d7693274314 kidletime-5.19.0.tar.xz 678b42ebec88ce18ac0c85d539fada01 kimageformats-5.19.0.tar.xz acf477f070df240248cb7eab316ff370 kitemmodels-5.19.0.tar.xz ab98c10a12f67c437a8918ebfcf1ac80 kitemviews-5.19.0.tar.xz 7487f642bc0c0ed9a38e68c4ef21ff2c kplotting-5.19.0.tar.xz b1b37d5c240ad5dea9c43012282beb7e kwidgetsaddons-5.19.0.tar.xz 5e4a9cbe3d4217062c8656833db641f8 kwindowsystem-5.19.0.tar.xz 327dc9c1ec64e59357545e842d29e5da networkmanager-qt-5.19.0.tar.xz d664fa2d968c6d6a273881e90f749c7e solid-5.19.0.tar.xz 08106da14942ebdfe0b901e649c20d7c sonnet-5.19.0.tar.xz fb9848428899fa10c46121810cf3a022 threadweaver-5.19.0.tar.xz ab6498a04ed69236cb582677df829c91 kauth-5.19.0.tar.xz e0542f7b67153e79efcdbb0877979775 kcompletion-5.19.0.tar.xz 6ede0e1e87a9009d9b24b3a824543dc9 kcrash-5.19.0.tar.xz 6c05f13822f918abf26b56510861d392 kdoctools-5.19.0.tar.xz 09e682b3395c9eb5f1a63203564c7d99 kpty-5.19.0.tar.xz 989c83f68e01d4f3bdc13fbe8299816a kunitconversion-5.19.0.tar.xz ce0c538d90c1753fea03be8beacfc648 kconfigwidgets-5.19.0.tar.xz b1d5dc66f1ab4320b92b792203d3737a kglobalaccel-5.19.0.tar.xz fb28532a75361e3c8b26bf4acad7b158 kpackage-5.19.0.tar.xz ca272f22047a121d3e21f2bad845295c kservice-5.19.0.tar.xz adcff09780e4b64d1148825f452ded1d kdesu-5.19.0.tar.xz 9126afb4d6d54090f0b72ff08f396d96 kemoticons-5.19.0.tar.xz 234f1a331fcda7425061cc0667b62fc9 kiconthemes-5.19.0.tar.xz 3b27494142b2a8eb01c85ad811f1ba02 kjobwidgets-5.19.0.tar.xz c5efd59dd9f2687aa2efae4a5356ce9f knotifications-5.19.0.tar.xz c4f03d70c30725e636eaf43b5dcfd893 ktextwidgets-5.19.0.tar.xz 1c6c9aac635b623ab78368dd8617ca4e kwallet-5.19.0.tar.xz 8e29c5073c871cb1a2128c717500b325 kxmlgui-5.19.0.tar.xz 95e4a58669b64aff6b4341ec3438eac4 kbookmarks-5.19.0.tar.xz f7a87528e9f0fba984323d26773cd553 kio-5.19.0.tar.xz 045ed4200129ee96b8ca521a005ac33c kdeclarative-5.19.0.tar.xz 3b94a572bc0d4ca9acff03f6f37421d3 kcmutils-5.19.0.tar.xz 5ff469c4b86c11bae91b1ee43a8fe386 frameworkintegration-5.19.0.tar.xz 3c40a568bfe04957ad68b9fa1afe54fd kinit-5.19.0.tar.xz d5855a91bf2579f9faafce0563fa658f knewstuff-5.19.0.tar.xz 6acd427037e73e23f3087db88ed11ecc knotifyconfig-5.19.0.tar.xz d1472c82637f2eecd4561b815b96c5e4 kparts-5.19.0.tar.xz b5ceb59e0b354858849c6728d7df2c3d kactivities-5.19.0.tar.xz 941612d0df418b20981dfe9430f94263 kded-5.19.0.tar.xz a6a871e08809693934ea8f4b255f8065 kdewebkit-5.19.0.tar.xz 165cc67fc95363ffa6e247b230965b09 ktexteditor-5.19.0.tar.xz be9704c908fe4a7d8ab04b14192f9948 kdesignerplugin-5.19.0.tar.xz dbb2096267291d4a36482575c00a3c58 plasma-framework-5.19.0.tar.xz #a7cdce5f943c6bf9b5190f96942d3042 modemmanager-qt-5.19.0.tar.xz bb7bc4b9d6f1433538692d63506bac86 kpeople-5.19.0.tar.xz 590e3f07e6e47564208f1d1f94df4315 kxmlrpcclient-5.19.0.tar.xz 58377c34045907d67140df9167417919 bluez-qt-5.19.0.tar.xz dc869a38e8dcde117d91b9de656be324 kfilemetadata-5.19.0.tar.xz 58351139c7bf473b08ab7fa3220ede8b baloo-5.19.0.tar.xz #f5a4a9776492c8438524fad00ba606cc breeze-icons-5.19.0.tar.xz #dc41677e256fbe7b853e4d9568b1a5c9 oxygen-icons5-5.19.0.tar.xz c81cc309513c4c7f075e0e922a3bceff portingAids/kjs-5.19.0.tar.xz 7b6b02db93202ba8948d47a6b6b1abff portingAids/kdelibs4support-5.19.0.tar.xz ff9f526613bec9cae31aab8856624266 portingAids/khtml-5.19.0.tar.xz 39ca8356ee4646146030a38ac831a33c portingAids/kjsembed-5.19.0.tar.xz fb28b85be8a78b276bbcadc7c6166a69 portingAids/kmediaplayer-5.19.0.tar.xz 3ed3ca232a3b6a2859a37a7b0017ded9 portingAids/kross-5.19.0.tar.xz c43cef2cc5b9322dd34c849ba3474c89 portingAids/krunner-5.19.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. 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