dbus-1.12.4

Introduction à D-Bus

D-Bus est un système de bus de messages, une manière simple pour les applications de parler entre elles. D-Bus fournit un démon système (pour des événements tels que « nouveau périphérique ajouté » ou « queue de l'imprimante modifiée ») et un démon par session utilisateur (pour les besoins IPC généraux des applications de l'utilisateur). Le bus de messages est aussi construit au dessus d'un environnement de passage de messages biunivoques, qui peut être utilisé par deux applications pour communiquer directement (sans passer par le démon de bus de message).

Ce paquet est connu pour se construire correctement sur une plateforme LFS-8.2.

Informations sur le paquet

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

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 89745b5a6c45c26751dcf673d912f745

  • Taille du téléchargement : 2.0 Mo

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

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

Dépendances de D-Bus

Recommandées

Facultatives

Pour les tests : dbus-glib-0.110, D-Bus Python-1.2.6, PyGObject-2.28.7 (construit avec le support gobject-introspection), et Valgrind-3.13.0 ; pour la documentation : Doxygen-1.8.14, xmlto-0.0.28, Ducktype et Yelp Tools

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

Installation de D-Bus

S'ils n'existent pas déjà, en tant qu'utilisateur root, créez un utilisateur et un groupe systèmes pour gérer l'activité du bus de messages du système :

groupadd -g 18 messagebus &&
useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
        -u 18 -g messagebus -s /bin/false messagebus

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                 \
            --disable-doxygen-docs               \
            --disable-xml-docs                   \
            --disable-static                     \
            --docdir=/usr/share/doc/dbus-1.12.4 \
            --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.

Maintenant, en tant qu'utilisateur root :

make 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

Si vous construisez votre système en chroot ou que vous n'avez pas encore lancé le démon, mais que vous souhaitez compiler certains paquets dépendant de D-Bus, générez l'UUID D-Bus afin d'éviter les avertissements lors de la compilation de certains paquets à l'aide de la commande suivante en tant qu'utilisateur root :

dbus-uuidgen --ensure

Les tests dbus ne peuvent pas être lancés tant que dbus-glib-0.110 n'est pas installé. Ils doivent être lancés en tant qu'utilisateur non privilégié depuis une session locale avec une adresse de bus. Si vous voulez lancer seulement les tests unitaires, remplacez, ensuite, --enable-tests par --enable-embedded-tests, autrement, D-Bus Python-1.2.6 doit être installé, avant. Les tests demandent de passer des paramètres supplémentaires à configure et d'avoir des fonctionnalités supplémentaires dans les fichiers binaires. Ces interfaces ne sont pas destinées à être utilisées dans une construction de production de D-Bus. Si vous souhaitez lancer la suite de tests, tapez les commandes suivantes (pour les tests, vous n'avez pas besoin de construire les docs) :

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

L'« espace disque nécessaire estimé » rapporté au-dessus est obtenu dans un construction en utilisant les paramètres désactivant la génération de la documentation. Ceci et l'utilisation de la commande make distclean implique que le répertoire de construction est plus petit que celui utilisé pour une construction complète avec la génération de la documentation.

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.

--disable-systemd : Cette option désactive le support de systemd dans D-Bus.

--without-systemdsystemunitdir : Ce paramètre empêche l'installation des fichiers unités de systemd.

--with-console-auth-dir=/run/console/ : Ce paramètre spécifie l'endroit pour le répertoire auth de ConsoleKit.

--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. Configure se terminera avec un avertissement NOTE à propos de l'augmentation de la taille des bibliothèques et de la perte de sécurité.

--enable-embedded-tests : Construit des parties supplémentaires du code pour supporter seulement les tests unitaires. Configure se terminera avec un avertissement NOTE à propos de l'augmentation de la taille des bibliothèques et de la perte de sécurité.

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

Pour démarrer automatiquement dbus-daemon quand on redémarre le système, installez le script de démarrage /etc/rc.d/init.d/dbus depuis le paquet blfs-bootscripts-20180105.

make install-dbus

Remarquez que ce script de démarrage ne démarre que démon D-Bus de tout le système. Chaque utilisateur ayant besoin d'un accès aux services de D-Bus devront exécuter en plus un démon de session. Il y a beaucoup de méthodes utilisables pour démarrer un démon de session en utilisant la commande dbus-launch. Revoyez la page de man de dbus-launch pour des détails sur les paramètres et les options disponibles. 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

Programmes installés: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment et dbus-uuidgen
Bibliothèque installée: libdbus-1.so
Répertoires installés: /etc/dbus-1, /usr/{include,lib}/dbus-1.0, /usr/share/dbus-1, /usr/share/doc/dbus-1.12.4 et /var/{lib,run}/dbus

Descriptions courtes

dbus-cleanup-sockets

nettoie les sockets superflus dans un répertoire.

dbus-daemon

est le démon de bus de messages D-Bus.

dbus-launch

est utilisé pour démarrer dbus-daemon depuis un script shell. Il est en principe appelé par des scripts de connexion d'un utilisateur.

dbus-monitor

est utilisé pour surveiller les messages à travers un bus de messages D-Bus.

dbus-run-session

démarre un processus comme une nouvelle session D-Bus.

dbus-send

est utilisé pour envoyer un message à un bus de messages D-Bus.

dbus-test-tool

est un générateur de trafic D-Bus et un outil de tests ; c'est un outil multi-usage pour le débogage et le profilage de D-Bus.

dbus-update-activation-environment

est utilisé pour mettre à jour l'environnement utilisé pour les services de session de D-Bus ; il met à jour la liste des variables d'environnement utilisées par dbus-daemon --session quand il active les services de session sans utiliser systemd.

dbus-uuidgen

est utilisé pour générer ou lire un ID universellement unique.

libdbus-1.so

contient les fonctions de l'API utilisées par le démon de messages D-Bus. D-Bus est d'abord une bibliothèque qui fournit une communication directe entre deux applications ; dbus-daemon est une application qui utilise cette bibliothèque pour implémenter un démon de bus de messages

Last updated on 2018-02-19 04:25:41 +0100