summaryrefslogtreecommitdiff
path: root/recipes/radvd
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/radvd')
-rw-r--r--recipes/radvd/files/radvd.conf.empty18
-rwxr-xr-xrecipes/radvd/files/radvd.init115
-rw-r--r--recipes/radvd/files/volatiles.03_radvd2
-rw-r--r--recipes/radvd/radvd-0.7.2/automake.patch28
-rw-r--r--recipes/radvd/radvd.inc41
-rw-r--r--recipes/radvd/radvd_0.7.2.bb7
-rw-r--r--recipes/radvd/radvd_1.0.bb5
7 files changed, 216 insertions, 0 deletions
diff --git a/recipes/radvd/files/radvd.conf.empty b/recipes/radvd/files/radvd.conf.empty
new file mode 100644
index 0000000000..c006f86313
--- /dev/null
+++ b/recipes/radvd/files/radvd.conf.empty
@@ -0,0 +1,18 @@
+# NOTE: there is no such thing as a working "by-default" configuration file.
+# At least the prefix needs to be specified. Please consult the radvd.conf(5)
+# man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help.
+#
+#
+#interface eth0
+#{
+# AdvSendAdvert on;
+# MinRtrAdvInterval 30;
+# MaxRtrAdvInterval 100;
+# prefix 2001:db8:1:0::/64
+# {
+# AdvOnLink on;
+# AdvAutonomous on;
+# AdvRouterAddr off;
+# };
+#
+#};
diff --git a/recipes/radvd/files/radvd.init b/recipes/radvd/files/radvd.init
new file mode 100755
index 0000000000..5415230285
--- /dev/null
+++ b/recipes/radvd/files/radvd.init
@@ -0,0 +1,115 @@
+#! /bin/sh
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/radvd
+NAME=radvd
+DESC=radvd
+CONFIG=/etc/radvd.conf
+SAVED_SETTINGS=/var/run/radvd/saved-settings
+PIDFILE=/var/run/radvd/radvd.pid
+OPTIONS="-u radvd -p $PIDFILE"
+
+test -x $DAEMON || exit 0
+
+set -e
+
+# Check for IPv6 support in kernel
+if test \! -e /proc/sys/net/ipv6; then
+ echo "IPv6 support must be enabled in the kernel for $DESC to work."
+ exit
+fi
+
+save_settings()
+{
+ local file=$1
+
+ rm -f $file
+ for if_conf in /proc/sys/net/ipv6/conf/*; do
+ echo -e "$if_conf/forwarding\t `cat $if_conf/forwarding`" >> $file
+ done
+ return 0
+}
+
+restore_settings()
+{
+ file=$1
+
+ if [ ! -f $file ]; then
+ echo "$0: warning: cannot restore settings"
+ return
+ fi
+
+ (
+ while read f value; do
+ if [ -w $f ]; then
+ echo $value > $f
+ fi
+ done
+ ) < $file
+}
+
+chkconfig() {
+ if [ ! -e $CONFIG -o ! -s $CONFIG ]; then
+ echo ""
+ echo "* $CONFIG does not exist or is empty."
+ echo "* See /usr/share/doc/radvd/examples/simple-radvd.conf for a simple"
+ echo "* configuration suitable for most systems, and radvd.conf(5)"
+ echo "* for configuration file syntax. radvd will *not* be started."
+ exit 0
+ fi
+}
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ chkconfig
+ save_settings $SAVED_SETTINGS
+
+ # We must enable IPv6 forwarding for radvd to work
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+
+ # Check for stale pidfile; radvd won't start if one is lying around
+ if [ -f $PIDFILE ] && ! ps `cat $PIDFILE` > /dev/null; then
+ rm -f $PIDFILE
+ fi
+ if ! start-stop-daemon --oknodo --start --pidfile $PIDFILE \
+ --exec $DAEMON -- $OPTIONS; then
+ echo "failed." && exit 1
+ fi
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --oknodo --stop --pidfile $PIDFILE \
+ --exec $DAEMON
+ restore_settings $SAVED_SETTINGS
+ rm -f $SAVED_SETTINGS
+ echo "$NAME."
+ ;;
+ reload|force-reload)
+ echo "Reloading $DESC configuration files."
+ start-stop-daemon --stop --signal HUP --quiet --pidfile \
+ $PIDFILE --exec $DAEMON
+ ;;
+ restart)
+ chkconfig
+ echo -n "Restarting $DESC: "
+ if ! start-stop-daemon --stop --quiet --pidfile \
+ $PIDFILE --exec $DAEMON; then
+ # stop failed, so we were not running
+ save_settings $SAVED_SETTINGS
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+ fi
+ sleep 1
+ start-stop-daemon --start --quiet --pidfile \
+ $PIDFILE --exec $DAEMON -- $OPTIONS
+ echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/recipes/radvd/files/volatiles.03_radvd b/recipes/radvd/files/volatiles.03_radvd
new file mode 100644
index 0000000000..89256a40e4
--- /dev/null
+++ b/recipes/radvd/files/volatiles.03_radvd
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d radvd root 0755 /var/run/radvd none
diff --git a/recipes/radvd/radvd-0.7.2/automake.patch b/recipes/radvd/radvd-0.7.2/automake.patch
new file mode 100644
index 0000000000..21f9e0fca2
--- /dev/null
+++ b/recipes/radvd/radvd-0.7.2/automake.patch
@@ -0,0 +1,28 @@
+--- radvd-0.7.2/Makefile.am.old 2003-12-24 21:22:03.000000000 +0000
++++ radvd-0.7.2/Makefile.am 2003-12-24 21:21:28.000000000 +0000
+@@ -18,7 +18,7 @@
+ -DPATH_RADVD_LOG=\"$(PATH_RADVD_LOG)\" -DLOG_FACILITY=$(LOG_FACILITY) \
+ -DPATH_RADVD_PID=\"$(PATH_RADVD_PID)\" \
+ -DVERSION=\"$(VERSION)\" -DINET6=1
+-INCLUDES+=-I$(srcdir) -I.
++INCLUDES=-I$(srcdir) -I.
+
+ ########################################################################
+
+--- radvd-0.7.2/configure.in~ 2002-06-15 11:25:04.000000000 +0100
++++ radvd-0.7.2/configure.in 2003-12-24 22:29:14.000000000 +0000
+@@ -124,9 +124,11 @@
+ AC_CHECK_HEADERS(sys/time.h)
+ AC_HEADER_TIME
+
+-AC_CHECK_HEADER(netinet/ipv6.h, hdrfound=yes,
+- AC_CHECK_HEADER(netinet/ip6.h, hdrfound=yes, hdrfound=no)
+-)
++AC_CHECK_HEADER(netinet/ipv6.h, hdrfound=yes, hdrfound=no)
++if test "$hdrfound" = no
++then
++AC_CHECK_HEADER(netinet/ip6.h, hdrfound=yes, hdrfound=no)
++fi
+ if test "$hdrfound" = no
+ then
+ AC_MSG_CHECKING(for netinet/ip6.h or ipv6.h in /usr/inet6/include)
diff --git a/recipes/radvd/radvd.inc b/recipes/radvd/radvd.inc
new file mode 100644
index 0000000000..f73f8c0583
--- /dev/null
+++ b/recipes/radvd/radvd.inc
@@ -0,0 +1,41 @@
+DESCRIPTION = "IPv6 router advertisement daemon"
+HOMEPAGE = "http://www.litech.org/radvd/"
+SECTION = "console/network"
+LICENSE = "BSD"
+DEPENDS = "flex-native"
+
+SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz;md5sum=${MD5SUM} \
+ file://radvd.init \
+ file://volatiles.03_radvd \
+ file://radvd.conf.empty"
+
+S = "${WORKDIR}/radvd-${PV}"
+
+inherit autotools update-rc.d
+
+do_install_append () {
+ install -m 0755 -d ${D}${sysconfdir}/init.d \
+ ${D}${sysconfdir}/default/volatiles \
+ ${D}${docdir}/radvd
+ # Install init script and volatiles
+ install -m 0755 ${WORKDIR}/radvd.init ${D}${sysconfdir}/init.d/radvd
+ install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd
+ # Initial configuration
+ # install -m 0644 ${WORKDIR}/radvd.conf.empty ${D}${sysconfdir}/radvd.conf
+ # Documentation
+ for i in ${WORKDIR}/radvd.conf.empty radvd.conf.example README; do \
+ install -m 0644 $i ${D}${docdir}/radvd; \
+ done
+}
+
+#CONFFILES_${PN} = "${sysconfdir}/radvd.conf"
+
+INITSCRIPT_NAME = "radvd"
+INITSCRIPT_PARAMS = "defaults 20 80"
+
+pkg_postinst_${PN} () {
+ grep -q radvd: /etc/passwd || \
+ adduser --disabled-password --home=/var/run/radvd/ --system \
+ --ingroup nogroup --no-create-home -g "IPv6 router advertisement daemon" radvd
+ /etc/init.d/populate-volatile.sh update
+}
diff --git a/recipes/radvd/radvd_0.7.2.bb b/recipes/radvd/radvd_0.7.2.bb
new file mode 100644
index 0000000000..e22cc5e96b
--- /dev/null
+++ b/recipes/radvd/radvd_0.7.2.bb
@@ -0,0 +1,7 @@
+PR = "r2"
+
+SRC_URI_append += "file://automake.patch;patch=1 "
+
+require radvd.inc
+
+MD5SUM = "26ea468b2323e44cf827ae5f84d18dc8"
diff --git a/recipes/radvd/radvd_1.0.bb b/recipes/radvd/radvd_1.0.bb
new file mode 100644
index 0000000000..6d44ff2f94
--- /dev/null
+++ b/recipes/radvd/radvd_1.0.bb
@@ -0,0 +1,5 @@
+PR = "r1"
+
+require radvd.inc
+
+MD5SUM = "8bce4a21757cf069f5a69e2f9bee9e5b"