1Avahi 0.8, the 'Dobro Jutro' release
2====================================
3
4The Avahi 0.8 release brings a number of new features and bug fix changes
5including a backward-compatible addition to the D-Bus API and the avahi-core
6API.
7
8The existing API is still fully supported however clients using the new
9API will not work with older Avahi releases. The avahi-client library is not
10affected. See the "API Changes" section for further details.
11
12New Features:
13- New options for filtering reflected queries between networks (reflect-filter)
14- New mainloop integration for Qt5 and libevent
15- docs/THREADS: Information for multi-threaded avahi-client apps
16- Listen on loopback interfaces by default, allowing local-only services to be
17  consumed by the local machine
18- New D-Bus V2 API and additions to the avahi-core API for splitting "New"
19  calls into "Prepare" and "Start". See "API Changes" for more details.
20
21Notable Changes:
22- avahi-autoipd: Initial IP selection based on MAC previously ignored first
23  octet - this will cause all hosts to select a different link-local IP than
24  previous versions based on the same MAC address
25- avahi-daemon: Delay sending results on an object for 10ms in an attempt to
26  give clients enough time to subscribe to signals from the new object after
27  receiving it's path in response so the New call. See "API Changes" for more
28  info
29
30Bug Fixes:
31- avahi-python: Various Python 3 enhancements including encoding unicode
32  strings as UTF-8
33- avahi-common: avahi_string_list_to_string will now escape embedded quotes,
34  backslashes and control characters.
35- avahi-daemon: Fix a crash when txt records have an empty value in .xml
36  service files
37- avahi-daemon: reflector: do not incorrectly cache responses on outgoing
38  interfaces. Previously we would incorrectly cache responses reflected from
39  one interface on the outgoing interface. These responses were later sent to
40  clients on that network even if the original client had disappeared and could
41  cause those clients to have a hostname conflict with themselves on restart.
42  We no longer incorrectly cache such traffic.
43
44Security Fixes:
45- Drop legacy unicast queries from address not on local link which can lead to
46  UDP traffic amplification attacks (CVE-2017-6519)
47
48API Changes: The avahi-core API and D-Bus API have implemented a new API where
49a call to the "New" method can now be split into a "Prepare" and then "Start"
50method for some objects. The previous "New" API is still fully supported and
51there is no intention to deprecate it.
52
53This change affects the the following objects: AsyncAddressResolver,
54AsyncHostNameResolver, AsyncServiceResolver, DomainBrowser, RecordBrowser,
55ServiceBrowser, ServiceTypeBrowser
56
57This is because the D-Bus implementation in some languages would only bind to
58signals of an object after it was created and had received the new object's
59path. This led to such languages missing the initial results sent between the
60time the object was created and it had setup a filter to receive it's signals.
61This primarily occured in languages that create dynamic bindings for D-Bus
62objects using introspection such as Python. The avahi-client C api was not
63affected as it globally binds to all avahi signals without specifying
64individual object paths and still makes use of the V1 API.
65
66The v2 Prepare/Start API is available under the new
67org.freedesktop.Avahi.Server2 D-Bus interface and also has corresponding
68avahi_s_* calls for users of the embedded avahi-core library.
69
70The old org.freedesktop.Avahi.Server interface is still supported and there is
71no intention to remove this API. Additionally this problem has also been solved
72for old clients by adding a very small 10ms delay before we start sending
73results to give the client time to bind to the signals which should silently
74fix the issue in most cases without introducing a noticable or impactful delay.
75
76Clients implementing the new org.freedesktop.Avahi.Server2 D-Bus interface will
77not work with older Avahi daemons. It is suggested that clients may wish to
78either check for and fallback to the older API version, or continue to use the
79OLD API and rely on the 10ms timer to resolve the issue.
80
81
82Big thank-you to everyone contributing to the project through issues & pull
83requests, including the the following people who contributed changes to this
84release: Daniel S, David Kerr, Eric Bischoff, James Rudd, Jan Alexander
85Steffens (heftig), Karl Cronburg, Krzesimir Nowak, Mario Blättermann, Martin
86Blanchard, Michal Sekletar, msk-nightingale, Philip Prindeville, Piotr Drąg,
87Rafael Fontenelle, scootergrisen, Simon Lauser, Simon McVittie, Thomas Jollans,
88Tony Garnock-Jones, Trent Lloyd, wisd0me, Yclept Nemo, Zlopez, Дамјан
89Георгиевски.
90
91This release is backwards compatible with Avahi 0.6.x and 0.7.
92
93Avahi 0.7, the 'Adieu' release
94==============================
95
96The Avahi 0.7 release brings two new features, binary TXT records in XML
97service files and the ability to start the gobject client in a custom context.
98
99A number of other changes are detailed below.
100
101New Features:
102 * Add support for binary values in TXT records in XML service files by
103   specifying value-format="text|binary-hex|binary-base64".  If not specified,
104   defaults to the normal value of "text" (thus backwards compatible)
105 * avahi-gobject: Allow starting the client in a custom GMainContext by
106   passing context to ga_client_start_in_context instead of ga_client_start
107   (avahi-gobject minor version has been incremented)
108
109 Thanks to Krzesimir Nowak for both of these additions.
110
111Notable Changes:
112 * avahi-daemon: Remove all default rlimits from avahi-daemon.conf, as two
113   main problems happened with firstly rlimit-nproc causing avahi to fail when
114   started in a container without user namespaces and secondly because memory
115   rlimits were causing avahi to crash in some cases.  Leave it up to the init
116   system to impose any modified limits instead. It is recommend to ship this
117   change in distribution default config files.
118 * avahi-common: Fix watch cleanup issue in watch_free
119 * avahi-discover (python): Updated for Python3 & GTK3
120 * avahi-autoipd: clear previously set address before binding a new one
121 * avahi-autoipd: fix dhclient hooks to check for avahi-autoipd before running
122 * build: Move default rundir from /var/run to /run as per modern system setups
123
124Other Changes:
125 * build: Fix the printed value of "Building libavahi-client" in ./configure
126 * build: autogen.sh improved to work when called from another directory
127 * build: Fix warnings when compiling against musl libc
128 * Updated translations: Polish, Ukranian, Turkish, Indonesian, Swedish,
129   Hungarian, Occitan (New), Czech, Chinese (Simplified)
130 * avahi-compat-libdns_sd: Fix incorrect URL in warnings
131 * service-type-database: Add new service Types: _ipps._tcp, _xpra._tcp
132 * avahi-dnsconfd: Update manpage with the correct action script name
133 * avahi-gobject: Use the correct shared library name in AvahiCore-0.6.gir
134 * avahi-gobject: Fix build failing under some locales
135 * avahi-common/dbus-watch-glue.c: remove Unneeded semicolon
136 * Update gentoo init scripts for newer openrc version
137
138Big thank-you to everyone contributing to the project through issues & pull
139requests, including the the following people who contributed changes to this
140release: Andika Triwidada, Andreas Henriksson, Anthony G. Basile,
141Antoine Martin, Ben Chan, Cedric Hombourger, Cedric Valmary, Gabor Kelemen,
142HMikolon, Jan Alexander, Steffens (heftig), Josef Andersson, Jussi Kukkonen,
143Krzesimir Nowak, Kylie McClain, Michael Biebl, Muhammet Kara, Peter Meerwald,
144Philip Withnall, Piotr Drąg, Sebastiaan Lokhorst, Thomas Kluyver, Trent Lloyd
145
146This release is otherwise backwards compatible with Avahi 0.6.x except for
147ga_client_start_in_context (new function, incremented avahi-goject SO minor
148version) and value-format in XML service files.
149
150Avahi 0.6.32
151============
152
153This is largely a bugfix release, non-bug changes are listed separately.
154
155 * Don't log warnings about invalid packets, commonly triggered by Windows 10 systems
156 * Fix issue with bad packet size estimation, causing probes to continuously be sent when hosting large numbers of services (Lee, Chun-Yi)
157 * Fix build on Solaris/SmartOS (filio.h issue)
158 * Fix build on FreeBSD (PCAP_D_IN issue)
159 * Fix debug output with libdaemon >= 0.14
160 * avahi_server_set_browse_domains now correctly uses the provided list, instead of re-using the list from the configuration file
161 * Set nl_pid to 0, this will automatically assign the value and prevent conflicts per netlink(7). (Bug #334)
162 * Check for netlink pid=0 (kernel) instead of uid=0, which works correctly with network & user namespaces.
163 * Fix reversed IFA_LOCAL and IFA_ADDRESS checks. (Avahi#355)
164 * Don't fail the build on deprecated GTK/GLIB usage
165 * Gracefully fail if SO_REUSEPORT is not available
166 * Minor Python 3 update for the python ServiceTypeDatabase test usage of print, should be backwards compatible
167 * avahi-autoipd: Fix incorrect usage of IFLA_RTA instead of IFA_RTA which could crash on ARM (Closes: #42)
168
169Changes
170
171 * GTK3 deprecation fixes including vbox, g_object_unref on GdkCursor, stock items, composite API
172 * New feature: host-name-from-machine-id= to configure the hostname from the machine-id, defaults to off.
173 * Configuration change: Enable IPv6 by default (use-ipv6=yes)
174 * Configuration change: Disable publishing HINFO and WORKSTATION records in the default config (publish-hinfo=no, publish-workstation=no)
175 * Configuration change: Don't browse 0pointer.de and zeroconf.org wide-area by default (browse-domain=)
176
177This release is backwards compatible with Avahi 0.6.x with x < 32.
178
179Avahi 0.6.32-rc
180===============
181
182This is largely a bugfix release, non-bug changes are listed separately.
183
184 * Don't log warnings about invalid packets, commonly triggered by Windows 10 systems
185 * Fix issue with bad packet size estimation, causing probes to continuously be sent when hosting large numbers of services (Lee, Chun-Yi)
186 * Fix build on Solaris/SmartOS (filio.h issue)
187 * Fix build on FreeBSD (PCAP_D_IN issue)
188 * Fix debug output with libdaemon >= 0.14
189 * avahi_server_set_browse_domains now correctly uses the provided list, instead of re-using the list from the configuration file
190 * Set nl_pid to 0, this will automatically assign the value and prevent conflicts per netlink(7). (Bug #334)
191 * Check for netlink pid=0 (kernel) instead of uid=0, which works correctly with network & user namespaces.
192 * Fix reversed IFA_LOCAL and IFA_ADDRESS checks. (Avahi#355)
193 * Don't fail the build on deprecated GTK/GLIB usage
194 * Gracefully fail if SO_REUSEPORT is not available
195 * Minor Python 3 update for the python ServiceTypeDatabase test usage of print, should be backwards compatible
196
197Changes
198
199 * GTK3 deprecation fixes including vbox, g_object_unref on GdkCursor, stock items, composite API
200 * New feature: host-name-from-machine-id= to configure the hostname from the machine-id, defaults to off.
201 * Configuration change: Enable IPv6 by default (use-ipv6=yes)
202 * Configuration change: Disable publishing HINFO and WORKSTATION records in the default config (publish-hinfo=no, publish-workstation=no)
203 * Configuration change: Don't browse 0pointer.de and zeroconf.org wide-area by default (browse-domain=)
204
205This release is backwards compatible with Avahi 0.6.x with x < 32.
206
207Avahi 0.6.31
208============
209
210This is a bugfix release.
211
212 * Fix compatibility with newest autoconf
213
214This release is backwards compatible with Avahi 0.6.x with x < 31.
215
216Avahi 0.6.30
217============
218
219This is a bugfix release.
220
221 * Make IPv6 work again
222 * i18n updates
223 * Minor other updates
224
225This release is backwards compatible with Avahi 0.6.x with x < 30.
226
227Avahi 0.6.29
228============
229
230This is a bugfix release.
231
232 * Updates regarding systemd integration
233 * Compatibility with newer gtk3 and gobject introspection
234 * i18n updates
235 * Minor other updates
236 * Fix CVE-2011-1002, fixing the fix for CVE-2010-2244
237
238This release is backwards compatible with Avahi 0.6.x with x < 29.
239
240Avahi 0.6.28
241============
242
243This is a bugfix release.
244
245 * Updates regarding systemd integration
246 * Properly avoid bus activation on non-systemd systems
247 * Compatibility with newer gtk3 and gobject introspection
248 * i18n updates
249 * Minor other updates
250
251This release is backwards compatible with Avahi 0.6.x with x < 28.
252
253Avahi 0.6.27
254============
255
256This is a bugfix release.
257
258 * Various updates to the systemd integration
259 * Reset all signal handlers and the signal mask on initialization
260 * Don't trip over SIGPIPE
261 * i18n updates
262 * Minor other updates
263
264This release is backwards compatible with Avahi 0.6.x with x < 27.
265
266Avahi 0.6.26
267============
268
269This is mostly a bugfix release but also fixes a low risk security issue and
270adds a couple of minor new features.
271
272 * Fix CVE-2010-2244 (Ludwig Nussel)
273 * Support for Gtk+ 3 and Gtk+ Introspection
274 * Native systemd socket activation support
275 * Add systemd service files
276 * Add various resource control options, for traffic rate limiting as well as
277   cache size and D-Bus client object limits.
278 * i18n updates
279 * Minor other updates
280
281This release is backwards compatible with Avahi 0.6.x with x < 26.
282
283Avahi 0.6.25
284============
285
286This is mostly a bugfix release but also fixes a low risk security issue.
287
288 * Fix CVE-2009-0758 (Rob Leslie)
289 * i18n updates
290 * Minor other updates
291
292This release is backwards compatible with Avahi 0.6.x with x < 25.
293
294Avahi 0.6.24
295============
296
297This is mostly a bugfix release.
298
299 * A huge number of bug fixes, including a security relavant one (low
300   risk)
301 * Add two new configuration directives "allow-interfaces" and
302   "deny-interfaces" which can be used to make Avahi ignore certain
303   network interfaces or only use certain network interfaces.
304 * A lot of translation updates
305
306This release is backwards compatible with Avahi 0.6.x with x < 24.
307
308Avahi 0.6.23
309============
310
311This is an bugfix release.
312
313 * A lot of translation updates
314 * Beef up bnvc quite a bit, including passing a domain to browse in
315   (patch from lkundrak)
316 * Increase numer of open files resource limit to 300 so that we can
317   deal with more clients simultaneously.
318 * Rework 'poof' algorithm a bit to reduce traffic load on noisy links.
319 * Build fixes
320 * Minor other updates
321
322This release is backwards compatible with Avahi 0.6.x with x < 23.
323
324Please note that Avahi's SVN has been converted to GIT and is now
325available on git://git.0pointer.de/avahi.
326
327Avahi 0.6.22
328============
329
330This is an important bugfix release, and adds a couple of new
331features.
332
333 * i18n support
334 * Documentation and example code updates
335 * Support for registering the Avahi documentation in devhelp (needs
336   manual setup)
337 * Added a new component libavahi-gobject, which is a GObjectified
338   version of the Avahi API, contributed by Sjoerd Simons
339 * Major BSD compatibility improvements, contributed by "zml"
340 * avahi-ui: Allow overwriting of pretty service name by the
341   application
342 * Service type database updates
343 * Add new option --parsable to avahi-browse
344 * Minor other updates
345
346This release is backwards compatible with Avahi 0.6.x with x < 22.
347
348Avahi 0.6.21
349============
350
351This is an important bugfix release.
352
353 * Make avahi-autoipd actually produce correct ARP packets
354   (Identified and patched by Pauline Yeung)
355 * Add FreeBSD kqueue support for watching /etc/avahi/services
356   (Contributed by Marcus Clarke)
357 * Use search domain from /etc/resolv.conf as additional browse
358   domains.
359 * No longer return a conflict error when two local applications
360   register identical RRs.
361 * Properly find alternative service/host names for very long names
362 * DNS name compression fix (Sjoerd Simons)
363 * Fedora init script order fix
364 * Several fixes to make gcc produce less warnings
365 * Minor documentation and build fixes
366
367This release is backwards compatible with Avahi 0.6.x with x < 21.
368
369Avahi 0.6.20
370============
371
372This is a bugfix release and contains a fix for a low risk security
373vulnerability.
374
375 * Fix a local DoS vulnerability, where an assert() could be hit by
376   passing empty TXT data over D-Bus to the Avahi daemon. (Low Risk)
377 * Solaris/dbm portability fixes
378 * Close all open file descriptors when daemonizing. Is generally
379   safer and fixes a few issues with broken init systems of several
380   distributions.
381 * avahi-autoipd: allow passing the path of the action script on the
382   command line.
383 * Several minor build fixes and other cleanups
384
385This release is backwards compatible with Avahi 0.6.x with x < 20.
386
387Avahi 0.6.19
388============
389
390This is a bugfix release, but also adds a new component "avahi-ui-sharp".
391
392 * Rename zssh/zvnc to bssh/bvnc to avoid a name collision with another
393   free software tool, on request of the Debian developers. I hope
394   this name change early in the life of bssh/bvnc won't be too
395   difficult to handle by the distributors.
396 * Add man page for bssh/bvnc
397 * avahi-ui: fix segfault when browsing in empty domains
398 * avahi-ui: allow GTK_RESPONSE_OK, _YES and _APPLY besides _ACCEPT as
399   positive dialog response codes
400 * avahi-ui-sharp: Add Mono/C# API wrapper for avahi-ui
401 * Don't pick the first and the last 256 IP addresses from the IPV4LL
402   range in avahi-autoipd, as required by RC3927 section 2.1
403 * No longer publish the Avahi service identification cookie anymore
404   by default. It was a bad idea in the first place. A better
405   replacement will hopefully be made available in Avahi eventually.
406 * Properly set umask before writing to /var/lib/avahi-autoipd
407 * Update .deskop files to work around KDE menu issue
408 * Various build fixes and other minor fixes and updates
409
410This release is backwards compatible with Avahi 0.6.x with x < 19.
411
412Avahi 0.6.18
413============
414
415This is a bugfix release, adds a few new features and includes a new
416component.
417
418 * Add a new library libavahi-ui which contains a standard Gtk dialog
419   for browsing for services, and a new tool "zssh" that makes use of
420   it, which allows browsing for SSH and VNC servers and starts ssh or
421   xvncviewer if one item is selected.
422 * avahi-autoipd has been ported to FreeBSD (original patch from Bruce M Simpson)
423 * Improve OpenBSD, Solaris, MacOS X compatibility
424 * Linux inotify support for monitoring /etc/avahi/services/ and
425   /etc/avahi/hosts for changes. (Original patch from "behanw")
426 * Add the ability to dump the service type database from avahi-browse
427   with the new option "-b".
428 * Enable GCC stack smashing protection if available and working (Patch from tedp)
429 * Improve compatibility with Bonjour's libdns_sd (patch from Chris Rivera)
430 * Various updates to the service type database (based on patches from uws)
431 * Fix a local DoS vulnerability (very low priority, all you can do is
432   make Avahi hit an assert()); problem identified by "jamesh"
433 * Fix a problem when constantly generating conflict events for an RR
434 * Fix registration of very large RRs (original patch from Sjoerd Simons)
435 * Various minor fixes
436
437This release is backwards compatible with Avahi 0.6.x with x < 18.
438
439Avahi 0.6.17
440============
441
442This is a bugfix release.
443
444 * Don't accept "localhost" as a local mDNS host name
445 * Allow running avahi-bookmarks as CGI script
446 * Improve libdns_sd compatibility
447 * Stability: libdns_sd mutex locking order fix
448 * Publish IPv6 addresses via IPv4 and vice versa
449 * IA64 fixes
450 * A lot of minor cleanups and fixes
451
452This release is backwards compatible with Avahi 0.6.x with x < 17.
453
454Avahi 0.6.16
455============
456
457This is a bugfix release, it fixes one DoS (100% CPU Usage) and a regression
458from the last release
459
460 * Revert previous patch to check nlmsg_pid as it is bogus and breaks in
461   many cases, notably when using NetworkManager (Closes: #72)
462 * Replace with new SO_PASSCRED-based check of the sending UID, which
463   seems to work better (Closes: #72)
464 * Handle some errors in libdns_sd more gracefully the way the real
465   libdns_sd does (Closes: #64)
466 * Apply fix for Linux 2.6.19+ where IFA_RTA / IFLA_RTA is no longer
467   defined (Closes: #86)
468 * Fix doxygen comments for avahi watch, thanks to tedp (Closes: #77)
469 * Make d-bus version detection work for >= 1.0 (Closes: #71)
470 * Dont dbus_connection_close on shared dbus connections (Closes: #68)
471 * Fix potential endless loop in dns label unpacking code (Closes: #84)
472 * Fix bogus assertion in client-publish-service.c example
473 * Mild fix to some doxygen docs for avahi-common/address.h
474 * Fix passing in custom privileged group (previously ignored setting)
475   (Closes: #85)
476
477This release is backwards compatible with Avahi 0.6.x with x < 16.
478
479Avahi 0.6.15
480============
481
482This is a bugfix release, this bug is potentially security sensitive
483
484 * Check that netlink messages actually originate from the kernel
485   and not another process.
486 * Fix build on NetBSD (thanks to Daniel S. Haischt)
487 * Fix dbus_service_browser not setting AVAHI_LOOKUP_RESULT_OUR_OWN.
488
489This release is backwards compatible with Avahi 0.6.x with x < 15.
490
491Avahi 0.6.14
492============
493
494This release fixes some bugs and includes a new component.
495
496Changes:
497
498  * Add new daemon "avahi-autoipd" which is an implementation of
499    IPv4LL as defined in RFC3927, a technology for assigning link-local IP
500    addresses without DHCP server. The same functionality has been available on
501    Windows under the name APIPA. While it is not the first implemenatation of
502    this technology for Free operating systems it is clearly the most powerful
503    and hopefully even the most secure. (Because it chroot()s and drops
504    privileges and suchlike) For more information, especially about packaging
505    this new tool for distributions, please make sure to read:
506    http://avahi.org/wiki/AvahiAutoipd
507    and of course the man page included in the tarball.  For the rationale for
508    adding this program to the Avahi toolset please read this mailing list
509    thread:
510    http://lists.freedesktop.org/archives/avahi/2006-September/000863.html
511  * Fix a segfault in the code handling static host name registrations
512  * Add a few new entries to the service type database
513  * s/D-?BUS/D-Bus/g
514  * Documentation updates
515  * Fix service type database building on Solaris
516  * Make use of newer D-Bus APIs
517  * Fix random seed initialization
518  * Install SFTP static service file by default
519  * Other minor code cleanups
520
521This release is backwards compatible with Avahi 0.6.x with x < 14.
522
523Please note that this version doesn't compile on NetBSD, patches
524welcome.
525
526Please note that avahi-autoipd is available on Linux only for
527now. Patches welcome. It is recommended to pass --disable-autoipd to
528"configure" on non-Linux operating systems, otherwise the build will
529fail.
530
531Avahi 0.6.13
532============
533
534This release fixes some bugs and includes minor enhancements.
535
536Changes:
537  * Add a new D-Bus method for changing the mDNS host name during
538    runtime. This functionality is only available to members of the
539    UNIX group "netdev", which is the same access group that is
540    enforced by GNOME's NetworkManager daemon. Since NM will probably
541    be the most prominent user of this new method, we decided to limit
542    access to the same group. The access group can be set by passing
543    --with-avahi-priv-access-group= to "configure". If you need more
544    sophisticated access control you can freely edit
545    /etc/dbus/system.d/avahi-dbus.conf.
546  * Add a new utility "avahi-set-host-name" which is a command line
547    wrapper around the aforementioned SetHostName() method.
548  * Bonjour API compatibility library:
549        * Implement DNSServiceUpdateRecord()
550        * Allow passing NULL as callback function for
551          DNSServiceRegister()
552        * Implement subtype registration in DNSServiceRegister() in a
553          way that is compatible with Bonjour.
554	* Update to newer copy of dns_sd.h
555  * If the host name changes update names of static services wich
556    contain wildcards.
557  * Don't build documentation about embedding the Avahi mDNS stack into
558    other programs by default. This is a feature used only by embedded
559    developers. Pass --enable-core-docs to "configure" to enable
560    building these docs, like in Avahi <= 0.6.12.
561  * Build Qt documentation only when Qt support is enabled in
562    the configuration. Same for GLib.
563  * Change algorithm used to find a new host name on conflict. In
564    Avahi <= 0.6.12 a conflicting host name of "foobar" would be
565    changed to the new name "foobar2". With 0.6.13 "foobar-2" will be
566    picked instead. This follows Bonjour's behaviour and has the
567    advantage not confusing people with regular host names ending in
568    digits.
569  * Don't disable all static services when SIGHUP is received.
570  * Fix build when Avahi is configured without Gtk+ but with Python
571    support
572  * Fix build on MacOS X
573  * Support using Solaris DBM instead of gdbm for the service type
574    database. The latter is still recommended
575  * Minor other fixes and documentation updates
576
577This release is backwards compatible with Avahi 0.6.x with x < 13.
578
579Avahi 0.6.12
580============
581
582This is a bugfix and general cleanups release.
583
584Changes:
585  * Compatibility with newer D-Bus releases (0.9x)
586  * Compatibility with DBUS builds with --disable-checks
587  * Fix an error in the DBUS event loop wrapping which
588    caused the avahi client libraries to dispatch some events
589    too late when used with D-BUS 0.62 and newer.
590  * avahi-daemon: fix a minor memory leak in the DBUS code.
591  * avahi-glib: some GLIB adapter cleanups
592  * avahi-dnsconfd: fix segfault when passing an invalid command
593    line option
594  * avahi-test: portability patches for Solaris
595  * avahi-browse: flush STDOUT after each line, making it useful
596    in shell scripts.
597  * update service type database
598
599This release is backwards compatible with Avahi 0.6.x with x < 12.
600
601Avahi 0.6.11
602============
603
604This is a bugfix and portability release.
605
606Changes:
607  * Ported to Solaris
608  * avahi-sharp: fix a fatal error in object disposal code
609  * add a few new entries to the servivce type database
610  * fix potential crash when the daemon shuts down
611  * compatibility with newer autoconf versions
612
613This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
6140.6.3, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.9 and 0.6.10.
615
616Avahi 0.6.10
617============
618
619This is mostly a bugfix release. Two of the bugs fixed are security
620sensitive: a remote denial-of-service vulnerability and a buffer
621overflow that can allow local users to become the 'avahi' user. We do
622not consider either of them major security threats.
623
624The DoS vulnerability can be exploited from a local network only. It
625is not worth much, though, since mDNS can easily be flooded with
626nonsense anyway. It is easy to kick remote mDNS/DNS-SD services by
627provoking a name conflict in perfect accordance with the specs.
628
629The buffer overflow is hard to exploit remotely, only local users can
630become the 'avahi' user. In addition the user is trapped inside a
631chroot() environment (at least on Linux).
632
633Anyhow, our security assessments are possibly as buggy as our
634code. Hence:
635
636     *** PLEASE UPDATE YOUR INSTALLATION ASAP! ***
637
638Changes:
639 * Fix a buffer overflow in avahi-core
640 * Refuse to process invalid UTF8 data
641 * Automatically reconnect to the DBUS if we're kicked. (Works only if
642   chroot() is disabled)
643 * Don't hit an assert() in the client libs when the Avahi daemon is
644   terminated
645 * Enumerate all service types in the database in the Service
646   Discovery Applet for Gnome
647 * Improve the Bonjour compatibility layer to make it survive
648   GnomeMeeting's broken usage
649 * Deal properly with local non-ASCII hostnames
650 * AMD64 and FreeBSD portability fixes
651 * Filter double DNS server entries in avahi-dnsconfd
652 * Fix a locking bug in avahi-sharp's EntryGroup.AddService()
653 * Ported to Solaris (incomplete)
654 * Add _airport._tcp to our service type database
655
656This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
6570.6.3, 0.6.4, 0.6.5, 0.6.6, 0.6.7, 0.6.8 and 0.6.9.
658
659Avahi 0.6.9
660===========
661
662This release fixes some bugs and includes minor enhancements.
663
664 * Don't allow registration of address records with invalid host names
665 * Clean up argument validity checking for AvahiHostNameResolver and
666   AvahiAddressResolver
667 * Fix Avahi builds without DBUS
668
669This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
6700.6.3, 0.6.4, 0.6.5, 0.6.6, 0.6.7 and 0.6.8.
671
672Avahi 0.6.8
673===========
674
675This release fixes some bugs and adds a few new features. Users of 0.6.7,
676please update ASAP!
677
678 * Fix broken parsing of static hosts file
679 * Improve out-of-the-box Debian support
680 * Add configuration option to allow mDNS over POINTOPOINT links.
681   This is a potential security hole and YMMV. See man page for details.
682 * Create $(localstatedir)/run on installation
683
684This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
6850.6.3, 0.6.4, 0.6.5, 0.6.6 and 0.6.7.
686
687Avahi 0.6.7
688===========
689
690This release fixes some bugs and adds a few new features
691
692 * Add static hosts name mappings
693 * Work around kernel bugs regarding multicast group membership
694 * ia64 portability fixes
695 * Don't require X11 to run avahi-bookmarks
696 * API: Return AVAHI_ERR_IS_EMPTY when the user tries to commit an
697   empty entry group.
698 * Improved Slackware and Fedora suppport
699
700This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
7010.6.3, 0.6.4, 0.6.5 and 0.6.6.
702
703Avahi 0.6.6
704===========
705
706This release fixes some bugs and includes some documentation updates
707
708 * Add a bunch of new types to the service type database
709 * Return errors of avahi_entry_group_commit() properly
710 * Many doxygen documentation improvements
711 * Fix destruction of AvahiEntryGroup objects using
712   avahi_entry_group_free().
713 * Don't allow commiting of empty entry groups
714 * Use a little less memory in avahi-qt
715 * Don't accept empty TXT strings
716 * Update example "client-publish-service.c" to show how to modify an
717   existing service
718
719This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
7200.6.3, 0.6.4 and 0.6.5.
721
722Avahi 0.6.5
723===========
724
725This release fixes some bugs and adds a new API function.
726
727 * avahi-browse: properly show services that are removed from the
728   network
729 * fix build on bi-arch platforms, on GNU/kFreeBSD, on MIPS and
730   for non-DBUS builds
731 * add new API function avahi_nss_support() and DBUS function
732   IsNSSSupportAvailable() which may be used to detect whether
733   libc's gethostbyname() supports mDNS domain names.
734 * patch avahi-bookmarks to make use of
735   IsNSSSupportAvailable(). avahi-bookmarks will now generate links
736   with real hostnames instead of numeric IP addresses if mDNS support
737   is detected for gethostbyname().
738 * add init script for Mandriva Linux
739 * speed up avahi_client_free()
740 * man page updates
741 * install missing header thread-watch.h
742 * fix avahi-bookmarks to work with certain twisted versions
743 * fix record updating
744 * Use pkg-config's Requires.private directive where it makes sense
745
746This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2,
7470.6.3 and 0.6.4.
748
749Avahi 0.6.4
750===========
751
752This is a bugfix release and adds a new event loop implementation to
753avahi-common's public interface.
754
755 * avahi-common: add new AvahiThreadedPool event loop implementation
756 * avahi-sharp: compatibility with newer mono versions
757 * avahi-publish-service: don't ignore the port number specified
758 * avahi-sharp: correct some flags definitions
759
760This release is backwards compatible with Avahi 0.6, 0.6.1, 0.6.2 and
7610.6.3.
762
763A quick introduction how to use the new AvahiThreadedPool interface is
764available in our Wiki:
765
766          http://avahi.org/wiki/RunningAvahiClientAsThread
767
768Avahi 0.6.3
769===========
770
771This is a bugfix release. Everyone should update ASAP!
772
773 * avahi-sharp: make sure to append a trailing NUL byte to all C strings
774 * avahi-core: fix a double free() which occurs when wide area lookups timeout
775
776This release is fully compatible with Avahi 0.6, 0.6.1 and 0.6.2.
777
778Avahi 0.6.2
779===========
780
781This is mostly a bugfix release.
782
783 * Compatibility with DBUS 0.60 (Full compatibility with DBUS 0.3x and
784   0.5 is retained)
785 * Fix introspection for some auxiliary DBUS objects
786 * Miscellaneous documentation updates
787 * Improve Autoconf support for detecting PTHREADS library
788 * Fix avahi-publish --help
789 * Workaround a DBUS limitation which might cause Avahi to die when a
790   user sends an empty TXT entry over DBUS
791 * Increase number of resolver/browser objects a DBUS client may create
792 * Remove fprintf() call in avahi_client_new()
793 * Other minor fixes
794
795This release is both up and downwards compatible with Avahi 0.6 and 0.6.1.
796
797Avahi now has its own Domain (http://avahi.org) and a new Website!
798
799And, most importantly, we now have a Logo:
800      http://avahi.org/chrome/site/avahi-trac.png
801
802Avahi 0.6.1
803===========
804
805This is mostly a bugfix release.
806
807 * Fix a segfault when shutting down the daemon. Please note that this
808   issue was not security sensitive in any way but had the ugly side
809   effect that the daemon's PID file was not removed properly.
810 * Added init scripts for ArchLinux and FreeBSD
811 * Add DBUS API versioning through the new method GetAPIVersion()
812 * Build the HOWL compatibility library as "libhowl.so", instead of
813   "libavahi-compat-howl.so". This will help distributors to ensure
814   full API/ABI compatibility with HOWL out-of-the-box.
815 * Same for the Bonjour compatibility library
816 * Other fixes
817
818We encourage Linux users to update to libdaemon 0.10 since logging
819does not work from a chroot() environment with older versions.
820
821This release is fully API and ABI compatible with Avahi 0.6. This is
822true for both the C libraries and the DBUS interface.
823
824Packagers should read the new documentation file doc/COMPAT-LAYERS
825which contains some information about maintaining full build system
826compatibility in addition to ABI/API compatibility.
827
828Avahi 0.6, the "Goddag" release
829===============================
830
831 * Support for (read-only) wide area support. (i.e. DNS-SD over unicast DNS)
832 * Ported to FreeBSD, NetBSD, Darwin/MacOSX and to some extent OpenBSD
833 * Portability fixes for ARM CPUs
834 * Compatibility layers for the HOWL and Bonjour APIs
835 * Support for registering/browsing arbitrary records
836 * Proper support for DNS-SD service subtypes
837 * Native C implementations of the client utilities
838 * Now passes the Bonjour conformance test suite without any exceptions
839 * "Passive observation of failures"
840 * chroot() support
841 * Many traffic reduction improvements
842 * Bugfixes, cleanups
843
844This release is not API/ABI compatible with Avahi 0.5. Please see
845docs/API-CHANGES-0.6 for a rough overview over the changes.
846
847Avahi 0.5.2
848===========
849
850 * Bug fix release.
851 * Fix browing in QT applications (was totally broken)
852 * Minor documentation update.
853
854Avahi 0.5.1
855===========
856
857 * This is a bug fix release, before the big changes coming in 0.6
858 * Fix reporting of the NO_DAEMON error
859 * Fix commit throttling algorithm for entry groups
860 * Fix counting of the number of resources in an entry group
861
862Avahi 0.5, the 'Bom Dia' release
863================================
864
865 * New Mono bindings, allowing you to use Avahi from
866   any CLI language such as C#
867 * Attempt auto-detection of the D-BUS system bus address
868 * Include a 'cookie' in all published records which allows us
869   to reliably determine if a service is the same as another.
870 * Add API to determine if services are local
871 * Better support for threading with AvahiSimplePoll
872 * Add some new StringList functions to help binding to it in
873   other languages
874 * Various build and run-time bug fixes
875
876Avahi 0.4, the 'Hyvää päivää' release
877=====================================
878
879 * Renamed the include dirs for the Qt bindings to include the
880   version number, as they may diverge in future.
881 * Fix a critical bug in avahi-daemon triggered by configuring an interface
882   with various DHCP clients when you have no other active addresses which
883   caused avahi-daemon to abort.
884 * Move to using python-gdbm exclusivly for the service type database.
885 * Add support for SUSE
886 * Various fixes to the build system
887
888Avahi 0.3, the 'Buenos Días' release
889====================================
890
891 * New integration library for QT main-loop applications.
892 * Fix a crash in avahi-dnsconfd
893 * Documentation Updates
894 * Fix building when you don't want Python DBUS or GTK
895 * avahi-bookmarks
896   - Add new help option
897   - Fix handling of paths not starting with a /
898   - You can now specify the port and IP to bind to
899   - Add option to generate links with hostnames instead of IPs
900
901Avahi 0.2, the 'Dzień Dobry' release
902====================================
903
904 * Unfortunately this release broke the API/ABI of libavahi-client
905   with the following function removals
906
907   Removal of these functions may affect users of the 0.1 API
908    - avahi_service_resolver_block()
909
910   The following functions were simply for debugging information
911   and their removal should not affect anyone
912    - avahi_entry_group_get_dbus_path()
913    - avahi_domain_browser_get_dbus_path()
914    - avahi_service_type_browser_get_dbus_path()
915    - avahi_service_browser_get_dbus_path()
916
917   Note that while the libavahi-client API changed slightly, the DBUS
918   API itself has only had additions and no existing definitions
919   have changed.
920
921 * avahi-daemon will now ignore local IP addresses with the "link" scope
922   unless it is the only IP address on the interface.
923 * avahi-daemon will no longer fail to start if D-BUS is not
924   available (if configured with enable-dbus=warn)
925 * Fixed a potential crasher when resolving things in libavahi-core.
926 * New example demonstrating integration into glib applications
927 * Addtion of a set of convenience functions for AvahiStringList
928   avahi_string_list_find()
929   avahi_string_list_get_pair()
930   avahi_string_list_add_pair()
931   avahi_string_list_add_pair_arbitrary()
932 * Fixed a typo in avahi-glib.pc that stopped programs using
933   the GLIB api from compiling correctly
934 * A critical bug in the reflector was fixed where it may go into a
935   state of constantly flooding queries out to the network.
936 * Introduced new asynchronous resolver API
937 * libavahi-client gained an API for resolving HostNames and Addresses
938   in addition to the ServiceResolver provided in 0.1
939 * Added support for Arch and Gentoo linux distributions.
940 * Allowed configuration on non-supported distributions
941 * Fixed a critical bug where you cannot use more than one AvahiClient
942   or use it in an application already using D-BUS
943 * Fixed assembly of empty string lists to RFC compliant TXT records
944 * Added a new service type description database with human
945   understandable descriptions of services with translations.
946 * Fixed various minor memory corruption bugs
947 * Fixed an issue where Avahi might think it encountered a conflict
948   if the process or machine has been suspended
949 * Fixed compilation and runtime issues on 64-bit distributions
950 * ...
951 * PROFIT!!!
952
953Avahi 0.1, the "Guten Tag" release
954==================================
955
956The Avahi team would like to announce the immediate availability of
957Avahi 0.1 "Guten Tag".
958
959Avahi is a fully LGPL framework for Multicast DNS Service Discovery.
960It allows programs to publish and discover services and hosts
961running on a local network with no specific configuration.  For
962example you can plug into a network and instantly find printers to
963print to, files to look at and people to talk to.
964
965Avahi is designed to be compatible with the mDNS/DNS-SD specification
966and boasts the following features
967
968 * Fully open source and freely available under the LGPL
969 * Full IPv4 and IPv6 support
970 * An embeddable mDNS stack
971 * Dynamic adjustment to network reconfiguration
972 * Daemon with DBUS API for desktop applications
973 * C library to interface with the DBUS API
974 * Compatible with other mDNS/DNS-SD implementations such as
975   Howl and Apple Bonjour (previously Rendezvous)
976 * Ability to correctly "reflect" mDNS between two or more LAN segments
977 * Ability to configure DNS servers based on mDNS/DNS-SD published
978   information, a feature that is very usefull on IPv6
979   which has no other mechanism for this.
980 * Combined with nss-mdns, allows hostname lookup such as
981   'laptop.local' without the configuration of a DNS server.
982   http://0pointer.de/lennart/projects/nss-mdns/
983 * Easy integration into GLIB, GTK other mainloop applications.
984 * Documentation and examples of both developer APIs and utilities.
985
986mDNS/DNS-SD is part of a larger set of specifications for easy
987configuration of networking known as "ZeroConf"
988(http://www.zeroconf.org/), with the aim of allowing you to plug into
989a network and instantly be able to interact with its services.
990
991Avahi was designed to be a fully free implementation, and is
992available under the LGPL.  Many other implementations of the mDNS/DNS-SD
993specification were previously non-free, restricting their use in many
994platforms such as the GNOME desktop and many distributions.
995
996While Avahi is a 0.1 release, we feel it is feature complete and
997available for immediate use, developers can make use of the Avahi
998client library to provide above mentioned functionality in their
999programs.
1000
1001We unfortunately do not have a logo yet! We would love if someone
1002could suggest ideas for a logo or even design us one.  If you think
1003you can help us out, you can contact us on our mailing list or by
1004emailing Trent Lloyd on lathiat@bur.st.
1005
1006If you would like more information or help, you can subscribe
1007to our mailinglist, goto
1008    http://lists.freedesktop.org/mailman/listinfo/avahi
1009
1010You can download Avahi 0.1 here
1011    http://www.freedesktop.org/~lennart/avahi-0.1.tar.gz
1012
1013You can also find out more information from our homepage
1014    http://www.freedesktop.org/Software/Avahi
1015
1016We would like to thank the following people for their
1017contribution to Avahi 0.1.
1018    Lennart Poeterring
1019    Trent Lloyd
1020    Sebastien Estienne
1021    Ross Burton
1022    Tommi Vainikainen
1023    Joe Shaw
1024    Ikke
1025    Steev
1026
1027Cheers,
1028The Avahi Team
1029