Contenu
Une liste des fichiers installés, avec leur description courte se trouve sur ../../../../lfs/view/12.3-systemd/chapter08/dbus.html#contents-dbus.
Bien que D-Bus a été construit dans LFS, il y a des fonctionnalités offertes par le paquet dont d'autres paquets de BLFS ont besoin, mais leur dépendances ne tiennent pas dans LFS.
Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.3.
Téléchargement (HTTP) : https://dbus.freedesktop.org/releases/dbus/dbus-1.16.0.tar.xz
Somme de contrôle MD5 du téléchargement : 66bfcf1f42d4ebc634ca558d14335e92
Taille du téléchargement : 1,3 Mo
Estimation de l'espace disque requis : 110 Mo (plus 6 Mo pour les tests)
Estimation du temps de construction : 0,2 SBU (plus 0,4 SBU pour les tests)
Bibliothèques Xorg (pour le programme dbus-launch)
Systemd-257.3 (à l'exécution, pour enregistrer les services lancés par le démon de session D-Bus comme des services systemd utilisateurs) ; Pour les tests : D-Bus Python-1.3.2, PyGObject-3.50.0 et Valgrind-3.24.0 ; pour la documentation : Doxygen-1.13.2, xmlto-0.0.29, Ducktype et Yelp Tools
Installez D-Bus en exécutant les commandes suivantes (vous pouvez d'abord souhaiter consulter le fichier meson_options.txt avant, et ajouter des options supplémentaires à la ligne de configuration de meson ci-dessous) :
mkdir build && cd build && meson setup --prefix=/usr \ --buildtype=release \ --wrap-mode=nofallback \ .. && ninja
Voir ci-dessous pour les instructions de test.
Maintenant, en tant qu'utilisateur root
:
ninja install
Si vous utilisez une installation DESTDIR, dbus-daemon-launch-helper doit
être corrigé. Tapez en tant qu'utilisateur root
:
chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper && chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper
Enfin, toujours en tant qu'utilisateur root
, renommez le répertoire de documentation
(il n'existe que si les dépendances facultatives sont satisfaites
pour au moins un format de documentation) pour le versionner :
if [ -e /usr/share/doc/dbus ]; then rm -rf /usr/share/doc/dbus-1.16.0 && mv -v /usr/share/doc/dbus{,-1.16.0} fi
De nombreux tests sont désactivés à moins d'avoir installé à la fois D-Bus Python-1.3.2 et PyGObject-3.50.0. Ils doivent être lancés en tant qu'utilisateur non privilégié depuis une session locale avec une adresse de bus. Pour lancer la suite de tests standard, lancez ninja test.
Si vous voulez lancer les tests unitaires, des paramètres supplémentaires doivent être passés à meson. Ils exposent des fonctionnalités supplémentaires dans les fichiers binaires mais ne sont pas destinées à être utilisées dans une construction de production de D-Bus. Si vous souhaitez lancer les tests, tapez les commandes suivantes (pour les tests, vous n'avez pas besoin de construire la doc) :
meson configure -D asserts=true -D intrusive_tests=true && ninja test
--wrap-mode=nofallback
: ce
paramètre évite que meson ne se rabatte sur les
sous-projet pour les déclarations de dépendance dans les fichiers
de construction, ce qui l'empêche de télécharger les dépendances
facultatives qui ne sont pas installées sur le système.
-D
intrusive_tests=true
: Construit des parties
supplémentaires du code pour tous les tests. N'utilisez pas ce
paramètre pour une construction de production.
-D asserts=true
:
Active le code de débogage pour exécuter des déclarations
d'éléments supposées normalement vrais. Cela empêche un
avertissement selon lequel '-D
asserts=true
' n'est utile en lui-même que pour le
profilage et il pourrait ne pas donner de bons résultats pour tous
les tests, mais il ajoute sa propre remarque selon laquelle cela ne
devrait pas être utilisé dans une construction de production.
/etc/dbus-1/session.conf
,
/etc/dbus-1/system.conf
et
/etc/dbus-1/system.d/*
On ne devrait probablement pas modifier les fichiers de
configuration listés ci-dessus. Si des modifications sont
requises, vous devriez créer /etc/dbus-1/session-local.conf
ou /etc/dbus-1/system-local.conf
et effectuer les
changements désirés dans ces fichiers.
Si un paquet installe un fichier .service
de D-Bus hors du répertoire /usr/share/dbus-1/services
standard, vous
devriez ajouter ce répertoire à la configuration de la session
locale. Par exemple, /usr/local/share/dbus-1/services
peut être
ajouté en effectuant les commandes suivantes en tant
qu'utilisateur root
:
cat > /etc/dbus-1/session-local.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Search for .service files in /usr/local -->
<servicedir>/usr/local/share/dbus-1/services</servicedir>
</busconfig>
EOF
Il y a plusieurs méthodes que vous pouvez utiliser pour démarrer un démon de session avec la commande dbus-launch. Regardez la page de manuel de dbus-launch pour les détails à propos des paramètres disponibles et des options. Voici quelques suggestions et exemples :
Ajouter dbus-launch à la ligne
dans le fichier ~/.xinitrc
qui démarre votre environnement graphique.
Si vous utilisez gdm ou un autre
gestionnaire d'affichage qui appelle le fichier
~/.xsession
, vous pouvez
ajouter dbus-launch à la ligne
dans votre fichier ~/.xsession
qui démarre votre
environnement graphique. La syntaxe ressemblerait à celle
de l'exemple dans le fichier ~/.xinitrc
.
Les exemples montrés précédemment utilisent dbus-launch pour
spécifier un programme à exécuter. Ceci a le bénéfice
(quand on utilise également le paramètre --exit-with-x11
) de stopper
le démon de la session quand le programme spécifié est
stoppé. Vous pouvez également démarrer le démon de la
session dans vos scripts de démarrage du système ou
personnels en ajoutant les lignes suivantes :
# Start the D-Bus session daemon
eval `dbus-launch`
export DBUS_SESSION_BUS_ADDRESS
Cette méthode n'arrêtera pas le démon de session quand vous
quittez votre shell, donc vous devriez ajouter la ligne
suivante à votre fichier ~/.bash_logout
:
# Kill the D-Bus session daemon
kill $DBUS_SESSION_BUS_PID
Une liste des fichiers installés, avec leur description courte se trouve sur ../../../../lfs/view/12.3-systemd/chapter08/dbus.html#contents-dbus.