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.1 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+-3.24.41, KDE Frameworks-5.115.0, kuserfeedback-1.3.0, libpwquality-1.4.5, libqalculate-4.9.0, libxcvt-0.1.2, libxkbcommon-1.6.0, Mesa-24.0.1 construit avec Wayland-1.22.0, NetworkManager-1.44.2, pipewire-1.0.3, PulseAudio-17.0, qca-2.3.8, sassc-3.6.2, taglib-2.0 et xcb-util-cursor-0.1.4

Recommandées

Recommandées (à l'exécution)

Facultatives

AppStream-1.0.1 (construit avec -qt=true), GLU-9.0.3, ibus-1.5.29, qtwebengine-5.15.17, Xorg Synaptics Driver-1.9.2, KDevPlatform, libgps, libhybris, libraw1394, packagekit-qt, Qalculate, Qapt, SCIM et socat (for pam_kwallet)

[Note]

Note

qtwebengine-5.15.17 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.

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.10/
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.10.md5 << "EOF"
a1361a811dc93389d0ce771d1ff82c3a  kdecoration-5.27.10.tar.xz
1f491e823bc83df650d04d5d9948da45  libkscreen-5.27.10.tar.xz
571aa0c18a14ee74f3081f96f73a7f9d  libksysguard-5.27.10.tar.xz
541d1b06db3b707a7a73df1526f37b44  breeze-5.27.10.tar.xz
9acdc232ea675b761e7386837f25f420  breeze-gtk-5.27.10.tar.xz
54562594af547614648cded522c3e747  layer-shell-qt-5.27.10.tar.xz
c44cfe3ba7fb03fc30b2ae305f16ed79  kscreenlocker-5.27.10.tar.xz
171949dd2dfc3b2325c959389694860a  oxygen-5.27.10.tar.xz
0ef8d9f18707712fc4bcccf59138f2c7  kinfocenter-5.27.10.tar.xz
e4e4409af71c4f5a67aa35c04f6b2bc7  kwin-5.27.10.tar.xz
5c2ff5158503e983207e700ce513e929  plasma-workspace-5.27.10.tar.xz
46001c7671f7ff2f08ca0dd9c3cdbf3f  plasma-disks-5.27.10.tar.xz
820566ae6effedbdd208a78e0031bf67  bluedevil-5.27.10.tar.xz
490bd81c915f332b65631b87b6eaa49d  kde-gtk-config-5.27.10.tar.xz
7cade9cfce3ef14f14f55cd7a50fd7cf  khotkeys-5.27.10.tar.xz
e98c999e6ee7f9bbe775d4e512368420  kmenuedit-5.27.10.tar.xz
24bc4ed3ad5587bd05591aafd758df2c  kscreen-5.27.10.tar.xz
3ab1c88cf91f0fb46ae3395d57709e12  kwallet-pam-5.27.10.tar.xz
53d59d76b3dfac5f755d607798b08f85  kwayland-integration-5.27.10.tar.xz
d7a9f2999352e91d504d52ad65336d9b  kwrited-5.27.10.tar.xz
8a51e19d58acebb89a919b7377d8bc83  milou-5.27.10.tar.xz
0e11c62c2a23d161b5b8cbe6e87517bc  plasma-nm-5.27.10.tar.xz
02657d8fd46384f75ffe9c504f7c97b4  plasma-pa-5.27.10.tar.xz
5c1cbd459e786deb16d5615748114bfa  plasma-workspace-wallpapers-5.27.10.tar.xz
17302ca60f68e13e85bc24a4ec873622  polkit-kde-agent-1-5.27.10.tar.xz
cc39dc5777614bd89ae96d38008dc7c9  powerdevil-5.27.10.tar.xz
2417bb974152d4f2274ebe3b7b524ca8  plasma-desktop-5.27.10.tar.xz
f51521902f0665349c0fa012590a1eec  kgamma-5.27.10.tar.xz
e95d6813c180b078be4bf40550791e26  ksshaskpass-5.27.10.tar.xz
#8c52fad441ffe43969458ae71b6a2f26  plasma-sdk-5.27.10.tar.xz
1af573d08dd99879f27c5a2b55b02bc9  sddm-kcm-5.27.10.tar.xz
#560ac5c60112e18bb44c46eec3563d7d  discover-5.27.10.tar.xz
#3af40cfe47213087d2a8c89132ff004d  discover-5.27.10.1.tar.xz
#2cd0a4e1e3e89197e18f48d893c0f2d6  breeze-grub-5.27.10.tar.xz
#fe7bb4efec17206a9faceb9cfe35fbf5  breeze-plymouth-5.27.10.tar.xz
5bbb5c7a2985f8d7b8816a35d517d333  kactivitymanagerd-5.27.10.tar.xz
c1810c7d54842028fb5968097add5538  plasma-integration-5.27.10.tar.xz
#75bedf5da4b7497a18238011d12bec26  plymouth-kcm-5.27.10.tar.xz
440dd7cb1f43d7d86862a1165b48c4f2  xdg-desktop-portal-kde-5.27.10.tar.xz
657984f8356578253e1911c8d35041f6  drkonqi-5.27.10.tar.xz
912db896afe71a8283e36037b4bba79e  plasma-vault-5.27.10.tar.xz
e03d33ca8a9905df3c2901cef5512a14  plasma-browser-integration-5.27.10.tar.xz
30797f3809675e61542518f9b15be2c3  kde-cli-tools-5.27.10.tar.xz
1319f82a4043456a4cb99cfcc2ba90fe  systemsettings-5.27.10.tar.xz
2861104cf1e31393d9cd87701042d3aa  plasma-thunderbolt-5.27.10.tar.xz
#79ffc86387c7024bd834b349fba9b79f  plasma-nano-5.27.10.tar.xz
#802d5a3cd34f5ec3825c21905f0ed9db  plasma-mobile-5.27.10.tar.xz
1f4875f2cf9c0d949961aa9ad6635e6f  plasma-firewall-5.27.10.tar.xz
b6648b45d9824b565dda1f100e7d83a6  plasma-systemmonitor-5.27.10.tar.xz
8e46e5afde739a6361b1838f71eb182d  qqc2-breeze-style-5.27.10.tar.xz
fd93592f9895c5c09f4c0db771c1710a  ksystemstats-5.27.10.tar.xz
4f55bb4490751abb23046165d68e8ca7  oxygen-sounds-5.27.10.tar.xz
#6300c88c07debeb60760dede52a791ee  aura-browser-5.27.10.tar.xz
00afc45528267a5e2ec11b47b8a7779b  kdeplasma-addons-5.27.10.tar.xz
7f432fbb0d205d6e30714e731f91a459  kpipewire-5.27.10.tar.xz
5f37a2e3acf00a0616e13d86ed225d7f  plank-player-5.27.10.tar.xz
f3a08cefe61643273a9e06cfd6b2746a  plasma-bigscreen-5.27.10.tar.xz
a69142a27ab62c583fa5d4d4577427ff  plasma-remotecontrollers-5.27.10.tar.xz
#16e67ca215d44ec59130214ca6e13e80  flatpak-kcm-5.27.10.tar.xz
#4ef3e1d988e5edfa8ee20f9373a82680  plasma-welcome-5.27.10.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. Le paquet plasma-mobile fournit des fonctionnalités pour Plasma sur les téléphones. Le paquet aura-browser nécessite qtwebengine-5.15.17. Le paquet discover nécessite que AppStream-1.0.1 soit construit avec le paramètre -Dqt=true. La version discover-5.27.10.1 du paquet est une mise à jour par rapport à la version précédente. 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.15p5 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.10.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 et pour permettre à XDG Desktop Portal d'être détecté :

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
as_root install -dvm 755 /usr/share/xdg-desktop-portal     &&
cd /usr/share/xdg-desktop-portal/                          &&
[ -e kde-portals.conf ]                                    ||
as_root ln -sfv $KF5_PREFIX/share/xdg-desktop-portal/kde-portals.conf
as_root install -dvm 755 /usr/share/xdg-desktop-portal/portals &&
cd /usr/share/xdg-desktop-portal/portals                       &&
[ -e kde.portal ]                                              ||
as_root ln -sfv $KF5_PREFIX/share/xdg-desktop-portal/portals/kde.portal

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 un TTY avec xinit-1.4.2.

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.