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).
Development versions of BLFS may not build or run some packages properly if dependencies have been updated since the most recent stable versions of the book.
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.26.4
Download MD5 sum: See Below
Download size: 209 MB
Estimated disk space required: 1.5 GB (416 MB installed)
Estimated build time: 19 SBU (using parallelism=4)
GTK+-2.24.33, GTK+-3.24.36, KDE Frameworks-5.101.0, kuserfeedback-1.2.0, libpwquality-1.4.5, libqalculate-4.5.1, libxkbcommon-1.5.0, Mesa-22.3.5 built with Wayland-1.21.0, NetworkManager-1.42.0, pipewire-0.3.65, PulseAudio-16.1, qca-2.3.5, sassc-3.6.2, taglib-1.13, and xcb-util-cursor-0.1.4
fftw-3.3.10, gsettings-desktop-schemas-43.0, libdbusmenu-qt-0.9.3+16.04.20160218, libcanberra-0.30, libinput-1.22.1, libpcap-1.10.3, Linux-PAM-1.5.2, lm-sensors-3-6-0, oxygen-icons5-5.101.0, and pciutils-3.9.0
AccountsService-22.08.8, smartmontools-7.3, and Xwayland-22.1.8
GLU-9.0.2, ibus-1.5.27, qtwebengine-5.15.12, Xorg Synaptics Driver-1.9.2, 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.12: 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.26.4/
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.26.4.md5 << "EOF"
a01dbbcce3ba3940153316d1c37d4744 kdecoration-5.26.4.tar.xz
d1e815e30f077922fbcad8a5ae4ae551 libkscreen-5.26.4.tar.xz
7723718f4ae45ef8d7afb6f698754500 libksysguard-5.26.4.tar.xz
a9a1aa3091af394ea4f0da49cf71fa55 breeze-5.26.4.tar.xz
6d3af0af59e7570c195e16326eb78a95 breeze-gtk-5.26.4.tar.xz
625e99eab5af4ec21336f748e67b67b7 layer-shell-qt-5.26.4.tar.xz
a8162421975df33c2a28f679b03b03aa kscreenlocker-5.26.4.tar.xz
c7d87706957fdcad8967348a718cc1c9 oxygen-5.26.4.tar.xz
3dbf318d057cd9a012d2a37a3d45c3d5 kinfocenter-5.26.4.tar.xz
a2f23971599845b291c12c2701d7aa4e kwin-5.26.4.tar.xz
39302f811e359033e664a6461b6fdbe4 plasma-workspace-5.26.4.1.tar.xz
3f1e7dfe3bfb45bab458c3867d92cd9f plasma-disks-5.26.4.tar.xz
d9fb627fc4272e7753af952b522d4416 bluedevil-5.26.4.tar.xz
54e61050bbadae9d40321843834660e8 kde-gtk-config-5.26.4.tar.xz
52d5f2ed12284c8f31c6e6c7c1a18271 khotkeys-5.26.4.tar.xz
0d8060c1680c91a85129732a25f67623 kmenuedit-5.26.4.tar.xz
68bea6c5219ed6b83eb588b4f09254f6 kscreen-5.26.4.tar.xz
325ecd912133aec98d72cbb9371b5e9b kwallet-pam-5.26.4.tar.xz
72255cb11155888a1f02dbc44346faf6 kwayland-integration-5.26.4.tar.xz
b6ba8694011f3f764ff3a4a2de27c446 kwrited-5.26.4.tar.xz
ba3f3b6cc47ae3092f4e70742300d181 milou-5.26.4.tar.xz
9b0fa4a7b7285c0eaaecc8f2cf4991b5 plasma-nm-5.26.4.tar.xz
9b83ac853e5851eb01918ae66e4bc238 plasma-pa-5.26.4.tar.xz
f4386c8910593425386b4d53f495a590 plasma-workspace-wallpapers-5.26.4.tar.xz
ca6f21554bc89320ad04d19fc56b749b polkit-kde-agent-1-5.26.4.tar.xz
cc2dbf3bd907d7a347b53420f51b73c6 powerdevil-5.26.4.tar.xz
a7480b2f3dcb241597f881b820cea82f plasma-desktop-5.26.4.tar.xz
c381c5cd5bbcfcf7f5b5012862e575c5 kgamma5-5.26.4.tar.xz
a0a20325af1c3a9690228f0da5d22efb ksshaskpass-5.26.4.tar.xz
#90a1d60dfcae3b683246e3b04ccf3b36 plasma-sdk-5.26.4.tar.xz
1ab9b3119be9f170c82d28f83652d139 sddm-kcm-5.26.4.tar.xz
42bdb4436c5e5f02f6a6893b43d57029 discover-5.26.4.tar.xz
#9bf877b70af210d2b40833d00c6baae8 breeze-grub-5.26.4.tar.xz
#7977cbb93436e0cb41ac7c043a79d14e breeze-plymouth-5.26.4.tar.xz
d102a43c139a928d6ccb83a0b4fb2f61 kactivitymanagerd-5.26.4.tar.xz
d7999e1f9ca9b7da32387227f890e7ed plasma-integration-5.26.4.tar.xz
64277d588a7b2ab1bf9295268fac4fce plasma-tests-5.26.4.tar.xz
#8824f8fe6c6547ba053c77980db5fc19 plymouth-kcm-5.26.4.tar.xz
2ca28e5e76a04ced2a151ada42df421f xdg-desktop-portal-kde-5.26.4.tar.xz
d7d81abab1f75c4f75286b7541e3c724 drkonqi-5.26.4.tar.xz
a5d6dcfbcacb34429e3125a4dc3d20fa plasma-vault-5.26.4.tar.xz
c554a96073816fdadd5ce27c8cc290da plasma-browser-integration-5.26.4.tar.xz
ef012068159708971289387b948bbb9f kde-cli-tools-5.26.4.tar.xz
3abcf237a6ba20f1e2ec4f9462780932 systemsettings-5.26.4.tar.xz
d6406865e7e722f503d118d283a9cb13 plasma-thunderbolt-5.26.4.tar.xz
#e459caedeccd6bd7ce7ec01130b9ef96 plasma-nano-5.26.4.tar.xz
#710b5a5517a0856e991a45b0e33b5048 plasma-mobile-5.26.4.tar.xz
46363a107539755e2d6707a199860dc5 plasma-firewall-5.26.4.tar.xz
a7614d882e4ea34682fbba713434ee94 plasma-systemmonitor-5.26.4.tar.xz
3d3c6f2086318a9a5bc584161b1a09b7 qqc2-breeze-style-5.26.4.tar.xz
9c5c6ced9cffaab52bdeed33fc5d053f ksystemstats-5.26.4.tar.xz
dc694109774211bc57efa9030838245f oxygen-sounds-5.26.4.tar.xz
b924e1a5efa106aafa87a25e1a3775b9 aura-browser-5.26.4.tar.xz
5d6fd4a97a939df024509371daca9fa2 kdeplasma-addons-5.26.4.tar.xz
b3a40dc5c74a53889fd6b3204bf91124 kpipewire-5.26.4.tar.xz
6d235cd46a3f9ecd313e0d0cc66f194c plank-player-5.26.4.tar.xz
7dd0e56273b92752c7d0a2fc49144058 plasma-bigscreen-5.26.4.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.12p2 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.26.4.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.2, or from runlevel 5, using a Display Manager, such as lightdm-1.32.0.
To start Plasma 5 using xinit-1.4.2, 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).