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 ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den 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.86.0, GTK+-3.24.43, KDE Frameworks-6.5.0, kirigami-addons-1.4.0, libdisplay-info-0.2.0, libpwquality-1.4.5, libqalculate-5.2.0, libnl-3.10.0, libxcvt-0.1.2, libxkbcommon-1.7.0, Mesa-24.2.3 bygget med Wayland-1.23.0, pipewire-1.2.5, pulseaudio-qt-1.6.0, qca-2.3.9, qcoro-0.10.0, sassc-3.6.2, taglib-2.0.2, xdotool-3.20211022.1, og Xorg Evdev Driver-2.10.6

Anbefalt

Anbefalt (kjøretid)

Valgfri

AppStream-1.0.3 (bygget med -qt=true), GLU-9.0.3, ibus-1.5.30, qtwebengine-6.7.3, Xorg Synaptics Driver-1.9.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.1.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.1.4.md5 << "EOF"
be3516c192fcdbed07454de4b379f5db  kdecoration-6.1.4.tar.xz
dfd2bd982b5ab4daa5a3545e54cf9cb3  libkscreen-6.1.4.tar.xz
c05c1623be161c149a61ac3db0ce5382  libksysguard-6.1.4.tar.xz
7035691a6f63b28f389d76002afc3da8  breeze-6.1.4.tar.xz
9d82aff77358f55069020a408987c111  breeze-gtk-6.1.4.tar.xz
2e3a5220acf76e2c0edf9701978e802b  layer-shell-qt-6.1.4.tar.xz
250385889199481e81b979bd0dd51669  plasma-activities-6.1.4.tar.xz
d6686b711c1e52c0de7c75b66c9dc6e3  libplasma-6.1.4.tar.xz
98101a610670cfae5779bc9940d8561f  kscreenlocker-6.1.4.tar.xz
ca7bf1418903745c65dcbf7583299ceb  kinfocenter-6.1.4.tar.xz
4c4b58890f3bf7bf1b1d99e89f9271a8  kglobalacceld-6.1.4.tar.xz
d297f096ac9492262b8274a024618bd3  kwayland-6.1.4.tar.xz
2d4516080f370a6cf40351266277b010  kwin-6.1.4.tar.xz
131d3250d9124c8f21751f5e5255a7d6  plasma5support-6.1.4.tar.xz
fc8fe31088cad9f1a904554956df708b  plasma-activities-stats-6.1.4.tar.xz
85a3ff80ec16299dc8aa12190ce2bc24  kpipewire-6.1.4.tar.xz
575c902a134bb24214f76c500460df39  plasma-workspace-6.1.4.tar.xz
d000e0ee0f0e530c9dc64ab9252bc17a  plasma-disks-6.1.4.tar.xz
180136a6b20736c359b999cbd3509afc  bluedevil-6.1.4.tar.xz
3f065b337807c2a37d27a90bbcf1d8d1  kde-gtk-config-6.1.4.tar.xz
bcfa7f92df7c2f1a6c7718a12f81734c  kmenuedit-6.1.4.tar.xz
08590284bc4613804563db94a68c7cd2  kscreen-6.1.4.tar.xz
801318aea037e3d64f0aa7c9ca4fef8b  kwallet-pam-6.1.4.tar.xz
aa6bc381778b4e10c9798c3abeeb5692  kwrited-6.1.4.tar.xz
9c4f88ca9936252f62705f27687af764  milou-6.1.4.tar.xz
cbeb7b6b0094e9ec19af07ea458c8eb3  plasma-nm-6.1.4.tar.xz
aa32529c005706d2253333c93faa45de  plasma-pa-6.1.4.tar.xz
4c7484c0d5e4352372d32a340656abec  plasma-workspace-wallpapers-6.1.4.tar.xz
f904e90a9db900551d228f20dac06a45  polkit-kde-agent-1-6.1.4.tar.xz
312fe34839a8d0861cc676766a4317e4  powerdevil-6.1.4.tar.xz
adc8dad07c1157e79aed7476025b6925  plasma-desktop-6.1.4.tar.xz
cfbc61347436b9ff7ff43b7130d7955a  kgamma-6.1.4.tar.xz
41d6254b23061c4b4067b0d2db150cbf  ksshaskpass-6.1.4.tar.xz
#7bf7fd0d3a4a381148885cd058872212  plasma-sdk-6.1.4.tar.xz
ce1bbaf7df576f6ddccd1adda545657a  sddm-kcm-6.1.4.tar.xz
#5482b86089286d9b0153f09752d57574  discover-6.1.4.tar.xz
#d33ef85fb879f3073f1f26f1695e72f3  breeze-grub-6.1.4.tar.xz
#42bb6940246062b24ee80ac6e3b40e2d  breeze-plymouth-6.1.4.tar.xz
e458fddb447b0c76e8e49bb772b423a9  kactivitymanagerd-6.1.4.tar.xz
e0b3c21962456a5f9f79a739c477c22c  plasma-integration-6.1.4.tar.xz
#bebea20d8972e4052690877455aea645  plymouth-kcm-6.1.4.tar.xz
6bf11a27e32cc81e689867ddf59080c6  xdg-desktop-portal-kde-6.1.4.tar.xz
96d1d51407b85d22f01e6438e8e492cb  drkonqi-6.1.4.tar.xz
34627cfef9b00bc58bc853790e978dfd  plasma-vault-6.1.4.tar.xz
#d7984e9a5d3c4ac7a6e36b656cc16f3a  plasma-browser-integration-6.1.4.tar.xz
626f7f2e373085f948d0809413b0d49f  kde-cli-tools-6.1.4.tar.xz
5ba8376be2db662750ef48f582f22352  systemsettings-6.1.4.tar.xz
db8923a9b87e95dd5ec82a20da4ae95b  plasma-thunderbolt-6.1.4.tar.xz
#0106b72c6a46c966d31b7a4afdb456b3  plasma-mobile-6.1.4.tar.xz
#8a7de2aa288ae50190fcd86a7d72cbcb  plasma-nano-6.1.4.tar.xz
3bc5c58b1d06e4f4f1667799219ae887  plasma-firewall-6.1.4.tar.xz
bf76a58afb8def0a0d07ea65429154fc  plasma-systemmonitor-6.1.4.tar.xz
e6e3a3bc681b7044b5219ed6417f0310  qqc2-breeze-style-6.1.4.tar.xz
d3096345a478a821fa16620dadf95fb4  ksystemstats-6.1.4.tar.xz
03a717ac104f6f44ab9dffafdc37710b  oxygen-sounds-6.1.4.tar.xz
a2f8684825ee231fefad28589f321ce7  kdeplasma-addons-6.1.4.tar.xz
#4691fcec4a83314e82c8d1b64bf23c8e  flatpak-kcm-6.1.4.tar.xz
8175024493047e4e98cd12f4d52bc24b  plasma-welcome-6.1.4.tar.xz
8431d1bf294e2ba3cacd9c455678d118  ocean-sound-theme-6.1.4.tar.xz
ed8102ad60b2c8ae9ce12dcaf1ff3cd5  print-manager-6.1.4.tar.xz
#523c82bcf113168b2113612d7b20e544  wacomtablet-6.1.4.tar.xz
#ebb06249b835ea73743c9cf6e91df4df  kwayland-integration-6.1.4.tar.xz
#87332ae4b1c87a6921651ae9211a7e86  krdp-6.1.4.tar.xz
7ca2419cbdb9e4e9b2822b930ac5ec18  oxygen-6.1.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.3 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-mobile pakken gir telefonfunksjonalitet for plasma.

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

  • wacomtablet og kwayland-integrasjons applikasjonene krever plasma5 støtte.

Installasjon av Plasma

[Notat]

Notat

Når du installerer flere pakker i et skript, installasjonen må 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.16 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

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

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.2, 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.2, 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.