Construction de Plasma 5

KDE Plasma 5 est une collection de paquets basés sur KDE Frameworks 5 et QML. Ils implémentent l'environnement d'affichage KDE (Plasma 5).

Ce paquet est connu pour se construire correctement sur une plateforme LFS-9.1.

Les instructions suivantes construisent tous les paquets Plasma 5 en une étape en utilisant un script bash.

Informations sur le paquet

Dépendances de Plasma 5

Requises

GConf-3.2.6, GTK+-2.24.32, GTK+-3.24.13, KDE Frameworks-5.67.0, libpwquality-1.4.2, libxkbcommon-0.10.0, Mesa-19.3.4 construit avec Wayland-1.18.0, NetworkManager-1.22.6, pipewire-0.2.7, PulseAudio-13.0, qca-2.2.1, sassc-3.6.1, taglib-1.11.1 et xcb-util-cursor-0.1.3

Recommandées

Facultatives

GLU-9.0.1, ibus-1.5.21, Xorg Synaptics Driver-1.9.1, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM et socat (pour pam_kwallet)

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

Téléchargement de KDE Plasma5

La meilleure façon d'avoir les paquets de KDE Plasma5 est d'utiliser un seul wget pour les avoir tous en même temps :

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

Initialisation de l'ordre des paquets

L'ordre de construction des fichiers est important à cause des dépendances internes. Créez la liste des fichiers dans le bon ordre comme suit :

cat > plasma-5.18.1.md5 << "EOF"
be7cccb3859c253740ad20eae56a1457  kdecoration-5.18.1.tar.xz
84b92ff5c7ab70537bc757122375ab3c  libkscreen-5.18.1.tar.xz
645e7d0e5167d89abfcb0011748179a8  libksysguard-5.18.1.tar.xz
0d6769306901883a9aadaaed4c199314  breeze-5.18.1.tar.xz
9c797eddc66820e119a32b3ca0e54327  breeze-gtk-5.18.1.tar.xz
2369c961fee61992bf16f8e5aabc296a  kscreenlocker-5.18.1.tar.xz
da5b0b9caca27a0b7faea3aac732e5d5  oxygen-5.18.1.tar.xz
c687fdd7a0c36a3a6d7ebd063f3aee61  kinfocenter-5.18.1.tar.xz
ae2bf8875c1b374d172267c7a0cca982  ksysguard-5.18.1.tar.xz
216b067f13f43238c7515815001fc862  kwin-5.18.1.tar.xz
97c106ec13bd9ecf87cc61e1cc29f374  plasma-workspace-5.18.1.tar.xz
8d3ea52e9b215523225e316d47469f3f  bluedevil-5.18.1.tar.xz
7c16855fe0c390a9eaa60d2f4e624736  kde-gtk-config-5.18.1.tar.xz
597ac5c22e2dc7bad5773781c4f5c563  khotkeys-5.18.1.tar.xz
cd59deb1769ed3fdcfd620f1d5e82676  kmenuedit-5.18.1.tar.xz
e957ca2f6374385e3b5598f839f843a5  kscreen-5.18.1.tar.xz
25db35f344bd12fdf6d6e54b87d4b90c  kwallet-pam-5.18.1.tar.xz
8bda1526aa7f9dbf6aa842b08cf22655  kwayland-integration-5.18.1.tar.xz
d0a29aed4ee8bcd9fce3e545f82832be  kwrited-5.18.1.tar.xz
2f4252bc1a8b07062e57d229fc3bc361  milou-5.18.1.tar.xz
8663fa971594bc70d6898e8604f8c99a  plasma-nm-5.18.1.tar.xz
0554888991a1f1f70cbbb95afa48184a  plasma-pa-5.18.1.tar.xz
25fcaf7cb52f20b3126af9baa1409e3c  plasma-workspace-wallpapers-5.18.1.tar.xz
0b88def5b87e822aa7370d91dfd07913  polkit-kde-agent-1-5.18.1.tar.xz
0326bf85fb50e15d5e78c43be9457993  powerdevil-5.18.1.tar.xz
58ec01d70d18f23a03ec2040beb506f1  plasma-desktop-5.18.1.tar.xz
9a44fb928f5dd22a695d38617660aeee  kdeplasma-addons-5.18.1.tar.xz
7200c6ebdc63dde79f64a9b2472b2d37  kgamma5-5.18.1.tar.xz
78d68fd989b451a8e75fd9278a0c1947  ksshaskpass-5.18.1.tar.xz
#4c907670bbe788499038254311f6ac0b  plasma-sdk-5.18.1.tar.xz
7533a7a459d476ece00d558d4fc9a8f7  sddm-kcm-5.18.1.tar.xz
2b2351beb674ce01cca0b58d3c8a49b2  user-manager-5.18.1.tar.xz
c76653dce9c3f9f1ac1edae6fe342ee7  discover-5.18.1.tar.xz
#ca25ee8ad60b64d19850ccba8994547c  breeze-grub-5.18.1.tar.xz
#c8377f0f2ac3109014c8062e74145def  breeze-plymouth-5.18.1.tar.xz
7b5e6cbb5d84b69745030773bea176c0  kactivitymanagerd-5.18.1.tar.xz
fa2e316a15f24c64a71c36d30b7f7585  plasma-integration-5.18.1.tar.xz
a5d8cc4a47ba59969f98be0cc5800f83  plasma-tests-5.18.1.tar.xz
#c13ae6eaa29760e67a9c17d6a1a48153  plymouth-kcm-5.18.1.tar.xz
d6e2d1a982c83a553607d46a04fcfff7  xdg-desktop-portal-kde-5.18.1.tar.xz
5b7bf736b767d40d77a4c51bca9708e0  drkonqi-5.18.1.tar.xz
1ccf74eb8b851b1dba87f2cd3ed54052  plasma-vault-5.18.1.tar.xz
a0f85c77e48c35a17cc326491155249e  plasma-browser-integration-5.18.1.tar.xz
7d73463b9115234991a631dc6741bab4  kde-cli-tools-5.18.1.tar.xz
d420ca0680c67496b8572b143aae1dc9  systemsettings-5.18.1.tar.xz
a2ae6b65f5ae2df57cfb29bf8ae56eda  plasma-thunderbolt-5.18.1.tar.xz
#3df1a7d13f5cce484ce8fb684c1c0015  plasma-nano-5.18.1.tar.xz
#498e4c99016d51bc44abdb8416e7dba2  plasma-phone-components-5.18.1.tar.xz
EOF
[Note]

Note

Les paquets breeze-grub, breeze-plymouth et plymouth-kcm ci-dessus servent à supporter la personnalisation de Plymouth qui est conçu pour fonctionner dans un disque de ram initial pendant le démarrage (voir la section intitulée « À propos de initramfs »). Le paquet plasma-sdk est facultatif et utilisé pour le développement logiciel. Le paquet plasma-nano est utilisé pour les systèmes embarqués et plasma-phone-components fournit des fonctionnalités pour Plasma sur les téléphones.

Installation de Plasma5

[Note]

Note

Pour l'installation de paquets multiples dans un script, les installations doivent être faites en tant qu'utilisateur root. Il y a trois options générales qui peuvent être utilisées pour faire cela :

  1. Lancer le script entièrement en tant qu'utilisateur root (pas recommandé).

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

  3. Use su -c "command arguments" (guillemet requis) qui demandera le mot de passe root à chaque itération de la boucle.

Une façon de gérer cette situation est de créer une petite fonction bash qui sélectionne automatiquement la méthode appropriée. Une fois que la commande est initialisée dans l'environnement, il n'est plus nécessaire de le refaire.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}
export -f as_root

Commencez par démarrer un sous-shell qui sortira s'il y a une erreur :

bash -e

Installez tous les paquets en lançant les commandes suivantes :

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

       # Fix some build issues when generating some configuration files
       case $name in
         plasma-workspace)
           sed -i '/set.HAVE_X11/a set(X11_FOUND 1)' CMakeLists.txt
         ;;
      
         khotkeys)
           sed -i '/X11Extras/a set(X11_FOUND 1)' CMakeLists.txt
         ;;
      
         plasma-desktop)
           sed -i '/X11.h)/i set(X11_FOUND 1)' CMakeLists.txt
         ;;
       esac

       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.18.1.md5

exit

Si vous n'avez pas configuré $KF5_PREFIX à /usr, créez des liens symboliques pour permettre aux gestionnaires d'affichage de trouver 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 plasma.desktop ]                                      ||
as_root ln -sfv $KF5_PREFIX/share/wayland-sessions/plasma.desktop

Configuration de Plasma

Configuration de Linux PAM

Si vous avez construit Plasma avec le support recommandé de Linux PAM, créez les fichiers de configuration nécessaires en lançant les commandes suivantes en tant qu'utilisateur root :

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

Démarrage de Plasma5

Vous pouvez démarrer Plasma5 depuis un TTY avec xinit-1.4.1.

Pour démarrer Plasma5 en utilisant xinit-1.4.1, lancez les commandes suivantes :

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-session $KF5_PREFIX/bin/startplasma-x11
EOF

startx

La session X démarre dans le premier terminal virtuel inutilisé, normalement vt7. Vous pouvez passer à un autre vtn en appuyant simultanément sur les touches Ctrl-Alt-Fn (n=1, 2, ...). Pour aller sur la session X, normalement démarrée sur vt7, utilisez Ctrl-Alt-F7. Le vt où la commande startx est exécuté affichera beaucoup de messages, incluant les messages de démarrage de X, les applications automatiquement démarrées avec la session, et éventuellement, quelques avertissements et messages d'erreur. Vous pouvez préférer rediriger ces messages dans un fichier de log, qui non seulement laissera le vt initial propre, mais pourra aussi être utilisé pour des questions de débogage. Cela peut être fait en démarrant X avec :

startx &> ~/x-session-errors

Au redémarrage ou à l'arrêt, les messages d'arrêt apparaissent sur le vt où X était lancé. Si vous voulez voir ces messages, appuyez simultanément sur Alt-F7 (en considérant que X était lancé sur vt7).

Si vous prévoyez de démarrer Plasma en utilisant un gestionnaire d'affichage comme lightdm-1.30.0, il y aura deux entrées pour Plasma, une pour l'utilisation de Xorg, et une autre pour Wayland. Modifiez l'entrée Xorgavec la commande suivante, en tant qu'utilisateur root afin que vous puissiez faire la différence entre les deux :

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

Contenu

Programmes installés: Il y a trop de programmes plasma (50 dans /opt/kf5/bin) pour les lister séparément ici.
Bibliothèques installées: Il y a trop de bibliothèques plasma (39 dans /opt/kf5/lib) pour les lister séparément ici.
Répertoires installés: Il y a trop de répertoires plasma (plus de 1000 dans /opt/kf5) pour les lister séparément ici.

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