dbus-1.16.0 - Pass 1

Introduction to D-Bus - Pass 1

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

This is the first pass. A useful program, dbus-launch, will be compiled later, but is not needed now. It depends on Xorg Libraries being installed beforehand.

Installation of D-Bus - Pass 1

Install D-Bus by running the following commands (you may wish to review the meson_options.txt file first and add any desired parameters to the meson command shown below):

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            -D systemd=disabled    \
            .. &&

ninja

Now, as the root user:

ninja install

If you are using a DESTDIR install, dbus-daemon-launch-helper needs to be fixed afterwards. Issue, as root user:

chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &&
chmod -v      4750       /usr/libexec/dbus-daemon-launch-helper

Generate the D-Bus UUID to avoid warnings when compiling some packages with the following command as the root user:

dbus-uuidgen --ensure

If using elogind, create a symlink to the /var/lib/dbus/machine-id file:

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

lib32 Installation of D-Bus - Pass 1

[Note]

Note

The program dbus-launch will not need to have a lib32 version, so this lib32 compilation will be the first and only needed pass unless you are upgrading D-Bus.

First clean the build directory:

rm -rf *

Now install lib32-D-Bus by running the following commands:

CC="gcc -m32" CXX="g++ -m32"           \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig" \
meson setup --prefix=/usr              \
            --libdir=/usr/lib32        \
            --wrap-mode=nofallback     \
            -D systemd=disabled        \
            .. &&

ninja

Now as the root user:

DESTDIR=$PWD/DESTDIR ninja install    &&
cp -vR DESTDIR/usr/lib32/* /usr/lib32 &&
rm -rf DESTDIR                        &&
ldconfig

Command Explanations

--wrap-mode=nofallback: This switch prevents meson from using subproject fallbacks for any dependency declarations in the build files, stopping it downloading any optional dependency which is not installed on the system.

-D systemd=disabled: Don't install systemd support files even if libsystemd exists (i.e. the elogind-255.17 package is installed).

Contents

See the full list of contents at dbus-1.16.0.