Gidday,
We've had Avahi in the demo images for a couple of our devices at
work for a few months now.
On 2006/09/14, at 6:19, Lennart Poettering wrote:
On Wed, 13.09.06 16:30, Vet, Paul ([EMAIL PROTECTED])
wrote:
Hi,
Hi!
I'm wondering how possible it is to strip avahi down to the bare
minimum for
installation on a small device. How large would such a minimal
version be?
Good question.
The embeddable core of Avahi is about 200K large (x86/Linux), i guess
with a little bit optimizing for size (i.e. -Os, compiling statically)
and removing unnecessary features you could get near 100K without too
much trouble.
However, we don't have much experience with this, so YMMV.
What is the absolute minimum required set of external libraries?
That depends. If you need just the embeddable mDNS core of Avahi
(libavahi-core) then you need no other deps. However, I've you want to
have the "avahi-daemon" binary with its configuration files and
command line parsing, you need libdaemon and libexpat. If you want
access to the avahi core from other processes using our client API you
need D-Bus.
avahi-daemon minus d-bus is the configuration we're using at the
moment. (I've copied the configure options for 0.6.9 below)
It would have been nice to have IPC, but looking at the D-Bus' debian
package dependancy trail and its likely binary size kind of put me
off that. I should really check what D-Bus really needs at a minimum
sometime.
I can't remember the final binary size and lib dependancies off hand,
but I'll try to remember to post them sometime soon (on arm by the way).
Please have a look on the dependency table on:
http://avahi.org/wiki/DownloadAvahi#Requirements
Would it be possible to write a simple non-dbus version of the
daemon?
No need for writing this. All you have to do is passing --disable-dbus
to the configure script. However, if you do that Avahi will not be
accessible from other processes, i.e. tools like "avahi-browse" will
not be available. The static service and host name definition file is
still availablle, though. For many embedded devices that just want to
announce a service this should probably suffice.
For more sophistacated devices it is probably best to write your own
minimal daemon that makes direct use of avahi-core and doesn't need
any IPC functionality. The API documentation for this embeddable core
is built only when --enable-core-docs is passed to the configure
script and is not available online.
I too would have liked a non-dbus/expat daemon. The Avahi package
now has great flexibility with the core library, but I think a lot of
embedded linux projects will just be looking for a tested, ready to
go and small daemon.
Still, using avahi-daemon just with the static configuration files is
fine for us at the moment.
Chris
----
CONFIGURE_OPT = --disable-glib --disable-qt3 --disable-qt4 \
--disable-gtk --disable-gdbm --disable-python \
--disable-pygtk --disable-python-dbus --disable-mono \
--disable-monodoc --disable-doxygen-doc --disable-doxygen-dot \
--disable-doxygen-html --disable-manpages --disable-xmltoman \
--with-distro=none --prefix=`pwd`/../install \
--host=$(CROSS_COMPILE:-=) \
--cache-file=`pwd`/../config.cache --disable-manpages \
--disable-dbus \
_______________________________________________
avahi mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/avahi