Bygge KDE Rammeverk 6.8.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.8.0, breeze-icons-6.8.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, libcanberra-0.30, libgcrypt-1.11.0, libical-3.0.18, libxslt-1.1.42, lmdb-0.9.31, qca-2.3.9, qrencode-4.1.1, plasma-wayland-protocols-1.14.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)

Kjøretidsavhengighet for FrameworkIntegration

Noto fonts

Ytterligere anbefalte avhengigheter for kapidox

Ytterligere bildeformat støtte i KImageFormats

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

Valgfrie avhengigheter for Solid

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

Valgfri avhengighet for KWallet

GPGME-1.24.0, 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.8/
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.8.0.md5 << "EOF"
2d9fdfe58f8f9072ad16dc3e694cdd20  attica-6.8.0.tar.xz
#3fd5f17c92a23573b85521b906729a9f  extra-cmake-modules-6.8.0.tar.xz
fb45455d5cf7d05fdef11af88cae8455  kapidox-6.8.0.tar.xz
408709df7bd8ea9112c74fac2df73966  karchive-6.8.0.tar.xz
013006a23ae86ea7298c6312317c036b  kcodecs-6.8.0.tar.xz
5e0eac3ec1a2b04c16911b5255a2f48f  kconfig-6.8.0.tar.xz
32197ffb27146dca40e5a7852a56d696  kcoreaddons-6.8.0.tar.xz
daa538ba52be5edde65b836628ce20d3  kdbusaddons-6.8.0.tar.xz
c360668f28f50ea1fe7e97bb7f113d27  kdnssd-6.8.0.tar.xz
cc862286f3ee47174abfb9c565260921  kguiaddons-6.8.0.tar.xz
0de301c5b79ef8e75edaeb59c9f8b408  ki18n-6.8.0.tar.xz
593ae4b601369f10e9f1df7ed77e24b7  kidletime-6.8.0.tar.xz
aea64ceeb89092f0d3608f778e18ea68  kimageformats-6.8.0.tar.xz
8731b07c65c1f75a50d3e4a0c61fa1d8  kitemmodels-6.8.0.tar.xz
33aeab1bc638638f5f660d812632e807  kitemviews-6.8.0.tar.xz
0719bd5a0bba2806fb300b353c2cf8b9  kplotting-6.8.0.tar.xz
b6c33e2a42c5c3bfc30cc5bb5f7b8d82  kwidgetsaddons-6.8.0.tar.xz
0e76d9791e12a314c05e6f4e93585999  kwindowsystem-6.8.0.tar.xz
c811350927525bf652782afa92af26c6  networkmanager-qt-6.8.0.tar.xz
922f22f010b72a911952ba8e31a62b5f  solid-6.8.0.tar.xz
f9e39780d428b9138abd6651254144c6  sonnet-6.8.0.tar.xz
a2622f3e9d041950c975492e7c49f7dc  threadweaver-6.8.0.tar.xz
8d384e12da412634c2d07b2eb0fb6de6  kauth-6.8.0.tar.xz
b4e735facbbe4d511cdd4bd5b0d9f1bd  kcompletion-6.8.0.tar.xz
ad8570c1cfa7c937752e483bd2ddbdba  kcrash-6.8.0.tar.xz
4b95a09e51fc820fa513e00b5cbdcd0e  kdoctools-6.8.0.tar.xz
417acfbbab4cb8e0c4048258bda1ca2a  kpty-6.8.0.tar.xz
fc62144b71be430ab9554d718bdf0729  kunitconversion-6.8.0.tar.xz
a7516398c7d0420e86d821a7f70cad49  kcolorscheme-6.8.0.tar.xz
d8e34aae901be5c5ad0a4b4fdf94f884  kconfigwidgets-6.8.0.tar.xz
cecaa900460c042da69b57b10fbd101e  kservice-6.8.0.tar.xz
846533d53770f264b2900312a2bc1913  kglobalaccel-6.8.0.tar.xz
3d04ffbbcafff3e1ceccdcdbca37bfcd  kpackage-6.8.0.tar.xz
2c19b9f1478efed539b0ed7a7c2b245e  kdesu-6.8.0.tar.xz
c1dd6767b5f0330a0515613e0b1dbaa9  kiconthemes-6.8.0.tar.xz
ae413bc767e9900cf2da2d6e2757148d  knotifications-6.8.0.tar.xz
de08ee1e2869de9734a3e11bbdd26e53  kjobwidgets-6.8.0.tar.xz
d3d95c775b1b7015813deeed48f5e298  ktextwidgets-6.8.0.tar.xz
c9dfd32c4e40bbd14ac21eb38f4e32a9  kxmlgui-6.8.0.tar.xz
87d55e41a99578a0e262c2b4e4f8bda7  kbookmarks-6.8.0.tar.xz
2ad9372d8b3b28ac6853fe54af4cebd6  kwallet-6.8.0.tar.xz
f859c93e77bb879ef8079f36623159ed  kded-6.8.0.tar.xz
44527b580c890ba91c44241237d73442  kio-6.8.0.tar.xz
89c271020e65d122a16d7a10defab0bd  kdeclarative-6.8.0.tar.xz
526acf1b1de2b5ddcdefdc2918c322eb  kcmutils-6.8.0.tar.xz
1ded40b7ee2d09a01369b581d786703b  kirigami-6.8.0.tar.xz
96eac989d36de61379d61b710c943ab9  syndication-6.8.0.tar.xz
cd59b143973690f6733a21fa315c06f1  knewstuff-6.8.0.tar.xz
589f8266772efdeec422ab4bf4735099  frameworkintegration-6.8.0.tar.xz
b52cc36c0ce41080204d18f4f74af00b  kparts-6.8.0.tar.xz
2e955fd3f615b550fccb3c6cace0c8f7  syntax-highlighting-6.8.0.tar.xz
04dfe65d3801ec230d70a822083053a5  ktexteditor-6.8.0.tar.xz
70756aa9e778ec42f3b28f61792e22c2  modemmanager-qt-6.8.0.tar.xz
f03b9127cf6f2a233db5724f94143c14  kcontacts-6.8.0.tar.xz
4df151371e5c3e02a1ade0ab86b56c4b  kpeople-6.8.0.tar.xz
1844aa657ba14d994b6a734eb63b8d95  bluez-qt-6.8.0.tar.xz
9a23092425f64c767e8ecc58a98ee698  kfilemetadata-6.8.0.tar.xz
4d2d84943c1461b94d362a803ed92cec  baloo-6.8.0.tar.xz
#a21fa7ce7acb64889e20c10af3f66cb1  breeze-icons-6.8.0.tar.xz
dc025407d2276164a25523d14142df5b  krunner-6.8.0.tar.xz
4bd49df3243ac08e6f78bdaceeac0365  prison-6.8.0.tar.xz
41c45c5298e49c15471d36dc3158b6db  qqc2-desktop-style-6.8.0.tar.xz
1f78e9612f26b1a3ae45b9a6161c3fee  kholidays-6.8.0.tar.xz
eecce2361cb20578743695c3d3d60367  purpose-6.8.0.tar.xz
91cb8c2474f71b3394f6b2b4db020040  kcalendarcore-6.8.0.tar.xz
00bc7cc22687c371aeb66c099351cf4f  kquickcharts-6.8.0.tar.xz
1c268fd13f26d6311cdb33a95f128a5c  knotifyconfig-6.8.0.tar.xz
89116274898f0eadc6ab50ea50e0e232  kdav-6.8.0.tar.xz
12f26f9a21be590a959af9d5d1b510f8  kstatusnotifieritem-6.8.0.tar.xz
69c63bbbaf2b087106df2e7792128760  ksvg-6.8.0.tar.xz
3f0c348c892b5d922293c77c99114fd2  ktexttemplate-6.8.0.tar.xz
91055b3ec8897bd879df1ad39dec98f1  kuserfeedback-6.8.0.tar.xz
EOF

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

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.16p1 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.8.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.8.0
ln -sfvn kf6-6.8.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.8.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