8.71. D-Bus-1.12.20

D-Bus is a message bus system, a simple way for applications to talk to one another. D-Bus supplies both a system daemon (for events such as "new hardware device added" or "printer queue changed") and a per-user-login-session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one-to-one message passing framework, which can be used by any two applications to communicate directly (without going through the message bus daemon).

Approximate build time: 0.2 SBU
Required disk space: 18 MB

8.71.1. Installation of D-Bus

Prepare D-Bus for compilation:

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

The meaning of the configure options:

--with-console-auth-dir=/run/console

This specifies the location of the ConsoleKit authorization directory.

--with-system-pid-file=/run/dbus/pid and --with-system-socket=/run/dbus/system_bus_socket

These set the location of the PID file and the system bus socket to be in /run, instead of deprecated /var/run.

Compile the package:

make

This package does come with a test suite, but it requires several packages that are not included in LFS. Instructions for running the test suite can be found in the BLFS book at http://www.linuxfromscratch.org/blfs/view/10.1/general/dbus.html.

Install the package:

make install

The shared library needs to be moved to /lib, and as a result the .so file in /usr/lib will need to be recreated:

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

Create a symlink so that D-Bus and systemd can use the same machine-id file:

ln -sfv /etc/machine-id /var/lib/dbus

8.71.2. Contents of D-Bus

Installed programs: dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor, dbus-run-session, dbus-send, dbus-test-tool, dbus-update-activation-environment, and dbus-uuidgen
Installed libraries: libdbus-1.{a,so}
Installed directories: /etc/dbus-1, /usr/include/dbus-1.0, /usr/lib/dbus-1.0, /usr/share/dbus-1, /usr/share/doc/dbus-1.12.20, and /var/lib/dbus

Short Descriptions

dbus-cleanup-sockets

is used to remove leftover sockets in a directory

dbus-daemon

Is the D-Bus message bus daemon

dbus-launch

Starts dbus-daemon from a shell script

dbus-monitor

Monitors messages passing through a D-Bus message bus

dbus-run-session

Starts a session bus instance of dbus-daemon from a shell script and starts a specified program in that session

dbus-send

Sends a message to a D-Bus message bus

dbus-test-tool

Is a tool to help packages test D-Bus

dbus-update-activation-environment

Updates environment variables that will be set for D-Bus session services

dbus-uuidgen

Generates a universally unique ID

libdbus-1

Contains API functions used to communicate with the D-Bus message bus