From ca0664cbff2ec9915804ea25ea0aabdcefc0a93c Mon Sep 17 00:00:00 2001 From: Thomas BERNARD Date: Sat, 24 May 2025 19:14:18 +0200 Subject: [PATCH] miniupnpd: fix OS X 10.9 build this is the minimal update to Makefile.macosx to get it building after configure was adapted to allow building to another directory 02e41f7346b107df39a27019977a04cbdf57f60d from 2020 ! --- miniupnpd/Makefile.macosx | 49 ++++++++++++++++++++---------------- miniupnpd/configure | 2 ++ miniupnpd/mac/getroute.c | 1 + miniupnpd/mac/ifacewatcher.c | 1 + 4 files changed, 32 insertions(+), 21 deletions(-) create mode 120000 miniupnpd/mac/getroute.c create mode 120000 miniupnpd/mac/ifacewatcher.c diff --git a/miniupnpd/Makefile.macosx b/miniupnpd/Makefile.macosx index 1c53094..386477f 100644 --- a/miniupnpd/Makefile.macosx +++ b/miniupnpd/Makefile.macosx @@ -12,6 +12,7 @@ # or : # $ make -f Makefile.macosx install # +CONFIG_OPTIONS ?= $(shell cat .configure.cache) CFLAGS = -Wall -O -g3 -DDEBUG #CFLAGS = -Wall -Os #CC = gcc #better use clang ! @@ -20,12 +21,9 @@ MV = mv INSTALL = install STRIP = strip -# OSNAME and FWNAME are used for building OS or FW dependent code. -OSNAME = $(shell uname) -ARCH = $(shell uname -p) +include bsdmake.inc # Firewall is ipfw up to OS X 10.6 Snow Leopard # and pf since OS X 10.7 Lion (Darwin 11.0) -FWNAME = $(shell [ `uname -r | cut -d. -f1` -ge 11 ] && echo "pf" || echo "ipfw" ) STD_OBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \ upnpredirect.o getifaddr.o daemonize.o upnpglobalvars.o \ @@ -33,9 +31,9 @@ STD_OBJS = miniupnpd.o upnphttp.o upnpdescgen.o upnpsoap.o \ upnpevents.o getconnstatus.o upnputils.o \ upnpstun.o \ upnppinhole.o asyncsendto.o portinuse.o pcpserver.o -MAC_OBJS = mac/getifstats.o bsd/ifacewatcher.o bsd/getroute.o -IPFW_OBJS = ipfw/ipfwrdr.o ipfw/ipfwaux.o -PF_OBJS = pf/obsdrdr.o +MAC_OBJS = getifstats.o ifacewatcher.o getroute.o +IPFW_OBJS = ipfwrdr.o ipfwaux.o +PF_OBJS = obsdrdr.o # pf/pfpinhole.o # SHOULD be used, but doesn't compile on e.g. OS X 10.9. MISC_OBJS = upnpreplyparse.o minixml.o @@ -48,12 +46,12 @@ else endif TEST_UPNPDESCGEN_OBJS = testupnpdescgen.o upnpdescgen.o -TEST_GETIFSTATS_OBJS = testgetifstats.o mac/getifstats.o +TEST_GETIFSTATS_OBJS = testgetifstats.o getifstats.o TEST_UPNPPERMISSIONS_OBJS = testupnppermissions.o upnppermissions.o -TEST_GETIFADDR_OBJS = testgetifaddr.o getifaddr.o +TEST_GETIFADDR_OBJS = testgetifaddr.o getifaddr.o getconnstatus.o TEST_PORTINUSE_OBJS = testportinuse.o portinuse.o getifaddr.o upnputils.o \ - bsd/getroute.o -TEST_ASYNCSENDTO_OBJS = testasyncsendto.o asyncsendto.o upnputils.o bsd/getroute.o + getroute.o +TEST_ASYNCSENDTO_OBJS = testasyncsendto.o asyncsendto.o upnputils.o getroute.o MINIUPNPDCTL_OBJS = miniupnpdctl.o EXECUTABLES = miniupnpd testupnpdescgen testgetifstats \ @@ -74,7 +72,7 @@ clean: $(RM) $(ALL_OBJS) $(EXECUTABLES) \ testupnpdescgen.o testgetifstats.o testupnppermissions.o \ miniupnpdctl.o testgetifaddr.o config.h \ - mac/org.tuxfamily.miniupnpd.plist + org.tuxfamily.miniupnpd.plist install: miniupnpd genuuid genlaunchd $(STRIP) miniupnpd @@ -85,7 +83,7 @@ install: miniupnpd genuuid genlaunchd $(INSTALL) -d $(INSTALL_MANDIR) $(INSTALL) miniupnpd.8 $(INSTALL_MANDIR) $(INSTALL) -d $(PREFIX)/Library/LaunchDaemons - $(INSTALL) mac/org.tuxfamily.miniupnpd.plist $(PREFIX)/Library/LaunchDaemons + $(INSTALL) org.tuxfamily.miniupnpd.plist $(PREFIX)/Library/LaunchDaemons #$(INSTALL) ipfw/ipfw_init.sh $(INSTALL_ETCDIR) #$(INSTALL) ipfw/ipfw_removeall.sh $(INSTALL_ETCDIR) @@ -94,8 +92,10 @@ genuuid: sed -e "s/^uuid=[-0-9a-fA-F]*/uuid=`uuidgen 2>/dev/null`/" miniupnpd.conf.before > miniupnpd.conf $(RM) miniupnpd.conf.before -genlaunchd: - sed -e "s|INSTALLPREFIX|$(PREFIX)|g" mac/org.tuxfamily.miniupnpd.plist.before > mac/org.tuxfamily.miniupnpd.plist +genlaunchd: org.tuxfamily.miniupnpd.plist + +org.tuxfamily.miniupnpd.plist: $(SRCDIR)/mac/org.tuxfamily.miniupnpd.plist.before + sed -e "s|INSTALLPREFIX|$(PREFIX)|g" $(SRCDIR)/mac/org.tuxfamily.miniupnpd.plist.before > org.tuxfamily.miniupnpd.plist depend: config.h mkdep $(ALL_OBJS:.o=.c) testupnpdescgen.c testgetifstats.c \ @@ -125,10 +125,17 @@ testasyncsendto: config.h $(TEST_ASYNCSENDTO_OBJS) testportinuse: config.h $(TEST_PORTINUSE_OBJS) $(CC) $(CFLAGS) -o $@ $(TEST_PORTINUSE_OBJS) -config.h: configure VERSION - ./configure +config.h: $(SRCDIR)/configure $(SRCDIR)/VERSION + $(SHELL) $< $(CONFIG_OPTIONS) -.SUFFIXES: .o .c -.c.o: - $(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $< -# $(CC) $(CFLAGS) -c -o $(.TARGET) $(.IMPSRC) +%.o: $(SRCDIR)/%.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + +%.o: $(SRCDIR)/pf/%.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES) -c -o $@ $< + +%.o: $(SRCDIR)/ipfw/%.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< + +%.o: $(SRCDIR)/mac/%.c + $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< diff --git a/miniupnpd/configure b/miniupnpd/configure index 6d0e0df..32f880c 100755 --- a/miniupnpd/configure +++ b/miniupnpd/configure @@ -575,6 +575,8 @@ case $OS_NAME in Darwin) MAKEFILE=Makefile.macosx MAJORVER=`echo $OS_VERSION | cut -d. -f1` + # do not daemon() under macOS + NO_BACKGROUND_NO_PIDFILE=1 echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE} # OS X switched to pf since 10.7 Lion (Darwin 11.0) if [ $MAJORVER -ge 11 ] ; then diff --git a/miniupnpd/mac/getroute.c b/miniupnpd/mac/getroute.c new file mode 120000 index 0000000..6a0c24c --- /dev/null +++ b/miniupnpd/mac/getroute.c @@ -0,0 +1 @@ +../bsd/getroute.c \ No newline at end of file diff --git a/miniupnpd/mac/ifacewatcher.c b/miniupnpd/mac/ifacewatcher.c new file mode 120000 index 0000000..f3ebb04 --- /dev/null +++ b/miniupnpd/mac/ifacewatcher.c @@ -0,0 +1 @@ +../bsd/ifacewatcher.c \ No newline at end of file