* [PR PATCH] libusb: update to 1.0.26.
@ 2022-04-11 18:30 skmpz
2022-04-12 17:47 ` [PR PATCH] [Merged]: " leahneukirchen
0 siblings, 1 reply; 2+ messages in thread
From: skmpz @ 2022-04-11 18:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1234 bytes --]
There is a new pull request by skmpz against master on the void-packages repository
https://github.com/skmpz/void-packages libusb-1.0.26
https://github.com/void-linux/void-packages/pull/36639
libusb: update to 1.0.26.
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
A patch file from https://github.com/void-linux/void-packages/pull/36639.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-libusb-1.0.26-36639.patch --]
[-- Type: text/x-diff, Size: 7056 bytes --]
From c1afd728d1b80b56904aede4eacb42d3f74b4a76 Mon Sep 17 00:00:00 2001
From: skmpz <dem.procopiou@gmail.com>
Date: Mon, 11 Apr 2022 22:30:18 +0400
Subject: [PATCH] libusb: update to 1.0.26.
---
.../libusb/patches/late-transfer-free.patch | 136 ------------------
srcpkgs/libusb/template | 6 +-
2 files changed, 3 insertions(+), 139 deletions(-)
delete mode 100644 srcpkgs/libusb/patches/late-transfer-free.patch
diff --git a/srcpkgs/libusb/patches/late-transfer-free.patch b/srcpkgs/libusb/patches/late-transfer-free.patch
deleted file mode 100644
index f4d913bbbd84..000000000000
--- a/srcpkgs/libusb/patches/late-transfer-free.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 010691ff6fdf9fcfaa7f76c1417dfc1f7df124ca Mon Sep 17 00:00:00 2001
-From: Benjamin Berg <bberg@redhat.com>
-Date: Tue, 15 Feb 2022 11:13:41 +0100
-Subject: [PATCH] io: Track device in usbi_transfer
-
-transfer->dev_handle currently has the behaviour that it will be unset
-if the device is closed. The sync API uses this fact to catch an error
-case.
-
-In other cases, transfer->dev_handle will keep its value, which means
-that if the transfer lives longer than the device handle, the pointer
-becomes invalid.
-
-The transfer does however keep a reference to the device, which owns the
-pointer to the context. As such, we can track this reference internal to
-the transfer, and it is set while the transfer is in-flight.
-
-With this, switch the logging infrastructure to use itransfer->dev->ctx
-while checking that itransfer->dev is non-NULL.
-
-Note that this was a regression caused by 6cae9c6dbd74 ("core: update
-usbi_dbg to take the context as an argument"), specifically when
-resolving the context while freeing a transfer after closing a device.
-
-Note that the transfer will now keep a reference to the device until it
-is free'ed. This allows it to use the correct context for logging even
-in libusb_free_transfer.
-
-The alternative to all this would be to just explicitly pass NULL to the
-log handler in libusb_free_transfer.
-
-Closes: #1038
----
- libusb/io.c | 20 ++++++++++++--------
- libusb/libusbi.h | 11 ++++++++---
- 2 files changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/libusb/io.c b/libusb/io.c
-index 0d2ac9ea..b919e9d9 100644
---- a/libusb/io.c
-+++ b/libusb/io.c
-@@ -1344,6 +1344,8 @@ void API_EXPORTED libusb_free_transfer(struct libusb_transfer *transfer)
-
- itransfer = LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer);
- usbi_mutex_destroy(&itransfer->lock);
-+ if (itransfer->dev)
-+ libusb_unref_device(itransfer->dev);
-
- priv_size = PTR_ALIGN(usbi_backend.transfer_priv_size);
- ptr = (unsigned char *)itransfer - priv_size;
-@@ -1489,9 +1491,15 @@ int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer)
- {
- struct usbi_transfer *itransfer =
- LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer);
-- struct libusb_context *ctx = TRANSFER_CTX(transfer);
-+ struct libusb_context *ctx;
- int r;
-
-+ assert(transfer->dev_handle);
-+ if (itransfer->dev)
-+ libusb_unref_device(itransfer->dev);
-+ itransfer->dev = libusb_ref_device(transfer->dev_handle->dev);
-+
-+ ctx = HANDLE_CTX(transfer->dev_handle);
- usbi_dbg(ctx, "transfer %p", transfer);
-
- /*
-@@ -1551,8 +1559,6 @@ int API_EXPORTED libusb_submit_transfer(struct libusb_transfer *transfer)
- r = usbi_backend.submit_transfer(itransfer);
- if (r == LIBUSB_SUCCESS) {
- itransfer->state_flags |= USBI_TRANSFER_IN_FLIGHT;
-- /* keep a reference to this device */
-- libusb_ref_device(transfer->dev_handle->dev);
- }
- usbi_mutex_unlock(&itransfer->lock);
-
-@@ -1659,7 +1665,6 @@ int usbi_handle_transfer_completion(struct usbi_transfer *itransfer,
- {
- struct libusb_transfer *transfer =
- USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer);
-- struct libusb_device_handle *dev_handle = transfer->dev_handle;
- struct libusb_context *ctx = ITRANSFER_CTX(itransfer);
- uint8_t flags;
- int r;
-@@ -1693,7 +1698,6 @@ int usbi_handle_transfer_completion(struct usbi_transfer *itransfer,
- * this point. */
- if (flags & LIBUSB_TRANSFER_FREE_TRANSFER)
- libusb_free_transfer(transfer);
-- libusb_unref_device(dev_handle->dev);
- return r;
- }
-
-@@ -1727,10 +1731,10 @@ int usbi_handle_transfer_cancellation(struct usbi_transfer *itransfer)
- * function will be called the next time an event handler runs. */
- void usbi_signal_transfer_completion(struct usbi_transfer *itransfer)
- {
-- libusb_device_handle *dev_handle = USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer)->dev_handle;
-+ struct libusb_device *dev = itransfer->dev;
-
-- if (dev_handle) {
-- struct libusb_context *ctx = HANDLE_CTX(dev_handle);
-+ if (dev) {
-+ struct libusb_context *ctx = DEVICE_CTX(dev);
- unsigned int event_flags;
-
- usbi_mutex_lock(&ctx->event_data_lock);
-diff --git a/libusb/libusbi.h b/libusb/libusbi.h
-index 158a9af5..7618236f 100644
---- a/libusb/libusbi.h
-+++ b/libusb/libusbi.h
-@@ -329,10 +329,11 @@ void usbi_log(struct libusb_context *ctx, enum libusb_log_level level,
- #endif /* ENABLE_LOGGING */
-
- #define DEVICE_CTX(dev) ((dev)->ctx)
--#define HANDLE_CTX(handle) (DEVICE_CTX((handle)->dev))
--#define TRANSFER_CTX(transfer) (HANDLE_CTX((transfer)->dev_handle))
-+#define HANDLE_CTX(handle) ((handle) ? DEVICE_CTX((handle)->dev) : NULL)
- #define ITRANSFER_CTX(itransfer) \
-- (TRANSFER_CTX(USBI_TRANSFER_TO_LIBUSB_TRANSFER(itransfer)))
-+ ((itransfer)->dev ? DEVICE_CTX((itransfer)->dev) : NULL)
-+#define TRANSFER_CTX(transfer) \
-+ (ITRANSFER_CTX(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)))
-
- #define IS_EPIN(ep) (0 != ((ep) & LIBUSB_ENDPOINT_IN))
- #define IS_EPOUT(ep) (!IS_EPIN(ep))
-@@ -562,6 +563,10 @@ struct usbi_transfer {
- uint32_t state_flags; /* Protected by usbi_transfer->lock */
- uint32_t timeout_flags; /* Protected by the flying_stransfers_lock */
-
-+ /* The device reference is held until destruction for logging
-+ * even after dev_handle is set to NULL. */
-+ struct libusb_device *dev;
-+
- /* this lock is held during libusb_submit_transfer() and
- * libusb_cancel_transfer() (allowing the OS backend to prevent duplicate
- * cancellation, submission-during-cancellation, etc). the OS backend
diff --git a/srcpkgs/libusb/template b/srcpkgs/libusb/template
index 4f192264d4bc..ff718223a773 100644
--- a/srcpkgs/libusb/template
+++ b/srcpkgs/libusb/template
@@ -1,7 +1,7 @@
# Template file for 'libusb'
pkgname=libusb
-version=1.0.25
-revision=2
+version=1.0.26
+revision=1
build_style=gnu-configure
hostmakedepends="pkg-config"
makedepends="eudev-libudev-devel"
@@ -11,7 +11,7 @@ license="LGPL-2.1-or-later"
homepage="https://libusb.info"
changelog="https://raw.githubusercontent.com/libusb/libusb/master/ChangeLog"
distfiles="https://github.com/libusb/libusb/releases/download/v${version}/libusb-${version}.tar.bz2"
-checksum=8a28ef197a797ebac2702f095e81975e2b02b2eeff2774fa909c78a74ef50849
+checksum=12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5
libusb-devel_package() {
short_desc+=" - development files"
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PR PATCH] [Merged]: libusb: update to 1.0.26.
2022-04-11 18:30 [PR PATCH] libusb: update to 1.0.26 skmpz
@ 2022-04-12 17:47 ` leahneukirchen
0 siblings, 0 replies; 2+ messages in thread
From: leahneukirchen @ 2022-04-12 17:47 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 1081 bytes --]
There's a merged pull request on the void-packages repository
libusb: update to 1.0.26.
https://github.com/void-linux/void-packages/pull/36639
Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->
#### Testing the changes
- I tested the changes in this PR: **YES**
<!--
#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**|**NO**
-->
<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- aarch64-musl
- armv7l
- armv6l-musl
-->
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-04-12 17:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-11 18:30 [PR PATCH] libusb: update to 1.0.26 skmpz
2022-04-12 17:47 ` [PR PATCH] [Merged]: " leahneukirchen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).