Announcing dbus 1.11.14

Simon McVittie smcv at collabora.com
Thu Jun 29 21:35:35 UTC 2017


The “irrational fear of bees” release.

1.11.x is a development branch for the adventurous, which will
eventually lead to a 1.12.x stable branch.

https://dbus.freedesktop.org/releases/dbus/dbus-1.11.14.tar.gz
https://dbus.freedesktop.org/releases/dbus/dbus-1.11.14.tar.gz.asc
git tag: dbus-1.11.14
git branch: master

Dependencies:

• Expat >= 2.1.0 is always required
• libselinux >= 2.0.86 is required if SELinux support is enabled
• GLib >= 2.40 is required if full test coverage is enabled

Build-time configuration changes:

• We now use pkg-config to find libexpat in Autotools builds. This requires
  Expat 2.1.0 (March 2012) or later. In particular, this should remove the
  need to configure with LDFLAGS=-L/usr/local/lib on OpenBSD, which can
  itself cause compilation failures.

  As with all pkg-config-based configure checks, you can use
  PKG_CONFIG_PATH=/whatever/lib/pkgconfig to find expat.pc in a
  non-standard prefix, or EXPAT_CFLAGS="-I/whatever/include" and
  EXPAT_LIBS="-L/whatever/lib -lexpat" to avoid needing a .pc file
  at all.

  (fd.o #69801, Simon McVittie)

• Similarly, we now use pkg-config to find libselinux. Version 2.0.86
  is required due to the removal of explicit refcounting for SIDs.
  (fd.o #100912, Laurent Bigonville)

Behaviour changes:

• Previously, /etc/machine-id could be copied to /var/lib/dbus/machine-id
  as a side-effect of a sufficiently privileged process merely reading the
  machine ID. It is no longer copied as a side-effect of reading.
  Running dbus-uuidgen --ensure, which should be done after installing dbus,
  continues to copy /etc/machine-id to /var/lib/dbus/machine-id if the
  former exists and the latter does not.
  (fd.o #101257, Simon McVittie)

• The undocumented Verbose interface, and the GetAllMatchRules method on
  the undocumented Stats interface, must now be used via the object path
  /org/freedesktop/DBus. Previously, they existed on all object paths.
  (fd.o #101257, Simon McVittie)

• AddMatch() with a match rule containing eavesdrop='true' will now fail
  unless called by either the same user as the dbus-daemon, or Unix uid 0
  (root), matching the restrictions applied to the newer BecomeMonitor()
  method. On the session bus this has no practical effect. On the system
  bus this will prevent certain configurations that already did not
  work well in practice. (fd.o #101567, Simon McVittie)

Enhancements:

• D-Bus Specification version 0.31
  · Don't require implementation-specific search paths to be lowest
    priority
  · Correct regex syntax for optionally-escaped bytes in addresses so it
    includes hyphen-minus, forward slash and underscore as intended
  · Describe all message bus methods in the same section
  · Clarify the correct object path for method calls to the message bus
    (/org/freedesktop/DBus, DBUS_PATH_DBUS in the reference implementation)
  · Document that the message bus implements Introspectable, Peer and
    Properties
  · Add new Features and Interfaces properties for message bus
    feature-discovery
  · Add unix:dir=..., which resembles unix:tmpdir=... but never uses
    abstract sockets
  · Don't require eavesdrop='true' to be accepted from connections not
    sufficiently privileged to use it successfully
  · Formally deprecate eavesdropping in favour of BecomeMonitor
  (fd.o #99825, #100686, #100795, #101256, #101257, #101567;
  Simon McVittie, Tom Gundersen)

• Implement the Properties and Peer interfaces in dbus-daemon
  (fd.o #101257, Simon McVittie)

• New function dbus_try_get_local_machine_id() is like
  dbus_get_local_machine_id(), but returning a DBusError. Other code
  that needs the machine ID will now report a recoverable error (instead
  of logging to stderr and aborting) if no machine ID is available.
  Generating a machine ID is still considered to be a required part of
  installing dbus correctly. (fd.o #13194, Simon McVittie)

• Implement GetConnectionSELinuxSecurityContext("org.freedesktop.DBus")
  (fd.o #101315, Laurent Bigonville)

• Avoid deprecated API calls when using SELinux
  (fd.o #100912, Laurent Bigonville)

• Switch a test from the deprecated g_test_trap_fork() to
  g_test_trap_subprocess(), for Windows support and better robustness
  on Unix (fd.o #101362, Simon McVittie)

• On systemd systems, if ${localstatedir}/dbus/machine-id doesn't exist,
  instruct systemd-tmpfiles to make it a symbolic link to /etc/machine-id.
  This prevents the two files from going out of sync on stateless or live
  images without needing to run dbus-uuidgen, and supports older D-Bus
  implementations that do not necessarily read /etc/machine-id themselves.
  (fd.o #101570, Simon McVittie)

• Implement unix:dir=..., which resembles unix:tmpdir=... but never uses
  abstract sockets. This is preferable when used with Linux containers.
  (fd.o #101567, Simon McVittie)

Fixes:

• Fix a reference leak when blocking on a pending call on a connection
  that has been disconnected (fd.o #101481, Shin-ichi MORITA)

• Don't put timestamps in the Doxygen-generated documentation,
  or hard-code the build directory into builds with embedded tests,
  for reproducible builds (fd.o #100692, Simon McVittie)

• Fix some integration test issues (fd.o #100686, Simon McVittie)

• Fix memory leaks in the tests (fd.o #101257, Simon McVittie)

• If we somehow get an autolaunch address with multiple semicolon-separated
  components, and they don't work, don't invalidly "pile up" errors
  (fd.o #101257, Simon McVittie)

Documentation:

• Update git URIs in HACKING document to sync up with cgit.freedesktop.org
  (fd.o #100715, Simon McVittie)

-- 
Simon McVittie
Collabora Ltd.


More information about the dbus mailing list