This Time Self-Hosted
dark mode light mode Search

Avahi magic

Avahi is another implementation for Apple’s Bonjour protocol, that this time seems to be cleanroomed using glib, dbus and having bindings for Python and Qt. Avahi is also a GPL product, that makes it more appealing for GNU lovers (I usually prefer looking at the technical side of matters, instead of licensing). One of the strong points of Avahi is that has libraries to be compatible with howl and mdnsresponder, the two other implementations that are often used to enable software to use Bonjour.
Why this is a strong point? Because it allows to run a single responder instead of having to choose between mDNSResponder and mDNSResponderPosix.

To make use of this feature, tho, the programs linking to howl or mdnsresponder needs to be changed to depend on avahi and to link to that instead of the original libraries; the change is not exactly trivial.
Today, after a quick mail exchange with Sven, I added to mt-daapd the support for using avahi instead of howl, by adding an extra avahi flag conditioned to howl flag. It seems to work fine from the base view, while I can’t add two mt-daapd sessions to avahi for some reason. I’ve wrote mt-daap’s upstream hoping for it be a known mt-daap problem instead of an avahi one that might be more difficult to handle.

For now, I don’t have anything else that uses howl on my system, so I’ve just removed it, I know there are a few programs using mdnsresponder, and kdelibs is the first one, but I want to wait a bit before trying to try getting that working.

I also have to try the patch that Giandomenico provided on vlc-devel for avahi 0.6 support in VLC 0.8.4, so that I can add an avahi useflag to that, too.

Comments 5
  1. For kdelibs avahi support, you want kdnssd-avahi. Make sure to get the newest from kde subversion — svn://… — because the pre-packaged files that are floating around the internet have problems with avahi-0.6. The makefiles in the svn version are a bit messed up though (you need to manually run moc on some files).The steps are:1. emerge kdelibs with USE=zeroconf2. compile kdnssd-avahi, and use it to replace your and kcm_kdnssd.kcfg (compiling stuff from kde trunk against kde-3.5 can be hard — what I did was use the configure etc. system from a prepackaged kdnssd-avahi source package)3. emerge kdnssd4. type address zeroconf:/ in konqueror, and it works!I think I should make an ebuild that does all this at some point…

  2. You might check if kdelibs can already use Avahi, I have a funny feeling that when I was watching svn-commits that was implemented, mainly for use in Debian.-Sam

  3. The idea was to have the current kdelibs-3.5.0 work (with mdnsresponder compatibility) within avahi..I’ll give that a try anyway, seems interesting 🙂

  4. Do you have an update on this one? Is avahi integrated in KDE 3.5.2 on gentoo? I’m running mdnsd and avahi in parallell and that’s not really good…Thanks for your wonderful support on Gentoo’s KDE!Bart

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.