Announcing dbus 1.13.8

Simon McVittie smcv at
Tue Dec 4 20:26:08 UTC 2018

This is still a development branch for the adventurous, and comes with a
risk of regressions. OS distributions should stay with the 1.12.x branch,
unless they can commit to following the 1.13.x branch until it reaches
a 1.14.0 stable release at an unspecified point in the future.

git tag: dbus-1.13.8

The “demanding dragon” release.

dbus version control is now hosted on's Gitlab
installation, and bug reports and feature requests have switched from
Bugzilla bugs (indicated by "fd.o #nnn") to Gitlab issues ("dbus#nnn")
and merge requests ("dbus!nnn"). See README and for
more details.


• dbus now requires at least a basic level of support for C99 variadic
  macros, as implemented in gcc >= 3, all versions of Clang, and
  MSVC >= 2005. In practice this requirement has existed since version
  1.9.2, but it is now official.

• dbus now requires a C99-compatible va_copy() macro (or a __va_copy()
  macro with the same behaviour), except when building for Windows using
  MSVC and CMake.

• Building documentation using CMake now requires xsltproc, Docbook DTDs
  (for example docbook-xml on Debian derivatives), and Docbook XSLT
  stylesheets (for example docbook-xsl on Debian derivatives). Using
  KDE's meinproc4 documentation processor is no longer supported.


• Rewrite to reflect the current setup
  (dbus!8, Simon McVittie)

• D-Bus Specification v0.34:
  · Fix an incorrect AddMatch() call in sample code
    (dbus#221, dbus!56; Philip Withnall)

• Tarball releases no longer contain pre-2007 changelogs and are now
  compressed with xz, so they should be somewhat smaller
  (fd.o #107630; Francesco Turco, Simon McVittie)

• Reference the Code of Conduct (Simon McVittie)

• Build an implementation of dbus-run-session for Windows
  (dbus#135, dbus!22; Ralf Habacker)

• On Linux with SELinux, use avc_open() and monitor the AVC netlink fd
  in the main event loop, instead of using the deprecated avc_init()
  and a thread (dbus#134, dbus!31; Laurent Bigonville)

• On Linux with SELinux, use the SELINUX_CB_POLICYRELOAD callback
  to detect policy reloads, instead of monitoring the access vector
  (dbus#134, dbus!31; Laurent Bigonville)

• Avoid double slashes in pkg-config paths (dbus!30, Ralf Habacker)

• Improve test coverage and clean up dead code
  (fd.o #107739, dbus#222; Simon McVittie)

• Allow --enable-relocation in combination with absolute paths for
  --exec-prefix, --libdir (fd.o #107662, Simon McVittie)

• Don't run a test program to check how to copy a va_list, which is
  awkward for cross-compiling; instead require that va_copy() or
  __va_copy() exists, except in older MSVC versions where we already
  know that simple assignment is enough (dbus!35, Simon McVittie)

• Simplify configure checks (dbus!10, Simon McVittie)

• Improve CMake build system parity with Autotools, including:
  · Detect inotify, prctl() and getpwnam_r() correctly on Linux
  · Use xsltproc instead of meinproc4 for documentation
  (dbus#57, dbus#117, dbus#193, dbus#227, dbus!18, dbus!39;
  Ralf Habacker, Simon McVittie)


• Stop the dbus-daemon leaking memory (an error message) if delivering
  the message that triggered auto-activation is forbidden. This is
  technically a denial of service because the dbus-daemon will
  run out of memory eventually, but it's a very slow and noisy one,
  because all the rejected messages are also very likely to have
  been logged to the system log, and its scope is typically limited by
  the finite number of activatable services available.
  (dbus#234, Simon McVittie)

• Remove __attribute__((__malloc__)) attribute on dbus_realloc(),
  which does not meet the criteria for that attribute in gcc 4.7+,
  potentially leading to miscompilation (fd.o #107741, Simon McVittie)

• Parse section/group names in .service files according to the syntax
  from the Desktop Entry Specification:
  · reject control characters and non-ASCII in section/group names
  · backslash escapes are not interpreted in section/group names
  (dbus#208; David King, Simon McVittie)

• Always use select()-based poll() emulation on Darwin-based OSs
  (macOS, etc.) and on Interix, similar to what libcurl does
  (dbus#232, dbus!19; Simon McVittie)

• Avoid undefined integer shifts when generating random tokens for
  the DBUS_COOKIE_SHA1 mechanism (dbus!45, Simon McVittie)

• Document the max-connections-per-user limit as unimplemented on
  Windows, and don't fail tests when it isn't enforced there
  (dbus!54, Simon McVittie)

• Avoid unnecessary file descriptors being inherited by dbus-daemon and
  dbus-launch subprocesses (dbus!50, Simon McVittie)

• Fix some minor memory leaks
  (fd.o #107320, dbus!41, dbus!42; Simon McVittie)

• Don't fail tests if GetConnectionUnixProcessID() succeeds on Windows,
  which it normally will since 1.7.x
  (dbus#239, dbus!55; Simon McVittie)

• Extend a test timeout to avoid spurious failures in CI
  (dbus!26, Simon McVittie)

• Avoid undefined signed integer operations when generating random
  message content during regression tests (dbus!46, Simon McVittie)

• Fix build warnings with recent gcc (dbus#208, dbus#225; David King)

• Fix build warnings without libX11 (dbus#228, Simon McVittie)

• Fix whitespace and error behaviour for _dbus_command_from_pid()
  (dbus#222, dbus!28; Simon McVittie)

• Fix a race condition in the containers test
  (dbus!47, Simon McVittie)

• When built with CMake, install dbus-daemon-launch-helper to
  ${CMAKE_INSTALL_LIBEXECDIR}, analogous to ${libexecdir} in
  Autotools (dbus!9, Simon McVittie)

• When built with CMake and disabling tests, still install
  dbus-daemon-launch-helper (dbus!9, Simon McVittie)

Tests and CI:

• Add Travis-CI builds for 64-bit Windows using mingw-w64
  (fd.o #105662, Ralf Habacker)

• Add Gitlab-CI integration (fd.o #108177, Simon McVittie)

Simon McVittie, Collabora Ltd.
on behalf of the dbus maintainers

More information about the dbus mailing list