Merge branch 'dbus-1.10'
[platform/upstream/dbus.git] / NEWS
1 D-Bus 1.11.4 (UNRELEASED)
2 ==
3
4 ...
5
6 D-Bus 1.11.2 (2016-03-07)
7 ==
8
9 The “pneumatic drill vs. Iron Maiden” release.
10
11 Fixes:
12
13 • Enable "large file support" on systems where it exists: dbus-daemon
14   is not expected to open large files, but it might need to stat files
15   that happen to have large inode numbers (fd.o #93545, Hongxu Jia)
16
17 • Eliminate padding inside DBusMessageIter on 64-bit platforms,
18   which might result in a pedantic C compiler not copying the entire contents
19   of a DBusMessageIter; statically assert that this is not an ABI change
20   in practice (fd.o #94136, Simon McVittie)
21
22 • Document dbus-test-tool echo --sleep-ms=N instead of incorrect --sleep=N
23   (fd.o #94244, Dmitri Iouchtchenko)
24
25 • Correctly report test failures in C tests from run-test.sh
26   (fd.o #93379; amit tewari, Simon McVittie)
27
28 • When tests are enabled, run all the marshal-validate tests, not just
29   the even-numbered ones (fd.o #93908, Nick Lewycky)
30
31 • Correct the expected error from one marshal-validate test, which was
32   previously not run due to the above bug (fd.o #93908, Simon McVittie)
33
34 • Fix compilation under CMake when embedded tests are disabled
35   (fd.o #94094, eric.hyer)
36
37 Internal changes:
38
39 • Fix all -Wpointer-sign (signed/unsigned mismatch) warnings, and enable the
40   warning (fd.o #93069; Ralf Habacker, Simon McVittie)
41
42 • When building with CMake, use the same gcc/clang warnings as under Autotools,
43   or MSVC warnings that are broadly similar (fd.o #93069, Ralf Habacker)
44
45 • test/name-test: make C tests produce TAP output and run them directly, not
46   via run-test.sh (fd.o #92899, Simon McVittie)
47
48 • Under CMake when cross-compiling for Windows on Unix, run the tests
49   under Wine even if binfmt_misc support is not available
50   (fd.o #88966, Ralf Habacker)
51
52 • The DBUS_USE_TEST_BINARY environment variable is no longer used by builds with
53   embedded tests; DBUS_TEST_DBUS_LAUNCH replaces it (fd.o #92899, Simon McVittie)
54
55 • Factor out some functions that will be needed in future for a Windows
56   implementation of dbus-run-session (fd.o #92899, Ralf Habacker)
57
58 D-Bus 1.11.0 (2015-12-02)
59 ==
60
61 The “peppermint deer” release.
62
63 Dependencies:
64
65 • On non-Windows platforms, dbus now requires an <inttypes.h> that defines
66   C99 constants such as PRId64 and PRIu64.
67
68 Enhancements:
69
70 • D-Bus Specification version 0.27
71   · Specify that services should not reply if NO_REPLY_EXPECTED was used
72     (fd.o #75749, Lars Uebernickel)
73
74 • Add a script to do continuous-integration builds, and metadata to run it
75   on travis-ci.org. To use this, clone the dbus git repository on GitHub
76   and set it up with travis-ci.org; the only special setting needed is
77   "only build branches with a .travis.yml". (fd.o #93194, Simon McVittie)
78
79 • If dbus-daemon is run with --systemd-activation, do not require
80   org.freedesktop.systemd1.service to exist (fd.o #93194, Simon McVittie)
81
82 Fixes:
83
84 • Re-order dbus-daemon startup so that on SELinux systems, the thread
85   that reads AVC notifications retains the ability to write to the
86   audit log (fd.o #92832, Laurent Bigonville)
87
88 • Print 64-bit integers on non-GNU Unix platforms (fd.o #92043, Natanael Copa)
89
90 • When using the Monitoring interface, match messages' destinations
91   (fd.o #92074, Simon McVittie)
92
93 • On Linux with systemd, stop installing a reference to the obsolete
94   dbus.target, and enable dbus.socket statically (fd.o #78412, #92402;
95   Simon McVittie)
96
97 • On Windows, when including configuration files with <include> or
98   <includedir>, apply the same relocation as for the Exec paths
99   in .service files (fd.o #92028, Simon McVittie)
100
101 • Add support for backtraces on Windows (fd.o #92721, Ralf Habacker)
102
103 • Fix many -Wpointer-sign warnings (fd.o #93069, Ralf Habacker)
104
105 D-Bus 1.10.6 (2015-12-01)
106 ==
107
108 The “marzipan beetles” release.
109
110 Fixes:
111
112 • On Unix when running tests as root, don't assert that root and
113   the dbus-daemon user can still call UpdateActivationEnvironment;
114   assert that those privileged users can call BecomeMonitor instead
115   (fd.o #93036, Simon McVittie)
116
117 • On Windows, fix a memory leak in the autolaunch transport (fd.o #92899,
118   Simon McVittie)
119
120 • On Windows Autotools builds, don't run tests that rely on
121   dbus-run-session and other Unix-specifics (fd.o #92899, Simon McVittie)
122
123 D-Bus 1.10.4 (2015-11-17)
124 ==
125
126 The “Frostburn Canyon” release.
127
128 Enhancements:
129
130 • GetConnectionCredentials, GetConnectionUnixUser and
131   GetConnectionUnixProcessID with argument "org.freedesktop.DBus"
132   will now return details of the dbus-daemon itself. This is required
133   to be able to call SetEnvironment on systemd.
134   (fd.o #92857, Jan Alexander Steffens)
135
136 Fixes:
137
138 • Make UpdateActivationEnvironment always fail with AccessDenied on the
139   system bus. Previously, it was possible to configure it so root could
140   call it, but the environment variables were not actually used,
141   because the launch helper would discard them.
142   (fd.o #92857, Jan Alexander Steffens)
143
144 • On Unix with --systemd-activation on a user bus, make
145   UpdateActivationEnvironment pass on its arguments to systemd's
146   SetEnvironment method, solving inconsistency between the environments
147   used for traditional activation and systemd user-service activation.
148   (fd.o #92857, Jan Alexander Steffens)
149
150 • On Windows, don't crash if <syslog/> or --syslog is used
151   (fd.o #92538, Ralf Habacker)
152
153 • On Windows, fix a memory leak when setting a DBusError from a Windows
154   error (fd.o #92721, Ralf Habacker)
155
156 • On Windows, don't go into infinite recursion if we abort the process
157   with backtraces enabled (fd.o #92721, Ralf Habacker)
158
159 • Fix various failing tests, variously on Windows and cross-platform:
160   · don't test system.conf features (users, groups) that only make sense
161     on the system bus, which is not supported on Windows
162   · don't call _dbus_warn() when we skip a test, since it is fatal
163   · fix computation of expected <standard_session_servicedirs/>
164   · when running TAP tests, translate newlines to Unix format, fixing
165     cross-compiled tests under Wine on Linux
166   · don't stress-test refcounting under Wine, where it's really slow
167   · stop assuming that a message looped-back to the test will be received
168     immediately
169   · skip some system bus tests on Windows since they make no sense there
170   (fd.o #92538, fd.o #92721; Ralf Habacker, Simon McVittie)
171
172 D-Bus 1.10.2 (2015-10-26)
173 ==
174
175 The “worst pies in London” release.
176
177 Fixes:
178
179 • Correct error handling for activation: if there are multiple attempts
180   to activate the same service and it fails immediately, the first attempt
181   would get the correct reply, but the rest would time out. We now send
182   the same error reply to each attempt. (fd.o #92200, Simon McVittie)
183
184 • If BecomeMonitor is called with a syntactically invalid match rule,
185   don't crash with an assertion failure, fixing a regression in 1.9.10.
186   This was not exploitable as a denial of service, because the check
187   for a privileged user is done first. (fd.o #92298, Simon McVittie)
188
189 • On Linux with --enable-user-session, add the bus address to the
190   environment of systemd services for better backwards compatibility
191   (fd.o #92612, Jan Alexander Steffens)
192
193 • On Windows, fix the logic for replacing the installation prefix
194   in service files' Exec lines (fd.o #83539; Milan Crha, Simon McVittie)
195
196 • On Windows, if installed in the conventional layout with ${prefix}/etc
197   and ${prefix}/share, use relative paths between bus configuration files
198   to allow the tree to be relocated (fd.o #92028, Simon McVittie)
199
200 • Make more of the regression tests pass in Windows builds (fd.o #92538,
201   Simon McVittie)
202
203 D-Bus 1.10.0 (2015-08-25)
204 ==
205
206 The “0x20” release.
207
208 This is a new stable branch, recommended for use in OS distributions.
209
210 Fixes since 1.9.20:
211
212 • distribute test/tap-test.sh.in, even if the tarball was built without
213   tests enabled (fd.o #91684, Simon McVittie)
214 • work around a fd leak in libcap-ng < 0.7.7 (fd.o #91684, Simon McVittie)
215
216 Summary of major changes since 1.8.0:
217
218 • The basic setup for the well-known system and session buses is
219   now done in read-only files in ${datadir} (normally /usr/share).
220   See the NEWS entry for 1.9.18 for details.
221
222 • AppArmor integration has been merged, with features similar to the
223   pre-existing SELinux integration. It is mostly compatible with the
224   patches previously shipped by Ubuntu, with one significant change:
225   Ubuntu's GetConnectionAppArmorSecurityContext method has been superseded
226   by GetConnectionCredentials and was not included.
227
228 • The --enable-user-session configure option can be enabled
229   by OS integrators intending to use systemd to provide a session bus
230   per user (in effect, treating all concurrent graphical and non-graphical
231   login sessions as one large session).
232
233 • The new listenable address mode "unix:runtime=yes" listens on
234   $XDG_RUNTIME_DIR/bus, the same AF_UNIX socket used by the systemd
235   user session. libdbus and "dbus-launch --autolaunch" will connect to
236   this address by default. GLib ≥ 2.45.3 and sd-bus ≥ 209 have a
237   matching default.
238
239 • All executables are now dynamically linked to libdbus-1.
240   Previously, some executables, most notably dbus-daemon, were statically
241   linked to a specially-compiled variant of libdbus. This results in
242   various private functions in the _dbus namespace being exposed by the
243   shared library. These are not API, and must not be used outside
244   the dbus source tree.
245
246 • On platforms with ELF symbol versioning, all public symbols
247   are versioned LIBDBUS_1_3.
248
249 New bus APIs:
250
251 • org.freedesktop.DBus.GetConnectionCredentials returns
252   LinuxSecurityLabel where supported
253 • org.freedesktop.DBus.Monitoring interface (privileged)
254   · BecomeMonitor method supersedes match rules with eavesdrop=true,
255     which are now deprecated
256 • org.freedesktop.DBus.Stats interface (semi-privileged)
257   · now enabled by default
258   · new GetAllMatchRules method
259 • org.freedesktop.DBus.Verbose interface (not normally compiled)
260   · toggles the effect of DBUS_VERBOSE
261
262 New executables:
263
264 • dbus-test-tool
265 • dbus-update-activation-environment
266
267 New optional dependencies:
268
269 • The systemd: pseudo-transport requires libsystemd or libsd-daemon
270 • Complete documentation requires Ducktype and yelp-tools
271 • Full test coverage requires GLib 2.36 and PyGI
272 • AppArmor integration requires libapparmor and optionally libaudit
273
274 Dependencies removed:
275
276 • dbus-glib
277
278 D-Bus 1.9.20 (2015-08-06)
279 ==
280
281 The “Remember Tomorrow” release.
282
283 This is a release-candidate for D-Bus 1.10.0. OS distribution vendors
284 should test it.
285
286 Fixes:
287
288 • Don't second-guess what the ABI of poll() is, allowing it to be used
289   on Integrity RTOS and other unusual platforms (fd.o #90314;
290   Rolland Dudemaine, Simon McVittie)
291
292 • Don't duplicate audit subsystem integration if AppArmor and SELinux are
293   both enabled (fd.o #89225, Simon McVittie)
294
295 • Log audit events for AppArmor/SELinux policy violations whenever
296   we have CAP_AUDIT_WRITE, even if not the system bus
297   (fd.o #83856, Laurent Bigonville)
298
299 D-Bus 1.9.18 (2015-07-21)
300 ==
301
302 The “Pirate Elite” release.
303
304 Configuration changes:
305
306 • The basic setup for the well-known system and session buses is now done
307   in read-only files in ${datadir}, moving a step closer to systems
308   that can operate with an empty /etc directory. In increasing order
309   of precedence:
310
311   · ${datadir}/dbus-1/s*.conf now perform the basic setup such as setting
312     the default message policies.
313   · ${sysconfdir}/dbus-1/s*.conf are now optional. By default
314     dbus still installs a trivial version of each, for documentation
315     purposes; putting configuration directives in these files is deprecated.
316   · ${datadir}/dbus-1/s*.d/ are now available for third-party software
317     to install "drop-in" configuration snippets (any packages
318     using those directories should explicitly depend on at least this
319     version of dbus).
320   · ${sysconfdir}/dbus-1/s*.d/ are also still available for sysadmins
321     or third-party software to install "drop-in" configuration snippets
322   · ${sysconfdir}/dbus-1/s*-local.conf are still available for sysadmins'
323     overrides
324
325   ${datadir} is normally /usr/share, ${sysconfdir} is normally /etc,
326   and "s*" refers to either system or session as appropriate.
327
328   (fd.o #89280, Dimitri John Ledkov)
329
330 Fixes:
331
332 • Fix a memory leak when GetConnectionCredentials() succeeds
333   (fd.o #91008, Jacek Bukarewicz)
334
335 • Ensure that dbus-monitor does not reply to messages intended for others,
336   resulting in its own disconnection (fd.o #90952, Simon McVittie)
337
338 D-Bus 1.9.16 (2015-05-14)
339 ==
340
341 The “titanium barns” release.
342
343 Dependencies:
344
345 • Automake 1.13 is now required when compiling from git or modifying
346   the build system.
347
348 Security hardening:
349
350 • On Unix platforms, change the default configuration for the session bus
351   to only allow EXTERNAL authentication (secure kernel-mediated
352   credentials-passing), as was already done for the system bus.
353
354   This avoids falling back to DBUS_COOKIE_SHA1, which relies on strongly
355   unpredictable pseudo-random numbers.
356
357   If you are using D-Bus over the (unencrypted!) tcp: or nonce-tcp: transport,
358   in conjunction with DBUS_COOKIE_SHA1 and a shared home directory using
359   NFS or similar, you will need to reconfigure the session bus to accept
360   DBUS_COOKIE_SHA1 by commenting out the <auth> element. This configuration
361   is not recommended.
362
363   (fd.o #90414, Simon McVittie)
364
365 • When asked for random numbers for DBUS_COOKIE_SHA1, the nonce-tcp:
366   transport, UUIDs or any other reason, fail if we cannot obtain entropy
367   (from /dev/urandom or CryptGenRandom()) or an out-of-memory condition
368   occurs, instead of silently falling back to low-entropy pseudorandom
369   numbers from rand(). (fd.o #90414; Simon McVittie, Ralf Habacker)
370
371 Enhancements:
372
373 • Add dbus_message_iter_get_element_count()
374   (fd.o #30350; Christian Dywan, Simon McVittie)
375
376 • Introduce new internal DBusSocket and DBusPollable types so we can
377   stop treating the Windows SOCKET type as if it was int. DBusSocket
378   is specifically a socket, cross-platform. DBusPollable is whatever
379   _dbus_poll() can act on, i.e. a fd on Unix or a SOCKET on Windows.
380   (fd.o #89444; Ralf Habacker, Simon McVittie)
381
382 • All regression tests now output TAP <https://testanything.org/>
383   (fd.o #89846, Simon McVittie)
384
385 • Internal APIs consistently use signed values for timestamps
386   (fd.o #18494, Peter McCurdy)
387
388 • Improve diagnostics when UpdateActivationEnvironment calls are rejected
389   (fd.o #88812, Simon McVittie)
390
391 • Clean up a lot of compiler warnings
392   (fd.o #17289, fd.o #89284; Ralf Habacker, Simon McVittie)
393
394 Fixes:
395
396 • Add locking to DBusCounter's reference count and notify function
397   (fd.o #89297, Adrian Szyndela)
398
399 • Ensure that DBusTransport's reference count is protected by the
400   corresponding DBusConnection's lock (fd.o #90312, Adrian Szyndela)
401
402 • Correctly release DBusServer mutex before early-return if we run out
403   of memory while copying authentication mechanisms (fd.o #90021,
404   Ralf Habacker)
405
406 • Make dbus-test-tool and dbus-update-activation-environment portable
407   to Windows (fd.o #90089, Ralf Habacker)
408
409 • Correctly initialize all fields of DBusTypeReader (fd.o #90021;
410   Ralf Habacker, Simon McVittie)
411
412 • Fix some missing \n in verbose (debug log) messages (fd.o #90004,
413   Ralf Habacker)
414
415 • Clean up some memory and fd leaks in test code and tools
416   (fd.o #90021, Ralf Habacker)
417
418 • Fix a NULL dereference if the dbus-daemon cannot read a configuration
419   directory for a reason that is not ENOENT (fd.o #90021, Ralf Habacker)
420
421 • CMake generates a versioned shared library even if the revision is 0,
422   as it usually is on the development branch. (fd.o #89450, Ralf Habacker)
423
424 D-Bus 1.9.14 (2015-03-02)
425 ==
426
427 The “don't stand in the poison cloud” release.
428
429 Dependencies:
430
431 • dbus-daemon and dbus-daemon-launch-helper now require libdbus. They
432   were previously linked to a static version of libdbus.
433
434 • The tests no longer require dbus-glib in order to exercise the libdbus
435   shared library; they are always linked to libdbus now.
436
437 Build-time configuration:
438
439 • The new --enable-user-session option, off by default, can be enabled
440   by OS integrators intending to use systemd to provide a session bus
441   per user (in effect, treating all concurrent graphical and non-graphical
442   login sessions as one large session)
443
444 Enhancements:
445
446 • All executables are now linked dynamically to libdbus.
447   (fd.o #83115; Bertrand SIMONNET, Simon McVittie, Ralf Habacker)
448
449 • On platforms that support them (GNU libc and possibly others),
450   libdbus now has versioned symbols for its public API.
451   All public symbols (visible in the header files) are currently
452   versioned as LIBDBUS_1_3; private symbols starting with _dbus or
453   dbus_internal have a version that changes with each release, and
454   must not be used by applications. (also fd.o #83115)
455
456 • New listenable address mode "unix:runtime=yes" which listens on
457   a real filesystem (non-abstract) socket $XDG_RUNTIME_DIR/bus
458   (fd.o #61303; Colin Walters, Alexander Larsson, Simon McVittie)
459
460 • Add optional systemd units for a per-user bus listening on
461   $XDG_RUNTIME_DIR/bus (fd.o #61301; Simon McVittie, Colin Walters)
462
463 • On Unix platforms, both libdbus and "dbus-launch --autolaunch"
464   default to connecting to $XDG_RUNTIME_DIR/bus if it is a socket
465   (also fd.o #61301)
466
467 • New dbus-update-activation-environment tool uploads environment
468   variables to "dbus-daemon --session" and optionally "systemd --user",
469   primarily as a way to keep the per-user bus compatible with
470   distributions' existing X11 login scripts (also fd.o #61301)
471
472 • <includedir/> elements in dbus-daemon configuration are now silently
473   ignored if the directory does not exist. (fd.o #89280, Dimitri John Ledkov)
474
475 • Add microsecond-resolution timestamps to the default output of
476   dbus-monitor and dbus-send (fd.o #88896; Ralf Habacker, Simon McVittie)
477
478 Fixes:
479
480 • Fix a race condition in the 'monitor' test introduced in 1.9.10
481   (fd.o #89222, Simon McVittie)
482
483 D-Bus 1.9.12 (2015-02-19)
484 ==
485
486 The “monster lasagna” release.
487
488 Dependencies:
489
490 • Ducktype and yelp-tools are now required to build complete documentation
491   (they are optional for normal builds).
492
493 Enhancements:
494
495 • D-Bus Specification version 0.26
496   · GetConnectionCredentials can return LinuxSecurityLabel or WindowsSID
497   · document the BecomeMonitor method
498
499 • On Linux, add LinuxSecurityLabel to GetConnectionCredentials
500   (fd.o #89041; Tyler Hicks, Simon McVittie)
501
502 • On Linux, add support for AppArmor mediation of message sending and
503   receiving and name ownership (paralleling existing SELinux mediation
504   support), and eavesdropping (a new check, currently AppArmor-specific)
505   (fd.o #75113; John Johansen, Tyler Hicks, Simon McVittie)
506
507 • In dbus-send and dbus-monitor, pretty-print \0-terminated bytestrings
508   that have printable ASCII contents; we previously only did this for
509   unterminated bytestrings (fd.o #89109, Simon McVittie)
510
511 • Add a guide to designing good D-Bus APIs (fd.o #88994, Philip Withnall)
512
513 • On Windows, add WindowsSID to GetConnectionCredentials
514   (fd.o #54445, Ralf Habacker)
515
516 • Improve clarity of dbus-monitor --profile output and add more columns
517   (fd.o #89165, Ralf Habacker)
518
519 • Add a man page for dbus-test-tool, and build it under CMake as well
520   as Autotools (fd.o#89086, Simon McVittie)
521
522 • If dbus-daemon was compiled with --enable-verbose, add a D-Bus API
523   to control it at runtime, overriding the DBUS_VERBOSE environment variable
524   (fd.o #88896, Ralf Habacker)
525
526 Fixes:
527
528 • Reduce the number of file descriptors used in the fd-passing test,
529   avoiding failure under the default Linux fd limit, and automatically
530   skip it if the rlimit is too small (fd.o #88998, Simon McVittie)
531
532 D-Bus 1.9.10 (2015-02-09)
533 ==
534
535 The “sad cyborgs” release.
536
537 Security fixes merged from 1.8.16:
538
539 • Do not allow non-uid-0 processes to send forged ActivationFailure
540   messages. On Linux systems with systemd activation, this would
541   allow a local denial of service: unprivileged processes could
542   flood the bus with these forged messages, winning the race with
543   the actual service activation and causing an error reply
544   to be sent back when service auto-activation was requested.
545   This does not prevent the real service from being started,
546   so the attack only works while the real service is not running.
547   (CVE-2015-0245, fd.o #88811; Simon McVittie)
548
549 Enhancements:
550
551 • The new Monitoring interface in the dbus-daemon lets dbus-monitor and
552   similar tools receive messages without altering the security properties
553   of the system bus, by calling the new BecomeMonitor method on a
554   private connection. This bypasses the normal <allow> and <deny> rules
555   entirely, so to preserve normal message-privacy assumptions, only root
556   is allowed to do this on the system bus. Restricted environments,
557   such as Linux with LSMs, should lock down access to the Monitoring
558   interface. (fd.o #46787, Simon McVittie)
559
560 • dbus-monitor uses BecomeMonitor to capture more traffic, if the
561   dbus-daemon supports it and access permissions allow it.
562   It still supports the previous approach ("eavesdropping" match rules)
563   for compatibility with older bus daemons. (fd.o #46787, Simon)
564
565 • dbus-monitor can now log the message stream as binary data for later
566   analysis, with either no extra framing beyond the normal D-Bus headers,
567   or libpcap-compatible framing treating each D-Bus message
568   as a captured packet. (fd.o #46787, Simon)
569
570 Other fixes:
571
572 • Fix some CMake build regressions (fd.o #88964, Ralf Habacker)
573
574 • On Unix, forcibly terminate regression tests after 60 seconds to
575   prevent them from blocking continuous integration frameworks
576   (fd.o #46787, Simon)
577
578 D-Bus 1.9.8 (2015-02-03)
579 ==
580
581 The “all the types of precipitation” release.
582
583 Dependencies:
584
585 • full test coverage now requires GLib 2.36
586 • full test coverage now requires PyGI (PyGObject 3,
587   "import gi.repository.GObject") instead of the
588   obsolete PyGObject 2 ("import gobject")
589
590 Enhancements:
591
592 • add GLib-style "installed tests" (fd.o #88810, Simon McVittie)
593
594 • better regression test coverage, including systemd activation
595   (fd.o #57952, #88810; Simon McVittie)
596
597 Fixes:
598
599 • fatal errors correctly make the dbus-daemon exit even if <syslog/> is
600   turned off (fd.o #88808, Simon McVittie)
601
602 • TCP sockets on Windows no longer fail to listen approximately 1 time
603   in 256, caused by a logic error that should have always made it fail but
604   was mitigated by incorrect endianness for the port number
605   (fd.o #87999, Ralf Habacker)
606
607 • fix some Windows build failures (fd.o #88009, #88010; Ralf Habacker)
608
609 • on Windows, allow up to 8K connections to the dbus-daemon instead of the
610   previous 64, completing a previous fix which only worked under
611   Autotools (fd.o #71297, Ralf Habacker)
612
613 • on Windows, if the IP family is unspecified only use IPv4,
614   to mitigate IPv6 not working correctly (fd.o #87999, Ralf Habacker)
615
616 • fix some unlikely memory leaks on OOM (fd.o #88087, Simon McVittie)
617
618 • lcov code coverage analysis works again (fd.o #88808, Simon McVittie)
619
620 • fix an unused function error with --disable-embedded-tests (fd.o #87837,
621   Thiago Macieira)
622
623 D-Bus 1.9.6 (2015-01-05)
624 ==
625
626 The “I do have a bread knife” release.
627
628 Security hardening:
629
630 • Do not allow calls to UpdateActivationEnvironment from uids other than
631   the uid of the dbus-daemon. If a system service installs unsafe
632   security policy rules that allow arbitrary method calls
633   (such as CVE-2014-8148) then this prevents memory consumption and
634   possible privilege escalation via UpdateActivationEnvironment.
635
636   We believe that in practice, privilege escalation here is avoided
637   by dbus-daemon-launch-helper sanitizing its environment; but
638   it seems better to be safe.
639
640 • Do not allow calls to UpdateActivationEnvironment or the Stats interface
641   on object paths other than /org/freedesktop/DBus. Some system services
642   install unsafe security policy rules that allow arbitrary method calls
643   to any destination, method and interface with a specified object path;
644   while less bad than allowing arbitrary method calls, these security
645   policies are still harmful, since dbus-daemon normally offers the
646   same API on all object paths and other system services might behave
647   similarly.
648
649 Other fixes:
650
651 • Add missing initialization so GetExtendedTcpTable doesn't crash on
652   Windows Vista SP0 (fd.o #77008, Илья А. Ткаченко)
653
654 D-Bus 1.9.4 (2014-11-24)
655 ==
656
657 The “extra-sturdy caramel” release.
658
659 Fixes:
660
661 • Partially revert the CVE-2014-3639 patch by increasing the default
662   authentication timeout on the system bus from 5 seconds back to 30
663   seconds, since this has been reported to cause boot regressions for
664   some users, mostly with parallel boot (systemd) on slower hardware.
665
666   On fast systems where local users are considered particularly hostile,
667   administrators can return to the 5 second timeout (or any other value
668   in milliseconds) by saving this as /etc/dbus-1/system-local.conf:
669
670   <busconfig>
671     <limit name="auth_timeout">5000</limit>
672   </busconfig>
673
674   (fd.o #86431, Simon McVittie)
675
676 • Add a message in syslog/the Journal when the auth_timeout is exceeded
677   (fd.o #86431, Simon McVittie)
678
679 • Send back an AccessDenied error if the addressed recipient is not allowed
680   to receive a message (and in builds with assertions enabled, don't
681   assert under the same conditions). (fd.o #86194, Jacek Bukarewicz)
682
683 D-Bus 1.9.2 (2014-11-10)
684 ==
685
686 The “structurally unsound flapjack” release.
687
688 Security fixes:
689
690 • Increase dbus-daemon's RLIMIT_NOFILE rlimit to 65536
691   so that CVE-2014-3636 part A cannot exhaust the system bus'
692   file descriptors, completing the incomplete fix in 1.8.8.
693   (CVE-2014-7824, fd.o #85105; Simon McVittie, Alban Crequy)
694
695 Enhancements:
696
697 • D-Bus Specification version 0.25
698   · new value 'const' for EmitsChangedSignal annotation
699     (fd.o #72958, Lennart Poettering)
700   · new ALLOW_INTERACTIVE_AUTHORIZATION flag, for PolicyKit and similar
701     (fd.o #83449; Lennart Poettering, Simon McVittie)
702   · annotate table of types with reserved/basic/container, and for
703     basic types, fixed/string-like
704   · clarify arbitrary limits by quoting them in mebibytes
705
706 • New API: add accessors for the ALLOW_INTERACTIVE_AUTHORIZATION flag
707   (fd.o #83449, Simon McVittie)
708
709 • Add dbus-test-tool, a D-Bus swiss army knife with multiple subcommands,
710   useful for debugging and performance testing:
711   · dbus-test-tool spam: send repeated messages
712   · dbus-test-tool echo: send an empty reply for all method calls
713   · dbus-test-tool black-hole: do not reply to method calls
714   (fd.o #34140; Alban Crequy, Simon McVittie, Will Thompson)
715
716 • Add support for process ID in credentials-passing on NetBSD
717   (fd.o #69702, Patrick Welche)
718
719 • Add an example script to find potentially undesired match rules
720   (fd.o #84598, Alban Crequy)
721
722 • Document the central assumption that makes our use of credentials-passing
723   secure (fd.o #83499, Simon McVittie)
724
725 • Replace the dbus-glib section of the tutorial with a GDBus recommendation,
726   and add some links to GDBus and QtDBus documentation (fd.o #25140,
727   Simon McVittie)
728
729 Fixes:
730
731 • Use a less confusing NoReply message when disconnected with a reply pending
732   (fd.o #76112, Simon McVittie)
733
734 • Make the .pc file relocatable by letting pkg-config do all variable
735   expansion itself (fd.o #75858, Руслан Ижбулатов)
736
737 • Fix a build failure on platforms with kqueue, which regressed in 1.9.0
738   (fd.o #85563, Patrick Welche)
739
740 • Consistently save errno after socket calls (fd.o #83625, Simon McVittie)
741
742 • In dbus-spawn, when the grandchild process exits due to a failed exec(),
743   do not lose the exec() errno (fd.o #24821, Simon McVittie)
744
745 • Do not fail the tests if a parent process has leaked non-close-on-exec
746   file descriptors to us (fd.o #73689, fd.o #83899; Simon McVittie)
747
748 • Do not fail the tests on Unix platforms with incomplete
749   credentials-passing support, but do fail if we can't pass credentials
750   on a platform where it is known to work: Linux, FreeBSD, OpenBSD, NetBSD
751   (fd.o #69702, Simon McVittie)
752
753 • Detect accept4, dirfd, inotify_init1, pipe2, and Unix fd passing
754   when building with cmake, and expand test coverage there
755   (fd.o #73689; Ralf Habacker, Simon McVittie)
756
757 D-Bus 1.9.0 (2014-10-01)
758 ==
759
760 The “tiered cheeses” release.
761
762 Requirements:
763
764 • Support for the systemd: (LISTEN_FDS) pseudo-transport on Linux now
765   requires either the libsystemd or libsd-daemon shared library, dropping the
766   embedded convenience copy of sd-daemon (fd.o #71818, Simon)
767
768 Build-time configuration changes:
769
770 • The Stats interface is now enabled by default, and locked-down to
771   root-only on the system bus. Configure with --disable-stats
772   to disable it altogether on memory- or disk-constrained systems,
773   or see ${docdir}/examples/ to open it up to non-root users on the
774   system bus or restrict access on the session bus.
775   (fd.o #80759; Simon McVittie, Alban Crequy)
776
777 • The CMake build system now builds the same shared library name as Autotools
778   on at least Linux and Windows:
779   - on Linux (and perhaps other Unix platforms), it previously built
780     libdbus-1.so, but now builds libdbus-1.so.3.* with development
781     symlink libdbus-1.so and SONAME/symlink libdbus-1.so.3
782   - on Windows, it previously built either libdbus-1.dll (release) or
783     libdbus-1d.dll (debug), but now builds libdbus-1-3.dll, copied to
784     libdbus-1.dll for compatibility with older applications.
785   (fd.o #74117, Ralf Habacker)
786
787 Enhancements:
788
789 • D-Bus Specification version 0.24
790   · document how to quote match rules (fd.o #24307, Simon McVittie)
791   · explicitly say that most message types never expect a reply
792     regardles of whether they have NO_REPLY_EXPECTED
793     (fd.o #75749, Simon McVittie)
794
795 • on Unix platforms, disable Nagle's algorithm on TCP connections to improve
796   initial latency (fd.o #75544, Matt Hoosier)
797
798 • use backtrace() if it is in -lexecinfo instead of libc, as on NetBSD
799   (fd.o #69702, Patrick Welche)
800
801 • in dbus-monitor, print more information about file descriptors
802   (fd.o #80603, Alban Crequy)
803
804 • do not install system bus configuration if built for Windows
805   (fd.o #83583; Ralf Habacker, Simon McVittie)
806
807 • Add GetAllMatchRules to the Stats interface (fd.o #24307, Alban Crequy)
808
809 • Add a regression test for file descriptor passing (fd.o #83622,
810   Simon McVittie)
811
812 Fixes:
813
814 • fix an incorrect error message if a Unix socket path is too long
815   (fd.o #73887, Antoine Jacoutot)
816
817 • in an MSYS/Cygwin environment, pass Unix-style filenames to xmlto,
818   fixing documentation generation (fd.o #75860, Руслан Ижбулатов)
819
820 • in Unix with X11, avoid giving dbus-launch a misleading argv[0]
821   in ps(1) (fd.o #69716, Chengwei Yang)
822
823 • avoid calling poll() with timeout < -1, which is considered invalid
824   on FreeBSD and NetBSD (fd.o #78480, Jaap Boender)
825
826 • be portable to BSD-derived platforms where O_CLOEXEC is unavailable in libc
827   (like Mac OS X 10.6), or available in libc but unsupported by the kernel
828   (fd.o #77032; rmvsxop, OBATA Akio, Patrick Welche)
829
830 • Fix include path for test/internal/*.c with cmake (Ralf Habacker)
831
832 • Documentation improvements
833   (fd.o #80795, #84313; Thomas Haller, Sebastian Rasmussen)
834
835 • in dbus-monitor, do not leak file descriptors that we have monitored
836   (fd.o #80603, Alban Crequy)
837
838 • Set the close-on-exec flag for the inotify file descriptor, even
839   if built with CMake or older libc (fd.o #73689, Simon McVittie)
840
841 • Remove some LGPL code from the Windows dbus-daemon
842   (fd.o #57272, Ralf Habacker)
843
844 D-Bus 1.8.8 (2014-09-16)
845 ==
846
847 The "smashy smashy egg man" release.
848
849 Security fixes:
850
851 • Do not accept an extra fd in the padding of a cmsg message, which
852   could lead to a 4-byte heap buffer overrun.
853   (CVE-2014-3635, fd.o #83622; Simon McVittie)
854
855 • Reduce default for maximum Unix file descriptors passed per message
856   from 1024 to 16, preventing a uid with the default maximum number of
857   connections from exhausting the system bus' file descriptors under
858   Linux's default rlimit. Distributors or system administrators with a
859   more restrictive fd limit may wish to reduce these limits further.
860
861   Additionally, on Linux this prevents a second denial of service
862   in which the dbus-daemon can be made to exceed the maximum number
863   of fds per sendmsg() and disconnect the process that would have
864   received them.
865   (CVE-2014-3636, fd.o #82820; Alban Crequy)
866
867 • Disconnect connections that still have a fd pending unmarshalling after
868   a new configurable limit, pending_fd_timeout (defaulting to 150 seconds),
869   removing the possibility of creating an abusive connection that cannot be
870   disconnected by setting up a circular reference to a connection's
871   file descriptor.
872   (CVE-2014-3637, fd.o #80559; Alban Crequy)
873
874 • Reduce default for maximum pending replies per connection from 8192 to 128,
875   mitigating an algorithmic complexity denial-of-service attack
876   (CVE-2014-3638, fd.o #81053; Alban Crequy)
877
878 • Reduce default for authentication timeout on the system bus from
879   30 seconds to 5 seconds, avoiding denial of service by using up
880   all unauthenticated connection slots; and when all unauthenticated
881   connection slots are used up, make new connection attempts block
882   instead of disconnecting them.
883   (CVE-2014-3639, fd.o #80919; Alban Crequy)
884
885 Other fixes:
886
887 • Check for libsystemd from systemd >= 209, falling back to
888   the older separate libraries if not found (Umut Tezduyar Lindskog,
889   Simon McVittie)
890
891 • On Linux, use prctl() to disable core dumps from a test executable
892   that deliberately raises SIGSEGV to test dbus-daemon's handling
893   of that condition (fd.o #83772, Simon McVittie)
894
895 • Fix compilation with --enable-stats (fd.o #81043, Gentoo #507232;
896   Alban Crequy)
897
898 • Improve documentation for running tests on Windows (fd.o #41252,
899   Ralf Habacker)
900
901 D-Bus 1.8.6 (2014-06-02)
902 ==
903
904 Security fixes:
905
906 • On Linux ≥ 2.6.37-rc4, if sendmsg() fails with ETOOMANYREFS, silently drop
907   the message. This prevents an attack in which a malicious client can
908   make dbus-daemon disconnect a system service, which is a local
909   denial of service.
910   (fd.o #80163, CVE-2014-3532; Alban Crequy)
911
912 • Track remaining Unix file descriptors correctly when more than one
913   message in quick succession contains fds. This prevents another attack
914   in which a malicious client can make dbus-daemon disconnect a system
915   service.
916   (fd.o #79694, fd.o #80469, CVE-2014-3533; Alejandro Martínez Suárez,
917   Simon McVittie, Alban Crequy)
918
919 Other fixes:
920
921 • When dbus-launch --exit-with-session starts a dbus-daemon but then cannot
922   attach to a session, kill the dbus-daemon as intended
923   (fd.o #74698, Роман Донченко)
924
925 D-Bus 1.8.4 (2014-06-10)
926 ==
927
928 Security fix:
929
930 • Alban Crequy at Collabora Ltd. discovered and fixed a denial-of-service
931   flaw in dbus-daemon, part of the reference implementation of D-Bus.
932   Additionally, in highly unusual environments the same flaw could lead to
933   a side channel between processes that should not be able to communicate.
934   (CVE-2014-3477, fd.o #78979)
935
936 D-Bus 1.8.2 (2014-04-30)
937 ==
938
939 The “nobody wants red” release.
940
941 Enhancements:
942
943 • in the CMake build system, add some hints for Linux users cross-compiling
944   Windows D-Bus binaries to be able to run tests under Wine
945   (fd.o #41252, Ralf Habacker)
946
947 • add Documentation key to dbus.service (fd.o #77447, Cameron Norman)
948
949 Fixes:
950
951 • in "dbus-uuidgen --ensure", try to copy systemd's /etc/machine-id
952   to /var/lib/dbus/machine-id instead of generating an entirely new ID
953   (fd.o #77941, Simon McVittie)
954
955 • if dbus-launch receives an X error very quickly, do not kill
956   unrelated processes (fd.o #74698, Роман Донченко)
957
958 • on Windows, allow up to 8K connections to the dbus-daemon, instead of the
959   previous 64 (fd.o #71297; Cristian Onet, Ralf Habacker)
960
961 • cope with \r\n newlines in regression tests, since on Windows,
962   dbus-daemon.exe uses text mode (fd.o #75863, Руслан Ижбулатов)
963
964 D-Bus 1.8.0 (2014-01-20)
965 ==
966
967 The “Wolverine distrusts my printer” release.
968
969 This starts a new stable branch. The 1.6.x branch is now considered to be
970 outdated, and will only receive fixes for serious bugs such as security
971 flaws. The 1.4.x and 1.2.x branches no longer have upstream support and
972 are unlikely to get any more releases, but if distributors still need to
973 support them, please share security patches via upstream.
974
975 Summary of changes since 1.6.x:
976
977 • libdbus always behaves as if dbus_threads_init_default() had been called
978   (thread-safety by default)
979 • new dbus-run-session tool, replacing certain misuses of dbus-launch
980 • dbus-monitor can talk to outdated versions of dbus-daemon again
981 • new org.freedesktop.DBus.GetConnectionCredentials method
982 • GetConnectionUnixProcessID also works correctly on Windows, returning
983   the Windows process ID
984 • GetConnectionWindowsSID returns the correct SID on Windows
985 • expat is required, libxml2 can no longer be used as a substitute
986 • the userDB cache is required, and cannot be disabled
987 • a 64-bit integer type (either int, long, long long or _int64) is required
988 • better systemd-journald integration on Linux
989 • fixed long-standing fd and array leaks when failing to parse a message
990 • fixed referenced-but-never-freed parent nodes (effectively memory leaks)
991   when using certain object-path allocation patterns, notably in Avahi
992 • better defaults for Windows support
993 • better CMake support
994 • better portability to mingw32, FreeBSD, NetBSD, QNX and Hurd
995 • the source language for the man pages is now Docbook XML
996
997 Enhancements since 1.7.10:
998
999 • Enhance the CMake build system to check for GLib and compile/run
1000   a subset of the regression tests (fd.o #41252, #73495; Ralf Habacker)
1001
1002 Fixes since 1.7.10:
1003
1004 • don't rely on va_copy(), use DBUS_VA_COPY() wrapper (fd.o #72840,
1005   Ralf Habacker)
1006
1007 • fix compilation of systemd journal support on older systemd versions where
1008   sd-journal.h doesn't include syslog.h (fd.o #73455, Ralf Habacker)
1009
1010 • fix compilation on older MSVC versions by including stdlib.h
1011   (fd.o #73455, Ralf Habacker)
1012
1013 • Allow <allow_anonymous/> to appear in an included configuration file
1014   (fd.o #73475, Matt Hoosier)
1015
1016 Test behaviour changes since 1.7.10:
1017
1018 • If the tests crash with an assertion failure, they no longer default to
1019   blocking for a debugger to be attached. Set DBUS_BLOCK_ON_ABORT in the
1020   environment if you want the old behaviour.
1021
1022 • To improve debuggability, the dbus-daemon and dbus-daemon-eavesdrop tests
1023   can be run with an external dbus-daemon by setting
1024   DBUS_TEST_DAEMON_ADDRESS in the environment. Test-cases that require
1025   an unusually-configured dbus-daemon are skipped.
1026
1027 D-Bus 1.7.10 (2014-01-06)
1028 ==
1029
1030 The “weighted companion cube” release.
1031
1032 This is a release candidate for D-Bus 1.8.
1033
1034 D-Bus Specification 0.23:
1035
1036 • don't require messages with no INTERFACE to be dispatched
1037   (fd.o #68597, Simon McVittie)
1038
1039 • document "tcp:bind=..." and "nonce-tcp:bind=..." (fd.o #72301,
1040   Chengwei Yang)
1041
1042 • define "listenable" and "connectable" addresses, and discuss
1043   the difference (fd.o #61303, Simon McVittie)
1044
1045 Enhancements:
1046
1047 • support printing Unix file descriptors in dbus-send, dbus-monitor
1048   (fd.o #70592, Robert Ancell)
1049
1050 • don't install systemd units if --disable-systemd is given
1051   (fd.o #71818, Chengwei Yang)
1052
1053 Fixes:
1054
1055 • don't leak memory on out-of-memory while listing activatable or
1056   active services (fd.o #71526, Radoslaw Pajak)
1057
1058 • fix undefined behaviour in a regression test (fd.o #69924, DreamNik)
1059
1060 • escape Unix socket addresses correctly (fd.o #46013, Chengwei Yang)
1061
1062 • on SELinux systems, don't assume that SECCLASS_DBUS, DBUS__ACQUIRE_SVC
1063   and DBUS__SEND_MSG are numerically equal to their values in the
1064   reference policy (fd.o #88719, osmond sun)
1065
1066 • define PROCESS_QUERY_LIMITED_INFORMATION if missing from MinGW < 4 headers
1067   (fd.o #71366, Matt Fischer)
1068
1069 • define WIN32_LEAN_AND_MEAN to avoid conflicts between winsock.h and
1070   winsock2.h (fd.o #71405, Matt Fischer)
1071
1072 • do not return failure from _dbus_read_nonce() with no error set,
1073   preventing a potential crash (fd.o #72298, Chengwei Yang)
1074
1075 • on BSD systems, avoid some O(1)-per-process memory and fd leaks in kqueue,
1076   preventing test failures (fd.o #69332, fd.o #72213; Chengwei Yang)
1077
1078 • fix warning spam on Hurd by not trying to set SO_REUSEADDR on Unix sockets,
1079   which doesn't do anything anyway on at least Linux and FreeBSD
1080   (fd.o #69492, Simon McVittie)
1081
1082 • fix use of TCP sockets on FreeBSD and Hurd by tolerating EINVAL from
1083   sendmsg() with SCM_CREDS (retrying with plain send()), and looking
1084   for credentials more correctly (fd.o #69492, Simon McVittie)
1085
1086 • ensure that tests run with a temporary XDG_RUNTIME_DIR to avoid
1087   getting mixed up in XDG/systemd "user sessions" (fd.o #61301,
1088   Simon McVittie)
1089
1090 • refresh cached policy rules for existing connections when bus
1091   configuration changes (fd.o #39463, Chengwei Yang)
1092
1093 D-Bus 1.7.8 (2013-11-01)
1094 ==
1095
1096 The “extreme hills” release.
1097
1098 Dependencies:
1099
1100 • If systemd support is enabled, libsystemd-journal is now required.
1101
1102 Enhancements:
1103
1104 • When activating a non-systemd service under systemd, annotate its
1105   stdout/stderr with its bus name in the Journal. Known limitation:
1106   because the socket is opened before forking, the process will still be
1107   logged as if it had dbus-daemon's process ID and user ID.
1108   (fd.o #68559, Chengwei Yang)
1109
1110 • Document more configuration elements in dbus-daemon(1)
1111   (fd.o #69125, Chengwei Yang)
1112
1113 Fixes:
1114
1115 • Don't leak string arrays or fds if dbus_message_iter_get_args_valist()
1116   unpacks them and then encounters an error (fd.o #21259, Chengwei Yang)
1117
1118 • If compiled with libaudit, retain CAP_AUDIT_WRITE so we can write
1119   disallowed method calls to the audit log, fixing a regression in 1.7.6
1120   (fd.o #49062, Colin Walters)
1121
1122 • path_namespace='/' in match rules incorrectly matched nothing; it
1123   now matches everything. (fd.o #70799, Simon McVittie)
1124
1125 D-Bus 1.7.6 (2013-10-09)
1126 ==
1127
1128 The “CSI Shrewsbury” release.
1129
1130 Build-time configuration changes:
1131
1132 • Directory change notification via dnotify on Linux is no longer
1133   supported; it hadn't compiled successfully since 2010 in any case.
1134   If you don't have inotify (Linux) or kqueue (*BSD), you will need
1135   to send SIGHUP to the dbus-daemon when its configuration changes.
1136   (fd.o #33001, Chengwei Yang)
1137
1138 • Compiling with --disable-userdb-cache is no longer supported;
1139   it didn't work since at least 2008, and would lead to an extremely
1140   slow dbus-daemon even it worked. (fd.o #15589, #17133, #66947;
1141   Chengwei Yang)
1142
1143 • The DBUS_DISABLE_ASSERTS CMake option didn't actually disable most
1144   assertions. It has been renamed to DBUS_DISABLE_ASSERT to be consistent
1145   with the Autotools build system. (fd.o #66142, Chengwei Yang)
1146
1147 • --with-valgrind=auto enables Valgrind instrumentation if and only if
1148   valgrind headers are available. The default is still --with-valgrind=no.
1149   (fd.o #56925, Simon McVittie)
1150
1151 Dependencies:
1152
1153 • Platforms with no 64-bit integer type are no longer supported.
1154   (fd.o #65429, Simon McVittie)
1155
1156 • GNU make is now (documented to be) required. (fd.o #48277, Simon McVittie)
1157
1158 • Full test coverage no longer requires dbus-glib, although the tests do not
1159   exercise the shared library (only a static copy) if dbus-glib is missing.
1160   (fd.o #68852, Simon McVittie)
1161
1162 Enhancements:
1163
1164 • D-Bus Specification 0.22
1165   · Document GetAdtAuditSessionData() and
1166     GetConnectionSELinuxSecurityContext() (fd.o #54445, Simon)
1167   · Fix example .service file (fd.o #66481, Chengwei Yang)
1168   · Don't claim D-Bus is "low-latency" (lower than what?), just
1169     give factual statements about it supporting async use
1170     (fd.o #65141, Justin Lee)
1171   · Document the contents of .service files, and the fact that
1172     system services' filenames are constrained
1173     (fd.o #66608; Simon McVittie, Chengwei Yang)
1174
1175 • Be thread-safe by default on all platforms, even if
1176   dbus_threads_init_default() has not been called. For compatibility with
1177   older libdbus, library users should continue to call
1178   dbus_threads_init_default(): it is harmless to do so.
1179   (fd.o #54972, Simon McVittie)
1180
1181 • Add GetConnectionCredentials() method (fd.o #54445, Simon)
1182
1183 • New API: dbus_setenv(), a simple wrapper around setenv().
1184   Note that this is not thread-safe. (fd.o #39196, Simon)
1185
1186 • Add dbus-send --peer=ADDRESS (connect to a given peer-to-peer connection,
1187   like --address=ADDRESS in previous versions) and dbus-send --bus=ADDRESS
1188   (connect to a given bus, like dbus-monitor --address=ADDRESS).
1189   dbus-send --address still exists for backwards compatibility,
1190   but is no longer documented. (fd.o #48816, Andrey Mazo)
1191
1192 • Windows-specific:
1193   · "dbus-daemon --nofork" is allowed on Windows again. (fd.o #68852,
1194     Simon McVittie)
1195
1196 Fixes:
1197
1198 • Avoid an infinite busy-loop if a signal interrupts waitpid()
1199   (fd.o #68945, Simon McVittie)
1200
1201 • Clean up memory for parent nodes when objects are unexported
1202   (fd.o #60176, Thomas Fitzsimmons)
1203
1204 • Make dbus_connection_set_route_peer_messages(x, FALSE) behave as
1205   documented. Previously, it assumed its second parameter was TRUE.
1206   (fd.o #69165, Chengwei Yang)
1207
1208 • Escape addresses containing non-ASCII characters correctly
1209   (fd.o #53499, Chengwei Yang)
1210
1211 • Document <servicedir> search order correctly (fd.o #66994, Chengwei Yang)
1212
1213 • Don't crash on "dbus-send --session / x.y.z" which regressed in 1.7.4.
1214   (fd.o #65923, Chengwei Yang)
1215
1216 • If malloc() returns NULL in _dbus_string_init() or similar, don't free
1217   an invalid pointer if the string is later freed (fd.o #65959, Chengwei Yang)
1218
1219 • If malloc() returns NULL in dbus_set_error(), don't va_end() a va_list
1220   that was never va_start()ed (fd.o #66300, Chengwei Yang)
1221
1222 • fix build failure with --enable-stats (fd.o #66004, Chengwei Yang)
1223
1224 • fix a regression test on platforms with strict alignment (fd.o #67279,
1225   Colin Walters)
1226
1227 • Avoid calling function parameters "interface" since certain Windows headers
1228   have a namespace-polluting macro of that name (fd.o #66493, Ivan Romanov)
1229
1230 • Assorted Doxygen fixes (fd.o #65755, Chengwei Yang)
1231
1232 • Various thread-safety improvements to static variables (fd.o #68610,
1233   Simon McVittie)
1234
1235 • Make "make -j check" work (fd.o #68852, Simon McVittie)
1236
1237 • Fix a NULL pointer dereference on an unlikely error path
1238   (fd.o #69327, Sviatoslav Chagaev)
1239
1240 • Improve valgrind memory pool tracking (fd.o #69326,
1241   Sviatoslav Chagaev)
1242
1243 • Don't over-allocate memory in dbus-monitor (fd.o #69329,
1244   Sviatoslav Chagaev)
1245
1246 • dbus-monitor can monitor dbus-daemon < 1.5.6 again
1247   (fd.o #66107, Chengwei Yang)
1248
1249 • Unix-specific:
1250   · If accept4() fails with EINVAL, as it can on older Linux kernels
1251     with newer glibc, try accept() instead of going into a busy-loop.
1252     (fd.o #69026, Chengwei Yang)
1253   · If socket() or socketpair() fails with EINVAL or EPROTOTYPE,
1254     for instance on Hurd or older Linux with a new glibc, try without
1255     SOCK_CLOEXEC. (fd.o #69073; Pino Toscano, Chengwei Yang)
1256   · Fix a file descriptor leak on an error code path.
1257     (fd.o #69182, Sviatoslav Chagaev)
1258   · dbus-run-session: clear some unwanted environment variables
1259     (fd.o #39196, Simon)
1260   · dbus-run-session: compile on FreeBSD (fd.o #66197, Chengwei Yang)
1261   · Don't fail the autolaunch test if there is no DISPLAY (fd.o #40352, Simon)
1262   · Use dbus-launch from the builddir for testing, not the installed copy
1263     (fd.o #37849, Chengwei Yang)
1264   · Fix compilation if writev() is unavailable (fd.o #69409,
1265     Vasiliy Balyasnyy)
1266   · Remove broken support for LOCAL_CREDS credentials passing, and
1267     document where each credential-passing scheme is used (fd.o #60340,
1268     Simon McVittie)
1269   · Make autogen.sh work on *BSD by not assuming GNU coreutils functionality
1270     (fd.o #35881, #69787; Chengwei Yang)
1271   · dbus-monitor: be portable to NetBSD (fd.o #69842, Chengwei Yang)
1272   · dbus-launch: stop using non-portable asprintf (fd.o #37849, Simon)
1273   · Improve error reporting from the setuid activation helper (fd.o #66728,
1274     Chengwei Yang)
1275
1276 • Windows-specific:
1277   · Remove unavailable command-line options from 'dbus-daemon --help'
1278     (fd.o #42441, Ralf Habacker)
1279   · Add support for looking up local TCPv4 clients' credentials on
1280     Windows XP via the undocumented AllocateAndGetTcpExTableFromStack
1281     function (fd.o #66060, Ralf Habacker)
1282   · Fix insufficient dependency-tracking (fd.o #68505, Simon McVittie)
1283   · Don't include wspiapi.h, fixing a compiler warning (fd.o #68852,
1284     Simon McVittie)
1285
1286 • Internal changes:
1287   · add DBUS_ENABLE_ASSERT, DBUS_ENABLE_CHECKS for less confusing
1288     conditionals (fd.o #66142, Chengwei Yang)
1289   · improve verbose-mode output (fd.o #63047, Colin Walters)
1290   · consolidate Autotools and CMake build (fd.o #64875, Ralf Habacker)
1291   · fix various unused variables, unusual build configurations
1292     etc. (fd.o #65712, #65990, #66005, #66257, #69165, #69410, #70218;
1293     Chengwei Yang, Vasiliy Balyasnyy)
1294
1295 D-Bus 1.7.4 (2013-06-13)
1296 ==
1297
1298 The “but is your thread-safety thread-safe?” release.
1299
1300 Security fixes:
1301
1302 • CVE-2013-2168: Fix misuse of va_list that could be used as a denial
1303   of service for system services. Vulnerability reported by Alexandru Cornea.
1304   (Simon)
1305
1306 Dependencies:
1307
1308 • The Windows version of libdbus now contains a C++ source file, used
1309   to provide global initialization when the library is loaded.
1310   gcc (mingw*) users should ensure that g++ is also installed.
1311
1312 • The libxml2-based configuration reader (which hasn't worked for 2.5 years,
1313   and was never the recommended option) has been removed. Expat is now a
1314   hard dependency.
1315
1316 Enhancements:
1317
1318 • It should now be safe to call dbus_threads_init_default() from any thread,
1319   at any time. Authors of loadable modules and plugins that use libdbus
1320   should consider doing so during initialization.
1321   (fd.o #54972, Simon McVittie)
1322
1323 • Improve dbus-send documentation and command-line parsing (fd.o #65424,
1324   Chengwei Yang)
1325
1326 Unix-specific:
1327   · dbus-run-session: experimental new tool to start a temporary D-Bus
1328     session, e.g. for regression tests or a text console, replacing
1329     certain uses of dbus-launch which weren't really correct
1330     (fd.o #39196, Simon)
1331
1332 Other fixes:
1333
1334 • In dbus-daemon, don't crash if a .service file starts with key=value
1335   (fd.o #60853, Chengwei Yang)
1336
1337 • Unix-specific:
1338   · Fix a crash similar to CVE-2013-2168 the first time we try to use syslog
1339     on a platform not defining LOG_PERROR, such as Solaris or QNX.
1340     This regressed in 1.7.0. (Simon)
1341   · Fix an assertion failure if we try to activate systemd services before
1342     systemd connects to the bus (fd.o #50199, Chengwei Yang)
1343   · Avoid compiler warnings for ignoring the return from write()
1344     (Chengwei Yang)
1345
1346 • Windows-specific:
1347   · Under cmake, install runtime libraries (DLLs) into bin/ instead of lib/
1348     so that Windows finds them (fd.o #59733, Ralf Habacker)
1349
1350 D-Bus 1.7.2 (2013-04-25)
1351 ==
1352
1353 The “only partially opaque” release.
1354
1355 Configuration changes:
1356
1357 • On non-QNX Unix platforms, the default limit on fds per message in the
1358   session bus configuration has reduced from 4096 to 1024. The default
1359   limit used on the system bus was already 1024. On QNX, both limits are
1360   reduced further, to 128.
1361
1362 Enhancements:
1363
1364 • D-Bus Specification 0.21
1365   · Following Unicode Corrigendum #9, the noncharacters U+nFFFE, U+nFFFF,
1366     U+FDD0..U+FDEF are allowed in UTF-8 strings again. (fd.o #63072,
1367     Simon McVittie)
1368
1369 Fixes:
1370
1371 • Diagnose incorrect use of dbus_connection_get_data() with negative slot
1372   (i.e. before allocating the slot) rather than returning junk
1373   (fd.o #63127, Dan Williams)
1374
1375 • Fix a cmake build regression since 1.7.0 (fd.o #63682; Ralf Habacker,
1376   Simon McVittie)
1377
1378 • Unix-specific:
1379   · On Linux, link successfully with glibc 2.17 (fd.o #63166, Simon McVittie)
1380   · Under systemd, log to syslog only, not stderr, avoiding duplication
1381     (fd.o #61399, #39987; Colin Walters, Dagobert Michelsen)
1382   · Under systemd, remove unnecessary dependency on syslog.socket
1383     (fd.o #63531, Cristian Rodríguez)
1384   · Include alloca.h for alloca() if available, fixing compilation on
1385     Solaris 10 (fd.o #63071, Dagobert Michelsen)
1386   · Allow use of systemd-logind without the rest of systemd
1387     (fd.o #62585, Martin Pitt)
1388   · When built with CMake, link to librt and use the right path for
1389     meinproc's XSLT stylesheets (fd.o #61637, Ralf Habacker)
1390   · Reduce the default limit on number of fds per message to 128 under
1391     QNX, working around an arbitrary OS limit (fd.o #61176, Matt Fischer)
1392
1393 • Windows-specific:
1394   · Do not claim that all bus clients have the dbus-daemon's credentials;
1395     pick up local TCPv4 clients' credentials (process ID and security
1396     identifier, i.e. user) using GetExtendedTcpTable() (fd.o #61787,
1397     Ralf Habacker)
1398
1399 D-Bus 1.7.0 (2013-02-22)
1400 ==
1401
1402 The "Disingenuous Assertions" release.
1403
1404 This is a new development release, starting the 1.7.x branch. D-Bus 1.6
1405 remains the recommended version for long-term-supported distributions
1406 or the upcoming GNOME 3.8 release.
1407
1408 Build-time configuration changes:
1409
1410 • The --with-dbus-session-bus-default-address configure option is no longer
1411   supported. Use the new --with-dbus-session-bus-connect-address and
1412   --with-dbus-session-bus-listen-address options instead. On Windows, you
1413   usually want them to have the same argument; on Unix, the defaults are
1414   usually correct.
1415
1416 • Similarly, the DBUS_SESSION_BUS_DEFAULT_ADDRESS CMake variable is no longer
1417   supported; use the new DBUS_SESSION_BUS_LISTEN_ADDRESS and
1418   DBUS_SESSION_BUS_CONNECT_ADDRESS variables instead.
1419
1420 • cmake/cross-compile.sh has been removed. Instead, please use a
1421   cross-toolchain file (-DCMAKE_TOOLCHAIN_FILE) as documented at
1422   <http://www.vtk.org/Wiki/CMake_Cross_Compiling>; or use Autotools
1423   as documented in "info automake Cross-Compilation", and set
1424   PKG_CONFIG_PATH appropriately.
1425
1426 Requirements:
1427
1428 • Man pages now require xmlto (or either xmlto or meinproc, if using CMake).
1429 • man2html is no longer used.
1430
1431 Enhancements:
1432
1433 • D-Bus Specification 0.20
1434   · actually say that /org/freedesktop/DBus is the object that
1435     implements o.fd.DBus (fd.o #51865, Colin Walters)
1436   · various reorganisation for better clarity (fd.o #38252, Simon McVittie)
1437   · stop claiming that all basic types work just like INT32 (strings don't!)
1438
1439 • The "source code" for the man pages is now Docbook XML, eliminating
1440   the outdated duplicate copies used when building with CMake.
1441   (fd.o #59805; Ralf Habacker, Simon McVittie)
1442
1443 Fixes:
1444
1445 • In the activation helper, when compiled for tests, do not reset the system
1446   bus address, fixing the regression tests. (fd.o #52202, Simon)
1447
1448 • Fix building with Valgrind 3.8, at the cost of causing harmless warnings
1449   with Valgrind 3.6 on some compilers (fd.o #55932, Arun Raghavan)
1450
1451 • Merge <servicehelper> from system-local.conf if necessary (fd.o #51560,
1452   Krzysztof Konopko)
1453
1454 • Under CMake, prefer xmlto over meinproc (fd.o #59733, Ralf Habacker)
1455
1456 • Stop duplicating CMake's own logic to find libexpat
1457   (fd.o #59733, Ralf Habacker)
1458
1459 • Don't assume CMake host and build system are the same (fd.o #59733,
1460   Ralf Habacker)
1461
1462 • Avoid deprecation warnings for GLib 2.35 (fd.o #59971, Simon McVittie)
1463
1464 • Unix-specific:
1465   · Check for functions in libpthread correctly, fixing compilation on
1466     (at least) OpenBSD (fd.o #47239, Simon)
1467   · Don't leak temporary fds pointing to /dev/null (fd.o #56927,
1468     Michel HERMIER)
1469   · Update sd-daemon.[ch] from systemd (fd.o #60681)
1470   · Add partial support for QNX (fd.o #60339, fd.o #61176; Matt Fischer)
1471
1472 • Windows-specific:
1473   · The default session bus listening and connecting address is now
1474     "autolaunch:", which makes D-Bus on Windows interoperate with itself
1475     and GDBus "out of the box". Use the configure options and cmake variables
1476     described above if you require a different autolaunch scope.
1477     (fd.o #38201, Simon McVittie)
1478   · Avoid a CMake warning under Cygwin (fd.o #59401, Ralf Habacker)
1479
1480 • Create session.d, system.d directories under CMake (fd.o #41319,
1481   Ralf Habacker)
1482
1483 D-Bus 1.6.8 (2012-09-28)
1484 ==
1485
1486 The "Fix one thing, break another" release.
1487
1488 • Follow up to CVE-2012-3524: The additional hardening
1489   work to use __secure_getenv() as a followup to bug #52202
1490   broke certain configurations of gnome-keyring.  Given
1491   the difficulty of making this work without extensive
1492   changes to gnome-keyring, use of __secure_getenv() is
1493   deferred.
1494
1495 D-Bus 1.6.6 (2012-09-28)
1496 ==
1497
1498 The "Clear the environment in your setuid binaries, please" release.
1499
1500 • CVE-2012-3524: Don't access environment variables (fd.o #52202)
1501   Thanks to work and input from Colin Walters, Simon McVittie,
1502   Geoffrey Thomas, and others.
1503 • Unix-specific:
1504   · Fix compilation on Solaris (fd.o #53286, Jonathan Perkin)
1505   · Work around interdependent headers on OpenBSD by including sys/types.h
1506     before each use of sys/socket.h (fd.o #54418, Brad Smith)
1507
1508 D-Bus 1.6.4 (2012-07-18)
1509 ==
1510
1511 • Detect that users are "at the console" correctly when configured with
1512   a non-default path such as --enable-console-auth-dir=/run/console
1513   (fd.o #51521, Dave Reisner)
1514
1515 • Remove an incorrect assertion from DBusTransport (fd.o #51657,
1516   Simon McVittie)
1517
1518 • Make --enable-developer default to "no" (regression in 1.6.2;
1519   fd.o #51657, Simon McVittie)
1520
1521 • Windows-specific:
1522   · Launch dbus-daemon correctly if its path contains a space
1523     (fd.o #49450, Wolfgang Baron)
1524
1525 D-Bus 1.6.2 (2012-06-27)
1526 ==
1527
1528 The "Ice Cabbage" release.
1529
1530 • Change how we create /var/lib/dbus so it works under Automake >= 1.11.4
1531   (fd.o #51406, Simon McVittie)
1532
1533 • Don't return from dbus_pending_call_set_notify with a lock held on OOM
1534   (fd.o #51032, Simon McVittie)
1535
1536 • Disconnect "developer mode" (assertions, verbose mode etc.) from
1537   Automake maintainer mode. D-Bus developers should now configure with
1538   --enable-developer. Automake maintainer mode is now on by default;
1539   distributions can disable it with --disable-maintainer-mode.
1540   (fd.o #34671, Simon McVittie)
1541
1542 • Automatically define DBUS_STATIC_BUILD in static-only Autotools builds,
1543   fixing linking when targeting Windows (fd.o #33973; william, Simon McVittie)
1544
1545 • Unix-specific:
1546   · Check for libpthread under CMake on Unix (fd.o #47237, Simon McVittie)
1547
1548 D-Bus 1.6.0 (2012-06-05)
1549 ==
1550
1551 The “soul of this machine has improved” release.
1552
1553 This version starts a new stable branch of D-Bus: only bug fixes will
1554 be accepted into 1.6.x. Other changes will now go to the 1.7.x branch.
1555
1556 Summary of changes since 1.4.x:
1557
1558 • New requirements
1559   · PTHREAD_MUTEX_RECURSIVE on Unix
1560   · compiler support for 64-bit integers (int64_t or equivalent)
1561
1562 • D-Bus Specification v0.19
1563
1564 • New dbus-daemon features
1565   · <allow own_prefix="com.example.Service"/> rules allow the service to
1566     own names like com.example.Service.Instance3
1567   · optional systemd integration when checking at_console policies
1568   · --nopidfile option, mainly for use by systemd
1569   · path_namespace and arg0namespace may appear in match rules
1570   · eavesdropping is disabled unless the match rule contains eavesdrop=true
1571
1572 • New public API
1573   · functions to validate various string types (dbus_validate_path() etc.)
1574   · dbus_type_is_valid()
1575   · DBusBasicValue, a union of every basic type
1576
1577 • Bug fixes
1578   · removed an unsafe reimplementation of recursive mutexes
1579   · dbus-daemon no longer busy-loops if it has far too many file descriptors
1580   · dbus-daemon.exe --print-address works on Windows
1581   · all the other bug fixes from 1.4.20
1582
1583 • Other major implementation changes
1584   · on Linux, dbus-daemon uses epoll if supported, for better scalability
1585   · dbus_threads_init() ignores its argument and behaves like
1586     dbus_threads_init_default() instead
1587   · removed the per-connection link cache, improving dbus-daemon performance
1588
1589 • Developer features
1590   · optional Valgrind instrumentation (--with-valgrind)
1591   · optional Stats interface on the dbus-daemon (--enable-stats)
1592   · optionally abort whenever malloc() fails (--enable-embedded-tests
1593     and export DBUS_MALLOC_CANNOT_FAIL=1)
1594
1595 Changes since 1.5.12:
1596
1597 • Be more careful about monotonic time vs. real time, fixing DBUS_COOKIE_SHA1
1598   spec-compliance (fd.o #48580, David Zeuthen)
1599
1600 • Don't use install(1) within the source/build trees, fixing the build as
1601   non-root when using OpenBSD install(1) (fd.o #48217, Antoine Jacoutot)
1602
1603 • Add missing commas in some tcp and nonce-tcp addresses, and remove
1604   an unused duplicate copy of the nonce-tcp transport in Windows builds
1605   (fd.o #45896, Simon McVittie)
1606
1607 D-Bus 1.5.12 (2012-03-27)
1608 ==
1609
1610 The “Big Book of Science” release.
1611
1612 • Add public API to validate various string types:
1613   dbus_validate_path(), dbus_validate_interface(), dbus_validate_member(),
1614   dbus_validate_error_name(), dbus_validate_bus_name(), dbus_validate_utf8()
1615   (fd.o #39549, Simon McVittie)
1616
1617 • Turn DBusBasicValue into public API so bindings don't need to invent their
1618   own "union of everything" type (fd.o #11191, Simon McVittie)
1619
1620 • Enumerate data files included in the build rather than using find(1)
1621   (fd.o #33840, Simon McVittie)
1622
1623 • Add support for policy rules like <allow own_prefix="com.example.Service"/>
1624   in dbus-daemon (fd.o #46273, Alban Crequy)
1625
1626 • Windows-specific:
1627   · make dbus-daemon.exe --print-address (and --print-pid) work again
1628     on Win32, but not on WinCE (fd.o #46049, Simon McVittie)
1629   · fix duplicate case value when compiling against mingw-w64
1630     (fd.o #47321, Andoni Morales Alastruey)
1631
1632 D-Bus 1.5.10 (2012-02-21)
1633 ==
1634
1635 The "fire in Delerium" release.
1636
1637 On Unix platforms, PTHREAD_MUTEX_RECURSIVE (as specified in POSIX 2008 Base
1638 and SUSv2) is now required.
1639
1640 • D-Bus Specification 0.19:
1641   · Formally define unique connection names and well-known bus names,
1642     and document best practices for interface, bus, member and error names,
1643     and object paths (fd.o #37095, Simon McVittie)
1644   · Document the search path for session and system services on Unix, and
1645     where they should be installed by build systems (fd.o #21620, fd.o #35306;
1646     Simon McVittie)
1647   · Document the systemd transport (fd.o #35232, Lennart Poettering)
1648
1649 • Make dbus_threads_init() use the same built-in threading implementation
1650   as dbus_threads_init_default(); the user-specified primitives that it
1651   takes as a parameter are now ignored (fd.o #43744, Simon McVittie)
1652
1653 • Allow all configured auth mechanisms, not just one (fd.o #45106,
1654   Pavel Strashkin)
1655
1656 • Improve cmake build system (Ralf Habacker):
1657   · simplify XML parser dependencies (fd.o #41027)
1658   · generate build timestamp (fd.o #41029)
1659   · only create batch files on Windows
1660   · fix option and cache syntax
1661   · add help-options target
1662   · share dbus-arch-deps.h.in with autotools rather than having our
1663     own version (fd.o #41033)
1664
1665 • Build tests successfully with older GLib, as found in e.g. Debian 6
1666   (fd.o #41219, Simon McVittie)
1667
1668 • Avoid use of deprecated GThread API (fd.o #44413, Martin Pitt)
1669
1670 • Build documentation correctly if man2html doesn't support filenames on
1671   its command-line (fd.o #43875, Jack Nagel)
1672
1673 • Improve test coverage. To get even more coverage, run the tests with
1674   DBUS_TEST_SLOW=1 (fd.o #38285, #42811; Simon McVittie)
1675
1676 • Reduce the size of the shared library by moving functionality only used
1677   by dbus-daemon, tests etc. into their internal library and deleting
1678   unused code (fd.o #34976, #39759; Simon McVittie)
1679
1680 • Add dbus-daemon --nopidfile option, overriding the configuration, for
1681   setups where the default configuration must include <pidfile/> to avoid
1682   breaking traditional init, but the pid file is in fact unnecessary; use
1683   it under systemd to improve startup time a bit (fd.o #45520,
1684   Lennart Poettering)
1685
1686 • Optionally (if configured --with-valgrind) add instrumentation to debug
1687   libdbus and associated tools more meaningfully under Valgrind
1688   (fd.o #37286, Simon McVittie)
1689
1690 • Improve the dbus-send(1) man page (fd.o #14005, Simon McVittie)
1691
1692 • Make dbus-protocol.h compatible with C++11 (fd.o #46147, Marc Mutz)
1693
1694 • If tests are enabled and DBUS_MALLOC_CANNOT_FAIL is set in the environment,
1695   abort on failure to malloc() (like GLib does), to turn runaway memory leaks
1696   into a debuggable core-dump if a resource limit is applied (fd.o #41048,
1697   Simon McVittie)
1698
1699 • Don't crash if realloc() returns NULL in a debug build (fd.o #41048,
1700   Simon McVittie)
1701
1702 • Unix-specific:
1703   · Replace our broken reimplementation of recursive mutexes, which has
1704     been broken since 2006, with an ordinary pthreads recursive mutex
1705     (fd.o #43744; Sigmund Augdal, Simon McVittie)
1706   · Use epoll(7) for a more efficient main loop in Linux; equivalent patches
1707     welcomed for other OSs' equivalents like kqueue, /dev/poll, or Solaris
1708     event ports (fd.o #33337; Simon McVittie, Ralf Habacker)
1709   · When running under systemd, use it instead of ConsoleKit to check
1710     whether to apply at_console policies (fd.o #39609, Lennart Poettering)
1711   · Avoid a highly unlikely fd leak (fd.o #29881, Simon McVittie)
1712   · Don't close invalid fd -1 if getaddrinfo fails (fd.o #37258, eXeC001er)
1713   · Don't touch ~/.dbus and ~/.dbus-keyrings when running 'make installcheck'
1714     (fd.o #41218, Simon McVittie)
1715   · Stop pretending we respect XDG_DATA_DIRS for system services: the launch
1716     helper doesn't obey environment variables to avoid privilege escalation
1717     attacks, so make the system bus follow the same rules
1718     (fd.o #21620, Simon McVittie)
1719
1720 • Windows-specific:
1721   · Find the dbus-daemon executable next to the shared library (fd.o #41558;
1722     Jesper Dam, Ralf Habacker)
1723   · Remove the faulty implementation of _dbus_condvar_wake_all (fd.o #44609,
1724     Simon McVittie)
1725
1726 D-Bus 1.5.8 (2011-09-21)
1727 ==
1728
1729 The "cross-metering" release.
1730
1731 In addition to dead code removal and refactoring, this release contains all
1732 of the bugfixes from 1.4.16.
1733
1734 • Clean up dead code, and make more warnings fatal in development builds
1735   (fd.o #39231, fd.o #41012; Simon McVittie)
1736
1737 • If full test coverage is requested via --enable-tests, strictly require
1738   Python, pygobject and dbus-python, which are required by some tests; if not,
1739   and Python is missing, skip those tests rather than failing
1740   (fd.o #37847, Simon McVittie)
1741
1742 • When using cmake, provide the same version-info API in the installed headers
1743   as for autotools (DBUS_VERSION, etc.) (fd.o #40905, Ralf Habacker)
1744
1745 • Add a regression test for fd.o #38005 (fd.o #39836, Simon McVittie)
1746
1747 • Make "NOCONFIGURE=1 ./autogen.sh" not run configure (Colin Walters)
1748
1749 • Add _DBUS_STATIC_ASSERT and use it to check invariants (fd.o #39636,
1750   Simon McVittie)
1751
1752 • Fix duplicates in authors list (Ralf Habacker)
1753
1754 • Fix broken links from dbus-tutorial.html if $(htmldir) != $(docdir)
1755   (fd.o #39879, Chris Mayo)
1756
1757 • Fix a small memory leak, and a failure to report errors, when updating
1758   a service file entry for activation (fd.o #39230, Simon McVittie)
1759
1760 • Unix-specific:
1761   · Clean up (non-abstract) Unix sockets on bus daemon exit (fd.o #38656;
1762     Brian Cameron, Simon McVittie)
1763   · On systems that use libcap-ng but not systemd, drop supplemental groups
1764     when switching to the daemon user (Red Hat #726953, Steve Grubb)
1765   · Make the cmake build work again on GNU platforms (fd.o #29228,
1766     Simon McVittie)
1767   · Fix compilation on non-C99 systems that have inttypes.h but not stdint.h,
1768     like Solaris (fd.o #40313, Dagobert Michelsen)
1769   · Define CMSG_ALIGN, CMSG_LEN, CMSG_SPACE on Solaris < 10
1770     (fd.o #40235, Simon McVittie)
1771   · Cope with Unixes that don't have LOG_PERROR, like Solaris 10
1772     (fd.o #39987, Simon McVittie)
1773   · Cope with platforms whose vsnprintf violates both POSIX and C99, like
1774     Tru64, IRIX and HP-UX (fd.o #11668, Simon McVittie)
1775
1776 • Windows-specific:
1777   · Fix compilation on MSVC, which doesn't understand "inline" with its
1778     C99 meaning (fd.o #40000; Ralf Habacker, Simon McVittie)
1779   · Fix misuse of GPid in test/dbus-daemon.c (fd.o #40003, Simon McVittie)
1780   · Fix cross-compilation to Windows with Automake (fd.o #40003, Simon McVittie)
1781
1782 D-Bus 1.5.6 (2011-07-29)
1783 ==
1784
1785 The "weird, gravy-like aftertaste" release.
1786
1787 In addition to new features and refactoring, this release contains all of the
1788 bugfixes from 1.4.14.
1789
1790 Potentially incompatible (Bustle and similar debugging tools will need
1791 changes to work as intended):
1792
1793 • Do not allow match rules to "eavesdrop" (receive messages intended for a
1794   different recipient) by mistake: eavesdroppers must now opt-in to this
1795   behaviour by putting "eavesdrop='true'" in the match rule, which will
1796   not have any practical effect on buses where eavesdropping is not allowed
1797   (fd.o #37890, Cosimo Alfarano)
1798
1799 Other changes:
1800
1801 • D-Bus Specification version 0.18 (fd.o #37890, fd.o #39450, fd.o #38252;
1802   Cosimo Alfarano, Simon McVittie)
1803   · add the "eavesdrop" keyword to match rules
1804   · define eavesdropping, unicast messages and broadcast messages
1805   · stop claiming that match rules are needed to match unicast messages to you
1806   · promote the type system to be a top-level section
1807
1808 • Use DBUS_ERROR_OBJECT_PATH_IN_USE if dbus_connection_try_register_object_path
1809   or dbus_connection_try_register_fallback fails, not ...ADDRESS_IN_USE,
1810   and simplify object-path registration (fd.o #38874, Jiří Klimeš)
1811
1812 • Consistently use atomic operations on everything that is ever manipulated
1813   via atomic ops, as was done for changes to DBusConnection's refcount in
1814   1.4.12 (fd.o #38005, Simon McVittie)
1815
1816 • Fix a file descriptor leak when connecting to a TCP socket (fd.o #37258,
1817   Simon McVittie)
1818
1819 • Make "make check" in a clean tree work, by not running tests until
1820   test data has been set up (fd.o #34405, Simon McVittie)
1821
1822 • The dbus-daemon no longer busy-loops if it has a very large number of file
1823   descriptors (fd.o #23194, Simon McVittie)
1824
1825 • Refactor message flow through dispatching to avoid locking violations if
1826   the bus daemon's message limit is hit; remove the per-connection link cache,
1827   which was meant to improve performance, but now reduces it (fd.o #34393,
1828   Simon McVittie)
1829
1830 • Some cmake fixes (Ralf Habacker)
1831
1832 • Remove dead code, mainly from DBusString (fd.o #38570, fd.o #39610;
1833   Simon McVittie, Lennart Poettering)
1834
1835 • Stop storing two extra byte order indicators in each D-Bus message
1836   (fd.o #38287, Simon McVittie)
1837
1838 • Add an optional Stats interface which can be used to get statistics from
1839   a running dbus-daemon if enabled at configure time with --enable-stats
1840   (fd.o #34040, Simon McVittie)
1841
1842 • Fix various typos (fd.o #27227, fd.o #38284; Sascha Silbe, Simon McVittie)
1843
1844 • Documentation (fd.o #36156, Simon McVittie):
1845   · let xsltproc be overridden as usual: ./configure XSLTPROC=myxsltproc
1846   · install more documentation automatically, including man2html output
1847   · put dbus.devhelp in the right place (it must go in ${htmldir})
1848
1849 • Unix-specific:
1850   · look for system services in /lib/dbus-1/system-services in addition to all
1851     the other well-known locations; note that this should always be /lib,
1852     even on platforms where shared libraries on the root FS would go in /lib64,
1853     /lib/x86_64-linux-gnu or similar (fd.o #35229, Lennart Poettering)
1854   · opt-in to fd passing on Solaris (fd.o #33465, Simon McVittie)
1855
1856 • Windows-specific (Ralf Habacker):
1857   · fix use of a mutex for autolaunch server detection
1858   · don't crash on malloc failure in _dbus_printf_string_upper_bound
1859
1860 D-Bus 1.5.4 (2011-06-10)
1861 ==
1862
1863 Security (local denial of service):
1864
1865 • Byte-swap foreign-endian messages correctly, preventing a long-standing
1866   local DoS if foreign-endian messages are relayed through the dbus-daemon
1867   (backporters: this is git commit c3223ba6c401ba81df1305851312a47c485e6cd7)
1868   (CVE-2011-2200, fd.o #38120, Debian #629938; Simon McVittie)
1869
1870 New things:
1871
1872 • The constant to use for an infinite timeout now has a name,
1873   DBUS_TIMEOUT_INFINITE. It is numerically equivalent to 0x7fffffff (INT32_MAX)
1874   which can be used for source compatibility with older versions of libdbus.
1875
1876 • If GLib and DBus-GLib are already installed, more tests will be built,
1877   providing better coverage. The new tests can also be installed via
1878       ./configure --enable-installed-tests
1879   for system integration testing, if required. (fd.o #34570, Simon McVittie)
1880
1881 Changes:
1882
1883 • Consistently use atomic operations for the DBusConnection's refcount,
1884   fixing potential threading problems (fd.o #38005, Simon McVittie)
1885
1886 • Don't use -Wl,--gc-sections by default: in practice the size decrease is
1887   small (300KiB on x86-64) and it frequently doesn't work in unusual
1888   toolchains. To optimize for minimum installed size, you should benchmark
1889   various possibilities for CFLAGS and LDFLAGS, and set the best flags for
1890   your particular toolchain at configure time. (fd.o #33466, Simon McVittie)
1891
1892 • Use #!/bin/sh for run-with-tmp-session-bus.sh, making it work on *BSD
1893   (fd.o #35880, Timothy Redaelli)
1894
1895 • Use ln -fs to set up dbus for systemd, which should fix reinstallation
1896   when not using a DESTDIR (fd.o #37870, Simon McVittie)
1897
1898 • Windows-specific changes:
1899   · don't try to build dbus-daemon-launch-helper (fd.o #37838, Mark Brand)
1900
1901 D-Bus 1.5.2 (2011-06-01)
1902 ==
1903
1904 The "Boar Hunter" release.
1905
1906 Notes for distributors:
1907
1908   This version of D-Bus no longer uses -fPIE by default. Distributions wishing
1909   to harden the dbus-daemon and dbus-launch-helper can re-enable this if their
1910   toolchain supports it reliably, via something like:
1911
1912     ./configure CFLAGS=-fPIE LDFLAGS="-pie -Wl,-z,relro"
1913
1914   or by using distribution-specific wrappers such as Debian's hardening-wrapper.
1915
1916 Changes:
1917
1918   • D-Bus Specification v0.17
1919     · Reserve the extra characters used in signatures by GVariant
1920       (fd.o #34529, Simon McVittie)
1921     · Define the ObjectManager interface (fd.o #34869, David Zeuthen)
1922   • Don't force -fPIE: distributions and libtool know better than we do whether
1923     it's desirable (fd.o #16621, fd.o #27215; Simon McVittie)
1924   • Allow --disable-gc-sections, in case your toolchain offers the
1925     -ffunction-sections, -fdata-sections and -Wl,--gc-sections options
1926     but they're broken, as seen on Solaris (fd.o #33466, Simon McVittie)
1927   • Install dbus-daemon and dbus-daemon-launch-helper in a more normal way
1928     (fd.o #14512; Simon McVittie, loosely based on a patch from Luca Barbato)
1929   • Ensure that maintainers upload documentation with the right permissions
1930     (fd.o #36130, Simon McVittie)
1931   • Don't force users of libdbus to be linked against -lpthread, -lrt
1932     (fd.o #32827, Simon McVittie)
1933   • Log system-bus activation information to syslog (fd.o #35705,
1934     Colin Walters)
1935   • Log messages dropped due to quotas to syslog (fd.o #35358,
1936     Simon McVittie)
1937   • Make the nonce-tcp transport work on Unix (fd.o #34569, Simon McVittie)
1938   • On Unix, if /var/lib/dbus/machine-id cannot be read, try /etc/machine-id
1939     (fd.o #35228, Lennart Poettering)
1940   • In the regression tests, don't report fds as "leaked" if they were open
1941     on startup (fd.o #35173, Simon McVittie)
1942   • Make dbus-monitor bail out if asked to monitor more than one bus,
1943     rather than silently using the last one (fd.o #26548, Will Thompson)
1944   • Clarify documentation (fd.o #35182, Simon McVittie)
1945   • Clean up minor dead code and some incorrect error handling
1946     (fd.o #33128, fd.o #29881; Simon McVittie)
1947   • Check that compiler options are supported before using them (fd.o #19681,
1948     Simon McVittie)
1949   • Windows:
1950     • Remove obsolete workaround for winioctl.h (fd.o #35083, Ralf Habacker)
1951
1952 D-Bus 1.5.0 (2011-04-11)
1953 ==
1954
1955 The "you never know when you need to tow something from your giant
1956 flying shark" release.
1957
1958   • D-Bus Specification v0.16
1959     · Add support for path_namespace and arg0namespace in match rules
1960       (fd.o #24317, #34870; Will Thompson, David Zeuthen, Simon McVittie)
1961     · Make argNpath support object paths, not just object-path-like strings,
1962       and document it better (fd.o #31818, Will Thompson)
1963   • Let the bus daemon implement more than one interface (fd.o #33757,
1964     Simon McVittie)
1965   • Optimize _dbus_string_replace_len to reduce waste (fd.o #21261,
1966     Roberto Guido)
1967   • Require user intervention to compile with missing 64-bit support
1968     (fd.o #35114, Simon McVittie)
1969   • Add dbus_type_is_valid as public API (fd.o #20496, Simon McVittie)
1970   • Raise UnknownObject instead of UnknownMethod for calls to methods on
1971     paths that are not part of the object tree, and UnknownInterface for calls
1972     to unknown interfaces in the bus daemon (fd.o #34527, Lennart Poettering)
1973
1974 D-Bus 1.4.8 (2011-04-08)
1975 ==
1976
1977 The "It's like the beginning of a lobster" release.
1978
1979   • Rename configure.in to configure.ac, and update it to modern conventions
1980     (fd.o #32245; Javier Jardón, Simon McVittie)
1981   • Correctly give XDG_DATA_HOME priority over XDG_DATA_DIRS (fd.o #34496,
1982     Anders Kaseorg)
1983   • Prevent X11 autolaunching if $DISPLAY is unset or empty, and add
1984     --disable-x11-autolaunch configure option to prevent it altogether
1985     in embedded environments (fd.o #19997, NB#219964; Simon McVittie)
1986   • Install the documentation, and an index for Devhelp (fd.o #13495,
1987     Debian #454142; Simon McVittie, Matthias Clasen)
1988   • If checks are not disabled, check validity of string-like types and
1989     booleans when sending them (fd.o #16338, NB#223152; Simon McVittie)
1990   • Add UnknownObject, UnknownInterface, UnknownProperty and PropertyReadOnly
1991     errors to dbus-shared.h (fd.o #34527, Lennart Poettering)
1992   • Break up a huge conditional in config-parser so gcov can produce coverage
1993     data (fd.o #10887, Simon McVittie)
1994   • List which parts of the Desktop Entry specification are applicable to
1995     .service files (fd.o #19159, Sven Herzberg)
1996   • Don't suppress service activation if two services have the same Exec=
1997     (fd.o #35750, Colin Walters)
1998   • Windows:
1999     · Avoid the name ELEMENT_TYPE due to namespace-pollution from winioctl.h
2000       (Andre Heinecke)
2001     · Include _dbus_path_is_absolute in libdbus on Windows, fixing compilation
2002       (fd.o #32805, Mark Brand)
2003
2004 D-Bus 1.4.6 (2010-02-17)
2005 ==
2006
2007 The "1, 2, miss a few, 99, 100" release.
2008
2009   • Remove unfinished changes intended to support GTest-based tests,
2010     which were mistakenly included in 1.4.4
2011
2012 D-Bus 1.4.4 (2010-02-17)
2013 ==
2014
2015   • Switch back to using even micro versions for stable releases; 1.4.1
2016     should have been called 1.4.2, so skip that version number
2017   • Don't leave bad file descriptors being watched when spawning processes,
2018     which could result in a busy-loop (fd.o #32992, NB#200248; possibly
2019     also LP#656134, LP#680444, LP#713157)
2020   • Check for MSG_NOSIGNAL correctly
2021   • Fix failure to detect abstract socket support (fd.o #29895)
2022   • Make _dbus_system_logv actually exit with DBUS_SYSTEM_LOG_FATAL
2023     (fd.o #32262, NB#180486)
2024   • Improve some error code paths (fd.o #29981, fd.o #32264, fd.o #32262,
2025     fd.o #33128, fd.o #33277, fd.o #33126, NB#180486)
2026   • Avoid possible symlink attacks in /tmp during compilation (fd.o #32854)
2027   • Tidy up dead code (fd.o #25306, fd.o #33128, fd.o #34292, NB#180486)
2028   • Improve gcc malloc annotations (fd.o #32710)
2029   • If the system bus is launched via systemd, protect it from the OOM killer
2030   • Documentation improvements (fd.o #11190)
2031   • Avoid readdir_r, which is difficult to use correctly (fd.o #8284,
2032     fd.o #15922, LP#241619)
2033   • Cope with invalid files in session.d, system.d (fd.o #19186,
2034     Debian #230231)
2035   • Don't distribute generated files that embed our builddir (fd.o #30285,
2036     fd.o #34292)
2037   • Raise the system bus's fd limit to be sufficient for its configuration
2038     (fd.o #33474, LP#381063)
2039   • Fix syslog string processing
2040   • Ignore -Waddress
2041   • Remove broken gcov parsing code and --enable-gcov, and replace them
2042     with lcov HTML reports and --enable-compiler-coverage (fd.o #10887)
2043   • Windows:
2044     · avoid live-lock in Windows CE due to unfair condition variables
2045   • OpenBSD:
2046     · support credentials-passing (fd.o #32542)
2047   • Solaris:
2048     · opt-in to thread safety (fd.o #33464)
2049
2050 D-Bus 1.4.1 (20 December 2010)
2051 ==
2052
2053  • Fix for CVE-2010-4352: sending messages with excessively-nested variants can
2054    crash the bus. The existing restriction to 64-levels of nesting previously
2055    only applied to the static type signature; now it also applies to dynamic
2056    nesting using variants. Thanks to Rémi Denis-Courmont for discoving this
2057    issue.
2058  • OS X portability fixes, including launchd support.
2059  • Windows autolaunch improvements.
2060  • Various bug fixes.
2061
2062 D-Bus 1.4.0 (6 Sep 2010)
2063 ==
2064  - systemd hookup
2065
2066 D-Bus 1.3.1 (23 June 2010)
2067 ==
2068  - New standardized PropertiesChanged signal in the properties interface
2069  - Various portability fixes, in particular to Windows platforms
2070  - Support forking bus services, for compatibility
2071
2072 D-Bus 1.3.0 (29 July 2009)
2073 ==
2074  - ability for dbus-send to send to any bus (--address)
2075  - file descriptor passing on Unix socket transports
2076  - use of GCC atomic intrinsics for better processor support
2077    (requires -march=i486 or above for x86 compilation)
2078  - thread-safe FD_CLOEXEC setting on recent Linux kernels (2.6.24-27 and up)
2079    and glibc (2.9 for pipe2 and 2.10 for accept4)
2080  - feature negotiation in the bus daemon