aboutsummaryrefslogtreecommitdiffstats
path: root/package/libs/libusb-compat
diff options
context:
space:
mode:
Diffstat (limited to 'package/libs/libusb-compat')
-rw-r--r--package/libs/libusb-compat/Makefile53
-rw-r--r--package/libs/libusb-compat/patches/001-fix-musl-stdint.patch185
2 files changed, 238 insertions, 0 deletions
diff --git a/package/libs/libusb-compat/Makefile b/package/libs/libusb-compat/Makefile
new file mode 100644
index 0000000..c1cb587
--- /dev/null
+++ b/package/libs/libusb-compat/Makefile
@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2010-2015 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-compat
+PKG_VERSION:=0.1.4
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=@SF/libusb
+PKG_MD5SUM:=2ca521fffadd0c28fdf174e6ec73865b
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_LICENSE:=LGPL-2.1
+
+PKG_MAINTAINER := Felix Fietkau <nbd@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libusb-compat
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=libusb-0.1 compatibility library
+ DEPENDS:=+libusb-1.0
+ URL:=http://libusb.wiki.sourceforge.net/
+endef
+
+define Package/libusb-compat/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
+ $(INSTALL_DIR) $(1)
+ $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+ $(INSTALL_DIR) $(2)/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/libusb-config $(2)/bin/
+endef
+
+define Package/libusb-compat/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libusb-0.1.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libusb-compat))
diff --git a/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch b/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch
new file mode 100644
index 0000000..333bc09
--- /dev/null
+++ b/package/libs/libusb-compat/patches/001-fix-musl-stdint.patch
@@ -0,0 +1,185 @@
+--- a/libusb/usb.h
++++ b/libusb/usb.h
+@@ -27,6 +27,7 @@
+
+ #include <unistd.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <limits.h>
+
+ #include <dirent.h>
+@@ -78,40 +79,40 @@
+
+ /* All standard descriptors have these 2 fields in common */
+ struct usb_descriptor_header {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
++ uint8_t bLength;
++ uint8_t bDescriptorType;
+ };
+
+ /* String descriptor */
+ struct usb_string_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t wData[1];
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t wData[1];
+ };
+
+ /* HID descriptor */
+ struct usb_hid_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t bcdHID;
+- u_int8_t bCountryCode;
+- u_int8_t bNumDescriptors;
+- /* u_int8_t bReportDescriptorType; */
+- /* u_int16_t wDescriptorLength; */
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t bcdHID;
++ uint8_t bCountryCode;
++ uint8_t bNumDescriptors;
++ /* uint8_t bReportDescriptorType; */
++ /* uint16_t wDescriptorLength; */
+ /* ... */
+ };
+
+ /* Endpoint descriptor */
+ #define USB_MAXENDPOINTS 32
+ struct usb_endpoint_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int8_t bEndpointAddress;
+- u_int8_t bmAttributes;
+- u_int16_t wMaxPacketSize;
+- u_int8_t bInterval;
+- u_int8_t bRefresh;
+- u_int8_t bSynchAddress;
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint8_t bEndpointAddress;
++ uint8_t bmAttributes;
++ uint16_t wMaxPacketSize;
++ uint8_t bInterval;
++ uint8_t bRefresh;
++ uint8_t bSynchAddress;
+
+ unsigned char *extra; /* Extra descriptors */
+ int extralen;
+@@ -129,15 +130,15 @@ struct usb_endpoint_descriptor {
+ /* Interface descriptor */
+ #define USB_MAXINTERFACES 32
+ struct usb_interface_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int8_t bInterfaceNumber;
+- u_int8_t bAlternateSetting;
+- u_int8_t bNumEndpoints;
+- u_int8_t bInterfaceClass;
+- u_int8_t bInterfaceSubClass;
+- u_int8_t bInterfaceProtocol;
+- u_int8_t iInterface;
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint8_t bInterfaceNumber;
++ uint8_t bAlternateSetting;
++ uint8_t bNumEndpoints;
++ uint8_t bInterfaceClass;
++ uint8_t bInterfaceSubClass;
++ uint8_t bInterfaceProtocol;
++ uint8_t iInterface;
+
+ struct usb_endpoint_descriptor *endpoint;
+
+@@ -155,14 +156,14 @@ struct usb_interface {
+ /* Configuration descriptor information.. */
+ #define USB_MAXCONFIG 8
+ struct usb_config_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t wTotalLength;
+- u_int8_t bNumInterfaces;
+- u_int8_t bConfigurationValue;
+- u_int8_t iConfiguration;
+- u_int8_t bmAttributes;
+- u_int8_t MaxPower;
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t wTotalLength;
++ uint8_t bNumInterfaces;
++ uint8_t bConfigurationValue;
++ uint8_t iConfiguration;
++ uint8_t bmAttributes;
++ uint8_t MaxPower;
+
+ struct usb_interface *interface;
+
+@@ -172,28 +173,28 @@ struct usb_config_descriptor {
+
+ /* Device descriptor */
+ struct usb_device_descriptor {
+- u_int8_t bLength;
+- u_int8_t bDescriptorType;
+- u_int16_t bcdUSB;
+- u_int8_t bDeviceClass;
+- u_int8_t bDeviceSubClass;
+- u_int8_t bDeviceProtocol;
+- u_int8_t bMaxPacketSize0;
+- u_int16_t idVendor;
+- u_int16_t idProduct;
+- u_int16_t bcdDevice;
+- u_int8_t iManufacturer;
+- u_int8_t iProduct;
+- u_int8_t iSerialNumber;
+- u_int8_t bNumConfigurations;
++ uint8_t bLength;
++ uint8_t bDescriptorType;
++ uint16_t bcdUSB;
++ uint8_t bDeviceClass;
++ uint8_t bDeviceSubClass;
++ uint8_t bDeviceProtocol;
++ uint8_t bMaxPacketSize0;
++ uint16_t idVendor;
++ uint16_t idProduct;
++ uint16_t bcdDevice;
++ uint8_t iManufacturer;
++ uint8_t iProduct;
++ uint8_t iSerialNumber;
++ uint8_t bNumConfigurations;
+ };
+
+ struct usb_ctrl_setup {
+- u_int8_t bRequestType;
+- u_int8_t bRequest;
+- u_int16_t wValue;
+- u_int16_t wIndex;
+- u_int16_t wLength;
++ uint8_t bRequestType;
++ uint8_t bRequest;
++ uint16_t wValue;
++ uint16_t wIndex;
++ uint16_t wLength;
+ };
+
+ /*
+@@ -254,7 +255,7 @@ struct usb_device {
+
+ void *dev; /* Darwin support */
+
+- u_int8_t devnum;
++ uint8_t devnum;
+
+ unsigned char num_children;
+ struct usb_device **children;
+@@ -266,7 +267,7 @@ struct usb_bus {
+ char dirname[PATH_MAX + 1];
+
+ struct usb_device *devices;
+- u_int32_t location;
++ uint32_t location;
+
+ struct usb_device *root_dev;
+ };