Announcing dbus 1.15.0 (new development branch)

Simon McVittie smcv at collabora.com
Thu Sep 22 13:01:14 UTC 2022


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

<http://dbus.freedesktop.org/releases/dbus/dbus-1.15.0.tar.xz>
<http://dbus.freedesktop.org/releases/dbus/dbus-1.15.0.tar.xz.asc>
git tag: dbus-1.15.0

Dependencies:

• On platforms where a pointer is larger than 64 bits, dbus requires at
  least a C11 compiler.
  On other platforms, dbus now requires either a C99 compiler such as
  gcc or clang, or Microsoft Visual Studio 2015 or later. Some workarounds
  for pre-C99 environments are currently still present, but we plan to
  remove them during this development cycle.

• Building with CMake now requires CMake ≥ 3.4.

• Building with Meson requires Meson ≥ 0.56 and Python ≥ 3.5.

Feature removal:

• Remove support for the obsolete pam_console and pam_foreground modules
  (the Autotools --with-console-auth-dir= and CMake -DDBUS_CONSOLE_AUTH_DIR=
  options, which have been deprecated since dbus 1.11.18).
  (dbus#181, fd.o#101629)

Build-time configuration changes:

• Add a Meson build system. This is currently considered experimental,
  but the intention is for it to replace Autotools and/or CMake in future
  releases, preferably both. Please test!
  (dbus!303, dbus!325; Félix Piédallu, Marc-André Lureau, Simon McVittie)
  · This requires Meson 0.56 or newer, and Python 3.5 or newer.
  · Expat can be built as a subproject using Meson's "wrap" mechanism,
    if desired. This should make it considerably easier to build dbus
    for Windows or other platforms without a library packaging system.
  · GLib can also be built as a subproject using Meson's "wrap" mechanism,
    if desired. This should make it considerably easier to build full
    test coverage on Windows or other platforms without a library
    packaging system.

• Please note that not all Meson build options correspond 1:1 to how
  the closest equivalents in Autotools or CMake behave, and the Meson
  build options are subject to change.
  Distributors and developers evaluating the Meson build should check
  that they are configuring dbus the way they intend to.

Enhancements:

• D-Bus Specification 0.39:
  · Document how to represent internationalized domain names in D-Bus
    names (dbus!324, Simon McVittie)
  · Improve documentation of AF_UNIX sockets (Marc-André Lureau)

• On Unix, speed up closing file descriptors for subprocesses by using
  closefrom() or close_range() where available
  (dbus#278; rim, Simon McVittie)

• On Windows, dbus can now use AF_UNIX sockets, not just TCP.
  This requires Windows 10 build 17063 or later at runtime,
  and either Windows 10 SDK 17063 or mingw-w64 version 9.0.0 or later
  at compile-time. (dbus!249, Marc-André Lureau)

• Teach dbus-send to handle variants in containers: arrays of variants,
  variant values in dictionaries, and nested variants
  (dbus!206, Frederik Van Bogaert)

• Detect programming errors with Windows mutexes if assertions are
  enabled, similar to what we already did for pthreads mutexes
  (dbus#369, Ralf Habacker)

• Move license text into LICENSES, and start to use SPDX markers
  (Simon McVittie, Ralf Habacker)

Fixes:

• Portability to CPU architectures with larger-than-64-bit pointers
  (dbus!335, dbus!318; Alex Richardson)

• Fix build failure on FreeBSD (dbus!277, Alex Richardson)

• Fix build failure on macOS with launchd enabled
  (dbus!287, Dawid Wróbel)

• Preserve errno on failure to open /proc/self/oom_score_adj
  (dbus!285, Gentoo#834725; Mike Gilbert)

• Improve dbus-launch --autolaunch so it can pick up an existing bus from
  Linux XDG_RUNTIME_DIR or macOS launchd, even if X11 autolaunching was
  disabled (dbus#385, dbus#392; Simon McVittie, Alex Richardson)

• Correctly escape AF_UNIX socket paths when converting them to D-Bus
  address strings (dbus#405, Marc-André Lureau)

• On Linux, don't log warnings if oom_score_adj is read-only but does not
  need to be changed (dbus!291, Simon McVittie)

• Slightly improve error-handling for inotify
  (dbus!235, Simon McVittie)

• Don't crash if dbus-daemon is asked to watch more than 128 directories
  for changes (dbus!302, Jan Tojnar)

• Silence various compiler warnings
  (dbus!275, dbus!289, dbus!305, dbus!307, dbus!312, dbus!315;
  Ralf Habacker, Simon McVittie, Alex Richardson, Marc-André Lureau)

• On Windows, use safer locking patterns for the system-global mutex used
  to implement autolaunching (dbus#368, dbus#370; Ralf Habacker)

• Index dbus-arch-deps.h for API documentation when building out-of-tree
  (dbus!312, Marc-André Lureau)

• Silence xmlto warnings when building man pages
  (dbus!312, Marc-André Lureau)

• Fix build failure when checks are disabled but assertions are enabled
  (dbus#412, Johannes Kauffmann)

• Use C99 flexible arrays in the memory pool implementation for better
  support for modern compilers
  (dbus!343, dbus!344; Alex Richardson, Simon McVittie)

• Autotools build system fixes:
  · Don't treat --with-x or --with-x=yes as a request to disable X11,
    fixing a regression in 1.13.20. Instead, require X11 libraries and
    fail if they cannot be detected. (dbus!263, Lars Wendler)
  · When a CMake project uses an Autotools-built libdbus in a
    non-standard prefix, find dbus-arch-deps.h successfully
    (dbus#314, Simon McVittie)
  · Don't include generated XML catalog in source releases
    (dbus!317, Jan Tojnar)
  · Improve robustness of detecting gcc __sync atomic builtins
    (dbus!320, Alex Richardson)

• CMake build system fixes:
  · Detect endianness correctly, fixing interoperability with other D-Bus
    implementations on big-endian systems (dbus#375, Ralf Habacker)
  · Fix a race condition generating man pages and HTML documentation
    (dbus#381, Ralf Habacker)
  · When building for Unix, install session and system bus setup
    in the intended locations
    (dbus!267, dbus!297; Ralf Habacker, Alex Richardson)
  · Detect setresuid() and getresuid() (dbus!319, Alex Richardson)
  · Detect backtrace() on FreeBSD (dbus!281, Alex Richardson)
  · Don't include headers from parent directory (dbus!282, Alex Richardson)
  · Fix -Wunused-command-line-argument on FreeBSD
    (dbus!278, Alex Richardson)
  · Only add warning flags if the compiler supports them
    (dbus!276, Alex Richardson)
  · Distinguish between host and target TMPDIR when cross-compiling
    (dbus!279, Alex Richardson)
  · Improve compiler warning detection (dbus#387, Ralf Habacker)
  · Allow TEST_SOCKET_DIR to be overridden (dbus!295, Ralf Habacker)
  · Fix detection of atomic operations (dbus!306, Alex Richardson)
  · Use DWARF 2 instead of STABS for debug symbols on Windows, for
    compatibility with newer gcc versions (dbus!323, Marc-André Lureau)
  · Fix use of paths relative to the dbus project directory when dbus is
    vendored into a larger CMake project (dbus!332, Jordan Williams)

Tests and CI enhancements:

• Add an automated test for Windows autolaunching
  (dbus#235, Ralf Habacker)

• Avoid compiler warnings in test code
  (dbus#383, dbus!274, dbus!275; Simon McVittie, Ralf Habacker)

• Avoid LeakSanitizer warnings in test code
  (dbus!326, Simon McVittie)

• Speed up a particularly slow unit test by a factor of 30
  (dbus!328, Simon McVittie)

• On Unix, skip tests that switch uid if run in a container that is
  unable to do so, instead of failing (dbus#407, Simon McVittie)

• On Unix, consistently create test sockets in DBUS_TEST_SOCKET_DIR and
  not the build directory, allowing the build directory to be mounted with
  a non-POSIX filesystem (dbus!334, Alex Richardson)

• Gitlab-CI improvements
  (dbus#383, dbus#388, dbus!262, dbus!288, dbus!292, dbus!296, dbus!299,
  dbus!301;
  Ralf Habacker, Simon McVittie, Alex Richardson)

• Added FreeBSD Gitlab-CI build jobs
  (dbus!280, dbus!347; Alex Richardson)

• Use the latest MSYS2 packages for CI
  (Ralf Habacker, Simon McVittie)

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


More information about the dbus mailing list