[packages] miniupnpd: Changed from using upstream Makefile.openwrt to using upstream...
authorDaniel Dickinson <crazycshore@gmail.com>
Sun, 6 Mar 2011 15:14:30 +0000 (15:14 +0000)
committerDaniel Dickinson <crazycshore@gmail.com>
Sun, 6 Mar 2011 15:14:30 +0000 (15:14 +0000)
SVN-Revision: 25888

net/miniupnpd/Makefile
net/miniupnpd/patches/100-use_linux_makefile_for_openwrt.patch [new file with mode: 0644]

index 66a43a5..08b332b 100644 (file)
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=miniupnpd
 PKG_VERSION:=1.5.20110302
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_MD5SUM:=9c2906a2f87d9b9504e4fc09488afe41
 
 PKG_SOURCE_URL:=http://miniupnp.free.fr/files
@@ -33,9 +33,11 @@ endef
 
 define Build/Compile
        echo "OpenWRT/$(OPENWRTVERSION)" | tr \(\)\  _ >$(PKG_BUILD_DIR)/os.openwrt
-       $(MAKE) -C $(PKG_BUILD_DIR) -f Makefile.openwrt \
+       $(MAKE) -C $(PKG_BUILD_DIR) -f Makefile.linux \
                $(TARGET_CONFIGURE_OPTS) \
                STAGING_DIR="$(STAGING_DIR)" \
+               CC="$(TARGET_CC)" \
+               TARGET_OPENWRT=1 \
                CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -I$(firstword $(wildcard $(KERNEL_BUILD_DIR)/iptables-*/include)) -DIPTABLES_143" \
                LIBS="$(STAGING_DIR)/usr/lib/libiptc.so $(STAGING_DIR)/usr/lib/libip4tc.so $(STAGING_DIR)/usr/lib/libip6tc.so"
 endef
@@ -47,6 +49,7 @@ define Package/miniupnpd/install
        $(INSTALL_CONF) ./files/upnpd.config $(1)/etc/config/upnpd
        $(INSTALL_DATA) ./files/miniupnpd.iface.hotplug $(1)/etc/hotplug.d/iface/50-miniupnpd
        $(INSTALL_DATA) ./files/miniupnpd.firewall.hotplug $(1)/etc/hotplug.d/firewall/50-miniupnpd
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/miniupnpd.conf $(1)/etc/miniupnpd.conf.example
 endef
 
 $(eval $(call BuildPackage,miniupnpd))
diff --git a/net/miniupnpd/patches/100-use_linux_makefile_for_openwrt.patch b/net/miniupnpd/patches/100-use_linux_makefile_for_openwrt.patch
new file mode 100644 (file)
index 0000000..fde754d
--- /dev/null
@@ -0,0 +1,412 @@
+--- a/Makefile.openwrt
++++ /dev/null
+@@ -1,95 +0,0 @@
+-# $Id: Makefile.openwrt,v 1.12 2008/05/01 23:11:18 nanard Exp $
+-# http://miniupnp.free.fr/
+-# Author : Thomas Bernard
+-# for use with GNU Make
+-# This Makefile would probably need some modifications depending on
+-# your openwrt SDK/etc...
+-# http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=713
+-
+-#include $(TOPDIR)/rules.mk
+-#CFLAGS = -Wall -O -D_GNU_SOURCE -g
+-#CFLAGS = -Wall -Os -D_GNU_SOURCE
+-#CC = mipsel-linux-gcc
+-CC = $(TARGET_CC)
+-CFLAGS = $(TARGET_CFLAGS)
+-CFLAGS += -D_GNU_SOURCE
+-CP = cp
+-RM = rm -f
+-INSTALL = install
+-IPTABLESINC=$(STAGING_DIR)/usr/include
+-#IPTABLESINC=$(BUILD_DIR)/iptables-1.3.3/include
+-#IPTABLESINC=$(TOPDIR)/../iptables-1.3.3/include
+-
+-BASEOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
+-           upnpreplyparse.o minixml.o \
+-                 upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
+-                 options.o upnppermissions.o minissdp.o natpmp.o
+-
+-LNXOBJS = linux/getifstats.o
+-NETFILTEROBJS = netfilter/iptcrdr.o
+-ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
+-
+-#LIBS = $(BUILD_DIR)/iptables-1.3.3/libiptc/libiptc.a
+-#LIBS = $(TOPDIR)/../iptables-1.3.3/libiptc/libiptc.a
+-
+-TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
+-
+-EXECUTABLES = miniupnpd testupnpdescgen
+-
+-.PHONY:       all clean install depend
+-
+-all:  $(EXECUTABLES)
+-
+-clean:
+-      $(RM) $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS) $(EXECUTABLES) \
+-      testupnpdescgen.o
+-
+-install:      miniupnpd
+-      @echo no install for now...
+-
+-miniupnpd:    $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS) $(LIBS)
+-
+-testupnpdescgen:      $(TESTUPNPDESCGENOBJS)
+-
+-netfilter/iptcrdr.o: netfilter/iptcrdr.c
+-      $(CC) $(CFLAGS) -I$(IPTABLESINC) -c -o $@ $<
+-
+-depend:       config.h
+-      makedepend -f$(MAKEFILE_LIST) -Y \
+-      $(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) \
+-      2>/dev/null
+-
+-config.h:     genconfig.sh
+-      ./genconfig.sh
+-
+-# DO NOT DELETE
+-
+-miniupnpd.o: config.h upnpglobalvars.h upnppermissions.h miniupnpdtypes.h
+-miniupnpd.o: upnphttp.h upnpdescgen.h miniupnpdpath.h getifaddr.h daemonize.h
+-miniupnpd.o: upnpsoap.h options.h minissdp.h upnpredirect.h natpmp.h
+-upnphttp.o: upnphttp.h config.h upnpdescgen.h miniupnpdpath.h upnpsoap.h
+-upnpdescgen.o: upnpdescgen.h miniupnpdpath.h upnpglobalvars.h
+-upnpdescgen.o: upnppermissions.h config.h miniupnpdtypes.h upnpdescstrings.h
+-upnpsoap.o: upnpglobalvars.h upnppermissions.h config.h miniupnpdtypes.h
+-upnpsoap.o: upnphttp.h upnpsoap.h upnpreplyparse.h upnpredirect.h getifaddr.h
+-upnpsoap.o: getifstats.h
+-upnpreplyparse.o: upnpreplyparse.h minixml.h
+-minixml.o: minixml.h
+-upnpredirect.o: config.h upnpredirect.h upnpglobalvars.h upnppermissions.h
+-upnpredirect.o: miniupnpdtypes.h netfilter/iptcrdr.h commonrdr.h
+-getifaddr.o: getifaddr.h
+-daemonize.o: daemonize.h
+-upnpglobalvars.o: upnpglobalvars.h upnppermissions.h config.h
+-upnpglobalvars.o: miniupnpdtypes.h
+-options.o: options.h upnppermissions.h config.h upnpglobalvars.h
+-options.o: miniupnpdtypes.h
+-upnppermissions.o: config.h upnppermissions.h
+-minissdp.o: config.h upnpdescstrings.h miniupnpdpath.h upnphttp.h
+-minissdp.o: upnpglobalvars.h upnppermissions.h miniupnpdtypes.h minissdp.h
+-natpmp.o: config.h natpmp.h upnpglobalvars.h upnppermissions.h
+-natpmp.o: miniupnpdtypes.h getifaddr.h upnpredirect.h commonrdr.h
+-linux/getifstats.o: getifstats.h config.h
+-netfilter/iptcrdr.o: netfilter/iptcrdr.h commonrdr.h config.h
+-testupnpdescgen.o: upnpdescgen.h
+-upnpdescgen.o: upnpdescgen.h miniupnpdpath.h upnpglobalvars.h
+-upnpdescgen.o: upnppermissions.h config.h miniupnpdtypes.h upnpdescstrings.h
+--- /dev/null
++++ b/Makefile.openwrt.old
+@@ -0,0 +1,95 @@
++# $Id: Makefile.openwrt,v 1.12 2008/05/01 23:11:18 nanard Exp $
++# http://miniupnp.free.fr/
++# Author : Thomas Bernard
++# for use with GNU Make
++# This Makefile would probably need some modifications depending on
++# your openwrt SDK/etc...
++# http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=713
++
++#include $(TOPDIR)/rules.mk
++#CFLAGS = -Wall -O -D_GNU_SOURCE -g
++#CFLAGS = -Wall -Os -D_GNU_SOURCE
++#CC = mipsel-linux-gcc
++CC = $(TARGET_CC)
++CFLAGS = $(TARGET_CFLAGS)
++CFLAGS += -D_GNU_SOURCE
++CP = cp
++RM = rm -f
++INSTALL = install
++IPTABLESINC=$(STAGING_DIR)/usr/include
++#IPTABLESINC=$(BUILD_DIR)/iptables-1.3.3/include
++#IPTABLESINC=$(TOPDIR)/../iptables-1.3.3/include
++
++BASEOBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \
++           upnpreplyparse.o minixml.o \
++                 upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \
++                 options.o upnppermissions.o minissdp.o natpmp.o
++
++LNXOBJS = linux/getifstats.o
++NETFILTEROBJS = netfilter/iptcrdr.o
++ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
++
++#LIBS = $(BUILD_DIR)/iptables-1.3.3/libiptc/libiptc.a
++#LIBS = $(TOPDIR)/../iptables-1.3.3/libiptc/libiptc.a
++
++TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
++
++EXECUTABLES = miniupnpd testupnpdescgen
++
++.PHONY:       all clean install depend
++
++all:  $(EXECUTABLES)
++
++clean:
++      $(RM) $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS) $(EXECUTABLES) \
++      testupnpdescgen.o
++
++install:      miniupnpd
++      @echo no install for now...
++
++miniupnpd:    $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS) $(LIBS)
++
++testupnpdescgen:      $(TESTUPNPDESCGENOBJS)
++
++netfilter/iptcrdr.o: netfilter/iptcrdr.c
++      $(CC) $(CFLAGS) -I$(IPTABLESINC) -c -o $@ $<
++
++depend:       config.h
++      makedepend -f$(MAKEFILE_LIST) -Y \
++      $(ALLOBJS:.o=.c) $(TESTUPNPDESCGENOBJS:.o=.c) \
++      2>/dev/null
++
++config.h:     genconfig.sh
++      ./genconfig.sh
++
++# DO NOT DELETE
++
++miniupnpd.o: config.h upnpglobalvars.h upnppermissions.h miniupnpdtypes.h
++miniupnpd.o: upnphttp.h upnpdescgen.h miniupnpdpath.h getifaddr.h daemonize.h
++miniupnpd.o: upnpsoap.h options.h minissdp.h upnpredirect.h natpmp.h
++upnphttp.o: upnphttp.h config.h upnpdescgen.h miniupnpdpath.h upnpsoap.h
++upnpdescgen.o: upnpdescgen.h miniupnpdpath.h upnpglobalvars.h
++upnpdescgen.o: upnppermissions.h config.h miniupnpdtypes.h upnpdescstrings.h
++upnpsoap.o: upnpglobalvars.h upnppermissions.h config.h miniupnpdtypes.h
++upnpsoap.o: upnphttp.h upnpsoap.h upnpreplyparse.h upnpredirect.h getifaddr.h
++upnpsoap.o: getifstats.h
++upnpreplyparse.o: upnpreplyparse.h minixml.h
++minixml.o: minixml.h
++upnpredirect.o: config.h upnpredirect.h upnpglobalvars.h upnppermissions.h
++upnpredirect.o: miniupnpdtypes.h netfilter/iptcrdr.h commonrdr.h
++getifaddr.o: getifaddr.h
++daemonize.o: daemonize.h
++upnpglobalvars.o: upnpglobalvars.h upnppermissions.h config.h
++upnpglobalvars.o: miniupnpdtypes.h
++options.o: options.h upnppermissions.h config.h upnpglobalvars.h
++options.o: miniupnpdtypes.h
++upnppermissions.o: config.h upnppermissions.h
++minissdp.o: config.h upnpdescstrings.h miniupnpdpath.h upnphttp.h
++minissdp.o: upnpglobalvars.h upnppermissions.h miniupnpdtypes.h minissdp.h
++natpmp.o: config.h natpmp.h upnpglobalvars.h upnppermissions.h
++natpmp.o: miniupnpdtypes.h getifaddr.h upnpredirect.h commonrdr.h
++linux/getifstats.o: getifstats.h config.h
++netfilter/iptcrdr.o: netfilter/iptcrdr.h commonrdr.h config.h
++testupnpdescgen.o: upnpdescgen.h
++upnpdescgen.o: upnpdescgen.h miniupnpdpath.h upnpglobalvars.h
++upnpdescgen.o: upnppermissions.h config.h miniupnpdtypes.h upnpdescstrings.h
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -17,11 +17,12 @@
+ # $ IPTABLESPATH=/path/to/iptables-1.4.1 make -f Makefile.linux
+ #
+ #CFLAGS = -Wall -O -D_GNU_SOURCE -g -DDEBUG
+-CFLAGS = -Wall -Os -D_GNU_SOURCE
+-CC = gcc
++CFLAGS ?= -Wall -Os -D_GNU_SOURCE
++CC ?= gcc
+ RM = rm -f
+ INSTALL = install
+-STRIP = strip
++STRIP ?= strip
++CP = cp
+ INSTALLPREFIX ?= $(PREFIX)/usr
+ SBININSTALLDIR = $(INSTALLPREFIX)/sbin
+@@ -38,16 +39,17 @@ NETFILTEROBJS = netfilter/iptcrdr.o
+ ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
+-LIBS = -liptc
++LIBS ?= -liptc
+ # the following is better, at least on gentoo with iptables 1.4.6
+ #┬ásee http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1618
+ #LIBS = -lip4tc
+-ARCH := $(shell uname -m | grep -q "x86_64" && echo 64)
++ARCH ?= $(shell uname -m | grep -q "x86_64" && echo 64)
+ ifdef IPTABLESPATH
+ CFLAGS := $(CFLAGS) -I$(IPTABLESPATH)/include/
+ LDFLAGS := $(LDFLAFGS) -L$(IPTABLESPATH)/libiptc/
+ # get iptables version and set IPTABLES_143 macro if needed
++ifeq ($(TARGET_OPENWRT),)
+ IPTABLESVERSION := $(shell grep "\#define VERSION" $(IPTABLESPATH)/config.h | tr -d \" |cut -d" " -f3 )
+ IPTABLESVERSION1 := $(shell echo $(IPTABLESVERSION) | cut -d. -f1 )
+ IPTABLESVERSION2 := $(shell echo $(IPTABLESVERSION) | cut -d. -f2 )
+@@ -74,6 +76,7 @@ LIBS = -liptc /usr/lib$(ARCH)/libiptc.a
+ endif
+ endif 
+ endif
++endif
+ TESTUPNPDESCGENOBJS = testupnpdescgen.o upnpdescgen.o
+@@ -105,7 +108,11 @@ install:  miniupnpd genuuid
+ # genuuid is using the uuidgen CLI tool which is part of libuuid
+ # from the e2fsprogs
+ genuuid:
++ifeq ($(TARGET_OPENWRT),)
+       sed -i -e "s/^uuid=[-0-9a-f]*/uuid=`(genuuid||uuidgen) 2>/dev/null`/" miniupnpd.conf
++else
++      sed -i -e "s/^uuid=[-0-9a-f]*/uuid=`($(STAGING_DIR_HOST)/bin/genuuid||$(STAGING_DIR_HOST)/bin/uuidgen) 2>/dev/null`/" miniupnpd.conf
++endif
+ miniupnpd:    $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS) $(LIBS)
+--- a/README.openwrt
++++ /dev/null
+@@ -1,76 +0,0 @@
+-MiniUPnP Daemon
+-(c) 2006 Thomas Bernard
+-This software is subject to the conditions detailed in
+-the LICENCE file provided within the distribution.
+-
+-How to build and run miniupnpd for your router running openwrt.
+-These instructions apply to the OpenWRT WHITE RUSSIAN (RC6) version.
+-My device is a Linksys WRT54G v1, used in pppoe mode.
+-More information about OpenWRT on http://openwrt.org/
+-
+-First make sure that openwrt white russian RC6 is up and running on your
+-router device.
+-
+-NOTES : Makefile.openwrt has been updated, following informations could
+-        be inacurate.
+-        The X-Wrt team made an ipk package out of miniupnpd,
+-        check the webpage : http://www.x-wrt.org/
+-
+-* A. COMPILATION *
+-
+-To Build, use your PC. I have been using the SDK but you might need
+-to compile the cross compiler yourself.
+-
+-1. Get the SDK from http://downloads.openwrt.org/whiterussian/rc6/
+-   I used http://downloads.openwrt.org/whiterussian/rc6/OpenWrt-SDK-Linux-ppc-1.tar.bz2
+-   unpack somewhere and add the bin directory to your PATH environement :
+-   > tar xvjf OpenWrt-SDK-Linux-i686-1.tar.bz2
+-   > PATH=`pwd`/OpenWrt-SDK-Linux-i686-1/staging_dir_mipsel/bin:$PATH
+-   >  mipsel-linux-gcc --version
+-mipsel-linux-gcc (GCC) 3.4.4 (OpenWrt-1.0)
+-[...]
+-
+-2. Get iptables 1.3.3 sources from http://downloads.openwrt.org/sources/iptables-1.3.3.tar.bz2
+-   unpack and compile libiptc.a
+-   > tar xvjf iptables-1.3.3.tar.bz2
+-   > cd iptables-1.3.3/libiptc/
+-   > make CC=mipsel-linux-gcc
+-
+-3. Go to miniupnpd directory and edit the Makefile.openwrt to make
+-   IPTABLESINC and LIBS variables point to the correct directory.
+-   > make -f Makefile.openwrt
+-   > mipsel-linux-strip miniupnpd
+-
+-That's it !
+-
+-
+-* B. INSTALLATION - USAGE *
+-
+-1. copy miniupnpd and scripts to the device :
+-   > scp miniupnpd root@192.168.1.1:.
+-   > cd linux
+-   > scp iptables_init.sh iptables_flush.sh root@192.168.1.1:.
+-   > scp iptables_display.sh iptables_removall.sh root@192.168.1.1:.
+-
+-2. log onto your router and edit the scripts in order to adapt to your
+-   configuration : EXTIF variable shoud be set to your external network
+-   interface. In my case it is ppp0
+-
+-3. init tables :
+-   > ./iptables_init.sh
+-
+-4. run the daemon :
+-   ./miniupnpd -i ppp0 -a 192.168.1.1 -p 5000 -U -d
+-   -d option is a debug option to prevent the program from going to
+-   background. It is usefull to see the debug messages and check if everything
+-   is ok.
+-
+-5. Once you checked that everything is ok,
+-   you can set up a script in /etc/init.d etc...
+-
+-   If you can build an ipkg package for miniupnpd, I'll be glad !
+-
+-Thomas
+-contact me by email : miniupnp@free.fr
+-
+-
+--- /dev/null
++++ b/README.openwrt.old
+@@ -0,0 +1,76 @@
++MiniUPnP Daemon
++(c) 2006 Thomas Bernard
++This software is subject to the conditions detailed in
++the LICENCE file provided within the distribution.
++
++How to build and run miniupnpd for your router running openwrt.
++These instructions apply to the OpenWRT WHITE RUSSIAN (RC6) version.
++My device is a Linksys WRT54G v1, used in pppoe mode.
++More information about OpenWRT on http://openwrt.org/
++
++First make sure that openwrt white russian RC6 is up and running on your
++router device.
++
++NOTES : Makefile.openwrt has been updated, following informations could
++        be inacurate.
++        The X-Wrt team made an ipk package out of miniupnpd,
++        check the webpage : http://www.x-wrt.org/
++
++* A. COMPILATION *
++
++To Build, use your PC. I have been using the SDK but you might need
++to compile the cross compiler yourself.
++
++1. Get the SDK from http://downloads.openwrt.org/whiterussian/rc6/
++   I used http://downloads.openwrt.org/whiterussian/rc6/OpenWrt-SDK-Linux-ppc-1.tar.bz2
++   unpack somewhere and add the bin directory to your PATH environement :
++   > tar xvjf OpenWrt-SDK-Linux-i686-1.tar.bz2
++   > PATH=`pwd`/OpenWrt-SDK-Linux-i686-1/staging_dir_mipsel/bin:$PATH
++   >  mipsel-linux-gcc --version
++mipsel-linux-gcc (GCC) 3.4.4 (OpenWrt-1.0)
++[...]
++
++2. Get iptables 1.3.3 sources from http://downloads.openwrt.org/sources/iptables-1.3.3.tar.bz2
++   unpack and compile libiptc.a
++   > tar xvjf iptables-1.3.3.tar.bz2
++   > cd iptables-1.3.3/libiptc/
++   > make CC=mipsel-linux-gcc
++
++3. Go to miniupnpd directory and edit the Makefile.openwrt to make
++   IPTABLESINC and LIBS variables point to the correct directory.
++   > make -f Makefile.openwrt
++   > mipsel-linux-strip miniupnpd
++
++That's it !
++
++
++* B. INSTALLATION - USAGE *
++
++1. copy miniupnpd and scripts to the device :
++   > scp miniupnpd root@192.168.1.1:.
++   > cd linux
++   > scp iptables_init.sh iptables_flush.sh root@192.168.1.1:.
++   > scp iptables_display.sh iptables_removall.sh root@192.168.1.1:.
++
++2. log onto your router and edit the scripts in order to adapt to your
++   configuration : EXTIF variable shoud be set to your external network
++   interface. In my case it is ppp0
++
++3. init tables :
++   > ./iptables_init.sh
++
++4. run the daemon :
++   ./miniupnpd -i ppp0 -a 192.168.1.1 -p 5000 -U -d
++   -d option is a debug option to prevent the program from going to
++   background. It is usefull to see the debug messages and check if everything
++   is ok.
++
++5. Once you checked that everything is ok,
++   you can set up a script in /etc/init.d etc...
++
++   If you can build an ipkg package for miniupnpd, I'll be glad !
++
++Thomas
++contact me by email : miniupnp@free.fr
++
++