Bygge Plasma

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

[Notat]

Notat

Denne pakken er kjent for å bygge og fungere skikkelig med en LFS 13.0 plattform.

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

Pakkeinformasjon

Plasma Avhengigheter

Påkrevd

Boost-1.90.0, FFmpeg-8.0.1, GTK-3.24.51, KDE Frameworks-6.23.0, kirigami-addons-1.10.0, kquickimageeditor-0.6.0, libdisplay-info-0.3.0, libpwquality-1.4.5, libqalculate-5.9.0, libnl-3.12.0, libxcvt-0.1.3, libxkbcommon-1.13.1, Mesa-25.3.5 bygget med Wayland-1.24.0, opencv-4.13.0, phonon-4.12.0, pipewire-1.6.0, pulseaudio-qt-1.7.0, qca-2.3.10, qcoro-0.13.0, qtkeychain-0.15.0, sassc-3.6.2, taglib-2.2, xdotool-4.20251130.1, og Xorg Evdev Driver-2.11.0

Anbefalt

Anbefalt (kjøretid)

Valgfri

AppStream-1.1.2 (bygget med -qt=true), GLU-9.0.3, ibus-1.5.33, qtwebengine-6.10.2, 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.6.1/
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.6.1.md5 << "EOF"
4f409dfbea58c0194bb71342d0ce8f4b  kdecoration-6.6.1.tar.xz
161fb91c028b345ca3cbf2757373b3ab  libkscreen-6.6.1.tar.xz
9c7a297514843a3ddddc13aa47abb5d7  libksysguard-6.6.1.tar.xz
8879fbb3390fefba522a604250b03f3f  breeze-6.6.1.tar.xz
2205ac176646e3ee76f1de2424f6a4ba  breeze-gtk-6.6.1.tar.xz
a1932a163232ba4b04c54edfc69579b7  layer-shell-qt-6.6.1.tar.xz
14342002478d534479956cbc949254b6  plasma-activities-6.6.1.tar.xz
c812ac7dd42ec942ce06a4659d5ac69d  libplasma-6.6.1.tar.xz
9087540a32c4b25658ac59e33244d8ea  kscreenlocker-6.6.1.tar.xz
c1e8c561eba6f967f11ce503dafc9787  kglobalacceld-6.6.1.tar.xz
3528e0b917c4891486b12e6ed1030168  kwayland-6.6.1.tar.xz
ec2badf4cd874cd18ac765a755836338  aurorae-6.6.1.tar.xz
7677ee4d5784931db8c45fd3b48b166f  knighttime-6.6.1.tar.xz
628e60b77b3eab550875de3949aa35f7  plasma-keyboard-6.6.1.tar.xz
291c3b2f46bf450b29efaa802886b86b  kwin-x11-6.6.1.tar.xz
39f4e1ae9dc6a6937c3b3e7072850972  kwin-6.6.1.tar.xz
4a0f39978938484a679e8a882ea10dbd  plasma5support-6.6.1.tar.xz
c1f8d27b30fd7d3a2ad5c06629e2dfa9  plasma-activities-stats-6.6.1.tar.xz
6215a4047975f1aa07f6e31e67f7f2ce  kpipewire-6.6.1.tar.xz
b01b7ab2c6c73bc734e1baf0ac05a1fc  plasma-workspace-6.6.1.tar.xz
99a0f1570f2eb1a556567919aafde24d  plasma-disks-6.6.1.tar.xz
1308b1f70a0c2e576e00bedc149cfc5e  bluedevil-6.6.1.tar.xz
120d5212507410e9e640b2cb4e05b237  kde-gtk-config-6.6.1.tar.xz
5898ecb85449eea4877ca0da8708c57e  kmenuedit-6.6.1.tar.xz
0678fab975f29869dec87ea4a3b5e380  kscreen-6.6.1.tar.xz
2eff25a4f86b5846f45e067dd38de72b  kwallet-pam-6.6.1.tar.xz
3ee17a85d7c6075319da15a9f96a097f  kwrited-6.6.1.tar.xz
92a560fcff81cdf41dd1e002687631bb  milou-6.6.1.tar.xz
b735f04dab4fad80716624dcdf19af63  plasma-nm-6.6.1.tar.xz
c8d4056e3ecff197fd8ce32b7ac3cd33  plasma-pa-6.6.1.tar.xz
16951fa7b52c45599907e28ec39f6c54  plasma-workspace-wallpapers-6.6.1.tar.xz
744e07404850d49d81c1e9b7c24c3cd2  polkit-kde-agent-1-6.6.1.tar.xz
d1a5fc36ebf96509b1b7cbafc6c50db7  powerdevil-6.6.1.tar.xz
4a28478ef792b30c1be1122043334e2e  plasma-desktop-6.6.1.tar.xz
83fc20fc249fafaaff2726e05386f6c0  kgamma-6.6.1.tar.xz
d6df6a2d508082658bbef39f978a0057  ksshaskpass-6.6.1.tar.xz
#6c1b423684c274fe8aa241f744947726  plasma-sdk-6.6.1.tar.xz
2097fac4cc8921235bda91a799c14072  sddm-kcm-6.6.1.tar.xz
#6a838f81134545b07981cd415abf2b43  discover-6.6.1.tar.xz
#3270523c12fc01464f77b2aaabf40df0  breeze-grub-6.6.1.tar.xz
#706690c7a82f4d19b82541545a6e6955  breeze-plymouth-6.6.1.tar.xz
03721c95d72680c04eac7a19fa18c61f  kactivitymanagerd-6.6.1.tar.xz
6e243b4916f19bf21d28179f203fb815  plasma-integration-6.6.1.tar.xz
#45fe33b0cdef10308f87bab81a579f23  plymouth-kcm-6.6.1.tar.xz
27f300c60a131df57e6b9197c124de9e  xdg-desktop-portal-kde-6.6.1.tar.xz
3e33d3646b14a7183d46f2437ac381ca  drkonqi-6.6.1.tar.xz
865cc1c13294a010acb3dea4989b6f97  plasma-vault-6.6.1.tar.xz
#33eb76e30f3b2b8524af88197252d2b0  plasma-browser-integration-6.6.1.tar.xz
9a693af35e8c8344a2c16460dcb56f84  kde-cli-tools-6.6.1.tar.xz
50a59eb8f544c1d60e0327aee273a62b  systemsettings-6.6.1.tar.xz
#33bc395b7c8a9763046156069764f640  plasma-mobile-6.6.1.tar.xz
#ec77afad227127067e0c0f52dca2e212  plasma-nano-6.6.1.tar.xz
cc609934f45af383cc97477b677c5681  plasma-firewall-6.6.1.tar.xz
906d76eee16fcafd6b01c139f9413167  plasma-systemmonitor-6.6.1.tar.xz
9b9269172e245bba8d3c177ac9f47da9  qqc2-breeze-style-6.6.1.tar.xz
32a2d492b1d2b8f8eadd7f1da56e9fc5  ksystemstats-6.6.1.tar.xz
90909df56c06abb57ea3ff86b0ea704a  oxygen-sounds-6.6.1.tar.xz
f0d88d636c596e7f5c00dbf22f6d0d74  kdeplasma-addons-6.6.1.tar.xz
#7336030eef5bd5e8f05190590083f78b  flatpak-kcm-6.6.1.tar.xz
94c59f878c783f9a9423d6c07e5b523e  plasma-welcome-6.6.1.tar.xz
b4f2ab10ef951cbdd272b231e6aa54ab  ocean-sound-theme-6.6.1.tar.xz
ec71ea05a3e2a47207e356df869621b0  print-manager-6.6.1.tar.xz
a6c3248da1dae904438e3adf88a4abec  wacomtablet-6.6.1.tar.xz
#5a25a38d722beaa030a6418a746a9939  kwayland-integration-6.6.1.tar.xz
#1006dcf255da969bb6d09899a67d6c74  krdp-6.6.1.tar.xz
33349b83b2a2415704544ea2300dbee1  oxygen-6.6.1.tar.xz
#0eb4c0b91699d639960d4d2270335522  plasma-dialer-6.6.1.tar.xz
#7a647c072b8b53fae615d3e66380d27b  spacebar-6.6.1.tar.xz
11a7dcf6aec63d51bfba2e40ec669ac6  spectacle-6.6.1.tar.xz
#1c707b638d35a7f4c76536dfc6cc3d1a  plasma-login-manager-6.6.1.tar.xz
859c41b0e80c7b30e91f5f37f9060b0e  plasma-setup-6.6.1.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.1.2 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.

  • Plasma-login-manager applikasjonen tilbyr en skjermbehandler for KDE Plasma, forgrenet fra SDDM og med et nytt grensesnitt som tilbyr en velkomsthilsen, bakgrunnsbilde programtillegg integrering og systeminnstillingsmodul (KCM).

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

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