summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2024-06-16 23:33:50 +0100
committerJames Le Cuirot <chewi@gentoo.org>2024-06-16 23:33:50 +0100
commit57d4ce1472ddaf7879e4419495c037420155920b (patch)
treeeb76f5f4058b27131821c711244434422c1b68ca /games-strategy
parentsys-kernel/git-sources: add 6.10_rc4 (diff)
downloadgentoo-57d4ce1472ddaf7879e4419495c037420155920b.tar.gz
gentoo-57d4ce1472ddaf7879e4419495c037420155920b.tar.bz2
gentoo-57d4ce1472ddaf7879e4419495c037420155920b.zip
games-strategy/0ad: Fix compatibility with miniupnpc 2.2.8 with patch
Thanks to Torsten Kaiser for the patch. Closes: https://bugs.gentoo.org/934315 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild1
-rw-r--r--games-strategy/0ad/files/0ad-0.0.26_alpha-miniupnpc.patch38
2 files changed, 39 insertions, 0 deletions
diff --git a/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild b/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild
index 7c7373e81a78..e910f14e5bd2 100644
--- a/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild
+++ b/games-strategy/0ad/0ad-0.0.26_alpha-r1.ebuild
@@ -103,6 +103,7 @@ PATCHES=(
"${FILESDIR}"/${P}-libxml2-2.12.patch
# https://code.wildfiregames.com/D5267
"${FILESDIR}"/${P}-boost-1.85.patch
+ "${FILESDIR}"/${P}-miniupnpc.patch
)
pkg_setup() {
diff --git a/games-strategy/0ad/files/0ad-0.0.26_alpha-miniupnpc.patch b/games-strategy/0ad/files/0ad-0.0.26_alpha-miniupnpc.patch
new file mode 100644
index 000000000000..f17cee4e36f2
--- /dev/null
+++ b/games-strategy/0ad/files/0ad-0.0.26_alpha-miniupnpc.patch
@@ -0,0 +1,38 @@
+Adapt to changes from API 18
+
+https://github.com/miniupnp/miniupnp/commit/c0a50ce33e3b99ce8a96fd43049bb5b53ffac62f
+https://bugs.gentoo.org/934315
+
+--- a/source/network/NetServer.cpp 2022-09-23 21:17:14.000000000 +0200
++++ a/source/network/NetServer.cpp 2024-06-14 21:43:26.572418719 +0200
+@@ -302,7 +302,11 @@
+ else if ((devlist = upnpDiscover(10000, 0, 0, 0, 0, 0)) != NULL)
+ #endif
+ {
++#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18
++ ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress), NULL, 0);
++#else
+ ret = UPNP_GetValidIGD(devlist, &urls, &data, internalIPAddress, sizeof(internalIPAddress));
++#endif
+ allocatedUrls = ret != 0; // urls is allocated on non-zero return values
+ }
+ else
+@@ -321,9 +325,18 @@
+ LOGMESSAGE("Net server: found valid IGD = %s", urls.controlURL);
+ break;
+ case 2:
++#if defined(MINIUPNPC_API_VERSION) && MINIUPNPC_API_VERSION >= 18
++ LOGMESSAGE("Net server: found a valid IGD with a reserved address = %s, will try to continue anyway", urls.controlURL);
++ break;
++ case 3:
++ LOGMESSAGE("Net server: found a valid, not connected IGD = %s, will try to continue anyway", urls.controlURL);
++ break;
++ case 4:
++#else
+ LOGMESSAGE("Net server: found a valid, not connected IGD = %s, will try to continue anyway", urls.controlURL);
+ break;
+ case 3:
++#endif
+ LOGMESSAGE("Net server: found a UPnP device unrecognized as IGD = %s, will try to continue anyway", urls.controlURL);
+ break;
+ default: