--- /dev/null
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mrd6
+PKG_VERSION:=0.9.5
+PKG_RELEASE:=1
+PKG_MD5SUM:=24a08cf1407000d628a272b08a415dda
+
+PKG_SOURCE_URL:=http://hng.av.it.pt/mrd6/download/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/mrd6
+ SECTION:=net
+ CATEGORY:=Network
+ DEPENDS:=+uclibcxx
+ TITLE:=IPv6 multicast routing daemon
+ DESCRIPTION:=Multicast is becoming a major component in next generation\\\
+ networks, used in several scenarios, from video broadcasting\\\
+ to multimedia conferencing. In order to be implemented, new\\\
+ technology needs supporting hardware and software across a set\\\
+ of devices and systems. MRD6 is an implementation of a modular\\\
+ IPv6 Multicast Routing Framework for the Linux operating system\\\
+ and provides MLDv2 (as well as MLDv1), PIM-SM and MBGP support.\\\
+ URL:=http://artemis.av.it.pt/mrd6/
+endef
+
+define Package/mrd6/conffiles
+/etc/mrd6.conf
+endef
+
+define Build/Compile
+ $(MAKE) -C $(PKG_BUILD_DIR)/src \
+ OPTIMIZE=yes \
+ SPACE_OPTIMIZE=yes \
+ FULL_STATIC=yes \
+ CFLAGS="$(TARGET_CFLAGS) -DNO_INET6_OPTION" \
+ CXX=$(TARGET_CROSS)g++ \
+ CC=$(TARGET_CC) \
+ STAGING_DIR=$(STAGING_DIR) \
+ DESTDIR=$(PKG_INSTALL_DIR) \
+ PREFIX=/usr/ \
+ install
+endef
+
+define Package/mrd6/install
+ install -d -m0755 $(1)/etc/init.d
+ install -m0644 files/mrd6.conf $(1)/etc
+ install -m0755 files/mrd6.init $(1)/etc/init.d/S60mrd6
+endef
+
+$(eval $(call BuildPackage,mrd6))
--- /dev/null
+log {
+ attach stderr normal;
+ attach default "/var/log/mrd6.log" message_err;
+}
+
+interfaces br0 enable = false; // Should be vlan0 + eth1 but Linux bridge seems broken for multicast
+interfaces eth0 enable = false; // Interface to internal bridge
+handle-proper-bridge = true; // use ETH_P_ALL to see all packets on wrt54g
+
+// The default configured RP is m6bone's Renater RP.
+// Change this according to your setup
+
+groups ff00::/8 pim rp = 2001:660:3007:300:1::;
+
--- /dev/null
+#!/bin/sh
+
+case $1 in
+start)
+ /sbin/lsmod | grep ipv6 > /dev/null
+ if [ "$?" != "0" ]
+ then
+ echo -n "IPv6 stack required by mrd6. Loading ipv6 module: "
+ /sbin/insmod ipv6
+ echo "Done."
+ fi
+ echo -n "Starting IPv6 multicast router (mrd6): "
+ /usr/sbin/mrd6 -f /etc/mrd6.conf -D
+ echo "Done."
+ ;;
+stop)
+ echo -n "Stopping IPv6 multicast router (mrd6): "
+ killall mrd6
+ echo "Done."
+ ;;
+restart)
+ $0 stop
+ $0 start
+ ;;
+*)
+ echo "Usage: $0 {start | stop | restart}"
+ ;;
+esac
+exit 0
--- /dev/null
+diff -urN mrd6-0.9.5/src/Makefile mrd6-0.9.5.new/src/Makefile
+--- mrd6-0.9.5/src/Makefile 2005-12-18 19:15:04.000000000 +0100
++++ mrd6-0.9.5.new/src/Makefile 2006-02-11 18:30:44.000000000 +0100
+@@ -43,7 +43,7 @@
+ CFLAGS += -DNO_INET6_OPTION
+ endif
+
+-DEST_PREFIX = $(DESTDIR)$(PREFIX)
++DEST_PREFIX = $(DESTDIR)/$(PREFIX)
+
+ ifeq ($(OPTIMIZE),yes)
+ ifeq ($(SPACE_OPTIMIZE),yes)
+@@ -97,7 +97,7 @@
+ endif
+ endif
+
+-LDFLAGS += -lm
++LDFLAGS += -lm -lnotimpl -L$(STAGING_DIR)/usr/lib
+ ifeq ($(PLATFORM),OS_LINUX)
+ LDFLAGS += -ldl
+ endif