Skip to content

Commit 6866b57

Browse files
committed
depends: miniupnpc 2.2.7
Includes a temporary patch to fix the Windows Autotools build. See https://miniupnp.tuxfamily.org/files/changelog.php?file=miniupnpc-2.2.7.tar.gz.
1 parent 19865a8 commit 6866b57

File tree

5 files changed

+166
-48
lines changed

5 files changed

+166
-48
lines changed

depends/packages/miniupnpc.mk

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
package=miniupnpc
2-
$(package)_version=2.2.2
2+
$(package)_version=2.2.7
33
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
44
$(package)_file_name=$(package)-$($(package)_version).tar.gz
5-
$(package)_sha256_hash=888fb0976ba61518276fe1eda988589c700a3f2a69d71089260d75562afd3687
6-
$(package)_patches=dont_leak_info.patch respect_mingw_cflags.patch no_libtool.patch
5+
$(package)_sha256_hash=b0c3a27056840fd0ec9328a5a9bac3dc5e0ec6d2e8733349cf577b0aa1e70ac1
6+
$(package)_patches=dont_leak_info.patch no_libtool.patch fix_windows_build.patch
77

8-
# Next time this package is updated, ensure that _WIN32_WINNT is still properly set.
9-
# See discussion in https://github.com/bitcoin/bitcoin/pull/25964.
108
define $(package)_set_vars
119
$(package)_build_opts=CC="$($(package)_cc)"
12-
$(package)_build_opts_mingw32=-f Makefile.mingw CFLAGS="$($(package)_cflags) -D_WIN32_WINNT=0x0601"
10+
$(package)_build_opts_mingw32=-f Makefile.mingw CFLAGS="$($(package)_cflags)"
1311
$(package)_build_env+=CFLAGS="$($(package)_cflags) $($(package)_cppflags)" AR="$($(package)_ar)"
1412
endef
1513

1614
define $(package)_preprocess_cmds
1715
patch -p1 < $($(package)_patch_dir)/dont_leak_info.patch && \
18-
patch -p1 < $($(package)_patch_dir)/respect_mingw_cflags.patch && \
19-
patch -p1 < $($(package)_patch_dir)/no_libtool.patch
16+
patch -p1 < $($(package)_patch_dir)/no_libtool.patch && \
17+
patch -p1 < $($(package)_patch_dir)/fix_windows_build.patch
2018
endef
2119

2220
define $(package)_build_cmds
23-
$(MAKE) libminiupnpc.a $($(package)_build_opts)
21+
$(MAKE) build/libminiupnpc.a $($(package)_build_opts)
2422
endef
2523

2624
define $(package)_stage_cmds
2725
mkdir -p $($(package)_staging_prefix_dir)/include/miniupnpc $($(package)_staging_prefix_dir)/lib &&\
28-
install *.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
29-
install libminiupnpc.a $($(package)_staging_prefix_dir)/lib
26+
install include/*.h $($(package)_staging_prefix_dir)/include/miniupnpc &&\
27+
install build/libminiupnpc.a $($(package)_staging_prefix_dir)/lib
3028
endef

depends/patches/miniupnpc/dont_leak_info.patch

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
commit 8815452257437ba36607d0e2381c01142d1c7bb0
1+
commit 51f6dd991c29af66fb4f64c6feb2787cce23a1a7
22
Author: fanquake <[email protected]>
3-
Date: Thu Nov 19 10:51:19 2020 +0800
3+
Date: Mon Jan 8 11:21:40 2024 +0000
44

55
Don't leak OS and miniupnpc version info in User-Agent
66

7-
diff --git a//minisoap.c b/minisoap.c
8-
index 7860667..775580b 100644
9-
--- a/minisoap.c
10-
+++ b/minisoap.c
7+
diff --git a/src/minisoap.c b/src/minisoap.c
8+
index 903ac5f..046e0ea 100644
9+
--- a/src/minisoap.c
10+
+++ b/src/minisoap.c
1111
@@ -90,7 +90,7 @@ int soapPostSubmit(SOCKET fd,
1212
headerssize = snprintf(headerbuf, sizeof(headerbuf),
1313
"POST %s HTTP/%s\r\n"
1414
"Host: %s%s\r\n"
15-
- "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
15+
- "User-Agent: " OS_STRING " " UPNP_VERSION_STRING " MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
1616
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
1717
"Content-Length: %d\r\n"
18+
#if (UPNP_VERSION_MAJOR == 1) && (UPNP_VERSION_MINOR == 0)
1819
"Content-Type: text/xml\r\n"
19-
"SOAPAction: \"%s\"\r\n"
20-
diff --git a/miniwget.c b/miniwget.c
21-
index d5b7970..05aeb9c 100644
22-
--- a/miniwget.c
23-
+++ b/miniwget.c
20+
diff --git a/src/miniwget.c b/src/miniwget.c
21+
index e76a5e5..0cc36fe 100644
22+
--- a/src/miniwget.c
23+
+++ b/src/miniwget.c
2424
@@ -444,7 +444,7 @@ miniwget3(const char * host,
2525
"GET %s HTTP/%s\r\n"
2626
"Host: %s:%d\r\n"
2727
"Connection: Close\r\n"
28-
- "User-Agent: " OS_STRING ", " UPNP_VERSION_STRING ", MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
28+
- "User-Agent: " OS_STRING " " UPNP_VERSION_STRING " MiniUPnPc/" MINIUPNPC_VERSION_STRING "\r\n"
2929
+ "User-Agent: " UPNP_VERSION_STRING "\r\n"
3030

3131
"\r\n",
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
build: Temporary patch to make Windows compile
2+
3+
--- a/Makefile.mingw
4+
+++ b/Makefile.mingw
5+
@@ -9,10 +9,12 @@
6+
#
7+
SRCDIR = src
8+
INCDIR = include
9+
+BUILD = build
10+
11+
CC ?= gcc
12+
SETUP_COMPILER_FLAG?=
13+
DLLWRAP = dllwrap
14+
+MKDIR = mkdir -p
15+
WINDRES = windres
16+
SH = /bin/sh
17+
ZIP = zip
18+
@@ -26,24 +28,25 @@ CFLAGS ?= -Os
19+
CFLAGS += -Wall
20+
CFLAGS += -W -Wstrict-prototypes
21+
22+
-CPPFLAGS += -DNDEBUG -D_WIN32_WINNT=0x501
23+
+CPPFLAGS += -DNDEBUG -D_WIN32_WINNT=0x601
24+
CPPFLAGS += -Iinclude
25+
CPPFLAGS += -I.
26+
+CPPFLAGS += -I$(BUILD)
27+
28+
# -liphlpapi is needed for GetBestRoute() and GetIpAddrTable()
29+
LDLIBS = -lws2_32 -liphlpapi
30+
31+
PYTHON=\utils\python25\python
32+
-OBJS=miniwget.o minixml.o igd_desc_parse.o minisoap.o \
33+
+OBJS=$(addprefix $(BUILD)/,miniwget.o minixml.o igd_desc_parse.o minisoap.o \
34+
minissdpc.o \
35+
miniupnpc.o upnpreplyparse.o upnpcommands.o upnperrors.o \
36+
connecthostport.o portlistingparse.o receivedata.o \
37+
- upnpdev.o addr_is_reserved.o
38+
+ upnpdev.o addr_is_reserved.o)
39+
OBJSDLL=$(addprefix dll-, $(OBJS)) winres.o
40+
-BINARIES=upnpc-static.exe upnpc-shared.exe \
41+
+BINARIES=$(addprefix $(BUILD)/,upnpc-static.exe upnpc-shared.exe \
42+
upnp-listdevices-static.exe upnp-listdevices-shared.exe \
43+
miniupnpc.dll libminiupnpc.a \
44+
- testminixml.exe
45+
+ testminixml.exe)
46+
ifneq ($(GITHUB_SHA),)
47+
COMMITREF=$(GITHUB_SHA)
48+
else
49+
@@ -76,11 +79,12 @@ clean:
50+
$(RM) miniupnpc.dll miniupnpc.lib miniupnpc.dll.def
51+
$(RM) libminiupnpc.a
52+
$(RM) $(DISTFILE)
53+
+ $(RM) -r build/
54+
55+
$(DISTFILE): $(BINARIES)
56+
$(ZIP) $@ *.exe *.dll *.lib *.def *.a LICENSE README Changelog.txt
57+
58+
-libminiupnpc.a: $(OBJS)
59+
+$(BUILD)/libminiupnpc.a: $(OBJS)
60+
$(AR) cr $@ $?
61+
62+
pythonmodule: libminiupnpc.a
63+
@@ -97,13 +101,13 @@ miniupnpc.dll: miniupnpc.def $(OBJSDLL)
64+
65+
miniupnpc.lib: miniupnpc.dll
66+
67+
-%.o: $(SRCDIR)/%.c
68+
+$(BUILD)/%.o: $(SRCDIR)/%.c
69+
$(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_STATICLIB -c -o $@ $<
70+
71+
-dll-%.o: $(SRCDIR)/%.c
72+
+$(BUILD)/dll-%.o: $(SRCDIR)/%.c
73+
$(CC) $(CFLAGS) $(CPPFLAGS) -DMINIUPNP_EXPORTS -c -o $@ $<
74+
75+
-%-shared.o: $(SRCDIR)/%.c
76+
+$(BUILD)/%-shared.o: $(SRCDIR)/%.c
77+
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
78+
79+
# --enable-stdcall-fixup
80+
@@ -131,7 +135,8 @@ miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings.exe VERSION
81+
82+
rc_version.h: miniupnpcstrings.h
83+
else
84+
-miniupnpcstrings.h: miniupnpcstrings.h.in VERSION
85+
+$(BUILD)/miniupnpcstrings.h: miniupnpcstrings.h.in VERSION
86+
+ @$(MKDIR) $(@D)
87+
sed 's|OS_STRING ".*"|OS_STRING "Windows/Mingw32"|' $< | \
88+
sed 's|MINIUPNPC_VERSION_STRING ".*"|MINIUPNPC_VERSION_STRING "$(shell cat VERSION)"|' > $@
89+
90+
@@ -143,7 +148,7 @@ rc_version.h: VERSION
91+
92+
endif
93+
94+
-miniupnpc.pc: VERSION
95+
+$(BUILD)/miniupnpc.pc: VERSION
96+
$(RM) $@
97+
echo "prefix=$(INSTALLPREFIX)" >> $@
98+
echo "exec_prefix=\$${prefix}" >> $@
99+
@@ -156,32 +161,32 @@ miniupnpc.pc: VERSION
100+
echo "Libs: -L\$${libdir} -lminiupnpc" >> $@
101+
echo "Cflags: -I\$${includedir}" >> $@
102+
103+
-winres.o: miniupnpc.rc rc_version.h
104+
+$(BUILD)/winres.o: miniupnpc.rc rc_version.h
105+
$(WINDRES) -D INTERNAL_NAME=\\\"miniupnpc.dll\\0\\\" -i $< -o $@
106+
107+
testminixml.exe: testminixml.o minixml.o igd_desc_parse.o
108+
$(CC) -static -o $@ $^
109+
110+
-minixml.o: $(SRCDIR)/minixml.c $(SRCDIR)/minixml.h
111+
+$(BUILD)/minixml.o: $(SRCDIR)/minixml.c $(SRCDIR)/minixml.h
112+
113+
-upnpc.o: include/miniwget.h $(SRCDIR)/minisoap.h include/miniupnpc.h include/igd_desc_parse.h
114+
-upnpc.o: include/upnpreplyparse.h include/upnpcommands.h include/upnperrors.h miniupnpcstrings.h
115+
+$(BUILD)/upnpc.o: include/miniwget.h $(SRCDIR)/minisoap.h include/miniupnpc.h include/igd_desc_parse.h
116+
+$(BUILD)/upnpc.o: include/upnpreplyparse.h include/upnpcommands.h include/upnperrors.h miniupnpcstrings.h
117+
118+
-miniwget.o: $(SRCDIR)/miniwget.c include/miniwget.h miniupnpcstrings.h $(SRCDIR)/connecthostport.h
119+
+$(BUILD)/miniwget.o: $(SRCDIR)/miniwget.c include/miniwget.h $(BUILD)/miniupnpcstrings.h $(SRCDIR)/connecthostport.h
120+
121+
-minisoap.o: $(SRCDIR)/minisoap.c $(SRCDIR)/minisoap.h miniupnpcstrings.h
122+
+$(BUILD)/minisoap.o: $(SRCDIR)/minisoap.c $(SRCDIR)/minisoap.h $(BUILD)/miniupnpcstrings.h
123+
124+
-miniupnpc.o: $(SRCDIR)/miniupnpc.c include/miniupnpc.h $(SRCDIR)/minisoap.h \
125+
+$(BUILD)/miniupnpc.o: $(SRCDIR)/miniupnpc.c include/miniupnpc.h $(SRCDIR)/minisoap.h \
126+
include/miniwget.h $(SRCDIR)/minixml.h $(SRCDIR)/addr_is_reserved.h
127+
128+
-igd_desc_parse.o: $(SRCDIR)/igd_desc_parse.c include/igd_desc_parse.h
129+
+$(BUILD)/igd_desc_parse.o: $(SRCDIR)/igd_desc_parse.c include/igd_desc_parse.h
130+
131+
-upnpreplyparse.o: $(SRCDIR)/upnpreplyparse.c include/upnpreplyparse.h $(SRCDIR)/minixml.h
132+
+$(BUILD)/upnpreplyparse.o: $(SRCDIR)/upnpreplyparse.c include/upnpreplyparse.h $(SRCDIR)/minixml.h
133+
134+
-upnpcommands.o: $(SRCDIR)/upnpcommands.c include/upnpcommands.h include/upnpreplyparse.h \
135+
+$(BUILD)/upnpcommands.o: $(SRCDIR)/upnpcommands.c include/upnpcommands.h include/upnpreplyparse.h \
136+
include/miniupnpc.h include/portlistingparse.h
137+
138+
-minissdpc.o: $(SRCDIR)/minissdpc.c $(SRCDIR)/minissdpc.h $(SRCDIR)/receivedata.h
139+
+$(BUILD)/minissdpc.o: $(SRCDIR)/minissdpc.c $(SRCDIR)/minissdpc.h $(SRCDIR)/receivedata.h
140+
141+
-upnpdev.o: $(SRCDIR)/upnpdev.c include/upnpdev.h
142+
+$(BUILD)/upnpdev.o: $(SRCDIR)/upnpdev.c include/upnpdev.h
143+

depends/patches/miniupnpc/respect_mingw_cflags.patch

Lines changed: 0 additions & 23 deletions
This file was deleted.

doc/dependencies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ You can find installation instructions in the `build-*.md` file for your platfor
3636
| Dependency | Releases | Version used | Minimum required | Runtime |
3737
| --- | --- | --- | --- | --- |
3838
| [libnatpmp](../depends/packages/libnatpmp.mk) | [link](https://github.com/miniupnp/libnatpmp/) | commit [f2433be...](https://github.com/bitcoin/bitcoin/pull/29708) | | No |
39-
| [MiniUPnPc](../depends/packages/miniupnpc.mk) | [link](https://miniupnp.tuxfamily.org/) | [2.2.2](https://github.com/bitcoin/bitcoin/pull/20421) | 2.1 | No |
39+
| [MiniUPnPc](../depends/packages/miniupnpc.mk) | [link](https://miniupnp.tuxfamily.org/) | [2.2.7](https://github.com/bitcoin/bitcoin/pull/29707) | 2.1 | No |
4040

4141
### Notifications
4242
| Dependency | Releases | Version used | Minimum required | Runtime |

0 commit comments

Comments
 (0)