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-9.1.
Les instructions suivantes construisent tous les paquets de KDE
Frameworks en une étape en utilisant un script bash.
Informations sur le paquet
-
Téléchargement (HTTP) : http://download.kde.org/stable/frameworks/5.67
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement : Voir ci-dessous
-
Taille du téléchargement : 266 Mo
-
Estimation de l'espace disque requis : 1.1 Go (237 Mo
installés)
-
Estimation du temps de construction : 17 SBU (avec
parallélisme = 4)
Dépendances de KF5
Requises
Boost-1.72.0, extra-cmake-modules-5.67.0,
docbook-xml-4.5, docbook-xsl-1.79.2, giflib-5.2.1,
libepoxy-1.5.4, libgcrypt-1.8.5, libjpeg-turbo-2.0.4, libpng-1.6.37,
libxslt-1.1.34, lmdb-0.9.24, phonon-4.11.1,
shared-mime-info-1.15, URI-1.76 et Wget-1.20.3 (requis
pour télécharger les paquets)
Recommandées
Aspell-0.60.8 (moteur de dictionnaire pour
Sonnet), Avahi-0.7 (moteur DNS-SD pour KDNSSD), libdbusmenu-qt-0.9.3+16.04.20160218
(construit avec qt5), NetworkManager-1.22.6 (needed to build
NetworkManager-Qt) et polkit-qt-0.112.0 (moteu d'authentication
pour KAuth)
De plus, les instructions ci-dessous supposent que l'environnement a
été mis en place comme décrit dans Introduction
à KF5.
Facultatives
BlueZ-5.53 (requis pour construire Bluez-Qt),
ModemManager-1.12.6 (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.17, Jinja2-2.11.1 et PyYAML-5.3
Support des formats d'images supplémentaires dans KImageFormats
JasPer-2.0.14 et OpenEXR
Dépendances facultatives de KIO
MIT Kerberos V5-1.18
Dépendances facultatives pour Solid
UDisks-2.8.4, UPower-0.99.11 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.67/
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.67.0.md5 << "EOF"
d3b975029a5b53673ea6503a2d5ae177 attica-5.67.0.tar.xz
#f59f70433adc17145b6ce2e8ab0c416d extra-cmake-modules-5.67.0.tar.xz
d2b51d5f9a5e31ca870df0c48e4960e9 kapidox-5.67.0.tar.xz
ca01da6d4bedb8fbe9b99600f8f45ed2 karchive-5.67.0.tar.xz
080f45c31980d514774161d1b4a30ff8 kcodecs-5.67.0.tar.xz
3a40f76617827bff8e0c99b93be01fc1 kconfig-5.67.0.tar.xz
5c35270ed01148af9038e62350e51e32 kcoreaddons-5.67.0.tar.xz
818dbca1b3536e931aed3f6a4fb9d955 kdbusaddons-5.67.0.tar.xz
11c8c768748b562b928754d596b0aec6 kdnssd-5.67.0.tar.xz
96b919dfe2aedb0a5747b64216c95fff kguiaddons-5.67.0.tar.xz
e6a5226f42a3cc444938fb80a7463ab4 ki18n-5.67.0.tar.xz
8049864248f5ab73af529140a10b0386 kidletime-5.67.0.tar.xz
3d17d70e54a82063c032ee9efee45874 kimageformats-5.67.0.tar.xz
588eba3b0ff5768e5aeda6dd0dcdfc29 kitemmodels-5.67.0.tar.xz
76990691b3c57e9c02c5da55144764a4 kitemviews-5.67.0.tar.xz
3242e4364f2f21980f208c1685019fd0 kplotting-5.67.0.tar.xz
9616a12c63a1c65562e7f5b5fcb29e07 kwidgetsaddons-5.67.0.tar.xz
b1d0b95573ff7cfe1ff4d468e7f9fed6 kwindowsystem-5.67.0.tar.xz
00b66a3798bf1abb074b4147ee0e5b7c networkmanager-qt-5.67.0.tar.xz
0598657737a55b535d4bb0dbb9bba889 solid-5.67.0.tar.xz
37f09137396721abad617571464b9d9a sonnet-5.67.0.tar.xz
8ee447185a4e603cc409ee4218cee195 threadweaver-5.67.0.tar.xz
8677547f35f4d4720d41325fbd3a6336 kauth-5.67.0.tar.xz
eb09a60dd4b5753e2aeaa8087efa4bb4 kcompletion-5.67.0.tar.xz
bfaeba1fad5c8440e37f145b011cf03e kcrash-5.67.0.tar.xz
6f9879d824b265096b8384ab5061ccca kdoctools-5.67.0.tar.xz
4add397011f28a5a08c363f0a5d2ad60 kpty-5.67.0.tar.xz
dc0bf58b6239d93e8d65b6a635256fd1 kunitconversion-5.67.0.tar.xz
f00cf13031ae84283c16b56c400a51f7 kconfigwidgets-5.67.0.tar.xz
290466bdeddfc2c04c5a872a773d974d kservice-5.67.0.tar.xz
b688a1639bc9497fb3787f9d93950bda kglobalaccel-5.67.0.tar.xz
6bf9110d2c3746fdf0c70cc8451c3596 kpackage-5.67.0.tar.xz
a4d9df054c4f7d4672be9f12596d877e kdesu-5.67.0.tar.xz
6a806ed9f1854c24dcaf653c7f91511e kemoticons-5.67.0.tar.xz
fd90eda4d83598fefb87db83463cca1f kiconthemes-5.67.0.tar.xz
3a8533dcb22764c9f80eb9957d530170 kjobwidgets-5.67.0.tar.xz
37d8e17a44cca54f8e937bd1b80231d3 knotifications-5.67.0.tar.xz
fe7fefbc23ca7eef85f95cbc54f193b3 ktextwidgets-5.67.0.tar.xz
4565a3d1f277653e41310a3ae26dcc1e kxmlgui-5.67.0.tar.xz
1236b6fd559c9ac85e5c7d82fe5bbb02 kbookmarks-5.67.0.tar.xz
895e560a0b748dbb007ff45ec71ce85d kwallet-5.67.0.tar.xz
b3cd883d9892f47dfbb7b2c29be0ff1b kio-5.67.0.tar.xz
5f491d1b51cbafefff0d502c2818a1c9 kdeclarative-5.67.0.tar.xz
3fd40a72390912440c06289b5a17faa8 kcmutils-5.67.0.tar.xz
f9077200aa86833705a7f4250d61c0e6 kirigami2-5.67.0.tar.xz
0033e888f61c2f257e6e6f4a2011a976 knewstuff-5.67.0.tar.xz
6dc5c1e55e8ca4cc19e6faa8719b9cc4 frameworkintegration-5.67.0.tar.xz
646771a2d35f1af7c5d0f4cfb3f80179 kinit-5.67.0.tar.xz
6e43a6a6cf0a60eb8f31269834795fc4 knotifyconfig-5.67.0.tar.xz
cc3125f7ae87b52e62571040749a4732 kparts-5.67.0.tar.xz
37a1c1995cd80c8c5d53de70f9fe61ed kactivities-5.67.0.tar.xz
5857f91c556d03fa6178ddc7d2d6a3dd kded-5.67.0.tar.xz
#a447900424cd04dbaf49e8bf9617f6dc kdewebkit-5.67.0.tar.xz
91319edc9d27393df6812d60f1505b99 syntax-highlighting-5.67.0.tar.xz
de9f38ec3ad76a5f19b4fc665dee5b82 ktexteditor-5.67.0.tar.xz
923482f22930286d7f99af334c3a2181 kdesignerplugin-5.67.0.tar.xz
5141cdc1fcd46d43ac0043c10112be2b kwayland-5.67.0.tar.xz
5203954a541766bd0def96fe2ddc1d05 plasma-framework-5.67.0.tar.xz
#f7b27e1fb53fbf7ccc3fabb3469b2ac3 modemmanager-qt-5.67.0.tar.xz
aa74dc95497e27a322668df02c21ba6f kpeople-5.67.0.tar.xz
604ee822d3c31c025ea90a64692db277 kxmlrpcclient-5.67.0.tar.xz
4bf38a4919ea975deb71197c57a8edf0 bluez-qt-5.67.0.tar.xz
6fa27bb4fb5e3a08bc58b6d67e4ca396 kfilemetadata-5.67.0.tar.xz
05d339861c1b9082dc7b8f4822167954 baloo-5.67.0.tar.xz
#18d27b2f7d443a6e7e4fdc41a3fb9ae4 breeze-icons-5.67.0.tar.xz
#4d74544c61cb1db49a6b10da6835ec88 oxygen-icons5-5.67.0.tar.xz
b89c11f239048e4d65b4781fbc660a41 kactivities-stats-5.67.0.tar.xz
9da490e8e8ccfed43206d18a176019f8 krunner-5.67.0.tar.xz
#181d901dbda09ee7d26fd234eef56ed4 prison-5.67.0.tar.xz
46b9c80d3ef84a26803d47fc57426158 qqc2-desktop-style-5.67.0.tar.xz
b8352b2a459df37ac5fc8b5be5674d08 kjs-5.67.0.tar.xz
aa5d6287fdae772c72ac15bb56315e53 kdelibs4support-5.67.0.tar.xz
8c4ec0e9a3ac90622c64ecc0e3329d91 khtml-5.67.0.tar.xz
10163d7d799db8cc90afcb7f2acb89d8 kjsembed-5.67.0.tar.xz
88c78b268916199328c381de5d65020b kmediaplayer-5.67.0.tar.xz
46ded68727de15c4d66ce29b4bb15831 kross-5.67.0.tar.xz
3d1831377c10ca2f90a5edd133501f84 kholidays-5.67.0.tar.xz
4039367834bc9039a84261b5a8d9912c purpose-5.67.0.tar.xz
59240be3b390227198e8d94f5ae87fe8 syndication-5.67.0.tar.xz
91aadb3a165ac2ec1f5ab01f523bdeed kcalendarcore-5.67.0.tar.xz
a8f99a97898c0489577204f219c7a5a3 kcontacts-5.67.0.tar.xz
b07cef12653a85091fadd25260942cf6 kquickcharts-5.67.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.67.0 et oxygen-icons5-5.67.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
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 :
-
Lancer le script entièrement en tant qu'utilisateur root
(pas recommandé).
-
Use the sudo
command from the Sudo-1.8.31
package.
-
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
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 tous les paquets 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
name=$(echo $pkg|sed 's|-5.*$||') # Isolate package name
tar -xf $file
pushd $packagedir
case $name in
kitemviews*) sed -i '/<QList>/a #include <QPersistentModelIndex>' \
src/kwidgetitemdelegatepool_p.h ;;
kplotting*) sed -i '/<QHash>/a #include <QHelpEvent>' \
src/kplotwidget.cpp ;;
knotifica*) sed -i '/<QUrl>/a #include <QVariant>' \
src/knotification.h ;;
kcompleti*) sed -i '/<QClipboard>/a #include <QKeyEvent>' \
src/klineedit.cpp ;;
kwayland*) sed -i '/<wayland-xdg-output-server-proto/a #include <QHash>' \
src/server/xdgoutput_interface.cpp ;;
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.67.0.md5
exit
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.67.0
ln -sfvn kf5-5.67.0 /opt/kf5
Explication des commandes
case … : ces
modifications sont requises pour construire avec Qt-5.14.1.
-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.67.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 2020-02-20 01:36:21 +0100