D-Bus-1.16.2 - 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.

Important

For the lib32 installation instructions, they require new Meson cross files from MLFS, as --libdir=/usr/lib32 has been moved to the cross files and no longer appear in the instructions. Install the new cross files so that 32-bit libraries don't get installed in /usr/lib.

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

mkdir  build &&
cd     build &&

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 the following as the 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

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.

Install lib32-D-Bus by running the following commands:

rm -rf * &&
meson setup --prefix=/usr          \
            --buildtype=release    \
            --cross-file=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

Note

Inspect meson_options.txt or meson.options for a full list of options.

--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.22 package is installed).

Contents

See the full list of contents at D-Bus-1.16.2.