Patchwork [meta-networking,v2] zeroconf: add from OE-Core

login
register
mail settings
Submitter Paul Eggleton
Date Sept. 10, 2012, 12:06 p.m.
Message ID <1347278779-21232-1-git-send-email-paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/36191/
State Accepted
Commit b8654266721fa1a06803929e025c2b85b33972ca
Headers show

Comments

Paul Eggleton - Sept. 10, 2012, 12:06 p.m.
This is about to be removed from OE-Core, so add it here for those that
still want it.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 .../zeroconf/zeroconf/compilefix.patch             |   19 ++++++++
 .../zeroconf/zeroconf/debian-zeroconf              |   51 ++++++++++++++++++++
 .../zeroconf/zeroconf/zeroconf-default             |   17 +++++++
 .../recipes-protocols/zeroconf/zeroconf_0.9.bb     |   34 +++++++++++++
 4 files changed, 121 insertions(+)
 create mode 100644 meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch
 create mode 100644 meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf
 create mode 100644 meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default
 create mode 100644 meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb

Patch

diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch b/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch
new file mode 100644
index 0000000..328e574
--- /dev/null
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/compilefix.patch
@@ -0,0 +1,19 @@ 
+| zeroconf.c: In function 'main':
+| zeroconf.c:145: error: 'PATH_MAX' undeclared (first use in this function)
+
+RP - 4/9/09
+
+Upstream-Status: Pending
+
+Index: zeroconf-0.9/zeroconf.c
+===================================================================
+--- zeroconf-0.9.orig/zeroconf.c	2009-09-04 10:05:25.000000000 +0100
++++ zeroconf-0.9/zeroconf.c	2009-09-04 10:05:42.000000000 +0100
+@@ -33,6 +33,7 @@
+ #include <net/if_arp.h>
+ #include <sys/time.h>
+ #include <signal.h>
++#include <limits.h>
+ 
+ #include "delay.h"
+ 
diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf b/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf
new file mode 100644
index 0000000..c3705d2
--- /dev/null
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/debian-zeroconf
@@ -0,0 +1,51 @@ 
+#!/bin/sh
+
+if [ ! -x /usr/sbin/zeroconf ]; then
+    exit 0
+fi
+
+# IPv4 link-local addresses (zeroconf) are
+# only applicable on the 'inet' address family
+[ "X$ADDRFAM" != "Xinet" ] && exit 0
+
+# However there are some methods where it doesn't
+# make any sense to configure an IPv4LL address
+
+# not on loopback
+[ "X$METHOD" = "Xloopback" ] && exit 0
+
+# not on ppp or wvdial either
+[ "X$METHOD" = "Xppp" ] && exit 0
+[ "X$METHOD" = "Xwvdial" ] && exit 0
+
+# The administrator may have blacklisted interfaces
+# or only want zeroconf in a fallback situation
+[ -f /etc/default/zeroconf ] &&
+    . /etc/default/zeroconf
+
+[ -n "$DISABLE" ] && exit 0
+
+for BLACK in $IFBLACKLIST; do
+    case $IFACE in
+	$BLACK)
+	exit 0
+	;;
+    esac
+done
+
+# should we only allocate an address if we do not already have one?
+if [ -n "$FALLBACK" ]; then
+    /bin/ip addr show $IFACE scope global | grep -q "inet"
+    IP=$?
+    if [ $IP -eq 0 ]; then
+        /bin/ip route add 169.254.0.0/16 dev $IFACE
+        exit 0
+    fi
+fi
+
+# otherwise, run if we aren't already going
+if [ ! -r /var/run/zeroconf.$IFACE.pid ]; then
+	/usr/sbin/zeroconf -i $IFACE
+fi
+
+exit 0
diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default b/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default
new file mode 100644
index 0000000..cc07b27
--- /dev/null
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf/zeroconf-default
@@ -0,0 +1,17 @@ 
+# Default for zeroconf
+
+# disable zeroconf
+# If you want to disable zeroconf completely, uncomment the following line
+# this may be useful if you are debugging zeroconf or starting it manually
+#DISABLE=yes
+
+# black-listed interfaces
+# Interfaces which you never wish to have zeroconf run on should
+# be listed here. e.g. "eth2 wlan1" in a space seperated string
+IFBLACKLIST=""
+
+# fallback only
+# If you would only like a link-local address if you were unable to
+# obtain an address via DHCP then uncomment the following line
+#FALLBACK=yes
+
diff --git a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
new file mode 100644
index 0000000..f755940
--- /dev/null
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
@@ -0,0 +1,34 @@ 
+SUMMARY = "IPv4 link-local address allocator"
+DESCRIPTION = "Zeroconf is a program that is used to claim IPv4 \
+link-local addresses. IPv4 link-local addresses are useful when setting \
+up ad-hoc networking between devices without the involvement of a either \
+a DHCP server or network administrator. \
+These addresses are allocated from the 169.254.0.0/16 address range and \
+are normally attached to each Ethernet device in your computer. \
+Addresses are assigned randomly by each host and, in case of collision, \
+both hosts (are supposed to) renumber."
+AUTHOR = "Anand Kumria <wildfire@progsoc.uts.edu.au>"
+HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
+                    file://zeroconf.c;beginline=1;endline=13;md5=a5bada96e1e34b08eb7446b28e2630b2"
+SECTION = "net"
+
+PR = "r1"
+
+SRC_URI = "http://www.progsoc.org/~wildfire/zeroconf/download/${BPN}-${PV}.tar.gz \
+           file://compilefix.patch \
+           file://zeroconf-default \
+           file://debian-zeroconf"
+
+SRC_URI[md5sum] = "bdafb16b008ebb5633e4e581f77821d2"
+SRC_URI[sha256sum] = "a8c74df127753e2310fa1e072f3c9ca44a404bb0bbce9cfec7a84c6dff8bec7b"
+
+do_install () {
+	install -d ${D}${sbindir}
+	install -d ${D}${sysconfdir}/network/if-up.d
+	install -d ${D}${sysconfdir}/default
+	install -c -m 755 ${S}/zeroconf ${D}${sbindir}/zeroconf
+	install -c -m 755 ${WORKDIR}/debian-zeroconf ${D}${sysconfdir}/network/if-up.d/zeroconf
+	install -c ${WORKDIR}/zeroconf-default ${D}${sysconfdir}/default/zeroconf
+}