Construire Plasma

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

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.4.

Les instructions ci-dessous permettent de construire les paquets Plasma en une seule étape avec un script bash.

Informations sur le paquet

Dépendances de Plasma

Requises

Boost-1.89.0, FFmpeg-7.1.1, GTK-3.24.50, KDE Frameworks-6.17.0, kirigami-addons-1.9.0, libdisplay-info-0.3.0, libpwquality-1.4.5, libqalculate-5.7.0, libnl-3.11.0, libxcvt-0.1.3, libxkbcommon-1.11.0, Mesa-25.1.8 construit avec Wayland-1.24.0, opencv-4.12.0, phonon-4.12.0, pipewire-1.4.7, pulseaudio-qt-1.7.0, qca-2.3.10, qcoro-0.12.0, sassc-3.6.2, taglib-2.1.1, xdotool-3.20211022.1 et Xorg Evdev Driver-2.11.0

Recommandées

Recommandées (à l'exécution)

Facultatives

AppStream-1.0.6 (build with -qt=true), GLU-9.0.3, ibus-1.5.32, qtwebengine-6.9.1, KDevPlatform, libgps, libhybris, packagekit-qt, Qapt, SCIM et socat (pour pam_kwallet)

Téléchargement de KDE Plasma

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

url=https://download.kde.org/stable/plasma/6.4.4/
wget -r -nH -nd -A '*.xz' -np $url

Les options utilisées ici sont :
  -r            cherche récursivement dans les répertoires enfants
  -nH           désactive la génération des répertoires préfixés par 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-6.4.4.md5 << "EOF"
1e80c73ad404ff95a607f46ec453ac07  kdecoration-6.4.4.tar.xz
6788dae93c3fb8d3790651c3cc13a459  libkscreen-6.4.4.tar.xz
f7075d4472969968507a72cb35168dbc  libksysguard-6.4.4.tar.xz
e45d3b003a98b53f93b027b26038a4d2  breeze-6.4.4.tar.xz
2d8a7936962ae30177c14f9cad0917ff  breeze-gtk-6.4.4.tar.xz
57485b21e575b632223946b936a11d35  layer-shell-qt-6.4.4.tar.xz
1294ad60e08e3d14263c316c5f2123c3  plasma-activities-6.4.4.tar.xz
69892c484106a65edc8669f9ff07f1de  libplasma-6.4.4.tar.xz
d2660f748364304a38534ad9f8302f65  kscreenlocker-6.4.4.tar.xz
5b2aa8e2f826a5537ce018645094bc06  kinfocenter-6.4.4.tar.xz
2a3cb2bc67a700808ee4de996fbcf7e1  kglobalacceld-6.4.4.tar.xz
5f2f27d10a309f87a7fcc7abe3f33c7a  kwayland-6.4.4.tar.xz
b5ce13deed26c030e80078997bcd3f59  aurorae-6.4.4.tar.xz
29aa486a4c9c03623f06019c4c6f4a6f  kwin-x11-6.4.4.tar.xz
38bd47faac424693d15e6cbec7bb4f8c  kwin-6.4.4.tar.xz
c89eed60be47c41acdaab7f7738474d9  plasma5support-6.4.4.tar.xz
e19f331b7233dfa00c1f9a4dc282aa6d  plasma-activities-stats-6.4.4.tar.xz
1234acb0cf42bb51fa1e44de15300daf  kpipewire-6.4.4.tar.xz
e387fc191c75643adf8647115e5b8135  plasma-workspace-6.4.4.tar.xz
f7955fe53dcfce1d3ee28385fb0460c5  plasma-disks-6.4.4.tar.xz
359c9fcedc3ee2660a7414c96f6a0888  bluedevil-6.4.4.tar.xz
8dd8c635342894da4a61dabc5820fce4  kde-gtk-config-6.4.4.tar.xz
123d1734729b0f6d66c45017d810ff10  kmenuedit-6.4.4.tar.xz
81cfc86c317b76e66c8fa69bd211580e  kscreen-6.4.4.tar.xz
2c7b043f2ec05c4b03f210dcedc0b502  kwallet-pam-6.4.4.tar.xz
5695632187671ca756c4e7185a71195e  kwrited-6.4.4.tar.xz
1a6dd6488b0125451102045aa8efdc1a  milou-6.4.4.tar.xz
2bf7e0444338ae3a792ccaf1049466ed  plasma-nm-6.4.4.tar.xz
00cbf448523569d1ecf799ffe8097961  plasma-pa-6.4.4.tar.xz
44bcf4f669bfa5dfd9b4a54f6016ba7b  plasma-workspace-wallpapers-6.4.4.tar.xz
cf1fe247a40af3e6dd5ca2ad53b327d0  polkit-kde-agent-1-6.4.4.tar.xz
96158610825e79a419a28f45bb809eb9  powerdevil-6.4.4.tar.xz
714b58e169c5d2e8c80d65ca8e284cff  plasma-desktop-6.4.4.tar.xz
35d2e17964ddda121f50098c29d4c30d  kgamma-6.4.4.tar.xz
27a3515f9ae4184b4987c83892d6b74a  ksshaskpass-6.4.4.tar.xz
#070839c487e9d8229ce8298d77480c8b  plasma-sdk-6.4.4.tar.xz
b19b0189993f7ebc509d3e24cc1e8aa0  sddm-kcm-6.4.4.tar.xz
#328b5f55fd21129c9184b7d1b672a0bf  discover-6.4.4.tar.xz
#3094f57a829def773d0f6ebb8b08f1f6  breeze-grub-6.4.4.tar.xz
#b3469dba2137b484b193a99fc064be67  breeze-plymouth-6.4.4.tar.xz
6e15c7a2bb5788b93acebde0318fae83  kactivitymanagerd-6.4.4.tar.xz
902966727cc9a5ebb4761df12e142c32  plasma-integration-6.4.4.tar.xz
#53cde99837265125361385ddf6246070  plymouth-kcm-6.4.4.tar.xz
eaeb0a047ac662cef2ecaf03a336ce91  xdg-desktop-portal-kde-6.4.4.tar.xz
b2b868b09d36cdbd77d086c3e215947e  drkonqi-6.4.4.tar.xz
2d2c9bcc3d499fadff6ba8c78e0a78d6  plasma-vault-6.4.4.tar.xz
#5c043fbaf5c84975c469472cc5880a59  plasma-browser-integration-6.4.4.tar.xz
7b9720ff5aaccfff5a9dddc2a71e4eb6  kde-cli-tools-6.4.4.tar.xz
88cf35de0ee8ca3b45474ffaf0d54432  systemsettings-6.4.4.tar.xz
5e2c2591807a58cf6cdf4e884c3dd4be  plasma-thunderbolt-6.4.4.tar.xz
#6a9b80fa6e10454556c4528c2510b2f7  plasma-mobile-6.4.4.tar.xz
#257173def078b51674cd27601828d732  plasma-nano-6.4.4.tar.xz
3c58fb9253970cb7a651088f423e0d9c  plasma-firewall-6.4.4.tar.xz
ff6d636282233f101ec9349321cc4e70  plasma-systemmonitor-6.4.4.tar.xz
3e2a5476e578a309854f7a965bd627a8  qqc2-breeze-style-6.4.4.tar.xz
9d4579bd5ce554f5d21bfe41a0fe64e6  ksystemstats-6.4.4.tar.xz
3fcde8974282d0ae737f38a2d5cc4c7e  oxygen-sounds-6.4.4.tar.xz
88e1e9c59db958a326c8e59769334eae  kdeplasma-addons-6.4.4.tar.xz
#e2af8aad6f916339a20d79b70434adde  flatpak-kcm-6.4.4.tar.xz
d6849ab3c3d626217e71ac5c571a0e56  plasma-welcome-6.4.4.tar.xz
67e934afb009c0cc85b6b5a7818dfc21  ocean-sound-theme-6.4.4.tar.xz
6a4cc6c6068851e488a85f94efe40959  print-manager-6.4.4.tar.xz
d66d7c32a5811a172ede92e86d0b050b  wacomtablet-6.4.4.tar.xz
#6df9d0417921b08811b3b37640f81ae7  kwayland-integration-6.4.4.tar.xz
#e377c170815f38c88d04fbacc6c2ba46  krdp-6.4.4.tar.xz
8bcecf5327af741a21af37a93901fd35  oxygen-6.4.4.tar.xz
#079df59ec207b0c7d9e83fd544c34af9  plasma-dialer-6.4.4.tar.xz
#2425c5d7af8b994b9b2a7b78db8a5bb3  spacebar-6.4.4.tar.xz
51b35f64a4e47bb39d1c27f1e6171ab9  spectacle-6.4.4.tar.xz
EOF
[Note]

À propos des paquets commentés

Dans la liste ci-dessus, plusieurs fichiers sont commentés avec le caractère dièse (#).

  • Le paquet plasma-sdk est facultatif et utilisé pour le développement logiciel.

  • Le paquet discover nécessite que AppStream-1.0.6 soit construit avec le paramètre -D qt=true.

  • Les paquets breeze-grub, breeze-plymouth et plymouth-kcm plus haut sont tous utilisés pour la personnalisation de Plymouth qui est conçu pour être lancé dans un disque de ram initial pendant le démarrage (voir la section intitulée « À propos de initramfs »).

  • Le paquet plasma-browser-integration est conçu pour implémenter l'intégration de Plasma dans Mozilla Firefox et Google Chrome. Le paquet construit, mais il n'est utile que si vous voulez que ces navigateurs soient intégrés au bureau de façon à pouvoir voir (et contrôler) les téléchargements depuis la zone de notifications de Plasma, et qu'ils permettent de rechercher dans l'historique de navigation depuis KDE Runner. Remarquez que vous devez également installer une extension du navigateur pour que cela fonctionne. Pour plus de détails, consultez la page wiki de KDE Plasma sur l'intégration du navigateur.

  • Le paquet krdp est utilisé pour permettre de lancer un serveur RDP tout en utilisant Plasma. Cette fonctionnalité nécessite la version 2.x de FreeRDP, qui n'est pas dans BLFS.

  • Le paquet plasma-nano est utilisé pour les système embarqués.

  • Les paquets plasma-mobile, plasma-dialer et spacebar fournissent des fonctionnalités téléphoniques à Plasma.

  • Le paquet flatpak-kcm permet de gérer la prise en charge des applications flatpak.

  • L'application kwayland-integration nécessite la prise en charge de plasma5.

Installation de Plasma

[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.17p2 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

Tout d'abord, démarrez un sous-shell qui terminera en cas d'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
    name=$(      echo $pkg |sed 's|-6.*$||')   # Isolate package name
    packagedir=$(echo $pkg |sed 's|\.tar.*||') # Source directory

    tar -xf $file
    pushd $packagedir

       mkdir build
       cd    build

       cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
             -D CMAKE_INSTALL_LIBEXECDIR=libexec \
             -D CMAKE_BUILD_TYPE=Release         \
             -D BUILD_QT5=OFF                    \
             -D BUILD_TESTING=OFF                \
             -W no-dev ..  &&

        make
        as_root make install
    popd


    as_root rm -rf $packagedir
    as_root /sbin/ldconfig

done < plasma-6.4.4.md5

exit

Si vous n'avez pas configuré $KF6_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é. En tant qu'utilisateur root :

# Setup xsessions (X11 sessions)
install -dvm 755 /usr/share/xsessions
cd /usr/share/xsessions

[ -e plasma.desktop ] ||
ln -sfv $KF6_PREFIX/share/xsessions/plasmax11.desktop 

# Setup wayland-sessions 
install -dvm 755 /usr/share/wayland-sessions
cd /usr/share/wayland-sessions

[ -e plasmawayland.desktop ] ||
ln -sfv $KF6_PREFIX/share/wayland-sessions/plasma.desktop

# Setup xdg-desktop-portal
install -dvm 755 /usr/share/xdg-desktop-portal
cd /usr/share/xdg-desktop-portal 

[ -e kde-portals.conf ] ||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/kde-portals.conf

# Setup kde portal
install -dvm 755 /usr/share/xdg-desktop-portal/portals
cd /usr/share/xdg-desktop-portal/portals

[ -e kde.portal ] ||
ln -sfv $KF6_PREFIX/share/xdg-desktop-portal/portals/kde.portal

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

rm -rf $KF6_PREFIX/lib/systemd

Configuration de Plasma

Configuration avec 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 Plasma

Vous pouvez démarrer Plasma depuis le niveau d'exécution 3, en utilisant xinit-1.4.4, ou depuis le niveau d'exécution 5, en utilisant un gestionnaire d'affichage, tel que lightdm-1.32.0.

Pour démarrer Plasma en utilisant xinit-1.4.4, lancez les commandes suivantes :

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

startx

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

startx &> ~/x-session-errors

Quand vous arrêtez ou redémarrez, les messages d'arrêt apparaissent sur le vt où X était lancé. Si vous souhaitez 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 (plus de 50 dans /opt/kf6/bin) pour les lister séparément ici.
Bibliothèques installées: Il y a trop de bibliothèques plasma (plus de 250 dans /opt/kf6/lib) pour les lister séparément ici.
Répertoires installés: Il y a trop de répertoires plasma (plus de 2700 dans /opt/kf6) pour les lister séparément ici.