usbip: adapt package to new kernel/libudev
authorEneas U de Queiroz <cote2004-github@yahoo.com>
Wed, 23 May 2018 17:18:17 +0000 (14:18 -0300)
committerJo-Philipp Wich <jo@mein.io>
Tue, 31 Jul 2018 19:29:55 +0000 (21:29 +0200)
The sources for usbip are within the kernel.  A patch that was included
with the package, which changed the old signal name SIGCLD to the new
one, SIGCHLD, was merged upstream.  However, different targets use
different kernel versions.  Current version 4.14 and 4.9 are fine, but
older versions do not have the patch applied.  So, I used
-DSIGCLD=SIGCHLD to please both worlds.

libudev-fbsd currently used by openwrt does not implement the
udev_device_get_devpath function.  eudev's implementation of libudev
sets it as (src/libudev/libudev-device.c):
udev_device->devpath = udev_device->syspath + strlen("/sys");
I used a command-line define to use the same logic, as it works with
new and old versions of the kernel--the use of ..devpath is quite
recent.

I also linked with libbsd, when using glibc.

Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
(cherry picked from commit 633fe0dbdf1d33d08589d9c299f7509a51b76b2b)

net/usbip/Makefile
net/usbip/patches-2.0/100-musl-compat.patch [deleted file]

index fb52e7d72c8aa6179fa06ded0a1894df2dca7fb7..612917cf07ce5c9fb196432abcd72bc8a7e20c8e 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=usbip
-PKG_RELEASE:=9
+PKG_RELEASE:=10
 PKG_LICENSE:=GPL-2.0
 
 # Since kernel 2.6.39.1 userspace tools are inside the kernel tree
@@ -52,7 +52,7 @@ endef
 define Package/usbip
   $(call Package/usbip/Default)
   TITLE+= (common)
-  DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd
+  DEPENDS+= +libwrap +kmod-usbip +libudev-fbsd +USE_GLIBC:libbsd
 endef
 
 define Package/usbip-client
@@ -70,13 +70,16 @@ endef
 CONFIGURE_PATH:=.
 MAKE_PATH:=.
 LIBTOOL_PATHS:=.
-MAKE_FLAGS+=CFLAGS="-Wno-implicit-function-declaration"
+MAKE_FLAGS+=CFLAGS='-Dudev_device_get_devpath\(x\)=udev_device_get_syspath\(x\)+strlen\(\"/sys\"\) \
+       -DSIGCLD=SIGCHLD'
+CONFIGURE_ARGS+= --disable-silent-rules
 
 define Build/Configure
        (cd $(PKG_BUILD_DIR); ./autogen.sh );
        $(call Build/Configure/Default)
 endef
 
+CONFIGURE_VARS+= $(if $(CONFIG_USE_GLIBC),LIBS='-lbsd -lpthread')
 CFLAGS+="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include"
 
 USB_IDS_REV:=0a6be488b4c1485d30c9efee1cc895af5d4a1383
diff --git a/net/usbip/patches-2.0/100-musl-compat.patch b/net/usbip/patches-2.0/100-musl-compat.patch
deleted file mode 100644 (file)
index a64678c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/usbipd.c
-+++ b/src/usbipd.c
-@@ -453,7 +453,7 @@ static void set_signal(void)
-       sigaction(SIGTERM, &act, NULL);
-       sigaction(SIGINT, &act, NULL);
-       act.sa_handler = SIG_IGN;
--      sigaction(SIGCLD, &act, NULL);
-+      sigaction(SIGCHLD, &act, NULL);
- }
- static const char *pid_file;