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 LFS or dependencies have been updated since the most recent stable versions of the books.
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.27.5
Download MD5 sum: See Below
Download size: 242 MB
Estimated disk space required: 1.7 GB (419 MB installed)
Estimated build time: 19 SBU (using parallelism=4)
GTK+-2.24.33, GTK+-3.24.38, KDE Frameworks-5.106.0, kuserfeedback-1.2.0, libpwquality-1.4.5, libqalculate-4.7.0, libxkbcommon-1.5.0, Mesa-23.1.3 built with Wayland-1.22.0, NetworkManager-1.42.8, pipewire-0.3.74, PulseAudio-16.1, qca-2.3.6, sassc-3.6.2, taglib-1.13.1, and xcb-util-cursor-0.1.4
fftw-3.3.10, gsettings-desktop-schemas-44.0, libdbusmenu-qt-0.9.3+16.04.20160218, libcanberra-0.30, libinput-1.23.0, libpcap-1.10.4, Linux-PAM-1.5.3, lm-sensors-3-6-0, oxygen-icons5-5.106.0, and pciutils-3.10.0
AccountsService-23.13.9, smartmontools-7.3, and Xwayland-23.1.2
GLU-9.0.2, ibus-1.5.28, qtwebengine-5.15.14, Xorg Synaptics Driver-1.9.2, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM, and socat (for pam_kwallet)
qtwebengine-5.15.14 is required for aura-browser. It is also optional for two other packages: libksysguard and kdeplasma-addons. If QtWebEngine is installed later, only these two packages need to be rebuilt. This allows a more complete display in the system monitor application.
Editor 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.27.5/
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.27.5.md5 << "EOF"
51e9302eb0654fae37d3962626ff4fbb kdecoration-5.27.5.tar.xz
74bde56139ac985dcbdc2367a70b9bca libkscreen-5.27.5.tar.xz
b7247c962c5d25adab4319b61658a084 libksysguard-5.27.5.tar.xz
82968d40f62140cee86aea36a906bd83 breeze-5.27.5.tar.xz
aeaa28b4191c882cc18fc4e411e8a2e4 breeze-gtk-5.27.5.tar.xz
af0607ef8312a85428229118b62c88fe layer-shell-qt-5.27.5.tar.xz
4694667b6f766583b4c82a080a927604 kscreenlocker-5.27.5.tar.xz
06d8187c1365ea93a6b6c944e357e6c0 oxygen-5.27.5.tar.xz
2dbc2bb816a2e20d09f969ad3a939845 kinfocenter-5.27.5.tar.xz
9dcdcf269faee1e5370840f6e8b7eb7f kwin-5.27.5.tar.xz
6d8eebad15cca79e694360ffddb06ac0 plasma-workspace-5.27.5.tar.xz
c35e7d44a3d183c870a5a867ea87703f plasma-disks-5.27.5.tar.xz
ff679b3b315c98baeae249a09c060a86 bluedevil-5.27.5.tar.xz
400c30c063f2c4c6e1b1f876c25e3772 kde-gtk-config-5.27.5.tar.xz
bde2e79070e499d26586a480e9ee36a5 khotkeys-5.27.5.tar.xz
8b0a697df18d02c7eb33b6378cbd4d45 kmenuedit-5.27.5.tar.xz
d2c3d8dcd306b426a3c6ff1eed6c1133 kscreen-5.27.5.tar.xz
a73ad8b4251c5661f6f19eb1d74ba1bf kwallet-pam-5.27.5.tar.xz
f409d7176b62b0c7c1fd6bae483f727c kwayland-integration-5.27.5.tar.xz
41e446151576173a39ae8129d2eccac2 kwrited-5.27.5.tar.xz
219d1e6af7aba7333af2b3016ae4c548 milou-5.27.5.tar.xz
03de7063c72469e7ee0f152db471f84a plasma-nm-5.27.5.tar.xz
612efae7cd722f5f1e3896c3bf3fb161 plasma-pa-5.27.5.tar.xz
50fa6015315c82976426760552d46d7f plasma-workspace-wallpapers-5.27.5.tar.xz
058a604c6ea8e0ae64f5878a7e5944b8 polkit-kde-agent-1-5.27.5.tar.xz
672a9b07e3725c26318edbab4b9e128e powerdevil-5.27.5.tar.xz
6d10296d88754fae5c246aa73c3f9059 plasma-desktop-5.27.5.tar.xz
5b69ac7f3f160640aee2fe2fb1c6d024 kgamma5-5.27.5.tar.xz
b6c9189955d602662672298c50758b0e ksshaskpass-5.27.5.tar.xz
#a46c94604166a9a2feb748ee8c82e86d plasma-sdk-5.27.5.tar.xz
9fbd2a51814d3ca86371df990643f93a sddm-kcm-5.27.5.tar.xz
#3f192d5ae11e72dedee2686ca1fd5133 discover-5.27.5.tar.xz
#7fdd06cfba4d5e33cfc332be0235635e breeze-grub-5.27.5.tar.xz
#f4d52827d548f61957fa81e232a9413a breeze-plymouth-5.27.5.tar.xz
cad575c607ef907af5138fee59a0c5b7 kactivitymanagerd-5.27.5.tar.xz
6b748c004da6d5b3528c08a93bf1a0f7 plasma-integration-5.27.5.tar.xz
#59b6d2dd34435697fe18e564ed78a511 plymouth-kcm-5.27.5.tar.xz
cda052cd8e5e93079b90ecd32878e8c2 xdg-desktop-portal-kde-5.27.5.tar.xz
df38490abd84e1dab33bb0a71749ddef drkonqi-5.27.5.tar.xz
e7480e7771f736742b9ac60cd9bc1cc5 plasma-vault-5.27.5.tar.xz
c2f27e9822a4e7ccf973d75a0a3883f5 plasma-browser-integration-5.27.5.tar.xz
73ba745f7b31dd74c5ac60b3fe311f59 kde-cli-tools-5.27.5.1.tar.xz
c598c2329e43a3bb6a2da6c555341272 systemsettings-5.27.5.tar.xz
091b75af67a85285ec321f7fa4ebe25a plasma-thunderbolt-5.27.5.tar.xz
#1b35ba803eb94218d6f91a6a285259ef plasma-nano-5.27.5.tar.xz
#4d24bc44142da6aee054b5ba0ceda8de plasma-mobile-5.27.5.tar.xz
909a2118673360130dca8b2b104c988b plasma-firewall-5.27.5.tar.xz
aec129bb64448e92d8abcdee54e7c29a plasma-systemmonitor-5.27.5.tar.xz
6bc2603e9b50728639a0274ed108ebf1 qqc2-breeze-style-5.27.5.tar.xz
453d047ecb4b0de02babe74b435110a1 ksystemstats-5.27.5.tar.xz
50d577a781cf009b6d56766cd9ce801e oxygen-sounds-5.27.5.tar.xz
#98ad50d4bd635c28b33e498855ac5125 aura-browser-5.27.5.tar.xz
ef10140df619daa2b82b22f77e07a4c9 kdeplasma-addons-5.27.5.tar.xz
6ffe6e00493ade07b452ab9d30385d77 kpipewire-5.27.5.tar.xz
a185c7f09b9b81683e85d884f9be1e1e plank-player-5.27.5.tar.xz
d520bce789eae5a0d9ba9432de5d76ac plasma-bigscreen-5.27.5.tar.xz
a1d5c114997f50bc6a6e1c40cc63009c plasma-remotecontrollers-5.27.5.tar.xz
#f96194446cb04af657dc4abc1634d7af flatpak-kcm-5.27.5.tar.xz
#47263a34137f46e168332de80c46a168 plasma-welcome-5.27.5.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-mobile provides phone functionality for Plasma. The aura-browser package requires qtwebengine-5.15.14. The discover package requires the external package appstream-qt. The plasma-welcome package requires the external package kaccounts-integration. The flatpack-kcm package is for managing support of flatpack applications.
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.14p2 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.27.5.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-x11 $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).