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

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.60.0, extra-cmake-modules-5.19.0, docbook-xml-4.5, docbook-xsl-1.79.1, giflib-5.1.2, libepoxy-1.3.1, libgcrypt-1.6.5, libjpeg-turbo-1.4.2, libpng-1.6.21, libxslt-1.1.28, lmdb-0.9.18, phonon-4.8.3 (construit avec qt5), shared-mime-info-1.5, URI-1.71 et Wget-1.17.1 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.37 (requis pour construire Bluez-Qt), ModemManager (requis pour construire ModemManager-Qt)

dépendance d'exécution pour FrameworkIntegration

oxygen-fonts-5.4.3 et noto-fonts

dépendances d'exécution pour kapidox

Doxygen-1.8.11, Jinja2 et PyYAML

support des formats d'images supplémentaires dans KImageFormats

JasPer-1.900.1 et OpenEXR

dépendances facultatives pour KIO

MIT Kerberos V5-1.14

Dépendances facultatives pour ModemManager-QT

ModemManager

Dépendances facultatives pour Solid

UDisks-2.1.6, UPower-0.9.23 et media-player-info (exécution)

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.19/
wget -r -nH --cut-dirs=3 -A '*.xz' -np $url

The options used here are:
  -r            recurse through child directories
  -nH           disable generation of host-prefixed directories
  --cut-dirs=3  remove three levels of directories when saving
  -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.19.0.md5 << "EOF"
3b4b45a3e250cec426890735089c7fcf  attica-5.19.0.tar.xz
#c18b4e3ad6e37ce1fe372931d2b269fb  extra-cmake-modules-5.19.0.tar.xz
ed50b3908baef964e14266477133e3ea  kapidox-5.19.0.tar.xz
de8678f38303699cf66303f29bb06748  karchive-5.19.0.tar.xz
7569f06a767ddd08ece025fe50197eba  kcodecs-5.19.0.tar.xz
79953233cd7d507f4f8394bf62e23078  kconfig-5.19.0.tar.xz
996db46c7e3b6a3b1837a0cc9373bcdd  kcoreaddons-5.19.0.tar.xz
4ef9082483a46d04f531d1dce8be4232  kdbusaddons-5.19.0.tar.xz
678deda3ac690b5cc43f398504211273  kdnssd-5.19.0.tar.xz
b423159cec98dbac442bdb88e1daeda4  kguiaddons-5.19.0.tar.xz
281cfa08356179d250b67b6d19b85b46  ki18n-5.19.0.tar.xz
945cd1f8bf3b5b34c7db3d7693274314  kidletime-5.19.0.tar.xz
678b42ebec88ce18ac0c85d539fada01  kimageformats-5.19.0.tar.xz
acf477f070df240248cb7eab316ff370  kitemmodels-5.19.0.tar.xz
ab98c10a12f67c437a8918ebfcf1ac80  kitemviews-5.19.0.tar.xz
7487f642bc0c0ed9a38e68c4ef21ff2c  kplotting-5.19.0.tar.xz
b1b37d5c240ad5dea9c43012282beb7e  kwidgetsaddons-5.19.0.tar.xz
5e4a9cbe3d4217062c8656833db641f8  kwindowsystem-5.19.0.tar.xz
327dc9c1ec64e59357545e842d29e5da  networkmanager-qt-5.19.0.tar.xz
d664fa2d968c6d6a273881e90f749c7e  solid-5.19.0.tar.xz
08106da14942ebdfe0b901e649c20d7c  sonnet-5.19.0.tar.xz
fb9848428899fa10c46121810cf3a022  threadweaver-5.19.0.tar.xz
ab6498a04ed69236cb582677df829c91  kauth-5.19.0.tar.xz
e0542f7b67153e79efcdbb0877979775  kcompletion-5.19.0.tar.xz
6ede0e1e87a9009d9b24b3a824543dc9  kcrash-5.19.0.tar.xz
6c05f13822f918abf26b56510861d392  kdoctools-5.19.0.tar.xz
09e682b3395c9eb5f1a63203564c7d99  kpty-5.19.0.tar.xz
989c83f68e01d4f3bdc13fbe8299816a  kunitconversion-5.19.0.tar.xz
ce0c538d90c1753fea03be8beacfc648  kconfigwidgets-5.19.0.tar.xz
b1d5dc66f1ab4320b92b792203d3737a  kglobalaccel-5.19.0.tar.xz
fb28532a75361e3c8b26bf4acad7b158  kpackage-5.19.0.tar.xz
ca272f22047a121d3e21f2bad845295c  kservice-5.19.0.tar.xz
adcff09780e4b64d1148825f452ded1d  kdesu-5.19.0.tar.xz
9126afb4d6d54090f0b72ff08f396d96  kemoticons-5.19.0.tar.xz
234f1a331fcda7425061cc0667b62fc9  kiconthemes-5.19.0.tar.xz
3b27494142b2a8eb01c85ad811f1ba02  kjobwidgets-5.19.0.tar.xz
c5efd59dd9f2687aa2efae4a5356ce9f  knotifications-5.19.0.tar.xz
c4f03d70c30725e636eaf43b5dcfd893  ktextwidgets-5.19.0.tar.xz
1c6c9aac635b623ab78368dd8617ca4e  kwallet-5.19.0.tar.xz
8e29c5073c871cb1a2128c717500b325  kxmlgui-5.19.0.tar.xz
95e4a58669b64aff6b4341ec3438eac4  kbookmarks-5.19.0.tar.xz
f7a87528e9f0fba984323d26773cd553  kio-5.19.0.tar.xz
045ed4200129ee96b8ca521a005ac33c  kdeclarative-5.19.0.tar.xz
3b94a572bc0d4ca9acff03f6f37421d3  kcmutils-5.19.0.tar.xz
5ff469c4b86c11bae91b1ee43a8fe386  frameworkintegration-5.19.0.tar.xz
3c40a568bfe04957ad68b9fa1afe54fd  kinit-5.19.0.tar.xz
d5855a91bf2579f9faafce0563fa658f  knewstuff-5.19.0.tar.xz
6acd427037e73e23f3087db88ed11ecc  knotifyconfig-5.19.0.tar.xz
d1472c82637f2eecd4561b815b96c5e4  kparts-5.19.0.tar.xz
b5ceb59e0b354858849c6728d7df2c3d  kactivities-5.19.0.tar.xz
941612d0df418b20981dfe9430f94263  kded-5.19.0.tar.xz
a6a871e08809693934ea8f4b255f8065  kdewebkit-5.19.0.tar.xz
165cc67fc95363ffa6e247b230965b09  ktexteditor-5.19.0.tar.xz
be9704c908fe4a7d8ab04b14192f9948  kdesignerplugin-5.19.0.tar.xz
dbb2096267291d4a36482575c00a3c58  plasma-framework-5.19.0.tar.xz
#a7cdce5f943c6bf9b5190f96942d3042  modemmanager-qt-5.19.0.tar.xz
bb7bc4b9d6f1433538692d63506bac86  kpeople-5.19.0.tar.xz
590e3f07e6e47564208f1d1f94df4315  kxmlrpcclient-5.19.0.tar.xz
58377c34045907d67140df9167417919  bluez-qt-5.19.0.tar.xz
dc869a38e8dcde117d91b9de656be324  kfilemetadata-5.19.0.tar.xz
58351139c7bf473b08ab7fa3220ede8b  baloo-5.19.0.tar.xz
#f5a4a9776492c8438524fad00ba606cc  breeze-icons-5.19.0.tar.xz
#dc41677e256fbe7b853e4d9568b1a5c9  oxygen-icons5-5.19.0.tar.xz
c81cc309513c4c7f075e0e922a3bceff  portingAids/kjs-5.19.0.tar.xz
7b6b02db93202ba8948d47a6b6b1abff  portingAids/kdelibs4support-5.19.0.tar.xz
ff9f526613bec9cae31aab8856624266  portingAids/khtml-5.19.0.tar.xz
39ca8356ee4646146030a38ac831a33c  portingAids/kjsembed-5.19.0.tar.xz
fb28b85be8a78b276bbcadc7c6166a69  portingAids/kmediaplayer-5.19.0.tar.xz
3ed3ca232a3b6a2859a37a7b0017ded9  portingAids/kross-5.19.0.tar.xz
c43cef2cc5b9322dd34c849ba3474c89  portingAids/krunner-5.19.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.19.0 et oxygen-icons5-5.19.0. Le paquet modemmanager-qt peut être construit si ses dépendances facultatives sont installées.

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

rm -rf /opt/kf5

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

bash -e

Installez all of the packages 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

    tar -xf $file
    pushd $packagedir

      mkdir build
      cd    build

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

  rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-5.19.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.19.0
ln -sfvn kf5-5.19.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.

-DLIB_INSTALL_DIR=lib : Ce paramètre est utilisé pour installer les bibliothèques dans $KF5_PREFIX/lib au lieu de $KF5_PREFIX/lib64 sur un système 64 bits.

-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 53 programmes installés dans /opt/kf5/bin.
Bibliothèques installées: Il y a trop de bibliothèques kf5 (79) pour les lister séparément.
Répertoires installés: /opt/kf5 (lien symbolique vers /opt/kf5-5.15.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 utilisateur.

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, 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 2016-02-28 21:29:40 +0100