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

login
register
mail settings
Submitter Paul Eggleton
Date Sept. 9, 2012, 8:56 p.m.
Message ID <1347224217-2829-1-git-send-email-paul.eggleton@linux.intel.com>
Download mbox | patch
Permalink /patch/36175/
State Accepted
Headers show

Comments

Paul Eggleton - Sept. 9, 2012, 8:56 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 ++++++++
 .../recipes-misc/zeroconf/zeroconf/debian-zeroconf |   51 ++++++++++++++++++++
 .../zeroconf/zeroconf/zeroconf-default             |   17 +++++++
 .../recipes-misc/zeroconf/zeroconf_0.9.bb          |   34 +++++++++++++
 4 files changed, 121 insertions(+)
 create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch
 create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/debian-zeroconf
 create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/zeroconf-default
 create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf_0.9.bb
Joe MacDonald - Sept. 10, 2012, 11:34 a.m.
[[meta-networking][PATCH] zeroconf: add from OE-Core] On 12.09.09 (Sun 21:56) Paul Eggleton wrote:

> This is about to be removed from OE-Core, so add it here for those that
> still want it.
>

I've wondered about this, considering how long ago my original proposal
was and we haven't really gotten into the bulk of the migrations I'd
planned on but if there's no objection to the original recipe directory
structure I'd originally proposed, I think this would make sense to live
in recipes-protocols/.

-J.

> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
> ---
>  .../zeroconf/zeroconf/compilefix.patch             |   19 ++++++++
>  .../recipes-misc/zeroconf/zeroconf/debian-zeroconf |   51 ++++++++++++++++++++
>  .../zeroconf/zeroconf/zeroconf-default             |   17 +++++++
>  .../recipes-misc/zeroconf/zeroconf_0.9.bb          |   34 +++++++++++++
>  4 files changed, 121 insertions(+)
>  create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch
>  create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/debian-zeroconf
>  create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf/zeroconf-default
>  create mode 100644 meta-networking/recipes-misc/zeroconf/zeroconf_0.9.bb
> 
> diff --git a/meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch b/meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch
> new file mode 100644
> index 0000000..328e574
> --- /dev/null
> +++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf/debian-zeroconf b/meta-networking/recipes-misc/zeroconf/zeroconf/debian-zeroconf
> new file mode 100644
> index 0000000..c3705d2
> --- /dev/null
> +++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf/zeroconf-default b/meta-networking/recipes-misc/zeroconf/zeroconf/zeroconf-default
> new file mode 100644
> index 0000000..cc07b27
> --- /dev/null
> +++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf_0.9.bb b/meta-networking/recipes-misc/zeroconf/zeroconf_0.9.bb
> new file mode 100644
> index 0000000..f755940
> --- /dev/null
> +++ b/meta-networking/recipes-misc/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
> +}
Paul Eggleton - Sept. 10, 2012, 11:59 a.m.
On Monday 10 September 2012 07:34:39 Joe MacDonald wrote:
> [[meta-networking][PATCH] zeroconf: add from OE-Core] On 12.09.09 (Sun 
21:56) Paul Eggleton wrote:
> > This is about to be removed from OE-Core, so add it here for those that
> > still want it.
> 
> I've wondered about this, considering how long ago my original proposal
> was and we haven't really gotten into the bulk of the migrations I'd
> planned on but if there's no objection to the original recipe directory
> structure I'd originally proposed, I think this would make sense to live
> in recipes-protocols/.

Sounds reasonable; I'll sent a v2.

Cheers,
Paul

Patch

diff --git a/meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch b/meta-networking/recipes-misc/zeroconf/zeroconf/compilefix.patch
new file mode 100644
index 0000000..328e574
--- /dev/null
+++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf/debian-zeroconf b/meta-networking/recipes-misc/zeroconf/zeroconf/debian-zeroconf
new file mode 100644
index 0000000..c3705d2
--- /dev/null
+++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf/zeroconf-default b/meta-networking/recipes-misc/zeroconf/zeroconf/zeroconf-default
new file mode 100644
index 0000000..cc07b27
--- /dev/null
+++ b/meta-networking/recipes-misc/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-misc/zeroconf/zeroconf_0.9.bb b/meta-networking/recipes-misc/zeroconf/zeroconf_0.9.bb
new file mode 100644
index 0000000..f755940
--- /dev/null
+++ b/meta-networking/recipes-misc/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
+}