%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" 935921bcc04f7e4af10be8e57b7ac899 attica-5.15.0.tar.xz #5a41b547927190d366501cf61d86ec07 extra-cmake-modules-5.15.0.tar.xz 554e64ff431714fa1b287cd86a3ad958 kapidox-5.15.0.tar.xz 38c7374689688c045cd5ba1acb4ea91b karchive-5.15.0.tar.xz 2cafea53c814ee47313805e98422b832 kcodecs-5.15.0.tar.xz f7169075c22857b40d256bd6323d1a10 kconfig-5.15.0.tar.xz 8d4f4f374649419fe34e24766f5ec22b kcoreaddons-5.15.0.tar.xz 70aa5b3207b85100d59d992113c02a1a kdbusaddons-5.15.0.tar.xz 587a96871eabc9e56885fb7aa81923ec kdnssd-5.15.0.tar.xz 8aa1cbd8e47ba7a459e375ece56fe195 kguiaddons-5.15.0.tar.xz 6b1be481a81380b894d056ddcdd4a34f ki18n-5.15.0.tar.xz 6c81f38367bf36b23411cfa96d41d333 kidletime-5.15.0.tar.xz 90831d906b5ab8224bb4a4a6c01e11b5 kimageformats-5.15.0.tar.xz f31edaae6d138bc2e1464e742796651d kitemmodels-5.15.0.tar.xz b8b009980f0831aadfda47bcf59750ae kitemviews-5.15.0.tar.xz c5715f3a436e02b3f4cf722fe12ddab3 kplotting-5.15.0.tar.xz 78ec000eadcf4a9ad0d989f4c4b54bc6 kwidgetsaddons-5.15.0.tar.xz 08e0b05204a4129f73873ef2b61a6a3b kwindowsystem-5.15.0.tar.xz 6bb0d1877e42c4d477e6d05185397df0 networkmanager-qt-5.15.0.tar.xz 5d18bd8ffd294a85ddf3f1765d8726d6 solid-5.15.0.tar.xz 84d598084fd3bbcccc28746db9b2d162 sonnet-5.15.0.tar.xz 87e37a9c741adb9a124b64f2227ff7c0 threadweaver-5.15.0.tar.xz ff73dca44ac6d7f82d5d9d4d7b70d4d2 kauth-5.15.0.tar.xz a72bf104bd073134e4bdf77dbf6677ab kcompletion-5.15.0.tar.xz 8a205f76a3ca73b585cfabfafdc97571 kcrash-5.15.0.tar.xz 57f930c04fc8befe6ce908b46abab05f kdoctools-5.15.0.tar.xz 65b286bef837ec661187613843381bfe kpty-5.15.0.tar.xz 533999e2ef653fcc4100861c36794704 kunitconversion-5.15.0.tar.xz e1dcd700999ed0764e6659e8519a8a65 kconfigwidgets-5.15.0.tar.xz a290c0bd824e966e2a4963aa2440e74c kglobalaccel-5.15.0.tar.xz c62075c90e8717d213a3aa4106f355b7 kpackage-5.15.0.tar.xz 09c47778e16ea256a9009952222f7420 kservice-5.15.0.tar.xz 680bc940ca1b30357e3feb4c75796264 kdesu-5.15.0.tar.xz b228087cb2223e5330d2c7d92f272879 kemoticons-5.15.0.tar.xz 4244f5d4c377c630d81bedf4c0f4ee97 kiconthemes-5.15.0.tar.xz 7603245a0a103fb45cc893eb639fe1cb kjobwidgets-5.15.0.tar.xz f7ee1756a658c3c41328369dcc7701db knotifications-5.15.0.tar.xz b5e06e8f11a6eeba92893c59d3349ca7 ktextwidgets-5.15.0.tar.xz 291d29f8b9333abd9ea2d240d3eab1d9 kwallet-5.15.0.tar.xz 70785bf8fb6e952e09963b37fc35e481 kxmlgui-5.15.0.tar.xz 50e4d1a4fb7b6a2e50e7ee7f00794e33 kbookmarks-5.15.0.tar.xz 29ed2f1d3e49da57d33a478df96da772 kio-5.15.0.tar.xz 6d016b4a482e34fd75e12bb773ab68ae kdeclarative-5.15.0.tar.xz 6bad585122df5ee6e421ff192c007444 kcmutils-5.15.0.tar.xz 1dd33272081ff78e40a26262a74e499a frameworkintegration-5.15.0.tar.xz 1c05dbaead6e59818d0bef640ed05fa3 kinit-5.15.0.tar.xz c0a82c797db0af67dfc8cfa72d6bca08 knewstuff-5.15.0.tar.xz 5fdeae0bec3fd026c084fc424518c3ce knotifyconfig-5.15.0.tar.xz 3405d285fd4277f7e7bcb34c338faec4 kparts-5.15.0.tar.xz 1c4bf1f81a246a8227afbd184375c8bc kactivities-5.15.0.tar.xz 4d4981a6700dc77fc5d9c2d4ef964c2b kded-5.15.0.tar.xz 0283ec538d61760e79060b874611c851 kdewebkit-5.15.0.tar.xz cfbfab5e980de650448171d54ae2777c ktexteditor-5.15.0.tar.xz f64f55e70dace3c167ef656c2e9e8498 kdesignerplugin-5.15.0.tar.xz 42a6f40fc3fbcdde924afb3547386098 plasma-framework-5.15.0.tar.xz #6b14c285d47ffc1e1bab756cf659ab7a modemmanager-qt-5.15.0.tar.xz ab52947f23feeb9a91b867fea2fe8d54 kpeople-5.15.0.tar.xz 59f450e03c41e58db77b4e2d7ebf0df4 kxmlrpcclient-5.15.0.tar.xz 3fdcdaf5bf8cc70beb94539278eab559 bluez-qt-5.15.0.tar.xz 51ed9354658f5e22ef3f1f9ef35f9d97 kfilemetadata-5.15.0.tar.xz 25177cb45b803baab1bfbf36e63fd396 baloo-5.15.0.tar.xz fea1f5fb2cc65d440869b36d1a656409 portingAids/kjs-5.15.0.tar.xz a7e41bbb268da562cd5c58b47717afa6 portingAids/kdelibs4support-5.15.0.tar.xz 369920a68f2fca8f6ce359e973d96a70 portingAids/khtml-5.15.0.tar.xz ed8d52c80ab57166d4ac0b30213bb149 portingAids/kjsembed-5.15.0.tar.xz 5816adcf4fe5c4693bc0b162bbc48b09 portingAids/kmediaplayer-5.15.0.tar.xz bc90445c7797c63aa210da6ba12341ae portingAids/kross-5.15.0.tar.xz 2a9971ce78f12dc38fe2dec6ab279b10 portingAids/krunner-5.15.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 others may be built if the optional dependencies have 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