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

Ce paquet est connu pour se construire correctement sur une plateforme LFS-9.0.

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.70.0, extra-cmake-modules-5.61.0, docbook-xml-4.5, docbook-xsl-1.79.2, giflib-5.2.1, libepoxy-1.5.3, libgcrypt-1.8.5, libjpeg-turbo-2.0.2, libpng-1.6.37, libxslt-1.1.33, lmdb-0.9.24, phonon-4.10.3, shared-mime-info-1.12, URI-1.76 et Wget-1.20.3 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.50 (requis pour construire Bluez-Qt), ModemManager-1.10.4 (requis pour construire ModemManager-Qt)

Dépendance à l'exécution de FrameworkIntegration

Oxygen fonts et Noto fonts

Dépendances à l'exécution de kapidox

Doxygen-1.8.16, Jinja2-2.10.1 et PyYAML-5.1.2

Support des formats d'images supplémentaires dans KImageFormats

JasPer-2.0.14 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.17

Dépendances facultatives pour Solid

UDisks-2.8.4, UPower-0.99.10 et media-player-info (exécution)

Dépendance facultative pour KWallet

gpgmepp

Moteurs de dictionnaires facultatifs pour Sonnet

Hspell et Hunspell

Dépendances à l'exécution de Prison

Datamatrix et QRencode

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.61/
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.61.0.md5 << "EOF"
9ad93d635ed42f46ea5d0ba3d4922431  attica-5.61.0.tar.xz
#2f6f98d6c7cfd0d55eecd7516f415193  extra-cmake-modules-5.61.0.tar.xz
f972bac89585fd6ecbfa60285316ea65  kapidox-5.61.0.tar.xz
d8c20050abd157c665b5a6cd41a70d51  karchive-5.61.0.tar.xz
a0996305dec1ffc5228a2b03b688ba22  kcodecs-5.61.0.tar.xz
5aa453b71070a63837ba2b0e6f199fae  kconfig-5.61.0.tar.xz
b0b128fde7ab143de3f638d063411700  kcoreaddons-5.61.0.tar.xz
3d979f571e2b622e3e5e5cae0742ac0a  kdbusaddons-5.61.0.tar.xz
d89166c11d9d253c93bebf28e7687576  kdnssd-5.61.0.tar.xz
2c4769e8ca0dda1faa4f38484e6d889d  kguiaddons-5.61.0.tar.xz
576b52330b4f520613b1d0e59a28f24c  ki18n-5.61.0.tar.xz
53e175bb8168badcf7621f8fc118dd5e  kidletime-5.61.0.tar.xz
1d2789d6aebf2eb315a151631056b3a6  kimageformats-5.61.0.tar.xz
958f070cc6d0928dbee067ddca301b59  kitemmodels-5.61.0.tar.xz
2ba2ab1e56617c798f359155e44582c6  kitemviews-5.61.0.tar.xz
fe93d2709c8051599af633dda8aabe06  kplotting-5.61.0.tar.xz
706a9a215db46a8e086d63525763ce14  kwidgetsaddons-5.61.0.tar.xz
7f890d4583f0bb3e7f668ea8c8fbfc2d  kwindowsystem-5.61.0.tar.xz
74814129eed17c2611dfdce10369b965  networkmanager-qt-5.61.0.tar.xz
c9236f64de78c54d148270e85cd15a3d  solid-5.61.0.tar.xz
720d552ccb814fe0038342c8425163f2  sonnet-5.61.0.tar.xz
0be971c196d328f766c6c2b60aae0b21  threadweaver-5.61.0.tar.xz
73863244f37c68ff2042fd7039da9480  kauth-5.61.0.tar.xz
39c8b31802d32fe59bc9487a542bdb18  kcompletion-5.61.0.tar.xz
afd0f85ae16277ab081d4cac99ac2d05  kcrash-5.61.0.tar.xz
1857490f170337542bae5cda72f27b85  kdoctools-5.61.0.tar.xz
33b46dcce54439c3b9d05fff2788abad  kpty-5.61.0.tar.xz
5ec7713d7b7d2360903014e628b596bd  kunitconversion-5.61.0.tar.xz
ee1cf04225a7478a94442c9b4ee52224  kconfigwidgets-5.61.0.tar.xz
83a94d40e694cb32dd5ebe4166dc1c7f  kservice-5.61.0.tar.xz
6ebfee9fe099e3250b47ac59d7c624b2  kglobalaccel-5.61.0.tar.xz
84eaf54cdb480a108257772a77296514  kpackage-5.61.0.tar.xz
c471bdb119e220195d8419d5dbe8ee3b  kdesu-5.61.0.tar.xz
3c2c9f857e4f07489c217e22b75ad324  kemoticons-5.61.0.tar.xz
eafb575ee24c3d5856df5d0b5e97ad4e  kiconthemes-5.61.0.tar.xz
fa63977264e16079fd69c694ef61122e  kjobwidgets-5.61.0.tar.xz
a31859ea6498b2c9df2354c12877f0a9  knotifications-5.61.0.tar.xz
0906bd87ee084c95c3bb012d1ad4b68f  ktextwidgets-5.61.0.tar.xz
8c95b1077024b1768ae40b6f906b7c6c  kxmlgui-5.61.0.tar.xz
4f610828fb9aa410fce3f878908bac5b  kbookmarks-5.61.0.tar.xz
45f80f2454ec9cd7f7f7ec0ffc1a56ce  kwallet-5.61.0.tar.xz
884e6d240f179851c247ff498b258f45  kio-5.61.0.tar.xz
a2c5065aec2a192d7cfd978cea09be84  kdeclarative-5.61.0.tar.xz
c9f2b551f32221892d746feb9c6fc7f8  kcmutils-5.61.0.tar.xz
bf7a57a1088076a79e7992ca9be53018  kirigami2-5.61.0.tar.xz
1d2e4149a415d9b621edf03addeae55d  knewstuff-5.61.0.tar.xz
fb69e4769b4958e52213de614f3be5c5  frameworkintegration-5.61.0.tar.xz
f20ed3efe486b9a6b909ac8adf3c6c38  kinit-5.61.0.tar.xz
40689423f1452f9d7e05883cce93a7ec  knotifyconfig-5.61.0.tar.xz
7f01d6ae022e3ae0ea5c77442805394c  kparts-5.61.0.tar.xz
5a3c59535fd778bc8afd95dae121a957  kactivities-5.61.0.tar.xz
671f84a09bc489d863a1734043591ae2  kded-5.61.0.tar.xz
#9075fbe8ca7afcd8ca263dbe41a823b4  kdewebkit-5.61.0.tar.xz
4036e7bcb0c3fb6c5907d0efac365234  syntax-highlighting-5.61.0.tar.xz
07ea86451c4ddbe097d1e87fa161a0d0  ktexteditor-5.61.0.tar.xz
cea06789eb647b75c92f4b6a2f4016ba  kdesignerplugin-5.61.0.tar.xz
fab6a981a5c604d45466bdfce204848f  kwayland-5.61.0.tar.xz
d40534ff8a7f9abd595e2fcb93374472  plasma-framework-5.61.0.tar.xz
#b1854ae5022c5a41533f0dcac2ca2cb9  modemmanager-qt-5.61.0.tar.xz
7861b72a4f4d16f49d9a84f956c20386  kpeople-5.61.0.tar.xz
424f8d787c02dc1c9729171b2c591eb7  kxmlrpcclient-5.61.0.tar.xz
5596cd4e9a134cce689d24887912edfe  bluez-qt-5.61.0.tar.xz
911774517abc301a303e2e429c875d74  kfilemetadata-5.61.0.tar.xz
3ef703414987f2e494eee19d101c34e4  baloo-5.61.0.tar.xz
#bd2441e04540b82849fc3144dcd6dbca  breeze-icons-5.61.0.tar.xz
#a08326c6e10855f47e5f1b63c31f2f0e  oxygen-icons5-5.61.0.tar.xz
f98a2e990aa25b0e56ee0b50f8baf1e8  kactivities-stats-5.61.0.tar.xz
661d9760f81218d7eccd5dda0762e53c  krunner-5.61.0.tar.xz
#af2125c297606f167ce8b9a182e30526  prison-5.61.0.tar.xz
50f3acf3668529a5c77ae4d6edf8b7d7  qqc2-desktop-style-5.61.0.tar.xz
c95e4ec5fb82dc53627ddcddd5b5ec10  kjs-5.61.0.tar.xz
7ee8ec810e00830dfeeb924c1b9242d0  kdelibs4support-5.61.0.tar.xz
fe66740ed0df257c1695eb0abd8ca9ed  khtml-5.61.0.tar.xz
8895a81c6b993e901de031c67a261464  kjsembed-5.61.0.tar.xz
4f6bd8b8a44295e2470fbd73816a8cdc  kmediaplayer-5.61.0.tar.xz
f7d9d1b5089dddafd9a55bdec47d1fbf  kross-5.61.0.tar.xz
591b24c0a31a5b9ba86a73e6cffdf4a9  kholidays-5.61.0.tar.xz
008208928903b40a2fdee3e1fcfa4448  purpose-5.61.0.tar.xz
fd8a4690fb00e3e627554394d948a1f7  syndication-5.61.0.tar.xz
EOF

Dans la liste précédente, notez 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.61.0 et oxygen-icons5-5.61.0. Le paquet modemmanager-qt peut être construit si ses dépendances facultatives sont installées. Le paquet prison (lecteur de codes barres) peut être construit si les bibliothèques externes requises sont installées. 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.8.27 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.61.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.

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.61.0
ln -sfvn kf5-5.61.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: Il y a 48 programmes installés dans /opt/kf5/bin.
Bibliothèques installées: Il y a trop de bibliothèques kf5 (191) pour les lister séparément.
Répertoires installés: /opt/kf5 (lien symbolique vers /opt/kf5-5.61.0)

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.

kactivitymanagerd

est le gestionnaire d'activité du bureau KDE Plasma.

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.

kgenapidox

est un outil pour générer la documentation API dans un style KDE.

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.

kmailservice5

est un service de courriel.

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 2019-08-26 13:28:27 +0000