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

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.68.0, extra-cmake-modules-5.49.0, docbook-xml-4.5, docbook-xsl-1.79.2, giflib-5.1.4, libepoxy-1.5.2, libgcrypt-1.8.3, libjpeg-turbo-2.0.0, libpng-1.6.35, libxslt-1.1.32, lmdb-0.9.22, OpenSSL-1.0.2p Libraries, phonon-4.10.1, shared-mime-info-1.10, URI-1.74 et Wget-1.19.5 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.50 (requis pour construire Bluez-Qt), ModemManager-1.8.0 (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.14, Jinja2-2.10 et PyYAML-3.13

Support des formats d'images supplémentaires dans KImageFormats

JasPer-2.0.14 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.16.1

Dépendances facultatives pour Solid

UDisks-2.8.0, UPower-0.99.7 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.49/
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.49.0.md5 << "EOF"
1b9a8d7fa78f14df0395d6533e07c233  attica-5.49.0.tar.xz
#44d277d5df5aa806f8caf4b12541b15c  extra-cmake-modules-5.49.0.tar.xz
4b369263ce39d96093c64318bd69ac60  kapidox-5.49.0.tar.xz
541071a7a336ca167d66b6bee5bb98a0  karchive-5.49.0.tar.xz
3189f9540de1bcf93edeef7fc8fdb853  kcodecs-5.49.0.tar.xz
57f6c446d29483fb2cfb285eb956a91b  kconfig-5.49.0.tar.xz
2e5cd09584c276416d56f66b8b3ee97b  kcoreaddons-5.49.0.tar.xz
a496b86727152d8b59ed2a2228003ac2  kdbusaddons-5.49.0.tar.xz
19c1372fb1a702f57c66cf5803049d50  kdnssd-5.49.0.tar.xz
4a733f7fb98fb936d74a688fe9959dd7  kguiaddons-5.49.0.tar.xz
a04e3c5b5c23c273fbdbdb3dea8fc0a1  ki18n-5.49.0.tar.xz
c54edfca13c0e8dac161048db33b4bce  kidletime-5.49.0.tar.xz
589ed57faba25f2014964619247aa28a  kimageformats-5.49.0.tar.xz
4412ab5a5446aab1df6f7bb59bac4365  kitemmodels-5.49.0.tar.xz
72d840e8ce2324a8e01cd3f2a3c269b2  kitemviews-5.49.0.tar.xz
df18871fbc9494d6318d7106f5924c53  kplotting-5.49.0.tar.xz
3c6aa861640fd55a34e359ef798a916d  kwidgetsaddons-5.49.0.tar.xz
4db7723226f6b0e0d8705d3fe53642a3  kwindowsystem-5.49.0.tar.xz
a4202fa94b64d65db2e4b7be34675c95  networkmanager-qt-5.49.0.tar.xz
391b3473e9e5d31d6e301f27e657ae4f  solid-5.49.0.tar.xz
f3e739976224f0b14ae653534e503df4  sonnet-5.49.0.tar.xz
c068e97cfc0a42f0d32ca927a12691fe  threadweaver-5.49.0.tar.xz
ed2183a6db12ce48f96b844287e53925  kauth-5.49.0.tar.xz
6790087dd73139a6e21e3cdf663271e5  kcompletion-5.49.0.tar.xz
c8c73f76432306b98ef038418c62ce44  kcrash-5.49.0.tar.xz
9376c84a3f70b95ae0141d90e1aaf165  kdoctools-5.49.0.tar.xz
9e690e1d76196c092b34605336e16ccb  kpty-5.49.0.tar.xz
9424c658138501742a2af85495c47f60  kunitconversion-5.49.0.tar.xz
82d5d219494a2ad1514157a7064521d0  kconfigwidgets-5.49.0.tar.xz
26524fb8e33b8ab3aebf86ec078c7518  kservice-5.49.0.tar.xz
712658831c71f5127762ffa0016a7a39  kglobalaccel-5.49.0.tar.xz
232e476d2d59b789a10c7be3cb6832a0  kpackage-5.49.0.tar.xz
57a2a02a7061040a6a437a1df6dacbd8  kdesu-5.49.0.tar.xz
f98c6e3ab806c0f76ab76f0291e4dd93  kemoticons-5.49.0.tar.xz
bad840d753b545cc1d166c773d1c284c  kiconthemes-5.49.0.tar.xz
f26fc58203dcad45d3c20545c5a48e53  kjobwidgets-5.49.0.tar.xz
2d276031a63a7bc76258991472056f5a  knotifications-5.49.0.tar.xz
012e92d2f2ce4574d2d3d0dbddc748af  ktextwidgets-5.49.0.tar.xz
009205833a4135eee008b6ea55833bb2  kxmlgui-5.49.0.tar.xz
eb0c686f3c61cd74c1740a030bdc4206  kbookmarks-5.49.0.tar.xz
802c5985ccfff94cfa025d6a938e7476  kwallet-5.49.0.tar.xz
826fc93fd2f0c337f7ef6bb8c10c0b22  kio-5.49.0.tar.xz
5febec6dc30c02caac9c46fc48d8a92a  kdeclarative-5.49.0.tar.xz
b15758b0500e97866ea4b32dd042ae39  kcmutils-5.49.0.tar.xz
9431414418dbf8f906f4e13f33479256  kirigami2-5.49.0.tar.xz
d6771e1a02516c7bfb24ece46019abc4  knewstuff-5.49.0.tar.xz
175a23040d853e1710f525b42e22c6f5  frameworkintegration-5.49.0.tar.xz
f6b5fada29fde1223aa976476f583427  kinit-5.49.0.tar.xz
53fe83e865aa5ef5b50dbfc58037a80f  knotifyconfig-5.49.0.tar.xz
f045b11f61eb244a9636e87eef84c496  kparts-5.49.0.tar.xz
9ed8874d043d2faafa28bf5ed2e3ea2a  kactivities-5.49.0.tar.xz
d47cdb541b3f4a3823dd420db170964d  kded-5.49.0.tar.xz
#014cde3b2f046494845bd88c8abc5883  kdewebkit-5.49.0.tar.xz
4b9837a0c1bc5bdb9acd146e0004759b  syntax-highlighting-5.49.0.tar.xz
3fdec786eb549cdb398c9da23e1eb94e  ktexteditor-5.49.0.tar.xz
6b4322afedde3304387c459d133c5d1e  kdesignerplugin-5.49.0.tar.xz
5d4800ad4363d836c26b374c97d8be58  kwayland-5.49.0.tar.xz
913a57607b9c57daef88c90356f55986  plasma-framework-5.49.0.tar.xz
3a18f1b5eb357a16a786b30f12b16028  modemmanager-qt-5.49.0.tar.xz
ede339e08f7432f94ab85093241e104c  kpeople-5.49.0.tar.xz
36d5ea545b972d275b4fde563202fed3  kxmlrpcclient-5.49.0.tar.xz
e311eee50522f739951b0fec7add2374  bluez-qt-5.49.0.tar.xz
ed176f7718b4f95688b7d4d109708d13  kfilemetadata-5.49.0.tar.xz
bbe82a79319abba8171769bb83b06d88  baloo-5.49.0.tar.xz
#aa29fe929300b41c44be52b9ee8a9e9c  breeze-icons-5.49.0.tar.xz
#48136fe0337c9e3a7f57324b9b943d59  oxygen-icons5-5.49.0.tar.xz
037b33038aa30fb78cc05e4e7961b983  kactivities-stats-5.49.0.tar.xz
12b562c1509281001c6b32a5842e453b  krunner-5.49.0.tar.xz
#dfc717b8fe63f3167d8bfea6f97b1ae6  prison-5.49.0.tar.xz
a84a244620b0febcb4a4527b0d7a6d09  qqc2-desktop-style-5.49.0.tar.xz
01ba726dc3fc0c440f9adacf66cb5681  kjs-5.49.0.tar.xz
22f9b04aebae7ddbf3fe5d3bfd93e541  kdelibs4support-5.49.0.tar.xz
b854adbf8ef148a426f079055e16b182  khtml-5.49.0.tar.xz
7025261ab8657c34b8110fd1419a6bc4  kjsembed-5.49.0.tar.xz
b9e38efe9fd70d30ff2275177ec8f95a  kmediaplayer-5.49.0.tar.xz
7297399799ef96f2a29b9e35c0dc57a7  kross-5.49.0.tar.xz
ba7bac91aeeddb03631dd12b6d44f9e2  kholidays-5.49.0.tar.xz
17fd75131e1860a2b77021770de8d40c  purpose-5.49.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.49.0 et oxygen-icons5-5.49.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.23 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 :

export CXXFLAGS='-isystem /usr/include/openssl-1.0'

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         \
            -DBUILD_TESTING=OFF                \
            -Wno-dev ..
      make
      as_root make install
    popd

  as_root rm -rf $packagedir
  as_root /sbin/ldconfig

done < frameworks-5.49.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.49.0
ln -sfvn kf5-5.49.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.49.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 2018-08-21 03:36:12 +0200