Constructions de KDE Frameworks 5 (KF5)

KDE Frameworks 5 est une collection de bibliothèques basée sur Qt5 et dérivée de QML depuis les bibliothèques monolithiques de KDE 4. Elles peuvent être utilisées indépendamment de l'environnement d'affichage KDE (Plasma 5).

This package is known to build and work properly using an LFS-11.0 platform.

Les instructions suivantes construisent tous les paquets de KDE Frameworks en une étape en utilisant un script bash.

Informations sur le paquet

Dépendances de KF5

Requises

Boost-1.77.0, extra-cmake-modules-5.85.0, docbook-xml-4.5, docbook-xsl-1.79.2, giflib-5.2.1, libepoxy-1.5.9, libgcrypt-1.9.4, libical-3.0.10, libjpeg-turbo-2.1.1, libpng-1.6.37, libxslt-1.1.34, lmdb-0.9.29, qrencode-4.1.1, phonon-4.11.1, plasma-wayland-protocols-1.3.0, shared-mime-info-2.1, URI-5.09 et Wget-1.21.1 (requis pour télécharger les packages)

Recommandées

Facultatives

BlueZ-5.61 (requis pour construire Bluez-Qt), ModemManager-1.16.10 (requis pour construire ModemManager-Qt), Datamatrix (recommandé pour Prison par les développeurs en amont)

Dépendance à l'exécution de FrameworkIntegration

Oxygen fonts et Noto fonts

Dépendances recommandées supplémentaires pour kapidox

Autres modules python requis par kapidox

requests, doxyqml, doxypypy, urllib3, idna, charset-normalizer et certifi (ils seront tous installés automatiquement à la construction s'ils ne sont pas présents sur le système)

Support des formats d'images supplémentaires dans KImageFormats

JasPer-2.0.33 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.19.2

Dépendances facultatives pour Solid

UDisks-2.9.3, UPower-0_99_13 et media-player-info (exécution)

Dépendance facultative pour KWallet

GPGME-1.16.0, construit avec les liaisons C++ (ce qui est le cas par défaut).

Moteurs de dictionnaires facultatifs pour Sonnet

Hspell et Hunspell

Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/kf5

Téléchargement de KDE Frameworks

La façon la plus facile d'obtenir les paquets de KDE Frameworks est d'utiliser wget pour les récupérer tous en une fois :

url=https://download.kde.org/stable/frameworks/5.85/
wget -r -nH -nd -A '*.xz' -np $url

Les options utilisée ici sont :
  -r            récupère les répertoires enfants
  -nH           désactive la génération de répertoires commençant pour le nom d'hôte
  -nd           ne crée pas de hiérarchie de répertoires
  -A '*.xz'     récupère uniquement les fichiers *.xz
  -np           ne récupère pas les répertoires parents

Initialisation de l'ordre des paquets

L'ordre de constructions des fichiers est importants à cause de dépendances internes. Créez la liste des fichiers dans le bon ordre comme suit :

cat > frameworks-5.85.0.md5 << "EOF"
06d286995319fd9565d43bf736576a82  attica-5.85.0.tar.xz
#e4d8d5d70334eb9f40feb14c0e5fa1c3  extra-cmake-modules-5.85.0.tar.xz
007581e41e7c13cc52f03c50f65c9826  kapidox-5.85.0.tar.xz
deee0085dbd22032a437106ba01ba7b2  karchive-5.85.0.tar.xz
3fb5aba8c68be4c384ee17a91798ddec  kcodecs-5.85.0.tar.xz
eef295c85781ddf9a3abbd95a4da5df3  kconfig-5.85.0.tar.xz
d7a2748aebb1206fc38cb00bb39bc0eb  kcoreaddons-5.85.0.tar.xz
c9b3062073d8fb0977aa63fab7582d1e  kdbusaddons-5.85.0.tar.xz
510b0e437a855592d3512faa94fcd4ba  kdnssd-5.85.0.tar.xz
7b5b4d7610c45895ac5138c1e762ef41  kguiaddons-5.85.0.tar.xz
e9463a50c2bc56a6cebc70c487b5a45d  ki18n-5.85.0.tar.xz
58a3e469ac54cb78469b27f216c87c0a  kidletime-5.85.0.tar.xz
5cb4de5a5215b8f9412bbff02ac59f11  kimageformats-5.85.0.tar.xz
3f00cbe1c9ded4b9f061f0dcc3c38071  kitemmodels-5.85.0.tar.xz
5ed293814f6ca4c37a9fef6963431db0  kitemviews-5.85.0.tar.xz
040eaecd9952dc73b11ab4570f7b93f8  kplotting-5.85.0.tar.xz
381c75cf800cfe1483ea3493e2de245c  kwidgetsaddons-5.85.0.tar.xz
4d9cca227b795280ee920156cdec4859  kwindowsystem-5.85.0.tar.xz
f530333f5635266765b9d998ddc51d33  networkmanager-qt-5.85.0.tar.xz
254a03e4914ad144126a615ebbcbc11c  solid-5.85.0.tar.xz
6883eeb4c62837d70c6d6cbd01ba4cb8  sonnet-5.85.0.tar.xz
ceb00c86052dd1c9e4bef970c19f46d4  threadweaver-5.85.0.tar.xz
7e097f4474c43e08b2540a8883dc1e00  kauth-5.85.0.tar.xz
dcf9b03389d733eac8ae930b26d5389a  kcompletion-5.85.0.tar.xz
cc72c9ac7cba7207ef1a170bb2e4719e  kcrash-5.85.0.tar.xz
2676c29e1d3a93bd42e4f84f86961c4d  kdoctools-5.85.0.tar.xz
f85fe1b8f7319ed6e69d562671a705d0  kpty-5.85.0.tar.xz
298c9df17377b26ccd76d34f54ffad6c  kunitconversion-5.85.0.tar.xz
530e29b6a5993c0f23adbe09c48a7f16  kconfigwidgets-5.85.0.tar.xz
3081cf3c1eae4121b9b1fb71a1aa7c64  kservice-5.85.0.tar.xz
c3a62eeaf5d94bf326cab38dd1380204  kglobalaccel-5.85.0.tar.xz
5203415a3948fb0c3c1937bcba5c5758  kpackage-5.85.0.tar.xz
f57850b50533be59335bdf2d76fcfc76  kdesu-5.85.0.tar.xz
c4c930b28e1c5bd4e2a1aad9e8c328b0  kemoticons-5.85.0.tar.xz
edf31862bd801304fdb578050b0326d2  kiconthemes-5.85.0.tar.xz
b73b00a29afcf70d964190219ee6ccbc  kjobwidgets-5.85.0.tar.xz
8b7c4520f6ffc7cfc1fbd22e0c9ffa18  knotifications-5.85.0.tar.xz
fd3490e92465f433a5576b40ac348cbd  ktextwidgets-5.85.0.tar.xz
5b2362e1d485d80c3111679ae4cad68b  kxmlgui-5.85.0.tar.xz
679bb7a808f2d51e43f9dc26ce3f62d1  kbookmarks-5.85.0.tar.xz
ceaebee871b3f792766377c1074216a3  kwallet-5.85.0.tar.xz
aa1168d883e43dc304bbd809c9aa2f3d  kded-5.85.0.tar.xz
30c8871003edb993afc385e16f8b1a64  kio-5.85.0.tar.xz
1da45e0185075d0c384100c17d8a789f  kdeclarative-5.85.0.tar.xz
2e11d1726375387f2942cf9f3845760a  kcmutils-5.85.0.tar.xz
975fa5fd7a1db023639eb26f0d5e6809  kirigami2-5.85.0.tar.xz
8de5ea8546df1d8a23a2eb1ce465dbc9  syndication-5.85.0.tar.xz
7b1926330878c8c9c8a28f2403ff2e81  knewstuff-5.85.0.tar.xz
f6178e5a138b0fe4260bb74bfabd2a5f  frameworkintegration-5.85.0.tar.xz
e86d84f9d34aa94e55d0ca177f49a57c  kinit-5.85.0.tar.xz
14c79ffe82f063ff67392f64005477d2  kparts-5.85.0.tar.xz
0fef80b90c110adfe7c775f93e1f3e1d  kactivities-5.85.0.tar.xz
#3557d248cdecb2bd03e0a00b0dab7ae2  kdewebkit-5.85.0.tar.xz
1ef1c6039a3e91ec533af11af19539ec  syntax-highlighting-5.85.0.tar.xz
535adfca5246321df0f69de579c5f29c  ktexteditor-5.85.0.tar.xz
6f09f3c76f6a698ede4fb67f6bb709cc  kdesignerplugin-5.85.0.tar.xz
5253a422ba21dcb9bf92ffb53c035f2a  kwayland-5.85.0.tar.xz
fa2e79613982549dca6e20ecd0907fa5  plasma-framework-5.85.0.tar.xz
#1ad46346789bc04b7ff10bb4bb257e84  modemmanager-qt-5.85.0.tar.xz
424f8cbccde63734ca9a41d2be38ce44  kpeople-5.85.0.tar.xz
148e239b5fd08a66e655116a7399c22d  kxmlrpcclient-5.85.0.tar.xz
0a90f655455ab7dcbe5e652a84a06a6e  bluez-qt-5.85.0.tar.xz
866ba6788b62d46011d6d23f4195230d  kfilemetadata-5.85.0.tar.xz
e4fa06ec978fece6eb13c2a9e6749fcc  baloo-5.85.0.tar.xz
#42665314255bdf88736973c28c8c0a65  breeze-icons-5.85.0.tar.xz
#b6cad03903a685db1b323db2165355eb  oxygen-icons5-5.85.0.tar.xz
65e8097e66204a7b8ae8fd616a9789a9  kactivities-stats-5.85.0.tar.xz
0da888b4320299c93b56259da68563a8  krunner-5.85.0.tar.xz
baf7228889d33913fffd26faedca61e5  prison-5.85.0.tar.xz
daf55ba893a81e851c42507cb7b99e48  qqc2-desktop-style-5.85.0.tar.xz
5c1a1d58b3ad5bb0d7fbbf427fc0dff1  kjs-5.85.0.tar.xz
f5e0ca6f84d143f216a38cfb0c083267  kdelibs4support-5.85.0.tar.xz
06c9c414894382a06a150967d2b1bbee  khtml-5.85.0.tar.xz
e8f677e831ec75d8894ab77b139b0d77  kjsembed-5.85.0.tar.xz
346789a75525372ac67d46c39834b150  kmediaplayer-5.85.0.tar.xz
2e92ff7e9cc04bd2a3e06dfa24cf0f1f  kross-5.85.0.tar.xz
75032ec4d4b432c7e3bb83b0bdbe0cac  kholidays-5.85.0.tar.xz
7921bd89698216109cde504e59e115c0  purpose-5.85.0.tar.xz
eaee772562d93a2752547c09427679cc  kcalendarcore-5.85.0.tar.xz
565639b8a34802e97efaeac520d894a3  kcontacts-5.85.0.tar.xz
07a1780a5e1cb8479232cf2244b69f7a  kquickcharts-5.85.0.tar.xz
345e20cbc8d815173ab5861a72b084bb  knotifyconfig-5.85.0.tar.xz
fc2b4c6df2f4f7c50955b31445774d3a  kdav-5.85.0.tar.xz
EOF

Dans la liste précédente, remarquez que certains fichiers sont commentés avec un caractère dièse (#). L'entrée extra-cmake-modules est commentée car elle est construite plus tôt dans Introduction à KDE. Les paquets d'icônes sont traités séparément dans breeze-icons-5.85.0 et oxygen-icons5-5.85.0. Le paquet modemmanager-qt peut être construit si sa dépendance facultative est installée. Kdewebkit peut être construit si le paquet externe QtWebkit a été construit.

Installation de KDE Frameworks

[Note]

Note

Pour l'installation de paquets multiples dans un script, les installations doivent être faites en tant qu'utilisateur root. Il y a trois options générales qui peuvent être utilisées pour faire cela :

  1. Lancer le script entièrement en tant qu'utilisateur root (pas recommandé).

  2. Use the sudo command from the Sudo-1.9.7p2 package.

  3. Use su -c "command arguments" (guillemet requis) qui demandera le mot de passe root à chaque itération de la boucle.

Une façon de gérer cette situation est de créer une petite fonction bash qui sélectionne automatiquement la méthode appropriée. Une fois que la commande est initialisée dans l'environnement, il n'est plus nécessaire de le refaire.

as_root()
{
  if   [ $EUID = 0 ];        then $*
  elif [ -x /usr/bin/sudo ]; then sudo $*
  else                            su -c \\"$*\\"
  fi
}
export -f as_root
[Attention]

Attention

Si vous installez dans /opt et qu'il existe déjà un répertoire /opt/kf5 soit en tant que répertoire normal, soit en tant que lien symbolique, il devrait être supprimé (en tant que root) :

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

Pour commencer, démarrez un sous-shell qui sortira en cas d'erreur :

bash -e

Installez tous les paquets en lançant les commandes suivantes :

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|-5.*$||') # Isolate package name

    tar -xf $file
    pushd $packagedir
      case $name in
        plasma-framework*)
          sed -i 's/${EGL_TARGET}/GL EGL/' src/declarativeimports/core/CMakeLists.txt ;;
      esac

      mkdir build
      cd    build

      cmake -DCMAKE_INSTALL_PREFIX=$KF5_PREFIX \
            -DCMAKE_PREFIX_PATH=$QT5DIR        \
            -DCMAKE_BUILD_TYPE=Release         \
            -DBUILD_TESTING=OFF                \
            -Wno-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-5.85.0.md5

exit
[Note]

Note

Tous les modules qui auront été oubliés peuvent être installés plus tard en utilisant la même procédure mkdir build; cd build; cmake; make; make install qu'au dessus.

Des unités systemd inutiles ont été installées dans $KF5_PREFIX/lib. Supprimez-les maintenant (en root) :

rm -rf $KF5_PREFIX/lib/systemd

Parfois les chemins d'installation sont codés en dur dans les fichiers installés. Si le répertoire d'installation n'est pas /usr, renommez le répertoire et créez un lien symbolique :

mv -v /opt/kf5 /opt/kf5-5.85.0
ln -sfvn kf5-5.85.0 /opt/kf5

Explication des commandes

-DCMAKE_PREFIX_PATH=$QT5DIR : Ce paramètre est utilisé pour permettre à cmake de trouver les bonnes bibliothèques Qt.

-DCMAKE_BUILD_TYPE=Release: Ce paramètre est utilisé pour appliquer le plus haut niveau d'optimisation du compilateur.

-DBUILD_TESTING=OFF : Ce paramètre est utilisé pour empêcher la construction des bibliothèques et des programmes de test qui ne sont pas utiles pour un utilisateur final.

Contenu

Programmes installés: balooctl, baloo_file, baloo_file_extractor, baloosearch, balooshow, checkXML5, depdiagram-generate, depdiagram-generate-all, depdiagram-prepare, desktoptojson, gentrigrams, kactivities-cli, kapidox_generate, kate-syntax-highlighter, kbuildsycoca5, kcookiejar5, kdebugdialog5, kded5, kdeinit5, kdeinit5_shutdown, kdeinit5_wrapper, kf5-config, kf5kross, kgendesignerplugin, kglobalaccel5, kiconfinder5, kjs5, kjscmd5, kjsconsole, knewstuff-dialog, kpackagelauncherqml, kpackagetool5, kquitapp5, kreadconfig5, kshell5, ktelnetservice5, ktrash5, kwalletd5, kwallet-query, kwrapper5, kwriteconfig5, meinproc5, parsetrigrams, plasmapkg2, preparetips5, protocoltojson et solid-hardware5
Bibliothèques installées: libkdeinit5_klauncher.so, libKF5Activities.so, libKF5ActivitiesStats.so, libKF5Archive.so, libKF5Attica.so, libKF5AuthCore.so, libKF5Auth.so, libKF5Baloo.so, libKF5BluezQt.so, libKF5Bookmarks.so, libKF5CalendarCore.so, libKF5CalendarEvents.so, libKF5Codecs.so, libKF5Completion.so, libKF5ConfigCore.so, libKF5ConfigGui.so, libKF5ConfigWidgets.so, libKF5Contacts.so, libKF5CoreAddons.so, libKF5Crash.so, libKF5DAV.so, libKF5DBusAddons.so, libKF5Declarative.so, libKF5DNSSD.so, libKF5DocTools.so, libKF5Emoticons.so, libKF5FileMetaData.so, libKF5GlobalAccel.so, libKF5GuiAddons.so, libKF5Holidays.so, libKF5I18n.so, libKF5IconThemes.so, libKF5IdleTime.so, libKF5ItemModels.so, libKF5ItemViews.so, libKF5JobWidgets.so, libKF5JSApi.so, libKF5JsEmbed.so, libKF5JS.so, libKF5KCMUtils.so, libKF5KDELibs4Support.so, libKF5KHtml.so, libKF5KIOCore.so, libKF5KIOFileWidgets.so, libKF5KIOGui.so, libKF5KIONTLM.so, libKF5KIOWidgets.so, libKF5Kirigami2.so, libKF5KrossCore.so, libKF5KrossUi.so, libKF5MediaPlayer.so, libKF5NetworkManagerQt.so, libKF5NewStuffCore.so, libKF5NewStuff.so, libKF5Notifications.so, libKF5NotifyConfig.so, libKF5Package.so, libKF5Parts.so, libKF5PeopleBackend.so, libKF5People.so, libKF5PeopleWidgets.so, libKF5PlasmaQuick.so, libKF5Plasma.so, libKF5Plotting.so, libKF5Prison.so, libKF5Pty.so, libKF5Purpose.so, libKF5PurposeWidgets.so, libKF5QuickAddons.so, libKF5Runner.so, libKF5Service.so, libKF5Solid.so, libKF5SonnetCore.so, libKF5SonnetUi.so, libKF5Style.so, libKF5Su.so, libKF5SyntaxHighlighting.so, libKF5TextEditor.so, libKF5TextWidgets.so, libKF5ThreadWeaver.so, libKF5UnitConversion.so, libKF5Wallet.so, libKF5WaylandClient.so, libKF5WaylandServer.so, libKF5WidgetsAddons.so, libKF5WindowSystem.so, libKF5XmlGui.so, libKF5XmlRpcClient.so et libkwalletbackend5.so
Répertoires installés: /opt/kf5 (lien symbolique vers /opt/kf5-5.85.0) si vous installez dans /opt

Descriptions courtes

checkXML5

est un outil pour vérifier les erreurs de syntaxe dans les fichiers DocBook XML de KDE

depdiagram-generate

est un outil pour générer un diagramme de dépendances

depdiagram-generate-all

est un outil pour générer un diagramme de dépendance pour tous les frameworks en même temps

depdiagram-prepare

est un outil pour préparer les fichiers dot

desktoptojson

est un outil pour convertir un fichier .desktop en fichier .json

kbuildsycoca5

reconstruit le cache des fichiers de configuration système de KService

kcookiejar5

est une interface en ligne de commandes pour enregistrer les cookies HTTP utilisés par KDE, un service D-BUS pour enregistrer, retrouver, nettoyer les cookies

kded5

consolide plusieurs petits services en un processus

kdeinit5

est un lanceur de processus similaire au fameux init utilisé pour le démarrage d'UNIX

kf5-config

est un programme en ligne de commande utilisé pour retrouver des informations sur l'installation de KDE ou les chemins des utilisateurs

kf5kross

éxecute des scripts kross écrit en KDE Javascript, Python, Ruby, Java et Falcon

kgendesignerplugin

génère des greffons pour Qt(TM) Designer

kglobalaccel5

est un démon utilisé pour enregistrer les raccourcis clavier et pour obtenir une notification quand l'action est réalisée

kjs5

est le moteur KDE ECMAScript/JavaScript

kjscmd5

est un outil pour lancer les scripts KJSEmbed depuis la ligne de commandes

kjsconsole

est une console pour kjs5

kpackagelauncherqml

est un outil en ligne de commande pour le lancement des applications kpackage QML.

kpackagetool5

est un outil en ligne de commande pour kpackage

kreadconfig5

est un outil en ligne de commande pour retrouver les valeurs des fichiers de configuration de KDE

kshell5

démarre des applications via kdeinit

ktelnetservice5

est un service telnet

ktrash5

est un programme d'aide pour gérer la poubelle de KDE

kwalletd5

est le démon de gestion de portefeuille

kwriteconfig5

est un outil en ligne de commande pour écrire des valeurs dans les fichiers de configuration de KDE

meinproc5

convertit les fichiers DocBook en HTML

plasmapkg2

est un outil pour installer, lister et supprimer les paquets Plasma.

preparetips5

est un script pour extraire le texte depuis un fichier d'astuces

solid-hardware5

est un outil en ligne de commande pour chercher les périphériques disponibles

Last updated on