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

This package is known to build and work properly using an LFS 12.0 platform.

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

GTK+-2.24.33, GTK+-3.24.38, KDE Frameworks-5.109.0, kuserfeedback-1.2.0, libpwquality-1.4.5, libqalculate-4.7.0, libxkbcommon-1.5.0, Mesa-23.1.6 construit avec Wayland-1.22.0, NetworkManager-1.44.0, pipewire-0.3.77, PulseAudio-16.1, qca-2.3.7, sassc-3.6.2, taglib-1.13.1 et xcb-util-cursor-0.1.4

Recommandées

Recommandées (à l'exécution)

Facultatives

GLU-9.0.3, ibus-1.5.28, qtwebengine-5.15.15, Xorg Synaptics Driver-1.9.2, appstream-qt, KDevPlatform, libgps, libhybris, libraw1394, mockcpp, packagekit-qt, Qalculate, Qapt, SCIM et socat (for pam_kwallet)

[Note]

Note

qtwebengine-5.15.15 est requis pour aura-browser. Deux paquets de plasma l'utilisent également de manière facultative : libksysguard et kdeplasma-addons. Si QtWebEngine est installé plus tard, seuls ces deux paquets doivent être reconstruits. Cela permet de fournir un affichage plus complet dans l'application de surveillance du système.

Notes des rédacteurs : https://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=https://download.kde.org/stable/plasma/5.27.7/
wget -r -nH -nd -A '*.xz' -np $url

Les options utilisée ici sont :
  -r            récupère les répertoires enfants
  -nH           désactive la génération de répertoires commençant pour le nom d'hôte
  -nd           ne crée pas de hiérarchie de répertoires
  -A '*.xz'     récupère uniquement les fichiers *.xz
  -np           ne récupère pas les répertoires parents

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.27.7.md5 << "EOF"
f8e36636128efc0172b0664df372f350  kdecoration-5.27.7.tar.xz
0f40e7e4ef0675cf06afc828c6056821  libkscreen-5.27.7.tar.xz
fdbbd274867d8013631eb66f889da983  libksysguard-5.27.7.tar.xz
6d0358ed7bbb27557c073cfce675120f  breeze-5.27.7.tar.xz
7dac534103b595e861fb923e0a46af8a  breeze-gtk-5.27.7.tar.xz
27839d93e7bf42bd8e6e9d822572a3d3  layer-shell-qt-5.27.7.tar.xz
56e13a523dc2b27dd2fe7d17cf87c427  kscreenlocker-5.27.7.tar.xz
1806b24c107c30a0144be0c58361c391  oxygen-5.27.7.tar.xz
b3b25a757de32befe4c282ebc9b928c3  kinfocenter-5.27.7.tar.xz
f992f11ed7704e94809f4a609b444074  kwin-5.27.7.tar.xz
5aa3a8e2e8c97b182cb15090f9149831  plasma-workspace-5.27.7.tar.xz
2b3c139e30eaaf4cf42706c9e6212ca5  plasma-disks-5.27.7.tar.xz
a347a0848863114e96ca25868b1d2483  bluedevil-5.27.7.tar.xz
77731f7530552c096785e938554c5c0e  kde-gtk-config-5.27.7.tar.xz
19a17f02655872c827380bd1fc485b50  khotkeys-5.27.7.tar.xz
4777cae88cb32e1dc77d6765f3cf17e3  kmenuedit-5.27.7.tar.xz
a9618c0aa86cf8d0186e146aef644cd7  kscreen-5.27.7.tar.xz
d75c043ef114b2b590f8ede12bb86a24  kwallet-pam-5.27.7.tar.xz
9c4ebb3d608c08c83b87a880b731ef11  kwayland-integration-5.27.7.tar.xz
2d04936cfcdb3da0ecab6b9c7f83339e  kwrited-5.27.7.tar.xz
ea10ad5ac86ad2a1f1c0dfdb28918ad8  milou-5.27.7.tar.xz
1640a01420f5885d87e55a3fc3ca8410  plasma-nm-5.27.7.tar.xz
24cdd5610e2b02c774486cdeaf0074f5  plasma-pa-5.27.7.tar.xz
4d941372e2a0ba9fe4a42a668dfd6aeb  plasma-workspace-wallpapers-5.27.7.tar.xz
003d40545b13d58a2fa024236c92c18f  polkit-kde-agent-1-5.27.7.tar.xz
2708af1b47a164321111220f3e3fb5f8  powerdevil-5.27.7.tar.xz
7f7d2bea26b4d825c9a6e8d57e400a4a  plasma-desktop-5.27.7.1.tar.xz
#b8f2c72d4d0ffd37573c1f949e8604aa  plasma-desktop-5.27.7.tar.xz
f66aefab6b7b3115ead7cf3966d6e2c6  kgamma5-5.27.7.tar.xz
614a24e70dfdcbf225047951d1bb35af  ksshaskpass-5.27.7.tar.xz
#8e9460adae337baab8d80da3422f9e34  plasma-sdk-5.27.7.1.tar.xz
#69bcb008dc0c22bb9dad2f990778b46e  plasma-sdk-5.27.7.5.27.7.1.tar.xz
#cba2b18c587dff393bd232d61a35046d  plasma-sdk-5.27.7.tar.xz
293fa8cd57834e07c719a055e2b47fbe  sddm-kcm-5.27.7.tar.xz
#7857d8972a9cc45cc3b672a6d5ff2b12  discover-5.27.7.tar.xz
#9727481d29a7468420cb1a37a0b36e9e  breeze-grub-5.27.7.tar.xz
#157416774eb4bfc57a4e2caf4512f069  breeze-plymouth-5.27.7.tar.xz
cdda9f9d374615768d8a324dae92ad1d  kactivitymanagerd-5.27.7.tar.xz
3e8fd694b222d4d6c3d4e2b952099fb0  plasma-integration-5.27.7.tar.xz
#7bd722f2799f4b1c562be46c5b2d0da1  plymouth-kcm-5.27.7.tar.xz
26e40eaf358dc02d71ab5cb511a5b3a8  xdg-desktop-portal-kde-5.27.7.tar.xz
ce2a9be64095829d124d4f83c14a464c  drkonqi-5.27.7.tar.xz
410818deea59fc12aa3ed155e350e931  plasma-vault-5.27.7.tar.xz
4636852897f802e64501fbae5e3dfb24  plasma-browser-integration-5.27.7.tar.xz
3febab89d2fca2e67271d5e35723d7be  kde-cli-tools-5.27.7.tar.xz
799ec2ab0012e47d2b1660affe5f333e  systemsettings-5.27.7.tar.xz
fa9f2208c27d8a3e99c0cbb113087338  plasma-thunderbolt-5.27.7.tar.xz
#c4dbf6737cc9d8d3396214d4bed14abf  plasma-nano-5.27.7.tar.xz
#74a1ec9c76b979fb8a3906204c93add4  plasma-mobile-5.27.7.tar.xz
ca0a794b2d65c9c763d0f932b2bd9c1e  plasma-firewall-5.27.7.tar.xz
4f3a9803e3741521b1867303b179670a  plasma-systemmonitor-5.27.7.tar.xz
29fb63dc5c266b3fe0a2e849f1a1db28  qqc2-breeze-style-5.27.7.tar.xz
2e3689a958a72aa1a09aa6edf471ce11  ksystemstats-5.27.7.tar.xz
08434c4829aefd689c877fe84baa5ad6  oxygen-sounds-5.27.7.tar.xz
#2b1b01328d062d6d9c3d92daaa26d13c  aura-browser-5.27.7.tar.xz
a32fedd93e3ecef504ea28ec27cbfd55  kdeplasma-addons-5.27.7.tar.xz
1d759ab0bb02f630385e4dc267aaef6e  kpipewire-5.27.7.tar.xz
553afd4e952b601147ca868b7129303d  plank-player-5.27.7.tar.xz
51ad32e45ad4a0f5291d1a9ce4efa0f2  plasma-bigscreen-5.27.7.tar.xz
fb25df16ef388f7dbfc163911e7828be  plasma-remotecontrollers-5.27.7.tar.xz
#507a8d13920b160b4683b093e90f6088  flatpak-kcm-5.27.7.tar.xz
#9eadbc5ec19e2122f81742e0f38941f7  plasma-welcome-5.27.7.tar.xz
EOF
[Note]

À propos des paquets commentés

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. Le paquet aura-browser nécessite qtwebengine-5.15.15. Le paquet discover nécessite le paquet externe appstream-qt. Le paquet plasma-welcome nécessite le paquet externe kaccounts-integration. Le paquet flatpack-kcm permet de gérer la prise en charge des applications flatpack.

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.9.14p3 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 exécutant 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

       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.7.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 plasmawayland.desktop ]                               ||
as_root ln -sfv $KF5_PREFIX/share/wayland-sessions/plasmawayland.desktop

Des unités systemd inutiles ont été installées dans $KF5_PREFIX/lib. Supprimez-les maintenant (en tant que root) :

rm -rf $KF5_PREFIX/lib/systemd

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 exécutant 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 le niveau d'exécution 3, en utilisant xinit-1.4.2, ou depuis le niveau d'exécution 5, en utilisant un gestionnaire d'affichage, tel que lightdm-1.32.0.

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

cat > ~/.xinitrc << "EOF"
dbus-launch --exit-with-x11 $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 qui 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).

Contenu

Programmes installés: Il y a trop de programmes plasma (63 dans /opt/kf5/bin) pour les lister séparément ici.
Bibliothèques installées: Il y a trop de bibliothèques plasma (40 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.