Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: net/miniupnp updates (libnatpmp, miniupnpc, miniupnpd, minissdpd)
To:
ports@openbsd.org
Date:
Thu, 22 Feb 2024 12:41:33 +0000

Download raw body.

Thread
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 <bsd.port.mk>
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 <bsd.port.mk>
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