avahi: add a .bb for the avahi packages, see bug #268
authorPhilipp Zabel <philipp.zabel@gmail.com>
Sun, 28 Aug 2005 16:53:07 +0000 (16:53 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sun, 28 Aug 2005 16:53:07 +0000 (16:53 +0000)
packages/avahi/.mtn2git_empty [new file with mode: 0644]
packages/avahi/avahi-0.1/.mtn2git_empty [new file with mode: 0644]
packages/avahi/avahi-0.1/avahi-glib.pc.patch [new file with mode: 0644]
packages/avahi/avahi-0.1/avahi-test-memory-corruption.patch [new file with mode: 0644]
packages/avahi/avahi-0.1/dbus-warn.patch [new file with mode: 0644]
packages/avahi/avahi-0.1/no-strict-ansi.patch [new file with mode: 0644]
packages/avahi/avahi-0.1/resolving.patch [new file with mode: 0644]
packages/avahi/avahi-0.1/static-services-protocol.patch [new file with mode: 0644]
packages/avahi/avahi_0.1.bb [new file with mode: 0644]

diff --git a/packages/avahi/.mtn2git_empty b/packages/avahi/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/avahi/avahi-0.1/.mtn2git_empty b/packages/avahi/avahi-0.1/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/avahi/avahi-0.1/avahi-glib.pc.patch b/packages/avahi/avahi-0.1/avahi-glib.pc.patch
new file mode 100644 (file)
index 0000000..0d00973
--- /dev/null
@@ -0,0 +1,10 @@
+diff -Nurd avahi-0.1.orig/avahi-glib.pc.in avahi-0.1/avahi-glib.pc.in
+--- avahi-0.1.orig/avahi-glib.pc.in    2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-glib.pc.in 2005-08-28 00:34:50 +0200
+@@ -7,5 +7,5 @@
+ Description: Avahi Multicast DNS Responder (GLib Support)
+ Version: @PACKAGE_VERSION@
+ Requires: glib-2.0
+-Libs: -L${libdir} -lavahi-commong -lavahi-glib
++Libs: -L${libdir} -lavahi-common -lavahi-glib
+ Cflags: -D_REENTRANT -I${includedir}
diff --git a/packages/avahi/avahi-0.1/avahi-test-memory-corruption.patch b/packages/avahi/avahi-0.1/avahi-test-memory-corruption.patch
new file mode 100644 (file)
index 0000000..b6cbeb7
--- /dev/null
@@ -0,0 +1,34 @@
+diff -Nurd avahi-0.1.orig/avahi-core/avahi-test.c avahi-0.1/avahi-core/avahi-test.c
+--- avahi-0.1.orig/avahi-core/avahi-test.c     2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/avahi-test.c  2005-08-28 00:34:50 +0200
+@@ -261,7 +261,7 @@
+     poll_api->timeout_new(poll_api, &tv, dump_timeout_callback, server);
+     avahi_elapse_time(&tv, 1000*60, 0);
+-    poll_api->timeout_new(poll_api, &tv, quit_timeout_callback, server);
++    poll_api->timeout_new(poll_api, &tv, quit_timeout_callback, simple_poll);
+     for (;;)
+         if (avahi_simple_poll_iterate(simple_poll, -1) != 0)
+diff -Nurd avahi-0.1.orig/avahi-core/server.c avahi-0.1/avahi-core/server.c
+--- avahi-0.1.orig/avahi-core/server.c 2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/server.c      2005-08-28 00:34:50 +0200
+@@ -267,7 +267,6 @@
+         }
+     }
+-
+     if (!ours) {
+         if (won)
+diff -Nurd avahi-0.1.orig/avahi-core/hashmap.c avahi-0.1/avahi-core/hashmap.c
+--- avahi-0.1.orig/avahi-core/hashmap.c        2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/hashmap.c     2005-08-28 00:34:50 +0200
+@@ -69,6 +69,7 @@
+ static void entry_free(AvahiHashmap *m, Entry *e, int stolen) {
+     unsigned idx;
++    assert(m);
+     assert(e);
+     idx = m->hash_func(e->key) % HASH_MAP_SIZE;
diff --git a/packages/avahi/avahi-0.1/dbus-warn.patch b/packages/avahi/avahi-0.1/dbus-warn.patch
new file mode 100644 (file)
index 0000000..b3fd8bd
--- /dev/null
@@ -0,0 +1,99 @@
+diff -Nur avahi-0.1/avahi-daemon/avahi-daemon.conf avahi-0.1.new/avahi-daemon/avahi-daemon.conf
+--- avahi-0.1/avahi-daemon/avahi-daemon.conf   2005-08-22 05:27:09.000000000 +0800
++++ avahi-0.1.new/avahi-daemon/avahi-daemon.conf       2005-08-23 04:46:04.000000000 +0800
+@@ -5,7 +5,7 @@
+ use-ipv6=no
+ check-response-ttl=no
+ use-iff-running=no
+-enable-dbus=yes
++enable-dbus=warn
+ [publish]
+ publish-addresses=yes
+diff -Nur avahi-0.1/avahi-daemon/main.c avahi-0.1.new/avahi-daemon/main.c
+--- avahi-0.1/avahi-daemon/main.c      2005-08-22 05:27:09.000000000 +0800
++++ avahi-0.1.new/avahi-daemon/main.c  2005-08-23 04:45:45.000000000 +0800
+@@ -78,7 +78,10 @@
+     int daemonize;
+     int use_syslog;
+     char *config_file;
++#ifdef HAVE_DBUS
+     int enable_dbus;
++    int fail_on_missing_dbus;
++#endif
+     int drop_root;
+     int publish_resolv_conf;
+     char ** publish_dns_servers;
+@@ -380,8 +383,20 @@
+                     c->server_config.check_response_ttl = is_yes(p->value);
+                 else if (strcasecmp(p->key, "use-iff-running") == 0)
+                     c->server_config.use_iff_running = is_yes(p->value);
+-                else if (strcasecmp(p->key, "enable-dbus") == 0)
+-                    c->enable_dbus = is_yes(p->value);
++#ifdef HAVE_DBUS                
++                else if (strcasecmp(p->key, "enable-dbus") == 0) {
++
++                    if (*(p->value) == 'w' || *(p->value) == 'W') {
++                        c->fail_on_missing_dbus = 0;
++                        c->enable_dbus = 1;
++                    } else if (*(p->value) == 'y' || *(p->value) == 'Y') {
++                        c->fail_on_missing_dbus = 1;
++                        c->enable_dbus = 1;
++                    } else
++                        c->enable_dbus = 0;
++                    
++                }
++#endif
+                 else if (strcasecmp(p->key, "drop-root") == 0)
+                     c->drop_root = is_yes(p->value);
+                 else {
+@@ -587,8 +602,14 @@
+     
+ #ifdef HAVE_DBUS
+     if (c->enable_dbus)
+-        if (dbus_protocol_setup(poll_api) < 0)
+-            goto finish;
++        if (dbus_protocol_setup(poll_api) < 0) {
++
++            if (c->fail_on_missing_dbus)
++                goto finish;
++
++            avahi_log_warn("WARNING: Failed to contact D-BUS daemon, disabling D-BUS support.");
++            c->enable_dbus = 0;
++        }
+ #endif
+     
+     load_resolv_conf(c);
+@@ -825,7 +846,10 @@
+     config.command = DAEMON_RUN;
+     config.daemonize = 0;
+     config.config_file = NULL;
++#ifdef HAVE_DBUS
+     config.enable_dbus = 1;
++    config.fail_on_missing_dbus = 1;
++#endif
+     config.drop_root = 1;
+     config.publish_dns_servers = NULL;
+     config.publish_resolv_conf = 0;
+diff -Nur avahi-0.1/man/avahi-daemon.conf.5.xml.in avahi-0.1.new/man/avahi-daemon.conf.5.xml.in
+--- avahi-0.1/man/avahi-daemon.conf.5.xml.in   2005-08-22 05:27:10.000000000 +0800
++++ avahi-0.1.new/man/avahi-daemon.conf.5.xml.in       2005-08-23 04:45:45.000000000 +0800
+@@ -83,11 +83,13 @@
+       </option>
+       <option>
+-        <p><opt>enable-dbus=</opt> Takes a boolean value ("yes" or
+-        "no"). If set to "yes" avahi-daemon connects to DBUS, to offer
+-        an object oriented client API. Only available if avahi has
+-        been compiled with <opt>--enable-dbus</opt> in which case it
+-        defaults to "yes".</p>
++        <p><opt>enable-dbus=</opt> Takes either "yes", "no" or
++        "warn". If set to "yes" avahi-daemon connects to D-BUS,
++        offering an object oriented client API. It is only available
++        if avahi has been compiled with <opt>--enable-dbus</opt> in
++        which case it defaults to "yes". "warn" behaves like "yes",
++        but the daemon starts up even when it fails to connect to a
++        D-BUS daemon.</p>
+       </option>
+       </section>
diff --git a/packages/avahi/avahi-0.1/no-strict-ansi.patch b/packages/avahi/avahi-0.1/no-strict-ansi.patch
new file mode 100644 (file)
index 0000000..4bc3a5c
--- /dev/null
@@ -0,0 +1,11 @@
+--- avahi-0.1/configure.ac.orig        2005-08-23 19:52:00 +0200
++++ avahi-0.1/configure.ac     2005-08-23 19:52:07 +0200
+@@ -57,7 +57,7 @@
+ # If using GCC specify some additional parameters
+ if test "x$GCC" = "xyes" ; then
+    
+-   DESIRED_FLAGS="-std=c99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wlarger-than-4000 -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter"
++   DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wlarger-than-4000 -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter"
+    for flag in $DESIRED_FLAGS ; do
+        AC_MSG_CHECKING([whether $CC accepts $flag])
diff --git a/packages/avahi/avahi-0.1/resolving.patch b/packages/avahi/avahi-0.1/resolving.patch
new file mode 100644 (file)
index 0000000..a3d254c
--- /dev/null
@@ -0,0 +1,58 @@
+diff -Nurd avahi-0.1.orig/avahi-core/resolve-service.c avahi-0.1/avahi-core/resolve-service.c
+--- avahi-0.1.orig/avahi-core/resolve-service.c        2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/resolve-service.c     2005-08-28 00:34:50 +0200
+@@ -200,10 +200,11 @@
+     } else {
+         assert(event == AVAHI_BROWSER_REMOVE);
++        
+         switch (record->key->type) {
+             case AVAHI_DNS_TYPE_SRV:
+-                if (avahi_record_equal_no_ttl(record, r->srv_record)) {
++                if (r->srv_record && avahi_record_equal_no_ttl(record, r->srv_record)) {
+                     avahi_record_unref(r->srv_record);
+                     r->srv_record = NULL;
+@@ -216,7 +217,7 @@
+             case AVAHI_DNS_TYPE_TXT:
+-                if (avahi_record_equal_no_ttl(record, r->txt_record)) {
++                if (r->txt_record && avahi_record_equal_no_ttl(record, r->txt_record)) {
+                     avahi_record_unref(r->txt_record);
+                     r->txt_record = NULL;
+@@ -229,7 +230,7 @@
+             case AVAHI_DNS_TYPE_A:
+             case AVAHI_DNS_TYPE_AAAA:
+-                if (avahi_record_equal_no_ttl(record, r->address_record)) {
++                if (r->address_record && avahi_record_equal_no_ttl(record, r->address_record)) {
+                     avahi_record_unref(r->address_record);
+                     r->address_record = NULL;
+diff -Nurd avahi-0.1.orig/avahi-core/resolve-address.c avahi-0.1/avahi-core/resolve-address.c
+--- avahi-0.1.orig/avahi-core/resolve-address.c        2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/resolve-address.c     2005-08-28 00:34:50 +0200
+@@ -121,7 +121,7 @@
+         
+         assert(event == AVAHI_BROWSER_REMOVE);
+         
+-        if (avahi_record_equal_no_ttl(record, r->ptr_record)) {
++        if (r->ptr_record && avahi_record_equal_no_ttl(record, r->ptr_record)) {
+             avahi_record_unref(r->ptr_record);
+             r->ptr_record = NULL;
+diff -Nurd avahi-0.1.orig/avahi-core/resolve-host-name.c avahi-0.1/avahi-core/resolve-host-name.c
+--- avahi-0.1.orig/avahi-core/resolve-host-name.c      2005-08-21 23:27:14 +0200
++++ avahi-0.1/avahi-core/resolve-host-name.c   2005-08-28 00:34:50 +0200
+@@ -141,7 +141,7 @@
+         assert(event == AVAHI_BROWSER_REMOVE);
+-        if (avahi_record_equal_no_ttl(record, r->address_record)) {
++        if (r->address_record && avahi_record_equal_no_ttl(record, r->address_record)) {
+             avahi_record_unref(r->address_record);
+             r->address_record = NULL;
diff --git a/packages/avahi/avahi-0.1/static-services-protocol.patch b/packages/avahi/avahi-0.1/static-services-protocol.patch
new file mode 100644 (file)
index 0000000..a4f4104
--- /dev/null
@@ -0,0 +1,193 @@
+diff -Nurd avahi-0.1.orig/avahi-daemon/static-services.c avahi-0.1/avahi-daemon/static-services.c
+--- avahi-0.1.orig/avahi-daemon/static-services.c      2005-08-21 23:27:09 +0200
++++ avahi-0.1/avahi-daemon/static-services.c   2005-08-28 00:34:50 +0200
+@@ -251,7 +251,6 @@
+     XML_TAG_DOMAIN_NAME,
+     XML_TAG_HOST_NAME,
+     XML_TAG_PORT,
+-    XML_TAG_PROTOCOL,
+     XML_TAG_TXT_RECORD
+ } xml_tag_name;
+@@ -285,19 +284,41 @@
+                 u->group->replace_wildcards = strcmp(attr[1], "yes") == 0;
+             else
+                 goto invalid_attr;
+-        }
+-        if (attr[2])
+-            goto invalid_attr;
++            if (attr[2])
++                goto invalid_attr;
++        }
+         
+     } else if (u->current_tag == XML_TAG_SERVICE_GROUP && strcmp(el, "service") == 0) {
+-        if (attr[0])
+-            goto invalid_attr;
++        u->current_tag = XML_TAG_SERVICE;
+         assert(!u->service);
+         u->service = static_service_new(u->group);
+-        u->current_tag = XML_TAG_SERVICE;
++        if (attr[0]) {
++            if (strcmp(attr[0], "protocol") == 0) {
++                AvahiProtocol protocol;
++                
++                if (strcmp(attr[1], "ipv4") == 0) {
++                    protocol = AVAHI_PROTO_INET;
++                } else if (strcmp(attr[1], "ipv6") == 0) {
++                    protocol = AVAHI_PROTO_INET6;
++                } else if (strcmp(attr[1], "any") == 0) {
++                    protocol = AVAHI_PROTO_UNSPEC;
++                } else {
++                    avahi_log_error("%s: parse failure: invalid protocol specification \"%s\".", u->group->filename, attr[1]);
++                    u->failed = 1;
++                    return;
++                }
++
++                u->service->protocol = protocol;
++            } else
++                goto invalid_attr;
++
++            if (attr[2])
++                goto invalid_attr;
++        }
++
+     } else if (u->current_tag == XML_TAG_SERVICE && strcmp(el, "type") == 0) {
+         if (attr[0])
+             goto invalid_attr;
+@@ -318,11 +339,6 @@
+             goto invalid_attr;
+         
+         u->current_tag = XML_TAG_PORT;
+-    } else if (u->current_tag == XML_TAG_SERVICE && strcmp(el, "protocol") == 0) {
+-        if (attr[0])
+-            goto invalid_attr;
+-
+-        u->current_tag = XML_TAG_PROTOCOL;
+     } else if (u->current_tag == XML_TAG_SERVICE && strcmp(el, "txt-record") == 0) {
+         if (attr[0])
+             goto invalid_attr;
+@@ -394,27 +410,6 @@
+             break;
+         }
+-        case XML_TAG_PROTOCOL: {
+-            int protocol;
+-            assert(u->service);
+-
+-            if (u->buf && strcasecmp (u->buf, "ipv4") == 0) {
+-                protocol = AVAHI_PROTO_INET;
+-            } else if (u->buf && strcasecmp (u->buf, "ipv6") == 0) {
+-                protocol = AVAHI_PROTO_INET6;
+-            } else if (u->buf && strcasecmp (u->buf, "any") == 0) {
+-                protocol = AVAHI_PROTO_UNSPEC;
+-            } else {
+-                avahi_log_error("%s: parse failure: invalid protocol specification \"%s\".", u->group->filename, u->buf);
+-                u->failed = 1;
+-                return;
+-            }
+-
+-            u->service->protocol = protocol;
+-          u->current_tag = XML_TAG_SERVICE;
+-            break;
+-        }
+-
+         case XML_TAG_TXT_RECORD: {
+             assert(u->service);
+             
+@@ -484,7 +479,6 @@
+             break;
+         case XML_TAG_PORT:
+-        case XML_TAG_PROTOCOL:
+         case XML_TAG_TXT_RECORD:
+             assert(u->service);
+             u->buf = append_cdata(u->buf, s, len);
+diff -Nurd avahi-0.1.orig/avahi-daemon/example.service avahi-0.1/avahi-daemon/example.service
+--- avahi-0.1.orig/avahi-daemon/example.service        2005-08-21 23:27:09 +0200
++++ avahi-0.1/avahi-daemon/example.service     2005-08-28 00:34:50 +0200
+@@ -16,12 +16,11 @@
+     <port>631</port>
+   </service>
+-  <service>
++  <service protocol="ipv6">
+     <type>_uberprinter._tcp</type>
+     <domain-name>local</domain-name>
+     <host-name>quux.local</host-name>
+     <port>4711</port>
+-    <protocol>any</protocol>
+     <txt-record>this=is</txt-record>
+     <txt-record>a=really</txt-record>
+     <txt-record>bad=example</txt-record>
+diff -Nurd avahi-0.1.orig/avahi-daemon/avahi-service.dtd avahi-0.1/avahi-daemon/avahi-service.dtd
+--- avahi-0.1.orig/avahi-daemon/avahi-service.dtd      2005-08-21 23:27:09 +0200
++++ avahi-0.1/avahi-daemon/avahi-service.dtd   2005-08-28 00:34:50 +0200
+@@ -5,7 +5,7 @@
+ <!ELEMENT name (#PCDATA)>
+ <!ATTLIST name replace-wildcards (yes|no) "no">
+ <!ELEMENT service (type,domain-name?,host-name?,port,txt-record*)>
+-<!ATTLIST service>
++<!ATTLIST service protocol (ipv4|ipv6|any) "any">
+ <!ELEMENT type (#PCDATA)>
+ <!ATTLIST type>
+ <!ELEMENT domain-name (#PCDATA)>
+@@ -14,7 +14,5 @@
+ <!ATTLIST host-name>
+ <!ELEMENT port (#PCDATA)>
+ <!ATTLIST port>
+-<!ELEMENT protocol (#PCDATA)>
+-<!ATTLIST protocol>
+ <!ELEMENT txt-record (#PCDATA)>
+ <!ATTLIST txt-record>
+diff -Nurd avahi-0.1.orig/man/avahi.service.5.xml.in avahi-0.1/man/avahi.service.5.xml.in
+--- avahi-0.1.orig/man/avahi.service.5.xml.in  2005-08-21 23:27:10 +0200
++++ avahi-0.1/man/avahi.service.5.xml.in       2005-08-28 00:34:50 +0200
+@@ -45,7 +45,7 @@
+       </option>
+       <option>
+-        <p><opt>&lt;name replace-wildcards="yes|no"/&gt;</opt> The
++        <p><opt>&lt;name replace-wildcards="yes|no"&gt;</opt> The
+         service name. If <opt>replace-wildcards</opt> is "yes", any
+         occurence of the string "%h" will be replaced by the local
+         host name. This can be used for service names like "Remote
+@@ -54,16 +54,19 @@
+       </option>
+       <option>
+-        <p><opt>&lt;service&gt;</opt> Contains the service information
+-        for exactly one service type. Should contain one
+-        <opt>&lt;type&gt;</opt> and one <opt>&lt;port&gt;</opt>
+-        element. Optionally it may contain one
++        <p><opt>&lt;service protocol="ipv4|ipv6|any"&gt;</opt>
++        Contains the service information for exactly one service
++        type. Should contain one <opt>&lt;type&gt;</opt> and one
++        <opt>&lt;port&gt;</opt> element. Optionally it may contain one
+         <opt>&lt;domain-name&gt;</opt>, one
+         <opt>&lt;host-name&gt;</opt> and multiple
+-        <opt>&lt;txt-record&gt;</opt> elements.</p>
++        <opt>&lt;txt-record&gt;</opt> elements. The attribute
++        <opt>protocol</opt> specifies the protocol to
++        advertise the service on. If <opt>any</opt> is used (which is
++        the default), the service will be advertised on both IPv4 and
++        IPv6.</p>
+       </option>
+-
+       <option>
+         <p><opt>&lt;type&gt;</opt> Contains the DNS-SD service type for this service. e.g. "_http._tcp".</p>
+       </option>
+@@ -88,10 +91,6 @@
+       </option>
+       <option>
+-        <p><opt>&lt;protocol&gt;</opt> The protocol to advertise the service on, can be any of <opt>ipv4</opt>, <opt>ipv6</opt> or <opt>any</opt>.</p>
+-      </option>
+-
+-      <option>
+         <p><opt>&lt;txt-record&gt;</opt> DNS-SD TXT record data.</p>
+       </option>
diff --git a/packages/avahi/avahi_0.1.bb b/packages/avahi/avahi_0.1.bb
new file mode 100644 (file)
index 0000000..f9f1ca2
--- /dev/null
@@ -0,0 +1,51 @@
+DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS"
+HOMEPAGE = "http://www.freedesktop.org/Software/Avahi"
+LICENCE= "GPL"
+DEPENDS = "expat libdaemon dbus-0.34" # "python gtk+"
+RRECOMMENDS = "libnss-mdns"
+SECTION = "net"
+PRIORITY = "optional"
+
+SRC_URI = "http://www.freedesktop.org/~lennart/avahi-0.1.tar.gz \
+          file://no-strict-ansi.patch;patch=1 \
+          file://avahi-glib.pc.patch;patch=1 \
+          file://avahi-test-memory-corruption.patch;patch=1 \
+          file://dbus-warn.patch;patch=1 \
+          file://resolving.patch;patch=1 \
+          file://static-services-protocol.patch;patch=1"
+
+PACKAGES = "avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib avahi-dev avahi-doc"
+
+FILES_libavahi-common = "${libdir}/libavahi-common.so.*"
+FILES_libavahi-core= "${libdir}/libavahi-core.so.*"
+FILES_avahi-daemon = "${sbindir}/avahi-daemon \
+                     ${sysconfdir}/avahi/avahi-daemon.conf \
+                     ${sysconfdir}/avahi/services \
+                     ${sysconfdir}/dbus-1 \
+                     ${sysconfdir}/init.d/avahi-daemon \
+                     ${datadir}/avahi/introspection/*.introspect \
+                     ${datadir}/avahi/avahi-service.dtd"
+FILES_libavahi-client = "${libdir}/libavahi-client.so.*"
+FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \
+                       ${sysconfdir}/avahi/avahi-dnsconfd.action \
+                       ${sysconfdir}/init.d/avahi-dnsconfd"
+FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*"
+
+CONFFILES_avahi-daemon = "${sysconfdir}/avahi/avahi-daemon.conf"
+
+EXTRA_OECONF = "--with-distro=debian --disable-gtk --disable-python"
+inherit autotools
+inherit update-rc.d
+
+INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd"
+INITSCRIPT_NAME_avahi-daemon = "avahi-daemon"
+INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd"
+
+pkg_postinst_avahi-daemon () {
+       grep avahi /etc/passwd || adduser --disabled-password --system --home /var/run/avahi-daemon avahi
+}
+
+pkg_postrm_avahi-daemon () {
+       deluser avahi || true
+}
+