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-7.10 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.61.0, extra-cmake-modules-5.25.0, docbook-xml-4.5, docbook-xsl-1.79.1, giflib-5.1.4, libepoxy-1.3.1, libgcrypt-1.7.3, libjpeg-turbo-1.5.0, libpng-1.6.24, libxslt-1.1.29, lmdb-0.9.18, QtWebkit-5.7.0, phonon-4.9.0, shared-mime-info-1.6, URI-1.71 et Wget-1.18 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.41 (requis pour construire Bluez-Qt), ModemManager-1.6.0 (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-2.8 et PyYAML-3.11

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

Dépendances facultatives pour Solid

UDisks-2.1.7, UPower-0.99.4 et media-player-info (exécution)

Dépendance facultative pour KWallet

gpgmepp

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.25/
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.25.0.md5 << "EOF"
000a8c34e6c4e548f53493c4519c3c1c  attica-5.25.0.tar.xz
#043c08482bf7cf951e18d32e16238fb4  extra-cmake-modules-5.25.0.tar.xz
892840e6b323ba1d4687e75678cf9493  kapidox-5.25.0.tar.xz
7205f46ad213e85a736da5f808b5b8df  karchive-5.25.0.tar.xz
089c46445618fbc36c11de7eccd61256  kcodecs-5.25.0.tar.xz
03112534b86d98716cf61865d0ea2497  kconfig-5.25.0.tar.xz
25a40738d380e465ae5161cbaa2b282c  kcoreaddons-5.25.0.tar.xz
cd6d6dbfc47cb82a7fb0b81adc24aad7  kdbusaddons-5.25.0.tar.xz
31c35cb2b97f150d103484501cc55aca  kdnssd-5.25.0.tar.xz
bfba32b6ee6f1288fef0d7156bf81961  kguiaddons-5.25.0.tar.xz
051c7cab151f9d361d6da83968fb68d2  ki18n-5.25.0.tar.xz
aba67367441db87daf4705e5cd0b4449  kidletime-5.25.0.tar.xz
610989615ba775f55bf07f1b5f5b3bf9  kimageformats-5.25.0.tar.xz
83b9a034bbfaedf0cc12191157899006  kitemmodels-5.25.0.tar.xz
324c058163bb418b26d9cba403e5133d  kitemviews-5.25.0.tar.xz
6906f6da8a6d680cd86d1ee96f80bf2b  kplotting-5.25.0.tar.xz
c4b6185dac9cecd6af6eea3b56f2271f  kwidgetsaddons-5.25.0.tar.xz
ae52891201ea66b15d94a4f5a2717a5f  kwindowsystem-5.25.0.tar.xz
45b8586afc97200ea687996fc5ce2327  networkmanager-qt-5.25.0.tar.xz
3ca487d5660ee83d0b2165e525ea5795  solid-5.25.0.tar.xz
1863877132650a61510ee37c894a43c5  sonnet-5.25.0.tar.xz
6e0e0668f25d508aca4c527f762e7701  threadweaver-5.25.0.tar.xz
059033f3a41d6733bc92ed6f3fece2ef  kauth-5.25.0.tar.xz
ce3839d146dc522a3595085833bf10ea  kcompletion-5.25.0.tar.xz
ecf5dde757c1cf5e3d00d3cfe661474d  kcrash-5.25.0.tar.xz
9dc819d8f5402b252b71610102685939  kdoctools-5.25.0.tar.xz
904db48ad9e21de2df42738775261b23  kpty-5.25.0.tar.xz
e4a9229d95ae7ebaa094d104eb8bc633  kunitconversion-5.25.0.tar.xz
03bc05f0c72386a143d1b002178f95f6  kconfigwidgets-5.25.0.tar.xz
3cc65c5082a9bdaa2c93ea01323fb814  kservice-5.25.0.tar.xz
8b2a252d99308aece33663cf9522c43a  kglobalaccel-5.25.0.tar.xz
237995199b61f5dd48e862c12fe7779e  kpackage-5.25.0.tar.xz
f85faafcbdbf994bdb8b4cbcd7c85f03  kdesu-5.25.0.tar.xz
7a38172342fa120969b73d868e2b4211  kemoticons-5.25.0.tar.xz
45eb7f6ad57eca1f2f5ad3d58a56bef8  kiconthemes-5.25.0.tar.xz
edbdaa821afa328331e46e3d959924ca  kjobwidgets-5.25.0.tar.xz
4ef30449b46b701ddf6482d36378e1ec  knotifications-5.25.0.tar.xz
b7455b06e270b9e057f1ebe137676687  ktextwidgets-5.25.0.tar.xz
d64ee5eb63d0490b36a1cc9c0ebf126d  kwallet-5.25.0.tar.xz
5ca8391964c2743c32e3eb46c975943c  kxmlgui-5.25.0.tar.xz
73827857016fb3444101929fbd9fcd83  kbookmarks-5.25.0.tar.xz
0077d90029c34f734fb661912f2213d1  kio-5.25.0.tar.xz
c76d293ffa8bcae4771b78e553d26f53  kdeclarative-5.25.0.tar.xz
139af7a01a29e7dbd81f25adae1df9b2  kcmutils-5.25.0.tar.xz
d63e9454ee42955c44cad1cc78a98d44  frameworkintegration-5.25.0.tar.xz
0b8fcc6d1ef2ff1775ec23dfa34b5de6  kinit-5.25.0.tar.xz
2ea7e17162776681193f67d66821182d  knewstuff-5.25.0.tar.xz
61f5e3d3095a7b0cb87d1693c9b1ad05  knotifyconfig-5.25.0.tar.xz
52ddaccaa5848bdfb39b241adf32b63a  kparts-5.25.0.tar.xz
42881c6c06ff8a3015e2519a31a74866  kactivities-5.25.0.tar.xz
f859f8818fd5f81645bdfb2cf89ee020  kded-5.25.0.tar.xz
2ca6d2a1377adfe68b3fe2560537616f  kdewebkit-5.25.0.tar.xz
c34217c409480ac45f48693c72e3ed8a  ktexteditor-5.25.0.tar.xz
b3f68ae1839994631b1798db5a30385e  kdesignerplugin-5.25.0.tar.xz
b67b2fc56b005b9fd47a9b64cc39bc40  plasma-framework-5.25.0.tar.xz
#df3b50fe7df5b7c409d80b83beb0337f  modemmanager-qt-5.25.0.tar.xz
dc439cc6a4b3093cbee780cac616d1b4  kpeople-5.25.0.tar.xz
c4295e2ebab459374b5570d2164a8279  kxmlrpcclient-5.25.0.tar.xz
2e03661752de63494541649158d712fa  bluez-qt-5.25.0.tar.xz
12517175cb2a93341bea3c60de105d07  kfilemetadata-5.25.0.tar.xz
3a86a50695f17e5ffca94bf5664c60d7  baloo-5.25.0.tar.xz
#6f7e0a3d91a18fc31c7b4683f1174358  breeze-icons-5.25.0.tar.xz
#71119a9c74516fcdbc80e3a8effa1e5a  oxygen-icons5-5.25.0.tar.xz
fbda904a579120cc23eb6ec9bc660f67  kactivities-stats-5.25.0.tar.xz
427349a763c831796b3de0be4b17a019  krunner-5.25.0.tar.xz
d70abca43cbf6e6a6eba9d79830bf1a1  kwayland-5.25.0.tar.xz
7ffd38082aa627f42a9e4830a739f8c6  portingAids/kjs-5.25.0.tar.xz
37284190af0a84cdd2a12636b5b71b2e  portingAids/kdelibs4support-5.25.0.tar.xz
e9b1763b2649d7e21e6cda3e0c5773bf  portingAids/khtml-5.25.0.tar.xz
f1d0c9a46be19e69a493f75fc8af54e7  portingAids/kjsembed-5.25.0.tar.xz
a844acb7da10a7b23fa50dade3b523c6  portingAids/kmediaplayer-5.25.0.tar.xz
bb96fd634617bcac31974f9b63f41252  portingAids/kross-5.25.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.25.0 et oxygen-icons5-5.25.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.17p1 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


  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-5.25.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.25.0
ln -sfvn kf5-5.25.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-09-04 22:51:37 +0200