summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McLean <chutzpah@gentoo.org>2016-04-12 18:11:47 -0700
committerPatrick McLean <chutzpah@gentoo.org>2016-04-12 18:12:10 -0700
commit128b74fe25d08b3f8d17e3ee793d87131eba9c37 (patch)
tree809f2974e3a4801d9968279b7b7eb4f39d5dde5a /net-misc/miniupnpd
parentnet-misc/miniupnpd: Add myself as co-maintainer (diff)
downloadgentoo-128b74fe25d08b3f8d17e3ee793d87131eba9c37.tar.gz
gentoo-128b74fe25d08b3f8d17e3ee793d87131eba9c37.tar.bz2
gentoo-128b74fe25d08b3f8d17e3ee793d87131eba9c37.zip
net-misc/miniupnpd: Version bump, expose several options through USE flags
This also reworks the init script to be more modern and allows skipping of the iptables manipulation scripts. Package-Manager: portage-2.2.28
Diffstat (limited to 'net-misc/miniupnpd')
-rw-r--r--net-misc/miniupnpd/Manifest1
-rw-r--r--net-misc/miniupnpd/files/miniupnpd-1.10_pre20160222-build.patch125
-rw-r--r--net-misc/miniupnpd/files/miniupnpd-conf.d-r110
-rw-r--r--net-misc/miniupnpd/files/miniupnpd-init.d-r133
-rw-r--r--net-misc/miniupnpd/metadata.xml7
-rw-r--r--net-misc/miniupnpd/miniupnpd-1.10_pre20160222.ebuild76
6 files changed, 252 insertions, 0 deletions
diff --git a/net-misc/miniupnpd/Manifest b/net-misc/miniupnpd/Manifest
index 9915e8c9e3bb..521d04996f00 100644
--- a/net-misc/miniupnpd/Manifest
+++ b/net-misc/miniupnpd/Manifest
@@ -1 +1,2 @@
DIST miniupnpd-1.9.20150721.tar.gz 207562 SHA256 9340224e5023ecb5d1b7f45e4d69734dcfbadbe41a80d1f0182347e6b8104470 SHA512 ed060a19bfb8f285c10d0c86ca54b646d8cad6baf29266bb395fe75ec23de63986a51362281213e9a14cd14225cc19a33cf404a139a55c7b0f72ced78581c660 WHIRLPOOL 9050b20f6118c63fe9d1cce8c8710e47e9e491ff28a1df29bf4b7a1e4e57fa537b06ce8ed667c1bc138e63dc23ba95a793980a32586c84a4728aa5977d10c6d4
+DIST miniupnpd-1.9.20160222.tar.gz 217541 SHA256 e7d9d071876ac2ed41a04fe4436f8a8d4329c5c31d940e98c6666ca26823c960 SHA512 ebc24a69fde793a537c46bc1e2107f94a17b0d8818aa23a4b6faeb2b735f35db840a6ccc49efbe62a3960ad1f346bbb183b6d06eb5ac42c98c2d56c02869fdda WHIRLPOOL 12ef3a7861b2238cd806836a972438c2b60c9f2558aee2a36eb8f6dbea149dc289447697d55b11147c20cee9fde5f1bc7fbd13e86190b82a47d7d2242482774b
diff --git a/net-misc/miniupnpd/files/miniupnpd-1.10_pre20160222-build.patch b/net-misc/miniupnpd/files/miniupnpd-1.10_pre20160222-build.patch
new file mode 100644
index 000000000000..3323b1cfd86f
--- /dev/null
+++ b/net-misc/miniupnpd/files/miniupnpd-1.10_pre20160222-build.patch
@@ -0,0 +1,125 @@
+diff --git a/Makefile.linux b/Makefile.linux
+index ce6b994..e535c38 100644
+--- a/Makefile.linux
++++ b/Makefile.linux
+@@ -36,6 +36,7 @@ INSTALL = install
+ STRIP ?= strip
+ PKG_CONFIG ?= pkg-config
+ CP = cp
++LDLIBS_IPV6 :=
+
+
+ INSTALLPREFIX ?= $(PREFIX)/usr
+@@ -55,90 +56,8 @@ NETFILTEROBJS = netfilter/iptcrdr.o netfilter/iptpinhole.o netfilter/nfct_get.o
+
+ ALLOBJS = $(BASEOBJS) $(LNXOBJS) $(NETFILTEROBJS)
+
+-PCFILE_FOUND := $(shell $(PKG_CONFIG) --exists libiptc; echo $$?)
+-
+-ifeq (${PCFILE_FOUND},0)
+-
+-IPTABLESVERSION := $(shell $(PKG_CONFIG) --modversion libiptc)
+-IPTABLESVERSION1 := $(shell echo $(IPTABLESVERSION) | cut -d. -f1 )
+-IPTABLESVERSION2 := $(shell echo $(IPTABLESVERSION) | cut -d. -f2 )
+-IPTABLESVERSION3 := $(shell echo $(IPTABLESVERSION) | cut -d. -f3 )
+-# test if iptables version >= 1.4.3
+-TEST := $(shell [ \( \( $(IPTABLESVERSION1) -ge 1 \) -a \( $(IPTABLESVERSION2) -ge 4 \) \) -a \( $(IPTABLESVERSION3) -ge 3 \) ] && echo 1 )
+-ifeq ($(TEST), 1)
++LDLIBS += -lip4tc $(LDLIBS_IPV6)
+ CPPFLAGS += -DIPTABLES_143
+-endif
+-
+-CFLAGS += $(shell $(PKG_CONFIG) --cflags libiptc)
+-LDLIBS += $(shell $(PKG_CONFIG) --static --libs-only-l libiptc)
+-LDFLAGS += $(shell $(PKG_CONFIG) --libs-only-L libiptc)
+-LDFLAGS += $(shell $(PKG_CONFIG) --libs-only-other libiptc)
+-else
+-
+-ifeq "$(wildcard /etc/gentoo-release )" ""
+-LDLIBS ?= -liptc
+-else # gentoo
+-# the following is better, at least on gentoo with iptables 1.4.6
+-# see http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1618
+-# and http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=2183
+-LDLIBS ?= -lip4tc
+-CPPFLAGS := -DIPTABLES_143 $(CPPFLAGS)
+-endif
+-
+-ARCH ?= $(shell uname -m | grep -q "x86_64" && echo 64)
+-ifdef IPTABLESPATH
+-CPPFLAGS := $(CPPFLAGS) -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 )
+-IPTABLESVERSION3 := $(shell echo $(IPTABLESVERSION) | cut -d. -f3 )
+-# test if iptables version >= 1.4.3
+-TEST := $(shell [ \( \( $(IPTABLESVERSION1) -ge 1 \) -a \( $(IPTABLESVERSION2) -ge 4 \) \) -a \( $(IPTABLESVERSION3) -ge 3 \) ] && echo 1 )
+-ifeq ($(TEST), 1)
+-CPPFLAGS := $(CPPFLAGS) -DIPTABLES_143
+-# the following sucks, but works
+-LDLIBS = $(IPTABLESPATH)/libiptc/.libs/libip4tc.o
+-#LDLIBS = $(IPTABLESPATH)/libiptc/.libs/libiptc.a
+-else # ifeq ($(TEST), 1)
+-LDLIBS = $(IPTABLESPATH)/libiptc/libiptc.a
+-endif # ifeq ($(TEST), 1)
+-else # ($(TARGET_OPENWRT),)
+-# openWRT :
+-# check for system-wide iptables files. Test if iptables version >= 1.4.3
+-# the following test has to be verified :
+-TEST := $(shell test -f /usr/include/iptables/internal.h && grep -q "\#define IPTABLES_VERSION" /usr/include/iptables/internal.h && echo 1)
+-ifeq ($(TEST), 1)
+-CPPFLAGS := $(CPPFLAGS) -DIPTABLES_143
+-LDLIBS = -liptc
+-endif # ($(TEST), 1)
+-TEST_LIB := $(shell test -f /usr/lib$(ARCH)/libiptc.a && echo 1)
+-ifeq ($(TEST_LIB), 1)
+-LDLIBS = -liptc /usr/lib$(ARCH)/libiptc.a
+-endif # ($(TEST_LIB), 1)
+-endif # ($(TARGET_OPENWRT),)
+-else # ifdef IPTABLESPATH
+-# IPTABLESPATH not defined
+-# the following test has to be verified :
+-TEST := $(shell test -f /usr/include/xtables.h && grep -q "XTABLES_VERSION_CODE" /usr/include/xtables.h && echo 1)
+-ifeq ($(TEST), 1)
+-CPPFLAGS := $(CPPFLAGS) -DIPTABLES_143
+-LDLIBS = -liptc
+-TESTIP4TC := $(shell test -f /lib/libip4tc.so && echo 1)
+-ifeq ($(TESTIP4TC), 1)
+-LDLIBS := $(LDLIBS) -lip4tc
+-endif # ($(TESTIP4TC), 1)
+-TESTIP6TC := $(shell test -f /lib/libip6tc.so && echo 1)
+-ifeq ($(TESTIP6TC), 1)
+-LDLIBS := $(LDLIBS) -lip6tc
+-endif # ($(TESTIP6TC), 1)
+-endif # ($(TEST), 1)
+-endif # ifdef IPTABLESPATH
+-endif # ifdef PCFILE_FOUND
+-
+-#LDLIBS += -lnfnetlink
+
+ TEST := $(shell $(PKG_CONFIG) --atleast-version=1.0.2 libnetfilter_conntrack && $(PKG_CONFIG) --atleast-version=1.0.3 libmnl && echo 1)
+ ifeq ($(TEST),1)
+@@ -194,7 +113,6 @@ install: miniupnpd miniupnpd.8 miniupnpd.conf genuuid \
+ $(INSTALL) linux/miniupnpd.init.d.script $(DESTDIR)$(PREFIX)/etc/init.d/miniupnpd
+ $(INSTALL) -d $(DESTDIR)$(MANINSTALLDIR)
+ $(INSTALL) --mode=0644 miniupnpd.8 $(DESTDIR)$(MANINSTALLDIR)
+- gzip -f $(DESTDIR)$(MANINSTALLDIR)/miniupnpd.8
+
+ # genuuid is using the uuidgen CLI tool which is part of libuuid
+ # from the e2fsprogs
+diff --git a/genconfig.sh b/genconfig.sh
+index 976e963..faef028 100755
+--- a/genconfig.sh
++++ b/genconfig.sh
+@@ -299,7 +299,7 @@ case $OS_NAME in
+ fi
+ echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
+ FW=netfilter
+- V6SOCKETS_ARE_V6ONLY=`/sbin/sysctl -n net.ipv6.bindv6only`
++ V6SOCKETS_ARE_V6ONLY=`/usr/sbin/sysctl -n net.ipv6.bindv6only`
+ ;;
+ OpenWRT)
+ OS_URL=http://www.openwrt.org/
diff --git a/net-misc/miniupnpd/files/miniupnpd-conf.d-r1 b/net-misc/miniupnpd/files/miniupnpd-conf.d-r1
new file mode 100644
index 000000000000..1464bf04bd18
--- /dev/null
+++ b/net-misc/miniupnpd/files/miniupnpd-conf.d-r1
@@ -0,0 +1,10 @@
+# /etc/conf.d/miniupnpd: Configuration for miniupnpd init script
+
+# extra arguments to be passed to the command
+#extra_args=""
+
+# the location of the configuration file
+#config_file="/etc/miniupnpd/miniupnpd.conf"
+
+# uncomment to not use included scripts to manipulate iptables
+#no_iptables_scripts=1
diff --git a/net-misc/miniupnpd/files/miniupnpd-init.d-r1 b/net-misc/miniupnpd/files/miniupnpd-init.d-r1
new file mode 100644
index 000000000000..99406106a86d
--- /dev/null
+++ b/net-misc/miniupnpd/files/miniupnpd-init.d-r1
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/miniupnpd"
+: "${config_file:=/etc/miniupnpd/miniupnpd.conf}"
+command_args="-f ${config_file:-/etc/miniupnpd/miniupnpd.conf} ${extra_args}"
+: "${pidfile:=/var/run/miniupnpd.pid}"
+
+depend() {
+ need net iptables
+ use minissdpd
+}
+
+start_pre() {
+ local retval=0
+
+ if [[ -z ${no_iptables_scripts} ]]; then
+ /etc/miniupnpd/iptables_init.sh || retval=${?}
+ fi
+
+ return ${retval}
+}
+
+stop_post() {
+ local retval=0
+
+ if [[ -z ${no_iptables_scripts} ]]; then
+ /etc/miniupnpd/iptables_removeall.sh
+ fi
+
+ return ${retval}
+}
diff --git a/net-misc/miniupnpd/metadata.xml b/net-misc/miniupnpd/metadata.xml
index d788fe66e850..902c9408d39a 100644
--- a/net-misc/miniupnpd/metadata.xml
+++ b/net-misc/miniupnpd/metadata.xml
@@ -12,4 +12,11 @@
<longdescription>
MiniUPnP Internet Gateway Device Deamon, used to allow UPnP enabled clients to forward ports.
</longdescription>
+ <use>
+ <flag name="leasefile">Enable lease file.</flag>
+ <flag name="igd2">Build for IGDv2 instead of an IGDv1</flag>
+ <flag name="pcp-peer">Enable support for PCP-PEER to allow NAT-PMP clients to mangle their packets.</flag>
+ <flag name="portinuse">Check if a port is in use before allowing a NAT-PMP client to map it.</flag>
+ <flag name="strict">Be more strict regarding compliance with UPnP specifications.</flag>
+ </use>
</pkgmetadata>
diff --git a/net-misc/miniupnpd/miniupnpd-1.10_pre20160222.ebuild b/net-misc/miniupnpd/miniupnpd-1.10_pre20160222.ebuild
new file mode 100644
index 000000000000..061fa32c24ec
--- /dev/null
+++ b/net-misc/miniupnpd/miniupnpd-1.10_pre20160222.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit eutils toolchain-funcs versionator flag-o-matic
+
+MY_PV=$(get_version_component_range 3)
+MY_PV=1.9.${MY_PV#pre}
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="MiniUPnP IGD Daemon"
+HOMEPAGE="http://miniupnp.free.fr/"
+SRC_URI="http://miniupnp.free.fr/files/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+leasefile igd2 ipv6 pcp-peer portinuse strict"
+
+RDEPEND=">=net-firewall/iptables-1.4.6:0=[ipv6?]
+ net-libs/libnfnetlink:=
+ net-libs/libmnl:=
+ dev-libs/gmp:0=
+ sys-apps/util-linux
+ dev-libs/openssl:0="
+DEPEND="${RDEPEND}
+ sys-apps/lsb-release"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.10_pre20160222-build.patch"
+)
+
+src_prepare() {
+ default
+ mv Makefile.linux Makefile || die
+}
+
+src_configure() {
+ local -a opts
+ opts=(
+ --vendorcfg
+ $(use igd2 && printf -- '--igd2\n')
+ $(use ipv6 && printf -- '--ipv6\n')
+ $(use leasefile && printf -- '--leasefile\n')
+ $(use portinuse && printf -- '--portinuse\n')
+ $(use pcp-peer && printf -- '--pcp-peer\n')
+ $(use strict && printf -- '--strict\n')
+ )
+
+ emake CONFIG_OPTIONS="${opts[*]}" config.h
+}
+
+src_compile() {
+ # By default, it builds a bunch of unittests that are missing wrapper
+ # scripts in the tarball
+ emake CC="$(tc-getCC)" \
+ STRIP=true \
+ LDLIBS_IPV6="$(use ipv6 && printf -- '-lip6tc')" \
+ miniupnpd
+}
+
+src_install() {
+ emake PREFIX="${ED}" STRIP=true install
+
+ newinitd "${FILESDIR}"/${PN}-init.d-r1 ${PN}
+ newconfd "${FILESDIR}"/${PN}-conf.d-r1 ${PN}
+}
+
+pkg_postinst() {
+ elog "Please correct the external interface in the top of the two"
+ elog "scripts in /etc/miniupnpd and edit the config file in there too"
+}