summaryrefslogtreecommitdiff
path: root/net-misc/miniupnpd/miniupnpd-2.3.5.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/miniupnpd/miniupnpd-2.3.5.ebuild')
-rw-r--r--net-misc/miniupnpd/miniupnpd-2.3.5.ebuild108
1 files changed, 108 insertions, 0 deletions
diff --git a/net-misc/miniupnpd/miniupnpd-2.3.5.ebuild b/net-misc/miniupnpd/miniupnpd-2.3.5.ebuild
new file mode 100644
index 000000000000..ef90208e7b6d
--- /dev/null
+++ b/net-misc/miniupnpd/miniupnpd-2.3.5.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs verify-sig
+
+DESCRIPTION="MiniUPnP IGD Daemon"
+HOMEPAGE="
+ http://miniupnp.free.fr/
+ https://miniupnp.tuxfamily.org/
+ https://github.com/miniupnp/miniupnp/
+"
+SRC_URI="
+ https://miniupnp.tuxfamily.org/files/${P}.tar.gz
+ verify-sig? (
+ https://miniupnp.tuxfamily.org/files/${P}.tar.gz.sig
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+IUSE="+leasefile igd2 ipv6 nftables pcp-peer portinuse strict"
+
+RDEPEND="
+ dev-libs/gmp:0=
+ sys-apps/util-linux:=
+ dev-libs/openssl:0=
+ !nftables? (
+ >=net-firewall/iptables-1.4.6:0=[ipv6(+)?]
+ net-libs/libnfnetlink:=
+ net-libs/libmnl:=
+ )
+ nftables? (
+ net-firewall/nftables
+ net-libs/libnftnl:=
+ net-libs/libmnl:=
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ elibc_musl? ( sys-libs/queue-standalone )
+"
+BDEPEND="
+ sys-apps/lsb-release
+ verify-sig? ( sec-keys/openpgp-keys-miniupnp )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/miniupnp.asc
+
+src_prepare() {
+ default
+
+ # fails without a default route
+ sed -i -e 's:EXTIF=.*:EXTIF=lo:' testgetifaddr.sh || die
+}
+
+src_configure() {
+ local opts=(
+ --vendorcfg
+ $(usex igd2 '--igd2' '')
+ $(usex ipv6 '--ipv6' '')
+ $(usex leasefile '--leasefile' '')
+ $(usex portinuse '--portinuse' '')
+ $(usex pcp-peer '--pcp-peer' '')
+ $(usex strict '--strict' '')
+ --firewall=$(usex nftables nftables iptables)
+ )
+
+ # custom script
+ ./configure "${opts[@]}" || die
+ # prevent gzipping manpage
+ sed -i -e '/gzip/d' Makefile || die
+}
+
+src_compile() {
+ # By default, it builds a bunch of unittests that are missing wrapper
+ # scripts in the tarball
+ emake CC="$(tc-getCC)" STRIP=true miniupnpd
+}
+
+src_test() {
+ emake CC="$(tc-getCC)" check
+}
+
+src_install() {
+ emake PREFIX="${ED}" STRIP=true install
+
+ local confd_seds=()
+ if use nftables; then
+ confd_seds+=( -e 's/^iptables_scripts=/#&/' )
+ else
+ confd_seds+=( -e 's/^nftables_scripts=/#&/' )
+ fi
+ if ! use ipv6 || use nftables; then
+ confd_seds+=( -e 's/^ip6tables_scripts=/#&/' )
+ fi
+
+ newinitd "${FILESDIR}"/${PN}-init.d-r2 ${PN}
+ newconfd - ${PN} < <(sed "${confd_seds[@]}" \
+ "${FILESDIR}"/${PN}-conf.d-r2 || die)
+}
+
+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"
+}