diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-11-27 11:25:49 +0000 |
---|---|---|
committer | Joe MacDonald <joe.macdonald@windriver.com> | 2012-11-27 14:43:58 -0500 |
commit | 85c1a1a45409ffa064b5da8c8b00e7a5f7d67b83 (patch) | |
tree | 41122208e17e86c6364e7c776d1b8296e5f3588f /meta-networking | |
parent | e762ce3fc044cc64f473c95e096245e439eb3234 (diff) | |
download | meta-openembedded-85c1a1a45409ffa064b5da8c8b00e7a5f7d67b83.tar.gz |
radvd: add from OE-Classic, update and tidy up
* Update to 1.9.1
* Add libdaemon to DEPENDS as needed by 1.9+
* Remove empty config file (not really of much use and there's an
example config in the -doc package anyway)
* Use useradd.bbclass to create user
* Handle hardcoded paths in initscript
* Add LSB headers to initscript (borrowed from openSUSE)
* Set custom LICENSE as it's BSD-Style but not actually one of the
standard BSD variants
* Add LIC_FILES_CHKSUM
* Set SUMMARY (which sets DESCRIPTION)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'meta-networking')
4 files changed, 174 insertions, 0 deletions
diff --git a/meta-networking/recipes-daemons/radvd/files/radvd.init b/meta-networking/recipes-daemons/radvd/files/radvd.init new file mode 100755 index 000000000..a48dff8c8 --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/files/radvd.init | |||
@@ -0,0 +1,124 @@ | |||
1 | #! /bin/sh | ||
2 | # | ||
3 | ### BEGIN INIT INFO | ||
4 | # Provides: radvd | ||
5 | # Required-Start: $remote_fs $named $syslog | ||
6 | # Required-Stop: $remote_fs $named $syslog | ||
7 | # Default-Start: 3 5 | ||
8 | # Default-Stop: 0 1 2 6 | ||
9 | # Description: router advertisement daemon | ||
10 | ### END INIT INFO | ||
11 | |||
12 | PATH=/sbin:/bin:/usr/sbin:/usr/bin | ||
13 | DAEMON=/usr/sbin/radvd | ||
14 | NAME=radvd | ||
15 | DESC=radvd | ||
16 | CONFIG=/etc/radvd.conf | ||
17 | SAVED_SETTINGS=/var/run/radvd/saved-settings | ||
18 | PIDFILE=/var/run/radvd/radvd.pid | ||
19 | OPTIONS="-u radvd -p $PIDFILE" | ||
20 | |||
21 | test -x $DAEMON || exit 0 | ||
22 | |||
23 | set -e | ||
24 | |||
25 | # Check for IPv6 support in kernel | ||
26 | if test \! -e /proc/sys/net/ipv6; then | ||
27 | echo "IPv6 support must be enabled in the kernel for $DESC to work." | ||
28 | exit | ||
29 | fi | ||
30 | |||
31 | save_settings() | ||
32 | { | ||
33 | local file=$1 | ||
34 | |||
35 | rm -f $file | ||
36 | for if_conf in /proc/sys/net/ipv6/conf/*; do | ||
37 | echo -e "$if_conf/forwarding\t `cat $if_conf/forwarding`" >> $file | ||
38 | done | ||
39 | return 0 | ||
40 | } | ||
41 | |||
42 | restore_settings() | ||
43 | { | ||
44 | file=$1 | ||
45 | |||
46 | if [ ! -f $file ]; then | ||
47 | echo "$0: warning: cannot restore settings" | ||
48 | return | ||
49 | fi | ||
50 | |||
51 | ( | ||
52 | while read f value; do | ||
53 | if [ -w $f ]; then | ||
54 | echo $value > $f | ||
55 | fi | ||
56 | done | ||
57 | ) < $file | ||
58 | } | ||
59 | |||
60 | chkconfig() { | ||
61 | if [ ! -e $CONFIG -o ! -s $CONFIG ]; then | ||
62 | echo "" | ||
63 | echo "* $CONFIG does not exist or is empty." | ||
64 | echo "* See /usr/share/doc/radvd/examples/simple-radvd.conf for a simple" | ||
65 | echo "* configuration suitable for most systems, and radvd.conf(5)" | ||
66 | echo "* for configuration file syntax. radvd will *not* be started." | ||
67 | exit 0 | ||
68 | fi | ||
69 | } | ||
70 | |||
71 | case "$1" in | ||
72 | start) | ||
73 | echo -n "Starting $DESC: " | ||
74 | chkconfig | ||
75 | save_settings $SAVED_SETTINGS | ||
76 | |||
77 | # We must enable IPv6 forwarding for radvd to work | ||
78 | echo 1 > /proc/sys/net/ipv6/conf/all/forwarding | ||
79 | |||
80 | # Check for stale pidfile; radvd won't start if one is lying around | ||
81 | if [ -f $PIDFILE ] && ! ps `cat $PIDFILE` > /dev/null; then | ||
82 | rm -f $PIDFILE | ||
83 | fi | ||
84 | if ! start-stop-daemon --oknodo --start --pidfile $PIDFILE \ | ||
85 | --exec $DAEMON -- $OPTIONS; then | ||
86 | echo "failed." && exit 1 | ||
87 | fi | ||
88 | echo "$NAME." | ||
89 | ;; | ||
90 | stop) | ||
91 | echo -n "Stopping $DESC: " | ||
92 | start-stop-daemon --oknodo --stop --pidfile $PIDFILE \ | ||
93 | --exec $DAEMON | ||
94 | restore_settings $SAVED_SETTINGS | ||
95 | rm -f $SAVED_SETTINGS | ||
96 | echo "$NAME." | ||
97 | ;; | ||
98 | reload|force-reload) | ||
99 | echo "Reloading $DESC configuration files." | ||
100 | start-stop-daemon --stop --signal HUP --quiet --pidfile \ | ||
101 | $PIDFILE --exec $DAEMON | ||
102 | ;; | ||
103 | restart) | ||
104 | chkconfig | ||
105 | echo -n "Restarting $DESC: " | ||
106 | if ! start-stop-daemon --stop --quiet --pidfile \ | ||
107 | $PIDFILE --exec $DAEMON; then | ||
108 | # stop failed, so we were not running | ||
109 | save_settings $SAVED_SETTINGS | ||
110 | echo 1 > /proc/sys/net/ipv6/conf/all/forwarding | ||
111 | fi | ||
112 | sleep 1 | ||
113 | start-stop-daemon --start --quiet --pidfile \ | ||
114 | $PIDFILE --exec $DAEMON -- $OPTIONS | ||
115 | echo "$NAME." | ||
116 | ;; | ||
117 | *) | ||
118 | N=/etc/init.d/$NAME | ||
119 | echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 | ||
120 | exit 1 | ||
121 | ;; | ||
122 | esac | ||
123 | |||
124 | exit 0 | ||
diff --git a/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd b/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd new file mode 100644 index 000000000..89256a40e --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/files/volatiles.03_radvd | |||
@@ -0,0 +1,2 @@ | |||
1 | # <type> <owner> <group> <mode> <path> <linksource> | ||
2 | d radvd root 0755 /var/run/radvd none | ||
diff --git a/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-networking/recipes-daemons/radvd/radvd.inc new file mode 100644 index 000000000..406127939 --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/radvd.inc | |||
@@ -0,0 +1,42 @@ | |||
1 | SUMMARY = "IPv6 router advertisement daemon" | ||
2 | HOMEPAGE = "http://www.litech.org/radvd/" | ||
3 | SECTION = "console/network" | ||
4 | DEPENDS = "flex-native libdaemon" | ||
5 | |||
6 | # License is BSD-Style (with advertising clause) but also has an additional 0th clause | ||
7 | LICENSE = "radvd" | ||
8 | LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db" | ||
9 | |||
10 | SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \ | ||
11 | file://radvd.init \ | ||
12 | file://volatiles.03_radvd" | ||
13 | |||
14 | inherit autotools update-rc.d useradd | ||
15 | |||
16 | do_install_append () { | ||
17 | install -m 0755 -d ${D}${sysconfdir}/init.d \ | ||
18 | ${D}${sysconfdir}/default/volatiles \ | ||
19 | ${D}${docdir}/radvd | ||
20 | # Install init script and volatiles | ||
21 | install -m 0755 ${WORKDIR}/radvd.init ${D}${sysconfdir}/init.d/radvd | ||
22 | sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/radvd | ||
23 | sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/radvd | ||
24 | sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd | ||
25 | sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd | ||
26 | |||
27 | install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd | ||
28 | # Documentation | ||
29 | for i in radvd.conf.example README; do \ | ||
30 | install -m 0644 $i ${D}${docdir}/radvd; \ | ||
31 | done | ||
32 | } | ||
33 | |||
34 | INITSCRIPT_NAME = "radvd" | ||
35 | INITSCRIPT_PARAMS = "defaults 20 80" | ||
36 | |||
37 | USERADD_PACKAGES = "${PN}" | ||
38 | USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd" | ||
39 | |||
40 | pkg_postinst_${PN} () { | ||
41 | ${sysconfdir}/init.d/populate-volatile.sh update | ||
42 | } | ||
diff --git a/meta-networking/recipes-daemons/radvd/radvd_1.9.1.bb b/meta-networking/recipes-daemons/radvd/radvd_1.9.1.bb new file mode 100644 index 000000000..26d21ce07 --- /dev/null +++ b/meta-networking/recipes-daemons/radvd/radvd_1.9.1.bb | |||
@@ -0,0 +1,6 @@ | |||
1 | PR = "r0" | ||
2 | |||
3 | require radvd.inc | ||
4 | |||
5 | SRC_URI[md5sum] = "e807ad7e9a76d46b6133df391385cd31" | ||
6 | SRC_URI[sha256sum] = "54eb5704a2b710ba946fa30d2bca811fa23b1b3bfab322c38cb0c2a9619aa933" | ||