mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 23:09:44 -04:00
Merge bitcoin/bitcoin#29707: depends: build miniupnpc with CMake
5195baa600
depends: fix miniupnpc snprintf usage on Windows (fanquake)3c2d440f14
depends: switch miniupnpc to CMake (Cory Fields)f5618c79d9
depends: add upstream CMake patch to miniupnpc (fanquake)6866b571ab
depends: miniupnpc 2.2.7 (fanquake) Pull request description: This picks up one of the changes from #29232, which is a switch to building miniupnpc with CMake. It includes an update to the most recent version of miniupnpc (2.2.7), which means we can drop one patch from that commit, and includes a new patch for a change I've upstreamed https://github.com/miniupnp/miniupnp/pull/721, as well as some suggestions from the previous PR. ACKs for top commit: theuni: ACK5195baa600
. TheCharlatan: utACK5195baa600
Tree-SHA512: 5b27e132cd5eed285e9be34c8b96893417d92a1ae55c99345c9a89e1c1c5e40e4bc840bc061b879758b2b11fcb520cd98c3da985c1e153f2e5380cf63efe2d69
This commit is contained in:
commit
1cc3aa4d21
7 changed files with 76 additions and 66 deletions
|
@ -1,30 +1,31 @@
|
||||||
package=miniupnpc
|
package=miniupnpc
|
||||||
$(package)_version=2.2.2
|
$(package)_version=2.2.7
|
||||||
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
|
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
|
||||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||||
$(package)_sha256_hash=888fb0976ba61518276fe1eda988589c700a3f2a69d71089260d75562afd3687
|
$(package)_sha256_hash=b0c3a27056840fd0ec9328a5a9bac3dc5e0ec6d2e8733349cf577b0aa1e70ac1
|
||||||
$(package)_patches=dont_leak_info.patch respect_mingw_cflags.patch no_libtool.patch
|
$(package)_patches=dont_leak_info.patch cmake_get_src_addr.patch fix_windows_snprintf.patch
|
||||||
|
$(package)_build_subdir=build
|
||||||
|
|
||||||
# Next time this package is updated, ensure that _WIN32_WINNT is still properly set.
|
|
||||||
# See discussion in https://github.com/bitcoin/bitcoin/pull/25964.
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_build_opts=CC="$($(package)_cc)"
|
$(package)_config_opts = -DUPNPC_BUILD_SAMPLE=OFF -DUPNPC_BUILD_SHARED=OFF
|
||||||
$(package)_build_opts_mingw32=-f Makefile.mingw CFLAGS="$($(package)_cflags) -D_WIN32_WINNT=0x0601"
|
$(package)_config_opts += -DUPNPC_BUILD_STATIC=ON -DUPNPC_BUILD_TESTS=OFF
|
||||||
$(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$($(package)_ar)"
|
$(package)_config_opts_mingw32 += -DMINIUPNPC_TARGET_WINDOWS_VERSION=0x0601
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
patch -p1 < $($(package)_patch_dir)/dont_leak_info.patch && \
|
patch -p1 < $($(package)_patch_dir)/dont_leak_info.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/respect_mingw_cflags.patch && \
|
patch -p1 < $($(package)_patch_dir)/cmake_get_src_addr.patch && \
|
||||||
patch -p1 < $($(package)_patch_dir)/no_libtool.patch
|
patch -p1 < $($(package)_patch_dir)/fix_windows_snprintf.patch
|
||||||
|
endef
|
||||||
|
|
||||||
|
define $(package)_config_cmds
|
||||||
|
$($(package)_cmake) -S .. -B .
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
$(MAKE) libminiupnpc.a $($(package)_build_opts)
|
$(MAKE)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_stage_cmds
|
define $(package)_stage_cmds
|
||||||
mkdir -p $($(package)_staging_prefix_dir)/include/miniupnpc $($(package)_staging_prefix_dir)/lib &&\
|
cmake --install . --prefix $($(package)_staging_prefix_dir)
|
||||||
install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
|
|
||||||
install libminiupnpc.a $($(package)_staging_prefix_dir)/lib
|
|
||||||
endef
|
endef
|
||||||
|
|
22
depends/patches/miniupnpc/cmake_get_src_addr.patch
Normal file
22
depends/patches/miniupnpc/cmake_get_src_addr.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
commit cb2026239c2a3aff393952ccb0ee1c448189402d
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Fri Mar 22 14:03:54 2024 +0000
|
||||||
|
|
||||||
|
build: add MINIUPNPC_GET_SRC_ADDR to CMake build
|
||||||
|
|
||||||
|
This mirrors the autotools build.
|
||||||
|
|
||||||
|
See https://github.com/miniupnp/miniupnp/pull/721.
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 1aa95a8..0cacf3e 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -31,6 +31,7 @@ endif ()
|
||||||
|
if (NOT WIN32)
|
||||||
|
target_compile_definitions(miniupnpc-private INTERFACE
|
||||||
|
MINIUPNPC_SET_SOCKET_TIMEOUT
|
||||||
|
+ MINIUPNPC_GET_SRC_ADDR
|
||||||
|
_BSD_SOURCE _DEFAULT_SOURCE)
|
||||||
|
if (NOT APPLE AND NOT CMAKE_SYSTEM_NAME MATCHES ".*BSD" AND NOT CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||||
|
# add_definitions (-D_POSIX_C_SOURCE=200112L)
|
|
@ -1,31 +1,31 @@
|
||||||
commit 8815452257437ba36607d0e2381c01142d1c7bb0
|
commit 51f6dd991c29af66fb4f64c6feb2787cce23a1a7
|
||||||
Author: fanquake <fanquake@gmail.com>
|
Author: fanquake <fanquake@gmail.com>
|
||||||
Date: Thu Nov 19 10:51:19 2020 +0800
|
Date: Mon Jan 8 11:21:40 2024 +0000
|
||||||
|
|
||||||
Don't leak OS and miniupnpc version info in User-Agent
|
Don't leak OS and miniupnpc version info in User-Agent
|
||||||
|
|
||||||
diff --git a//minisoap.c b/minisoap.c
|
diff --git a/src/minisoap.c b/src/minisoap.c
|
||||||
index 7860667..775580b 100644
|
index 903ac5f..046e0ea 100644
|
||||||
--- a/minisoap.c
|
--- a/src/minisoap.c
|
||||||
+++ b/minisoap.c
|
+++ b/src/minisoap.c
|
||||||
@@ -90,7 +90,7 @@ int soapPostSubmit(SOCKET fd,
|
@@ -90,7 +90,7 @@ int soapPostSubmit(SOCKET fd,
|
||||||
headerssize = snprintf(headerbuf, sizeof(headerbuf),
|
headerssize = snprintf(headerbuf, sizeof(headerbuf),
|
||||||
"POST %s HTTP/%s\r\n"
|
"POST %s HTTP/%s\r\n"
|
||||||
"Host: %s%s\r\n"
|
"Host: %s%s\r\n"
|
||||||
- "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
|
- "User-Agent: " OS_STRING " " UPNP_VERSION_STRING " MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
|
||||||
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
|
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
|
||||||
"Content-Length: %d\r\n"
|
"Content-Length: %d\r\n"
|
||||||
|
#if (UPNP_VERSION_MAJOR == 1) && (UPNP_VERSION_MINOR == 0)
|
||||||
"Content-Type: text/xml\r\n"
|
"Content-Type: text/xml\r\n"
|
||||||
"SOAPAction: \"%s\"\r\n"
|
diff --git a/src/miniwget.c b/src/miniwget.c
|
||||||
diff --git a/miniwget.c b/miniwget.c
|
index e76a5e5..0cc36fe 100644
|
||||||
index d5b7970..05aeb9c 100644
|
--- a/src/miniwget.c
|
||||||
--- a/miniwget.c
|
+++ b/src/miniwget.c
|
||||||
+++ b/miniwget.c
|
|
||||||
@@ -444,7 +444,7 @@ miniwget3(const char * host,
|
@@ -444,7 +444,7 @@ miniwget3(const char * host,
|
||||||
"GET %s HTTP/%s\r\n"
|
"GET %s HTTP/%s\r\n"
|
||||||
"Host: %s:%d\r\n"
|
"Host: %s:%d\r\n"
|
||||||
"Connection: Close\r\n"
|
"Connection: Close\r\n"
|
||||||
- "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
|
- "User-Agent: " OS_STRING " " UPNP_VERSION_STRING " MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
|
||||||
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
|
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
|
||||||
|
|
||||||
"\r\n",
|
"\r\n",
|
||||||
|
|
25
depends/patches/miniupnpc/fix_windows_snprintf.patch
Normal file
25
depends/patches/miniupnpc/fix_windows_snprintf.patch
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
commit a1e9de80ab99b4c956a6a4e21d3e0de6f7a1014d
|
||||||
|
Author: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
|
||||||
|
Date: Sat Apr 20 15:14:47 2024 +0100
|
||||||
|
|
||||||
|
Fix macro expression that guards `snprintf` for Windows
|
||||||
|
|
||||||
|
Otherwise, the `snprintf` is still wrongly emulated for the following
|
||||||
|
cases:
|
||||||
|
- mingw-w64 6.0.0 or new with ucrt
|
||||||
|
- mingw-w64 8.0.0 or new with iso c ext
|
||||||
|
|
||||||
|
--- a/src/win32_snprintf.h
|
||||||
|
+++ b/src/win32_snprintf.h
|
||||||
|
@@ -23,9 +23,9 @@
|
||||||
|
(defined(_MSC_VER) && _MSC_VER < 1900) /* Visual Studio older than 2015 */ || \
|
||||||
|
(defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) && defined(__NO_ISOCEXT)) /* mingw32 without iso c ext */ || \
|
||||||
|
(defined(__MINGW64_VERSION_MAJOR) && /* mingw-w64 not ... */ !( \
|
||||||
|
- (defined (__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0)) /* ... with ansi stdio */ || \
|
||||||
|
+ (defined (__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0) /* ... with ansi stdio */ || \
|
||||||
|
(__MINGW64_VERSION_MAJOR >= 6 && defined(_UCRT)) /* ... at least 6.0.0 with ucrt */ || \
|
||||||
|
- (__MINGW64_VERSION_MAJOR >= 8 && !defined(__NO_ISOCEXT)) /* ... at least 8.0.0 with iso c ext */ || \
|
||||||
|
+ (__MINGW64_VERSION_MAJOR >= 8 && !defined(__NO_ISOCEXT))) /* ... at least 8.0.0 with iso c ext */ || \
|
||||||
|
0) || \
|
||||||
|
0)
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
diff -ruN miniupnpc-2.2.2/Makefile miniupnpc-2.2.2.new/Makefile
|
|
||||||
--- miniupnpc-2.2.2/Makefile 2020-11-27 18:25:02.000000000 +0000
|
|
||||||
+++ miniupnpc-2.2.2.new/Makefile 2024-01-23 20:58:08.387188527 +0000
|
|
||||||
@@ -298,11 +298,7 @@
|
|
||||||
makedepend -Y -- $(CFLAGS) -- $(SRCS) 2>/dev/null
|
|
||||||
|
|
||||||
$(LIBRARY): $(LIBOBJS)
|
|
||||||
-ifneq (, $(findstring darwin, $(OS)))
|
|
||||||
- $(LIBTOOL) -static -o $@ $?
|
|
||||||
-else
|
|
||||||
$(AR) crs $@ $?
|
|
||||||
-endif
|
|
||||||
|
|
||||||
$(SHAREDLIBRARY): $(LIBOBJS)
|
|
||||||
ifneq (, $(findstring darwin, $(OS)))
|
|
|
@ -1,23 +0,0 @@
|
||||||
commit fec515a7ac9991a0ee91068fda046b54b191155e
|
|
||||||
Author: fanquake <fanquake@gmail.com>
|
|
||||||
Date: Wed Jul 27 15:52:37 2022 +0100
|
|
||||||
|
|
||||||
build: respect CFLAGS in makefile.mingw
|
|
||||||
|
|
||||||
Similar to the other Makefile.
|
|
||||||
|
|
||||||
Cherry-pick of https://github.com/miniupnp/miniupnp/pull/619.
|
|
||||||
|
|
||||||
diff --git a/Makefile.mingw b/Makefile.mingw
|
|
||||||
index 2bff7bd..88430d2 100644
|
|
||||||
--- a/Makefile.mingw
|
|
||||||
+++ b/Makefile.mingw
|
|
||||||
@@ -19,7 +19,7 @@ else
|
|
||||||
RM = rm -f
|
|
||||||
endif
|
|
||||||
#CFLAGS = -Wall -g -DDEBUG -D_WIN32_WINNT=0X501
|
|
||||||
-CFLAGS = -Wall -W -Wstrict-prototypes -Os -DNDEBUG -D_WIN32_WINNT=0X501
|
|
||||||
+CFLAGS ?= -Wall -W -Wstrict-prototypes -Os -DNDEBUG -D_WIN32_WINNT=0X501
|
|
||||||
LDLIBS = -lws2_32 -liphlpapi
|
|
||||||
# -lwsock32
|
|
||||||
# -liphlpapi is needed for GetBestRoute() and GetIpAddrTable()
|
|
|
@ -36,7 +36,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
|
||||||
| Dependency | Releases | Version used | Minimum required | Runtime |
|
| Dependency | Releases | Version used | Minimum required | Runtime |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
| [libnatpmp](../depends/packages/libnatpmp.mk) | [link](https://github.com/miniupnp/libnatpmp/) | commit [f2433be...](https://github.com/bitcoin/bitcoin/pull/29708) | | No |
|
| [libnatpmp](../depends/packages/libnatpmp.mk) | [link](https://github.com/miniupnp/libnatpmp/) | commit [f2433be...](https://github.com/bitcoin/bitcoin/pull/29708) | | No |
|
||||||
| [MiniUPnPc](../depends/packages/miniupnpc.mk) | [link](https://miniupnp.tuxfamily.org/) | [2.2.2](https://github.com/bitcoin/bitcoin/pull/20421) | 2.1 | No |
|
| [MiniUPnPc](../depends/packages/miniupnpc.mk) | [link](https://miniupnp.tuxfamily.org/) | [2.2.7](https://github.com/bitcoin/bitcoin/pull/29707) | 2.1 | No |
|
||||||
|
|
||||||
### Notifications
|
### Notifications
|
||||||
| Dependency | Releases | Version used | Minimum required | Runtime |
|
| Dependency | Releases | Version used | Minimum required | Runtime |
|
||||||
|
|
Loading…
Add table
Reference in a new issue