FYI only.

---------- Forwarded message ---------
From: Tormod Volden <[email protected]>
Date: Mon, May 18, 2026 at 6:18 AM
Subject: [libusb] Announcing libusb v1.0.30
To: <[email protected]>


We are happy to announce the final release of libusb 1.0.30.

It features two new API functions, libusb_get_device_string() and
libusb_get_session_data().

For Windows there are two new major features that have been in the
works for a long time. One is the RAW_IO support that can greatly
enhance throughput on bulk transfers. The other is the optional
support for hotplug. There are still issues with e.g. composite
devices, so it is not enabled by default, and must be enabled at build
time. The 7z archive with Windows binaries includes both hotplug and
default build variants (also for ARM64) in the VS2025 folder. The goal
is to enable hotplug by default in future releases.

ChangeLog with most important changes since previous release 1.0.29:
* Add hotplug support on Microsoft Windows
* Add RAW_IO support in WinUSB backend
* Work around a macOS 26 Tahoe compatibility breakage due to Apple
changing kUSBHostPortPropertyPortNumber
* Add new API libusb_get_device_string() to access device strings
without opening the device
* Add new API libusb_get_session_data() which returns the OS-specific handle
* Fix device removal races on non-hotplug builds
* Improve descriptor parsing memory safety
* On Darwin, fix concurrency issues
* On Android, fix intermittent failures in get_usbfs_fd()
* On Windows, fix bus number assignment for root hub device,
preventing duplicate bus number assignments
* Fix compilation with Microsoft Visual Studio 2026
* Fix various compiler warnings, improved tests and examples

The 1.0.30 release was made possible by the contributions (84 commits)
from 27 patch submitters (14 new) - see below git shortlog - plus
everyone who contributed with issue reporting, discussions and
testing. Most prominently, we now have Sean McBride and Sylvain Fasel
in the core development team and they have massively contributed to
implementation and review of new features as well as bug fixing and
code maintenance. As many other projects, we start to feel the "heat"
of LLM-assisted contributions so we are more than ever grateful for
critical reviews.

Please note that after this release, it is planned to put the old
"nano" version (visible in debug logs and per libusb_get_version) to
rest, and replace it with the more common "git describe" format, see
https://github.com/libusb/libusb/pull/1812 . Also support for
Microsoft VS2013 and VS2015 compiler environments is planned to be
removed (and binary releases trimmed), see
https://github.com/libusb/libusb/pull/1784 . If any of this is a
concern to you, please get involved.


The release source code tarball can be downloaded here:
https://github.com/libusb/libusb/releases/download/v1.0.30/libusb-1.0.30.tar.bz2

An archive of Windows binaries can be downloaded here:
https://github.com/libusb/libusb/releases/download/v1.0.30/libusb-1.0.30.7z

Note that the tarball includes a configure script so unlike a git
checkout it is not necessary to bootstrap it with autoconf.

On behalf of the libusb development community,
Tormod


--

Adrien Bertrand (1):
      webusb: Update set_configuration/selectConfiguration binding

Alex Birkett (1):
      ci: Add GitHub Actions workflow for Android

Hannes Franke (1):
      Reintroduce RAW_IO support in WinUSB backend

Hartwig Wiesmann (1):
      libusb.h: Add missing class codes

Ihor Dutchak (1):
      ci: bump GitHub Actions to latest major versions to drop Node.js 20

Ingvar Stepanyan (2):
      tests: Fix Node.js shim for Node 21+ (webusb/emscripten)
      Add Windows Github actions

Jesse Taube (1):
      CI: Add MSYS2 Clang64 AArch64 workflow

Logan Gallois (3):
      Update hotplug preprocessor definition in MSVC props
      windows: fix bus number assignment for root hub device
      windows: Fix correct reference counting in winusb_get_device_list

MarkLee131 (2):
      descriptor: Fix two memory-safety bugs in malformed config
descriptor handling
      tests/fuzz: Add descriptor parser fuzzer with regression seeds

Matt Liberty (1):
      Added libusb_get_device_string() which works with a closed device

Nicolas Bats (1):
      windows: Use #pragma pack consistently instead of includes

Octopoulpe (1):
      darwin: Null-terminate device string buffer

Ole André Vadla Ravnås (1):
      Fix warnings when building without logging and assertions

Patrick Stewart (2):
      linux: Always default to /dev/bus/usb
      linux: Allow libusb_init without libudev and with no devices plugged in

Sean McBride (21):
      darwin: Fix last param to QueryInterface to be LPVOID*
      darwin: Introduce temporary variable so we can take the address
      libusbi.h/darwin: Split recursive struct declarations, for C++ compat
      core: Remove some unnecessary consts
      Clarify return value of usbi_mutex_trylock with named temporary variable
      libusbi.h: reorder struct fields so mutex appears before
variable it guards
      Fixed clang-tidy readability-redundant-casting warnings
      Fixed clang-tidy readability-math-missing-parentheses warnings
      Fixed memory leak in an error path
      Updated .clang-tidy config file to enable/disable some more warnings
      darwin: Add new windows_hotplug files to Xcode project
      darwin: use threads_posix.h wrapper functions
      fix pthread wrapping to use correct types
      linux: change usbi_handle_disconnect signature to take ctx
      libusbi.h: move mutex declarations before the things they lock
      Updated changelog for v1.0.30
      Always set pointer and its size together for -fbounds-safety
      Always set pointer and its size together for -fbounds-safety,
also zero upon free()
      darwin: add missing mutex lock/unlock for claimed_interfaces
      darwin: Fix -Watomic-implicit-seq-cst warning
      io: Remove unused usbi_transfer.num_iso_packets struct field

Sebastian von Ohr (2):
      libusb.h: Fix typo in comment
      libusb.h: Fix UTF-16 to UTF-8 calculation in comment

Sonatique (1):
      example/hotplugtest: Ignore unavailable devices (#1425)

Sylvain Fasel (15):
      tests/stress_mt: ignore errors in threads for checking device counts
      windows: disable warning C5287: operands are different enum
types for Visual Studio version above 2013
      Windows Github actions: specify supported architectures explicitly.
      windows: hotplug implementation
      haiku: Fix backend initializer alignment for new callbacks
      haiku: Fix tests build by avoiding static linking
      windows: Synchronize transfer handle access during completion
      windows: Remove ARM32 from MSVC, fix PlatformToolsetVersion
      windows: Update msvc/getopt to glibc 2.41 (commit 66f3e92)
      windows hotplug: Small preventive fixes and improvements
      windows hotplug: hotplug events fire for hubs
      webusb: harden Emscripten config descriptor reads
      core: fix crash on device destruction when already detached
      windows: fix winusb_get_device_string failing for strict USB devices
      Fix concurrent libusb_get_device_list/free_device_list and
Windows backend races

Theodor Engøy (2):
      tests/fuzz: BOS device‑cap parsers fuzzer (USB 2.0 ext, SS
dev‑cap, Container ID) + minimal corpus seed
      CI(linux): ASan/UBSan + hardening; staged install (DESTDIR);
bounded BOS fuzzer smoke inside linux job

Tormod Volden (16):
      examples/hotplugtest: Allow multiple devices attaching
      examples/hotplugtest: Close old device only if new one was opened
      descriptor: Warn on invalid langid descriptor
      windows: Remove winsock include from libusb.h
      docs: Fix typo causing Doxygen error
      io.c: Avoid warnings when building without logging
      linux: Avoid switch-enum warning in op_get_device_string()
      ci: Build with -Werror on Linux
      Update libusb-1.0.def
      libusb 1.0.30-rc1
      ci: Upload artifacts from github action windows build
      darwin: Use atomic for in_reenumerate flag
      libusb 1.0.30-rc2
      windows: Avoid warning when building without logging
      configure.ac: Bump libtool library version
      libusb 1.0.30

Vadim Mikhailov (1):
      macOS: Fix for libusb_get_port_numbers on macOS 26+

Vladimir Gladkov (vladimir-office-win11) (1):
      core: Add new function libusb_get_session_data

mcuee (2):
      msvc: Add VS2026 support
      Misc: Update README file to add current developers

osy (1):
      darwin: handle error from GetConfigurationDescriptorPtr

wws13 (1):
      darwin: Add null checks on ->device in darwin_open, fixing a
crash if a sandboxed app doesn't have access to the USB drive

¥IGA (1):
      windows: Fix Compilation with Microsoft Visual Studio 2026

Łukasz Bartosik (1):
      android: Fix intermittent open failure in get_usbfs_fd()


_______________________________________________
libusb-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libusb-devel


-- 
Xiaofan

Reply via email to