commit:     a8479f02019951540c270384960b5d2e1923832b
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Thu Feb  6 12:16:53 2025 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu Feb  6 12:16:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8479f02

net-proxy/dante: add fix for >=miniupnpc-2.2.8

Closes: https://bugs.gentoo.org/943787
Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 net-proxy/dante/dante-1.4.3.ebuild                 |   3 +-
 net-proxy/dante/files/dante-1.4.3-upnp-2.2.8.patch | 247 +++++++++++++++++++++
 2 files changed, 249 insertions(+), 1 deletion(-)

diff --git a/net-proxy/dante/dante-1.4.3.ebuild 
b/net-proxy/dante/dante-1.4.3.ebuild
index 10bfc9b77559..76e749c3cc56 100644
--- a/net-proxy/dante/dante-1.4.3.ebuild
+++ b/net-proxy/dante/dante-1.4.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -46,6 +46,7 @@ PATCHES=(
        #"${FILESDIR}"/${PN}-1.4.1-miniupnp14.patch #564680 # upstreamed
        "${FILESDIR}"/${PN}-1.4.3-osdep-debug.patch
        "${FILESDIR}"/${PN}-1.4.3-gai-symbol.patch
+       "${FILESDIR}"/${PN}-1.4.3-upnp-2.2.8.patch
 )
 
 src_prepare() {

diff --git a/net-proxy/dante/files/dante-1.4.3-upnp-2.2.8.patch 
b/net-proxy/dante/files/dante-1.4.3-upnp-2.2.8.patch
new file mode 100644
index 000000000000..271d3094f80a
--- /dev/null
+++ b/net-proxy/dante/files/dante-1.4.3-upnp-2.2.8.patch
@@ -0,0 +1,247 @@
+--- a/configure
++++ b/configure
+@@ -32805,6 +32805,49 @@
+       LIBS=$oLIBS
+     fi
+     if test x"${have_libminiupnp}" = xt; then
++        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc 
version >= 2.2.8" >&5
++$as_echo_n "checking for miniupnpc version >= 2.2.8... " >&6; }
++      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++            #include <stdio.h>
++            #include <miniupnpc/miniupnpc.h>
++            #include <miniupnpc/upnpcommands.h>
++            #include <miniupnpc/upnperrors.h>
++int
++main ()
++{
++
++
++            #ifndef MINIUPNPC_API_VERSION
++          #error "no api version define"
++            #else
++            # if MINIUPNPC_API_VERSION < 18
++            #error "api version too low"
++            # endif
++            #endif
++  ;
++  return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAVE_LIBMINIUPNP 1" >>confdefs.h
++
++
++$as_echo "#define HAVE_LIBMINIUPNP228 1" >>confdefs.h
++
++          unset no_upnp
++        SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$UPNPLIB"
++        DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$UPNPLIB"
++else
++  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++
+         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for miniupnpc 
version >= 1.7" >&5
+ $as_echo_n "checking for miniupnpc version >= 1.7... " >&6; }
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+@@ -32822,8 +32865,8 @@
+             #ifndef MINIUPNPC_API_VERSION
+           #error "no api version define"
+             #else
+-            # if MINIUPNPC_API_VERSION < 8
+-            #error "api version too low"
++            # if MINIUPNPC_API_VERSION < 8 || MINIUPNPC_API_VERSION > 17
++            #error "api version too low or high"
+             # endif
+             #endif
+   ;
+--- ./include/autoconf.h.in.orig       2021-04-30 21:29:27.000000000 +0200
++++ ./include/autoconf.h.in    2025-01-13 13:18:20.846544677 +0100
+@@ -797,6 +797,9 @@
+ /* UPNP support library 1.7 */
+ #undef HAVE_LIBMINIUPNP17
+ 
++/* UPNP support library 2.2.8 */
++#undef HAVE_LIBMINIUPNP228
++
+ /* Define to 1 if you have the `prldap60' library (-lprldap60). */
+ #undef HAVE_LIBPRLDAP60
+ 
+--- ./include/common.h.orig    2021-02-02 20:34:15.000000000 +0100
++++ ./include/common.h 2025-01-13 13:16:32.969992076 +0100
+@@ -1404,9 +1404,20 @@
+ /* return codes from UPNP_GetValidIGD(). */
+ #define UPNP_NO_IGD           (0)
+ #define UPNP_CONNECTED_IGD    (1)
++
++#if HAVE_LIBMINIUPNP228
++
++#define UPNP_RESERVED_IGD     (2)
++#define UPNP_DISCONNECTED_IGD (3)
++#define UPNP_UNKNOWN_DEVICE   (4)
++
++#else /* !HAVE_LIBMINIUPNP_228 */
++
+ #define UPNP_DISCONNECTED_IGD (2)
+ #define UPNP_UNKNOWN_DEVICE   (3)
+ 
++#endif /* !HAVE_LIBMINIUPNP_228 */
++
+ #define UPNP_SUCCESS          (1)
+ #define UPNP_FAILURE          (2)
+ 
+--- ./include/redefac.h.orig   2021-04-30 21:48:32.000000000 +0200
++++ ./include/redefac.h        2025-01-13 13:13:43.206075810 +0100
+@@ -1004,6 +1004,10 @@
+ #define HAVE_LIBMINIUPNP17 0
+ #endif
+ 
++#ifndef HAVE_LIBMINIUPNP228
++#define HAVE_LIBMINIUPNP228 0
++#endif
++
+ #ifndef HAVE_LIBPRLDAP60
+ #define HAVE_LIBPRLDAP60 0
+ #endif
+--- ./lib/upnp.c.orig  2020-11-11 17:11:55.000000000 +0100
++++ ./lib/upnp.c       2024-11-21 17:02:49.000000000 +0100
+@@ -42,7 +42,7 @@
+  */
+ 
+ static const char rcsid[] =
+-"$Id: upnp.c,v 1.153.4.4.2.2.4.2 2020/11/11 16:11:55 karls Exp $";
++"$Id: upnp.c,v 1.153.4.4.2.2.4.2.4.1 2024/11/21 16:02:49 karls Exp $";
+ 
+ #include "common.h"
+ 
+@@ -154,7 +154,7 @@
+                            addrstring,
+                            NULL,
+                            0
+-#if HAVE_LIBMINIUPNP17
++#if HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228
+                           ,0,
+ 
+ #if MINIUPNPC_API_VERSION >= 14
+@@ -162,7 +162,7 @@
+ #endif /* MINIUPNPC_API_VERSION >= 14 */
+ 
+                           &rc
+-#endif /* HAVE_LIBMINIUPNP17 */
++#endif /* HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228 */
+                          );
+ 
+ #if SOCKS_CLIENT && SOCKSLIBRARY_DYNAMIC
+@@ -208,7 +208,12 @@
+          socks_autoadd_directroute(&commands, &protocols, &saddr, &smask);
+       }
+ 
++#if HAVE_LIBMINIUPNP228
++      devtype = UPNP_GetValidIGD(dev, &url, &data, myaddr, sizeof(myaddr),
++                                 NULL, 0);
++#else /* !HAVE_LIBMINIUPNP228 */
+       devtype = UPNP_GetValidIGD(dev, &url, &data, myaddr, sizeof(myaddr));
++#endif /* !HAVE_LIBMINIUPNP228 */
+       switch (devtype) {
+          case UPNP_NO_IGD:
+             snprintf(emsg, emsglen, "no UPNP IGD discovered on local 
network");
+@@ -226,6 +231,20 @@
+             rc = 0;
+             break;
+ 
++#if HAVE_LIBMINIUPNP228
++         case UPNP_RESERVED_IGD:
++            snprintf(emsg, emsglen,
++                    "UPNP IGD discovered at url %s, but its IP is reserved",
++                    str2vis(url.controlURL,
++                           strlen(url.controlURL),
++                            vbuf,
++                            sizeof(vbuf)));
++
++            swarnx("%s: %s", function, emsg);
++            rc = -1;
++            break;
++#endif /* HAVE_LIBMINIUPNP228 */
++
+          case UPNP_DISCONNECTED_IGD:
+             snprintf(emsg, emsglen,
+                     "UPNP IGD discovered at url %s, but it is not connected",
+@@ -273,12 +292,12 @@
+ #if HAVE_LIBMINIUPNP13
+       STRCPY_ASSERTLEN(gw->state.data.upnp.servicetype, data.servicetype);
+ 
+-#elif HAVE_LIBMINIUPNP14 || HAVE_LIBMINIUPNP17
++#elif HAVE_LIBMINIUPNP14 || HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228
+       STRCPY_ASSERTLEN(gw->state.data.upnp.servicetype, data.CIF.servicetype);
+ 
+ #else
+ #  error "unexpected miniupnp version"
+-#endif /* HAVE_LIBMINIUPNP17 */
++#endif /* HAVE_LIBMINIUPNP14 || HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228 */
+ 
+       slog(LOG_NEGOTIATE, "%s: inited ok.  controlurl: %s, servicetype: %s",
+            function,
+@@ -756,9 +775,9 @@
+                                        buf,
+                                        protocol,
+                                        NULL
+-#if HAVE_LIBMINIUPNP17
++#if HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228
+                                        ,0
+-#endif /* HAVE_LIBMINIUPNP17 */
++#endif /* HAVE_LIBMINIUPNP17 || HAVE_LIBMINIUPNP228 */
+                                        )) != UPNPCOMMAND_SUCCESS) {
+                snprintf(emsg, emsglen,
+                        "UPNP_AddPortMapping() failed: %s", strupnperror(rc));
+--- ./miniupnpc.m4.orig        2012-11-02 13:08:14.000000000 +0100
++++ ./miniupnpc.m4     2024-11-21 17:02:49.000000000 +0100
+@@ -20,7 +20,7 @@
+       LIBS=$oLIBS
+     fi
+     if test x"${have_libminiupnp}" = xt; then
+-        AC_MSG_CHECKING([for miniupnpc version >= 1.7])
++        AC_MSG_CHECKING([for miniupnpc version >= 2.2.8])
+       AC_TRY_COMPILE([
+             #include <stdio.h>
+             #include <miniupnpc/miniupnpc.h>
+@@ -30,11 +30,33 @@
+             #ifndef MINIUPNPC_API_VERSION
+           #error "no api version define"
+             #else
+-            # if MINIUPNPC_API_VERSION < 8
++            # if MINIUPNPC_API_VERSION < 18
+             #error "api version too low"
+             # endif
+             #endif],
+          [AC_MSG_RESULT(yes)
++          AC_DEFINE(HAVE_LIBMINIUPNP, 1, [UPNP support library])
++          AC_DEFINE(HAVE_LIBMINIUPNP228, 1, [UPNP support library 2.2.8])
++          unset no_upnp
++        SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }$UPNPLIB"
++        DLIBDEPS="${DLIBDEPS}${DLIBDEPS:+ }$UPNPLIB"],
++         [AC_MSG_RESULT(no)])
++
++        AC_MSG_CHECKING([for miniupnpc version >= 1.7])
++      AC_TRY_COMPILE([
++            #include <stdio.h>
++            #include <miniupnpc/miniupnpc.h>
++            #include <miniupnpc/upnpcommands.h>
++            #include <miniupnpc/upnperrors.h>], [
++
++            #ifndef MINIUPNPC_API_VERSION
++          #error "no api version define"
++            #else
++            # if MINIUPNPC_API_VERSION < 8 || MINIUPNPC_API_VERSION > 17
++            #error "api version too low or high"
++            # endif
++            #endif],
++         [AC_MSG_RESULT(yes)
+           AC_DEFINE(HAVE_LIBMINIUPNP, 1, [UPNP support library])
+           AC_DEFINE(HAVE_LIBMINIUPNP17, 1, [UPNP support library 1.7])
+           unset no_upnp

Reply via email to