レナート   TBFKAYIBYNYAAYB   ﻟﻴﻨﺎﺭﺕ

Tue, 08 Aug 2006

Apple Bonjour adopts the Apache License 2.0

Yesterday Apple Bonjour has been released under the Apache License 2.0, replacing the old much criticized (because non-free) APSL licensing.

What does this mean for Avahi? First of all although the Apache License is much better than the APSL it still isn't GPL compatible (at least in the eyes of the FSF), which effectively means that Bonjour still cannot be used by more than 66% of the Free Software projects available. Secondly Avahi is more powerful in most areas than Bonjour ever was. (In fact, there is only a single feature where Bonjour surpasses us: writable "Wide Area DNS-SD"). Avahi uses all the "hot" Free technologies like D-Bus and a has much better integration in the Linux networking subsystem. Avahi is more secure (chroot()...) Avahi is compatible API- and ABI-wise with Bonjour, but not the other way round. Avahi is now part of every major Linux distribution.

Avahi is actively developed. The aforementioned Wide Area DNS-SD is currently being worked on by Federico Lucifredi. Since I will write my master thesis about mDNS scalability a lot of additional development will be done for Avahi in the next month.

In short: Avahi is here to stay. Apple's move to the Apache license is too little, too late.

Update: the Bonjour client libraries are BSD licensed, so the 66% argument doesn't hold.

posted at: 12:38 | path: /projects | permanent link to this entry | 7 comments


Posted by Mark Wielaard at Tue Aug 8 13:57:38 2006
Please do check out the new GPLv3 draft at http://gplv3.fsf.org/. One of its goals is to make it compatible with some other licenses like the ASLv2 which have some additional restrictions which are not really freedom inhibiting (retaliation for atacking free software projects with patent claims is a good thing).

Avahi is the thing for GNU/Linux now of course. But being able to mix and match more good free software is always nice.

Posted by Erich at Tue Aug 8 14:00:26 2006
Actually the key factor may come as e.g. Windows support...
IIRC windows uses a similar, but incompatible protocol. I wanted to use gaim's bonjour IM support  in a mixed network, but the windows port seems to not have bonjour support; and the apple bonjour download for windows apparently does only printers.
If avahi is available on windows, it can take out Apple Bonjour there. But if not, apps such as gaim might give apple benefits when they port that feature to windows, too.
LAN Instant Messaging is actually quite interesting, so is the file sharing via http and bonjour... if windows would support it. Us linux dudes never had issues anyway.

Posted by Red at Wed Aug 9 03:11:19 2006
Stuart Cheshire, author of bonjour/zeroconf/rendezvous himself commended avahi, saying that they were the best implementation outside of his own, and that it might even be more spec compliant than mDNSResponder.

Source: http://video.google.com/videoplay?docid=-7398680103951126462

Posted by Cyphase at Sun Dec 24 07:31:28 2006
He said his was the best jokingly. At 1:00:22, he says Avahi is the best.

Posted by Jim White at Wed Jan 17 16:21:47 2007
Bonjour for Windows is not only for printers, that impression is an unfortunate aspect of Apple's naming of a truly excellent free tool that brings plug-and-play TCP/IP to Windows.

http://www.ifcx.org/wiki/LocalNetworking.html

Posted by Michael Bishop at Wed Mar 7 07:26:48 2007
Unless I'm misunderstanding, Linux apps written to Apple's API and linking to their library will not be wire-protocol-compatible with the Avahi Daemon and I think that's a BIG mistake on Avahi's part.

What I mean is that apps compiled Apple's library wants to talk (using sockets) to a daemon that resides on a specific port. And it wants to talk using a specific wire protocol. While Avahi is binary-compatible with the interface to that library, Avahi's back-end doesn't speak that wire protocol. It uses D-Bus. D-Bus may very well be a better technology, but it doesn't matter for the following reason.

My company desperately needs to use this technology, but we cannot afford to build into our product dependencies on other libraries and header files (not my decision). We'd much rather talk to the daemon ourselves, eliminating any build dependencies.

Because Avahi doesn't support that wire protocol in addition to D-Bus, we'd have to implement two protocols over two different communication technologies and that's too expensive. If we can't do this simply, and get it to work on all platforms, we won't do it at all.

So, we lose, ZeroConf loses, and Avahi lose because there's one less product that supports it.

Posted by Lennart at Wed Mar 7 14:23:46 2007
Michael: The internal protocol that Bonjour uses locally to communicate between the daemon and the client libs is not stable. In contrast to the public API the client lib exposes, Apple is not trying to maintain binary compatibility in the internal protocol - because it is just that: internal. Thus supporting that protocol would be a constant fight to maintain compat with Apple's latest changes to a protocol they consider internal and where they have the power to make great changes without documenting it, and where they may do so even between minor versions.

Also, you probably should dlopen() the Bonjour library instead of linking statically to it. That way you may link to the newest installed version of the library, regardless if that one is the Avahi compat lib or the original Bonjour API. This will also make your binary smaller and consume less RAM, since you can omit a superfluous copy of the Bonjour client libs from your binary and thus RAM. The Bonjour API consists only of very few functions hence I see no problem why shouldn't be able to dlopen()/dlsym() it.

Oh, and Avahi is a Free Software project. If there is anything you don't like, feel free to send in a patch. We will certainly look into it and merge it if it is technically well done.

Leave a Comment:

Your Name:


Your E-mail (optional):


Comment:


As a protection against comment spam, please type the following number into the field on the right:
Secret Number Image

Please note that this is neither a support forum nor a bug tracker! Support questions or bug reports posted here will be ignored and not responded to!


It should be obvious but in case it isn't: the opinions reflected here are my own. They are not the views of my employer, or Ronald McDonald, or anyone else.

Please note that I take the liberty to delete any comments posted here that I deem inappropriate, off-topic, or insulting. And I excercise this liberty quite agressively. So yes, if you comment here, I might censor you. If you don't want to be censored your are welcome to comment on your own blog instead.


Lennart Poettering <mzoybt (at) 0pointer (dot) net>
Syndicated on Planet GNOME, Planet Fedora, planet.freedesktop.org, Planet Debian Upstream. feed RSS 0.91, RSS 2.0
Archives: 2005, 2006, 2007, 2008, 2009, 2010

Valid XHTML 1.0 Strict!   Valid CSS!