On Sat, May 29, 2010 at 11:08:45PM +0200, Remy Bohmer wrote: > Dibbler is an IPv6 DHCP package > > Signed-off-by: Remy Bohmer <li...@bohmer.net> > Signed-off-by: Bart vdr. Meulen <bartvdrmeu...@gmail.com> > --- > generic/etc/init.d/dibbler-client | 50 +++++++++++ > generic/etc/init.d/dibbler-relay | 50 +++++++++++ > generic/etc/init.d/dibbler-server | 50 +++++++++++ > patches/dibbler-0.7.3/fix-cross-compile.patch | 41 +++++++++ > patches/dibbler-0.7.3/merge-dns-search.patch | 31 +++++++ > patches/dibbler-0.7.3/series | 2 + > rules/dibbler.in | 68 ++++++++++++++ > rules/dibbler.make | 117 > +++++++++++++++++++++++++ > rules/initmethod-bbinit.in | 18 ++++ > rules/initmethod-bbinit.make | 18 ++++ > 10 files changed, 445 insertions(+), 0 deletions(-) > create mode 100644 generic/etc/init.d/dibbler-client > create mode 100644 generic/etc/init.d/dibbler-relay > create mode 100644 generic/etc/init.d/dibbler-server > create mode 100644 patches/dibbler-0.7.3/fix-cross-compile.patch > create mode 100644 patches/dibbler-0.7.3/merge-dns-search.patch > create mode 100644 patches/dibbler-0.7.3/series > create mode 100644 rules/dibbler.in > create mode 100644 rules/dibbler.make > > diff --git a/generic/etc/init.d/dibbler-client > b/generic/etc/init.d/dibbler-client > new file mode 100644 > index 0000000..11d2b17 > --- /dev/null > +++ b/generic/etc/init.d/dibbler-client > @@ -0,0 +1,50 @@ > +#! /bin/sh > +# > +# Starts/stops dibbler-client > +# > + > +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin > +DAEMON=/usr/sbin/dibbler-client > +NAME=dibbler-client > +DESC="DHCPv6 client" > +DAEMON_OPTS=run > + > +test -x $DAEMON || exit 0 > + > +# Include dibbler defaults if available > +if [ -f /etc/default/dibbler ] ; then > + . /etc/default/dibbler > +fi > + > +set -e > + > +case "$1" in > + start) > + echo -n "Starting $DESC: " > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + stop) > + echo -n "Stopping $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + echo "$NAME." > + ;; > + status) > + echo "Status $DESC: $NAME" > + $DAEMON status > + ;; > + restart|force-reload) > + echo -n "Restarting $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + sleep 1 > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + *) > + N=/etc/init.d/$NAME > + echo "Usage: $N {start|stop|restart|force-reload}" >&2 > + exit 1 > + ;; > +esac > + > +exit 0 > diff --git a/generic/etc/init.d/dibbler-relay > b/generic/etc/init.d/dibbler-relay > new file mode 100644 > index 0000000..2925358 > --- /dev/null > +++ b/generic/etc/init.d/dibbler-relay > @@ -0,0 +1,50 @@ > +#! /bin/sh > +# > +# Starts/stops dibbler-relay > +# > + > +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin > +DAEMON=/usr/sbin/dibbler-relay > +NAME=dibbler-relay > +DESC="DHCPv6 relay" > +DAEMON_OPTS=run > + > +test -x $DAEMON || exit 0 > + > +# Include dibbler defaults if available > +if [ -f /etc/default/dibbler ] ; then > + . /etc/default/dibbler > +fi > + > +set -e > + > +case "$1" in > + start) > + echo -n "Starting $DESC: " > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + stop) > + echo -n "Stopping $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + echo "$NAME." > + ;; > + status) > + echo "Status $DESC: $NAME" > + $DAEMON status > + ;; > + restart|force-reload) > + echo -n "Restarting $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + sleep 1 > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + *) > + N=/etc/init.d/$NAME > + echo "Usage: $N {start|stop|restart|force-reload}" >&2 > + exit 1 > + ;; > +esac > + > +exit 0 > diff --git a/generic/etc/init.d/dibbler-server > b/generic/etc/init.d/dibbler-server > new file mode 100644 > index 0000000..d03c0c0 > --- /dev/null > +++ b/generic/etc/init.d/dibbler-server > @@ -0,0 +1,50 @@ > +#! /bin/sh > +# > +# Starts/stops dibbler-client > +# > + > +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin > +DAEMON=/usr/sbin/dibbler-server > +NAME=dibbler-server > +DESC="DHCPv6 server" > +DAEMON_OPTS=run > + > +test -x $DAEMON || exit 0 > + > +# Include dibbler defaults if available > +if [ -f /etc/default/dibbler ] ; then > + . /etc/default/dibbler > +fi > + > +set -e > + > +case "$1" in > + start) > + echo -n "Starting $DESC: " > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + stop) > + echo -n "Stopping $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + echo "$NAME." > + ;; > + status) > + echo "Status $DESC: $NAME" > + $DAEMON status > + ;; > + restart|force-reload) > + echo -n "Restarting $DESC: " > + ($DAEMON stop 2>&1 > /dev/null; true) > + sleep 1 > + $DAEMON start 2>&1 > /dev/null > + echo "$NAME." > + ;; > + *) > + N=/etc/init.d/$NAME > + echo "Usage: $N {start|stop|restart|force-reload}" >&2 > + exit 1 > + ;; > +esac > + > +exit 0 > diff --git a/patches/dibbler-0.7.3/fix-cross-compile.patch > b/patches/dibbler-0.7.3/fix-cross-compile.patch > new file mode 100644 > index 0000000..41e509d > --- /dev/null > +++ b/patches/dibbler-0.7.3/fix-cross-compile.patch > @@ -0,0 +1,41 @@ > +Fix cross compilation of dibbler package > + > +Signed-off-by: Remy Bohmer <li...@bohmer.net> > +--- > + Makefile | 1 + > + Port-linux/utils.c | 3 ++- > + 2 files changed, 3 insertions(+), 1 deletion(-) > + > +Index: dibbler-0.7.3/Port-linux/utils.c > +=================================================================== > +--- dibbler-0.7.3.orig/Port-linux/utils.c > ++++ dibbler-0.7.3/Port-linux/utils.c > +@@ -14,6 +14,7 @@ > + * Rani Assaf <r...@magic.metawire.com> 980929: resolve addresses > + */ > + > ++#define GNU_SOURCE > + #include <stdio.h> > + #include <stdlib.h> > + #include <unistd.h> > +@@ -26,7 +27,7 @@ > + #include <arpa/inet.h> > + #include <resolv.h> > + #include <asm/types.h> > +-#include <linux/pkt_sched.h> > ++/*#include <linux/pkt_sched.h>*/ > + #include <time.h> > + #include <sys/time.h> > +
This doesn't look like a cross-compiling issue, what does this fix? > +Index: dibbler-0.7.3/Makefile > +=================================================================== > +--- dibbler-0.7.3.orig/Makefile > ++++ dibbler-0.7.3/Makefile > +@@ -428,6 +428,7 @@ install: > + $(INSTALL) -m 644 doc/dibbler-devel.pdf > $(INST_DOCDIR)/dibbler/dibbler-devel.pdf > + @echo "[INSTALL] CHANGELOG" > + $(INSTALL) -m 644 CHANGELOG $(INST_DOCDIR)/dibbler/changelog > ++ @rm -f $(INST_DOCDIR)/dibbler/changelog.gz > + gzip -9 $(INST_DOCDIR)/dibbler/changelog gzip -9 -c CHANGELOG > changelog.gz $(INSTALL) -m 644 changelog.gz $(INST_DOCDIR)/dibbler/changelog.gz > + > + DIR=`basename $(PWD)` > diff --git a/patches/dibbler-0.7.3/merge-dns-search.patch > b/patches/dibbler-0.7.3/merge-dns-search.patch > new file mode 100644 > index 0000000..cdabecc > --- /dev/null > +++ b/patches/dibbler-0.7.3/merge-dns-search.patch > @@ -0,0 +1,31 @@ > +Merge DNS search Can you please add a longer comment? I don't understand what this does. > + > +Signed-off-by: Remy Bohmer <li...@bohmer.net> > +--- > + Port-linux/lowlevel-options-linux.c | 13 ++++++++----- > + 1 file changed, 8 insertions(+), 5 deletions(-) > + > +Index: dibbler-0.7.3/Port-linux/lowlevel-options-linux.c > +=================================================================== > +--- dibbler-0.7.3.orig/Port-linux/lowlevel-options-linux.c > ++++ dibbler-0.7.3/Port-linux/lowlevel-options-linux.c > +@@ -199,11 +199,14 @@ int domain_add(const char* ifname, int i > + return LOWLEVEL_ERROR_FILE; > + while (fgets(buf,511,f)) { > + if ( (!found) && (strstr(buf, "search")) ) { > +- if (strlen(buf)) > +- buf[strlen(buf)-1]=0; > +- fprintf(f2, "%s %s\n", buf, domain); > +- found = 1; > +- continue; > ++ if (!strstr(buf,domain)) { > ++ if (strlen(buf)) > ++ buf[strlen(buf)-1]=0; > ++ fprintf(f2, "%s %s\n", buf, domain); > ++ found = 1; > ++ continue; > ++ } > ++ > + } > + fprintf(f2,"%s",buf); > + } > diff --git a/patches/dibbler-0.7.3/series b/patches/dibbler-0.7.3/series > new file mode 100644 > index 0000000..c64fa36 > --- /dev/null > +++ b/patches/dibbler-0.7.3/series > @@ -0,0 +1,2 @@ > +merge-dns-search.patch > +fix-cross-compile.patch > diff --git a/rules/dibbler.in b/rules/dibbler.in > new file mode 100644 > index 0000000..f3b2a8a > --- /dev/null > +++ b/rules/dibbler.in > @@ -0,0 +1,68 @@ > +## SECTION=networking > + > +menuconfig DIBBLER > + tristate > + prompt "dibbler (DHCPv6) " > + help > + Dibbler is a portable DHCPv6 implementation. > + It supports stateful (i.e. IPv6 address granting) as well as > + stateless (i.e. option granting) autoconfiguration for IPv6. > + > +if DIBBLER > + > +config DIBBLER_SERVER > + bool > + prompt "Install server" > + help > + The Dibbler server supports both stateful (i.e. IPv6 address > + granting) as well as stateless (i.e. options granting) > + auto-configuration modes of the DHCPv6 protocol. Relays are also > + supported. This package allows IPv6 hosts to be automatically > + configured on the network. > + > +config DIBBLER_SERVER_STARTSCRIPT > + bool > + default y > + prompt "install /etc/init.d/dibbler-server" > + depends on DIBBLER_SERVER > + help > + Install the startup script for bbinit. > + > +config DIBBLER_CLIENT > + bool > + prompt "Install client" > + help > + The Dibbler client supports both stateful (i.e. IPv6 address > + granting) as well as stateless (i.e. option granting) > + auto-configuration modes of the DHCPv6 protocol. Besides basic > + capabilities, it supports various DHCPv6 extensions, for instance > + option renewal. Installing Dibbler allows obtaining IPv6 addresses and > + options from a DHCPv6 server. > + > +config DIBBLER_CLIENT_STARTSCRIPT > + bool > + default y > + prompt "install /etc/init.d/dibbler-client" > + depends on DIBBLER_CLIENT > + help > + Install the startup script for bbinit. > + > +config DIBBLER_RELAY > + bool > + prompt "Install relay" > + help > + Relays are used as proxies between servers and clients. Their main > + advantage is the ability to support multiple remote links using only > + one server. Installing Dibbler relay allows serving multiple, not > + physically connected, links with one DHCPv6 server. > + > +config DIBBLER_RELAY_STARTSCRIPT > + bool > + default y > + prompt "install /etc/init.d/dibbler-relay" > + depends on DIBBLER_RELAY > + help > + Install the startup script for bbinit. > + > +endif > + > diff --git a/rules/dibbler.make b/rules/dibbler.make > new file mode 100644 > index 0000000..be0e6fa > --- /dev/null > +++ b/rules/dibbler.make > @@ -0,0 +1,117 @@ > +# -*-makefile-*- > +# > +# Copyright (C) 2010 by Remy Bohmer <li...@bohmer.net> > +# > +# See CREDITS for details about who has contributed to this project. > +# > +# For further information about the PTXdist project and license conditions > +# see the README file. > +# > + > +# > +# We provide this package > +# > +PACKAGES-$(PTXCONF_DIBBLER) += dibbler > + > +# > +# Paths and names > +# > +DIBBLER_VERSION := 0.7.3 > +DIBBLER := dibbler-$(DIBBLER_VERSION) > +DIBBLER_SUFFIX := tar.gz > +DIBBLER_URL := > http://klub.com.pl/dhcpv6/dibbler/$(DIBBLER)-src.$(DIBBLER_SUFFIX) > +DIBBLER_SOURCE := $(SRCDIR)/$(DIBBLER)-src.$(DIBBLER_SUFFIX) > +DIBBLER_DIR := $(BUILDDIR)/$(DIBBLER) > +DIBBLER_LICENSE := GPLv2 > + > +# > ---------------------------------------------------------------------------- > +# Get > +# > ---------------------------------------------------------------------------- > + > +$(DIBBLER_SOURCE): > + @$(call targetinfo) > + @$(call get, DIBBLER) > + > +# > ---------------------------------------------------------------------------- > +# Prepare > +# > ---------------------------------------------------------------------------- > + > +DIBBLER_MAKE_ENV := $(CROSS_ENV_CC) $(CROSS_ENV_CXX) > +DIBBLER_MAKE_OPT := CHOST=$(PTXCONF_GNU_TARGET) > +DIBBLER_MAKE_PAR := NO > + > +# > +# autoconf > +# > +# Remove the pre-configure of a sub-component, so configure is > +# called in make for correct cross-compilation > +$(STATEDIR)/dibbler.prepare: > + @$(call targetinfo) > + @rm -f $(DIBBLER_DIR)/poslib/config.h > + @$(call touch) > + > +# > ---------------------------------------------------------------------------- > +# Install > +# > ---------------------------------------------------------------------------- > + > +DIBBLER_INSTALL_OPT := \ > + INST_WORKDIR=$(DIBBLER_PKGDIR)/var/lib/dibbler \ > + INST_MANDIR=$(DIBBLER_PKGDIR)/usr/share/man \ > + INST_DOCDIR=$(DIBBLER_PKGDIR)/usr/share/doc \ > + INST_BINDIR=$(DIBBLER_PKGDIR)/usr/sbin \ > + INST_CONFDIR=$(DIBBLER_PKGDIR)/etc/dibbler \ > + install > + > +# > ---------------------------------------------------------------------------- > +# Target-Install > +# > ---------------------------------------------------------------------------- > + > +$(STATEDIR)/dibbler.targetinstall: > + @$(call targetinfo) > + > + @$(call install_init, dibbler) > + @$(call install_fixup, dibbler,PACKAGE,dibbler) > + @$(call install_fixup, dibbler,PRIORITY,optional) > + @$(call install_fixup, dibbler,VERSION,$(DIBBLER_VERSION)) > + @$(call install_fixup, dibbler,SECTION,base) > + @$(call install_fixup, dibbler,AUTHOR,"Remy Bohmer <li...@bohmer.net>") > + @$(call install_fixup, dibbler,DEPENDS,) > + @$(call install_fixup, dibbler,DESCRIPTION,missing) > + > + @$(call install_copy, dibbler, 0, 0, 0755, /etc/dibbler) > + @$(call install_copy, dibbler, 0, 0, 0755, /var/lib/dibbler) > + @$(call install_copy, dibbler, 0, 0, 0755, /var/log/dibbler) > + > +ifdef PTXCONF_DIBBLER_SERVER > + @$(call install_copy, dibbler, 0, 0, 0755, -, /usr/sbin/dibbler-server) > + @$(call install_copy, dibbler, 0, 0, 0644, -, /etc/dibbler/server.conf) > + @$(call install_alternative, dibbler, 0, 0, 0644, > /etc/dibbler/server-stateless.conf) > +endif > + > +ifdef PTXCONF_DIBBLER_SERVER_STARTSCRIPT > + @$(call install_alternative, dibbler, 0, 0, 0755, > /etc/init.d/dibbler-server) > +endif > + > +ifdef PTXCONF_DIBBLER_CLIENT > + @$(call install_copy, dibbler, 0, 0, 0755, -, /usr/sbin/dibbler-client) > + @$(call install_alternative, dibbler, 0, 0, 0644, > /etc/dibbler/client.conf) > + @$(call install_alternative, dibbler, 0, 0, 0644, > /etc/dibbler/client-stateless.conf) > +endif > + > +ifdef PTXCONF_DIBBLER_CLIENT_STARTSCRIPT > + @$(call install_alternative, dibbler, 0, 0, 0755, > /etc/init.d/dibbler-client) > +endif > + > +ifdef PTXCONF_DIBBLER_RELAY > + @$(call install_copy, dibbler, 0, 0, 0755, -, /usr/sbin/dibbler-relay) > + @$(call install_alternative, dibbler, 0, 0, 0644, > /etc/dibbler/relay.conf) > +endif > + > +ifdef PTXCONF_DIBBLER_RELAY_STARTSCRIPT > + @$(call install_alternative, dibbler, 0, 0, 0755, > /etc/init.d/dibbler-relay) > +endif > + > + @$(call install_finish, dibbler) > + @$(call touch) > + > +# vim: syntax=make > diff --git a/rules/initmethod-bbinit.in b/rules/initmethod-bbinit.in > index 7045263..ffde7bf 100644 > --- a/rules/initmethod-bbinit.in > +++ b/rules/initmethod-bbinit.in > @@ -309,6 +309,24 @@ config INITMETHOD_BBINIT_LINK_SYSCTL > prompt "sysctl" > default "S17sysctl" > > +config INITMETHOD_BBINIT_LINK_DIBBLER_SERVER > + string > + depends on DIBBLER_SERVER_STARTSCRIPT > + prompt "dibbler-server" > + default "S27dibbler-server" > + > +config INITMETHOD_BBINIT_LINK_DIBBLER_CLIENT > + string > + depends on DIBBLER_CLIENT_STARTSCRIPT > + prompt "dibbler-client" > + default "S27dibbler-client" > + > +config INITMETHOD_BBINIT_LINK_DIBBLER_RELAY > + string > + depends on DIBBLER_RELAY_STARTSCRIPT > + prompt "dibbler-relay" > + default "S27dibbler-relay" > + > endmenu > > endif > diff --git a/rules/initmethod-bbinit.make b/rules/initmethod-bbinit.make > index 7b78899..ccf042c 100644 > --- a/rules/initmethod-bbinit.make > +++ b/rules/initmethod-bbinit.make > @@ -369,6 +369,24 @@ ifneq ($(call > remove_quotes,$(PTXCONF_INITMETHOD_BBINIT_LINK_SYSCTL)),) > /etc/rc.d/$(PTXCONF_INITMETHOD_BBINIT_LINK_SYSCTL)) > endif > > +ifneq ($(call > remove_quotes,$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_SERVER)),) > + @$(call install_link, initmethod-bbinit, \ > + ../init.d/dibbler-server, \ > + /etc/rc.d/$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_SERVER)) > +endif > + > +ifneq ($(call > remove_quotes,$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_CLIENT)),) > + @$(call install_link, initmethod-bbinit, \ > + ../init.d/dibbler-client, \ > + /etc/rc.d/$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_CLIENT)) > +endif > + > +ifneq ($(call > remove_quotes,$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_RELAY)),) > + @$(call install_link, initmethod-bbinit, \ > + ../init.d/dibbler-relay, \ > + /etc/rc.d/$(PTXCONF_INITMETHOD_BBINIT_LINK_DIBBLER_RELAY)) > +endif > + > ifneq ($(call > remove_quotes,$(PTXCONF_INITMETHOD_BBINIT_LINK_FAKE_OVERLAYFS)),) > @$(call install_link, initmethod-bbinit, \ > ../init.d/fake-overlayfs, \ > -- > 1.7.0.4 > > > -- > ptxdist mailing list > ptxdist@pengutronix.de > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de