Installation of Avahi
There should be a dedicated user and group to take control of the
avahi-daemon daemon
after it is started. Issue the following commands as the
root
user:
groupadd -fg 84 avahi &&
useradd -c "Avahi Daemon Owner" -d /run/avahi-daemon -u 84 \
-g avahi -s /bin/false avahi
There should also be a dedicated privileged access group for
Avahi clients. Issue the following
command as the root
user:
groupadd -fg 86 netdev
Fix a regression that results in a race condition when IPv6 is in
use and multiple network adapters are present on the system:
patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch
Fix a security vulnerability in avahi-daemon:
sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c
Install Avahi by running the
following commands:
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-static \
--disable-libevent \
--disable-mono \
--disable-monodoc \
--disable-python \
--disable-qt3 \
--disable-qt4 \
--enable-core-docs \
--with-distro=none \
--with-dbus-system-address='unix:path=/run/dbus/system_bus_socket' &&
make
This package does not come with a test suite.
Now, as the root
user:
make install
Command Explanations
--disable-static
: This
switch prevents installation of static versions of the libraries.
--disable-libevent
: This
parameter disables the use of libevent-2.1.12. Remove if you have it
installed.
--disable-mono
: This
parameter disables the Mono
bindings.
--disable-monodoc
: This
parameter disables documentation for the Mono bindings.
--disable-python
: This
parameter disables the scripts that depend on Python. It also allows a regular install to
complete successfully.
--disable-qt3
: This
parameter disables the attempt to build the obsolete Qt3 portions of the package.
--disable-qt4
: This
parameter disables the attempt to build the obsolete Qt4Core portions of the package.
--enable-core-docs
: This
parameter enables the building of documentation.
--with-distro=none
: There
is an obsolete boot script in the distribution for LFS. This option
disables it.
--with-dbus-system-address=
: This
option prevents the package from referring to the deprecated
/var/run
directory.
--disable-dbus
: This parameter disables
the use of D-Bus.
--disable-gtk
: This parameter disables
the use of GTK+2.
--disable-gtk3
: This parameter disables
the use of GTK+3.
--disable-qt5
: This parameter disables
the use of Qt5, and allows
building without it.
--disable-libdaemon
: This parameter
disables the use of libdaemon. If
you use this option, avahi-daemon won't be built.
--enable-tests
: This option enables the
building of tests and examples.
--enable-compat-howl
: This option
enables the compatibility layer for HOWL.
--enable-compat-libdns_sd
: This option
enables the compatibility layer for libdns_sd.
Configuring avahi
Boot Script
To start the avahi-daemon daemon at boot,
enable the previously installed systemd unit by running the
following command as the root
user:
systemctl enable avahi-daemon
To start the avahi-dnsconfd daemon at boot,
enable the previously installed systemd unit by running the
following command as the root
user:
systemctl enable avahi-dnsconfd