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
