[avahi] Bonjour compat

Sebastien Estienne sebastien.estienne at gmail.com
Mon Dec 19 01:14:16 PST 2005

2005/12/19, Celso Pinto <cpinto at yimports.com>:
> Hi Sebastien,
hi celso,

> thanks for taking the time to reply to my message. Although I understand
> your point of view, the iFolder team's focus is on providing Bonjour
> integration because it apparently is cross-platform and their goals are
> fulfilled. With Bonjour, iFolder works very nicely.

Avahi, is not linux only as it was said by brandon on the ifolder
mailing list, is was true for the first releases, it works on (BSD,
and macOsX).
A windows (cygwin) port is possible, i already start working on it,
the 2 main problems to finnish it are:
- cygwin doesn't yet offcialy support ipv6, so it will need a lot of
ugly #ifdef in our code.
- no DBUS on windows, maybe we'll support an alternate IPC in the futur

> The thing is, most Linux distributions are focusing in Avahi because
> it's a really great product (I'm not trying to kiss some arses) and
i think the main reasons for this are:
- avahi has a licence that comply with all linux distribution
- avahi better integrates/uses with opensource technologies: qt ,
glib, dbus, mono
- avahi is by design more secure than apple implementation

On a side note, Avahi provide Mono bindings (afaik bonjour api
doesn't) that are already used by Banshee music player

> since Avahi provides ABI/API compatibility with Bonjour - or so is
> advertised - it would be really nice if applications like iFolder worked
> with Avahi out-of-the-box, taking advantage of this compat. layer, even
> if some small fixes needed to be done.
I'm not the best one to discuss if the fixes are small or not, i think
that some design choice make it a non trivial task to make the compat
layer efficient.
The problem may be related to dbus.
Lennart could comment on this better than I.

> In the medium to long term, the best solution would be to increase the
> compatibility layer for Bonjour, because applications designed to take
> advantage of this framework could be developed in a truly cross-platform
> way, including support for those platforms where Avahi isn't available
> and still work in Linux without having to go through some extra steps.

As i understand the main reason you are using bonjour Api is because
it support windows and mac.

Another solution would be to port the avahi API on top of  Apple
Bonjour responder. That way the avahi API would support Windows and
Mac, and ifolder would have no more good reason to use bonjour

I repeat, it can't be a long term solution, because we can't have a
perfect compatibility with the bonjour API, We don't want to encourage
this kind of practice because we'll end up with every project using
the Bonjour API.

The compat layers should be seem as a "solution", it is more a "hack"
until the software implement the native avahi API.

I read in the ifolder mailing list that you were working on an avahi
patch for ifolder and you stopped because avahi provide compat layers,
that's exactly the kind of behaviour that we were affraid of when we
provided this functionnality...

If you use the compat layer, the linux version of ifolder will use
more memory, more cpu cycle, than the windows/mac version, if we want
people to use the linux, we should make the linux version more
efficient. That's why avahi was born, to have a zeroconf
implementation that fits better in our opensource environnments and

> Cheers,
> Celso


> On Sun, 2005-12-18 at 22:57 +0100, Sebastien Estienne wrote:
> > hello celso
> >
> > New apps shouldn't rely on the compatibility layers, they are sub
> > optimal in ressource, and doesn't implement all the bonjour/howl Api,
> > they were developped as a short term solution for few apps already
> > using howl/bonjour.
> >
> > We highly encourage anyone to use the native api for performance and
> > stability purpose.
> >
> > regards,
> > ---------- Forwarded message ----------
> > From: Celso Pinto <cpinto at yimports.com>
> > Date: 18 déc. 2005 18:03
> > Subject: [avahi] Bonjour compat
> > To: Avahi ML <avahi at lists.freedesktop.org>
> >
> >
> > Hi everyone,
> >
> > someone in the iFolder mailing list posted the following message.
> > iFolder uses the Bonjour compatibility layer when working with avahi and
> > I thought that cross-posting his message may help to clear out the
> > problem:
> >
> > > This is what I am getting with the latest svn version of simias,
> > > ifolder
> > > and bonjour along with avahi-0.6.1:
> > >
> > > *** WARNING *** The programme 'mono' uses the Apple Bonjour
> > > compatiblity
> > > layer of Avahi.
> > > *** WARNING *** Please fix your application to use the native API of
> > > Avahi!
> > > *** WARNING *** For more information see
> > > <http://0pointer.de/avahi-compat?s=libdns_sd&e=mono>
> > > mono: compat.c:520: DNSServiceBrowse: Assertion `domain' failed.
> > > Error: The Simias process failed to initialize.
> > >        Use the command line switch --showconsole to view the error.
> > >
> >
> > The relevant part, I think, is DNSServiceBrowse having a domain
> > assertion. IIRC, iFolder doesn't work in the .local domain hence this
> > problem, but I can be mistaken.
> >
> > Looking forward for your feedback.
> >
> > Cheers,
> > Celso
> >
> >
> > _______________________________________________
> > avahi mailing list
> > avahi at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/avahi
> >
> >
> > --
> > Sebastien Estienne
> > _______________________________________________
> > avahi mailing list
> > avahi at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/avahi
> _______________________________________________
> avahi mailing list
> avahi at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/avahi

Sebastien Estienne

More information about the avahi mailing list