[arch-commits] Commit in libusb/trunk (2 files)

David Runge dvzrv at archlinux.org
Sun Jan 10 19:24:30 UTC 2021


    Date: Sunday, January 10, 2021 @ 19:24:30
  Author: dvzrv
Revision: 406058

upgpkg: libusb 1.0.24-2: Rebuild to fix issue with device enumeration.

Upstream fixed an issue in regards to device enumeration (https://bugs.archlinux.org/task/69121).
The patch is a backport of https://github.com/libusb/libusb/commit/f6d2cb561402c3b6d3627c0eb89e009b503d9067

Added:
  libusb/trunk/libusb-1.0.24-descriptor_parsing.patch
Modified:
  libusb/trunk/PKGBUILD

----------------------------------------+
 PKGBUILD                               |   13 +++++++---
 libusb-1.0.24-descriptor_parsing.patch |   37 +++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+), 4 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2021-01-10 18:47:06 UTC (rev 406057)
+++ PKGBUILD	2021-01-10 19:24:30 UTC (rev 406058)
@@ -4,7 +4,7 @@
 
 pkgname=libusb
 pkgver=1.0.24
-pkgrel=1
+pkgrel=2
 pkgdesc="Library that provides generic access to USB devices"
 arch=('x86_64')
 url="https://libusb.info/"
@@ -12,12 +12,17 @@
 depends=('glibc')
 makedepends=('systemd')
 provides=('libusb-1.0.so')
-source=("https://github.com/${pkgname}/${pkgname}/releases/download/v$pkgver/${pkgname}-$pkgver.tar.bz2")
-sha512sums=('5aea36a530aaa15c6dd656d0ed3ce204522c9946d8d39ffbb290dab4a98cda388a2598da4995123d1032324056090bd429e702459626d3e8d7daeebc4e7ff3dc')
-b2sums=('f6188b5af1225cf8b6d1486b6efcf48e837ee4f2e3592adab3ae6aae0a74a67aa54f40f0dd547f951a194d40954f2ee33acf741d2eee0b8449ce64f2edcf1018')
+source=("https://github.com/${pkgname}/${pkgname}/releases/download/v$pkgver/${pkgname}-$pkgver.tar.bz2"
+        "${pkgname}-1.0.24-descriptor_parsing.patch"
+)
+sha512sums=('5aea36a530aaa15c6dd656d0ed3ce204522c9946d8d39ffbb290dab4a98cda388a2598da4995123d1032324056090bd429e702459626d3e8d7daeebc4e7ff3dc'
+            '588624bdcce2ff3ef98ab28b98b00eb48f16ef9e94033f29aaf8c6d6cb3e56d1299ea59f63b0d7a485955fa85182db0db5c043ceca24345c41f40311483606e2')
+b2sums=('f6188b5af1225cf8b6d1486b6efcf48e837ee4f2e3592adab3ae6aae0a74a67aa54f40f0dd547f951a194d40954f2ee33acf741d2eee0b8449ce64f2edcf1018'
+        '65efafcaa87cc75000adb0f6fae6c5fc33d72727bacde327bae5e5e68162783c8203f92ecd3de2f7e8a9869f587ea76a0b1a054369a15cd9b3cec8f7fc44036f')
 
 prepare() {
   cd "$pkgname-$pkgver"
+  patch -Np1 -i ../"${pkgname}-1.0.24-descriptor_parsing.patch"
   autoreconf -vfi
 }
 

Added: libusb-1.0.24-descriptor_parsing.patch
===================================================================
--- libusb-1.0.24-descriptor_parsing.patch	                        (rev 0)
+++ libusb-1.0.24-descriptor_parsing.patch	2021-01-10 19:24:30 UTC (rev 406058)
@@ -0,0 +1,37 @@
+diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c
+index fb2ed53a..4d2dc8d6 100644
+--- a/libusb/os/linux_usbfs.c
++++ b/libusb/os/linux_usbfs.c
+@@ -641,7 +641,12 @@ static int seek_to_next_config(struct libusb_context *ctx,
+ 	uint8_t *buffer, size_t len)
+ {
+ 	struct usbi_descriptor_header *header;
+-	int offset = 0;
++	int offset;
++
++	/* Start seeking past the config descriptor */
++	offset = LIBUSB_DT_CONFIG_SIZE;
++	buffer += LIBUSB_DT_CONFIG_SIZE;
++	len -= LIBUSB_DT_CONFIG_SIZE;
+ 
+ 	while (len > 0) {
+ 		if (len < 2) {
+@@ -718,7 +723,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
+ 		}
+ 
+ 		if (priv->sysfs_dir) {
+-			 /*
++			/*
+ 			 * In sysfs wTotalLength is ignored, instead the kernel returns a
+ 			 * config descriptor with verified bLength fields, with descriptors
+ 			 * with an invalid bLength removed.
+@@ -727,8 +732,7 @@ static int parse_config_descriptors(struct libusb_device *dev)
+ 			int offset;
+ 
+ 			if (num_configs > 1 && idx < num_configs - 1) {
+-				offset = seek_to_next_config(ctx, buffer + LIBUSB_DT_CONFIG_SIZE,
+-							     remaining - LIBUSB_DT_CONFIG_SIZE);
++				offset = seek_to_next_config(ctx, buffer, remaining);
+ 				if (offset < 0)
+ 					return offset;
+ 				sysfs_config_len = (uint16_t)offset;



More information about the arch-commits mailing list