From 633fe0dbdf1d33d08589d9c299f7509a51b76b2b Mon Sep 17 00:00:00 2001 From: Eneas U de Queiroz Date: Wed, 23 May 2018 14:18:17 -0300 Subject: [PATCH] usbip: adapt package to new kernel/libudev 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 --- net/usbip/Makefile | 9 ++++++--- net/usbip/patches-2.0/100-musl-compat.patch | 11 ----------- 2 files changed, 6 insertions(+), 14 deletions(-) delete mode 100644 net/usbip/patches-2.0/100-musl-compat.patch diff --git a/net/usbip/Makefile b/net/usbip/Makefile index fb52e7d72..612917cf0 100644 --- a/net/usbip/Makefile +++ b/net/usbip/Makefile @@ -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 index a64678cb8..000000000 --- a/net/usbip/patches-2.0/100-musl-compat.patch +++ /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;