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-10.1 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.75.0, extra-cmake-modules-5.79.0, docbook-xml-4.5, docbook-xsl-1.79.2, giflib-5.2.1, libepoxy-1.5.5, libgcrypt-1.9.2, libical-3.0.9, libjpeg-turbo-2.0.6, libpng-1.6.37, libxslt-1.1.34, lmdb-0.9.28, qrencode-4.1.1, phonon-4.11.1, plasma-wayland-protocols-1.1.1, shared-mime-info-2.1, URI-5.07 et Wget-1.21.1 (requis pour télécharger les packages)

Recommandées

Facultatives

BlueZ-5.55 (requis pour construire Bluez-Qt), ModemManager-1.14.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 à l'exécution de kapidox

Doxygen-1.9.1, Jinja2-2.11.3 et PyYAML-5.3.1

Support des formats d'images supplémentaires dans KImageFormats

JasPer-2.0.25 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.19.1

Dépendances facultatives pour Solid

UDisks-2.9.2, UPower-0.99.11 et media-player-info (exécution)

Dépendance facultative pour KWallet

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

Moteurs de dictionnaires facultatifs pour Sonnet

Hspell et Hunspell

Notes utilisateur : http://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=http://download.kde.org/stable/frameworks/5.79/
wget -r -nH -nd -A '*.xz' -np $url

The options used here are:
  -r            recurse through child directories
  -nH           disable generation of host-prefixed directories
  -nd           do not create a hierarchy of directories 
  -A '*.xz'     just get the *.xz files
  -np           don't get parent directories

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.79.0.md5 << "EOF"
2d37fbeda8a1863f49b4020094d27328  attica-5.79.0.tar.xz
#020c6267046a065ee505c9b03d1bbe56  extra-cmake-modules-5.79.0.tar.xz
b291790cba30ba5ca1a007e809c190a2  kapidox-5.79.0.tar.xz
d9f0b3edb5610f709f849d0fcbeaa6a7  karchive-5.79.0.tar.xz
a275f28db8233c408e41e086f770f703  kcodecs-5.79.0.tar.xz
0fa5b0f1e2f995242e493c9681970e3b  kconfig-5.79.0.tar.xz
048d39a0aea41c1fb52143db4d4ec588  kcoreaddons-5.79.0.tar.xz
94f13ec26cc751662ed00a2184a3a3f7  kdbusaddons-5.79.0.tar.xz
16b9f5c62c5718ba89f19753337b0d53  kdnssd-5.79.1.tar.xz
66d2801bfe21a83d48da4617f7298de0  kguiaddons-5.79.0.tar.xz
086b5b66351ffd6b9c734896b6a740f9  ki18n-5.79.0.tar.xz
e6523c6192b0a1247deb4df16490eb3e  kidletime-5.79.0.tar.xz
0408433275e69e30d282bde4d62b383f  kimageformats-5.79.0.tar.xz
0731f3adb4f88b9dd4acab7c454c8133  kitemmodels-5.79.0.tar.xz
0bae5399c32c011ab3a211200454dafd  kitemviews-5.79.0.tar.xz
b314220f88558d50c557e4a64237f08a  kplotting-5.79.0.tar.xz
b67544527fcc3c8a38cc14813da45290  kwidgetsaddons-5.79.0.tar.xz
61e99965def3149523d985361daeeeb5  kwindowsystem-5.79.0.tar.xz
8925ca98dfe1ded943ccb7b67ab22d99  networkmanager-qt-5.79.0.tar.xz
dd47932e6d4cf3165f92656cf0331699  solid-5.79.0.tar.xz
e564b71d2bf7f017890beca4a123c89b  sonnet-5.79.0.tar.xz
8f056c25791b760cd5cbefd7f4833a4f  threadweaver-5.79.0.tar.xz
29569aea274980c7be0fa113fbdd72b5  kauth-5.79.0.tar.xz
7ce37448704e52f833bf8745e2da1735  kcompletion-5.79.0.tar.xz
724d4809ae5a9ffac862f7e1eb3961d9  kcrash-5.79.0.tar.xz
def0bffe069de1a332fd8ee3bc57da6f  kdoctools-5.79.0.tar.xz
49f5d2ff5cbb2259aa599eeacc42408b  kpty-5.79.0.tar.xz
a59d86a63028c25e5a6e6870d38137cc  kunitconversion-5.79.0.tar.xz
3e594da911338a9ea526f3b6ec1e1edd  kconfigwidgets-5.79.0.tar.xz
f2430143ec93ab42afa8f4c71398ee6d  kservice-5.79.0.tar.xz
6e5217c6621e97fe90e99385720f968d  kglobalaccel-5.79.0.tar.xz
724d79ae4f9019d793588c75dde5c69c  kpackage-5.79.0.tar.xz
6dd0f61fd2defdd1d7a0edc44bf7a06c  kdesu-5.79.0.tar.xz
bda61c05c220c53f4866a6c5a43b8612  kemoticons-5.79.0.tar.xz
2cc3443c13bf99e7660a8df09cd6fc95  kiconthemes-5.79.0.tar.xz
c5456e8581dada4a7d4bf8f08a89963f  kjobwidgets-5.79.0.tar.xz
3f4611dfc589da49a5ea7a844e58262c  knotifications-5.79.0.tar.xz
4f2f01042c5b6a28c3ceb0ecdeec5577  ktextwidgets-5.79.0.tar.xz
c57d052f56800b4adb88b3daddd320f6  kxmlgui-5.79.0.tar.xz
216a661a5dec0ad28ac04893e9ad805c  kbookmarks-5.79.0.tar.xz
66e705d82e006aac8071105f517f275b  kwallet-5.79.0.tar.xz
1a730e3d51c5a6f8d568f91f433afb00  kded-5.79.0.tar.xz
d796080d51e62c2b3cc3fbdb19ceaf66  kio-5.79.0.tar.xz
a19eb4911c2fece7c2d5849f046733f7  kdeclarative-5.79.0.tar.xz
15f2b2030e36ae4d2ab1fbe572c60b45  kcmutils-5.79.0.tar.xz
56a4ea8393daec54189832d767f8f080  kirigami2-5.79.0.tar.xz
a07e2d9babf366a29656d21e4ee66cf6  knewstuff-5.79.0.tar.xz
c7c3bde5eb426f717f530ac03a19ef15  frameworkintegration-5.79.0.tar.xz
047c3d951b94c667b33e19e11c61e2ae  kinit-5.79.0.tar.xz
317290d8ec99b95e73c680e65c29e4e4  knotifyconfig-5.79.0.tar.xz
03d1d45c3f029da0431f3145db65f25b  kparts-5.79.0.tar.xz
aa85d3aa9c57681b61d8330667062e77  kactivities-5.79.0.tar.xz
#dae7d15553315aa7cc352c54d19dae9b  kdewebkit-5.79.0.tar.xz
a4db3d3a35151aeaebc9eaa8b825cbc9  syntax-highlighting-5.79.1.tar.xz
42d01794017416e54cabf71376d160b8  ktexteditor-5.79.0.tar.xz
d23f9c74b3dc20f15c86e88723e2de00  kdesignerplugin-5.79.0.tar.xz
9d221f6fc2f4d704fa115b59275218fd  kwayland-5.79.0.tar.xz
4dc731b88b3e28748622284622e65fc6  plasma-framework-5.79.0.tar.xz
#7acca01fc2d463224b92c4095cfbcd69  modemmanager-qt-5.79.0.tar.xz
9261af304aff1defe6e5ef91f276a12a  kpeople-5.79.0.tar.xz
af9aed54f0ddcc9a481b58f585d48f90  kxmlrpcclient-5.79.0.tar.xz
18579f11a8763c02ab476aa886af91f5  bluez-qt-5.79.0.tar.xz
71bdc5e4dc4b4bda01190a9fea6209f4  kfilemetadata-5.79.0.tar.xz
4126fc0077942bcd09ecb5833010203f  baloo-5.79.0.tar.xz
#6977e21486ea56c642a5037647636925  breeze-icons-5.79.0.tar.xz
#7266f03969ef7c91257d5a023bb0ddac  oxygen-icons5-5.79.0.tar.xz
1a9684e30416fdead96fdd72dd5f1e59  kactivities-stats-5.79.0.tar.xz
c86ae5aef97956907f8686819042def8  krunner-5.79.0.tar.xz
ec189c854e1e671a030692d1eb17b2d4  prison-5.79.0.tar.xz
c10d6a8662b4215cab57379827ea4d80  qqc2-desktop-style-5.79.0.tar.xz
3df2c2ad1f05499252c249a5bb9381e3  kjs-5.79.0.tar.xz
9055eb30f76245929b22b453bea681b9  kdelibs4support-5.79.0.tar.xz
79a58b58e4a14717413ab4344e5d9f84  khtml-5.79.0.tar.xz
861bff4ffdfa60fea90776817f959d51  kjsembed-5.79.0.tar.xz
3c20d76012b40f047c2ebcb9fdfa23fe  kmediaplayer-5.79.0.tar.xz
0e8b13cdf366b09313c46b835184272f  kross-5.79.0.tar.xz
4ff475cef2ff786c7218af07dda1e123  kholidays-5.79.0.tar.xz
eccbb4b9427e07e9b0d88cbbe116beb9  purpose-5.79.0.tar.xz
2a92913826be0c89fa4980eff8dc1763  kcalendarcore-5.79.0.tar.xz
7830c9f2540d6726be23f36a399afb1c  kcontacts-5.79.0.tar.xz
4a67bab900bcb25d7a2da20a098f438e  kquickcharts-5.79.0.tar.xz
2534a448766bd73b8803c2e5c628d919  kdav-5.79.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.79.0 et oxygen-icons5-5.79.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.5p2 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

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

      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.79.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.79.0
ln -sfvn kf5-5.79.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.79.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 2021-02-25 18:55:23 +0000