libusb: add from /packages, add myself as maintainer
authorFelix Fietkau <nbd@openwrt.org>
Tue, 29 Jan 2013 10:48:37 +0000 (10:48 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 29 Jan 2013 10:48:37 +0000 (10:48 +0000)
SVN-Revision: 35373

package/libs/libusb/Makefile [new file with mode: 0644]
package/libs/libusb/patches/001-timerfd.patch [new file with mode: 0644]

diff --git a/package/libs/libusb/Makefile b/package/libs/libusb/Makefile
new file mode 100644 (file)
index 0000000..d1bdb01
--- /dev/null
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2010-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libusb
+PKG_VERSION:=1.0.9
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_MD5SUM:=7f5a02375ad960d4e33a6dae7d63cfcb
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+PKG_MAINTAINER := Felix Fietkau <nbd@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libusb-1.0
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=A library for accessing Linux USB devices
+  DEPENDS:=+libpthread +librt
+  URL:=http://libusb.wiki.sourceforge.net/
+endef
+
+define Package/libusb-1.0/description
+  libusb is a C library that gives applications easy access to USB devices on
+  many different operating systems.
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+define Build/InstallDev
+       $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+endef
+
+define Package/libusb-1.0/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusb*.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libusb-1.0))
diff --git a/package/libs/libusb/patches/001-timerfd.patch b/package/libs/libusb/patches/001-timerfd.patch
new file mode 100644 (file)
index 0000000..de48a7f
--- /dev/null
@@ -0,0 +1,33 @@
+commit cadb77d99e314e42c3eb02d016e9d90136ec6959
+Author: Alexander Gordeev <lasaine@lvk.cs.msu.su>
+Date:   Thu Jan 27 06:39:16 2011 +0300
+
+    fix timerfd initialization
+    
+    sys/timerfd.h defines TFD_NONBLOCK as 0x800 but in kernel TFD_NONBLOCK
+    is an alias for O_NONBLOCK which is defined in arch-specific fcntl.h.
+    While it's still 0x800 for most of archs but for mips it's 0x80. So
+    timerfd_create(..., TFD_NONBLOCK) returns -EINVAL because of that. Fix
+    this by using O_NONBLOCK instead.
+    
+    Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su>
+
+--- a/libusb/io.c
++++ b/libusb/io.c
+@@ -20,6 +20,7 @@
+ #include <config.h>
+ #include <errno.h>
++#include <fcntl.h>
+ #include <signal.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+@@ -1072,7 +1073,7 @@ int usbi_io_init(struct libusb_context *
+ #ifdef USBI_TIMERFD_AVAILABLE
+       ctx->timerfd = timerfd_create(usbi_backend->get_timerfd_clockid(),
+-              TFD_NONBLOCK);
++              O_NONBLOCK);
+       if (ctx->timerfd >= 0) {
+               usbi_dbg("using timerfd for timeouts");
+               r = usbi_add_pollfd(ctx, ctx->timerfd, POLLIN);