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.1 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.22.26, KDE Frameworks-5.41.0, libpwquality-1.4.0, libxkbcommon-0.8.0, Mesa-17.3.2 built with Wayland-1.14.0, NetworkManager-1.10.2, PulseAudio-11.1, Python-2.7.14, qca-2.1.3 (built with qt5), taglib-1.11.1, and xcb-util-cursor-0.1.3

Recommended

Optional

GLU-9.0.0, IBus-1.5.17, Xorg Synaptics Driver-1.9.0, 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.11.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

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.11.4.md5 << "EOF"
d88f68c4dc164ffd01c8b97747a98d5b  kde-cli-tools-5.11.4.tar.xz
ec7ccf4213a349a89c44dd79ee4e84f0  kdecoration-5.11.4.tar.xz
e5a76c0348deaf565a596ae37541b3ae  libkscreen-5.11.4.tar.xz
aa7f970cdddf05a0ea97972ee85b2238  libksysguard-5.11.4.tar.xz
bde2d5344cd3cfbfca3d08559db3f1b1  breeze-5.11.4.tar.xz
5fab1a28047962c2d66bfa3b922a0c7b  breeze-gtk-5.11.4.tar.xz
a93a609de1d346927399c6c12bf60843  kscreenlocker-5.11.4.tar.xz
997c543e4cf9668ff1a76f9db29911ee  oxygen-5.11.4.tar.xz
0bcde5e63570448c76d53e20ab5eff3e  kinfocenter-5.11.4.tar.xz
de5775e01614cce24b2044f564445adc  ksysguard-5.11.4.tar.xz
f56900e45dbabb713cd4ef824e6d7323  kwin-5.11.4.tar.xz
fd55a65c5459775ed524d8de897ec31f  systemsettings-5.11.4.tar.xz
40b6acaebf7412d4ba5feee476965e01  plasma-workspace-5.11.4.tar.xz
23dda6808b0f584a49040cbe405af88b  bluedevil-5.11.4.tar.xz
4343f5e010ed3c0cec03e5e4b697c804  kde-gtk-config-5.11.4.tar.xz
a99e7e73794b599be385839b88683503  khotkeys-5.11.4.tar.xz
3a005563749fe7f1d3142b53a7f2ddfc  kmenuedit-5.11.4.tar.xz
1c3c53d350a9427cde77b8cba77a533c  kscreen-5.11.4.tar.xz
8f09c454407900cae56827caf5117e1d  kwallet-pam-5.11.4.tar.xz
9ed78f6b6407ceb16bdb594bb36bdbc2  kwayland-integration-5.11.4.tar.xz
16fe5249444f345921dd88be983c9bfe  kwrited-5.11.4.tar.xz
d2e72f895c418cf2b7e51fbf4da8c240  milou-5.11.4.tar.xz
8c999cacc92b3f256edcd0addd0878ac  plasma-nm-5.11.4.tar.xz
befbc3ebeb75b3b6cb8559f3b039e322  plasma-pa-5.11.4.tar.xz
df943e57ebba65150df11b824fac5154  plasma-workspace-wallpapers-5.11.4.tar.xz
5ccbd6b00367b48873b1b5653ad110c2  polkit-kde-agent-1-5.11.4.tar.xz
85616354c53b934752f221b4d89cd3dc  powerdevil-5.11.4.tar.xz
5fb2f7a0aecd20b5eb3eba8c1d15956a  plasma-desktop-5.11.4.tar.xz
c08b672beb73bf531318ecce7d90cb84  kdeplasma-addons-5.11.4.tar.xz
615358f580a64ac053d327771b00c67f  kgamma5-5.11.4.tar.xz
1a5d2ae7c34e3e7c9aedb931111554fa  ksshaskpass-5.11.4.tar.xz
#a8bdcdc6a79f79737070ceb7704ec2fc  plasma-sdk-5.11.4.tar.xz
335e0f9a1fce7f527b3d4b581ff915fb  sddm-kcm-5.11.4.tar.xz
965b833b71654869ecd865e2d59011f4  user-manager-5.11.4.tar.xz
4d4bfd4f7197a989c917c40887d4ad8b  discover-5.11.4.tar.xz
#1f23543acaf94836807b647453682189  breeze-grub-5.11.4.tar.xz
#1129678c3765a52d7d244094da25e20d  breeze-plymouth-5.11.4.tar.xz
24747273a2e9f0d09736b95fbfe82478  kactivitymanagerd-5.11.4.tar.xz
ff4eeba3baf3b750aa158dfa622a8fe9  plasma-integration-5.11.4.tar.xz
15d11076b37a6bbada14e72c3e6c4516  plasma-tests-5.11.4.tar.xz
79f355d9b3ee53570045d9f90df36964  plymouth-kcm-5.11.4.tar.xz
9358a51ce97edd9d53044bd096e69bc2  xdg-desktop-portal-kde-5.11.4.tar.xz
e879c77b1dc567d04cb191cbb785ec45  drkonqi-5.11.4.tar.xz
7726dbaabc0f0f301ffde730dc3e73c7  plasma-vault-5.11.4.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.22 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.11.4.md5

exit

cd $KF5_PREFIX/share/plasma/plasmoids

for j in $(find -name \*.js); do
  as_root ln -sfv ../code/$(basename $j) $(dirname $j)/../ui/
done

Command Explanations

ln -sfv ../code/$(basename $j) $(dirname $j)/../ui/: Create symbolic links so qml files can find needed javascript modules.

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.3.4.

To start Plasma 5 using xinit-1.3.4, 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.24.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