diff options
Diffstat (limited to 'recipes/radvd')
-rw-r--r-- | recipes/radvd/files/radvd.conf.empty | 18 | ||||
-rwxr-xr-x | recipes/radvd/files/radvd.init | 115 | ||||
-rw-r--r-- | recipes/radvd/files/volatiles.03_radvd | 2 | ||||
-rw-r--r-- | recipes/radvd/radvd-0.7.2/automake.patch | 28 | ||||
-rw-r--r-- | recipes/radvd/radvd.inc | 41 | ||||
-rw-r--r-- | recipes/radvd/radvd_0.7.2.bb | 7 | ||||
-rw-r--r-- | recipes/radvd/radvd_1.0.bb | 5 |
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" |