diff options
Diffstat (limited to 'import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd')
6 files changed, 221 insertions, 0 deletions
diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default new file mode 100644 index 000000000..7cb73c771 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.default @@ -0,0 +1 @@ +OPTIONS="-u radvd" diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init new file mode 100755 index 000000000..8b26317ee --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.init @@ -0,0 +1,135 @@ +#! /bin/sh +# +### BEGIN INIT INFO +# Provides: radvd +# Required-Start: $remote_fs $named $syslog +# Required-Stop: $remote_fs $named $syslog +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Description: router advertisement daemon +### END INIT INFO + +# Source function library. +. /etc/init.d/functions + +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/radvd.conf.example 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: " + if ! [ -f $PIDFILE ] ; then + echo "not running." + exit 0 + fi + start-stop-daemon --oknodo --stop --pidfile $PIDFILE \ + --exec $DAEMON + restore_settings $SAVED_SETTINGS + rm -f $SAVED_SETTINGS + echo "$NAME." + ;; + status) + status $DAEMON; + exit $? + ;; + 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|status|restart|reload|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service new file mode 100644 index 000000000..e60798a6b --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/radvd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Router advertisement daemon for IPv6 +After=network.target +ConditionPathExists=@SYSCONFDIR@/radvd.conf + +[Service] +EnvironmentFile=-@SYSCONFDIR@/default/radvd +ExecStart=@SBINDIR@/radvd -n $OPTIONS + +[Install] +WantedBy=multi-user.target diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd new file mode 100644 index 000000000..89256a40e --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/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/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc new file mode 100644 index 000000000..47e4736b7 --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd.inc @@ -0,0 +1,67 @@ +SUMMARY = "IPv6 router advertisement daemon" +DESCRIPTION = "radvd is the router advertisement daemon for IPv6. It \ +listens to router solicitations and sends router \ +advertisements as described in RFC 2461, Neighbor \ +Discovery for IP Version 6 (IPv6). With these \ +advertisements hosts can automatically configure their \ +addresses and some other parameters. They also can \ +choose a default router based on these advertisements." +HOMEPAGE = "http://www.litech.org/radvd/" +SECTION = "net" +DEPENDS = "flex-native libdaemon" + +# License is BSD-Style (with advertising clause) but also has an additional 0th clause +LICENSE = "radvd" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db" + +SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \ + file://radvd.init \ + file://radvd.service \ + file://volatiles.03_radvd \ + file://radvd.default" + +inherit autotools update-rc.d useradd pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "radvd.service" +SYSTEMD_AUTO_ENABLE = "disable" + +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 + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd + + install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd + + # Install systemd service files + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/radvd.service ${D}${systemd_unitdir}/system + sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' \ + -e 's#@SBINDIR@#${sbindir}#g' \ + -e 's#@BASE_BINDIR@#${base_bindir}#g' ${D}${systemd_unitdir}/system/radvd.service + + # Install default environment file + install -m 0644 ${WORKDIR}/radvd.default ${D}${sysconfdir}/default/radvd + + # Documentation + for i in radvd.conf.example README; do \ + install -m 0644 ${S}/$i ${D}${docdir}/radvd; \ + done +} + +INITSCRIPT_NAME = "radvd" +INITSCRIPT_PARAMS = "defaults 20 80" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd" + +pkg_postinst_${PN} () { + if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then + /etc/init.d/populate-volatile.sh update + fi +} diff --git a/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb new file mode 100644 index 000000000..c0b7532ba --- /dev/null +++ b/import-layers/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.11.bb @@ -0,0 +1,5 @@ + +require radvd.inc + +SRC_URI[md5sum] = "57fc6021f6a5e5472e455937685472a3" +SRC_URI[sha256sum] = "80ad60b15689e9591a5af393a57a1d93304deeff2e46482f0fd98046c00622f8" |