From: Florian Fainelli Date: Sat, 5 Aug 2006 16:29:15 +0000 (+0000) Subject: Port mrd6 to -ng X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=8311abedfff9a4a1e351eef991d52ccf82992aef;hp=ea8b470d74ff53bdbd69824260acbad3000d9001 Port mrd6 to -ng SVN-Revision: 4469 --- diff --git a/net/mrd6/Makefile b/net/mrd6/Makefile new file mode 100644 index 0000000000..20803aff24 --- /dev/null +++ b/net/mrd6/Makefile @@ -0,0 +1,64 @@ +# +# 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)) diff --git a/net/mrd6/files/mrd6.conf b/net/mrd6/files/mrd6.conf new file mode 100644 index 0000000000..84ce923a34 --- /dev/null +++ b/net/mrd6/files/mrd6.conf @@ -0,0 +1,14 @@ +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::; + diff --git a/net/mrd6/files/mrd6.init b/net/mrd6/files/mrd6.init new file mode 100755 index 0000000000..886723f15e --- /dev/null +++ b/net/mrd6/files/mrd6.init @@ -0,0 +1,29 @@ +#!/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 diff --git a/net/mrd6/patches/01-ceilf_replacement.patch b/net/mrd6/patches/01-ceilf_replacement.patch new file mode 100644 index 0000000000..1b4ac6213c --- /dev/null +++ b/net/mrd6/patches/01-ceilf_replacement.patch @@ -0,0 +1,21 @@ +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