KDE Plasma 5 is a collection of packages based on top of KDE Frameworks 5 and QML. They implement the KDE Display Environment (Plasma 5).
This package is known to build and work properly using an LFS-11.1 platform.
The instructions below build all of the Plasma 5 packages in one step by using a bash script.
Download (HTTP): https://download.kde.org/stable/plasma/5.24.0
Download MD5 sum: See Below
Download size: 183 MB
Estimated disk space required: 1.5 GB (366 MB installed)
Estimated build time: 19 SBU (using parallelism=4)
GTK+-2.24.33, GTK+-3.24.31, KDE Frameworks-5.91.0, libpwquality-1.4.4, libqalculate-4.0.0, libxkbcommon-1.4.0, Mesa-21.3.6 built with Wayland-1.20.0, NetworkManager-1.34.0, pipewire-0.3.47, PulseAudio-15.0, qca-2.3.4, sassc-3.6.2, taglib-1.12, and xcb-util-cursor-0.1.3
fftw-3.3.10, gsettings-desktop-schemas-41.0, libdbusmenu-qt-0.9.3+16.04.20160218, libcanberra-0.30, libinput-1.19.3, libpcap-1.10.1, Linux-PAM-1.5.2, lm-sensors-3-6-0, oxygen-icons5-5.91.0, and pciutils-3.7.0
AccountsService-22.07.5 and smartmontools-7.2
GLU-9.0.2, ibus-1.5.25, qtwebengine-5.15.8, Xorg Synaptics Driver-1.9.1, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM, and socat (for pam_kwallet)
Only two plasma packages optionally use qtwebengine-5.15.8: libksysguard and kdeplasma-addons. If QtWebEngine is installed later, only those two packages have to be rebuilt. This allows to provide a more complete display in the system monitor application.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/kf5
The easiest way to get the KDE Plasma5 packages is to use a single wget to fetch them all at once:
url=https://download.kde.org/stable/plasma/5.24.0/
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
The order of building files is important due to internal dependencies. Create the list of files in the proper order as follows:
cat > plasma-5.24.0.md5 << "EOF"
d5a143b93d183e46d2d9eecb65ca32d6 kdecoration-5.24.0.tar.xz
25328009546df7703a45a51c27befc76 libkscreen-5.24.0.tar.xz
3869c4c0c3acc7fcb2a210aac6480249 libksysguard-5.24.0.tar.xz
3065e58dd9832b419e68b38921a97c24 breeze-5.24.0.tar.xz
6fad933f0ee6f852ae58d906444b9595 breeze-gtk-5.24.0.tar.xz
7eae43606459dd0a288d5c081d9a6a2a layer-shell-qt-5.24.0.tar.xz
127f90c5e77d404949446813baf7d61a kscreenlocker-5.24.0.tar.xz
626ae567af6b34bb3f8a0ffc18093e95 oxygen-5.24.0.tar.xz
f9a542276e05b3b4cb9fbd32c541a552 kinfocenter-5.24.0.tar.xz
cad3dc7c0b9ca2faa9f8d25b4b2d857d kwayland-server-5.24.0.tar.xz
a401b80ab133740bb9c006cdf0eaedbf kwin-5.24.0.tar.xz
56e20e9dd1767457613592c1edece60b plasma-workspace-5.24.0.tar.xz
c8aa0ccd5cf5b428e16a25410f8ac33f plasma-disks-5.24.0.tar.xz
6b7e9f27503c829924048bf65a0c4763 bluedevil-5.24.0.tar.xz
5dcd7cb3e9401942b1307ec65dcf7ea5 kde-gtk-config-5.24.0.tar.xz
5a289a97f76a416a9ac6a62dc8fe733a khotkeys-5.24.0.tar.xz
a7485966e66b63f50eddbcbc4790832c kmenuedit-5.24.0.tar.xz
507d12a9237fded95bbd1532e4a7b66b kscreen-5.24.0.tar.xz
4c2f698253f260a955ed1867d1ec9007 kwallet-pam-5.24.0.tar.xz
1e5ff352ea3b039b112efe37677eff45 kwayland-integration-5.24.0.tar.xz
4f3d56f758541d046ad69e842fccac7b kwrited-5.24.0.tar.xz
5e1d46d9bf8d0a03694903e83d070e3f milou-5.24.0.tar.xz
b6e7be0be859d21947284e233d6e2931 plasma-nm-5.24.0.tar.xz
d99ceab1dd9986122690a4b24d50b114 plasma-pa-5.24.0.tar.xz
bad6e9079ac8ad192b8375242e5b1121 plasma-workspace-wallpapers-5.24.0.tar.xz
eacdd3ef241f27d7ae68abce49d47a45 polkit-kde-agent-1-5.24.0.tar.xz
8b1299077c31395e2f04b28d94d1ca06 powerdevil-5.24.0.tar.xz
8c07b6d13e9ed8965abb38f0c3bdfdbf plasma-desktop-5.24.0.tar.xz
0f52913bec0b9ae5fe7c39b7eb7c0822 kdeplasma-addons-5.24.0.tar.xz
3dfd5a918fe12eaec8cf3fc291c69bfb kgamma5-5.24.0.tar.xz
63bd9da2abdbffb38f7b89d4d1e6e52b ksshaskpass-5.24.0.tar.xz
#e4353dc4d36d9ed54d25df4e2538ef04 plasma-sdk-5.24.0.tar.xz
9f4568cf9b1ace13f082bb38f45f0079 sddm-kcm-5.24.0.tar.xz
1759fb71e190f0fd506e98f68d1df938 discover-5.24.0.tar.xz
#89000e84cca76de236e576c922979352 breeze-grub-5.24.0.tar.xz
#5f34ae758eab4fc8343e2fad5b7afbfb breeze-plymouth-5.24.0.tar.xz
f2485f5a857898ae47c256ae8d9b4893 kactivitymanagerd-5.24.0.tar.xz
050d04b18ce5f00fb7dfef31000d88b6 plasma-integration-5.24.0.tar.xz
1eab4ed3b88ef3a712223afc4c116a7d plasma-tests-5.24.0.tar.xz
#8b19cc2d7929cf988a44606a3eba7644 plymouth-kcm-5.24.0.tar.xz
9aafa58faea1bd7f90776f6e63d3866a xdg-desktop-portal-kde-5.24.0.tar.xz
fe87c0f534cbefe3955faecfe5fcfc4d drkonqi-5.24.0.tar.xz
c6f224eb9eb6f87e0af1464d7a933d09 plasma-vault-5.24.0.tar.xz
d3c42b17d180af6ddf9821abd6f36d7e plasma-browser-integration-5.24.0.tar.xz
a7157d0f6a12d2da890643b30bb02967 kde-cli-tools-5.24.0.tar.xz
3c7a50b0eb124cb6d1886cc89a0de5e8 systemsettings-5.24.0.tar.xz
e6346ea04baa5c25e706145777a193dc plasma-thunderbolt-5.24.0.tar.xz
#e4daa179a4bce0f03f4988186dfe3e31 plasma-nano-5.24.0.tar.xz
#3e0e67f2a798b51025cb97a750fc1dea plasma-phone-components-5.24.0.tar.xz
#3e0e67f2a798b51025cb97a750fc1dea plasma-mobile-5.24.0.tar.xz
2c43882de9c657073aed4df2c01eeac4 plasma-firewall-5.24.0.tar.xz
886d89f75a6ba9324586154816a9bcef plasma-systemmonitor-5.24.0.tar.xz
61903525c0e1585cb00e1b7c7c690145 qqc2-breeze-style-5.24.0.tar.xz
f1e7a6af9a0862cc8812426e4d040be6 ksystemstats-5.24.0.tar.xz
EOF
The breeze-grub, breeze-plymouth, and plymouth-kcm packages above are all for customized support of Plymouth which is designed to be run within an initial ram disk during boot (see the section called “About initramfs”). The plasma-sdk package is optional and used for software development. The plasma-nano package is used for embedded systems and plasma-phone-components provides phone functionality for Plasma.
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
Run the entire script as the root user (not recommended).
Use the sudo command from the Sudo-1.9.9 package.
Use su -c "command arguments" (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root() { if [ $EUID = 0 ]; then $* elif [ -x /usr/bin/sudo ]; then sudo $* else su -c \\"$*\\" fi } export -f as_root
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_BUILD_TYPE=Release \ -DBUILD_TESTING=OFF \ -Wno-dev .. && make as_root make install popd as_root rm -rf $packagedir as_root /sbin/ldconfig done < plasma-5.24.0.md5 exit
If you did not set $KF5_PREFIX
to
/usr
, create symlinks to allow
display managers to find Plasma:
as_root install -dvm 755 /usr/share/xsessions && cd /usr/share/xsessions/ && [ -e plasma.desktop ] || as_root ln -sfv $KF5_PREFIX/share/xsessions/plasma.desktop && as_root install -dvm 755 /usr/share/wayland-sessions && cd /usr/share/wayland-sessions/ && [ -e plasmawayland.desktop ] || as_root ln -sfv $KF5_PREFIX/share/wayland-sessions/plasmawayland.desktop
Useless systemd units have been installed in $KF5_PREFIX/lib
. Remove them now (as root
):
rm -rf $KF5_PREFIX/lib/systemd
If you built Plasma with the recommended Linux PAM support, create necessary
configuration files by running the following commands as the
root
user:
cat > /etc/pam.d/kde << "EOF"# Begin /etc/pam.d/kde auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth include system-auth account include system-account password include system-password session include system-session # End /etc/pam.d/kde
EOF cat > /etc/pam.d/kde-np << "EOF"# Begin /etc/pam.d/kde-np auth requisite pam_nologin.so auth required pam_env.so auth required pam_succeed_if.so uid >= 1000 quiet auth required pam_permit.so account include system-account password include system-password session include system-session # End /etc/pam.d/kde-np
EOF cat > /etc/pam.d/kscreensaver << "EOF"# Begin /etc/pam.d/kscreensaver auth include system-auth account include system-account # End /etc/pam.d/kscreensaver
EOF
You can start Plasma5 from runlevel 3, using xinit-1.4.1, or from runlevel 5, using a Display Manager, such as lightdm-1.30.0.
To start Plasma 5 using xinit-1.4.1, run the following commands:
cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-session $KF5_PREFIX/bin/startplasma-x11
EOF
startx
The X session starts on the first unused virtual terminal, normally vt7. You can switch to another vtn simultaneously pressing the keys Ctrl-Alt-Fn (n=1, 2, ...). To switch back to the X session, normally started at vt7, use Ctrl-Alt-F7. The vt where the command startx was executed will display many messages, including X starting messages, applications automatically started with the session, and eventually, some warning and error messages. You may prefer to redirect those messages to a log file, which not only will keep the initial vt uncluttered, but can also be used for debugging purposes. This can be done starting X with:
startx &> ~/x-session-errors
When shutting down or rebooting, the shutdown messages appear on the vt where X was running. If you wish to see those messages, simultaneously press keys Alt-F7 (assuming that X was running on vt7).
Last updated on