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.11.0, kirigami-addons-1.4.0, libdisplay-info-0.2.0, libpwquality-1.4.5, libqalculate-5.5.2, libnl-3.11.0, libxcvt-0.1.3, libxkbcommon-1.8.1, Mesa-25.0.3 bygget med Wayland-1.23.0, opencv-4.11.0, phonon-4.12.0, pipewire-1.4.1, 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.4 (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.2/
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.2.md5 << "EOF"
f457b6a25bb62ce4484f4fe6937e04b2  kdecoration-6.3.1.tar.xz
e36b1fe40265264b69e38d6da747e3fe  libkscreen-6.3.1.tar.xz
b6e7d97a2b8c09d5488f07eac0d56321  libksysguard-6.3.1.tar.xz
f61c91832bf663ac744bb3fa5b65770b  breeze-6.3.1.tar.xz
e9cf405630dfcaf7381c1eb6d680284a  breeze-gtk-6.3.1.tar.xz
7ac4451498b1512122e9c46f4aa2bcce  layer-shell-qt-6.3.1.tar.xz
90d3672a3dc690677bcc3fcda066a337  plasma-activities-6.3.1.tar.xz
7605cfffb92952473bb733adc91e7667  libplasma-6.3.1.tar.xz
38e975671178b73c3c3ed83cd0219bee  kscreenlocker-6.3.1.tar.xz
e742da872e4990e461fe44feb0de082f  kinfocenter-6.3.1.tar.xz
f9bbe103def746835e5735c878d6c585  kglobalacceld-6.3.1.tar.xz
920b07854eea746b98b6e9e3fe9f77fa  kwayland-6.3.1.tar.xz
f96a6108403d9aa4d53c340af4ac5351  kwin-6.3.1.tar.xz
603a146778ad1740fd4f501455a841da  plasma5support-6.3.1.tar.xz
c003c98ec0e7dc9be7eb755e83c2f810  plasma-activities-stats-6.3.1.tar.xz
da8576da2b91234d5e9dbabe91dcf13d  kpipewire-6.3.1.tar.xz
4be76b0953ba81434a40a87cd7a597e3  plasma-workspace-6.3.1.tar.xz
9cc99c1338c9e15c673a9a2d62332530  plasma-disks-6.3.1.tar.xz
4c200248ae382bceca14c759f0d8fed4  bluedevil-6.3.1.tar.xz
4d641ad97613c7b40655b0f1a95620d1  kde-gtk-config-6.3.1.tar.xz
b889f80a338d9f15ac2057e1152155f5  kmenuedit-6.3.1.tar.xz
3202752435aa046b3d4300e808af52a1  kscreen-6.3.1.tar.xz
2e781230ee8421db7737d46800eb7d6c  kwallet-pam-6.3.1.tar.xz
ba99fb62f638e9452ee68b0627f46d0b  kwrited-6.3.1.tar.xz
fe88abc8fab6435f8d1862b11d6f26df  milou-6.3.1.tar.xz
156dd0d85243bea20624bcd02362517b  plasma-nm-6.3.1.tar.xz
fefca5d29050cd17aa817786c3fbda45  plasma-pa-6.3.1.tar.xz
1908c07514fef650cba0d6cff55b35c5  plasma-workspace-wallpapers-6.3.1.tar.xz
d6aea3ae9c494a46c02ca531e67d42f9  polkit-kde-agent-1-6.3.1.tar.xz
5f8b1988ffb0020888a3c26bc8ca63d2  powerdevil-6.3.1.tar.xz
#c6386020a228097ee78258a8d5fe5dab  plasma-desktop-6.3.1.tar.xz
9ac590433fea8df9a2c217595cd0cb79  plasma-desktop-6.3.1.1.tar.xz
3fd579e8b0c684a78fe0d3098d422865  kgamma-6.3.1.tar.xz
fda1a5f28d5ce691b09cbb790e7e2560  ksshaskpass-6.3.1.tar.xz
#25ac25faec816415682fba5d948a7320  plasma-sdk-6.3.1.tar.xz
1f376a296da2b784476eb5f8446cef40  sddm-kcm-6.3.1.tar.xz
#754ef5141d6fb170ae8418904db3d03a  discover-6.3.1.tar.xz
#d34eac4bf3480b7f39159f685a849dd5  breeze-grub-6.3.1.tar.xz
#7288423bb744c96df7a129551425ad89  breeze-plymouth-6.3.1.tar.xz
8c6a986211453246fc12c0a98c12caa4  kactivitymanagerd-6.3.1.tar.xz
f7521fd31ab491d208674d0156cc1557  plasma-integration-6.3.1.tar.xz
#f7552b59e8237e5b44ea589a8f54f5cc  plymouth-kcm-6.3.1.tar.xz
1aa7a0c424cb8406932ad0d497f2ffae  xdg-desktop-portal-kde-6.3.1.tar.xz
70506bb6259199e15b4b1476c5e79ba2  drkonqi-6.3.1.tar.xz
ae413ca5e76166653567cc6920a96629  plasma-vault-6.3.1.tar.xz
#a4b75ebf127844148e3ffab2411da591  plasma-browser-integration-6.3.1.tar.xz
71e83b1ed122a78f76f89417bf345697  kde-cli-tools-6.3.1.tar.xz
7a4863475ebcc248ccfe6cdded367f1f  systemsettings-6.3.1.tar.xz
e2c791092a2d9909640357b101b66183  plasma-thunderbolt-6.3.1.tar.xz
#a9008d2ca0da990b0e25fbad3fec372e  plasma-mobile-6.3.1.tar.xz
#4db44b13d684683a2d21a5be3ad53290  plasma-nano-6.3.1.tar.xz
0ee19ce7e8d6f35b38a83704ad48fcc8  plasma-firewall-6.3.1.tar.xz
716fb6178aa0ff9643fc3066d8a4529e  plasma-systemmonitor-6.3.1.tar.xz
d1c5e3afc8ec036afa33a907c7106e04  qqc2-breeze-style-6.3.1.tar.xz
8e6d8ef4c8eecbad2ae09fda0752399b  ksystemstats-6.3.1.tar.xz
1d53c89f6ec73d61e56deaf4ca378766  oxygen-sounds-6.3.1.tar.xz
9a0d78943b5362f0b05c844d6d9d5691  kdeplasma-addons-6.3.1.tar.xz
#303fa95a22217b0047357be11fcf5802  flatpak-kcm-6.3.1.tar.xz
256de866431e8e3de113a37187c797e6  plasma-welcome-6.3.1.tar.xz
5a2849ea3ea641429d34902ba6a97b93  ocean-sound-theme-6.3.1.tar.xz
2cb454377480e2b71e20c1b1e0a15d18  print-manager-6.3.1.tar.xz
f73600e5c197adce31367fa0e2b96d57  wacomtablet-6.3.1.tar.xz
#ae8f4e3a4ac994bb23ccd2a32b5c0339  kwayland-integration-6.3.1.tar.xz
#ee166c0d411fd1eda375ec12e11c7d5a  krdp-6.3.1.tar.xz
c2bd79b97cc93b09135a3ae16ea081c0  oxygen-6.3.1.tar.xz
#05269c38a62ee4b4e0915238b52e3aa5  plasma-dialer-6.3.1.tar.xz
#1371fd24c8d63a4f38154f4f3348f07c  spacebar-6.3.1.tar.xz
#c49c92329109f5ac30209435e81a31bd  spectacle-6.3.1.tar.xz
88d142a9d2666e7dc734c74aee825135  spectacle-6.3.1.2.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.4 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.

  • Det er oppdateringer til plasma-desktop og spectacle hvor eldre versjoner også ble lastet ned, men er kommentert ut for fullstendighet.

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

Ubrukelige systemd enheter er installert i $KF6_PREFIX/lib. Fjern dem nå (som root):

rm -rf $KF6_PREFIX/lib/systemd

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 kjørenivå 3, ved hjelp av xinit-1.4.4, eller fra kjørenivå 5, ved å bruke en Skjermbehandler, som for eksempel lightdm-1.32.0.

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.