Building Plasma 5

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-8.4 platform.

The instructions below build all of the Plasma 5 packages in one step by using a bash script.

Package Information

Plasma 5 Dependencies

Required

GConf-3.2.6, GTK+-2.24.32, GTK+-3.24.7, KDE Frameworks-5.55.0, libpwquality-1.4.0, libxkbcommon-0.8.4, Mesa-19.0.0 built with Wayland-1.17.0, NetworkManager-1.16.0, PulseAudio-12.2, qca-2.1.3, sassc-3.5.0, taglib-1.11.1, and xcb-util-cursor-0.1.3

Recommended

Optional

GLU-9.0.0, ibus-1.5.20, Xorg Synaptics Driver-1.9.1, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM, and socat (for pam_kwallet)

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/kf5

Downloading KDE Plasma5

The easiest way to get the KDE Plasma5 packages is to use a single wget to fetch them all at once:

url=http://download.kde.org/stable/plasma/5.15.3/
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

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 > plasma-5.15.3.md5 << "EOF"
b0cbc29002c38525f06e25926e41ce46  kdecoration-5.15.3.tar.xz
705f767f74d225a7d3e54863c28e8774  libkscreen-5.15.3.tar.xz
94d5a8505d3ecc69726aa9deb592bf97  libksysguard-5.15.3.tar.xz
9c11d520682160d4704cddb8386d3de8  breeze-5.15.3.tar.xz
b369b343d6dd4ef3af6d18340a83f308  breeze-gtk-5.15.3.tar.xz
d7ae9eaa8ff3208df01935fc0cd0c28a  kscreenlocker-5.15.3.tar.xz
b0224262aaea0611a5304e9586d9ddbf  oxygen-5.15.3.tar.xz
8064140c272452f7610e35b714930ca4  kinfocenter-5.15.3.tar.xz
39a526781799088e251305f17945e784  ksysguard-5.15.3.tar.xz
d297109766835e43cea21af920b88b3c  kwin-5.15.3.2.tar.xz
582ef2fb97a9020c09d86118c04f3b0a  plasma-workspace-5.15.3.tar.xz
7bb9a0a7cb5c751d1a94fcf9cb260bd4  bluedevil-5.15.3.tar.xz
fc76a4f8bdb2a031fdadff946514ae3d  kde-gtk-config-5.15.3.tar.xz
9eebf70f99a2eb0d0a62285d47a8542e  khotkeys-5.15.3.tar.xz
50e642a3d5949443e161ea0d4eeaadea  kmenuedit-5.15.3.tar.xz
0efcace3965f868e4b474f501c4c3130  kscreen-5.15.3.tar.xz
6ebd5b3e62be468b4a5841bcce624093  kwallet-pam-5.15.3.tar.xz
f5ceb5dbfcf2d3f590b9115c446b35df  kwayland-integration-5.15.3.tar.xz
c568256c56e2a2fa22e642a8bd43bfa5  kwrited-5.15.3.tar.xz
95d1078a08dcf21266a9cce51bac9dc6  milou-5.15.3.tar.xz
46492d319950a48f3a192f1d883a4020  plasma-nm-5.15.3.tar.xz
97752f6f9a57d39eaa1b68b99f5880af  plasma-pa-5.15.3.tar.xz
7006c1d844dd8d23fa6c4e18af645860  plasma-workspace-wallpapers-5.15.3.tar.xz
4b364062f59fb9599ef7c60fbcc1d9e2  polkit-kde-agent-1-5.15.3.tar.xz
72da38b000b84ebb350b2842c22438bb  powerdevil-5.15.3.tar.xz
0aedba1ccd551bf3137cbadedf140c3c  plasma-desktop-5.15.3.2.tar.xz
a1b032662fd6267b7bf0e8a0ff627db0  kdeplasma-addons-5.15.3.tar.xz
cb4e1b8f8d4b4f3bf53a35b7bb02fe48  kgamma5-5.15.3.tar.xz
86f4c45eac9db936b22b84cb75c35598  ksshaskpass-5.15.3.tar.xz
#b625e5c98588b20c842c8c750abf9df2  plasma-sdk-5.15.3.tar.xz
b2a458ec19d39cdecc969b1e5ad226dd  sddm-kcm-5.15.3.tar.xz
c1b015e2c94995c1e336204900d77929  user-manager-5.15.3.tar.xz
1ffd8fe39532ef5093e42d4b330de5dd  discover-5.15.3.tar.xz
#9dd691cded8af750f779f5479dc898e9  breeze-grub-5.15.3.tar.xz
#2f48a4f199780cc8fe3d31eda54034e7  breeze-plymouth-5.15.3.tar.xz
242dbc1fc363e90dad8350c9138918c3  kactivitymanagerd-5.15.3.tar.xz
509f18cd766b6a63de42eaf3d8d91946  plasma-integration-5.15.3.tar.xz
b92720b576ce939c033e21986b59abe2  plasma-tests-5.15.3.tar.xz
a19b7e09a04dd5b6551fb05932fb0050  plymouth-kcm-5.15.3.tar.xz
2492e7e238944e5f573857a8a8d66276  xdg-desktop-portal-kde-5.15.3.tar.xz
79eeaeaf73d8002c536d9b9f398042db  drkonqi-5.15.3.tar.xz
f2c1e4e95bf01106c2f9b434366258c3  plasma-vault-5.15.3.tar.xz
dcede75af2b44e7dba52164f52a8a37a  plasma-browser-integration-5.15.3.tar.xz
882890f64e5143e67e061f6267feea5f  kde-cli-tools-5.15.3.tar.xz
4f27f409f8660e5656cfae2c7fe2c4a3  systemsettings-5.15.3.2.tar.xz
EOF
[Note]

Note

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.

Installation of Plasma5

[Note]

Note

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:

  1. Run the entire script as the root user (not recommended).

  2. Use the sudo command from the Sudo-1.8.27 package.

  3. 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.15.3.md5

exit

install -dvm 755 /usr/share/xsessions &&
cd /usr/share/xsessions/              &&
[ -e plasma.desktop ]                 ||
as_root ln -sfv $KF5_PREFIX/share/xsessions/plasma.desktop

Configuring Plasma

Linux PAM Configuration

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

Starting Plasma5

You can start Plasma5 from a TTY, using xinit-1.4.1.

To start Plasma 5 using xinit-1.4.1, run the following commands:

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-session $KF5_PREFIX/bin/startkde
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).

If you intend to start Plasma using a display manager such as lightdm-1.28.0, there will be two entries for Plasma, one for use with Xorg, and another for Wayland. Modify the Xorg entry with the following command, as the root user, so that you can differentiate between the two:

sed '/^Name=/s/Plasma/Plasma on Xorg/' -i /usr/share/xsessions/plasma.desktop

Contents

Installed Programs: There are too many plasma programs (50 in /opt/kf5/bin) to list separately here.
Installed Libraries: There are too many plasma libraries (39 in /opt/kf5/lib) to list separately here.
Installed Directories: There are too many plasma directories (over 1000 in /opt/kf5) to list separately here.

Last updated on 2015-09-24 16:44:04 -0500