Bygge Plasma

KDE Plasma er en samling pakker basert på toppen av KDE Rammeverket og QML. De implementerer KDE Skjermmiljø (Plasma).

[Notat]

Notat

Utviklingsversjoner av BLFS kan kanskje ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden de siste stabile versjonene av bøkene.

Instruksjonene nedenfor bygger alle Plasma pakkene i et trinn ved å bruke et bashskript.

Pakkeinformasjon

Plasma Avhengigheter

Påkrevd

Boost-1.88.0, FFmpeg-7.1.1, GTK-3.24.49, KDE Frameworks-6.13.0, kirigami-addons-1.7.0, libdisplay-info-0.2.0, libpwquality-1.4.5, libqalculate-5.5.2, libnl-3.11.0, libxcvt-0.1.3, libxkbcommon-1.10.0, Mesa-25.0.5 bygget med Wayland-1.23.0, opencv-4.11.0, phonon-4.12.0, pipewire-1.4.4, pulseaudio-qt-1.7.0, qca-2.3.10, qcoro-0.12.0, sassc-3.6.2, taglib-2.0.2, xdotool-3.20211022.1, og Xorg Evdev Driver-2.11.0

Anbefalt

Anbefalt (kjøretid)

Valgfri

AppStream-1.0.5 (bygget med -qt=true), GLU-9.0.3, ibus-1.5.32, qtwebengine-6.9.0, KDevPlatform, libgps, libhybris, packagekit-qt, Qapt, SCIM, og socat (for pam_kwallet)

Nedlaste KDE Plasma

Den enkleste måten å få KDE Plasma pakkene på er å bruke en singel wget for å hente dem alle på en gang:

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

Alternativene som brukes her er:
  -r            gjentakelse gjennom undermapper
  -nH           deaktiver generering av vertsprefikserte mapper
  -nd           ikke lag et hierarki av mapper
  -A '*.xz'     bare hent *.xz filene
  -np           ikke hent overordnede mapper

Angi Pakkerekkefølge

Rekkefølgen på byggefiler er viktig på grunn av interne avhengigheter. Lag listen over filer i riktig rekkefølge som følger:

cat > plasma-6.3.4.md5 << "EOF"
f3e1448e2e21fd577c06f69c618c2f1b  kdecoration-6.3.4.tar.xz
eedff87c226c83dc2c9b6a1a0a50f226  libkscreen-6.3.4.tar.xz
a6c17f5efcecd7b6b0464f91218ea658  libksysguard-6.3.4.tar.xz
4a883878aec90d6e2ebbe0de7478fd2c  breeze-6.3.4.tar.xz
bd828a47b84b4b57790bd88bd007dea8  breeze-gtk-6.3.4.tar.xz
7d153944ba6e52837fe3c8d9f26fc802  layer-shell-qt-6.3.4.tar.xz
e78df78ebfc2311f417426cc9ddd996f  plasma-activities-6.3.4.tar.xz
f42bcadb8a62a42c346b3376fd2981f1  libplasma-6.3.4.tar.xz
044a5200bad3f150040b71e157a76695  kscreenlocker-6.3.4.tar.xz
127b461c8bdf51734f9175fa4245955e  kinfocenter-6.3.4.tar.xz
d3f9bc897dae7daa46bb53d1c1b23f25  kglobalacceld-6.3.4.tar.xz
c718d2e5fd13c46a7254289f2ee6def3  kwayland-6.3.4.tar.xz
b9c6612a60ab191c40566a13a3545787  kwin-6.3.4.tar.xz
36af1164b84965103586b8164d3cccc9  plasma5support-6.3.4.tar.xz
f8bd86a960d318fd0a2af7b9641382f0  plasma-activities-stats-6.3.4.tar.xz
390bfb8bdc4d8e8b27be9a391881eb82  kpipewire-6.3.4.tar.xz
1cd325542a4e308d8df1a09bd4e9ace4  plasma-workspace-6.3.4.tar.xz
aafc72d1ceb8ea4823f932e3cb3af2d2  plasma-disks-6.3.4.tar.xz
7a475d13ad36bd7ce806870ed9ca070b  bluedevil-6.3.4.tar.xz
e6eab1250d073dbe8c868204465f2b49  kde-gtk-config-6.3.4.tar.xz
2b1eb384d59ce8de434bda06fb8beecc  kmenuedit-6.3.4.tar.xz
16372996b0dd659b956531702e068205  kscreen-6.3.4.tar.xz
2e3598110a1fae0ef20026cfd9bfe0b8  kwallet-pam-6.3.4.tar.xz
01233590d4b6d7db9c558d5d2f3f691c  kwrited-6.3.4.tar.xz
0504ac2ee8173e7f5f60bcce44dfe108  milou-6.3.4.tar.xz
4c81802f44244d0729fa7635f6bef271  plasma-nm-6.3.4.tar.xz
a2d1827d77ccca9a54b8a58b79a7548c  plasma-pa-6.3.4.tar.xz
0bcc18a2d56ad488a4a5fa1bc2634695  plasma-workspace-wallpapers-6.3.4.tar.xz
42988173336108bce5986b83a7a1a59a  polkit-kde-agent-1-6.3.4.tar.xz
fd7418bb1d2ba7112928c22322b89404  powerdevil-6.3.4.tar.xz
3db58d15c9686712b6910c297a47f141  plasma-desktop-6.3.4.tar.xz
0cc55f1bbf594c6acd24da4521892d1f  kgamma-6.3.4.tar.xz
1b963f2d52c15e549320534b47532563  ksshaskpass-6.3.4.tar.xz
#8dd2b4b1551fbc6204af0ba39c1c67c0  plasma-sdk-6.3.4.tar.xz
0c5eb57842d4754c86574271cdbb62cc  sddm-kcm-6.3.4.tar.xz
#4eb1b8a42f11c50a13dee928c47d5d59  discover-6.3.4.tar.xz
#9364eaef1967b31a702b1df956e08cb1  breeze-grub-6.3.4.tar.xz
#4bebc465c15803998c52e613044344ed  breeze-plymouth-6.3.4.tar.xz
47517db388c0731522ef699aa170bbf3  kactivitymanagerd-6.3.4.tar.xz
23c3bfac78449a2a984d7c767594ae55  plasma-integration-6.3.4.tar.xz
#33e85137db12bf9c7d927f1cfb08ec48  plymouth-kcm-6.3.4.tar.xz
1795f3ef6ab9d77422263c28cc7b5d6a  xdg-desktop-portal-kde-6.3.4.tar.xz
3dd1d5edf698a4b0418f7b31c8e05ff6  drkonqi-6.3.4.tar.xz
cd34ed66deb75653f58bd25b1c448bca  plasma-vault-6.3.4.tar.xz
#45d54366998406975d2c711b30b5dcfd  plasma-browser-integration-6.3.4.tar.xz
df531f9157827debd487859171e03765  kde-cli-tools-6.3.4.tar.xz
1b7c0f95baf0127310439eb3dc9b579c  systemsettings-6.3.4.tar.xz
b2ac34c1b2e4e14cb9ae64da7688675b  plasma-thunderbolt-6.3.4.tar.xz
#270af2ab61e35462b59dffb956155f81  plasma-mobile-6.3.4.tar.xz
#e0eb90ac39f7d15b69533dbf702f5305  plasma-nano-6.3.4.tar.xz
043a3de01df09567cffdf25d95ec3f55  plasma-firewall-6.3.4.tar.xz
4d4d79915a5e6a353c0a25205f73629e  plasma-systemmonitor-6.3.4.tar.xz
de210cc512f5c999260f69c95995ed9a  qqc2-breeze-style-6.3.4.tar.xz
07120cf3716ab424a36034e92f9e2c25  ksystemstats-6.3.4.tar.xz
9ddeb6fe4405d8fbcd68a930951fec04  oxygen-sounds-6.3.4.tar.xz
f878ff1684509f59aba3c7c733b3eb5c  kdeplasma-addons-6.3.4.tar.xz
#b0eab2083af546fc17fd34762c48d0d5  flatpak-kcm-6.3.4.tar.xz
e6d4d57179a03ad6661a576951278ef1  plasma-welcome-6.3.4.tar.xz
8bf1a7d70ee1571cf7ecdb9714b6170b  ocean-sound-theme-6.3.4.tar.xz
5af69e4621c5a8d8ba419d5d3cd509fa  print-manager-6.3.4.tar.xz
d98fbb6b76a00f2c68393712c3ff5606  wacomtablet-6.3.4.tar.xz
#0d7359db81fa9edf32a2d74c1225b273  kwayland-integration-6.3.4.tar.xz
#5de78b2cff69d5c6b83dcd7d702e0924  krdp-6.3.4.tar.xz
69161ea6ac49acbc7fccd736d5ee0e56  oxygen-6.3.4.tar.xz
#825010eafd1720db072146037c833c71  plasma-dialer-6.3.4.tar.xz
#94ae8b36f72eade4d25fab51346b68f4  spacebar-6.3.4.tar.xz
9edf40086573404b45317242bbdf9cae  spectacle-6.3.4.tar.xz
EOF
[Notat]

Om Utkommenterte Pakker

I listen ovenfor er flere filer kommentert ut med et hash tegn (#).

  • plasma-sdk pakken er valgfri og brukes til programvareutvikling.

  • discover pakken krever at AppStream-1.0.5 blir bygget med -D qt=true bryteren.

  • breeze-grub-, breeze-plymouth- og plymouth-kcm pakkene ovenfor er alle for tilpasset støtte for Plymouth som er designet for å kjøres innenfor en initial ram-disk under oppstart (se «Om initramfs»).

  • plasma-browser-integration er designet for å implementere nettleserintegrasjon for Plasma i Mozilla Firefox og Google Chrome. Pakken bygger, men er bare nyttig hvis du vil at disse nettleserne skal integreres i skallet på en måte som tillater at du ser (og kontrollerer) nedlastinger fra Plasmas varslingsområde, i tillegg til at du kan søke i nettleserhistorikken i KDE Runner. Merk at du også må installere en nettleserutvidelse for dette for å fungere. For flere detaljer, se the KDE Plasma wiki page about browser integration.

  • krdp pakken brukes til å tillate at en RDP server kjøres mens plasma brukes. Denne funksjonen krever 2.x-versjonen av FreeRDP, som ikke er i BLFS.

  • plasma-nano pakken brukes til innebygde systemer.

  • Plasma-mobil-, plasma-dialer og spacebar pakkene gi telefonfunksjonalitet for plasma.

  • flatpak-kcm pakken er for å administrere støtte for flatpak applikasjoner.

  • Kwayland-integrasjonsapplikasjonen krever plasma5 støtte.

Installasjon av Plasma

[Notat]

Notat

Når du installerer flere pakker i et skript, må installasjonen gjøres som root bruker. Det er tre generelle alternativer som kan brukes til å gjøre dette:

  1. Kjør hele skriptet som root bruker (ikke anbefalt).

  2. Bruk sudo kommandoen fra Sudo-1.9.16p2 pakken.

  3. Bruk su -c "command arguments" (anførselstegn kreves) som vil be om root passordet for hver iterasjon av løkken.

En måte å håndtere denne situasjonen på er å lage en kort bash funksjon som automatisk velger riktig metode. Når kommandoen er satt i miljøet, trenger den ikke å bli satt på nytt.

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

export -f as_root

Start først et underskall som avsluttes ved feil:

bash -e

Installer alle pakkene ved å kjøre følgende kommandoer:

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

       # Fix some build issues with qt-6.9.0 and later
       case $name in
         breeze)
           sed -e '/QList/i #include <QDebug>' \
               -i cursors/src/kcursorgen/kcursorgen.h
         ;;

         plasma-vault)
           sed -e '/QFuture/i #include <QDebug>' \
               -i kded/engine/commandresult.h
         ;;
       esac

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

exit

Hvis du ikke satte $KF6_PREFIX til /usr, lage symbolkoblinger for å tillate skjermbehandlere å finne Plasma, og for å tillate XDG Desktop Portal å bli oppdaget. Som root bruker:

# 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

Konfigurere Plasma

Linux PAM Konfigurasjon

Hvis du bygget Plasma med den anbefalte Linux PAM støtten, opprett nødvendige konfigurasjonsfiler ved å kjøre følgende kommandoer som root bruker:

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

Starte Plasma

Du kan starte Plasma fra en TTY, ved hjelp av xinit-1.4.4.

For å starte Plasma ved bruk av xinit-1.4.4, kjør følgende kommandoer:

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

startx

X økten starter på den første ubrukte virtuelle terminalen, normalt vt7. Du kan bytte til en annen vtn samtidig med å trykke på tastene Ctrl-Alt-Fn (n=1, 2, ...). For å bytte tilbake til X økten, vanligvis startet på vt7, bruk Ctrl-Alt-F7. Vt hvor kommandoen startx ble utført vil vise mange meldinger, inkludert X startmeldinger, applikasjoner startet automatisk med økten, og til slutt noen advarsler og feilmeldinger. Du kan foretrekke å omdirigere disse meldingene til en loggfil, som ikke bare vil beholde den innledende vt ryddig, men kan også brukes til feilsøkingsformål. Dette kan gjøres fra X med:

startx &> ~/x-session-errors

Når du slår av eller starter på nytt, vises avslutningsmeldingene på vt hvor X kjørte. Hvis du ønsker å se disse meldingene, samtidig trykk på tastene Alt-F7 (forutsatt at X kjørte på vt7).

Innhold

Installerte Programmer: Det er for mange plasma programmer (over 50 i /opt/kf6/bin) til å ramse opp separat her.
Installerte Biblioteker: Det er for mange plasma biblioteker (over 250 i /opt/kf6/lib) til å ramse opp separat her.
Installerte Mapper: Det er for mange plasma mapper (over 2700 i /opt/kf6) til å ramse opp separat her.