diff options
author | Patrick McLean <chutzpah@gentoo.org> | 2016-04-12 18:11:47 -0700 |
---|---|---|
committer | Patrick McLean <chutzpah@gentoo.org> | 2016-04-12 18:12:10 -0700 |
commit | 128b74fe25d08b3f8d17e3ee793d87131eba9c37 (patch) | |
tree | 809f2974e3a4801d9968279b7b7eb4f39d5dde5a /net-misc/miniupnpd | |
parent | net-misc/miniupnpd: Add myself as co-maintainer (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | net-misc/miniupnpd/files/miniupnpd-1.10_pre20160222-build.patch | 125 | ||||
-rw-r--r-- | net-misc/miniupnpd/files/miniupnpd-conf.d-r1 | 10 | ||||
-rw-r--r-- | net-misc/miniupnpd/files/miniupnpd-init.d-r1 | 33 | ||||
-rw-r--r-- | net-misc/miniupnpd/metadata.xml | 7 | ||||
-rw-r--r-- | net-misc/miniupnpd/miniupnpd-1.10_pre20160222.ebuild | 76 |
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" +} |