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-8.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.63.0, extra-cmake-modules-5.31.0, docbook-xml-4.5, docbook-xsl-1.79.1, giflib-5.1.4, libepoxy-1.4.0, libgcrypt-1.7.6, libjpeg-turbo-1.5.1, libpng-1.6.28, libxslt-1.1.29, lmdb-0.9.19, QtWebkit-5.8.0, phonon-4.9.1, shared-mime-info-1.8, URI-1.71 et Wget-1.19.1 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.43 (requis pour construire Bluez-Qt), ModemManager-1.6.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.13, Jinja2 et PyYAML

Support des formats d'images supplémentaires dans KImageFormats

JasPer-2.0.10 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.15

Dépendances facultatives pour Solid

UDisks-2.1.8, 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

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.31/
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.31.0.md5 << "EOF"
2243e955a41b8a5036fb8d0e497342f5  attica-5.31.0.tar.xz
#74d7c29138168f9a62fe475705c0b351  extra-cmake-modules-5.31.0.tar.xz
b846e442fd48b8387f93aa37295e9f7c  kapidox-5.31.0.tar.xz
de591b1902b1721b74762d712f13a265  karchive-5.31.0.tar.xz
8e0c15990e84dfcfc5c85a88e2e0319b  kcodecs-5.31.0.tar.xz
f044848c2406fa1452b11780af2e1fea  kconfig-5.31.0.tar.xz
95935748baf5465f150f4e1a94af1923  kcoreaddons-5.31.0.tar.xz
c6c8f751eff1f03406f63bcfb1f4ffe0  kdbusaddons-5.31.0.tar.xz
5ee257c5ff53d5551b9df1b640cfabf6  kdnssd-5.31.0.tar.xz
ecb1a10910116e9fd3265f2f1908c6a1  kguiaddons-5.31.0.tar.xz
62457f60936bb8dc6649ed362e7ab80a  ki18n-5.31.0.tar.xz
c45511be577726afd5c7d88c7f13f274  kidletime-5.31.0.tar.xz
99cbfa14df2fb11930090122b461bc6a  kimageformats-5.31.0.tar.xz
91916337e5a8edf9fca9de3bdd1ad8fa  kitemmodels-5.31.0.tar.xz
71251518337febe21cd0af8e7db66fae  kitemviews-5.31.0.tar.xz
e36ccf164785957e07d03cddef152136  kplotting-5.31.0.tar.xz
3ff1ee177df63262636954cb7e0460dc  kwidgetsaddons-5.31.0.tar.xz
cd402e03c023354e9ee37b7d0d5de621  kwindowsystem-5.31.0.tar.xz
8c4d807e867f11f5a55604fa59cce85d  networkmanager-qt-5.31.0.tar.xz
2946f8c7780e2f3de5384717a8a34cdc  solid-5.31.0.tar.xz
11cef5b5016def5298b64e2ce561a8b5  sonnet-5.31.0.tar.xz
f1dbc18f38a9582cd1d4f94bc9f0f132  threadweaver-5.31.0.tar.xz
ec49b90d1566a37e91b9710557e102f2  kauth-5.31.0.tar.xz
81234f797d4da26106a91bdcc34440df  kcompletion-5.31.0.tar.xz
a0cffc08aa51c61d48d9e25778a61e62  kcrash-5.31.0.tar.xz
fc1b4de766d04ac3abc87050588d083d  kdoctools-5.31.0.tar.xz
8f5efa781672c67f01195ee3dc823c6b  kpty-5.31.0.tar.xz
0f7be81fe9c68044f20d6c297a624558  kunitconversion-5.31.0.tar.xz
4deb8a01f99cb16bbcf80f1e11d90824  kconfigwidgets-5.31.0.tar.xz
b46d2550b689fc818064f69cb1db29a7  kservice-5.31.0.tar.xz
d56e35255d2697cc3a89a1a99d1821fe  kglobalaccel-5.31.0.tar.xz
9d66b0fe531892180006f0deb77aa4b2  kpackage-5.31.0.tar.xz
9a593607c47472dd6ce0d546b2f2a736  kdesu-5.31.0.tar.xz
4c8d3ab1e358efd89acd7ab95025dd37  kemoticons-5.31.0.tar.xz
fa2e0994412b83dbb0e54aa277f4bff3  kiconthemes-5.31.0.tar.xz
cc2f41fd5b8ba6ad795a7835a68d4e8c  kjobwidgets-5.31.0.tar.xz
b8483a6872720152acfb22dae0db417e  knotifications-5.31.0.tar.xz
a3240501f842655be3b354d98da95939  ktextwidgets-5.31.0.tar.xz
de28f21c121dc24f31d35ab622304e7e  kxmlgui-5.31.0.tar.xz
8c1d5970b25f877567494486638d6082  kbookmarks-5.31.0.tar.xz
3372c17e1a0020616fea29ec9097e0cc  kwallet-5.31.0.tar.xz
62f31e7a9cd0b875fce5b552ec9be3c7  kio-5.31.0.tar.xz
8b76f1704314258a944eb57a466d338d  kdeclarative-5.31.0.tar.xz
eccc7474f7442b656d26211050f3b2c3  kcmutils-5.31.0.tar.xz
2df293c8e3cedd3a7b71af69045dc5a0  knewstuff-5.31.0.tar.xz
128fa26a3e7928ae74db95ee774fcf48  frameworkintegration-5.31.0.tar.xz
8cf1b185c3d5b74a168995f8e0747931  kinit-5.31.0.tar.xz
a8fdfb88286f73485734ad2feecb7e16  knotifyconfig-5.31.0.tar.xz
21849d002c27964c0d264aa9b5a7c67d  kparts-5.31.0.tar.xz
31f9bd0f380f60b0ab2e9b8f56b1662a  kactivities-5.31.0.tar.xz
569c52fc5424b1c58fc0476ffa02b58b  kded-5.31.0.tar.xz
d063b3b7827eaaa8e345ebaf6c1500f9  kdewebkit-5.31.0.tar.xz
302e06bd05b8632fe60702c82218d1eb  syntax-highlighting-5.31.0.tar.xz
315aae6b286757696513ecc7ca69e68e  ktexteditor-5.31.0.tar.xz
89a054526209180e02b87b30b8766f5f  kdesignerplugin-5.31.0.tar.xz
3ba021780eb40fadd3472630be680571  kwayland-5.31.0.tar.xz
cbef982888a30ca96b4c1f52d502551c  plasma-framework-5.31.0.tar.xz
#ac454faa59de5fb2c5f995acd71fd769  modemmanager-qt-5.31.0.tar.xz
6eaf7bd9165a7042221926064c01cce9  kpeople-5.31.0.tar.xz
c1cd0538b4f7e56653a4d6d4f2c994a2  kxmlrpcclient-5.31.0.tar.xz
2e2dfc3e49d878044c4848d147918d1b  bluez-qt-5.31.0.tar.xz
b0553bbd667d7d209735d2123f33af46  kfilemetadata-5.31.0.tar.xz
831874cc5f6bf3aab76ca196d30995b3  baloo-5.31.0.tar.xz
#f16a9b1a901700ecd0790e3d80ae32d4  breeze-icons-5.31.0.tar.xz
#385ddb6e36639dfffb0bf30b75b049e0  oxygen-icons5-5.31.0.tar.xz
cd4290e76d0c07a3612b82257119a4df  kactivities-stats-5.31.0.tar.xz
6105cf1f51b69cd9232aa662f8d2511a  krunner-5.31.0.tar.xz
#95cb43eb20e081db51709b0ab6bcfa96  prison-5.31.0.tar.xz
71ec95ef3c79e2a86de4872bb97daa0e  portingAids/kjs-5.31.0.tar.xz
aa244aa083a03be78a976a8a8cd6ed8c  portingAids/kdelibs4support-5.31.0.tar.xz
21a3859d1358a330fbdb83f3c184dd71  portingAids/khtml-5.31.0.tar.xz
49f65f405b4e3d49adf81247efce963f  portingAids/kjsembed-5.31.0.tar.xz
f287ac1073cae07f51178ad78f30cf4b  portingAids/kmediaplayer-5.31.0.tar.xz
743b48d58b23d386e4417081a4d456cb  portingAids/kross-5.31.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.31.0 et oxygen-icons5-5.31.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.

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.19p2 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 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.31.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.31.0
ln -sfvn kf5-5.31.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 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 2017-02-20 21:59:39 +0100