Update NEWS
[platform/upstream/dbus.git] / NEWS
1 dbus 1.12.18 (UNRELEASED)
2 =========================
3
4 Fixes:
5
6 • Fix a crash when the dbus-daemon is terminated while one or more
7   monitors are active (dbus#291, dbus!140; Simon McVittie)
8
9 • The dbus-send(1) man page now documents --bus and --peer instead of
10   the old --address synonym for --peer, which has been deprecated since
11   the introduction of --bus and --peer in 1.7.6
12   (fd.o #48816, dbus!115; Chris Morin)
13
14 • Fix a wrong environment variable name in dbus-daemon(1)
15   (dbus#275, dbus!122; Mubin, Philip Withnall)
16
17 • Fix formatting of dbus_message_append_args example
18   (dbus!126, Felipe Franciosi)
19
20 • When building with CMake, cope with libX11 in a non-standard location
21   (dbus!129, Tuomo Rinne)
22
23 dbus 1.12.16 (2019-06-11)
24 =========================
25
26 The “tree cat” release.
27
28 Security fixes:
29
30 • CVE-2019-12749: Do not attempt to carry out DBUS_COOKIE_SHA1
31   authentication for identities that differ from the user running the
32   DBusServer. Previously, a local attacker could manipulate symbolic
33   links in their own home directory to bypass authentication and connect
34   to a DBusServer with elevated privileges. The standard system and
35   session dbus-daemons in their default configuration were immune to this
36   attack because they did not allow DBUS_COOKIE_SHA1, but third-party
37   users of DBusServer such as Upstart could be vulnerable.
38   Thanks to Joe Vennix of Apple Information Security.
39   (dbus#269, Simon McVittie)
40
41 dbus 1.12.14 (2019-05-17)
42 =========================
43
44 The “reclaimed floorboards” release.
45
46 Enhancements:
47
48 • Raise soft fd limit to match hard limit, even if unprivileged.
49   This makes session buses with many clients, or with clients that make
50   heavy use of fd-passing, less likely to suffer from fd exhaustion.
51   (dbus!103, Simon McVittie)
52
53 Fixes:
54
55 • If a privileged dbus-daemon has a hard fd limit greater than 64K, don't
56   reduce it to 64K, ensuring that we can put back the original fd limits
57   when carrying out traditional (non-systemd) activation. This fixes a
58   regression with systemd >= 240 in which system services inherited
59   dbus-daemon's hard and soft limit of 64K fds, instead of the intended
60   soft limit of 1K and hard limit of 512K or 1M.
61   (dbus!103, Debian#928877; Simon McVittie)
62
63 • Fix build failures caused by an AX_CODE_COVERAGE API change in newer
64   autoconf-archive versions (dbus#249, dbus!88; Simon McVittie)
65
66 • Fix build failures with newer autoconf-archive versions that include
67   AX_-prefixed shell variable names (dbus#249, dbus!86; Simon McVittie)
68
69 • Parse section/group names in .service files according to the syntax
70   from the Desktop Entry Specification, rejecting control characters
71   and non-ASCII in section/group names (dbus#208, David King)
72
73 • Fix various -Wlogical-op issues that cause build failure with newer
74   gcc versions (dbus#225, dbus!109; David King)
75
76 • Don't assume we can set permissions on a directory, for the benefit of
77   MSYS and Cygwin builds (dbus#216, dbus!110; Simon McVittie)
78
79 • Don't overwrite PKG_CONFIG_PATH and related environment variables when
80   the pkg-config-based version of DBus1Config is used in a CMake project
81   (dbus#267, dbus!96; Clemens Lang)
82
83 dbus 1.12.12 (2018-12-04)
84 =========================
85
86 The “draconic disciple” release.
87
88 dbus version control is now hosted on freedesktop.org's Gitlab
89 installation, and bug reports and feature requests have switched from
90 Bugzilla bugs (indicated by "fd.o #nnn") to Gitlab issues ("dbus#nnn")
91 and merge requests ("dbus!nnn").
92
93 Enhancements:
94
95 • Reference the freedesktop.org Code of Conduct (Simon McVittie)
96
97 Fixes:
98
99 • Stop the dbus-daemon leaking memory (an error message) if delivering
100   the message that triggered auto-activation is forbidden. This is
101   technically a denial of service because the dbus-daemon will
102   run out of memory eventually, but it's a very slow and noisy one,
103   because all the rejected messages are also very likely to have
104   been logged to the system log, and its scope is typically limited by
105   the finite number of activatable services available.
106   (dbus#234, Simon McVittie)
107
108 • Remove __attribute__((__malloc__)) attribute on dbus_realloc(),
109   which does not meet the criteria for that attribute in gcc 4.7+,
110   potentially leading to miscompilation (fd.o #107741, Simon McVittie)
111
112 • Fix some small O(1) memory leaks (fd.o #107320, Simon McVittie)
113
114 • Fix printf formats for pointer-sized integers on 64-bit Windows
115   (fd.o #105662, Ralf Habacker)
116
117 • Always use select()-based poll() emulation on Darwin-based OSs
118   (macOS, etc.) and on Interix, similar to what libcurl does
119   (dbus#232, dbus!19; Simon McVittie)
120
121 • Extend a test timeout to avoid spurious failures in CI
122   (dbus!26, Simon McVittie)
123
124 Tests and CI:
125
126 • Add Travis-CI builds for 64-bit Windows using mingw-w64
127   (fd.o #105662, Ralf Habacker)
128
129 • Add Gitlab-CI integration (fd.o #108177, Simon McVittie)
130
131 dbus 1.12.10 (2018-08-02)
132 =========================
133
134 The “beam deflection” release.
135
136 Fixes:
137
138 • Prevent reading up to 3 bytes beyond the end of a truncated message.
139   This could in principle be an information leak or denial of service
140   on the system bus, but is not believed to be exploitable to crash
141   the system bus or leak interesting information in practice.
142   (fd.o #107332, Simon McVittie)
143
144 • Fix build with gcc 8 -Werror=cast-function-type
145   (fd.o #107349, Simon McVittie)
146
147 • Fix warning from gcc 8 about suspicious use of strncpy() when
148   populating struct sockaddr_un (fd.o #107350, Simon McVittie)
149
150 • Fix a minor memory leak when a DBusServer listens on a new address
151   (fd.o #107194, Simon McVittie)
152
153 • Fix an invalid NULL argument to rmdir() if a nonce-tcp DBusServer
154   runs out of memory (fd.o #107194, Simon McVittie)
155
156 • Don't use misleading errno-derived error names if getaddrinfo() or
157   getnameinfo() fails with a code other than EAI_SYSTEM
158   (fd.o #106395, Simon McVittie)
159
160 • Skip tests that require working TCP if we are in a container environment
161   where 127.0.0.1 cannot be resolved (fd.o #106812, Simon McVittie)
162
163 dbus 1.12.8 (2018-04-30)
164 ========================
165
166 The “golden super-velociraptor” release.
167
168 Enhancements:
169
170 • The Devhelp documentation index is now in version 2 format
171   (fd.o #106186, Simon McVittie)
172
173 • Give the dbus-daemon man page some scarier warnings about
174   <allow_anonymous/> and non-local TCP, which are insecure and should
175   not be used, particularly for the standard system and session buses
176   (fd.o #106004, Simon McVittie)
177
178 Fixes:
179
180 • Fix installation of Ducktype documentation with newer yelp-build
181   versions (fd.o #106171, Simon McVittie)
182
183 dbus 1.12.6 (2018-03-01)
184 ========================
185
186 The “just the one swan, actually” release.
187
188 Fixes:
189
190 • Increase system dbus-daemon's RLIMIT_NOFILE rlimit before it drops
191   privileges, because it won't have permission afterwards. This fixes a
192   regression in dbus 1.10.18 and 1.11.0 which made the standard system bus
193   more susceptible to deliberate or accidental denial of service.
194   (fd.o #105165, David King)
195
196 dbus 1.12.4 (2018-02-08)
197 ========================
198
199 The “Stria Campania 115” release.
200
201 Fixes:
202
203 • When iterating the DBusConnection while blocking on a pending call,
204   don't wait for I/O if that pending call already has a result; and make
205   sure that whether it has a result is propagated in a thread-safe way.
206   This prevents certain multi-threaded calling patterns from blocking
207   until their timeout even when they should have succeeded sooner.
208   (fd.o #102839; Manish Narang, Michael Searle)
209
210 • Report the correct error if OOM is reached while trying to listen
211   on a TCP socket (fd.o #89104, Simon McVittie)
212
213 • Fix assertion failures in recovery from OOM while setting up a
214   DBusServer (fd.o #89104, Simon McVittie)
215
216 • Add a missing space to a warning message (fd.o #103729, Thomas Zajic)
217
218 • Expand ${bindir} correctly when pkg-config is asked for dbus_daemondir
219   (fd.o #104265, Benedikt Heine)
220
221 • On Linux systems with systemd < 237, if ${localstatedir}/dbus doesn't
222   exist, create it before trying to create ${localstatedir}/dbus/machine-id
223   (fd.o #104577, Chris Lesiak)
224
225 • Fix escaping in dbus-api-design document (fd.o #104925, Philip Withnall)
226
227 dbus 1.12.2 (2017-11-13)
228 ========================
229
230 The “spider pumpkin” release.
231
232 Enhancements:
233
234 • Log a warning if a new connection cannot be accepted due to an
235   out-of-memory condition or failure to identify its AppArmor or
236   SELinux context (fd.o #103592, Simon McVittie)
237
238 Fixes:
239
240 • Make use of $(MKDIR_P) compatible with install-sh, fixing build when a
241   GNU-compatible `mkdir -p` is not available (fd.o #103521, ilovezfs)
242
243 • When building for Windows with Autotools, avoid `echo -e`, fixing
244   cross-compilation on non-GNU platforms like macOS
245   (fd.o #103493, Tony Theodore)
246
247 • Fix crashes in the server side of the nonce-tcp: transport under
248   various error conditions. This transport should normally only be used
249   on Windows, where AF_UNIX sockets are unavailable; the unix: transport
250   is the only one recommended for production use on Unix platforms.
251   (fd.o #103597, Simon McVittie)
252
253 Internal changes:
254
255 • Improve test coverage on Travis-CI (Simon McVittie)
256
257 dbus 1.12.0 (2017-10-30)
258 ========================
259
260 The “gingerbread skull” release.
261
262 1.12.x is a new stable branch, recommended for use in OS
263 distributions.
264
265 Summary of major changes between 1.10.x and 1.12.0
266 --------------------------------------------------
267
268 Dependencies:
269
270 • Expat >= 2.1.0 is required.
271 • GLib >= 2.40 is required if full test coverage is enabled.
272 • [Linux] libselinux >= 2.0.86 is required if SELinux support is
273   enabled.
274 • [Unix] dbus now requires an <inttypes.h> that defines C99 constants
275   such as PRId64 and PRIu64, except when building for Windows.
276 • [Autotools] Building from git (but not from tarballs) with Autotools
277   now requires macros from the GNU Autoconf Archive.
278 • [CMake] Builds done using CMake now require CMake 3.0.2.
279
280 Build-time configuration changes:
281
282 • Expat is now found using pkg-config. See the release notes for
283   1.11.14.
284 • The --disable-compiler-optimisations and --enable-compiler-coverage
285   options no longer exist.  See the release notes for 1.11.4 and 1.11.8.
286 • [Unix] The --enable-abstract-sockets and --disable-abstract-sockets
287   options no longer exist. See the release notes for 1.11.20.
288 • [Unix] Flag files in /var/run/console/${username} are no longer
289   checked for at_console by default. See the release notes for 1.11.18.
290 • [Unix, Cygwin] Init scripts are no longer provided by upstream dbus,
291   and packagers will now need to add these downstream (most already do).
292   See the release notes for 1.11.18.
293 • [Unix] The process ID file no longer has a different default location
294   on Red Hat derivatives. See the release notes for 1.11.18.
295 • [Unix] ${runstatedir} is now independent of ${localstatedir} with
296   recent Autotools versions. See the release notes for 1.11.16.
297 • [Windows] The WINDRES variable is no longer used. See the release
298   notes for 1.11.22.
299
300 Deprecations:
301
302 • Eavesdropping is officially deprecated in favour of BecomeMonitor.
303   See the release notes for spec version 0.31 (in dbus 1.11.14).
304 • [Unix] Flag files in /var/run/console/${username} are deprecated.
305   See the release notes for 1.11.18.
306
307 New APIs:
308
309 • <allow> and <deny> rules in dbus-daemon configuration can now
310   include send_broadcast="true", send_broadcast="false",
311   max_unix_fds="N", min_unix_fds="N" (for some integer N).
312   See the release notes for 1.11.18.
313 • dbus_try_get_local_machine_id() is like
314   dbus_get_local_machine_id(), but returns a DBusError.
315 • New APIs around DBusMessageIter to simplify cleanup.
316   See the release notes for 1.11.16.
317 • The message bus daemon now implements the standard Introspectable,
318   Peer and Properties interfaces. See the release notes for
319   dbus 1.11.14 and spec version 0.31.
320 • DTDs for introspection XML and bus configuration are installed.
321 • dbus can be compiled to be relocatable, making it more suitable for
322   binary bundling with other software. On Windows, this is on by
323   default.
324 • [Unix] A new unix:dir=… address family resembles unix:tmpdir=… but
325   never uses Linux abstract sockets, which is advantageous for
326   containers. On non-Linux it is equivalent to unix:tmpdir=….
327   See the release notes for dbus 1.11.14 and spec version 0.31.
328 • [Unix] New option "dbus-launch --exit-with-x11".
329 • [Unix] Session managers can create transient .service files in
330   $XDG_RUNTIME_DIR/dbus-1/services. See the release notes for 1.11.12.
331 • [Unix] A sysusers.d snippet can create the messagebus user on-demand.
332
333 Miscellaneous behaviour changes:
334
335 • [Unix] The session bus now logs to syslog if it was started by
336   dbus-launch.
337 • [Unix] Internal warnings are logged to syslog if configured.
338 • [Unix] Exceeding an anti-DoS limit is logged to syslog if configured,
339   or to stderr.
340
341 Changes since 1.11.22 release candidate
342 ---------------------------------------
343
344 Standard stable-branch changes:
345
346 • Disable warnings about use of deprecated functions (Simon McVittie)
347
348 Fixes:
349
350 • Don't distribute files generated by ./configure in the source tarball
351   (fd.o #103420, Simon McVittie)
352
353 Internal changes:
354
355 • Remove some unused files from the git repository
356   (fd.o #103420, Simon McVittie)
357
358 D-Bus 1.11.22 (2017-10-23)
359 ==========================
360
361 The “fire surface” release.
362
363 This is the first release-candidate for the 1.12.0 stable release.
364
365 Build-time configuration changes:
366
367 • When building for Windows with Autotools, setting the WINDRES variable
368   no longer works to select a non-standard resource compiler. Use
369   libtool's standard RC variable instead, for example
370   "./configure RC=i686-w64-mingw32-windres"
371
372 Dependencies:
373
374 • Builds done using CMake now require CMake 3.0.2.
375
376 Enhancements:
377
378 • When building for Windows, improve quality of metadata in
379   libdbus-1-3.dll (fd.o #103015, Ralf Habacker)
380
381 Fixes:
382
383 • Fix a typo "uint 16" in dbus-send(1) man page
384   (fd.o #103075, David King)
385
386 • When building for Windows, libdbus-1-3.dll always includes version
387   information. Previously, this was missing if using CMake and any
388   non-MSVC compiler. (fd.o #103015, Ralf Habacker)
389
390 • Fix the build with MSVC, which regressed with the #102558 fix in
391   1.11.20. (fd.o #102558, Ralf Habacker)
392
393 Internal changes:
394
395 • Simplify Windows resource embedding
396   (fd.o #103015, Simon McVittie)
397
398 D-Bus 1.11.20 (2017-10-03)
399 ==
400
401 The “wraith stun” release.
402
403 Build-time configuration changes:
404
405 • The --enable-abstract-sockets and --disable-abstract-sockets options
406   no longer exist. Support for Linux's abstract AF_UNIX sockets is now
407   unconditionally enabled on Linux and disabled everywhere else.
408   (fd.o #34905, Simon McVittie)
409
410 Enhancements:
411
412 • Make slower tests less likely to time out, and improve diagnostics if
413   tests do time out (fd.o #103009, Simon McVittie)
414
415 • On Windows, don't compile an unused stub implementation of
416   _dbus_set_signal_handler() (fd.o #103010, Simon McVittie)
417
418 Fixes:
419
420 • Be more careful to save and restore errno in POSIX async signal
421   handlers (fd.o #103010, Simon McVittie)
422
423 • On Windows, embed a manifest in dbus-update-activation-environment.exe
424   so that the heuristics used for UAC do not assume it needs elevated
425   privileges due to its name containing "update"
426   (fd.o #102558, Ralf Habacker)
427
428 • On Windows with Automake, embed version information in libdbus-1,
429   as was meant to happen in all versions since 2009
430   (fd.o #103015, Simon McVittie)
431
432 D-Bus 1.11.18 (2017-09-25)
433 ==
434
435 The “vampire conquistador” release.
436
437 Build-time configuration changes:
438
439 • By default, dbus-daemon on Unix no longer checks for flag files
440   /var/run/console/${username} created by the obsolete pam_console and
441   pam_foreground PAM modules when deciding whether ${username} is
442   currently at the console. The old default behaviour can be restored
443   by specifying --with-console-auth-dir=/var/run/console in the
444   recommended Autotools build system, or
445   -DDBUS_CONSOLE_AUTH_DIR=/var/run/console in CMake. This feature is
446   now deprecated, and will be removed in dbus 1.13 unless feedback via
447   fd.o #101629 indicates that this would be problematic.
448   (fd.o #101629, Simon McVittie)
449
450 • LSB-style init scripts for Red Hat and Slackware, and a non-LSB init
451   script for Cygwin, are no longer provided in the upstream dbus
452   source. We recommend that distributors who support non-systemd service
453   management should maintain their own init scripts or other service
454   manager integration as part of their downstream packaging, similar to
455   the way Debian distributes a Debian-specific LSB init script for dbus.
456
457   The systemd unit continues to be maintained as part of the upstream
458   dbus source, because it receives regular testing and maintenance.
459
460   (fd.o #101706, Simon McVittie)
461
462 • The process ID file created by the system bus is no longer influenced
463   by the --with-init-scripts=redhat configure option or the presence of
464   /etc/redhat-release at build time. If your OS's init script or other
465   service management relies on the Red Hat-style pid file, it can be
466   restored by specifying --with-system-pid-file=/run/messagebus.pid at
467   configure time or using the <pidfile> directive in bus configuration.
468
469   Note that the upstream-supplied systemd unit runs dbus-daemon with
470   the --nopidfile option, so it does not normally write a pid file,
471   regardless of whether the OS is Red-Hat-derived or not.
472
473   (fd.o #101706, Simon McVittie)
474
475 Enhancements:
476
477 • <allow> and <deny> rules in dbus-daemon configuration can now
478   include send_broadcast="true" or send_broadcast="false", which make
479   the rule only match broadcast signals, or only match messages that
480   are not broadcast signals, respectively.
481   (fd.o #29853, Simon McVittie)
482
483 • <allow> and <deny> rules can now be configured to apply only to
484   messages with or without Unix file descriptors attached. This would
485   typically be used in rules like these:
486   <allow send_destination="..." max_unix_fds="0"/>
487   <deny send_destination="..." min_unix_fds="1"/>
488   <deny receive_sender="..." min_unix_fds="1"/>
489   but can also be used to set a nonzero upper limit on the number of
490   file descriptors:
491   <allow send_destination="..." max_unix_fds="4"/>
492   (fd.o #101848, Simon McVittie)
493
494 • On Unix platforms, the DBUS_COOKIE_SHA1 authentication mechanism
495   now respects the HOME environment variable on the client side, and
496   on the server side when the uid attempting to connect is the same
497   as the uid of the server. This allows the automated tests to pass in
498   environments where the user's "official" home directory in /etc/passwd
499   is nonexistent, such as Debian autobuilders.
500   (fd.o #101960, Simon McVittie)
501
502 Fixes:
503
504 • When parsing dbus-daemon configuration, tell Expat not to use
505   cryptographic-quality entropy as a salt for its hash tables: we trust
506   the configuration files, so we are not concerned about algorithmic
507   complexity attacks via hash table collisions. This prevents
508   dbus-daemon --system from holding up the boot process (and causing
509   early-boot system services like systemd, logind, networkd to time
510   out) on entropy-starved embedded systems.
511   (fd.o #101858, Simon McVittie)
512
513 • Avoid a -Werror=declaration-after-statement build failure on Solaris
514   (fd.o #102145, Alan Coopersmith)
515
516 • On Unix platform, drop DBUS_SYSTEM_LOG_INFO messages from LOG_NOTICE
517   to LOG_INFO, matching how we use this log level in practice
518   (fd.o #102686, Simon McVittie)
519
520 D-Bus 1.11.16 (2017-07-27)
521 ==
522
523 The “south facing garden” release.
524
525 Build-time configuration changes:
526
527 • The Autotools build system now supports varying ${runstatedir}
528   independently of ${localstatedir}, if using an Autoconf version
529   that has that feature; version 2.70 will eventually have this, but
530   many Linux distributions add it to version 2.69 as a patch.
531   A typical use is to set prefix=/usr, sysconfdir=/etc, localstatedir=/var
532   and runstatedir=/run. (fd.o #101569, Simon McVittie)
533
534 Enhancements:
535
536 • New APIs DBUS_MESSAGE_ITER_INIT_CLOSED, dbus_message_iter_init_closed()
537   and dbus_message_iter_abandon_container_if_open() simplify the
538   single-exit-point ("goto out") style of resource cleanup. The API
539   documentation around DBusMessageIter and containers has also been
540   clarified. (fd.o #101568, Simon McVittie)
541
542 Fixes:
543
544 • Fix the implementation of re-enabling a timeout (again) so that its
545   countdown is always restarted as intended. (fd.o #95619,
546   Michal Koutný)
547
548 • Make the dbus-daemon's Properties interface, as introduced in 1.11.14,
549   available to all users on the system bus (fd.o #101700, Simon McVittie)
550
551 • dbus_message_iter_append_basic() no longer leaks memory if it fails to
552   append a file descriptor to a message. (fd.o #101568, Simon McVittie)
553
554 • dbus_message_iter_open_container() no longer leaks memory if it runs out
555   of memory. (fd.o #101568, Simon McVittie)
556
557 • dbus_message_append_args_valist() no longer leaks memory if given an
558   unsupported type. This situation is still considered to be a programming
559   error which needs to be corrected by the user of libdbus.
560   (fd.o #101568, Simon McVittie)
561
562 • dbus_message_iter_append_basic() and dbus_message_iter_open_container()
563   will no longer report that their arguments were invalid if they run out
564   of memory at exactly the wrong time. (fd.o #101568, Simon McVittie)
565
566 • Ensure that tests fail if they would otherwise have tried to connect to
567   the real session bus (fd.o #101698, Simon McVittie)
568
569 • Make build-time tests cope with finding Python 3, but not Python 2
570   (fd.o #101716, Simon McVittie)
571
572 Internal changes relevant to dbus developers:
573
574 • DBusVariant is a new mechanism to copy single values from a message into
575   a buffer without copying the entire message (fd.o #101568, Simon McVittie)
576
577 • DBUS_SYSTEM_LOG_FATAL has been replaced by DBUS_SYSTEM_LOG_ERROR.
578   Logging an ERROR message does not make the process exit; the caller
579   is responsible for calling abort() or exit(), whichever is more appropriate.
580   (fd.o #101568, Simon McVittie)
581
582 • Better test coverage (fd.o #101568, Simon McVittie)
583
584 D-Bus 1.11.14 (2017-06-29)
585 ==
586
587 The “irrational fear of bees” release.
588
589 Dependencies:
590
591 • Expat >= 2.1.0 is always required
592 • libselinux >= 2.0.86 is required if SELinux support is enabled
593 • GLib >= 2.40 is required if full test coverage is enabled
594
595 Build-time configuration changes:
596
597 • We now use pkg-config to find libexpat in Autotools builds. This requires
598   Expat 2.1.0 (March 2012) or later. In particular, this should remove the
599   need to configure with LDFLAGS=-L/usr/local/lib on OpenBSD, which can
600   itself cause compilation failures.
601
602   As with all pkg-config-based configure checks, you can use
603   PKG_CONFIG_PATH=/whatever/lib/pkgconfig to find expat.pc in a
604   non-standard prefix, or EXPAT_CFLAGS="-I/whatever/include" and
605   EXPAT_LIBS="-L/whatever/lib -lexpat" to avoid needing a .pc file
606   at all.
607
608   (fd.o #69801, Simon McVittie)
609
610 • Similarly, we now use pkg-config to find libselinux. Version 2.0.86
611   is required due to the removal of explicit refcounting for SIDs.
612   (fd.o #100912, Laurent Bigonville)
613
614 Behaviour changes:
615
616 • Previously, /etc/machine-id could be copied to /var/lib/dbus/machine-id
617   as a side-effect of a sufficiently privileged process merely reading the
618   machine ID. It is no longer copied as a side-effect of reading.
619   Running dbus-uuidgen --ensure, which should be done after installing dbus,
620   continues to copy /etc/machine-id to /var/lib/dbus/machine-id if the
621   former exists and the latter does not.
622   (fd.o #101257, Simon McVittie)
623
624 • The undocumented Verbose interface, and the GetAllMatchRules method on
625   the undocumented Stats interface, must now be used via the object path
626   /org/freedesktop/DBus. Previously, they existed on all object paths.
627   (fd.o #101257, Simon McVittie)
628
629 • AddMatch() with a match rule containing eavesdrop='true' will now fail
630   unless called by either the same user as the dbus-daemon, or Unix uid 0
631   (root), matching the restrictions applied to the newer BecomeMonitor()
632   method. On the session bus this has no practical effect. On the system
633   bus this will prevent certain configurations that already did not
634   work well in practice. (fd.o #101567, Simon McVittie)
635
636 Enhancements:
637
638 • D-Bus Specification version 0.31
639   · Don't require implementation-specific search paths to be lowest
640     priority
641   · Correct regex syntax for optionally-escaped bytes in addresses so it
642     includes hyphen-minus, forward slash and underscore as intended
643   · Describe all message bus methods in the same section
644   · Clarify the correct object path for method calls to the message bus
645     (/org/freedesktop/DBus, DBUS_PATH_DBUS in the reference implementation)
646   · Document that the message bus implements Introspectable, Peer and
647     Properties
648   · Add new Features and Interfaces properties for message bus
649     feature-discovery
650   · Add unix:dir=..., which resembles unix:tmpdir=... but never uses
651     abstract sockets
652   · Don't require eavesdrop='true' to be accepted from connections not
653     sufficiently privileged to use it successfully
654   · Formally deprecate eavesdropping in favour of BecomeMonitor
655   (fd.o #99825, #100686, #100795, #101256, #101257, #101567;
656   Simon McVittie, Tom Gundersen)
657
658 • Implement the Properties and Peer interfaces in dbus-daemon
659   (fd.o #101257, Simon McVittie)
660
661 • New function dbus_try_get_local_machine_id() is like
662   dbus_get_local_machine_id(), but returning a DBusError. Other code
663   that needs the machine ID will now report a recoverable error (instead
664   of logging to stderr and aborting) if no machine ID is available.
665   Generating a machine ID is still considered to be a required part of
666   installing dbus correctly. (fd.o #13194, Simon McVittie)
667
668 • Implement GetConnectionSELinuxSecurityContext("org.freedesktop.DBus")
669   (fd.o #101315, Laurent Bigonville)
670
671 • Avoid deprecated API calls when using SELinux
672   (fd.o #100912, Laurent Bigonville)
673
674 • Switch a test from the deprecated g_test_trap_fork() to
675   g_test_trap_subprocess(), for Windows support and better robustness
676   on Unix (fd.o #101362, Simon McVittie)
677
678 • On systemd systems, if ${localstatedir}/dbus/machine-id doesn't exist,
679   instruct systemd-tmpfiles to make it a symbolic link to /etc/machine-id.
680   This prevents the two files from going out of sync on stateless or live
681   images without needing to run dbus-uuidgen, and supports older D-Bus
682   implementations that do not necessarily read /etc/machine-id themselves.
683   (fd.o #101570, Simon McVittie)
684
685 • Implement unix:dir=..., which resembles unix:tmpdir=... but never uses
686   abstract sockets. This is preferable when used with Linux containers.
687   (fd.o #101567, Simon McVittie)
688
689 Fixes:
690
691 • Fix a reference leak when blocking on a pending call on a connection
692   that has been disconnected (fd.o #101481, Shin-ichi MORITA)
693
694 • Don't put timestamps in the Doxygen-generated documentation,
695   or hard-code the build directory into builds with embedded tests,
696   for reproducible builds (fd.o #100692, Simon McVittie)
697
698 • Fix some integration test issues (fd.o #100686, Simon McVittie)
699
700 • Fix memory leaks in the tests (fd.o #101257, Simon McVittie)
701
702 • If we somehow get an autolaunch address with multiple semicolon-separated
703   components, and they don't work, don't invalidly "pile up" errors
704   (fd.o #101257, Simon McVittie)
705
706 Documentation:
707
708 • Update git URIs in HACKING document to sync up with cgit.freedesktop.org
709   (fd.o #100715, Simon McVittie)
710
711 D-Bus 1.11.12 (2017-04-07)
712 ==
713
714 The “it's something humans do” release.
715
716 Enhancements:
717
718 • The session dbus-daemon now supports transient .service files
719   in $XDG_RUNTIME_DIR/dbus-1/services. Unlike the other standard
720   service directories, this directory is not monitored with inotify
721   or similar, and the service files must be named exactly
722   ${bus_name}.service. (fd.o #99825, Simon McVittie)
723
724 • dbus can be configured with --enable-relocation when building with
725   Autotools, or with -DDBUS_RELOCATABLE=ON when building with cmake,
726   to make the pkg-config metadata relocatable. This is useful for
727   non-standard prefixes, and in particular for Windows installations.
728   However, it is not recommended for system-wide installations into
729   /usr, because it interferes with pkg-config's ability to filter out
730   compiler default linker directories.
731
732   With Autotools, the default is --enable-relocation when building
733   for Windows or --disable-relocation otherwise. With CMake, the default
734   is -DDBUS_RELOCATABLE=ON.
735
736   (fd.o #99721; Ralf Habacker, Simon McVittie)
737
738 • Users of CMake ≥ 2.6 can now link to libdbus without providing their
739   own FindDBus.cmake macros, whether dbus was compiled with Autotools
740   or with CMake. See the end of README.cmake for more information.
741   (fd.o #99721; Ralf Habacker, Simon McVittie)
742
743 Fixes:
744
745 • Always read service file directories in the intended order
746   (fd.o #99825, Simon McVittie)
747
748 • When tests are skipped, don't try to kill nonexistent process 0
749   (fd.o #99825, Simon McVittie)
750
751 • Avoid valgrind false positives (fd.o #88808, Philip Withnall)
752
753 • Fix a harmless read overflow and some memory leaks in a unit test
754   (fd.o #100568, Philip Withnall)
755
756 • Fix some typos in test code
757   (fd.o #99999, Coverity #141876, #141877; Philip Withnall)
758
759 • Clarify the roles of /etc/dbus-1/s*.d and /usr/share/dbus-1/s*.d
760   in documentation (fd.o #99901, Philip Withnall)
761
762 • Fix and enable compiler warnings related to -Wswitch
763   (fd.o #98191; Thomas Zimmermann, Simon McVittie)
764
765 • Fix writing off the end of a fd_set when testing with valgrind
766   (fd.o #99839, Philip Withnall)
767
768 D-Bus 1.11.10 (2017-02-16)
769 ==
770
771 The “purple hair gives you telekinesis?” release.
772
773 Dependencies:
774
775 • AppArmor support requires at least libapparmor 2.8.95, reduced
776   from 2.10 in previous versions. One test requires 2.10 and is
777   skipped if building with an older version.
778
779 Enhancements:
780
781 • Do the Travis-CI build in Docker containers for Ubuntu LTS, Debian
782   stable and Debian testing in addition to the older Ubuntu that is
783   the default (fd.o #98889, Simon McVittie)
784
785 • Avoid some deprecated CMake functions (fd.o #99586, Ralf Habacker)
786
787 • Silence many -Wswitch-enum and -Wswitch-default warnings
788   (fd.o #98191; Thomas Zimmermann, Simon McVittie)
789
790 • Install a sysusers.d snippet so `dbus-daemon --system` can be used
791   with an unpopulated /etc (fd.o #99162, Lennart Poettering)
792
793 • Install pkg-config metadata on Unix even if building with CMake
794   (fd.o #99752, Ralf Habacker)
795
796 • Exclude auth mechanisms from REJECTED message if they are supported
797   in the code but but configured to be disallowed (fd.o #99621,
798   Ralf Habacker)
799
800 Fixes:
801
802 • Prevent symlink attacks in the nonce-tcp transport on Unix that could
803   allow an attacker to overwrite a file named "nonce", in a directory
804   that the user running dbus-daemon can write, with a random value
805   known only to the user running dbus-daemon. This is unlikely to be
806   exploitable in practice, particularly since the nonce-tcp transport
807   is really only useful on Windows.
808
809   On Unix systems we strongly recommend using only the unix: and systemd:
810   transports, together with EXTERNAL authentication. These are the only
811   transports and authentication mechanisms enabled by default.
812
813   (fd.o #99828, Simon McVittie)
814
815 • Avoid symlink attacks in the "embedded tests", which are not enabled
816   by default and should never be enabled in production builds of dbus.
817   (fd.o #99828, Simon McVittie)
818
819 • Fix the implementation of re-enabling a timeout so that its
820   countdown is restarted as intended, instead of continually
821   decreasing. (fd.o #95619; Michal Koutný, Simon McVittie)
822
823 • When receiving a message with file descriptors, do not start reading
824   the beginning of the next message, so that only one such message
825   is processed at a time. In conjunction with the fix for #95619
826   this means that processes sending many file descriptors, such as
827   systemd-logind on a system that receives very rapid ssh connections,
828   are not treated as abusive and kicked off the bus. Revert the previous
829   workaround that special-cased uid 0.
830   (fd.o #95263, LP#1591411; Simon McVittie)
831
832 • Do not require TMPDIR, TEMP or TMP to be set when cross-compiling
833   for Windows with CMake (fd.o #99586, Ralf Habacker)
834
835 • Do not set Unix-specific variables when targeting Windows
836   (fd.o #99586, Ralf Habacker)
837
838 • Install Unix executables to ${CMAKE_INSTALL_PREFIX}/bin as intended,
839   not ${CMAKE_INSTALL_PREFIX}/lib (fd.o #99752, Ralf Habacker)
840
841 • Use relative install locations in CMake on Unix to respect DESTDIR,
842   and use GNU-style install layout (fd.o #99721, #99752; Ralf Habacker)
843
844 • Install dbus-arch-deps.h correctly when using CMake
845   (fd.o #99586, #99721; Ralf Habacker)
846
847 • Improve argument validation for `dbus-test-tool spam`
848   (ffd.o #99693, Coverity #54759; Philip Withnall)
849
850 • Don't shift by a negative integer if a hash table becomes monstrously
851   large (fd.o #99641, Coverity #54682; Philip Withnall)
852
853 • Don't leak LSM label if dbus-daemon runs out of memory when dealing with
854   a new connection (fd.o #99612, Coverity #141058; Philip Withnall)
855
856 • Remove an unnecessary NULL check
857   (fd.o #99642, Coverity #141062; Philip Withnall)
858
859 • Improve error handling in unit tests and dbus-send
860   (fd.o #99643, #99694, #99712, #99722, #99723, #99724, #99758,
861   #99759, #99793, Coverity #54688, #54692, #54693, #54697, #54701,
862   #54710, #54711, #54714, #54715, #54718, #54721, #54724, #54726,
863   #54730, #54740, #54822, #54823, #54824, #54825; Philip Withnall)
864
865 • Do not print verbose messages' timestamps to stderr if the actual message
866   has been redirected to the Windows debug port (fd.o #99749, Ralf Habacker)
867
868 D-Bus 1.11.8 (2016-11-28)
869 ==
870
871 The “panics in the face of breakfast foods” release.
872
873 Build-time configuration:
874
875 • The new --enable-debug configure option provides an easy way to
876   enable debug symbols, disable optimization and/or enable profiling.
877
878 • The --enable-compile-warnings configure option can be used to control
879   compiler warnings.
880
881 • The --disable-compiler-optimisations configure option is no longer
882   supported. Use --enable-debug=yes or CFLAGS=-O0 instead.
883
884 Enhancements:
885
886 • D-Bus Specification version 0.30
887   · Define the jargon term "activation" more clearly
888   · Define the jargon term "auto-starting", which is one form of activation
889   · Document the optional SystemdService key in service files
890   · Use versioned interface and bus names in most examples
891   · Clarify intended behaviour of Properties.GetAll
892   (fd.o #36190, fd.o #98671; Philip Withnall, Simon McVittie)
893
894 • Fix and enable a lot of compiler warnings to improve future code
895   quality. This might incidentally also fix some environment variable
896   accesses on OS X.
897   · In particular, printf-style functions in the libdbus API are now annotated
898     with __attribute__((__format__(__printf__, *, *))) when compiling with
899     gcc or clang. This might make printf bugs in other software visible
900     at compile time.
901   (fd.o #97357, fd.o #98192, fd.o #98195, fd.o #98658;
902   Thomas Zimmermann, Simon McVittie)
903
904 • When running with AppArmor mediation (for example using Ubuntu's patched
905   Linux kernel), clients can no longer auto-start services unless they would
906   have been able to send the auto-starting message to the service after it
907   starts. StartServiceByName() is unaffected, and continues to be allowed by
908   default in AppArmor's <abstractions/dbus-strict> and
909   <abstractions/dbus-session-strict>. (fd.o #98666, Simon McVittie)
910
911 Fixes:
912
913 • Work around an undesired effect of the fix for CVE-2014-3637
914   (fd.o #80559), in which processes that frequently send fds, such as
915   logind during a flood of new PAM sessions, can get disconnected for
916   continuously having at least one fd "in flight" for too long;
917   dbus-daemon interprets that as a potential denial of service attack.
918   The workaround is to disable that check for uid 0 process such as
919   logind, with a message in the system log. The bug remains open while
920   we look for a more general solution.
921   (fd.o #95263, LP#1591411; Simon McVittie)
922
923 • Don't run the test test-dbus-launch-x11.sh if X11 autolaunching
924   was disabled at compile time. That test is not expected to work
925   in that configuration. (fd.o #98665, Simon McVittie)
926
927 D-Bus 1.11.6 (2016-10-10)
928 ==
929
930 The “darkly whimsical” release.
931
932 Security fixes:
933
934 • Do not treat ActivationFailure message received from root-owned systemd
935   name as a format string. In principle this is a security vulnerability,
936   but we do not believe it is exploitable in practice, because only
937   privileged processes can own the org.freedesktop.systemd1 bus name, and
938   systemd does not appear to send activation failures that contain "%".
939
940   Please note that this probably *was* exploitable in dbus versions
941   older than 1.6.30, 1.8.16 and 1.9.10 due to a missing check which at
942   the time was only thought to be a denial of service vulnerability
943   (CVE-2015-0245). If you are still running one of those versions,
944   patch or upgrade immediately.
945
946   (fd.o #98157, Simon McVittie)
947
948 Enhancements:
949
950 • D-Bus Specification version 0.29
951   · Recommend not using '/' for object paths (fd.o #37095, Philip Withnall)
952   · Allow <annotation> in <arg> elements (fd.o #86162, Philip Withnall)
953
954 • Log to syslog when we exceed various anti-DoS limits, and add test
955   coverage for them (fd.o #86442, Simon McVittie)
956
957 • Improve syslog handling so that _dbus_warn() and similar warnings
958   go to syslog, add dbus-daemon --syslog|--nosyslog|--syslog-only options,
959   and log to syslog (instead of /dev/null) when dbus-daemon is started by
960   dbus-launch. (fd.o #97009, Simon McVittie)
961
962 • Install introspect.dtd and busconfig.dtd to ${datadir}/xml/dbus-1
963   (fd.o #89011, Philip Withnall)
964
965 • When logging messages about service activation, mention which peer
966   requested the activation (fd.o #68212, Philip Withnall)
967
968 • On Linux, mention the LSM label (if available) whenever we print
969   debug information about a peer (fd.o #68212, Philip Withnall)
970
971 Other fixes:
972
973 • Harden dbus-daemon against malicious or incorrect ActivationFailure
974   messages by rejecting them if they do not come from a privileged
975   process, or if systemd activation is not enabled
976   (fd.o #98157, Simon McVittie)
977
978 • Avoid undefined behaviour when setting reply serial number without going
979   via union DBusBasicValue (fd.o #98035, Marc Mutz)
980
981 • Fix CMake build for Unix platforms that do not have -lrt, such as Android,
982   or that do need -lsocket, such as QNX (fd.o #94096, Ralf Habacker)
983
984 • autogen.sh: fail cleanly if autoconf fails (Simon McVittie)
985
986 D-Bus 1.11.4 (2016-08-15)
987 ==
988
989 The “copper pickaxe” release.
990
991 Dependencies:
992
993 • Building from git (but not from tarballs) now requires
994   macros from the GNU Autoconf Archive, for example the autoconf-archive
995   package in Debian or Fedora derivatives.
996
997 Build-time configuration:
998
999 • The option to enable coverage instrumentation has changed from
1000   --enable-compiler-coverage to --enable-code-coverage.
1001
1002 Enhancements:
1003
1004 • D-Bus Specification version 0.28
1005   · Clarify some details of serialization (fd.o #93382, Philip Withnall)
1006
1007 • Increase listen() backlog of AF_UNIX sockets to the maximum possible,
1008   minimizing failed connections under heavy load
1009   (fd.o #95264, Lennart Poettering)
1010
1011 • Add a new dbus-launch --exit-with-x11 option (fd.o #39197, Simon McVittie)
1012
1013 • Use the same regression tests for subprocess starting on Unix and Windows
1014   (fd.o #95191, Ralf Habacker)
1015
1016 • Print timestamps and thread IDs in verbose messages
1017   (fd.o #95191, Ralf Habacker)
1018
1019 • On Unix, unify the various places that reopen stdin, stdout and/or stderr
1020   pointing to /dev/null (fd.o #97008, Simon McVittie)
1021
1022 • Use AX_CODE_COVERAGE instead of our own COMPILER_COVERAGE
1023   (fd.o #88922, Thomas Zimmermann)
1024
1025 Fixes:
1026
1027 • On Windows, fix a memory leak in replacing the installation prefix
1028   (fd.o #95191, Ralf Habacker)
1029
1030 • On Linux, when dbus-daemon is run with reduced susceptibility to the
1031   OOM killer (typically via systemd), do not let child processes inherit
1032   that setting (fd.o #32851; Kimmo Hämäläinen, WaLyong Cho)
1033
1034 • On Unix, make dbus-launch and dbus-daemon --fork work as intended
1035   even if a parent process incorrectly starts them with stdin, stdout
1036   and/or stderr closed (fd.o #97008, Simon McVittie)
1037
1038 • Output valid shell syntax in ~/.dbus/session-bus/ if the bus address
1039   contains a semicolon (fd.o #94746, Thiago Macieira)
1040
1041 • Fix memory leaks and thread safety in subprocess starting on Windows
1042   (fd.o #95191, Ralf Habacker)
1043
1044 • Stop test-dbus-daemon incorrectly failing on platforms that cannot
1045   discover the process ID of clients (fd.o #96653, Руслан Ижбулатов)
1046
1047 • In tests that exercise correct handling of crashing D-Bus services,
1048   suppress Windows crash handler (fd.o #95155; Yiyang Fei, Ralf Habacker)
1049
1050 • Explicitly check for stdint.h (Ioan-Adrian Ratiu)
1051
1052 • In tests, add an invalid DBusAuthState to avoid undefined behaviour
1053   in some test cases (fd.o #93909, Nick Lewycky)
1054
1055 • Add assertions to reassure a static analysis tool
1056   (fd.o #93210, Deepika Aggarwal)
1057
1058 • Be explicit about enum comparison when loading XML
1059   (fd.o #93205, Deepika Aggarwal)
1060
1061 • update-activation-environment: produce better diagnostics on error
1062   (fd.o #96653, Simon McVittie)
1063
1064 • Avoid various compiler warnings with gcc 6
1065   (fd.o #97282; Thomas Zimmermann, Simon McVittie)
1066
1067 • On Unix when configured to use the system log, report as "dbus-daemon",
1068   not as "dbus" (fd.o #97009, Simon McVittie)
1069
1070 • During unit tests, reduce the amount we write to the system log
1071   (fd.o #97009, Simon McVittie)
1072
1073 D-Bus 1.11.2 (2016-03-07)
1074 ==
1075
1076 The “pneumatic drill vs. Iron Maiden” release.
1077
1078 Fixes:
1079
1080 • Enable "large file support" on systems where it exists: dbus-daemon
1081   is not expected to open large files, but it might need to stat files
1082   that happen to have large inode numbers (fd.o #93545, Hongxu Jia)
1083
1084 • Eliminate padding inside DBusMessageIter on 64-bit platforms,
1085   which might result in a pedantic C compiler not copying the entire contents
1086   of a DBusMessageIter; statically assert that this is not an ABI change
1087   in practice (fd.o #94136, Simon McVittie)
1088
1089 • Document dbus-test-tool echo --sleep-ms=N instead of incorrect --sleep=N
1090   (fd.o #94244, Dmitri Iouchtchenko)
1091
1092 • Correctly report test failures in C tests from run-test.sh
1093   (fd.o #93379; amit tewari, Simon McVittie)
1094
1095 • When tests are enabled, run all the marshal-validate tests, not just
1096   the even-numbered ones (fd.o #93908, Nick Lewycky)
1097
1098 • Correct the expected error from one marshal-validate test, which was
1099   previously not run due to the above bug (fd.o #93908, Simon McVittie)
1100
1101 • Fix compilation under CMake when embedded tests are disabled
1102   (fd.o #94094, eric.hyer)
1103
1104 Internal changes:
1105
1106 • Fix all -Wpointer-sign (signed/unsigned mismatch) warnings, and enable the
1107   warning (fd.o #93069; Ralf Habacker, Simon McVittie)
1108
1109 • When building with CMake, use the same gcc/clang warnings as under Autotools,
1110   or MSVC warnings that are broadly similar (fd.o #93069, Ralf Habacker)
1111
1112 • test/name-test: make C tests produce TAP output and run them directly, not
1113   via run-test.sh (fd.o #92899, Simon McVittie)
1114
1115 • Under CMake when cross-compiling for Windows on Unix, run the tests
1116   under Wine even if binfmt_misc support is not available
1117   (fd.o #88966, Ralf Habacker)
1118
1119 • The DBUS_USE_TEST_BINARY environment variable is no longer used by builds with
1120   embedded tests; DBUS_TEST_DBUS_LAUNCH replaces it (fd.o #92899, Simon McVittie)
1121
1122 • Factor out some functions that will be needed in future for a Windows
1123   implementation of dbus-run-session (fd.o #92899, Ralf Habacker)
1124
1125 D-Bus 1.11.0 (2015-12-02)
1126 ==
1127
1128 The “peppermint deer” release.
1129
1130 Dependencies:
1131
1132 • On non-Windows platforms, dbus now requires an <inttypes.h> that defines
1133   C99 constants such as PRId64 and PRIu64.
1134
1135 Enhancements:
1136
1137 • D-Bus Specification version 0.27
1138   · Specify that services should not reply if NO_REPLY_EXPECTED was used
1139     (fd.o #75749, Lars Uebernickel)
1140
1141 • Add a script to do continuous-integration builds, and metadata to run it
1142   on travis-ci.org. To use this, clone the dbus git repository on GitHub
1143   and set it up with travis-ci.org; the only special setting needed is
1144   "only build branches with a .travis.yml". (fd.o #93194, Simon McVittie)
1145
1146 • If dbus-daemon is run with --systemd-activation, do not require
1147   org.freedesktop.systemd1.service to exist (fd.o #93194, Simon McVittie)
1148
1149 Fixes:
1150
1151 • Re-order dbus-daemon startup so that on SELinux systems, the thread
1152   that reads AVC notifications retains the ability to write to the
1153   audit log (fd.o #92832, Laurent Bigonville)
1154
1155 • Print 64-bit integers on non-GNU Unix platforms (fd.o #92043, Natanael Copa)
1156
1157 • When using the Monitoring interface, match messages' destinations
1158   (fd.o #92074, Simon McVittie)
1159
1160 • On Linux with systemd, stop installing a reference to the obsolete
1161   dbus.target, and enable dbus.socket statically (fd.o #78412, #92402;
1162   Simon McVittie)
1163
1164 • On Windows, when including configuration files with <include> or
1165   <includedir>, apply the same relocation as for the Exec paths
1166   in .service files (fd.o #92028, Simon McVittie)
1167
1168 • Add support for backtraces on Windows (fd.o #92721, Ralf Habacker)
1169
1170 • Fix many -Wpointer-sign warnings (fd.o #93069, Ralf Habacker)
1171
1172 D-Bus 1.10.6 (2015-12-01)
1173 ==
1174
1175 The “marzipan beetles” release.
1176
1177 Fixes:
1178
1179 • On Unix when running tests as root, don't assert that root and
1180   the dbus-daemon user can still call UpdateActivationEnvironment;
1181   assert that those privileged users can call BecomeMonitor instead
1182   (fd.o #93036, Simon McVittie)
1183
1184 • On Windows, fix a memory leak in the autolaunch transport (fd.o #92899,
1185   Simon McVittie)
1186
1187 • On Windows Autotools builds, don't run tests that rely on
1188   dbus-run-session and other Unix-specifics (fd.o #92899, Simon McVittie)
1189
1190 D-Bus 1.10.4 (2015-11-17)
1191 ==
1192
1193 The “Frostburn Canyon” release.
1194
1195 Enhancements:
1196
1197 • GetConnectionCredentials, GetConnectionUnixUser and
1198   GetConnectionUnixProcessID with argument "org.freedesktop.DBus"
1199   will now return details of the dbus-daemon itself. This is required
1200   to be able to call SetEnvironment on systemd.
1201   (fd.o #92857, Jan Alexander Steffens)
1202
1203 Fixes:
1204
1205 • Make UpdateActivationEnvironment always fail with AccessDenied on the
1206   system bus. Previously, it was possible to configure it so root could
1207   call it, but the environment variables were not actually used,
1208   because the launch helper would discard them.
1209   (fd.o #92857, Jan Alexander Steffens)
1210
1211 • On Unix with --systemd-activation on a user bus, make
1212   UpdateActivationEnvironment pass on its arguments to systemd's
1213   SetEnvironment method, solving inconsistency between the environments
1214   used for traditional activation and systemd user-service activation.
1215   (fd.o #92857, Jan Alexander Steffens)
1216
1217 • On Windows, don't crash if <syslog/> or --syslog is used
1218   (fd.o #92538, Ralf Habacker)
1219
1220 • On Windows, fix a memory leak when setting a DBusError from a Windows
1221   error (fd.o #92721, Ralf Habacker)
1222
1223 • On Windows, don't go into infinite recursion if we abort the process
1224   with backtraces enabled (fd.o #92721, Ralf Habacker)
1225
1226 • Fix various failing tests, variously on Windows and cross-platform:
1227   · don't test system.conf features (users, groups) that only make sense
1228     on the system bus, which is not supported on Windows
1229   · don't call _dbus_warn() when we skip a test, since it is fatal
1230   · fix computation of expected <standard_session_servicedirs/>
1231   · when running TAP tests, translate newlines to Unix format, fixing
1232     cross-compiled tests under Wine on Linux
1233   · don't stress-test refcounting under Wine, where it's really slow
1234   · stop assuming that a message looped-back to the test will be received
1235     immediately
1236   · skip some system bus tests on Windows since they make no sense there
1237   (fd.o #92538, fd.o #92721; Ralf Habacker, Simon McVittie)
1238
1239 D-Bus 1.10.2 (2015-10-26)
1240 ==
1241
1242 The “worst pies in London” release.
1243
1244 Fixes:
1245
1246 • Correct error handling for activation: if there are multiple attempts
1247   to activate the same service and it fails immediately, the first attempt
1248   would get the correct reply, but the rest would time out. We now send
1249   the same error reply to each attempt. (fd.o #92200, Simon McVittie)
1250
1251 • If BecomeMonitor is called with a syntactically invalid match rule,
1252   don't crash with an assertion failure, fixing a regression in 1.9.10.
1253   This was not exploitable as a denial of service, because the check
1254   for a privileged user is done first. (fd.o #92298, Simon McVittie)
1255
1256 • On Linux with --enable-user-session, add the bus address to the
1257   environment of systemd services for better backwards compatibility
1258   (fd.o #92612, Jan Alexander Steffens)
1259
1260 • On Windows, fix the logic for replacing the installation prefix
1261   in service files' Exec lines (fd.o #83539; Milan Crha, Simon McVittie)
1262
1263 • On Windows, if installed in the conventional layout with ${prefix}/etc
1264   and ${prefix}/share, use relative paths between bus configuration files
1265   to allow the tree to be relocated (fd.o #92028, Simon McVittie)
1266
1267 • Make more of the regression tests pass in Windows builds (fd.o #92538,
1268   Simon McVittie)
1269
1270 D-Bus 1.10.0 (2015-08-25)
1271 ==
1272
1273 The “0x20” release.
1274
1275 This is a new stable branch, recommended for use in OS distributions.
1276
1277 Fixes since 1.9.20:
1278
1279 • distribute test/tap-test.sh.in, even if the tarball was built without
1280   tests enabled (fd.o #91684, Simon McVittie)
1281 • work around a fd leak in libcap-ng < 0.7.7 (fd.o #91684, Simon McVittie)
1282
1283 Summary of major changes since 1.8.0:
1284
1285 • The basic setup for the well-known system and session buses is
1286   now done in read-only files in ${datadir} (normally /usr/share).
1287   See the NEWS entry for 1.9.18 for details.
1288
1289 • AppArmor integration has been merged, with features similar to the
1290   pre-existing SELinux integration. It is mostly compatible with the
1291   patches previously shipped by Ubuntu, with one significant change:
1292   Ubuntu's GetConnectionAppArmorSecurityContext method has been superseded
1293   by GetConnectionCredentials and was not included.
1294
1295 • The --enable-user-session configure option can be enabled
1296   by OS integrators intending to use systemd to provide a session bus
1297   per user (in effect, treating all concurrent graphical and non-graphical
1298   login sessions as one large session).
1299
1300 • The new listenable address mode "unix:runtime=yes" listens on
1301   $XDG_RUNTIME_DIR/bus, the same AF_UNIX socket used by the systemd
1302   user session. libdbus and "dbus-launch --autolaunch" will connect to
1303   this address by default. GLib ≥ 2.45.3 and sd-bus ≥ 209 have a
1304   matching default.
1305
1306 • All executables are now dynamically linked to libdbus-1.
1307   Previously, some executables, most notably dbus-daemon, were statically
1308   linked to a specially-compiled variant of libdbus. This results in
1309   various private functions in the _dbus namespace being exposed by the
1310   shared library. These are not API, and must not be used outside
1311   the dbus source tree.
1312
1313 • On platforms with ELF symbol versioning, all public symbols
1314   are versioned LIBDBUS_1_3.
1315
1316 New bus APIs:
1317
1318 • org.freedesktop.DBus.GetConnectionCredentials returns
1319   LinuxSecurityLabel where supported
1320 • org.freedesktop.DBus.Monitoring interface (privileged)
1321   · BecomeMonitor method supersedes match rules with eavesdrop=true,
1322     which are now deprecated
1323 • org.freedesktop.DBus.Stats interface (semi-privileged)
1324   · now enabled by default
1325   · new GetAllMatchRules method
1326 • org.freedesktop.DBus.Verbose interface (not normally compiled)
1327   · toggles the effect of DBUS_VERBOSE
1328
1329 New executables:
1330
1331 • dbus-test-tool
1332 • dbus-update-activation-environment
1333
1334 New optional dependencies:
1335
1336 • The systemd: pseudo-transport requires libsystemd or libsd-daemon
1337 • Complete documentation requires Ducktype and yelp-tools
1338 • Full test coverage requires GLib 2.36 and PyGI
1339 • AppArmor integration requires libapparmor and optionally libaudit
1340
1341 Dependencies removed:
1342
1343 • dbus-glib
1344
1345 D-Bus 1.9.20 (2015-08-06)
1346 ==
1347
1348 The “Remember Tomorrow” release.
1349
1350 This is a release-candidate for D-Bus 1.10.0. OS distribution vendors
1351 should test it.
1352
1353 Fixes:
1354
1355 • Don't second-guess what the ABI of poll() is, allowing it to be used
1356   on Integrity RTOS and other unusual platforms (fd.o #90314;
1357   Rolland Dudemaine, Simon McVittie)
1358
1359 • Don't duplicate audit subsystem integration if AppArmor and SELinux are
1360   both enabled (fd.o #89225, Simon McVittie)
1361
1362 • Log audit events for AppArmor/SELinux policy violations whenever
1363   we have CAP_AUDIT_WRITE, even if not the system bus
1364   (fd.o #83856, Laurent Bigonville)
1365
1366 D-Bus 1.9.18 (2015-07-21)
1367 ==
1368
1369 The “Pirate Elite” release.
1370
1371 Configuration changes:
1372
1373 • The basic setup for the well-known system and session buses is now done
1374   in read-only files in ${datadir}, moving a step closer to systems
1375   that can operate with an empty /etc directory. In increasing order
1376   of precedence:
1377
1378   · ${datadir}/dbus-1/s*.conf now perform the basic setup such as setting
1379     the default message policies.
1380   · ${sysconfdir}/dbus-1/s*.conf are now optional. By default
1381     dbus still installs a trivial version of each, for documentation
1382     purposes; putting configuration directives in these files is deprecated.
1383   · ${datadir}/dbus-1/s*.d/ are now available for third-party software
1384     to install "drop-in" configuration snippets (any packages
1385     using those directories should explicitly depend on at least this
1386     version of dbus).
1387   · ${sysconfdir}/dbus-1/s*.d/ are also still available for sysadmins
1388     or third-party software to install "drop-in" configuration snippets
1389   · ${sysconfdir}/dbus-1/s*-local.conf are still available for sysadmins'
1390     overrides
1391
1392   ${datadir} is normally /usr/share, ${sysconfdir} is normally /etc,
1393   and "s*" refers to either system or session as appropriate.
1394
1395   (fd.o #89280, Dimitri John Ledkov)
1396
1397 Fixes:
1398
1399 • Fix a memory leak when GetConnectionCredentials() succeeds
1400   (fd.o #91008, Jacek Bukarewicz)
1401
1402 • Ensure that dbus-monitor does not reply to messages intended for others,
1403   resulting in its own disconnection (fd.o #90952, Simon McVittie)
1404
1405 D-Bus 1.9.16 (2015-05-14)
1406 ==
1407
1408 The “titanium barns” release.
1409
1410 Dependencies:
1411
1412 • Automake 1.13 is now required when compiling from git or modifying
1413   the build system.
1414
1415 Security hardening:
1416
1417 • On Unix platforms, change the default configuration for the session bus
1418   to only allow EXTERNAL authentication (secure kernel-mediated
1419   credentials-passing), as was already done for the system bus.
1420
1421   This avoids falling back to DBUS_COOKIE_SHA1, which relies on strongly
1422   unpredictable pseudo-random numbers.
1423
1424   If you are using D-Bus over the (unencrypted!) tcp: or nonce-tcp: transport,
1425   in conjunction with DBUS_COOKIE_SHA1 and a shared home directory using
1426   NFS or similar, you will need to reconfigure the session bus to accept
1427   DBUS_COOKIE_SHA1 by commenting out the <auth> element. This configuration
1428   is not recommended.
1429
1430   (fd.o #90414, Simon McVittie)
1431
1432 • When asked for random numbers for DBUS_COOKIE_SHA1, the nonce-tcp:
1433   transport, UUIDs or any other reason, fail if we cannot obtain entropy
1434   (from /dev/urandom or CryptGenRandom()) or an out-of-memory condition
1435   occurs, instead of silently falling back to low-entropy pseudorandom
1436   numbers from rand(). (fd.o #90414; Simon McVittie, Ralf Habacker)
1437
1438 Enhancements:
1439
1440 • Add dbus_message_iter_get_element_count()
1441   (fd.o #30350; Christian Dywan, Simon McVittie)
1442
1443 • Introduce new internal DBusSocket and DBusPollable types so we can
1444   stop treating the Windows SOCKET type as if it was int. DBusSocket
1445   is specifically a socket, cross-platform. DBusPollable is whatever
1446   _dbus_poll() can act on, i.e. a fd on Unix or a SOCKET on Windows.
1447   (fd.o #89444; Ralf Habacker, Simon McVittie)
1448
1449 • All regression tests now output TAP <https://testanything.org/>
1450   (fd.o #89846, Simon McVittie)
1451
1452 • Internal APIs consistently use signed values for timestamps
1453   (fd.o #18494, Peter McCurdy)
1454
1455 • Improve diagnostics when UpdateActivationEnvironment calls are rejected
1456   (fd.o #88812, Simon McVittie)
1457
1458 • Clean up a lot of compiler warnings
1459   (fd.o #17289, fd.o #89284; Ralf Habacker, Simon McVittie)
1460
1461 Fixes:
1462
1463 • Add locking to DBusCounter's reference count and notify function
1464   (fd.o #89297, Adrian Szyndela)
1465
1466 • Ensure that DBusTransport's reference count is protected by the
1467   corresponding DBusConnection's lock (fd.o #90312, Adrian Szyndela)
1468
1469 • Correctly release DBusServer mutex before early-return if we run out
1470   of memory while copying authentication mechanisms (fd.o #90021,
1471   Ralf Habacker)
1472
1473 • Make dbus-test-tool and dbus-update-activation-environment portable
1474   to Windows (fd.o #90089, Ralf Habacker)
1475
1476 • Correctly initialize all fields of DBusTypeReader (fd.o #90021;
1477   Ralf Habacker, Simon McVittie)
1478
1479 • Fix some missing \n in verbose (debug log) messages (fd.o #90004,
1480   Ralf Habacker)
1481
1482 • Clean up some memory and fd leaks in test code and tools
1483   (fd.o #90021, Ralf Habacker)
1484
1485 • Fix a NULL dereference if the dbus-daemon cannot read a configuration
1486   directory for a reason that is not ENOENT (fd.o #90021, Ralf Habacker)
1487
1488 • CMake generates a versioned shared library even if the revision is 0,
1489   as it usually is on the development branch. (fd.o #89450, Ralf Habacker)
1490
1491 D-Bus 1.9.14 (2015-03-02)
1492 ==
1493
1494 The “don't stand in the poison cloud” release.
1495
1496 Dependencies:
1497
1498 • dbus-daemon and dbus-daemon-launch-helper now require libdbus. They
1499   were previously linked to a static version of libdbus.
1500
1501 • The tests no longer require dbus-glib in order to exercise the libdbus
1502   shared library; they are always linked to libdbus now.
1503
1504 Build-time configuration:
1505
1506 • The new --enable-user-session option, off by default, can be enabled
1507   by OS integrators intending to use systemd to provide a session bus
1508   per user (in effect, treating all concurrent graphical and non-graphical
1509   login sessions as one large session)
1510
1511 Enhancements:
1512
1513 • All executables are now linked dynamically to libdbus.
1514   (fd.o #83115; Bertrand SIMONNET, Simon McVittie, Ralf Habacker)
1515
1516 • On platforms that support them (GNU libc and possibly others),
1517   libdbus now has versioned symbols for its public API.
1518   All public symbols (visible in the header files) are currently
1519   versioned as LIBDBUS_1_3; private symbols starting with _dbus or
1520   dbus_internal have a version that changes with each release, and
1521   must not be used by applications. (also fd.o #83115)
1522
1523 • New listenable address mode "unix:runtime=yes" which listens on
1524   a real filesystem (non-abstract) socket $XDG_RUNTIME_DIR/bus
1525   (fd.o #61303; Colin Walters, Alexander Larsson, Simon McVittie)
1526
1527 • Add optional systemd units for a per-user bus listening on
1528   $XDG_RUNTIME_DIR/bus (fd.o #61301; Simon McVittie, Colin Walters)
1529
1530 • On Unix platforms, both libdbus and "dbus-launch --autolaunch"
1531   default to connecting to $XDG_RUNTIME_DIR/bus if it is a socket
1532   (also fd.o #61301)
1533
1534 • New dbus-update-activation-environment tool uploads environment
1535   variables to "dbus-daemon --session" and optionally "systemd --user",
1536   primarily as a way to keep the per-user bus compatible with
1537   distributions' existing X11 login scripts (also fd.o #61301)
1538
1539 • <includedir/> elements in dbus-daemon configuration are now silently
1540   ignored if the directory does not exist. (fd.o #89280, Dimitri John Ledkov)
1541
1542 • Add microsecond-resolution timestamps to the default output of
1543   dbus-monitor and dbus-send (fd.o #88896; Ralf Habacker, Simon McVittie)
1544
1545 Fixes:
1546
1547 • Fix a race condition in the 'monitor' test introduced in 1.9.10
1548   (fd.o #89222, Simon McVittie)
1549
1550 D-Bus 1.9.12 (2015-02-19)
1551 ==
1552
1553 The “monster lasagna” release.
1554
1555 Dependencies:
1556
1557 • Ducktype and yelp-tools are now required to build complete documentation
1558   (they are optional for normal builds).
1559
1560 Enhancements:
1561
1562 • D-Bus Specification version 0.26
1563   · GetConnectionCredentials can return LinuxSecurityLabel or WindowsSID
1564   · document the BecomeMonitor method
1565
1566 • On Linux, add LinuxSecurityLabel to GetConnectionCredentials
1567   (fd.o #89041; Tyler Hicks, Simon McVittie)
1568
1569 • On Linux, add support for AppArmor mediation of message sending and
1570   receiving and name ownership (paralleling existing SELinux mediation
1571   support), and eavesdropping (a new check, currently AppArmor-specific)
1572   (fd.o #75113; John Johansen, Tyler Hicks, Simon McVittie)
1573
1574 • In dbus-send and dbus-monitor, pretty-print \0-terminated bytestrings
1575   that have printable ASCII contents; we previously only did this for
1576   unterminated bytestrings (fd.o #89109, Simon McVittie)
1577
1578 • Add a guide to designing good D-Bus APIs (fd.o #88994, Philip Withnall)
1579
1580 • On Windows, add WindowsSID to GetConnectionCredentials
1581   (fd.o #54445, Ralf Habacker)
1582
1583 • Improve clarity of dbus-monitor --profile output and add more columns
1584   (fd.o #89165, Ralf Habacker)
1585
1586 • Add a man page for dbus-test-tool, and build it under CMake as well
1587   as Autotools (fd.o#89086, Simon McVittie)
1588
1589 • If dbus-daemon was compiled with --enable-verbose, add a D-Bus API
1590   to control it at runtime, overriding the DBUS_VERBOSE environment variable
1591   (fd.o #88896, Ralf Habacker)
1592
1593 Fixes:
1594
1595 • Reduce the number of file descriptors used in the fd-passing test,
1596   avoiding failure under the default Linux fd limit, and automatically
1597   skip it if the rlimit is too small (fd.o #88998, Simon McVittie)
1598
1599 D-Bus 1.9.10 (2015-02-09)
1600 ==
1601
1602 The “sad cyborgs” release.
1603
1604 Security fixes merged from 1.8.16:
1605
1606 • Do not allow non-uid-0 processes to send forged ActivationFailure
1607   messages. On Linux systems with systemd activation, this would
1608   allow a local denial of service: unprivileged processes could
1609   flood the bus with these forged messages, winning the race with
1610   the actual service activation and causing an error reply
1611   to be sent back when service auto-activation was requested.
1612   This does not prevent the real service from being started,
1613   so the attack only works while the real service is not running.
1614   (CVE-2015-0245, fd.o #88811; Simon McVittie)
1615
1616 Enhancements:
1617
1618 • The new Monitoring interface in the dbus-daemon lets dbus-monitor and
1619   similar tools receive messages without altering the security properties
1620   of the system bus, by calling the new BecomeMonitor method on a
1621   private connection. This bypasses the normal <allow> and <deny> rules
1622   entirely, so to preserve normal message-privacy assumptions, only root
1623   is allowed to do this on the system bus. Restricted environments,
1624   such as Linux with LSMs, should lock down access to the Monitoring
1625   interface. (fd.o #46787, Simon McVittie)
1626
1627 • dbus-monitor uses BecomeMonitor to capture more traffic, if the
1628   dbus-daemon supports it and access permissions allow it.
1629   It still supports the previous approach ("eavesdropping" match rules)
1630   for compatibility with older bus daemons. (fd.o #46787, Simon)
1631
1632 • dbus-monitor can now log the message stream as binary data for later
1633   analysis, with either no extra framing beyond the normal D-Bus headers,
1634   or libpcap-compatible framing treating each D-Bus message
1635   as a captured packet. (fd.o #46787, Simon)
1636
1637 Other fixes:
1638
1639 • Fix some CMake build regressions (fd.o #88964, Ralf Habacker)
1640
1641 • On Unix, forcibly terminate regression tests after 60 seconds to
1642   prevent them from blocking continuous integration frameworks
1643   (fd.o #46787, Simon)
1644
1645 D-Bus 1.9.8 (2015-02-03)
1646 ==
1647
1648 The “all the types of precipitation” release.
1649
1650 Dependencies:
1651
1652 • full test coverage now requires GLib 2.36
1653 • full test coverage now requires PyGI (PyGObject 3,
1654   "import gi.repository.GObject") instead of the
1655   obsolete PyGObject 2 ("import gobject")
1656
1657 Enhancements:
1658
1659 • add GLib-style "installed tests" (fd.o #88810, Simon McVittie)
1660
1661 • better regression test coverage, including systemd activation
1662   (fd.o #57952, #88810; Simon McVittie)
1663
1664 Fixes:
1665
1666 • fatal errors correctly make the dbus-daemon exit even if <syslog/> is
1667   turned off (fd.o #88808, Simon McVittie)
1668
1669 • TCP sockets on Windows no longer fail to listen approximately 1 time
1670   in 256, caused by a logic error that should have always made it fail but
1671   was mitigated by incorrect endianness for the port number
1672   (fd.o #87999, Ralf Habacker)
1673
1674 • fix some Windows build failures (fd.o #88009, #88010; Ralf Habacker)
1675
1676 • on Windows, allow up to 8K connections to the dbus-daemon instead of the
1677   previous 64, completing a previous fix which only worked under
1678   Autotools (fd.o #71297, Ralf Habacker)
1679
1680 • on Windows, if the IP family is unspecified only use IPv4,
1681   to mitigate IPv6 not working correctly (fd.o #87999, Ralf Habacker)
1682
1683 • fix some unlikely memory leaks on OOM (fd.o #88087, Simon McVittie)
1684
1685 • lcov code coverage analysis works again (fd.o #88808, Simon McVittie)
1686
1687 • fix an unused function error with --disable-embedded-tests (fd.o #87837,
1688   Thiago Macieira)
1689
1690 D-Bus 1.9.6 (2015-01-05)
1691 ==
1692
1693 The “I do have a bread knife” release.
1694
1695 Security hardening:
1696
1697 • Do not allow calls to UpdateActivationEnvironment from uids other than
1698   the uid of the dbus-daemon. If a system service installs unsafe
1699   security policy rules that allow arbitrary method calls
1700   (such as CVE-2014-8148) then this prevents memory consumption and
1701   possible privilege escalation via UpdateActivationEnvironment.
1702
1703   We believe that in practice, privilege escalation here is avoided
1704   by dbus-daemon-launch-helper sanitizing its environment; but
1705   it seems better to be safe.
1706
1707 • Do not allow calls to UpdateActivationEnvironment or the Stats interface
1708   on object paths other than /org/freedesktop/DBus. Some system services
1709   install unsafe security policy rules that allow arbitrary method calls
1710   to any destination, method and interface with a specified object path;
1711   while less bad than allowing arbitrary method calls, these security
1712   policies are still harmful, since dbus-daemon normally offers the
1713   same API on all object paths and other system services might behave
1714   similarly.
1715
1716 Other fixes:
1717
1718 • Add missing initialization so GetExtendedTcpTable doesn't crash on
1719   Windows Vista SP0 (fd.o #77008, Илья А. Ткаченко)
1720
1721 D-Bus 1.9.4 (2014-11-24)
1722 ==
1723
1724 The “extra-sturdy caramel” release.
1725
1726 Fixes:
1727
1728 • Partially revert the CVE-2014-3639 patch by increasing the default
1729   authentication timeout on the system bus from 5 seconds back to 30
1730   seconds, since this has been reported to cause boot regressions for
1731   some users, mostly with parallel boot (systemd) on slower hardware.
1732
1733   On fast systems where local users are considered particularly hostile,
1734   administrators can return to the 5 second timeout (or any other value
1735   in milliseconds) by saving this as /etc/dbus-1/system-local.conf:
1736
1737   <busconfig>
1738     <limit name="auth_timeout">5000</limit>
1739   </busconfig>
1740
1741   (fd.o #86431, Simon McVittie)
1742
1743 • Add a message in syslog/the Journal when the auth_timeout is exceeded
1744   (fd.o #86431, Simon McVittie)
1745
1746 • Send back an AccessDenied error if the addressed recipient is not allowed
1747   to receive a message (and in builds with assertions enabled, don't
1748   assert under the same conditions). (fd.o #86194, Jacek Bukarewicz)
1749
1750 D-Bus 1.9.2 (2014-11-10)
1751 ==
1752
1753 The “structurally unsound flapjack” release.
1754
1755 Security fixes:
1756
1757 • Increase dbus-daemon's RLIMIT_NOFILE rlimit to 65536
1758   so that CVE-2014-3636 part A cannot exhaust the system bus'
1759   file descriptors, completing the incomplete fix in 1.8.8.
1760   (CVE-2014-7824, fd.o #85105; Simon McVittie, Alban Crequy)
1761
1762 Enhancements:
1763
1764 • D-Bus Specification version 0.25
1765   · new value 'const' for EmitsChangedSignal annotation
1766     (fd.o #72958, Lennart Poettering)
1767   · new ALLOW_INTERACTIVE_AUTHORIZATION flag, for PolicyKit and similar
1768     (fd.o #83449; Lennart Poettering, Simon McVittie)
1769   · annotate table of types with reserved/basic/container, and for
1770     basic types, fixed/string-like
1771   · clarify arbitrary limits by quoting them in mebibytes
1772
1773 • New API: add accessors for the ALLOW_INTERACTIVE_AUTHORIZATION flag
1774   (fd.o #83449, Simon McVittie)
1775
1776 • Add dbus-test-tool, a D-Bus swiss army knife with multiple subcommands,
1777   useful for debugging and performance testing:
1778   · dbus-test-tool spam: send repeated messages
1779   · dbus-test-tool echo: send an empty reply for all method calls
1780   · dbus-test-tool black-hole: do not reply to method calls
1781   (fd.o #34140; Alban Crequy, Simon McVittie, Will Thompson)
1782
1783 • Add support for process ID in credentials-passing on NetBSD
1784   (fd.o #69702, Patrick Welche)
1785
1786 • Add an example script to find potentially undesired match rules
1787   (fd.o #84598, Alban Crequy)
1788
1789 • Document the central assumption that makes our use of credentials-passing
1790   secure (fd.o #83499, Simon McVittie)
1791
1792 • Replace the dbus-glib section of the tutorial with a GDBus recommendation,
1793   and add some links to GDBus and QtDBus documentation (fd.o #25140,
1794   Simon McVittie)
1795
1796 Fixes:
1797
1798 • Use a less confusing NoReply message when disconnected with a reply pending
1799   (fd.o #76112, Simon McVittie)
1800
1801 • Make the .pc file relocatable by letting pkg-config do all variable
1802   expansion itself (fd.o #75858, Руслан Ижбулатов)
1803
1804 • Fix a build failure on platforms with kqueue, which regressed in 1.9.0
1805   (fd.o #85563, Patrick Welche)
1806
1807 • Consistently save errno after socket calls (fd.o #83625, Simon McVittie)
1808
1809 • In dbus-spawn, when the grandchild process exits due to a failed exec(),
1810   do not lose the exec() errno (fd.o #24821, Simon McVittie)
1811
1812 • Do not fail the tests if a parent process has leaked non-close-on-exec
1813   file descriptors to us (fd.o #73689, fd.o #83899; Simon McVittie)
1814
1815 • Do not fail the tests on Unix platforms with incomplete
1816   credentials-passing support, but do fail if we can't pass credentials
1817   on a platform where it is known to work: Linux, FreeBSD, OpenBSD, NetBSD
1818   (fd.o #69702, Simon McVittie)
1819
1820 • Detect accept4, dirfd, inotify_init1, pipe2, and Unix fd passing
1821   when building with cmake, and expand test coverage there
1822   (fd.o #73689; Ralf Habacker, Simon McVittie)
1823
1824 D-Bus 1.9.0 (2014-10-01)
1825 ==
1826
1827 The “tiered cheeses” release.
1828
1829 Requirements:
1830
1831 • Support for the systemd: (LISTEN_FDS) pseudo-transport on Linux now
1832   requires either the libsystemd or libsd-daemon shared library, dropping the
1833   embedded convenience copy of sd-daemon (fd.o #71818, Simon)
1834
1835 Build-time configuration changes:
1836
1837 • The Stats interface is now enabled by default, and locked-down to
1838   root-only on the system bus. Configure with --disable-stats
1839   to disable it altogether on memory- or disk-constrained systems,
1840   or see ${docdir}/examples/ to open it up to non-root users on the
1841   system bus or restrict access on the session bus.
1842   (fd.o #80759; Simon McVittie, Alban Crequy)
1843
1844 • The CMake build system now builds the same shared library name as Autotools
1845   on at least Linux and Windows:
1846   - on Linux (and perhaps other Unix platforms), it previously built
1847     libdbus-1.so, but now builds libdbus-1.so.3.* with development
1848     symlink libdbus-1.so and SONAME/symlink libdbus-1.so.3
1849   - on Windows, it previously built either libdbus-1.dll (release) or
1850     libdbus-1d.dll (debug), but now builds libdbus-1-3.dll, copied to
1851     libdbus-1.dll for compatibility with older applications.
1852   (fd.o #74117, Ralf Habacker)
1853
1854 Enhancements:
1855
1856 • D-Bus Specification version 0.24
1857   · document how to quote match rules (fd.o #24307, Simon McVittie)
1858   · explicitly say that most message types never expect a reply
1859     regardles of whether they have NO_REPLY_EXPECTED
1860     (fd.o #75749, Simon McVittie)
1861
1862 • on Unix platforms, disable Nagle's algorithm on TCP connections to improve
1863   initial latency (fd.o #75544, Matt Hoosier)
1864
1865 • use backtrace() if it is in -lexecinfo instead of libc, as on NetBSD
1866   (fd.o #69702, Patrick Welche)
1867
1868 • in dbus-monitor, print more information about file descriptors
1869   (fd.o #80603, Alban Crequy)
1870
1871 • do not install system bus configuration if built for Windows
1872   (fd.o #83583; Ralf Habacker, Simon McVittie)
1873
1874 • Add GetAllMatchRules to the Stats interface (fd.o #24307, Alban Crequy)
1875
1876 • Add a regression test for file descriptor passing (fd.o #83622,
1877   Simon McVittie)
1878
1879 Fixes:
1880
1881 • fix an incorrect error message if a Unix socket path is too long
1882   (fd.o #73887, Antoine Jacoutot)
1883
1884 • in an MSYS/Cygwin environment, pass Unix-style filenames to xmlto,
1885   fixing documentation generation (fd.o #75860, Руслан Ижбулатов)
1886
1887 • in Unix with X11, avoid giving dbus-launch a misleading argv[0]
1888   in ps(1) (fd.o #69716, Chengwei Yang)
1889
1890 • avoid calling poll() with timeout < -1, which is considered invalid
1891   on FreeBSD and NetBSD (fd.o #78480, Jaap Boender)
1892
1893 • be portable to BSD-derived platforms where O_CLOEXEC is unavailable in libc
1894   (like Mac OS X 10.6), or available in libc but unsupported by the kernel
1895   (fd.o #77032; rmvsxop, OBATA Akio, Patrick Welche)
1896
1897 • Fix include path for test/internal/*.c with cmake (Ralf Habacker)
1898
1899 • Documentation improvements
1900   (fd.o #80795, #84313; Thomas Haller, Sebastian Rasmussen)
1901
1902 • in dbus-monitor, do not leak file descriptors that we have monitored
1903   (fd.o #80603, Alban Crequy)
1904
1905 • Set the close-on-exec flag for the inotify file descriptor, even
1906   if built with CMake or older libc (fd.o #73689, Simon McVittie)
1907
1908 • Remove some LGPL code from the Windows dbus-daemon
1909   (fd.o #57272, Ralf Habacker)
1910
1911 D-Bus 1.8.8 (2014-09-16)
1912 ==
1913
1914 The "smashy smashy egg man" release.
1915
1916 Security fixes:
1917
1918 • Do not accept an extra fd in the padding of a cmsg message, which
1919   could lead to a 4-byte heap buffer overrun.
1920   (CVE-2014-3635, fd.o #83622; Simon McVittie)
1921
1922 • Reduce default for maximum Unix file descriptors passed per message
1923   from 1024 to 16, preventing a uid with the default maximum number of
1924   connections from exhausting the system bus' file descriptors under
1925   Linux's default rlimit. Distributors or system administrators with a
1926   more restrictive fd limit may wish to reduce these limits further.
1927
1928   Additionally, on Linux this prevents a second denial of service
1929   in which the dbus-daemon can be made to exceed the maximum number
1930   of fds per sendmsg() and disconnect the process that would have
1931   received them.
1932   (CVE-2014-3636, fd.o #82820; Alban Crequy)
1933
1934 • Disconnect connections that still have a fd pending unmarshalling after
1935   a new configurable limit, pending_fd_timeout (defaulting to 150 seconds),
1936   removing the possibility of creating an abusive connection that cannot be
1937   disconnected by setting up a circular reference to a connection's
1938   file descriptor.
1939   (CVE-2014-3637, fd.o #80559; Alban Crequy)
1940
1941 • Reduce default for maximum pending replies per connection from 8192 to 128,
1942   mitigating an algorithmic complexity denial-of-service attack
1943   (CVE-2014-3638, fd.o #81053; Alban Crequy)
1944
1945 • Reduce default for authentication timeout on the system bus from
1946   30 seconds to 5 seconds, avoiding denial of service by using up
1947   all unauthenticated connection slots; and when all unauthenticated
1948   connection slots are used up, make new connection attempts block
1949   instead of disconnecting them.
1950   (CVE-2014-3639, fd.o #80919; Alban Crequy)
1951
1952 Other fixes:
1953
1954 • Check for libsystemd from systemd >= 209, falling back to
1955   the older separate libraries if not found (Umut Tezduyar Lindskog,
1956   Simon McVittie)
1957
1958 • On Linux, use prctl() to disable core dumps from a test executable
1959   that deliberately raises SIGSEGV to test dbus-daemon's handling
1960   of that condition (fd.o #83772, Simon McVittie)
1961
1962 • Fix compilation with --enable-stats (fd.o #81043, Gentoo #507232;
1963   Alban Crequy)
1964
1965 • Improve documentation for running tests on Windows (fd.o #41252,
1966   Ralf Habacker)
1967
1968 D-Bus 1.8.6 (2014-06-02)
1969 ==
1970
1971 Security fixes:
1972
1973 • On Linux ≥ 2.6.37-rc4, if sendmsg() fails with ETOOMANYREFS, silently drop
1974   the message. This prevents an attack in which a malicious client can
1975   make dbus-daemon disconnect a system service, which is a local
1976   denial of service.
1977   (fd.o #80163, CVE-2014-3532; Alban Crequy)
1978
1979 • Track remaining Unix file descriptors correctly when more than one
1980   message in quick succession contains fds. This prevents another attack
1981   in which a malicious client can make dbus-daemon disconnect a system
1982   service.
1983   (fd.o #79694, fd.o #80469, CVE-2014-3533; Alejandro Martínez Suárez,
1984   Simon McVittie, Alban Crequy)
1985
1986 Other fixes:
1987
1988 • When dbus-launch --exit-with-session starts a dbus-daemon but then cannot
1989   attach to a session, kill the dbus-daemon as intended
1990   (fd.o #74698, Роман Донченко)
1991
1992 D-Bus 1.8.4 (2014-06-10)
1993 ==
1994
1995 Security fix:
1996
1997 • Alban Crequy at Collabora Ltd. discovered and fixed a denial-of-service
1998   flaw in dbus-daemon, part of the reference implementation of D-Bus.
1999   Additionally, in highly unusual environments the same flaw could lead to
2000   a side channel between processes that should not be able to communicate.
2001   (CVE-2014-3477, fd.o #78979)
2002
2003 D-Bus 1.8.2 (2014-04-30)
2004 ==
2005
2006 The “nobody wants red” release.
2007
2008 Enhancements:
2009
2010 • in the CMake build system, add some hints for Linux users cross-compiling
2011   Windows D-Bus binaries to be able to run tests under Wine
2012   (fd.o #41252, Ralf Habacker)
2013
2014 • add Documentation key to dbus.service (fd.o #77447, Cameron Norman)
2015
2016 Fixes:
2017
2018 • in "dbus-uuidgen --ensure", try to copy systemd's /etc/machine-id
2019   to /var/lib/dbus/machine-id instead of generating an entirely new ID
2020   (fd.o #77941, Simon McVittie)
2021
2022 • if dbus-launch receives an X error very quickly, do not kill
2023   unrelated processes (fd.o #74698, Роман Донченко)
2024
2025 • on Windows, allow up to 8K connections to the dbus-daemon, instead of the
2026   previous 64 (fd.o #71297; Cristian Onet, Ralf Habacker)
2027
2028 • cope with \r\n newlines in regression tests, since on Windows,
2029   dbus-daemon.exe uses text mode (fd.o #75863, Руслан Ижбулатов)
2030
2031 D-Bus 1.8.0 (2014-01-20)
2032 ==
2033
2034 The “Wolverine distrusts my printer” release.
2035
2036 This starts a new stable branch. The 1.6.x branch is now considered to be
2037 outdated, and will only receive fixes for serious bugs such as security
2038 flaws. The 1.4.x and 1.2.x branches no longer have upstream support and
2039 are unlikely to get any more releases, but if distributors still need to
2040 support them, please share security patches via upstream.
2041
2042 Summary of changes since 1.6.x:
2043
2044 • libdbus always behaves as if dbus_threads_init_default() had been called
2045   (thread-safety by default)
2046 • new dbus-run-session tool, replacing certain misuses of dbus-launch
2047 • dbus-monitor can talk to outdated versions of dbus-daemon again
2048 • new org.freedesktop.DBus.GetConnectionCredentials method
2049 • GetConnectionUnixProcessID also works correctly on Windows, returning
2050   the Windows process ID
2051 • GetConnectionWindowsSID returns the correct SID on Windows
2052 • expat is required, libxml2 can no longer be used as a substitute
2053 • the userDB cache is required, and cannot be disabled
2054 • a 64-bit integer type (either int, long, long long or _int64) is required
2055 • better systemd-journald integration on Linux
2056 • fixed long-standing fd and array leaks when failing to parse a message
2057 • fixed referenced-but-never-freed parent nodes (effectively memory leaks)
2058   when using certain object-path allocation patterns, notably in Avahi
2059 • better defaults for Windows support
2060 • better CMake support
2061 • better portability to mingw32, FreeBSD, NetBSD, QNX and Hurd
2062 • the source language for the man pages is now Docbook XML
2063
2064 Enhancements since 1.7.10:
2065
2066 • Enhance the CMake build system to check for GLib and compile/run
2067   a subset of the regression tests (fd.o #41252, #73495; Ralf Habacker)
2068
2069 Fixes since 1.7.10:
2070
2071 • don't rely on va_copy(), use DBUS_VA_COPY() wrapper (fd.o #72840,
2072   Ralf Habacker)
2073
2074 • fix compilation of systemd journal support on older systemd versions where
2075   sd-journal.h doesn't include syslog.h (fd.o #73455, Ralf Habacker)
2076
2077 • fix compilation on older MSVC versions by including stdlib.h
2078   (fd.o #73455, Ralf Habacker)
2079
2080 • Allow <allow_anonymous/> to appear in an included configuration file
2081   (fd.o #73475, Matt Hoosier)
2082
2083 Test behaviour changes since 1.7.10:
2084
2085 • If the tests crash with an assertion failure, they no longer default to
2086   blocking for a debugger to be attached. Set DBUS_BLOCK_ON_ABORT in the
2087   environment if you want the old behaviour.
2088
2089 • To improve debuggability, the dbus-daemon and dbus-daemon-eavesdrop tests
2090   can be run with an external dbus-daemon by setting
2091   DBUS_TEST_DAEMON_ADDRESS in the environment. Test-cases that require
2092   an unusually-configured dbus-daemon are skipped.
2093
2094 D-Bus 1.7.10 (2014-01-06)
2095 ==
2096
2097 The “weighted companion cube” release.
2098
2099 This is a release candidate for D-Bus 1.8.
2100
2101 D-Bus Specification 0.23:
2102
2103 • don't require messages with no INTERFACE to be dispatched
2104   (fd.o #68597, Simon McVittie)
2105
2106 • document "tcp:bind=..." and "nonce-tcp:bind=..." (fd.o #72301,
2107   Chengwei Yang)
2108
2109 • define "listenable" and "connectable" addresses, and discuss
2110   the difference (fd.o #61303, Simon McVittie)
2111
2112 Enhancements:
2113
2114 • support printing Unix file descriptors in dbus-send, dbus-monitor
2115   (fd.o #70592, Robert Ancell)
2116
2117 • don't install systemd units if --disable-systemd is given
2118   (fd.o #71818, Chengwei Yang)
2119
2120 Fixes:
2121
2122 • don't leak memory on out-of-memory while listing activatable or
2123   active services (fd.o #71526, Radoslaw Pajak)
2124
2125 • fix undefined behaviour in a regression test (fd.o #69924, DreamNik)
2126
2127 • escape Unix socket addresses correctly (fd.o #46013, Chengwei Yang)
2128
2129 • on SELinux systems, don't assume that SECCLASS_DBUS, DBUS__ACQUIRE_SVC
2130   and DBUS__SEND_MSG are numerically equal to their values in the
2131   reference policy (fd.o #88719, osmond sun)
2132
2133 • define PROCESS_QUERY_LIMITED_INFORMATION if missing from MinGW < 4 headers
2134   (fd.o #71366, Matt Fischer)
2135
2136 • define WIN32_LEAN_AND_MEAN to avoid conflicts between winsock.h and
2137   winsock2.h (fd.o #71405, Matt Fischer)
2138
2139 • do not return failure from _dbus_read_nonce() with no error set,
2140   preventing a potential crash (fd.o #72298, Chengwei Yang)
2141
2142 • on BSD systems, avoid some O(1)-per-process memory and fd leaks in kqueue,
2143   preventing test failures (fd.o #69332, fd.o #72213; Chengwei Yang)
2144
2145 • fix warning spam on Hurd by not trying to set SO_REUSEADDR on Unix sockets,
2146   which doesn't do anything anyway on at least Linux and FreeBSD
2147   (fd.o #69492, Simon McVittie)
2148
2149 • fix use of TCP sockets on FreeBSD and Hurd by tolerating EINVAL from
2150   sendmsg() with SCM_CREDS (retrying with plain send()), and looking
2151   for credentials more correctly (fd.o #69492, Simon McVittie)
2152
2153 • ensure that tests run with a temporary XDG_RUNTIME_DIR to avoid
2154   getting mixed up in XDG/systemd "user sessions" (fd.o #61301,
2155   Simon McVittie)
2156
2157 • refresh cached policy rules for existing connections when bus
2158   configuration changes (fd.o #39463, Chengwei Yang)
2159
2160 D-Bus 1.7.8 (2013-11-01)
2161 ==
2162
2163 The “extreme hills” release.
2164
2165 Dependencies:
2166
2167 • If systemd support is enabled, libsystemd-journal is now required.
2168
2169 Enhancements:
2170
2171 • When activating a non-systemd service under systemd, annotate its
2172   stdout/stderr with its bus name in the Journal. Known limitation:
2173   because the socket is opened before forking, the process will still be
2174   logged as if it had dbus-daemon's process ID and user ID.
2175   (fd.o #68559, Chengwei Yang)
2176
2177 • Document more configuration elements in dbus-daemon(1)
2178   (fd.o #69125, Chengwei Yang)
2179
2180 Fixes:
2181
2182 • Don't leak string arrays or fds if dbus_message_iter_get_args_valist()
2183   unpacks them and then encounters an error (fd.o #21259, Chengwei Yang)
2184
2185 • If compiled with libaudit, retain CAP_AUDIT_WRITE so we can write
2186   disallowed method calls to the audit log, fixing a regression in 1.7.6
2187   (fd.o #49062, Colin Walters)
2188
2189 • path_namespace='/' in match rules incorrectly matched nothing; it
2190   now matches everything. (fd.o #70799, Simon McVittie)
2191
2192 D-Bus 1.7.6 (2013-10-09)
2193 ==
2194
2195 The “CSI Shrewsbury” release.
2196
2197 Build-time configuration changes:
2198
2199 • Directory change notification via dnotify on Linux is no longer
2200   supported; it hadn't compiled successfully since 2010 in any case.
2201   If you don't have inotify (Linux) or kqueue (*BSD), you will need
2202   to send SIGHUP to the dbus-daemon when its configuration changes.
2203   (fd.o #33001, Chengwei Yang)
2204
2205 • Compiling with --disable-userdb-cache is no longer supported;
2206   it didn't work since at least 2008, and would lead to an extremely
2207   slow dbus-daemon even it worked. (fd.o #15589, #17133, #66947;
2208   Chengwei Yang)
2209
2210 • The DBUS_DISABLE_ASSERTS CMake option didn't actually disable most
2211   assertions. It has been renamed to DBUS_DISABLE_ASSERT to be consistent
2212   with the Autotools build system. (fd.o #66142, Chengwei Yang)
2213
2214 • --with-valgrind=auto enables Valgrind instrumentation if and only if
2215   valgrind headers are available. The default is still --with-valgrind=no.
2216   (fd.o #56925, Simon McVittie)
2217
2218 Dependencies:
2219
2220 • Platforms with no 64-bit integer type are no longer supported.
2221   (fd.o #65429, Simon McVittie)
2222
2223 • GNU make is now (documented to be) required. (fd.o #48277, Simon McVittie)
2224
2225 • Full test coverage no longer requires dbus-glib, although the tests do not
2226   exercise the shared library (only a static copy) if dbus-glib is missing.
2227   (fd.o #68852, Simon McVittie)
2228
2229 Enhancements:
2230
2231 • D-Bus Specification 0.22
2232   · Document GetAdtAuditSessionData() and
2233     GetConnectionSELinuxSecurityContext() (fd.o #54445, Simon)
2234   · Fix example .service file (fd.o #66481, Chengwei Yang)
2235   · Don't claim D-Bus is "low-latency" (lower than what?), just
2236     give factual statements about it supporting async use
2237     (fd.o #65141, Justin Lee)
2238   · Document the contents of .service files, and the fact that
2239     system services' filenames are constrained
2240     (fd.o #66608; Simon McVittie, Chengwei Yang)
2241
2242 • Be thread-safe by default on all platforms, even if
2243   dbus_threads_init_default() has not been called. For compatibility with
2244   older libdbus, library users should continue to call
2245   dbus_threads_init_default(): it is harmless to do so.
2246   (fd.o #54972, Simon McVittie)
2247
2248 • Add GetConnectionCredentials() method (fd.o #54445, Simon)
2249
2250 • New API: dbus_setenv(), a simple wrapper around setenv().
2251   Note that this is not thread-safe. (fd.o #39196, Simon)
2252
2253 • Add dbus-send --peer=ADDRESS (connect to a given peer-to-peer connection,
2254   like --address=ADDRESS in previous versions) and dbus-send --bus=ADDRESS
2255   (connect to a given bus, like dbus-monitor --address=ADDRESS).
2256   dbus-send --address still exists for backwards compatibility,
2257   but is no longer documented. (fd.o #48816, Andrey Mazo)
2258
2259 • Windows-specific:
2260   · "dbus-daemon --nofork" is allowed on Windows again. (fd.o #68852,
2261     Simon McVittie)
2262
2263 Fixes:
2264
2265 • Avoid an infinite busy-loop if a signal interrupts waitpid()
2266   (fd.o #68945, Simon McVittie)
2267
2268 • Clean up memory for parent nodes when objects are unexported
2269   (fd.o #60176, Thomas Fitzsimmons)
2270
2271 • Make dbus_connection_set_route_peer_messages(x, FALSE) behave as
2272   documented. Previously, it assumed its second parameter was TRUE.
2273   (fd.o #69165, Chengwei Yang)
2274
2275 • Escape addresses containing non-ASCII characters correctly
2276   (fd.o #53499, Chengwei Yang)
2277
2278 • Document <servicedir> search order correctly (fd.o #66994, Chengwei Yang)
2279
2280 • Don't crash on "dbus-send --session / x.y.z" which regressed in 1.7.4.
2281   (fd.o #65923, Chengwei Yang)
2282
2283 • If malloc() returns NULL in _dbus_string_init() or similar, don't free
2284   an invalid pointer if the string is later freed (fd.o #65959, Chengwei Yang)
2285
2286 • If malloc() returns NULL in dbus_set_error(), don't va_end() a va_list
2287   that was never va_start()ed (fd.o #66300, Chengwei Yang)
2288
2289 • fix build failure with --enable-stats (fd.o #66004, Chengwei Yang)
2290
2291 • fix a regression test on platforms with strict alignment (fd.o #67279,
2292   Colin Walters)
2293
2294 • Avoid calling function parameters "interface" since certain Windows headers
2295   have a namespace-polluting macro of that name (fd.o #66493, Ivan Romanov)
2296
2297 • Assorted Doxygen fixes (fd.o #65755, Chengwei Yang)
2298
2299 • Various thread-safety improvements to static variables (fd.o #68610,
2300   Simon McVittie)
2301
2302 • Make "make -j check" work (fd.o #68852, Simon McVittie)
2303
2304 • Fix a NULL pointer dereference on an unlikely error path
2305   (fd.o #69327, Sviatoslav Chagaev)
2306
2307 • Improve valgrind memory pool tracking (fd.o #69326,
2308   Sviatoslav Chagaev)
2309
2310 • Don't over-allocate memory in dbus-monitor (fd.o #69329,
2311   Sviatoslav Chagaev)
2312
2313 • dbus-monitor can monitor dbus-daemon < 1.5.6 again
2314   (fd.o #66107, Chengwei Yang)
2315
2316 • Unix-specific:
2317   · If accept4() fails with EINVAL, as it can on older Linux kernels
2318     with newer glibc, try accept() instead of going into a busy-loop.
2319     (fd.o #69026, Chengwei Yang)
2320   · If socket() or socketpair() fails with EINVAL or EPROTOTYPE,
2321     for instance on Hurd or older Linux with a new glibc, try without
2322     SOCK_CLOEXEC. (fd.o #69073; Pino Toscano, Chengwei Yang)
2323   · Fix a file descriptor leak on an error code path.
2324     (fd.o #69182, Sviatoslav Chagaev)
2325   · dbus-run-session: clear some unwanted environment variables
2326     (fd.o #39196, Simon)
2327   · dbus-run-session: compile on FreeBSD (fd.o #66197, Chengwei Yang)
2328   · Don't fail the autolaunch test if there is no DISPLAY (fd.o #40352, Simon)
2329   · Use dbus-launch from the builddir for testing, not the installed copy
2330     (fd.o #37849, Chengwei Yang)
2331   · Fix compilation if writev() is unavailable (fd.o #69409,
2332     Vasiliy Balyasnyy)
2333   · Remove broken support for LOCAL_CREDS credentials passing, and
2334     document where each credential-passing scheme is used (fd.o #60340,
2335     Simon McVittie)
2336   · Make autogen.sh work on *BSD by not assuming GNU coreutils functionality
2337     (fd.o #35881, #69787; Chengwei Yang)
2338   · dbus-monitor: be portable to NetBSD (fd.o #69842, Chengwei Yang)
2339   · dbus-launch: stop using non-portable asprintf (fd.o #37849, Simon)
2340   · Improve error reporting from the setuid activation helper (fd.o #66728,
2341     Chengwei Yang)
2342
2343 • Windows-specific:
2344   · Remove unavailable command-line options from 'dbus-daemon --help'
2345     (fd.o #42441, Ralf Habacker)
2346   · Add support for looking up local TCPv4 clients' credentials on
2347     Windows XP via the undocumented AllocateAndGetTcpExTableFromStack
2348     function (fd.o #66060, Ralf Habacker)
2349   · Fix insufficient dependency-tracking (fd.o #68505, Simon McVittie)
2350   · Don't include wspiapi.h, fixing a compiler warning (fd.o #68852,
2351     Simon McVittie)
2352
2353 • Internal changes:
2354   · add DBUS_ENABLE_ASSERT, DBUS_ENABLE_CHECKS for less confusing
2355     conditionals (fd.o #66142, Chengwei Yang)
2356   · improve verbose-mode output (fd.o #63047, Colin Walters)
2357   · consolidate Autotools and CMake build (fd.o #64875, Ralf Habacker)
2358   · fix various unused variables, unusual build configurations
2359     etc. (fd.o #65712, #65990, #66005, #66257, #69165, #69410, #70218;
2360     Chengwei Yang, Vasiliy Balyasnyy)
2361
2362 D-Bus 1.7.4 (2013-06-13)
2363 ==
2364
2365 The “but is your thread-safety thread-safe?” release.
2366
2367 Security fixes:
2368
2369 • CVE-2013-2168: Fix misuse of va_list that could be used as a denial
2370   of service for system services. Vulnerability reported by Alexandru Cornea.
2371   (Simon)
2372
2373 Dependencies:
2374
2375 • The Windows version of libdbus now contains a C++ source file, used
2376   to provide global initialization when the library is loaded.
2377   gcc (mingw*) users should ensure that g++ is also installed.
2378
2379 • The libxml2-based configuration reader (which hasn't worked for 2.5 years,
2380   and was never the recommended option) has been removed. Expat is now a
2381   hard dependency.
2382
2383 Enhancements:
2384
2385 • It should now be safe to call dbus_threads_init_default() from any thread,
2386   at any time. Authors of loadable modules and plugins that use libdbus
2387   should consider doing so during initialization.
2388   (fd.o #54972, Simon McVittie)
2389
2390 • Improve dbus-send documentation and command-line parsing (fd.o #65424,
2391   Chengwei Yang)
2392
2393 Unix-specific:
2394   · dbus-run-session: experimental new tool to start a temporary D-Bus
2395     session, e.g. for regression tests or a text console, replacing
2396     certain uses of dbus-launch which weren't really correct
2397     (fd.o #39196, Simon)
2398
2399 Other fixes:
2400
2401 • In dbus-daemon, don't crash if a .service file starts with key=value
2402   (fd.o #60853, Chengwei Yang)
2403
2404 • Unix-specific:
2405   · Fix a crash similar to CVE-2013-2168 the first time we try to use syslog
2406     on a platform not defining LOG_PERROR, such as Solaris or QNX.
2407     This regressed in 1.7.0. (Simon)
2408   · Fix an assertion failure if we try to activate systemd services before
2409     systemd connects to the bus (fd.o #50199, Chengwei Yang)
2410   · Avoid compiler warnings for ignoring the return from write()
2411     (Chengwei Yang)
2412
2413 • Windows-specific:
2414   · Under cmake, install runtime libraries (DLLs) into bin/ instead of lib/
2415     so that Windows finds them (fd.o #59733, Ralf Habacker)
2416
2417 D-Bus 1.7.2 (2013-04-25)
2418 ==
2419
2420 The “only partially opaque” release.
2421
2422 Configuration changes:
2423
2424 • On non-QNX Unix platforms, the default limit on fds per message in the
2425   session bus configuration has reduced from 4096 to 1024. The default
2426   limit used on the system bus was already 1024. On QNX, both limits are
2427   reduced further, to 128.
2428
2429 Enhancements:
2430
2431 • D-Bus Specification 0.21
2432   · Following Unicode Corrigendum #9, the noncharacters U+nFFFE, U+nFFFF,
2433     U+FDD0..U+FDEF are allowed in UTF-8 strings again. (fd.o #63072,
2434     Simon McVittie)
2435
2436 Fixes:
2437
2438 • Diagnose incorrect use of dbus_connection_get_data() with negative slot
2439   (i.e. before allocating the slot) rather than returning junk
2440   (fd.o #63127, Dan Williams)
2441
2442 • Fix a cmake build regression since 1.7.0 (fd.o #63682; Ralf Habacker,
2443   Simon McVittie)
2444
2445 • Unix-specific:
2446   · On Linux, link successfully with glibc 2.17 (fd.o #63166, Simon McVittie)
2447   · Under systemd, log to syslog only, not stderr, avoiding duplication
2448     (fd.o #61399, #39987; Colin Walters, Dagobert Michelsen)
2449   · Under systemd, remove unnecessary dependency on syslog.socket
2450     (fd.o #63531, Cristian Rodríguez)
2451   · Include alloca.h for alloca() if available, fixing compilation on
2452     Solaris 10 (fd.o #63071, Dagobert Michelsen)
2453   · Allow use of systemd-logind without the rest of systemd
2454     (fd.o #62585, Martin Pitt)
2455   · When built with CMake, link to librt and use the right path for
2456     meinproc's XSLT stylesheets (fd.o #61637, Ralf Habacker)
2457   · Reduce the default limit on number of fds per message to 128 under
2458     QNX, working around an arbitrary OS limit (fd.o #61176, Matt Fischer)
2459
2460 • Windows-specific:
2461   · Do not claim that all bus clients have the dbus-daemon's credentials;
2462     pick up local TCPv4 clients' credentials (process ID and security
2463     identifier, i.e. user) using GetExtendedTcpTable() (fd.o #61787,
2464     Ralf Habacker)
2465
2466 D-Bus 1.7.0 (2013-02-22)
2467 ==
2468
2469 The "Disingenuous Assertions" release.
2470
2471 This is a new development release, starting the 1.7.x branch. D-Bus 1.6
2472 remains the recommended version for long-term-supported distributions
2473 or the upcoming GNOME 3.8 release.
2474
2475 Build-time configuration changes:
2476
2477 • The --with-dbus-session-bus-default-address configure option is no longer
2478   supported. Use the new --with-dbus-session-bus-connect-address and
2479   --with-dbus-session-bus-listen-address options instead. On Windows, you
2480   usually want them to have the same argument; on Unix, the defaults are
2481   usually correct.
2482
2483 • Similarly, the DBUS_SESSION_BUS_DEFAULT_ADDRESS CMake variable is no longer
2484   supported; use the new DBUS_SESSION_BUS_LISTEN_ADDRESS and
2485   DBUS_SESSION_BUS_CONNECT_ADDRESS variables instead.
2486
2487 • cmake/cross-compile.sh has been removed. Instead, please use a
2488   cross-toolchain file (-DCMAKE_TOOLCHAIN_FILE) as documented at
2489   <http://www.vtk.org/Wiki/CMake_Cross_Compiling>; or use Autotools
2490   as documented in "info automake Cross-Compilation", and set
2491   PKG_CONFIG_PATH appropriately.
2492
2493 Requirements:
2494
2495 • Man pages now require xmlto (or either xmlto or meinproc, if using CMake).
2496 • man2html is no longer used.
2497
2498 Enhancements:
2499
2500 • D-Bus Specification 0.20
2501   · actually say that /org/freedesktop/DBus is the object that
2502     implements o.fd.DBus (fd.o #51865, Colin Walters)
2503   · various reorganisation for better clarity (fd.o #38252, Simon McVittie)
2504   · stop claiming that all basic types work just like INT32 (strings don't!)
2505
2506 • The "source code" for the man pages is now Docbook XML, eliminating
2507   the outdated duplicate copies used when building with CMake.
2508   (fd.o #59805; Ralf Habacker, Simon McVittie)
2509
2510 Fixes:
2511
2512 • In the activation helper, when compiled for tests, do not reset the system
2513   bus address, fixing the regression tests. (fd.o #52202, Simon)
2514
2515 • Fix building with Valgrind 3.8, at the cost of causing harmless warnings
2516   with Valgrind 3.6 on some compilers (fd.o #55932, Arun Raghavan)
2517
2518 • Merge <servicehelper> from system-local.conf if necessary (fd.o #51560,
2519   Krzysztof Konopko)
2520
2521 • Under CMake, prefer xmlto over meinproc (fd.o #59733, Ralf Habacker)
2522
2523 • Stop duplicating CMake's own logic to find libexpat
2524   (fd.o #59733, Ralf Habacker)
2525
2526 • Don't assume CMake host and build system are the same (fd.o #59733,
2527   Ralf Habacker)
2528
2529 • Avoid deprecation warnings for GLib 2.35 (fd.o #59971, Simon McVittie)
2530
2531 • Unix-specific:
2532   · Check for functions in libpthread correctly, fixing compilation on
2533     (at least) OpenBSD (fd.o #47239, Simon)
2534   · Don't leak temporary fds pointing to /dev/null (fd.o #56927,
2535     Michel HERMIER)
2536   · Update sd-daemon.[ch] from systemd (fd.o #60681)
2537   · Add partial support for QNX (fd.o #60339, fd.o #61176; Matt Fischer)
2538
2539 • Windows-specific:
2540   · The default session bus listening and connecting address is now
2541     "autolaunch:", which makes D-Bus on Windows interoperate with itself
2542     and GDBus "out of the box". Use the configure options and cmake variables
2543     described above if you require a different autolaunch scope.
2544     (fd.o #38201, Simon McVittie)
2545   · Avoid a CMake warning under Cygwin (fd.o #59401, Ralf Habacker)
2546
2547 • Create session.d, system.d directories under CMake (fd.o #41319,
2548   Ralf Habacker)
2549
2550 D-Bus 1.6.8 (2012-09-28)
2551 ==
2552
2553 The "Fix one thing, break another" release.
2554
2555 • Follow up to CVE-2012-3524: The additional hardening
2556   work to use __secure_getenv() as a followup to bug #52202
2557   broke certain configurations of gnome-keyring.  Given
2558   the difficulty of making this work without extensive
2559   changes to gnome-keyring, use of __secure_getenv() is
2560   deferred.
2561
2562 D-Bus 1.6.6 (2012-09-28)
2563 ==
2564
2565 The "Clear the environment in your setuid binaries, please" release.
2566
2567 • CVE-2012-3524: Don't access environment variables (fd.o #52202)
2568   Thanks to work and input from Colin Walters, Simon McVittie,
2569   Geoffrey Thomas, and others.
2570 • Unix-specific:
2571   · Fix compilation on Solaris (fd.o #53286, Jonathan Perkin)
2572   · Work around interdependent headers on OpenBSD by including sys/types.h
2573     before each use of sys/socket.h (fd.o #54418, Brad Smith)
2574
2575 D-Bus 1.6.4 (2012-07-18)
2576 ==
2577
2578 • Detect that users are "at the console" correctly when configured with
2579   a non-default path such as --enable-console-auth-dir=/run/console
2580   (fd.o #51521, Dave Reisner)
2581
2582 • Remove an incorrect assertion from DBusTransport (fd.o #51657,
2583   Simon McVittie)
2584
2585 • Make --enable-developer default to "no" (regression in 1.6.2;
2586   fd.o #51657, Simon McVittie)
2587
2588 • Windows-specific:
2589   · Launch dbus-daemon correctly if its path contains a space
2590     (fd.o #49450, Wolfgang Baron)
2591
2592 D-Bus 1.6.2 (2012-06-27)
2593 ==
2594
2595 The "Ice Cabbage" release.
2596
2597 • Change how we create /var/lib/dbus so it works under Automake >= 1.11.4
2598   (fd.o #51406, Simon McVittie)
2599
2600 • Don't return from dbus_pending_call_set_notify with a lock held on OOM
2601   (fd.o #51032, Simon McVittie)
2602
2603 • Disconnect "developer mode" (assertions, verbose mode etc.) from
2604   Automake maintainer mode. D-Bus developers should now configure with
2605   --enable-developer. Automake maintainer mode is now on by default;
2606   distributions can disable it with --disable-maintainer-mode.
2607   (fd.o #34671, Simon McVittie)
2608
2609 • Automatically define DBUS_STATIC_BUILD in static-only Autotools builds,
2610   fixing linking when targeting Windows (fd.o #33973; william, Simon McVittie)
2611
2612 • Unix-specific:
2613   · Check for libpthread under CMake on Unix (fd.o #47237, Simon McVittie)
2614
2615 D-Bus 1.6.0 (2012-06-05)
2616 ==
2617
2618 The “soul of this machine has improved” release.
2619
2620 This version starts a new stable branch of D-Bus: only bug fixes will
2621 be accepted into 1.6.x. Other changes will now go to the 1.7.x branch.
2622
2623 Summary of changes since 1.4.x:
2624
2625 • New requirements
2626   · PTHREAD_MUTEX_RECURSIVE on Unix
2627   · compiler support for 64-bit integers (int64_t or equivalent)
2628
2629 • D-Bus Specification v0.19
2630
2631 • New dbus-daemon features
2632   · <allow own_prefix="com.example.Service"/> rules allow the service to
2633     own names like com.example.Service.Instance3
2634   · optional systemd integration when checking at_console policies
2635   · --nopidfile option, mainly for use by systemd
2636   · path_namespace and arg0namespace may appear in match rules
2637   · eavesdropping is disabled unless the match rule contains eavesdrop=true
2638
2639 • New public API
2640   · functions to validate various string types (dbus_validate_path() etc.)
2641   · dbus_type_is_valid()
2642   · DBusBasicValue, a union of every basic type
2643
2644 • Bug fixes
2645   · removed an unsafe reimplementation of recursive mutexes
2646   · dbus-daemon no longer busy-loops if it has far too many file descriptors
2647   · dbus-daemon.exe --print-address works on Windows
2648   · all the other bug fixes from 1.4.20
2649
2650 • Other major implementation changes
2651   · on Linux, dbus-daemon uses epoll if supported, for better scalability
2652   · dbus_threads_init() ignores its argument and behaves like
2653     dbus_threads_init_default() instead
2654   · removed the per-connection link cache, improving dbus-daemon performance
2655
2656 • Developer features
2657   · optional Valgrind instrumentation (--with-valgrind)
2658   · optional Stats interface on the dbus-daemon (--enable-stats)
2659   · optionally abort whenever malloc() fails (--enable-embedded-tests
2660     and export DBUS_MALLOC_CANNOT_FAIL=1)
2661
2662 Changes since 1.5.12:
2663
2664 • Be more careful about monotonic time vs. real time, fixing DBUS_COOKIE_SHA1
2665   spec-compliance (fd.o #48580, David Zeuthen)
2666
2667 • Don't use install(1) within the source/build trees, fixing the build as
2668   non-root when using OpenBSD install(1) (fd.o #48217, Antoine Jacoutot)
2669
2670 • Add missing commas in some tcp and nonce-tcp addresses, and remove
2671   an unused duplicate copy of the nonce-tcp transport in Windows builds
2672   (fd.o #45896, Simon McVittie)
2673
2674 D-Bus 1.5.12 (2012-03-27)
2675 ==
2676
2677 The “Big Book of Science” release.
2678
2679 • Add public API to validate various string types:
2680   dbus_validate_path(), dbus_validate_interface(), dbus_validate_member(),
2681   dbus_validate_error_name(), dbus_validate_bus_name(), dbus_validate_utf8()
2682   (fd.o #39549, Simon McVittie)
2683
2684 • Turn DBusBasicValue into public API so bindings don't need to invent their
2685   own "union of everything" type (fd.o #11191, Simon McVittie)
2686
2687 • Enumerate data files included in the build rather than using find(1)
2688   (fd.o #33840, Simon McVittie)
2689
2690 • Add support for policy rules like <allow own_prefix="com.example.Service"/>
2691   in dbus-daemon (fd.o #46273, Alban Crequy)
2692
2693 • Windows-specific:
2694   · make dbus-daemon.exe --print-address (and --print-pid) work again
2695     on Win32, but not on WinCE (fd.o #46049, Simon McVittie)
2696   · fix duplicate case value when compiling against mingw-w64
2697     (fd.o #47321, Andoni Morales Alastruey)
2698
2699 D-Bus 1.5.10 (2012-02-21)
2700 ==
2701
2702 The "fire in Delerium" release.
2703
2704 On Unix platforms, PTHREAD_MUTEX_RECURSIVE (as specified in POSIX 2008 Base
2705 and SUSv2) is now required.
2706
2707 • D-Bus Specification 0.19:
2708   · Formally define unique connection names and well-known bus names,
2709     and document best practices for interface, bus, member and error names,
2710     and object paths (fd.o #37095, Simon McVittie)
2711   · Document the search path for session and system services on Unix, and
2712     where they should be installed by build systems (fd.o #21620, fd.o #35306;
2713     Simon McVittie)
2714   · Document the systemd transport (fd.o #35232, Lennart Poettering)
2715
2716 • Make dbus_threads_init() use the same built-in threading implementation
2717   as dbus_threads_init_default(); the user-specified primitives that it
2718   takes as a parameter are now ignored (fd.o #43744, Simon McVittie)
2719
2720 • Allow all configured auth mechanisms, not just one (fd.o #45106,
2721   Pavel Strashkin)
2722
2723 • Improve cmake build system (Ralf Habacker):
2724   · simplify XML parser dependencies (fd.o #41027)
2725   · generate build timestamp (fd.o #41029)
2726   · only create batch files on Windows
2727   · fix option and cache syntax
2728   · add help-options target
2729   · share dbus-arch-deps.h.in with autotools rather than having our
2730     own version (fd.o #41033)
2731
2732 • Build tests successfully with older GLib, as found in e.g. Debian 6
2733   (fd.o #41219, Simon McVittie)
2734
2735 • Avoid use of deprecated GThread API (fd.o #44413, Martin Pitt)
2736
2737 • Build documentation correctly if man2html doesn't support filenames on
2738   its command-line (fd.o #43875, Jack Nagel)
2739
2740 • Improve test coverage. To get even more coverage, run the tests with
2741   DBUS_TEST_SLOW=1 (fd.o #38285, #42811; Simon McVittie)
2742
2743 • Reduce the size of the shared library by moving functionality only used
2744   by dbus-daemon, tests etc. into their internal library and deleting
2745   unused code (fd.o #34976, #39759; Simon McVittie)
2746
2747 • Add dbus-daemon --nopidfile option, overriding the configuration, for
2748   setups where the default configuration must include <pidfile/> to avoid
2749   breaking traditional init, but the pid file is in fact unnecessary; use
2750   it under systemd to improve startup time a bit (fd.o #45520,
2751   Lennart Poettering)
2752
2753 • Optionally (if configured --with-valgrind) add instrumentation to debug
2754   libdbus and associated tools more meaningfully under Valgrind
2755   (fd.o #37286, Simon McVittie)
2756
2757 • Improve the dbus-send(1) man page (fd.o #14005, Simon McVittie)
2758
2759 • Make dbus-protocol.h compatible with C++11 (fd.o #46147, Marc Mutz)
2760
2761 • If tests are enabled and DBUS_MALLOC_CANNOT_FAIL is set in the environment,
2762   abort on failure to malloc() (like GLib does), to turn runaway memory leaks
2763   into a debuggable core-dump if a resource limit is applied (fd.o #41048,
2764   Simon McVittie)
2765
2766 • Don't crash if realloc() returns NULL in a debug build (fd.o #41048,
2767   Simon McVittie)
2768
2769 • Unix-specific:
2770   · Replace our broken reimplementation of recursive mutexes, which has
2771     been broken since 2006, with an ordinary pthreads recursive mutex
2772     (fd.o #43744; Sigmund Augdal, Simon McVittie)
2773   · Use epoll(7) for a more efficient main loop in Linux; equivalent patches
2774     welcomed for other OSs' equivalents like kqueue, /dev/poll, or Solaris
2775     event ports (fd.o #33337; Simon McVittie, Ralf Habacker)
2776   · When running under systemd, use it instead of ConsoleKit to check
2777     whether to apply at_console policies (fd.o #39609, Lennart Poettering)
2778   · Avoid a highly unlikely fd leak (fd.o #29881, Simon McVittie)
2779   · Don't close invalid fd -1 if getaddrinfo fails (fd.o #37258, eXeC001er)
2780   · Don't touch ~/.dbus and ~/.dbus-keyrings when running 'make installcheck'
2781     (fd.o #41218, Simon McVittie)
2782   · Stop pretending we respect XDG_DATA_DIRS for system services: the launch
2783     helper doesn't obey environment variables to avoid privilege escalation
2784     attacks, so make the system bus follow the same rules
2785     (fd.o #21620, Simon McVittie)
2786
2787 • Windows-specific:
2788   · Find the dbus-daemon executable next to the shared library (fd.o #41558;
2789     Jesper Dam, Ralf Habacker)
2790   · Remove the faulty implementation of _dbus_condvar_wake_all (fd.o #44609,
2791     Simon McVittie)
2792
2793 D-Bus 1.5.8 (2011-09-21)
2794 ==
2795
2796 The "cross-metering" release.
2797
2798 In addition to dead code removal and refactoring, this release contains all
2799 of the bugfixes from 1.4.16.
2800
2801 • Clean up dead code, and make more warnings fatal in development builds
2802   (fd.o #39231, fd.o #41012; Simon McVittie)
2803
2804 • If full test coverage is requested via --enable-tests, strictly require
2805   Python, pygobject and dbus-python, which are required by some tests; if not,
2806   and Python is missing, skip those tests rather than failing
2807   (fd.o #37847, Simon McVittie)
2808
2809 • When using cmake, provide the same version-info API in the installed headers
2810   as for autotools (DBUS_VERSION, etc.) (fd.o #40905, Ralf Habacker)
2811
2812 • Add a regression test for fd.o #38005 (fd.o #39836, Simon McVittie)
2813
2814 • Make "NOCONFIGURE=1 ./autogen.sh" not run configure (Colin Walters)
2815
2816 • Add _DBUS_STATIC_ASSERT and use it to check invariants (fd.o #39636,
2817   Simon McVittie)
2818
2819 • Fix duplicates in authors list (Ralf Habacker)
2820
2821 • Fix broken links from dbus-tutorial.html if $(htmldir) != $(docdir)
2822   (fd.o #39879, Chris Mayo)
2823
2824 • Fix a small memory leak, and a failure to report errors, when updating
2825   a service file entry for activation (fd.o #39230, Simon McVittie)
2826
2827 • Unix-specific:
2828   · Clean up (non-abstract) Unix sockets on bus daemon exit (fd.o #38656;
2829     Brian Cameron, Simon McVittie)
2830   · On systems that use libcap-ng but not systemd, drop supplemental groups
2831     when switching to the daemon user (Red Hat #726953, Steve Grubb)
2832   · Make the cmake build work again on GNU platforms (fd.o #29228,
2833     Simon McVittie)
2834   · Fix compilation on non-C99 systems that have inttypes.h but not stdint.h,
2835     like Solaris (fd.o #40313, Dagobert Michelsen)
2836   · Define CMSG_ALIGN, CMSG_LEN, CMSG_SPACE on Solaris < 10
2837     (fd.o #40235, Simon McVittie)
2838   · Cope with Unixes that don't have LOG_PERROR, like Solaris 10
2839     (fd.o #39987, Simon McVittie)
2840   · Cope with platforms whose vsnprintf violates both POSIX and C99, like
2841     Tru64, IRIX and HP-UX (fd.o #11668, Simon McVittie)
2842
2843 • Windows-specific:
2844   · Fix compilation on MSVC, which doesn't understand "inline" with its
2845     C99 meaning (fd.o #40000; Ralf Habacker, Simon McVittie)
2846   · Fix misuse of GPid in test/dbus-daemon.c (fd.o #40003, Simon McVittie)
2847   · Fix cross-compilation to Windows with Automake (fd.o #40003, Simon McVittie)
2848
2849 D-Bus 1.5.6 (2011-07-29)
2850 ==
2851
2852 The "weird, gravy-like aftertaste" release.
2853
2854 In addition to new features and refactoring, this release contains all of the
2855 bugfixes from 1.4.14.
2856
2857 Potentially incompatible (Bustle and similar debugging tools will need
2858 changes to work as intended):
2859
2860 • Do not allow match rules to "eavesdrop" (receive messages intended for a
2861   different recipient) by mistake: eavesdroppers must now opt-in to this
2862   behaviour by putting "eavesdrop='true'" in the match rule, which will
2863   not have any practical effect on buses where eavesdropping is not allowed
2864   (fd.o #37890, Cosimo Alfarano)
2865
2866 Other changes:
2867
2868 • D-Bus Specification version 0.18 (fd.o #37890, fd.o #39450, fd.o #38252;
2869   Cosimo Alfarano, Simon McVittie)
2870   · add the "eavesdrop" keyword to match rules
2871   · define eavesdropping, unicast messages and broadcast messages
2872   · stop claiming that match rules are needed to match unicast messages to you
2873   · promote the type system to be a top-level section
2874
2875 • Use DBUS_ERROR_OBJECT_PATH_IN_USE if dbus_connection_try_register_object_path
2876   or dbus_connection_try_register_fallback fails, not ...ADDRESS_IN_USE,
2877   and simplify object-path registration (fd.o #38874, Jiří Klimeš)
2878
2879 • Consistently use atomic operations on everything that is ever manipulated
2880   via atomic ops, as was done for changes to DBusConnection's refcount in
2881   1.4.12 (fd.o #38005, Simon McVittie)
2882
2883 • Fix a file descriptor leak when connecting to a TCP socket (fd.o #37258,
2884   Simon McVittie)
2885
2886 • Make "make check" in a clean tree work, by not running tests until
2887   test data has been set up (fd.o #34405, Simon McVittie)
2888
2889 • The dbus-daemon no longer busy-loops if it has a very large number of file
2890   descriptors (fd.o #23194, Simon McVittie)
2891
2892 • Refactor message flow through dispatching to avoid locking violations if
2893   the bus daemon's message limit is hit; remove the per-connection link cache,
2894   which was meant to improve performance, but now reduces it (fd.o #34393,
2895   Simon McVittie)
2896
2897 • Some cmake fixes (Ralf Habacker)
2898
2899 • Remove dead code, mainly from DBusString (fd.o #38570, fd.o #39610;
2900   Simon McVittie, Lennart Poettering)
2901
2902 • Stop storing two extra byte order indicators in each D-Bus message
2903   (fd.o #38287, Simon McVittie)
2904
2905 • Add an optional Stats interface which can be used to get statistics from
2906   a running dbus-daemon if enabled at configure time with --enable-stats
2907   (fd.o #34040, Simon McVittie)
2908
2909 • Fix various typos (fd.o #27227, fd.o #38284; Sascha Silbe, Simon McVittie)
2910
2911 • Documentation (fd.o #36156, Simon McVittie):
2912   · let xsltproc be overridden as usual: ./configure XSLTPROC=myxsltproc
2913   · install more documentation automatically, including man2html output
2914   · put dbus.devhelp in the right place (it must go in ${htmldir})
2915
2916 • Unix-specific:
2917   · look for system services in /lib/dbus-1/system-services in addition to all
2918     the other well-known locations; note that this should always be /lib,
2919     even on platforms where shared libraries on the root FS would go in /lib64,
2920     /lib/x86_64-linux-gnu or similar (fd.o #35229, Lennart Poettering)
2921   · opt-in to fd passing on Solaris (fd.o #33465, Simon McVittie)
2922
2923 • Windows-specific (Ralf Habacker):
2924   · fix use of a mutex for autolaunch server detection
2925   · don't crash on malloc failure in _dbus_printf_string_upper_bound
2926
2927 D-Bus 1.5.4 (2011-06-10)
2928 ==
2929
2930 Security (local denial of service):
2931
2932 • Byte-swap foreign-endian messages correctly, preventing a long-standing
2933   local DoS if foreign-endian messages are relayed through the dbus-daemon
2934   (backporters: this is git commit c3223ba6c401ba81df1305851312a47c485e6cd7)
2935   (CVE-2011-2200, fd.o #38120, Debian #629938; Simon McVittie)
2936
2937 New things:
2938
2939 • The constant to use for an infinite timeout now has a name,
2940   DBUS_TIMEOUT_INFINITE. It is numerically equivalent to 0x7fffffff (INT32_MAX)
2941   which can be used for source compatibility with older versions of libdbus.
2942
2943 • If GLib and DBus-GLib are already installed, more tests will be built,
2944   providing better coverage. The new tests can also be installed via
2945       ./configure --enable-installed-tests
2946   for system integration testing, if required. (fd.o #34570, Simon McVittie)
2947
2948 Changes:
2949
2950 • Consistently use atomic operations for the DBusConnection's refcount,
2951   fixing potential threading problems (fd.o #38005, Simon McVittie)
2952
2953 • Don't use -Wl,--gc-sections by default: in practice the size decrease is
2954   small (300KiB on x86-64) and it frequently doesn't work in unusual
2955   toolchains. To optimize for minimum installed size, you should benchmark
2956   various possibilities for CFLAGS and LDFLAGS, and set the best flags for
2957   your particular toolchain at configure time. (fd.o #33466, Simon McVittie)
2958
2959 • Use #!/bin/sh for run-with-tmp-session-bus.sh, making it work on *BSD
2960   (fd.o #35880, Timothy Redaelli)
2961
2962 • Use ln -fs to set up dbus for systemd, which should fix reinstallation
2963   when not using a DESTDIR (fd.o #37870, Simon McVittie)
2964
2965 • Windows-specific changes:
2966   · don't try to build dbus-daemon-launch-helper (fd.o #37838, Mark Brand)
2967
2968 D-Bus 1.5.2 (2011-06-01)
2969 ==
2970
2971 The "Boar Hunter" release.
2972
2973 Notes for distributors:
2974
2975   This version of D-Bus no longer uses -fPIE by default. Distributions wishing
2976   to harden the dbus-daemon and dbus-launch-helper can re-enable this if their
2977   toolchain supports it reliably, via something like:
2978
2979     ./configure CFLAGS=-fPIE LDFLAGS="-pie -Wl,-z,relro"
2980
2981   or by using distribution-specific wrappers such as Debian's hardening-wrapper.
2982
2983 Changes:
2984
2985   • D-Bus Specification v0.17
2986     · Reserve the extra characters used in signatures by GVariant
2987       (fd.o #34529, Simon McVittie)
2988     · Define the ObjectManager interface (fd.o #34869, David Zeuthen)
2989   • Don't force -fPIE: distributions and libtool know better than we do whether
2990     it's desirable (fd.o #16621, fd.o #27215; Simon McVittie)
2991   • Allow --disable-gc-sections, in case your toolchain offers the
2992     -ffunction-sections, -fdata-sections and -Wl,--gc-sections options
2993     but they're broken, as seen on Solaris (fd.o #33466, Simon McVittie)
2994   • Install dbus-daemon and dbus-daemon-launch-helper in a more normal way
2995     (fd.o #14512; Simon McVittie, loosely based on a patch from Luca Barbato)
2996   • Ensure that maintainers upload documentation with the right permissions
2997     (fd.o #36130, Simon McVittie)
2998   • Don't force users of libdbus to be linked against -lpthread, -lrt
2999     (fd.o #32827, Simon McVittie)
3000   • Log system-bus activation information to syslog (fd.o #35705,
3001     Colin Walters)
3002   • Log messages dropped due to quotas to syslog (fd.o #35358,
3003     Simon McVittie)
3004   • Make the nonce-tcp transport work on Unix (fd.o #34569, Simon McVittie)
3005   • On Unix, if /var/lib/dbus/machine-id cannot be read, try /etc/machine-id
3006     (fd.o #35228, Lennart Poettering)
3007   • In the regression tests, don't report fds as "leaked" if they were open
3008     on startup (fd.o #35173, Simon McVittie)
3009   • Make dbus-monitor bail out if asked to monitor more than one bus,
3010     rather than silently using the last one (fd.o #26548, Will Thompson)
3011   • Clarify documentation (fd.o #35182, Simon McVittie)
3012   • Clean up minor dead code and some incorrect error handling
3013     (fd.o #33128, fd.o #29881; Simon McVittie)
3014   • Check that compiler options are supported before using them (fd.o #19681,
3015     Simon McVittie)
3016   • Windows:
3017     • Remove obsolete workaround for winioctl.h (fd.o #35083, Ralf Habacker)
3018
3019 D-Bus 1.5.0 (2011-04-11)
3020 ==
3021
3022 The "you never know when you need to tow something from your giant
3023 flying shark" release.
3024
3025   • D-Bus Specification v0.16
3026     · Add support for path_namespace and arg0namespace in match rules
3027       (fd.o #24317, #34870; Will Thompson, David Zeuthen, Simon McVittie)
3028     · Make argNpath support object paths, not just object-path-like strings,
3029       and document it better (fd.o #31818, Will Thompson)
3030   • Let the bus daemon implement more than one interface (fd.o #33757,
3031     Simon McVittie)
3032   • Optimize _dbus_string_replace_len to reduce waste (fd.o #21261,
3033     Roberto Guido)
3034   • Require user intervention to compile with missing 64-bit support
3035     (fd.o #35114, Simon McVittie)
3036   • Add dbus_type_is_valid as public API (fd.o #20496, Simon McVittie)
3037   • Raise UnknownObject instead of UnknownMethod for calls to methods on
3038     paths that are not part of the object tree, and UnknownInterface for calls
3039     to unknown interfaces in the bus daemon (fd.o #34527, Lennart Poettering)
3040
3041 D-Bus 1.4.8 (2011-04-08)
3042 ==
3043
3044 The "It's like the beginning of a lobster" release.
3045
3046   • Rename configure.in to configure.ac, and update it to modern conventions
3047     (fd.o #32245; Javier Jardón, Simon McVittie)
3048   • Correctly give XDG_DATA_HOME priority over XDG_DATA_DIRS (fd.o #34496,
3049     Anders Kaseorg)
3050   • Prevent X11 autolaunching if $DISPLAY is unset or empty, and add
3051     --disable-x11-autolaunch configure option to prevent it altogether
3052     in embedded environments (fd.o #19997, NB#219964; Simon McVittie)
3053   • Install the documentation, and an index for Devhelp (fd.o #13495,
3054     Debian #454142; Simon McVittie, Matthias Clasen)
3055   • If checks are not disabled, check validity of string-like types and
3056     booleans when sending them (fd.o #16338, NB#223152; Simon McVittie)
3057   • Add UnknownObject, UnknownInterface, UnknownProperty and PropertyReadOnly
3058     errors to dbus-shared.h (fd.o #34527, Lennart Poettering)
3059   • Break up a huge conditional in config-parser so gcov can produce coverage
3060     data (fd.o #10887, Simon McVittie)
3061   • List which parts of the Desktop Entry specification are applicable to
3062     .service files (fd.o #19159, Sven Herzberg)
3063   • Don't suppress service activation if two services have the same Exec=
3064     (fd.o #35750, Colin Walters)
3065   • Windows:
3066     · Avoid the name ELEMENT_TYPE due to namespace-pollution from winioctl.h
3067       (Andre Heinecke)
3068     · Include _dbus_path_is_absolute in libdbus on Windows, fixing compilation
3069       (fd.o #32805, Mark Brand)
3070
3071 D-Bus 1.4.6 (2010-02-17)
3072 ==
3073
3074 The "1, 2, miss a few, 99, 100" release.
3075
3076   • Remove unfinished changes intended to support GTest-based tests,
3077     which were mistakenly included in 1.4.4
3078
3079 D-Bus 1.4.4 (2010-02-17)
3080 ==
3081
3082   • Switch back to using even micro versions for stable releases; 1.4.1
3083     should have been called 1.4.2, so skip that version number
3084   • Don't leave bad file descriptors being watched when spawning processes,
3085     which could result in a busy-loop (fd.o #32992, NB#200248; possibly
3086     also LP#656134, LP#680444, LP#713157)
3087   • Check for MSG_NOSIGNAL correctly
3088   • Fix failure to detect abstract socket support (fd.o #29895)
3089   • Make _dbus_system_logv actually exit with DBUS_SYSTEM_LOG_FATAL
3090     (fd.o #32262, NB#180486)
3091   • Improve some error code paths (fd.o #29981, fd.o #32264, fd.o #32262,
3092     fd.o #33128, fd.o #33277, fd.o #33126, NB#180486)
3093   • Avoid possible symlink attacks in /tmp during compilation (fd.o #32854)
3094   • Tidy up dead code (fd.o #25306, fd.o #33128, fd.o #34292, NB#180486)
3095   • Improve gcc malloc annotations (fd.o #32710)
3096   • If the system bus is launched via systemd, protect it from the OOM killer
3097   • Documentation improvements (fd.o #11190)
3098   • Avoid readdir_r, which is difficult to use correctly (fd.o #8284,
3099     fd.o #15922, LP#241619)
3100   • Cope with invalid files in session.d, system.d (fd.o #19186,
3101     Debian #230231)
3102   • Don't distribute generated files that embed our builddir (fd.o #30285,
3103     fd.o #34292)
3104   • Raise the system bus's fd limit to be sufficient for its configuration
3105     (fd.o #33474, LP#381063)
3106   • Fix syslog string processing
3107   • Ignore -Waddress
3108   • Remove broken gcov parsing code and --enable-gcov, and replace them
3109     with lcov HTML reports and --enable-compiler-coverage (fd.o #10887)
3110   • Windows:
3111     · avoid live-lock in Windows CE due to unfair condition variables
3112   • OpenBSD:
3113     · support credentials-passing (fd.o #32542)
3114   • Solaris:
3115     · opt-in to thread safety (fd.o #33464)
3116
3117 D-Bus 1.4.1 (20 December 2010)
3118 ==
3119
3120  • Fix for CVE-2010-4352: sending messages with excessively-nested variants can
3121    crash the bus. The existing restriction to 64-levels of nesting previously
3122    only applied to the static type signature; now it also applies to dynamic
3123    nesting using variants. Thanks to Rémi Denis-Courmont for discoving this
3124    issue.
3125  • OS X portability fixes, including launchd support.
3126  • Windows autolaunch improvements.
3127  • Various bug fixes.
3128
3129 D-Bus 1.4.0 (6 Sep 2010)
3130 ==
3131  - systemd hookup
3132
3133 D-Bus 1.3.1 (23 June 2010)
3134 ==
3135  - New standardized PropertiesChanged signal in the properties interface
3136  - Various portability fixes, in particular to Windows platforms
3137  - Support forking bus services, for compatibility
3138
3139 D-Bus 1.3.0 (29 July 2009)
3140 ==
3141  - ability for dbus-send to send to any bus (--address)
3142  - file descriptor passing on Unix socket transports
3143  - use of GCC atomic intrinsics for better processor support
3144    (requires -march=i486 or above for x86 compilation)
3145  - thread-safe FD_CLOEXEC setting on recent Linux kernels (2.6.24-27 and up)
3146    and glibc (2.9 for pipe2 and 2.10 for accept4)
3147  - feature negotiation in the bus daemon