dbus-1.12.16

Introduction à D-Bus

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 se construire correctement sur une plateforme LFS-9.1.

Informations sur le paquet

  • Téléchargement (HTTP) : https://dbus.freedesktop.org/releases/dbus/dbus-1.12.16.tar.gz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 2dbeae80dfc9e3632320c6a53d5e8890

  • Taille du téléchargement : 2.0 Mo

  • Estimation de l'espace disque requis : 21 Mo (plus 17 Mo pour les tests)

  • Estimation du temps de construction : 0.3 SBU (pus 8.5 SBU pour les tests)

Dépendances de D-Bus

Requises

Systemd-244

Recommandées

Facultatives

Pour les tests : dbus-glib-0.110, D-Bus Python-1.2.16, PyGObject-3.34.0 et Valgrind-3.15.0 ; pour la documentation : Doxygen-1.8.17, xmlto-0.0.28, Ducktype et Yelp Tools

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/dbus

Installation de D-Bus

Installez D-Bus en lançant les commandes suivantes (vous pouvez d'abord souhaiter observer la sortie de ./configure --help et ajouter des paramètres désirés à la commande configure affichée ci-dessous) :

./configure --prefix=/usr                        \
            --sysconfdir=/etc                    \
            --localstatedir=/var                 \
            --enable-user-session                \
            --disable-doxygen-docs               \
            --disable-xml-docs                   \
            --disable-static                     \
            --docdir=/usr/share/doc/dbus-1.12.16 \
            --with-console-auth-dir=/run/console \
            --with-system-pid-file=/run/dbus/pid \
            --with-system-socket=/run/dbus/system_bus_socket &&
make

Voir ci-dessous pour les instructions de test.

[Avertissement]

Avertissement

Installer ce paquet effacera tous les fichiers installés par D-Bus dans LFS. Il est critique que rien n'utilise les bibliothèques et programmes D-Bus durant l'installation. La meilleur manière de s'assurer que ces bibliothèques ne sont pas utilisées est de lancer l'installation en mode de secours. Pour passer en mode de secours, lancez la commande suivante en tant qu'utilisateur root (depuis un TTY) :

systemctl start rescue.target

Maintenant, en tant qu'utilisateur root :

make install

La bibliothèque partagée doit être déplacée vers /lib et le fichier .so dans /usr/lib devra alors être recréé. Lancez la commande suivante en tant qu'utilisateur root :

mv -v /usr/lib/libdbus-1.so.* /lib &&
ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so

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

Si vous n'êtes pas en chroot, vous devriez maintenant recharger le démon systemd et réentrer en mode multi-utilisateur avec les commandes suivantes (en tant qu'utilisateur root) :

systemctl daemon-reload
systemctl start multi-user.target

Les tests de dbus ne peuvent pas être lancés avant l'installation de dbus-glib-0.110. 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 make check.

Si vous voulez lancer les tests unitaires, des paramètres supplémentaires doivent être passés à configure qui 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) :

make distclean                     &&
./configure --enable-tests         \
            --enable-asserts       \
            --disable-doxygen-docs \
            --disable-xml-docs     &&
make                               &&
make check

Le test test-bus.sh est connu pour échouer. Il y a un signalement indiquant que les tests peuvent échouer s'ils sont lancés depuis un shell Midnight Commander. Il se peut vous ayez des messages d'erreur de dépassement de mémoire lors des tests. Ils sont normaux et vous pouvez sans problème les ignorer.

Explication des commandes

--disable-doxygen-docs : Ce paramètre désactive la construction de la documentation doxygen et son installation, si vous avez installé doxygen. Si doxygen est installé et que vous souhaitez construire et l'installer, effacez ce paramètre.

--disable-xml-docs : Ce paramètre désactive la construction et l'installation de la documentation html si vous avez installé xmlto. Supprimez-le, si xmlto est installé et que vous souhaitiez la construire et l'installer.

--disable-static : Ce paramètre empêche l'installation des versions statiques des bibliothèques.

--enable-user-session : Ce paramètre active les sessions utilisateurs DBus avec systemd.

--with-console-auth-dir=/run/console : ce paramètre spécifie le répertoire dont il faut vérifier l'appartenance à la console.

--with-system-pid-file=/run/dbus/pid : Ce paramètre spécifie l'endroit pour le fichier PID.

--with-system-socket=/run/dbus/system_bus_socket : Ce paramètre spécifie l'emplacement du socket du bus système.

--enable-tests : Construit des parties supplémentaires du code pour tous les tests. N'utilisez pas ce paramètre pour une construction de production.

--enable-embedded-tests : Construit des parties supplémentaires du code pour supporter seulement les tests unitaires. N'utilisez pas ce paramètres pour une construction de production.

--enable-asserts : 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 '--enable-tests' 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.

Configuration de D-Bus

Fichiers de configuration

/etc/dbus-1/session.conf, /etc/dbus-1/system.conf et /etc/dbus-1/system.d/*

Informations sur la configuration

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

Démon de Session D-Bus

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

  • L'exemple montré précédemment utilise dbus-launch pour spécifier un programme à exécuter. Ceci a le bénéfice (quand on utilise également le paramètre --exit-with-session) 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 astuce a été écrite offrant des moyens de démarrer des scripts utilisant le gestionnaire de sessions KDM de KDE. Les concepts de cette astuce pourraient être éventuellement utilisés aussi avec d'autres gestionnaires de session. L'astuce se trouve sur http://www.linuxfromscratch.org/hints/downloads/files/execute-session-scripts-using-kdm.txt.

Contenu

Une liste des fichiers installés, avec leur description courte se trouve sur ../../../../lfs/view/9.1-systemd/chapter06/dbus.html#contents-dbus.

Last updated on 2020-02-16 05:23:35 +0100