<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY avahi-download-http "http://avahi.org/download/avahi-&avahi-version;.tar.gz">
  <!ENTITY avahi-download-ftp  " ">
  <!ENTITY avahi-md5sum        "2f22745b8f7368ad5a0a3fddac343f2d">
  <!ENTITY avahi-size          "1.3 MB">
  <!ENTITY avahi-buildsize     "23 MB">
  <!ENTITY avahi-time          "0.4 SBU">
]>

<sect1 id="avahi" xreflabel="Avahi-&avahi-version;">
  <?dbhtml filename="avahi.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-03-01 20:45:33 -0500 (Sun, 01 Mar 2015) $</date>
  </sect1info>

  <title>Avahi-&avahi-version;</title>

  <indexterm zone="avahi">
    <primary sortas="a-Avahi">Avahi</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to Avahi</title>

    <para>
      The <application>Avahi</application> package is a system which
      facilitates service discovery on a local network.
    </para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&avahi-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&avahi-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &avahi-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &avahi-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &avahi-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &avahi-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">Avahi Dependencies</bridgehead>

    <bridgehead renderas="sect4">Required</bridgehead>
    <para role="required">
      <xref linkend="glib2"/> 
    </para>

    <bridgehead renderas="sect4">Recommended</bridgehead>
    <para role="recommended">
      <xref linkend="gobject-introspection"/>,
      <xref linkend="gtk2"/>,
      <xref linkend="gtk3"/>,
      <xref linkend="libdaemon"/> and
      <xref linkend="libglade"/>
    </para>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="dbus-python"/>,
      <xref linkend="pygtk"/> and
      <xref linkend="qt4"/>
    </para>

    <para condition="html" role="usernotes">User Notes:
      <ulink url="&blfs-wiki;/avahi"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of Avahi</title>

    <para>
      There should be a dedicated user and group to take control
      of the <command>avahi-daemon</command> daemon after it is
      started. Issue the following commands as the
      <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>groupadd -fg 84 avahi &amp;&amp;
useradd -c "Avahi Daemon Owner" -d /var/run/avahi-daemon -u 84 \
        -g avahi -s /bin/false avahi</userinput></screen>

    <para>
      There should also be a dedicated priviliged access group for
      <application>Avahi</application> clients. Issue the following command as
      the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>groupadd -fg 86 netdev</userinput></screen>

    <para>Install <application>Avahi</application> by running the following
    commands:</para>

<!-- final part of sed removes " -DGDK_DISABLE_DEPRECATED=1 -DGTK_DISABLE_DEPRECATED=1 \" -->
<screen><userinput>sed -i 's/\(CFLAGS=.*\)-Werror \(.*\)/\1\2/' configure &amp;&amp;

sed -e 's/-DG_DISABLE_DEPRECATED=1//' \
    -e '/-DGDK_DISABLE_DEPRECATED/d'  \
    -i avahi-ui/Makefile.in &amp;&amp;

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-static     \
            --disable-mono       \
            --disable-monodoc    \
            --disable-python     \
            --disable-qt3        \
            --disable-qt4        \
            --enable-core-docs   \
            --with-distro=none   \
            --with-systemdsystemunitdir=no &amp;&amp;
make</userinput></screen>

    <para>
      This package does not come with a test suite.
    </para>

    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>

<screen role="root"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>
      <command>sed -i ...</command>: These seds allow the package to build after
      the deprecation of symbols in <literal>gtkstock.h</literal> by current
      <application>gtk+-3</application> by removing <literal>-Werror</literal>
      and by removing the defines for G{,DK,TK}_DISABLE_DEPRECATED.
    </para>

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
      href="../../xincludes/static-libraries.xml"/>

    <para>
      <parameter>--disable-mono</parameter>: This parameter disables the
      <application>Mono</application> bindings.
    </para>

    <para>
      <parameter>--disable-monodoc</parameter>: This parameter disables
      documentation for the <application>Mono</application> bindings.
    </para>

    <para>
      <parameter>--disable-python</parameter>: This parameter disables the
      scripts that depend on <application>Python</application>. It also
      allows a regular install to complete successfully.
    </para>

    <para>
      <parameter>--disable-qt3</parameter>: This parameter disables the
      building of <application>Qt3</application> mainloop integration.
    </para>

    <para>
      <parameter>--disable-qt4</parameter>: This parameter disables the building
      of <application>Qt4Core</application> mainloop integration. Omit
      this if you have installed <application>Qt4</application>.
    </para>

    <para>
      <parameter>--enable-core-docs</parameter>: This parameter enables the
      building of documentation.
    </para>

    <para>
      <parameter>--with-distro=none</parameter>: There is an obsolete
      boot script in the distribution for LFS. This option disables it.
    </para>

    <para>
      <parameter>--with-systemdsystemunitdir=no</parameter>: Without it, the
      daemon fails to start in BLFS, which does not support
      <application>systemd</application>.
    </para>

    <para>
      <option>--disable-dbus</option>: This parameter disables the use
      of <application>D-Bus</application>.
    </para>

    <para>
      <option>--disable-gtk</option>: This parameter disables the use
      of <application>GTK+2</application>.
    </para>

    <para>
      <option>--disable-gtk3</option>: This parameter disables the use
      of <application>GTK+3</application>.
    </para>

    <para>
      <option>--disable-libdaemon</option>: This parameter disables the use
      of <application>libdaemon</application>. If you use this option,
      <command>avahi-daemon</command> won't be built.
    </para>

    <para>
      <option>--enable-tests</option>: This option enables the building of
      tests and examples.
    </para>

    <para>
      <option>--enable-compat-howl</option>: This option enables the
      compatibility layer for <application>HOWL</application>.
    </para>

    <para>
      <option>--enable-compat-libdns_sd</option>: This option enables the
      compatibility layer for <application>libdns_sd</application>.
    </para>

  </sect2>

  <sect2 role="configuration">
    <title>Configuring avahi</title>

    <sect3  id="avahi-init">
      <title>Boot Script</title>

      <para>
        To automatically start the <command>avahi-daemon</command>
        when the system is rebooted, install the
        <filename>/etc/rc.d/init.d/avahi</filename> bootscript from
        the <xref linkend="bootscripts"/> package.
      </para>

      <indexterm zone="avahi avahi-init">
        <primary sortas="f-avahi">avahi</primary>
      </indexterm>

<screen role="root"><userinput>make install-avahi</userinput></screen>

    </sect3>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>avahi-autoipd, avahi-bookmarks, avahi-browse, avahi-browse-domains,
        avahi-daemon, avahi-discover, avahi-discover-standalone, avahi-dnsconfd,
        avahi-publish, avahi-publish-address, avahi-publish-service,
        avahi-resolve, avahi-resolve-address, avahi-resolve-host-name,
        avahi-set-host-name, bshell, bssh, and bvnc</seg>
        <seg>libavahi-client.so, libavahi-common.so,
        libavahi-core.so, libavahi-glib.so, libavahi-gobject.so,
        libavahi-ui-gtk3.so,, libavahi-ui.so, libdns_sd.so, and
        libhowl.so,</seg>
        <seg>/etc/avahi/services, /usr/{include/{avahi-client,avahi-common,
        avahi-compat-howl/{corby,discovery,rendezvous,salt},
        avahi-compat-libdns_sd,avahi-core,avahi-glib,avahi-gobject,avahi-ui},
        lib/{avahi,python&python2-majorver;/site-packages/{avahi,
        avahi_discover}},share/{avahi/interfaces,locale/en_NZ/LC_MESSAGES}}</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="avahi-autoipd">
        <term><command>avahi-autoipd</command></term>
        <listitem>
          <para>is a IPv4LL network address configuration daemon.</para>
          <indexterm zone="avahi avahi-autoipd">
            <primary sortas="b-avahi-autoipd">avahi-autoipd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-bookmarks">
        <term><command>avahi-bookmarks</command></term>
        <listitem>
          <para>is a Web service showing mDNS/DNS-SD announced HTTP services
          using the <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-bookmarks">
            <primary sortas="b-avahi-bookmarks">avahi-bookmarks</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-browse">
        <term><command>avahi-browse</command></term>
        <listitem>
          <para>browses for mDNS/DNS-SD services using the
          <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-browse">
            <primary sortas="b-avahi-browse">avahi-browse</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-browse-domains">
        <term><command>avahi-browse-domains</command></term>
        <listitem>
          <para>browses for mDNS/DNS-SD services using the
          <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-browse-domains">
            <primary sortas="b-avahi-browse-domains">avahi-browse-domains</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-daemon">
        <term><command>avahi-daemon</command></term>
        <listitem>
          <para>is the <application>Avahi</application> mDNS/DNS-SD
          daemon.</para>
          <indexterm zone="avahi avahi-daemon">
            <primary sortas="b-avahi-daemon">avahi-daemon</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-discover">
        <term><command>avahi-discover</command></term>
        <listitem>
          <para>browses for mDNS/DNS-SD services using the
          <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-discover">
            <primary sortas="b-avahi-discover">avahi-discover</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-discover-standalone">
        <term><command>avahi-discover-standalone</command></term>
        <listitem>
          <para>browses for mDNS/DNS-SD services using the
          <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-discover-standalone">
            <primary sortas="b-avahi-discover-standalone">avahi-discover-standalone</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-dnsconfd">
        <term><command>avahi-dnsconfd</command></term>
        <listitem>
          <para>is a Unicast DNS server from mDNS/DNS-SD configuration
          daemon.</para>
          <indexterm zone="avahi avahi-dnsconfd">
            <primary sortas="b-avahi-dnsconfd">avahi-dnsconfd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-publish">
        <term><command>avahi-publish</command></term>
        <listitem>
          <para>registers a mDNS/DNS-SD service or host name or address mapping
          using the <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-publish">
            <primary sortas="b-avahi-publish">avahi-publish</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-publish-address">
        <term><command>avahi-publish-address</command></term>
        <listitem>
          <para>registers a mDNS/DNS-SD service or host name or address mapping
          using the <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-publish-address">
            <primary sortas="b-avahi-publish-address">avahi-publish-address</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-publish-service">
        <term><command>avahi-publish-service</command></term>
        <listitem>
          <para>registers a mDNS/DNS-SD service or host name or address mapping
          using the <application>Avahi</application> daemon.</para>
          <indexterm zone="avahi avahi-publish-service">
            <primary sortas="b-avahi-publish-service">avahi-publish-service</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-resolve">
        <term><command>avahi-resolve</command></term>
        <listitem>
          <para>resolves one or more mDNS/DNS host name(s) to IP address(es)
          (and vice versa) using the <application>Avahi</application>
          daemon.</para>
          <indexterm zone="avahi avahi-resolve">
            <primary sortas="b-avahi-resolve">avahi-resolve</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-resolve-address">
        <term><command>avahi-resolve-address</command></term>
        <listitem>
          <para>resolves one or more mDNS/DNS host name(s) to IP address(es)
          (and vice versa) using the <application>Avahi</application>
          daemon.</para>
          <indexterm zone="avahi avahi-resolve-address">
            <primary sortas="b-avahi-resolve-address">avahi-resolve-address</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-resolve-host-name">
        <term><command>avahi-resolve-host-name</command></term>
        <listitem>
          <para>resolves one or more mDNS/DNS host name(s) to IP address(es)
          (and vice versa) using the <application>Avahi</application>
          daemon.</para>
          <indexterm zone="avahi avahi-resolve-host-name">
            <primary sortas="b-avahi-resolve-host-name">avahi-resolve-host-name</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="avahi-set-host-name">
        <term><command>avahi-set-host-name</command></term>
        <listitem>
          <para>changes the mDNS host name.</para>
          <indexterm zone="avahi avahi-set-host-name">
            <primary sortas="b-avahi-set-host-name">avahi-set-host-name</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <!--<varlistentry id="bshell">
        <term><command>bshell</command></term>
        <listitem>
          <para>does this .....</para>
          <indexterm zone="avahi bshell">
            <primary sortas="b-bshell">bshell</primary>
          </indexterm>
        </listitem>
      </varlistentry>-->

      <varlistentry id="bssh">
        <term><command>bssh</command></term>
        <listitem>
          <para>browses for SSH servers on the local network.</para>
          <indexterm zone="avahi bssh">
            <primary sortas="b-bssh">bssh</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="bvnc">
        <term><command>bvnc</command></term>
        <listitem>
          <para>browses for VNC servers on the local network.</para>
          <indexterm zone="avahi bvnc">
            <primary sortas="b-bvnc">bvnc</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <!--<varlistentry id="libavahi-client">
        <term><filename class='libraryfile'>libavahi-client.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-client">
            <primary sortas="c-libavahi-client">libavahi-client.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-common">
        <term><filename class='libraryfile'>libavahi-common.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-common">
            <primary sortas="c-libavahi-common">libavahi-common.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-core">
        <term><filename class='libraryfile'>libavahi-core.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-core">
            <primary sortas="c-libavahi-core">libavahi-core.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-glib">
        <term><filename class='libraryfile'>libavahi-glib.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-glib">
            <primary sortas="c-libavahi-glib">libavahi-glib.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-gobject">
        <term><filename class='libraryfile'>libavahi-gobject.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-gobject">
            <primary sortas="c-libavahi-gobject">libavahi-gobject.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-ui-gtk3">
        <term><filename class='libraryfile'>libavahi-ui-gtk3.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-ui-gtk3">
            <primary sortas="c-libavahi-ui-gtk3">libavahi-ui-gtk3.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libavahi-ui">
        <term><filename class='libraryfile'>libavahi-ui.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libavahi-ui">
            <primary sortas="c-libavahi-ui">libavahi-ui.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libdns_sd">
        <term><filename class='libraryfile'>libdns_sd.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libdns_sd">
            <primary sortas="c-libdns_sd">libdns_sd.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libhowl">
        <term><filename class='libraryfile'>libhowl.{so,a}</filename></term>
        <listitem>
          <para>contains functions that .....</para>
          <indexterm zone="avahi libhowl">
            <primary sortas="c-libhowl">libhowl.{so,a}</primary>
          </indexterm>
        </listitem>
      </varlistentry>-->

    </variablelist>

  </sect2>

</sect1>
