mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] libusb: drop libusb and use libusbx
@ 2014-03-28 11:30 Alexander Aring
  2014-03-28 11:37 ` Alexander Aring
  2014-03-28 12:55 ` Michael Olbrich
  0 siblings, 2 replies; 5+ messages in thread
From: Alexander Aring @ 2014-03-28 11:30 UTC (permalink / raw)
  To: ptxdist; +Cc: Alexander Aring, lammers

This patch drops the libusb support and add the libusbx instead.

We can do that because libusb and libusbx offers the same API, original
text from libusbx project website:

"If you are an existing user of libusb, you don't have to change
anything. Just download the libusbx library and use it in your code. The
library is designed as a drop in replacement for libusb, so please give
it a try. If you don't like it, which we very much doubt, you can always
revert..."

Another point is that libusbx website says that the libusb project is
somehow died and will not longer release new releases:

"The reason for the fork is that, despite having dedicated members,
libusb has still not been able to produce a new release for the past 2
years. When a project fails to produce regular releases, we consider
that you, its user, are paying the ultimate price. This is because it
means that patches and new feature are being witheld and you end up
wasting your time."

This patch fix also a few Kconfig bugs which I detected:

i) switch to "--disable-static", otherwise it was "--enable-shared
   --enable-static"

ii) correct use of --disable-log and --enable-debug-log, there was an
   option for these two configure flags but also was a static
   "--disable-log --disable-debug-log" in the configure call, which
   makes no sense.

iii) also adding some new disable flags like --disable-timerfd,
     --disable-system-log and --enable-tests-build

iv) I add "--disable-udev" there but we should have a --enable-udev...
    The old one has no kind of udev support and I got a recursive
    dependency detection because udev-legacy needs usbutils which needs
    libusb. We should look at this in the near future.

I also keep the patch from libusb and port it to libusbx because I saw
that libusbx uses also pthreads.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
Only compile tested... the runtime testing of this packages will need
time I think.

I thought the pthreads linker flag should set by the buildsystem which
used the libusb then?

 patches/libusb-1.0.8/libusb-1.0.1-pkg-config.diff  | 27 -----------------
 patches/libusb-1.0.8/series                        |  1 -
 ...libusbx-libusb-needs-librt-and-libpthread.patch | 35 ++++++++++++++++++++++
 patches/libusbx-1.0.18/series                      |  1 +
 rules/libusb.make                                  | 25 ++++++++--------
 5 files changed, 48 insertions(+), 41 deletions(-)
 delete mode 100644 patches/libusb-1.0.8/libusb-1.0.1-pkg-config.diff
 delete mode 100644 patches/libusb-1.0.8/series
 create mode 100644 patches/libusbx-1.0.18/0001-libusbx-libusb-needs-librt-and-libpthread.patch
 create mode 100644 patches/libusbx-1.0.18/series

diff --git a/patches/libusb-1.0.8/libusb-1.0.1-pkg-config.diff b/patches/libusb-1.0.8/libusb-1.0.1-pkg-config.diff
deleted file mode 100644
index f3c05af..0000000
--- a/patches/libusb-1.0.8/libusb-1.0.1-pkg-config.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-Subject: libusb needs librt and libpthread
-
-Add missing dependencies.
-
-Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
-
----
-# 20100603 rsc: The patch was closed upstream, and I don't
-#          remember a use case any more :-( Let's keep it
-#          here for the moment, until we have a user.
-# 20100101 rsc: added as http://libusb.org/ticket/24
-
- libusb-1.0.pc.in |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: libusb-1.0.1/libusb-1.0.pc.in
-===================================================================
---- libusb-1.0.1.orig/libusb-1.0.pc.in
-+++ libusb-1.0.1/libusb-1.0.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: libusb-1.0
- Description: C API for USB device access from Linux userspace
- Version: @VERSION@
--Libs: -L${libdir} -lusb-1.0
-+Libs: -L${libdir} -lusb-1.0 -lrt -lpthread
- Cflags: -I${includedir}/libusb-1.0
-
diff --git a/patches/libusb-1.0.8/series b/patches/libusb-1.0.8/series
deleted file mode 100644
index 25e430f..0000000
--- a/patches/libusb-1.0.8/series
+++ /dev/null
@@ -1 +0,0 @@
-libusb-1.0.1-pkg-config.diff
diff --git a/patches/libusbx-1.0.18/0001-libusbx-libusb-needs-librt-and-libpthread.patch b/patches/libusbx-1.0.18/0001-libusbx-libusb-needs-librt-and-libpthread.patch
new file mode 100644
index 0000000..1e4ef43
--- /dev/null
+++ b/patches/libusbx-1.0.18/0001-libusbx-libusb-needs-librt-and-libpthread.patch
@@ -0,0 +1,35 @@
+From 7a2b30e9b82fd2b14c94600534513892bc2f7bbe Mon Sep 17 00:00:00 2001
+From: Alexander Aring <alex.aring@gmail.com>
+Date: Fri, 28 Mar 2014 12:04:23 +0100
+Subject: [PATCH] libusbx: libusb needs librt and libpthread
+
+This patch is taken from the old libusb package and changes to apply the
+libusbx package. Original commit msg from patch is:
+
+Add missing dependencies.
+
+20100603 rsc: The patch was closed upstream, and I don't
+         remember a use case any more :-( Let's keep it
+         here for the moment, until we have a user.
+20100101 rsc: added as http://libusb.org/ticket/24
+
+Signed-off-by: Alexander Aring <alex.aring@gmail.com>
+---
+ libusb-1.0.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libusb-1.0.pc.in b/libusb-1.0.pc.in
+index 7bc33c1..ec361a5 100644
+--- a/libusb-1.0.pc.in
++++ b/libusb-1.0.pc.in
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: libusbx-1.0
+ Description: C API for USB device access from Linux, Mac OS X, Windows and OpenBSD/NetBSD userspace
+ Version: @VERSION@
+-Libs: -L${libdir} -lusb-1.0
++Libs: -L${libdir} -lusb-1.0 -lusb-1.0 -lrt -lpthread
+ Libs.private: @LIBS@
+ Cflags: -I${includedir}/libusb-1.0
+-- 
+1.9.1
+
diff --git a/patches/libusbx-1.0.18/series b/patches/libusbx-1.0.18/series
new file mode 100644
index 0000000..4284244
--- /dev/null
+++ b/patches/libusbx-1.0.18/series
@@ -0,0 +1 @@
+0001-libusbx-libusb-needs-librt-and-libpthread.patch
diff --git a/rules/libusb.make b/rules/libusb.make
index 4dfa0e5..b6565e7 100644
--- a/rules/libusb.make
+++ b/rules/libusb.make
@@ -16,11 +16,11 @@ PACKAGES-$(PTXCONF_LIBUSB) += libusb
 #
 # Paths and names
 #
-LIBUSB_VERSION	:= 1.0.8
-LIBUSB_MD5	:= 37d34e6eaa69a4b645a19ff4ca63ceef
-LIBUSB		:= libusb-$(LIBUSB_VERSION)
+LIBUSB_VERSION	:= 1.0.18
+LIBUSB_MD5	:= f2ccd0589dde901dfd5607459f77bf44
+LIBUSB		:= libusbx-$(LIBUSB_VERSION)
 LIBUSB_SUFFIX	:= tar.bz2
-LIBUSB_URL	:= $(call ptx/mirror, SF, libusb/$(LIBUSB).$(LIBUSB_SUFFIX))
+LIBUSB_URL	:= $(call ptx/mirror, SF, libusbx/$(LIBUSB).$(LIBUSB_SUFFIX))
 LIBUSB_SOURCE	:= $(SRCDIR)/$(LIBUSB).$(LIBUSB_SUFFIX)
 LIBUSB_DIR	:= $(BUILDDIR)/$(LIBUSB)
 LIBUSB_LICENSE	:= LGPLv2.1
@@ -37,16 +37,15 @@ LIBUSB_ENV 	:= $(CROSS_ENV)
 #
 LIBUSB_AUTOCONF := \
 	$(CROSS_AUTOCONF_USR) \
-	--disable-log \
-	--disable-debug-log \
-	--disable-examples-build \
-	--enable-static \
+	--disable-static \
 	--enable-shared \
-	--$(call ptx/endis, PTXCONF_LIBUSB_DISABLE_LOG)-log
-
-ifdef PTXCONF_LIBUSB_DEBUG_LOG
-LIBUSB_AUTOCONF += --enable-debug-log
-endif
+	--disable-udev \
+	--disable-timerfd \
+	--$(call ptx/disen, PTXCONF_LIBUSB_DISABLE_LOG)-log \
+	--$(call ptx/endis, PTXCONF_LIBUSB_DEBUG_LOG)-debug-log \
+	--disable-system-log \
+	--disable-examples-build \
+	--enable-tests-build
 
 # ----------------------------------------------------------------------------
 # Target-Install
-- 
1.9.1


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-03-28 20:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-28 11:30 [ptxdist] [PATCH] libusb: drop libusb and use libusbx Alexander Aring
2014-03-28 11:37 ` Alexander Aring
2014-03-28 12:55 ` Michael Olbrich
2014-03-28 13:10   ` Alexander Aring
2014-03-28 20:51     ` Alexander Aring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox