summaryrefslogtreecommitdiff
path: root/openembedded/packages/avahi
diff options
context:
space:
mode:
Diffstat (limited to 'openembedded/packages/avahi')
-rw-r--r--openembedded/packages/avahi/avahi-0.5.1/alignment-fix.patch96
-rw-r--r--openembedded/packages/avahi/avahi_0.5.1.bb53
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
+}
+