From: Stuart Henderson Subject: Re: net/miniupnp updates (libnatpmp, miniupnpc, miniupnpd, minissdpd) To: ports@openbsd.org Date: Thu, 22 Feb 2024 12:41:33 +0000 On 2024/02/21 16:42, Stuart Henderson wrote: > I don't use these, but noticed they were really old. Anyone using them > want to give them a spin? Now that I've built all ports depending on these, I see libnatpmp has a problem upstream where a required header isn't installed. Here's a fixed patchset (also simpler, using the cmake build infrastructure, which lets us remove some patches). Index: Makefile.inc =================================================================== RCS file: /cvs/ports/net/miniupnp/Makefile.inc,v retrieving revision 1.11 diff -u -p -r1.11 Makefile.inc --- Makefile.inc 27 Sep 2023 14:18:19 -0000 1.11 +++ Makefile.inc 22 Feb 2024 11:41:39 -0000 @@ -5,7 +5,7 @@ HOMEPAGE= https://miniupnp.tuxfamily.org # BSD PERMIT_PACKAGE= Yes -.if !defined(GH_ACCOUNT) +.if !defined(GH_ACCOUNT) && !defined(DIST_TUPLE) SITES?= https://miniupnp.tuxfamily.org/files/ .endif NO_TEST= Yes Index: libnatpmp/Makefile =================================================================== RCS file: /cvs/ports/net/miniupnp/libnatpmp/Makefile,v retrieving revision 1.13 diff -u -p -r1.13 Makefile --- libnatpmp/Makefile 11 Mar 2022 19:46:22 -0000 1.13 +++ libnatpmp/Makefile 22 Feb 2024 11:41:39 -0000 @@ -1,28 +1,19 @@ COMMENT = NAT Port Mapping Protocol client library -DISTNAME = libnatpmp-20150609 -REVISION = 2 +DIST_TUPLE = github miniupnp libnatpmp f2433bec24ca3d3f22a8a7840728a3ac177f94ba . +DISTNAME = libnatpmp-20240116 +WRKDIST = ${WRKDIR}/libnatpmp-${DIST_TUPLE:M[0-9a-f]*} SHARED_LIBS = natpmp 0.1 WANTLIB = c -MAKE_FLAGS = CC="${CC}" +CONFIGURE_ARGS = -DBUILD_SHARED_LIBS=TRUE -MAKE_ENV = SHAREDLIB=libnatpmp.so.${LIBnatpmp_VERSION} \ - SONAME=libnatpmp.so.${LIBnatpmp_VERSION} - -FAKE_FLAGS = INSTALL_DATA_DIR="${INSTALL_DATA_DIR}" \ - INSTALL_DATA="${INSTALL_DATA}" \ - INSTALL_PROGRAM_DIR="${INSTALL_PROGRAM_DIR}" \ - INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ - INSTALLPREFIX=${WRKINST}${PREFIX} - -USE_GMAKE = Yes +MODULES = devel/cmake post-install: - ${INSTALL_MAN_DIR} ${PREFIX}/man/man1 - ${INSTALL_MAN} ${WRKSRC}/natpmpc.1 \ - ${PREFIX}/man/man1/natpmpc.1 + #${INSTALL_MAN_DIR} ${PREFIX}/man/man1 + ${INSTALL_MAN} ${WRKSRC}/natpmpc.1 ${PREFIX}/man/man1/natpmpc.1 .include Index: libnatpmp/distinfo =================================================================== RCS file: /cvs/ports/net/miniupnp/libnatpmp/distinfo,v retrieving revision 1.6 diff -u -p -r1.6 distinfo --- libnatpmp/distinfo 17 Aug 2017 11:28:00 -0000 1.6 +++ libnatpmp/distinfo 22 Feb 2024 11:41:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (libnatpmp-20150609.tar.gz) = 4aqcTEIZvAaUPWshMPZk2u4hP7Ji/LlN01WBW49FNrA= -SIZE (libnatpmp-20150609.tar.gz) = 24392 +SHA256 (miniupnp-libnatpmp-f2433bec24ca3d3f22a8a7840728a3ac177f94ba.tar.gz) = 74SXmVDfs1VnBbY8nNbJVQG3Xoh/ukZiNLGH88kClmk= +SIZE (miniupnp-libnatpmp-f2433bec24ca3d3f22a8a7840728a3ac177f94ba.tar.gz) = 28356 Index: libnatpmp/patches/patch-CMakeLists_txt =================================================================== RCS file: libnatpmp/patches/patch-CMakeLists_txt diff -N libnatpmp/patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ libnatpmp/patches/patch-CMakeLists_txt 22 Feb 2024 11:41:39 -0000 @@ -0,0 +1,14 @@ +https://github.com/miniupnp/libnatpmp/pull/39/commits/e654ac0638fd014d6279bafe646f049a95198661 + +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -61,7 +61,7 @@ install(TARGETS natpmp natpmpc + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +-install(FILES natpmp.h ++install(FILES natpmp.h natpmp_declspec.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/natpmp.pc Index: libnatpmp/patches/patch-Makefile =================================================================== RCS file: libnatpmp/patches/patch-Makefile diff -N libnatpmp/patches/patch-Makefile --- libnatpmp/patches/patch-Makefile 11 Mar 2022 19:46:22 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,48 +0,0 @@ -Index: Makefile ---- Makefile.orig -+++ Makefile -@@ -5,8 +5,8 @@ - # http://miniupnp.free.fr/libnatpmp.html - - OS = $(shell uname -s) --CC = gcc --INSTALL = install -p -+CC ?= cc -+INSTALL ?= install -p - ARCH = $(shell uname -m | sed -e s/i.86/i686/) - VERSION = $(shell cat VERSION) - -@@ -49,9 +49,9 @@ ifneq (,$(findstring WIN,$(OS))) - CC = i686-w64-mingw32-gcc - EXTRA_LD = -lws2_32 -lIphlpapi -Wl,--no-undefined -Wl,--enable-runtime-pseudo-reloc --Wl,kill-at - else -- SHAREDLIB = libnatpmp.so -+ SHAREDLIB ?= libnatpmp.so - JNISHAREDLIB = libjninatpmp.so -- SONAME = $(SHAREDLIB).$(APIVERSION) -+ SONAME ?= $(SHAREDLIB).$(APIVERSION) - SONAMEFLAGS=-Wl,-soname,$(JNISHAREDLIB) - endif - endif -@@ -92,14 +92,13 @@ depend: - makedepend -f$(MAKEFILE_LIST) -Y $(OBJS:.o=.c) 2>/dev/null - - install: $(HEADERS) $(STATICLIB) $(SHAREDLIB) natpmpc-shared -- $(INSTALL) -d $(INSTALLDIRINC) -- $(INSTALL) -m 644 $(HEADERS) $(INSTALLDIRINC) -- $(INSTALL) -d $(INSTALLDIRLIB) -- $(INSTALL) -m 644 $(STATICLIB) $(INSTALLDIRLIB) -- $(INSTALL) -m 644 $(SHAREDLIB) $(INSTALLDIRLIB)/$(SONAME) -- $(INSTALL) -d $(INSTALLDIRBIN) -- $(INSTALL) -m 755 natpmpc-shared $(INSTALLDIRBIN)/natpmpc -- ln -s -f $(SONAME) $(INSTALLDIRLIB)/$(SHAREDLIB) -+ $(INSTALL_DATA_DIR) $(INSTALLDIRINC) -+ $(INSTALL_DATA) $(HEADERS) $(INSTALLDIRINC) -+ $(INSTALL_DATA_DIR) $(INSTALLDIRLIB) -+ $(INSTALL_DATA) $(STATICLIB) $(INSTALLDIRLIB) -+ $(INSTALL_DATA) $(SHAREDLIB) $(INSTALLDIRLIB)/$(SONAME) -+ $(INSTALL_PROGRAM_DIR) $(INSTALLDIRBIN) -+ $(INSTALL_PROGRAM) natpmpc-shared $(INSTALLDIRBIN)/natpmpc - - $(JNIHEADERS): fr/free/miniupnp/libnatpmp/NatPmp.class - $(JAVAH) -jni fr.free.miniupnp.libnatpmp.NatPmp Index: libnatpmp/patches/patch-declspec_h =================================================================== RCS file: libnatpmp/patches/patch-declspec_h diff -N libnatpmp/patches/patch-declspec_h --- libnatpmp/patches/patch-declspec_h 11 Mar 2022 19:46:22 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,16 +0,0 @@ ---- declspec.h.orig Tue May 13 12:13:07 2014 -+++ declspec.h Tue May 13 12:13:25 2014 -@@ -9,12 +9,7 @@ - #define LIBSPEC __declspec(dllimport) - #endif - #else -- #if defined(__GNUC__) && __GNUC__ >= 4 -- /* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ -- #define LIBSPEC __attribute__ ((visibility ("default"))) -- #else -- #define LIBSPEC -- #endif -+ #define LIBSPEC - #endif - - #endif Index: libnatpmp/pkg/PLIST =================================================================== RCS file: /cvs/ports/net/miniupnp/libnatpmp/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- libnatpmp/pkg/PLIST 11 Mar 2022 19:46:22 -0000 1.2 +++ libnatpmp/pkg/PLIST 22 Feb 2024 11:41:39 -0000 @@ -1,5 +1,6 @@ @bin bin/natpmpc include/natpmp.h -lib/libnatpmp.a +include/natpmp_declspec.h @lib lib/libnatpmp.so.${LIBnatpmp_VERSION} +lib/pkgconfig/natpmp.pc @man man/man1/natpmpc.1 Index: minissdpd/Makefile =================================================================== RCS file: /cvs/ports/net/miniupnp/minissdpd/Makefile,v retrieving revision 1.14 diff -u -p -r1.14 Makefile --- minissdpd/Makefile 11 Mar 2022 19:46:22 -0000 1.14 +++ minissdpd/Makefile 22 Feb 2024 11:41:39 -0000 @@ -1,20 +1,18 @@ COMMENT= daemon keeping track of UPnP devices up -DISTNAME= minissdpd-1.5 -REVISION= 0 +DISTNAME= minissdpd-1.6.0 WANTLIB += c USE_GMAKE= Yes MAKE_FLAGS= CC=${CC} - -FAKE_FLAGS= SBININSTALLDIR=${WRKINST}${TRUEPREFIX}/sbin \ - MANINSTALLDIR=${WRKINST}${TRUEPREFIX}/man +FAKE_FLAGS= PREFIX=${TRUEPREFIX} \ + MANINSTALLDIR=${TRUEPREFIX}/man post-install: ${INSTALL_MAN_DIR} ${PREFIX}/man/man1 ${INSTALL_MAN} ${WRKSRC}/minissdpd.1 \ ${PREFIX}/man/man1/minissdpd.1 - rm -r ${PREFIX}/etc + rm -rf ${WRKINST}/etc/init.d .include Index: minissdpd/distinfo =================================================================== RCS file: /cvs/ports/net/miniupnp/minissdpd/distinfo,v retrieving revision 1.6 diff -u -p -r1.6 distinfo --- minissdpd/distinfo 11 Mar 2019 04:04:53 -0000 1.6 +++ minissdpd/distinfo 22 Feb 2024 11:41:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (minissdpd-1.5.tar.gz) = 39Y3sYVzHhrLQSqG+qlxjrk8BMoIKAVBptItFNH7iQ8= -SIZE (minissdpd-1.5.tar.gz) = 34404 +SHA256 (minissdpd-1.6.0.tar.gz) = 9MLepqRy4KXMncotxMH8NrpVOOrPjXk4JSkyUXJVRr0= +SIZE (minissdpd-1.6.0.tar.gz) = 39077 Index: miniupnpc/Makefile =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpc/Makefile,v retrieving revision 1.13 diff -u -p -r1.13 Makefile --- miniupnpc/Makefile 11 Mar 2022 19:46:22 -0000 1.13 +++ miniupnpc/Makefile 22 Feb 2024 11:41:39 -0000 @@ -1,9 +1,8 @@ COMMENT= UPnP IGD client lightweight library -DISTNAME= miniupnpc-2.1 -REVISION= 0 +DISTNAME= miniupnpc-2.2.6 -SHARED_LIBS += miniupnpc 3.0 +SHARED_LIBS += miniupnpc 3.1 WANTLIB += c Index: miniupnpc/distinfo =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpc/distinfo,v retrieving revision 1.5 diff -u -p -r1.5 distinfo --- miniupnpc/distinfo 11 Mar 2019 04:07:15 -0000 1.5 +++ miniupnpc/distinfo 22 Feb 2024 11:41:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (miniupnpc-2.1.tar.gz) = 4Z+14B6lpwfiqMuW9Tf72fOpE9U9gEoyZeOuqz0gZMY= -SIZE (miniupnpc-2.1.tar.gz) = 91914 +SHA256 (miniupnpc-2.2.6.tar.gz) = N/zZGVNQjD5i1pZLuP+8XUfz4TSB+lTmIU/MaHBMZvE= +SIZE (miniupnpc-2.2.6.tar.gz) = 103949 Index: miniupnpc/patches/patch-Makefile =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpc/patches/patch-Makefile,v retrieving revision 1.7 diff -u -p -r1.7 patch-Makefile --- miniupnpc/patches/patch-Makefile 11 Mar 2022 19:46:22 -0000 1.7 +++ miniupnpc/patches/patch-Makefile 22 Feb 2024 11:41:39 -0000 @@ -1,7 +1,7 @@ Index: Makefile --- Makefile.orig +++ Makefile -@@ -149,7 +149,7 @@ endif +@@ -157,7 +157,7 @@ endif INSTALLDIRINC = $(INSTALLPREFIX)/include/miniupnpc INSTALLDIRLIB = $(INSTALLPREFIX)/$(LIBDIR) INSTALLDIRBIN = $(INSTALLPREFIX)/bin @@ -10,11 +10,11 @@ Index: Makefile PKGCONFIGDIR = $(INSTALLDIRLIB)/pkgconfig FILESTOINSTALL = $(LIBRARY) $(EXECUTABLES) -@@ -238,7 +238,6 @@ install: updateversion $(FILESTOINSTALL) +@@ -251,7 +251,6 @@ install: updateversion $(FILESTOINSTALL) $(INSTALL) -m 644 $(LIBRARY) $(DESTDIR)$(INSTALLDIRLIB) ifeq (, $(findstring amiga, $(OS))) $(INSTALL) -m 644 $(SHAREDLIBRARY) $(DESTDIR)$(INSTALLDIRLIB)/$(SONAME) -- ln -fs $(SONAME) $(DESTDIR)$(INSTALLDIRLIB)/$(SHAREDLIBRARY) +- ln -fs $(SONAME) $(DESTDIR)$(INSTALLDIRLIB)/$(notdir $(SHAREDLIBRARY)) $(INSTALL) -d $(DESTDIR)$(PKGCONFIGDIR) - $(INSTALL) -m 644 miniupnpc.pc $(DESTDIR)$(PKGCONFIGDIR) + $(INSTALL) -m 644 $(BUILD)/miniupnpc.pc $(DESTDIR)$(PKGCONFIGDIR) endif Index: miniupnpc/patches/patch-miniupnpcmodule_c =================================================================== RCS file: miniupnpc/patches/patch-miniupnpcmodule_c diff -N miniupnpc/patches/patch-miniupnpcmodule_c --- miniupnpc/patches/patch-miniupnpcmodule_c 11 Mar 2022 19:46:22 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -Fix error: expected expression before '/' token - -Index: miniupnpcmodule.c ---- miniupnpcmodule.c.orig -+++ miniupnpcmodule.c -@@ -323,9 +323,9 @@ Py_END_ALLOW_THREADS - } - else - { -- // TODO: RAISE an Exception. See upnpcommands.h for errors codes. -- // upnperrors.c -- //Py_RETURN_FALSE; -+ /* TODO: RAISE an Exception. See upnpcommands.h for errors codes. */ -+ /* upnperrors.c */ -+ /* Py_RETURN_FALSE; */ - /* TODO: have our own exception type ! */ - PyErr_SetString(PyExc_Exception, strupnperror(r)); - return NULL; Index: miniupnpc/pkg/PLIST =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpc/pkg/PLIST,v retrieving revision 1.2 diff -u -p -r1.2 PLIST --- miniupnpc/pkg/PLIST 11 Mar 2022 19:46:22 -0000 1.2 +++ miniupnpc/pkg/PLIST 22 Feb 2024 11:41:39 -0000 @@ -1,5 +1,6 @@ @pkgpath net/miniupnp/miniupnpc,-main bin/external-ip +@bin bin/upnp-listdevices @bin bin/upnpc include/miniupnpc/ include/miniupnpc/igd_desc_parse.h @@ -12,7 +13,7 @@ include/miniupnpc/upnpcommands.h include/miniupnpc/upnpdev.h include/miniupnpc/upnperrors.h include/miniupnpc/upnpreplyparse.h -lib/libminiupnpc.a +@static-lib lib/libminiupnpc.a @lib lib/libminiupnpc.so.${LIBminiupnpc_VERSION} lib/pkgconfig/miniupnpc.pc @man man/man3/miniupnpc.3 Index: miniupnpd/Makefile =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpd/Makefile,v retrieving revision 1.26 diff -u -p -r1.26 Makefile --- miniupnpd/Makefile 2 Sep 2022 06:17:29 -0000 1.26 +++ miniupnpd/Makefile 22 Feb 2024 11:41:39 -0000 @@ -1,14 +1,6 @@ COMMENT= UPnP IGD daemon -## this block can be removed when moving back to a proper release -GH_ACCOUNT= miniupnp -GH_PROJECT= miniupnp -GH_COMMIT= 1cdf9ba7447ef409566740e7b74081970378cf18 -WRKDIST= ${WRKDIR}/miniupnp-${GH_COMMIT}/miniupnpd -## - -DISTNAME= miniupnpd-2.3.0pl20220601 -REVISION= 0 +DISTNAME= miniupnpd-2.3.1 # uses pledge() WANTLIB += c crypto kvm ssl Index: miniupnpd/distinfo =================================================================== RCS file: /cvs/ports/net/miniupnp/miniupnpd/distinfo,v retrieving revision 1.8 diff -u -p -r1.8 distinfo --- miniupnpd/distinfo 1 Jun 2022 23:29:32 -0000 1.8 +++ miniupnpd/distinfo 22 Feb 2024 11:41:39 -0000 @@ -1,2 +1,2 @@ -SHA256 (miniupnpd-2.3.0pl20220601-1cdf9ba7.tar.gz) = AMEAejz7ExvEVWIfHjtfHJBdRGVMIDWUrEO1EDosw50= -SIZE (miniupnpd-2.3.0pl20220601-1cdf9ba7.tar.gz) = 454227 +SHA256 (miniupnpd-2.3.1.tar.gz) = 0d/UwCdlSbvT1eQ0uRPxISSBtfcmqSWPkPZejMtJOzM= +SIZE (miniupnpd-2.3.1.tar.gz) = 258050