summaryrefslogtreecommitdiff
path: root/openwrt/package/radvd
diff options
context:
space:
mode:
Diffstat (limited to 'openwrt/package/radvd')
-rw-r--r--openwrt/package/radvd/Config.in7
-rw-r--r--openwrt/package/radvd/Makefile62
-rwxr-xr-xopenwrt/package/radvd/files/S51radvd22
-rw-r--r--openwrt/package/radvd/files/radvd.conf.example22
-rw-r--r--openwrt/package/radvd/patches/no-libfl.patch12
-rw-r--r--openwrt/package/radvd/radvd.control7
6 files changed, 132 insertions, 0 deletions
diff --git a/openwrt/package/radvd/Config.in b/openwrt/package/radvd/Config.in
new file mode 100644
index 0000000000..4857b4de89
--- /dev/null
+++ b/openwrt/package/radvd/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_RADVD
+ select BR2_PACKAGE_KMOD_IPV6
+ select BR2_PACKAGE_LIBFL
+ tristate "radvd"
+ default m
+ help
+ Routing Advertisement Daemon for IPv6
diff --git a/openwrt/package/radvd/Makefile b/openwrt/package/radvd/Makefile
new file mode 100644
index 0000000000..6b1fadbb25
--- /dev/null
+++ b/openwrt/package/radvd/Makefile
@@ -0,0 +1,62 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=radvd
+PKG_VERSION:=0.7.3
+PKG_RELEASE:=1
+PKG_MD5SUM:=56ce3f8cbf5966a0d531c21813320423
+
+PKG_SOURCE_URL:=http://v6web.litech.org/radvd/dist
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_CAT:=zcat
+PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk
+PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg
+
+$(DL_DIR)/$(PKG_SOURCE):
+ $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL)
+
+$(PKG_BUILD_DIR)/.patched: $(DL_DIR)/$(PKG_SOURCE)
+ $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ $(PATCH) $(PKG_BUILD_DIR) ./patches
+ touch $(PKG_BUILD_DIR)/.patched
+
+$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.patched
+ (cd $(PKG_BUILD_DIR); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ ./configure \
+ --target=$(GNU_TARGET_NAME) \
+ --host=$(GNU_TARGET_NAME) \
+ --build=$(GNU_HOST_NAME) \
+ --prefix=/usr \
+ --with-logfile=/tmp/radvd.log \
+ --with-pidfile=/tmp/run/radvd.pid \
+ --with-configfile=/etc/radvd.conf \
+ );
+ touch $(PKG_BUILD_DIR)/.configured
+
+$(PKG_BUILD_DIR)/$(PKG_NAME): $(PKG_BUILD_DIR)/.configured
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) LD=$(TARGET_CC) LDFLAGS=-L$(PKG_BUILD_DIR) -C $(PKG_BUILD_DIR) radvd_LDADD=""
+
+$(PKG_IPK): $(PKG_BUILD_DIR)/$(PKG_NAME)
+ $(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH)
+ mkdir -p $(PKG_IPK_DIR)/usr/sbin $(PKG_IPK_DIR)/etc/init.d
+ install -m 755 $(PKG_BUILD_DIR)/radvd $(PKG_IPK_DIR)/usr/sbin/
+ install -m 755 $(PKG_BUILD_DIR)/radvdump $(PKG_IPK_DIR)/usr/sbin/
+ install -m 755 ./files/S51radvd $(PKG_IPK_DIR)/etc/init.d/
+ install -m 644 ./files/radvd.conf.example $(PKG_IPK_DIR)/etc/
+ $(STRIP) $(PKG_IPK_DIR)/usr/sbin/*
+ mkdir -p $(PACKAGE_DIR)
+ $(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR)
+
+$(IPKG_STATE_DIR)/info/$(PKG_NAME).list: $(PKG_IPK)
+ $(IPKG) install $(PKG_IPK)
+
+source: $(DL_DIR)/$(PKG_SOURCE)
+prepare: $(PKG_BUILD_DIR)/.patched
+compile: $(PKG_IPK)
+install: $(IPKG_STATE_DIR)/info/$(PKG_NAME).list
+
+clean:
+ rm -rf $(PKG_BUILD_DIR)
+ rm -f $(PKG_IPK)
diff --git a/openwrt/package/radvd/files/S51radvd b/openwrt/package/radvd/files/S51radvd
new file mode 100755
index 0000000000..88565db480
--- /dev/null
+++ b/openwrt/package/radvd/files/S51radvd
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+case "$1" in
+ start)
+ echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
+ /usr/sbin/radvd
+ ;;
+
+ stop)
+ killall radvd
+ echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
diff --git a/openwrt/package/radvd/files/radvd.conf.example b/openwrt/package/radvd/files/radvd.conf.example
new file mode 100644
index 0000000000..06d8357041
--- /dev/null
+++ b/openwrt/package/radvd/files/radvd.conf.example
@@ -0,0 +1,22 @@
+# For more examples, see the radvd documentation.
+
+interface br0
+{
+ AdvSendAdvert off;
+
+#
+# Disable Mobile IPv6 support
+#
+ AdvHomeAgentFlag off;
+
+#
+# example of a standard prefix
+#
+ prefix fec0:0:0:1::/64
+ {
+ AdvOnLink on;
+ AdvAutonomous on;
+ AdvRouterAddr off;
+ };
+
+};
diff --git a/openwrt/package/radvd/patches/no-libfl.patch b/openwrt/package/radvd/patches/no-libfl.patch
new file mode 100644
index 0000000000..e17a127c95
--- /dev/null
+++ b/openwrt/package/radvd/patches/no-libfl.patch
@@ -0,0 +1,12 @@
+diff -urN radvd-0.7.3.old/scanner.l radvd-0.7.3/scanner.l
+--- radvd-0.7.3.old/scanner.l 2004-10-26 07:30:34.000000000 +0200
++++ radvd-0.7.3/scanner.l 2005-04-05 00:01:42.000000000 +0200
+@@ -21,6 +21,8 @@
+
+ extern char *conf_file;
+
++int yywrap(void) { return 1; }
++
+ int num_lines = 1;
+ %}
+
diff --git a/openwrt/package/radvd/radvd.control b/openwrt/package/radvd/radvd.control
new file mode 100644
index 0000000000..52760ad397
--- /dev/null
+++ b/openwrt/package/radvd/radvd.control
@@ -0,0 +1,7 @@
+Package: radvd
+Priority: optional
+Section: net
+Maintainer: Sebastien NOEL <me@twolife.org>
+Source: http://v6web.litech.org/radvd/
+Depends: kmod-ipv6
+Description: Routing Advertisement Daemon for IPv6