Bygge KDE Rammeverk 6.17.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).

Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.4 plattform.

Instruksjonene nedenfor bygger alle KDE Rammeverk pakkene i et trinn ved å bruke et bash skript.

Pakkeinformasjon

KF6 Avhengigheter

Påkrevd

extra-cmake-modules-6.17.0, breeze-icons-6.17.0, docbook-xml-4.5, docbook-xsl-nons-1.79.2, libcanberra-0.30, libgcrypt-1.11.2, libical-3.0.20, libxslt-1.1.43, lmdb-0.9.33, qca-2.3.10, libqrencode-4.1.1, plasma-wayland-protocols-1.18.0, PyYAML-6.0.2, shared-mime-info-2.4, URI-5.32, og Wget-1.25.0 (kreves for å laste ned pakkene)

Anbefalt

Valgfri

BlueZ-5.83 (nødvendig for å bygge Bluez-Qt) og 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.3.0, libjxl-0.11.1, libraw-0.21.4, libheif, OpenEXR

Valgfrie avhengigheter for Solid

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

Valgfri avhengighet for KWallet

gpgmepp-2.0.0

Valgfrie avhengigheter for kcoreaddons

Shiboken6 og PySide6

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.17/
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.17.0.md5 << "EOF"
82423c1b42100b5b776c8fecdc042a40  attica-6.17.0.tar.xz
#c6c6e39f1bba551a21401cd5fbba1c1a  extra-cmake-modules-6.17.0.tar.xz
8a59548faa1778cef7a6ad3395490ed2  kapidox-6.17.0.tar.xz
7ac1e1b5d4be693f208381b4fa704965  karchive-6.17.0.tar.xz
77d7969cda44acc3c679f230d2a82f9d  kcodecs-6.17.0.tar.xz
51d38c6aec7f6af07bd0fff8c96b3505  kconfig-6.17.0.tar.xz
0e497f3da6780a81eebadd22c856bc00  kcoreaddons-6.17.0.tar.xz
4ae23e5cba7f547e5202e5eeb1842f49  kdbusaddons-6.17.0.tar.xz
cbd3e5128e0cdcdb8096d54579601bb7  kdnssd-6.17.0.tar.xz
f33a5c69a7649ffba69a1aa52feaf649  kguiaddons-6.17.0.tar.xz
4c75596dc00ad12e9a80bf7798d9f843  ki18n-6.17.0.tar.xz
e86f50568a3303f2542db2b4fb5183db  kidletime-6.17.0.tar.xz
4b291a60f6374f96e2cf99a38ddb5eb9  kimageformats-6.17.0.tar.xz
4aca52e11e671da59d87c24de5206055  kitemmodels-6.17.0.tar.xz
e01dc3235328a28275f9b6f30d915a60  kitemviews-6.17.0.tar.xz
c1afe10db53a7f061364bb8be10fc451  kplotting-6.17.0.tar.xz
238a7cb973629f9d6207fbd80e3a2a43  kwidgetsaddons-6.17.0.tar.xz
9a8e56599a0bfa0fd5ca8f52c04dd410  kwindowsystem-6.17.0.tar.xz
a999ecf34d2a08ddf9de8d1ef6b00930  networkmanager-qt-6.17.0.tar.xz
8c8239af3e50c7ae75c51292e077307d  solid-6.17.0.tar.xz
38b1c0354ca13efb9378c9a9f7ca6d4c  sonnet-6.17.0.tar.xz
1dea5634f166937e9657defd8a1c435a  threadweaver-6.17.0.tar.xz
c1c4bdcd93a64b424938efd31994b391  kauth-6.17.0.tar.xz
164f867d80ea9d511d120a2316e2d083  kcompletion-6.17.0.tar.xz
9bbc4d738ffcdb2980b7d03483f0ecaf  kcrash-6.17.0.tar.xz
318b37f959efb7b8414fd6f225fc6180  kdoctools-6.17.0.tar.xz
b53d98281af63012844e42f4d2340e72  kpty-6.17.0.tar.xz
81260390604d84f30fc7e397f2a71377  kunitconversion-6.17.0.tar.xz
e178d79bf39b6eca3c5a43904e1e6812  kcolorscheme-6.17.0.tar.xz
288b6d923b1e0e470902226cb0150aef  kconfigwidgets-6.17.0.tar.xz
bdec608acd77463bc13be706143e1ad1  kservice-6.17.0.tar.xz
bc8d0c1a7915679d265996c3f8cf022d  kglobalaccel-6.17.0.tar.xz
71aced57987eecd1a54cd78c4acf0997  kpackage-6.17.0.tar.xz
e4e7130dbc3df657419a41b1716fae88  kdesu-6.17.0.tar.xz
973fc15005119c8206deac1e7c950928  kiconthemes-6.17.0.tar.xz
7d2f8797d6a7d01481ccaa5853853f78  knotifications-6.17.0.tar.xz
1281a859bbade7b6d0f4062be5801503  kjobwidgets-6.17.0.tar.xz
a7241f89698eef4da4476c5f8e942532  ktextwidgets-6.17.0.tar.xz
f081efe2093e1808ec936a1504aa921b  kxmlgui-6.17.0.tar.xz
d9e0be9f6ab3a826d46bd69fab5df3cc  kbookmarks-6.17.0.tar.xz
be6b34cd7395ce1bfbb026202a0fb049  kwallet-6.17.0.tar.xz
ade7d92808bcc51303aac1e3d2fac1ea  kded-6.17.0.tar.xz
6f2caa8f5cc4c473c14024ef33292aa6  kio-6.17.0.tar.xz
af1144caf162a8e7183178b9697d4b76  kdeclarative-6.17.0.tar.xz
75a1a1af5647ef5ae2a4800bd5d0436e  kcmutils-6.17.0.tar.xz
9c3167fb2f81a610149d0baa9086cd03  kirigami-6.17.0.tar.xz
eefe9fd856c0d90c8e70c36cf8d71b0b  syndication-6.17.0.tar.xz
3315f351aac4fd66d1be6783d25f767b  knewstuff-6.17.0.tar.xz
58f3a8d01b2471487b5e1fee5d7428d7  frameworkintegration-6.17.0.tar.xz
b58edde459f7df84e6ac15b8c0d8a0b3  kparts-6.17.0.tar.xz
c9b97c254e572760633966017640447d  syntax-highlighting-6.17.0.tar.xz
00047f9c145d242212cf7e0bdbdd11c5  ktexteditor-6.17.0.tar.xz
c155065874518609dd0ca9159e03ee2f  modemmanager-qt-6.17.0.tar.xz
cc4c525dff89bdb2f65e3130df58e280  kcontacts-6.17.0.tar.xz
ddbcacdc97fcac94fc23624f8d86b3cd  kpeople-6.17.0.tar.xz
cff7e94d07346f8fe0863ab4140965d1  bluez-qt-6.17.0.tar.xz
07374ffc535818d174f3b2a477935c74  kfilemetadata-6.17.0.tar.xz
5f352802358f0106418a233379e6f67a  baloo-6.17.0.tar.xz
#9aaed8b97970adf982f732e528050aca  breeze-icons-6.17.0.tar.xz
3c04c64a88d1273856b9dfca5b31e787  krunner-6.17.0.tar.xz
051d08b46b47d9f79266f8c54f67ddc3  prison-6.17.0.tar.xz
1fc84041ca6959adf18aeb6f7f16519e  qqc2-desktop-style-6.17.0.tar.xz
6560b5d9e25758afc0c72a35374d6f8f  kholidays-6.17.0.tar.xz
6c40e376dae0209229739c9e92259964  purpose-6.17.0.tar.xz
60e2beddf625dd29b06ecb9966968824  kcalendarcore-6.17.0.tar.xz
76a127b6826b69f24a491c911d5f1731  kquickcharts-6.17.0.tar.xz
dad770e5aa4ad6b7c83625488c119619  knotifyconfig-6.17.0.tar.xz
2ef222252c3e1f9f131fe6d89ada580e  kdav-6.17.0.tar.xz
e60223dddf9812597933d37c9ced0003  kstatusnotifieritem-6.17.0.tar.xz
bd54e23c136fcb53ec866c476f1919c4  ksvg-6.17.0.tar.xz
242303b5dcdb5d4eab00c4d16980aec0  ktexttemplate-6.17.0.tar.xz
56e69133a11b2e67355d4869959be9ba  kuserfeedback-6.17.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.17.0. Den er separat for å tillate brukere som trenger disse ikonene, men ikke trenger hele settet med KF6-pakker (f.eks. LXQt-Post-Install for å enklere installere dem.

  • 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, 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
[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-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                \
            -D BUILD_PYTHON_BINDINGS=OFF        \
            -W no-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-6.17.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.17.0
ln -sfvn kf6-6.17.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.

-D BUILD_PYTHON_BINDINGS=OFF: Denne bryteren brukes til å forhindre at Python moduler som krever eksterne valgfrie avhengigheter bygges.

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