Bygge KDE Rammeverk 6.9.0 (KF6)

KDE Rammeverk er en samling av biblioteker basert på toppen av Qt6 og QML avledet fra de tidligere KDE bibliotekene. De kan brukes uavhengig av KDE skjermmiljøet (Plasma 6).

[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 KDE Rammeverk pakkene i et trinn ved å bruke et bash skript.

Pakkeinformasjon

KF6 Avhengigheter

Påkrevd

extra-cmake-modules-6.9.0, breeze-icons-6.9.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, libcanberra-0.30, libgcrypt-1.11.0, libical-3.0.19, libxslt-1.1.42, lmdb-0.9.31, qca-2.3.9, qrencode-4.1.1, plasma-wayland-protocols-1.16.0, PyYAML-6.0.2, shared-mime-info-2.4, URI-5.31, og Wget-1.25.0 (kreves for å laste ned pakkene)

Anbefalt

Valgfri

BlueZ-5.79 (nødvendig for å bygge Bluez-Qt), Datamatrix (ansett anbefalt for Prison av oppstrøms), og zxing-cpp (også anses anbefalt for Prison av oppstrøms)

Kjøretidsavhengighet for FrameworkIntegration

Noto fonts

Ytterligere anbefalte avhengigheter for kapidox

Ytterligere bildeformat støtte i KImageFormats

libavif-1.1.1, libjxl-0.11.1, libraw-0.21.3, libheif, OpenEXR

Valgfrie avhengigheter for Solid

UDisks-2.10.1, UPower-1.90.7 og media-player-info (kjøretid)

Valgfri avhengighet for KWallet

GPGME-1.24.1, bygget med C++ bindinger (som er standard).

Valgfri ordbok bakstykke for Sonnet

Hspell og Hunspell

Laste ned KDE Rammeverk

Den enkleste måten å få KDE Rammeverk pakkene på er å bruke en enkelt wget å hente dem alle på en gang:

url=https://download.kde.org/stable/frameworks/6.9/
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 > frameworks-6.9.0.md5 << "EOF"
1284908164349599c949e753de5a6d6d  attica-6.9.0.tar.xz
#00a4cc351b7afd3b3b07c0126169e2e1  extra-cmake-modules-6.9.0.tar.xz
b0ebbba9a9dadd0e650c9ce23e1c432f  kapidox-6.9.0.tar.xz
275bf8f81ca2f262be42f7961b268661  karchive-6.9.0.tar.xz
3585bec3e70c52cccef7933bd7049181  kcodecs-6.9.0.tar.xz
76532887baaa2e71f2664dcf1aa93a1f  kconfig-6.9.0.tar.xz
602d06cf7d08288508030b21f3ad4d16  kcoreaddons-6.9.0.tar.xz
f191c8a34877abd844a8339cabdfdd85  kdbusaddons-6.9.0.tar.xz
8e09d864edea99280fbcaecab3f677ac  kdnssd-6.9.0.tar.xz
61b916ad258f3300b7ac22b74722a465  kguiaddons-6.9.0.tar.xz
3f25a1194975d2a230897baf0c8bc1a9  ki18n-6.9.0.tar.xz
66b947e46d49cd20afdf06f915944b24  kidletime-6.9.0.tar.xz
25b6d8ae40363e34678ea462b00e81cf  kimageformats-6.9.0.tar.xz
c820dda0e6e5ed0e7c844dba49f8490e  kitemmodels-6.9.0.tar.xz
cc27422fa66aee13edaf24950d2512be  kitemviews-6.9.0.tar.xz
12f538cae926f90c2a48be1a084fc232  kplotting-6.9.0.tar.xz
36129d8a2593c107eeb5345b0a5c23df  kwidgetsaddons-6.9.0.tar.xz
a801e9e90e55f8f711b8ec60c5e11927  kwindowsystem-6.9.0.tar.xz
a711e22e0ec601665df090198c9070b9  networkmanager-qt-6.9.0.tar.xz
#34907a72aabb12938a8c8a800c76386f  solid-6.9.0.tar.xz
a7bb41720c68c99d5cbdbc897f92adcb  solid-6.9.1.tar.xz
7c4bfa13beb9d5da152d4e3873912c06  sonnet-6.9.0.tar.xz
36f9482fcb0a8fd9472f1477e86dd22e  threadweaver-6.9.0.tar.xz
947db8522af3194b79a0e0990f4c3fb2  kauth-6.9.0.tar.xz
1d9d4ab3913d01c0530a943d46ffd3ca  kcompletion-6.9.0.tar.xz
c553ffe92701e1ac633bc0f1a4ed72b6  kcrash-6.9.0.tar.xz
9355d1d08b080a8639578ddf1d4ecd50  kdoctools-6.9.0.tar.xz
3f4f5bb5d9c5c8dcd720db6de1374919  kpty-6.9.0.tar.xz
d6412fb879b9922977a1a1bea435025c  kunitconversion-6.9.0.tar.xz
a1f718b0fd5faf41cc5617402a906dfa  kcolorscheme-6.9.0.tar.xz
3a413d4e1cd22e3a80e0f653cba7def1  kconfigwidgets-6.9.0.tar.xz
2500cedd04d6e592f5d4e0cb57b8e49c  kservice-6.9.0.tar.xz
acf36c1fe26bc2e0b6b26d286ba140dd  kglobalaccel-6.9.0.tar.xz
4dad1e73f5252d22087e3de83da0e470  kpackage-6.9.0.tar.xz
8b0788cbd802e949c80033ddb5f8b364  kdesu-6.9.0.tar.xz
718e07ca8214a229de38eb27e4560a4e  kiconthemes-6.9.0.tar.xz
bfd86fa2b0bfc16b7429022ac2f8686a  knotifications-6.9.0.tar.xz
f11e2091224fbcd2d2ca95c62dabeda5  kjobwidgets-6.9.0.tar.xz
26d6e3d1f1e8a03b3aa4a8ca81d86138  ktextwidgets-6.9.0.tar.xz
9dc1eba92e27e79a32e755496bf0fdf5  kxmlgui-6.9.0.tar.xz
1827b538317bafda4ac7caf73ad00634  kbookmarks-6.9.0.tar.xz
0963b1826e513942ecd02a2093ba160b  kwallet-6.9.0.tar.xz
4fe3615ad2486f242a89a622aba38b1e  kded-6.9.0.tar.xz
491ca7098ab93c572ab83684cd60765b  kio-6.9.0.tar.xz
99771d46badb6e049402464d6123877e  kdeclarative-6.9.0.tar.xz
73a0058e48764b5480e8ec237433d5a3  kcmutils-6.9.0.tar.xz
bc47bffe9cc73e737cc8fe69413c5d1e  kirigami-6.9.0.tar.xz
dd820209e12b6175191ba8509c74332f  syndication-6.9.0.tar.xz
f7457a27689e058b3b622a49cdafea69  knewstuff-6.9.0.tar.xz
7ff3a5b883167f46fba596bea8d2ed16  frameworkintegration-6.9.0.tar.xz
83a2e4abbb432d910f0e646fd6dda70b  kparts-6.9.0.tar.xz
1c57f4041924bfb0a007ea50ed0389bd  syntax-highlighting-6.9.0.tar.xz
f74d680ebf93be5bc49acc26ddd2b15c  ktexteditor-6.9.0.tar.xz
61c04052ceb54d90581d0b4d99579034  modemmanager-qt-6.9.0.tar.xz
0991036bd6744b6ae2182c523dfe20b6  kcontacts-6.9.0.tar.xz
08bcba782e7881bba2e3edce4104e82d  kpeople-6.9.0.tar.xz
309074d9163a67888c6768d502283ca2  bluez-qt-6.9.0.tar.xz
4ed593f44f5d88511fcaf09cbd79002a  kfilemetadata-6.9.0.tar.xz
4dced99e9936d878a8b7d7e991148ed1  baloo-6.9.0.tar.xz
#bb8695140746485f0356724c20e567d6  breeze-icons-6.9.0.tar.xz
e0b22d5ad601c21da658182ed94d0252  krunner-6.9.0.tar.xz
96ebc74cc951d17dc765dc82324d9c53  prison-6.9.0.tar.xz
4e69194596a3b482b46b828f833e0b1a  qqc2-desktop-style-6.9.0.tar.xz
a79b2468003674484c32be9bbc17fe66  kholidays-6.9.0.tar.xz
e6e75c72051127278b515f1551dcb7f2  purpose-6.9.0.tar.xz
3cab6f7e09660ec088dfa3dca8f0126f  kcalendarcore-6.9.0.tar.xz
a278856e690e6dcde1e322e8bacc7fa0  kquickcharts-6.9.0.tar.xz
c49c2433b6dec144f659d201436adedc  knotifyconfig-6.9.0.tar.xz
db4d737f094f12533132100a426f89fb  kdav-6.9.0.tar.xz
a73a6ce52be97b76303eac82b8a03dd4  kstatusnotifieritem-6.9.0.tar.xz
56ccf59e0c517b007dfab58473f037e6  ksvg-6.9.0.tar.xz
e11d0d565c8f1ea35aaf87b0c0a93538  ktexttemplate-6.9.0.tar.xz
0c735c3a4b07b38d5aef8d79b8727b68  kuserfeedback-6.9.0.tar.xz
EOF

I listen ovenfor, legg merke til at noen filer har blitt kommentert ut med et hash tegn (#)..

  • Extra-cmake-modules oppføringen har blitt kommentert ut fordi det ble bygget tidligere i Introduksjon til KDE.

  • Ikonpakken dekkes separat på breeze-icons-6.9.0.

  • Det er en pakke lastet ned som er erstattet av en senere versjon: solid-6.9.1. Denne utgivelsen fikser et krasj som kan oppstå ved innsetting eller fjerning av en USB-stasjon eller annen flyttbar enhet.

Installasjon av KDE Rammeverk

[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.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
[Obs]

Obs

Hvis du installerer i /opt og det er en eksisterende /opt/kf6 enten som en vanlig mappe eller en symbolsk lenke, bør den initialiseres på nytt (som root):

mv -v /opt/kf6 /opt/kf6.old                         &&
install -v -dm755           $KF6_PREFIX/{etc,share} &&
ln -sfv /etc/dbus-1         $KF6_PREFIX/etc         &&
ln -sfv /usr/share/dbus-1   $KF6_PREFIX/share       &&
ln -sfv /usr/share/polkit-1 $KF6_PREFIX/share

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.*||') # Package directory

    name=$(echo $pkg|sed 's|-6.*$||') # Isolate package name

    tar -xf $file
    pushd $packagedir

      # kapidox is a python module
      case $name in
        kapidox)
          pip3 wheel -w dist --no-build-isolation --no-deps --no-cache-dir $PWD
          as_root pip3 install --no-index --find-links=dist --no-cache-dir --no-user kapidox
          popd
          rm -rf $packagedir
          continue
          ;;
      esac

      mkdir build
      cd    build

      cmake -D CMAKE_INSTALL_PREFIX=$KF6_PREFIX \
            -D CMAKE_INSTALL_LIBEXECDIR=libexec \
            -D CMAKE_PREFIX_PATH=$QT6DIR        \
            -D CMAKE_SKIP_INSTALL_RPATH=ON      \
            -D CMAKE_BUILD_TYPE=Release         \
            -D BUILD_TESTING=OFF                \
            -W no-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-6.9.0.md5

exit
[Notat]

Notat

Eventuelle moduler som er utelatt kan installeres senere ved å bruke det samme mkdir build; cd build; cmake; make; make install prosedyren som ovenfor.

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

rm -rf $KF6_PREFIX/lib/systemd

Noen ganger er installasjonsbanene hardkodet til installerte filer. Hvis den installerte mappen ikke er /usr, gi nytt navn til mappen og opprette en symbolkobling:

mv -v /opt/kf6 /opt/kf6-6.9.0
ln -sfvn kf6-6.9.0 /opt/kf6

Parameterforklaringer

-D CMAKE_PREFIX_PATH=$QT6DIR: Denne bryteren brukes for å la cmake finne de riktige Qt bibliotekene.

-D CMAKE_BUILD_TYPE=Release: Denne bryteren brukes for å bruke høyere nivå av kompilatoroptimaliseringer.

-D BUILD_TESTING=OFF: Denne bryteren brukes til å forhindre bygging av testprogrammer og biblioteker som ikke er til nytte for en sluttbruker.

Innhold

Installerte Programmer: balooctl, baloo_file, baloo_file_extractor, baloosearch, balooshow, checkXML6, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca6, kcookiejar6, kdebugdialog6, kded6, kdeinit6, kdeinit6_shutdown, kdeinit6_wrapper, kf6-config, kf6kross, kgendesignerplugin, kglobalaccel6, kiconfinder6, kjs6, kjscmd6, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool6, kquitapp6, kreadconfig6, kshell6, ktelnetservice6, ktrash6, kwalletd6, kwallet-query, kwrapper6, kwriteconfig6, meinproc6, parsetrigrams, plasmapkg2, preparetips6, protocoltojson, og solid-hardware6
Installerte Biblioteker: libkdeinit6_klauncher.so, libKF6Activities.so, libKF6ActivitiesStats.so, libKF6Archive.so, libKF6Attica.so, libKF6AuthCore.so, libKF6Auth.so, libKF6Baloo.so, libKF6BluezQt.so, libKF6Bookmarks.so, libKF6CalendarCore.so, libKF6CalendarEvents.so, libKF6Codecs.so, libKF6Completion.so, libKF6ConfigCore.so, libKF6ConfigGui.so, libKF6ConfigWidgets.so, libKF6Contacts.so, libKF6CoreAddons.so, libKF6Crash.so, libKF6DAV.so, libKF6DBusAddons.so, libKF6Declarative.so, libKF6DNSSD.so, libKF6DocTools.so, libKF6Emoticons.so, libKF6FileMetaData.so, libKF6GlobalAccel.so, libKF6GuiAddons.so, libKF6Holidays.so, libKF6I18n.so, libKF6IconThemes.so, libKF6IdleTime.so, libKF6ItemModels.so, libKF6ItemViews.so, libKF6JobWidgets.so, libKF6JSApi.so, libKF6JsEmbed.so, libKF6JS.so, libKF6KCMUtils.so, libKF6KDELibs4Support.so, libKF6KHtml.so, libKF6KIOCore.so, libKF6KIOFileWidgets.so, libKF6KIOGui.so, libKF6KIONTLM.so, libKF6KIOWidgets.so, libKF6Kirigami2.so, libKF6KrossCore.so, libKF6KrossUi.so, libKF6MediaPlayer.so, libKF6NetworkManagerQt.so, libKF6NewStuffCore.so, libKF6NewStuff.so, libKF6Notifications.so, libKF6NotifyConfig.so, libKF6Package.so, libKF6Parts.so, libKF6PeopleBackend.so, libKF6People.so, libKF6PeopleWidgets.so, libKF6PlasmaQuick.so, libKF6Plasma.so, libKF6Plotting.so, libKF6Prison.so, libKF6Pty.so, libKF6Purpose.so, libKF6PurposeWidgets.so, libKF6QuickAddons.so, libKF6Runner.so, libKF6Service.so, libKF6Solid.so, libKF6SonnetCore.so, libKF6SonnetUi.so, libKF6Style.so, libKF6Su.so, libKF6SyntaxHighlighting.so, libKF6TextEditor.so, libKF6TextWidgets.so, libKF6ThreadWeaver.so, libKF6UnitConversion.so, libKF6Wallet.so, libKF6WaylandClient.so, libKF6WaylandServer.so, libKF6WidgetsAddons.so, libKF6WindowSystem.so, libKF6XmlGui.so, libKF6XmlRpcClient.so, og libkwalletbackend6.so
Installerte Mapper: /opt/kf6 (symbolkobling til /opt/kf6-6.9.0) hvis du installerer i /opt

Korte Beskrivelser

checkXML6

er et verktøy for å se etter syntaksfeil i KDE DocBook XML filer

depdiagram-generate

er et verktøy for å generere et avhengighetsdiagram

depdiagram-generate-all

er et verktøy for å generere et avhengighetsdiagram for alle rammeverk samtidig

depdiagram-prepare

er et verktøy for å klargjøre dot filer

desktoptojson

er et verktøy for å konvertere en .desktop-fil til en .json fil

kbuildsycoca6

gjenoppbygger KService skrivebordsfilsystemkonfigurasjonens hurtiglager

kcookiejar6

er et kommandolinjegrensesnitt til HTTP lageret for informasjonskapsler som brukes av KDE, en D-BUS tjeneste for å lagre/hente/rense informasjonskapsler

kded6

konsoliderer flere små tjenester i én prosess

kdeinit6

er en prosessstarter som ligner litt på den berømte init som brukes for oppstart av UNIX

kf6-config

er et kommandolinjeprogram som brukes til å hente informasjon om KDE installasjonen eller brukerstier

kf6kross

kjører kross skript skrevet i KDE Javascript, Python, Ruby, Java og Falcon

kgendesignerplugin

genererer skjermelement programtillegg for Qt(TM) Designer

kglobalaccel6

er en nisse som brukes til å registrere nøkkelbindingene og for å få varslet når handlingen utløste

kjs6

er en KDE ECMAScript/JavaScript motor

kjscmd6

er et verktøy for å starte KJSEmbed skript fra kommandolinjen

kjsconsole

er en konsoll for kjs6

kpackagelauncherqml

er et kommandolinjeverktøy for å starte kpackage QML applikasjonen

kpackagetool6

er et kommandolinje kpackage verktøy

kreadconfig6

er et kommandolinjeverktøy for å hente verdier fra KDE konfigurasjonsfiler

kshell6

start applikasjoner via kdeinit

ktelnetservice6

er en telnet tjeneste

ktrash6

er et hjelpeprogram for å håndtere KDE papirkurven

kwalletd6

er lommebokbehandler nissen

kwriteconfig6

er et kommandolinjeverktøy for å skrive verdier i KDE konfigurasjonsfiler

meinproc6

konverterer DocBook filer til HTML

plasmapkg2

er et verktøy for å installere, liste, fjerne Plasma pakker

preparetips6

er et skript for å trekke ut teksten fra en tipsfil

solid-hardware6

er et kommandolinjeverktøy for å undersøke tilgjengelige enheter