diff options
Diffstat (limited to 'openembedded/packages/avahi')
-rw-r--r-- | openembedded/packages/avahi/avahi-0.5.1/alignment-fix.patch | 96 | ||||
-rw-r--r-- | openembedded/packages/avahi/avahi_0.5.1.bb | 53 |
2 files changed, 149 insertions, 0 deletions
diff --git a/openembedded/packages/avahi/avahi-0.5.1/alignment-fix.patch b/openembedded/packages/avahi/avahi-0.5.1/alignment-fix.patch new file mode 100644 index 000000000..fc23f2375 --- /dev/null +++ b/openembedded/packages/avahi/avahi-0.5.1/alignment-fix.patch @@ -0,0 +1,96 @@ +--- avahi-0.5/avahi-core/dns.c.orig 2005-09-23 16:35:02 +0200 ++++ avahi-0.5/avahi-core/dns.c 2005-09-23 16:35:07 +0200 +@@ -177,11 +177,13 @@ + assert(idx < p->size); + + if (idx < 0x4000) { +- uint16_t *t; +- if (!(t = (uint16_t*) avahi_dns_packet_extend(p, sizeof(uint16_t)))) ++ uint8_t *t; ++ ++ if (!(t = (uint8_t*) avahi_dns_packet_extend(p, sizeof(uint16_t)))) + return NULL; + +- *t = htons((0xC000 | idx)); ++ t[0] = (uint8_t) ((0xC000 | idx) >> 8); ++ t[1] = (uint8_t) idx; + return saved_ptr; + } + } +@@ -223,7 +225,8 @@ + if (!(d = avahi_dns_packet_extend(p, sizeof(uint16_t)))) + return NULL; + +- *((uint16_t*) d) = htons(v); ++ d[0] = (uint8_t) (v >> 8); ++ d[1] = (uint8_t) v; + return d; + } + +@@ -234,7 +237,10 @@ + if (!(d = avahi_dns_packet_extend(p, sizeof(uint32_t)))) + return NULL; + +- *((uint32_t*) d) = htonl(v); ++ d[0] = (uint8_t) (v >> 24); ++ d[1] = (uint8_t) (v >> 16); ++ d[2] = (uint8_t) (v >> 8); ++ d[3] = (uint8_t) v; + + return d; + } +@@ -385,26 +391,42 @@ + } + + int avahi_dns_packet_consume_uint16(AvahiDnsPacket *p, uint16_t *ret_v) { ++ uint8_t *d; ++ uint16_t tmp_v; ++ + assert(p); + assert(ret_v); + + if (p->rindex + sizeof(uint16_t) > p->size) + return -1; + +- *ret_v = ntohs(*((uint16_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex))); ++ d = (uint8_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex); ++ tmp_v = (d[0] << 8) | d[1]; ++ d = (uint8_t*) ret_v; ++ d[0] = ((uint8_t*)(&tmp_v))[0]; ++ d[1] = ((uint8_t*)(&tmp_v))[1]; + p->rindex += sizeof(uint16_t); + + return 0; + } + + int avahi_dns_packet_consume_uint32(AvahiDnsPacket *p, uint32_t *ret_v) { ++ uint8_t* d; ++ uint32_t tmp_v; ++ + assert(p); + assert(ret_v); + + if (p->rindex + sizeof(uint32_t) > p->size) + return -1; + +- *ret_v = ntohl(*((uint32_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex))); ++ d = (uint8_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex); ++ tmp_v = (d[0] << 24) | (d[1] << 16) | (d[2] << 8) | d[3]; ++ d = (uint8_t*) ret_v; ++ d[0] = ((uint8_t*)(&tmp_v))[0]; ++ d[1] = ((uint8_t*)(&tmp_v))[1]; ++ d[2] = ((uint8_t*)(&tmp_v))[2]; ++ d[3] = ((uint8_t*)(&tmp_v))[3]; + p->rindex += sizeof(uint32_t); + + return 0; +@@ -733,7 +755,8 @@ + + /* avahi_log_debug("appended %u", size); */ + +- * (uint16_t*) l = htons((uint16_t) size); ++ l[0] = (uint8_t) ((uint16_t) size >> 8); ++ l[1] = (uint8_t) ((uint16_t) size); + + return t; + diff --git a/openembedded/packages/avahi/avahi_0.5.1.bb b/openembedded/packages/avahi/avahi_0.5.1.bb new file mode 100644 index 000000000..6a1a393e1 --- /dev/null +++ b/openembedded/packages/avahi/avahi_0.5.1.bb @@ -0,0 +1,53 @@ +DESCRIPTION = "Avahi implements the DNS-SD over Multicast DNS" +HOMEPAGE = "http://www.freedesktop.org/Software/Avahi" +LICENCE= "GPL" +DEPENDS = "expat libdaemon dbus-0.50" +RRECOMMENDS = "libnss-mdns" +SECTION = "net" +PRIORITY = "optional" +PR = "r0" + +SRC_URI = "http://www.freedesktop.org/~lennart/avahi-${PV}.tar.gz \ + file://alignment-fix.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 \ + ${datadir}/avahi/service-types" +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-mono --disable-mono-docs --disable-gtk --disable-qt3 --disable-qt4 --disable-python" +inherit autotools +inherit update-rc.d + +INITSCRIPT_PACKAGES = "avahi-daemon avahi-dnsconfd" +INITSCRIPT_NAME_avahi-daemon = "avahi-daemon" +INITSCRIPT_PARAMS_avahi-daemon = "defaults 21 19" +INITSCRIPT_NAME_avahi-dnsconfd = "avahi-dnsconfd" +INITSCRIPT_PARAMS_avahi-dnsconfd = "defaults 22 19" + +pkg_postinst_avahi-daemon () { + grep avahi /etc/group || addgroup avahi + grep avahi /etc/passwd || adduser --disabled-password --system --home /var/run/avahi-daemon --no-create-home avahi --ingroup avahi -g Avahi + /etc/init.d/dbus-1 force-reload +} + +pkg_postrm_avahi-daemon () { + deluser avahi || true + delgroup avahi || true +} + |