Patchwork [v3] usbip: new package

login
register
mail settings
Submitter Marcin Bis
Date Dec. 26, 2012, 8:55 a.m.
Message ID <CAOPBCFUzO64CXWKr4Z2rJeUb2NXExu=H1Gp2QyymrHcjVNaJuA@mail.gmail.com>
Download mbox | patch
Permalink /patch/208152/
State Changes Requested
Headers show

Comments

Marcin Bis - Dec. 26, 2012, 8:55 a.m.
Signed-off-by: Marcin Bis <marcin@bis.org.pl>
---
 package/Config.in       |    1 +
 package/usbip/Config.in |   33 +++++++++++++++++++++++++++++++++
 package/usbip/usbip.mk  |   32 ++++++++++++++++++++++++++++++++
 3 files changed, 66 insertions(+), 0 deletions(-)
Baruch Siach - Dec. 26, 2012, 4:35 p.m.
Hi Marcin,

On Wed, Dec 26, 2012 at 09:55:47AM +0100, Marcin Bis wrote:
[...]
> +USBIP_VERSION = 0.1.7

This package is very old. Newer version is distributed with the kernel sources 
under drivers/staging/usbip/userspace/. I'm not sure how to extract these 
files during build. Maybe the experts here have an Idea?

baruch

> +USBIP_SITE = http://downloads.sourceforge.net/project/usbip/usbip/$(USBIP_VERSION)
> +USBIP_LICENSE = GPLv2+
> +USBIP_LICENSE_FILES = COPYING
> +USBIP_CONF_OPT = --without-tcpwrappers
> +USBIP_DEPENDENCIES = libglib2 libsysfs

baruch
Jeremy Rosen - Dec. 26, 2012, 4:49 p.m.
> 
> This package is very old. Newer version is distributed with the
> kernel sources
> under drivers/staging/usbip/userspace/. I'm not sure how to extract
> these
> files during build. Maybe the experts here have an Idea?
> 


I would be interested too, more and more tools are distributed with the kernel that we might want to build... I'm thinking of the perf tools in particular

is there an example somewhere on how to handle these ?
Thomas Petazzoni - Dec. 26, 2012, 5:32 p.m.
Dear Jeremy Rosen,

On Wed, 26 Dec 2012 17:49:57 +0100 (CET), Jeremy Rosen wrote:

> I would be interested too, more and more tools are distributed with
> the kernel that we might want to build... I'm thinking of the perf
> tools in particular
> 
> is there an example somewhere on how to handle these ?

Unfortunately, there isn't a really good and nice way of handling these
in Buildroot for now.

I see two options:

 * Add sub-options to the "Linux kernel" package, to allow the
   installation of perf, usbip or other userspace packages whose source
   code is bundled with the kernel source code. This is the easiest
   solution, since the kernel version, sources and al. is already
   defined. But it also has major drawbacks: 1/ it makes those tools
   available only if you build your kernel with Buildroot and 2/ it
   puts the configuration options to install those tools inside the
   "Linux kernel" menu, which is not very intuitive.

 * Add separate packages for each of those tools in package/, with
   those packages depending on the "linux" package. The extract step of
   those packages could copy the source code of these tools from the
   Linux kernel source tree into their build directory, or simply build
   then directly from within the Linux kernel source tree. It solves
   drawback (2) described above, but not drawback (1).

 * Add separate packages for each of those tools in package/, and make
   them independent from the Linux package. They would for example
   download the latest stable version of the Linux kernel source code,
   and use that as a source. The extract step could be customized to
   only extract the part of the kernel sources that are actually
   relevant for this package. This would solve both drawbacks (1) and
   (2), but adds different drawbacks: it's another place where we have
   to bump the kernel version regularly, and people may want to
   configure the version of the kernel sources used to build those
   tools: the primary reason why those tools are bundled with the
   kernel sources is because the userspace-to-kernel ABI specific to
   those tools gets changed from time to time, and therefore there may
   be compatibility issues in running those tools from kernel version X
   under a system running kernel version Y.

Best regards,

Thomas
Thomas Petazzoni - Aug. 13, 2013, 9:20 p.m.
Dear Marcin Bis,

On Wed, 26 Dec 2012 09:55:47 +0100, Marcin Bis wrote:
> Signed-off-by: Marcin Bis <marcin@bis.org.pl>
> ---
>  package/Config.in       |    1 +
>  package/usbip/Config.in |   33 +++++++++++++++++++++++++++++++++
>  package/usbip/usbip.mk  |   32 ++++++++++++++++++++++++++++++++
>  3 files changed, 66 insertions(+), 0 deletions(-)

Are you still interested in getting usbip packaged in Buildroot? If so,
could you rework your patch to use instead the code bundled with the
kernel in drivers/staging/usbip/userspace, as suggested by Baruch?

The package/perf package provides an example on how to create a package
for a tool whose source code is shipped directly within the kernel
sources.

Since those comments have been made in December 2012, without further
postings from you, I'm marking the patch as "Changes requested" in
patchwork. This means that unless you post an updated version at some
point in the future, we'll no longer have 'usbip' in the list of
patches to integrate.

Thanks for your contribution!

Thomas

Patch

diff --git a/package/Config.in b/package/Config.in
index 3d556b2..c773c46 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -684,6 +684,7 @@  source "package/transmission/Config.in"
 source "package/ttcp/Config.in"
 source "package/udpcast/Config.in"
 source "package/ulogd/Config.in"
+source "package/usbip/Config.in"
 source "package/ushare/Config.in"
 source "package/vde2/Config.in"
 source "package/vpnc/Config.in"
diff --git a/package/usbip/Config.in b/package/usbip/Config.in
new file mode 100644
index 0000000..7abf1d1
--- /dev/null
+++ b/package/usbip/Config.in
@@ -0,0 +1,33 @@ 
+config BR2_PACKAGE_USBIP
+	bool "usbip"
+	depends on BR2_USE_WCHAR # glib2
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_LIBSYSFS
+	help
+	  Userspace tools for sharing USB devices over TCP/IP network.
+
+	  http://usbip.sourceforge.net/
+
+	  Depends on glib.
+
+	  Note: For exporting or connecting to exported USB devices
+	  additional kernel drivers are needed (available since 2.6.28
+	  under Stagging).
+
+comment "usbip requires a toolchain with WCHAR support"
+        depends on !BR2_USE_WCHAR
+
+if BR2_PACKAGE_USBIP
+
+config BR2_USBIP_CLIENT
+	bool "usbip client"
+	default y
+	help
+	  the client part of usbip
+
+config BR2_USBIP_SERVER
+	bool "usbip server"
+	help
+	  the server part of usbip
+
+endif
diff --git a/package/usbip/usbip.mk b/package/usbip/usbip.mk
new file mode 100644
index 0000000..d1f7021
--- /dev/null
+++ b/package/usbip/usbip.mk
@@ -0,0 +1,32 @@ 
+#############################################################
+#
+# usbip
+#
+#############################################################
+
+USBIP_VERSION = 0.1.7
+USBIP_SITE = http://downloads.sourceforge.net/project/usbip/usbip/$(USBIP_VERSION)
+USBIP_LICENSE = GPLv2+
+USBIP_LICENSE_FILES = COPYING
+USBIP_CONF_OPT = --without-tcpwrappers
+USBIP_DEPENDENCIES = libglib2 libsysfs
+
+#The userspace applications are in the src/ subdirectory.
+USBIP_SUBDIR = src
+#Running autogen.sh is needed to create configure script.
+USBIP_AUTORECONF = YES
+
+ifneq ($(BR2_USBIP_CLIENT),y)
+        USBIP_TOREMOVE += usbip
+endif
+ifneq ($(BR2_USBIP_SERVER),y)
+        USBIP_TOREMOVE += usbipd bind_driver
+endif
+
+define USBIP_CLEANUP_AFTER_INSTALL
+        rm -f $(addprefix $(TARGET_DIR)/usr/bin/, $(USBIP_TOREMOVE))
+endef
+
+USBIP_POST_INSTALL_TARGET_HOOKS += USBIP_CLEANUP_AFTER_INSTALL
+
+$(eval $(autotools-package))