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

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.64.0, extra-cmake-modules-5.37.0, docbook-xml-4.5, docbook-xsl-1.79.1, giflib-5.1.4, libepoxy-1.4.3, libgcrypt-1.8.0, libjpeg-turbo-1.5.2, libpng-1.6.31, libxslt-1.1.29, lmdb-0.9.21, OpenSSL-1.0.2l Libraries, QtWebkit-5.9.0, phonon-4.9.1, shared-mime-info-1.8, URI-1.72 et Wget-1.19.1 (requis pour télécharger les paquets)

Recommandées

Facultatives

BlueZ-5.46 (requis pour construire Bluez-Qt), ModemManager-1.6.8 (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.12 et OpenEXR

Dépendances facultatives de KIO

MIT Kerberos V5-1.15.1

Dépendances facultatives pour Solid

UDisks-2.7.2, UPower-0.99.5 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.37/
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.37.0.md5 << "EOF"
b6c54ce0f87384c070e3dfb5488380c5  attica-5.37.0.tar.xz
#29883c1580c5b9e4c736a138fc832e1a  extra-cmake-modules-5.37.0.tar.xz
d359828a8c026643374782268e099372  kapidox-5.37.0.tar.xz
141bf68d72d41056b1d1485da8a47a9e  karchive-5.37.0.tar.xz
8d85c7e7e8fcafd111ee4926160c60e4  kcodecs-5.37.0.tar.xz
b25eebcac5447af9435f2effc2f566ce  kconfig-5.37.0.tar.xz
76bf9525d2eebf95fbc4dde189b7dc74  kcoreaddons-5.37.0.tar.xz
2697c6440c566da94341f4bc3bf3164c  kdbusaddons-5.37.0.tar.xz
e12d09fb176c0533d2a4eed6b43cbfc3  kdnssd-5.37.0.tar.xz
a395b2479d99128cba078c3a1299a566  kguiaddons-5.37.0.tar.xz
97bdebb717431b400add03d60484db72  ki18n-5.37.0.tar.xz
e070c69d7785532d0671a077e3cc370f  kidletime-5.37.0.tar.xz
127c01934d68a3b3b88231e9602831e5  kimageformats-5.37.0.tar.xz
db88454a0c4335432055ac074104dc43  kitemmodels-5.37.0.tar.xz
062bfca05e8bb81fa8eb360c6944d75f  kitemviews-5.37.0.tar.xz
12f507e62783ce6a17e61328b3a85b07  kplotting-5.37.0.tar.xz
70161280f8e10ac69fc7d334a8531fdd  kwidgetsaddons-5.37.0.tar.xz
05864840b694d3a587590c38e2170df0  kwindowsystem-5.37.0.tar.xz
80523443bbb0a0882631f22793e7ff9c  networkmanager-qt-5.37.0.tar.xz
edf069c6ea563318ae710a36d55af35a  solid-5.37.0.tar.xz
3e2a53802d204bc73d975fd769cbdae2  sonnet-5.37.0.tar.xz
bd38a5cc79c9f2dc8e7f0fcf7df482c9  threadweaver-5.37.0.tar.xz
ed6136acf490dcdaa145e09f2f517338  kauth-5.37.0.tar.xz
b0efe7abac21241f3b5933c5b1ddb8ef  kcompletion-5.37.0.tar.xz
34d013abaaae22b45a46956997b0b82c  kcrash-5.37.0.tar.xz
fe3f523474c3e65a86884b3e88a18d2a  kdoctools-5.37.0.tar.xz
c5732adada0f8ab44eaefbfd458351c4  kpty-5.37.0.tar.xz
6260f91d8340ab7505dbefd58cc7d3bf  kunitconversion-5.37.0.tar.xz
e13440e05800f7187c7e98eb6babfa96  kconfigwidgets-5.37.0.tar.xz
d2d343de16c69c7b5d8c492fefa3115f  kservice-5.37.0.tar.xz
36bf35d34827bb6b78c7b4cb8be3c554  kglobalaccel-5.37.0.tar.xz
b594e9d93bcfac2f6b2aa98f2642f9ca  kpackage-5.37.0.tar.xz
d717f6061cac42035e133618bf043965  kdesu-5.37.0.tar.xz
cc5ff7c6f686c1278d56fcec5df38222  kemoticons-5.37.0.tar.xz
47babcad619664866c880623fd86ff2f  kiconthemes-5.37.0.tar.xz
8c5f7d0160aadeb1392e44315bd3c706  kjobwidgets-5.37.0.tar.xz
b8fe7fc1e9180d7a2519d8401b42cd65  knotifications-5.37.0.tar.xz
deda1b1ac51fe9e4859bafb7c0144133  ktextwidgets-5.37.0.tar.xz
ef28a72da7beffaef6dfcaebcb509d30  kxmlgui-5.37.0.tar.xz
da82f6881e3b1de522b0ca6ce80c7634  kbookmarks-5.37.0.tar.xz
e5900cdfe4a4958965e25002b9f1cab8  kwallet-5.37.0.tar.xz
6d46bb8e26222e3c68a60611c62cd298  kio-5.37.0.tar.xz
6313ca5c3501ce1f4d00ceef3a441ced  kdeclarative-5.37.0.tar.xz
d3a81d2cf8d4bcdcb8f1b4a018107e99  kcmutils-5.37.0.tar.xz
0b620a47aca20b155ae461e12a437ae5  knewstuff-5.37.0.tar.xz
5cb0433c25ace0fad2b49cf3b8459704  frameworkintegration-5.37.0.tar.xz
a931963d19b927560b5d81f4fb8bec12  kinit-5.37.0.tar.xz
10db039a62f903c42ddbe762fcef13b1  knotifyconfig-5.37.0.tar.xz
1fde7d6c99345e29d7c0a900a8c67659  kparts-5.37.0.tar.xz
53162e9c01be1e793e6407d2d3cde628  kactivities-5.37.0.tar.xz
ecff152277532d352cb2957a81c44300  kded-5.37.0.tar.xz
f24c53f5b36d23d24ca0b96f027051e0  kdewebkit-5.37.0.tar.xz
a6033d9a6240b133938602a4b7cb98d6  syntax-highlighting-5.37.0.tar.xz
b33dcff501812990fd3065a42264aca2  ktexteditor-5.37.0.tar.xz
2790a476fd712e9c9686a6ff151267dc  kdesignerplugin-5.37.0.tar.xz
a1ebab3f95697555278c3bef60647647  kwayland-5.37.0.tar.xz
e73d212673dd92bfc4b943f9d1a21be4  plasma-framework-5.37.0.tar.xz
#b814194b5e8e03c04736567e178d1932  modemmanager-qt-5.37.0.tar.xz
06fbfd8fa30aace3d75fc156de5417d3  kpeople-5.37.0.tar.xz
8372393ce57eb14fb85e54602e24ae47  kxmlrpcclient-5.37.0.tar.xz
4eed8acd2acb2633cba4dd7f8a248b49  bluez-qt-5.37.0.tar.xz
438fe87d54d35f99a71a61cf3b8a9944  kfilemetadata-5.37.0.tar.xz
f317f652591702315c7a9f0d8f95031a  baloo-5.37.0.tar.xz
#bf3a1386e6b3daf7b6ee27d59bd55a91  breeze-icons-5.37.0.tar.xz
#3f7cdadd2adc1b82b5600fbea90d0888  oxygen-icons5-5.37.0.tar.xz
18dcba6b6021a6ec21617816113b62fa  kactivities-stats-5.37.0.tar.xz
ebac192db60aac4edf29da8cf09b6bd9  krunner-5.37.0.tar.xz
#f4e54c14d94e70c154ebc4d57d868b2f  prison-5.37.0.tar.xz
#74de56d367913ec08c547e916bfe3b24  kirigami2-5.37.0.tar.xz
4ef52deab5f709ddf0d3e99bf7747077  kjs-5.37.0.tar.xz
7584d933213c7a3f56c55f1eede7b717  kdelibs4support-5.37.0.tar.xz
691bc2e2a5b763e21333fbac28d039b3  khtml-5.37.0.tar.xz
d21ea2f8177d503b826809b614e37471  kjsembed-5.37.0.tar.xz
73d2101fb4aa04df9918b46e1e91bf7a  kmediaplayer-5.37.0.tar.xz
cd2f2748eed19cfe8552b6444c27a021  kross-5.37.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.37.0 et oxygen-icons5-5.37.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. Le paquet kirigami2 est un ensemble de bibliothèques pour android (voir https://techbase.kde.org/Kirigami pour plus d'information).

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.20p2 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

      case $packagedir in
        syntax-highlighting* )
          sed -i.orig 's|w-|w\\-|' data/syntax/rest.xml
        ;;

        kdelibs4support*)
          sed -i.orig \
             '/OPENSSL_FOUND/i set(OPENSSL_INCLUDE_DIR "/usr/include/openssl-1.0")' \
             src/CMakeLists.txt
        ;;
      esac

      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.37.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.37.0
ln -sfvn kf5-5.37.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.37.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-08-27 06:18:25 +0200