radvd: Add init scripts and sample configurations to documentation.
authorJamie Lenehan <lenehan@twibble.org>
Fri, 16 Mar 2007 01:49:48 +0000 (01:49 +0000)
committerJamie Lenehan <lenehan@twibble.org>
Fri, 16 Mar 2007 01:49:48 +0000 (01:49 +0000)
- The init script, radvd.init, is directly from the debian package.
- The radvd.conf.empty is from the redhat specs dir in the 1.0
  sources - added here rather then using it from the package because
  it wasn't present in the 0.7.2 and I want to avoid breaking that
  version.

packages/radvd/files/.mtn2git_empty [new file with mode: 0644]
packages/radvd/files/radvd.conf.empty [new file with mode: 0644]
packages/radvd/files/radvd.init [new file with mode: 0755]
packages/radvd/files/volatiles.03_radvd [new file with mode: 0644]
packages/radvd/radvd.inc
packages/radvd/radvd_0.7.2.bb
packages/radvd/radvd_1.0.bb

diff --git a/packages/radvd/files/.mtn2git_empty b/packages/radvd/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/radvd/files/radvd.conf.empty b/packages/radvd/files/radvd.conf.empty
new file mode 100644 (file)
index 0000000..c006f86
--- /dev/null
@@ -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/packages/radvd/files/radvd.init b/packages/radvd/files/radvd.init
new file mode 100755 (executable)
index 0000000..5415230
--- /dev/null
@@ -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/packages/radvd/files/volatiles.03_radvd b/packages/radvd/files/volatiles.03_radvd
new file mode 100644 (file)
index 0000000..89256a4
--- /dev/null
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d radvd root 0755 /var/run/radvd none
index 745b37d..f73f8c0 100644 (file)
@@ -4,8 +4,38 @@ SECTION = "console/network"
 LICENSE = "BSD"
 DEPENDS = "flex-native"
 
-SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz;md5sum=${MD5SUM}"
+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
+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
+}
index 6f22484..e22cc5e 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
 
 SRC_URI_append += "file://automake.patch;patch=1 "
 
index 87422a2..6d44ff2 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r0"
+PR = "r1"
 
 require radvd.inc