zerotier: fix linking to libnatpmp and build with uclibc 9675/head
authorDENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Thu, 8 Aug 2019 09:05:25 +0000 (17:05 +0800)
committerDENG Qingfang <dengqf6@mail2.sysu.edu.cn>
Thu, 8 Aug 2019 09:05:25 +0000 (17:05 +0800)
Makefile always checks the existence of host's NAT-PMP header,
which results in internal NAT-PMP code being used if it's missing.

Add a patch to make it check targets' header instead.

Use aligned_alloc() instead of valloc() in case of uclibc.

Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
net/zerotier/Makefile
net/zerotier/patches/0005-link-natpmp.patch [new file with mode: 0644]

index d1f5533f252d6a4667aa7f823422ec1ac72f209d..13937b4da2267a01044f8398c0877e69d7a1d63f 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zerotier
 PKG_VERSION:=1.4.0.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://codeload.github.com/zerotier/ZeroTierOne/tar.gz/$(PKG_VERSION)?
@@ -56,6 +56,10 @@ endef
 TARGET_CFLAGS += -ffunction-sections -fdata-sections
 TARGET_LDFLAGS += -Wl,--gc-sections
 
+ifdef CONFIG_USE_UCLIBC
+       TARGET_CFLAGS += -D'valloc(a)=aligned_alloc(getpagesize(),a)'
+endif
+
 define Package/zerotier/conffiles
 /etc/config/zerotier
 endef
diff --git a/net/zerotier/patches/0005-link-natpmp.patch b/net/zerotier/patches/0005-link-natpmp.patch
new file mode 100644 (file)
index 0000000..d1c8209
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/make-linux.mk
++++ b/make-linux.mk
+@@ -38,7 +38,7 @@ else
+       override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING=\"Linux\" -DMINIUPNPC_VERSION_STRING=\"2.0\" -DUPNP_VERSION_STRING=\"UPnP/1.1\" -DENABLE_STRNATPMPERR
+       ONE_OBJS+=ext/miniupnpc/connecthostport.o ext/miniupnpc/igd_desc_parse.o ext/miniupnpc/minisoap.o ext/miniupnpc/minissdpc.o ext/miniupnpc/miniupnpc.o ext/miniupnpc/miniwget.o ext/miniupnpc/minixml.o ext/miniupnpc/portlistingparse.o ext/miniupnpc/receivedata.o ext/miniupnpc/upnpcommands.o ext/miniupnpc/upnpdev.o ext/miniupnpc/upnperrors.o ext/miniupnpc/upnpreplyparse.o
+ endif
+-ifeq ($(wildcard /usr/include/natpmp.h),)
++ifeq ($(wildcard $(STAGING_DIR)/usr/include/natpmp.h),)
+       ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o
+ else
+       LDLIBS+=-lnatpmp