FYI ---------- Forwarded message --------- From: Tormod Volden <lists.tor...@gmail.com> Date: Thu, Feb 1, 2024 at 7:30 AM Subject: [libusb] Announcing libusb v1.0.27 To: <libusb-de...@lists.sourceforge.net>
We are happy to announce the final release of libusb 1.0.27. ChangeLog with most important changes since 1.0.26: * New libusb_init_context API to replace libusb_init * New libusb_get_max_alt_packet_size API * New libusb_get_platform_descriptor API (BOS) * Allow setting log callback with libusb_set_option/libusb_init_context * New WebAssembly + WebUSB backend using Emscripten * Fix regression in libusb_set_interface_alt_setting * Fix sync transfer completion race and use-after-free * Fix hotplug exit ordering * Linux: NO_DEVICE_DISCOVERY option set per context * macOS: Fix missing device list cleanup locking * macOS: Do not clear device data toggle for newer OS versions * macOS: Fix running binaries on older OS than build host * Windows: Allow claiming multiple associated interfaces * Windows: Ignore non-configured devices instead of waiting * Windows: Improved root hub detection The source code tarball can be downloaded here: https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.tar.bz2 An archive of Windows binaries can be downloaded here: https://github.com/libusb/libusb/releases/download/v1.0.27/libusb-1.0.27.7z Note that the release tarball includes a configure script so unlike a git checkout it is not necessary to bootstrap with autoconf. The 1.0.27 release was made possible by the contributions from all patch submitters (see below git shortlog with 158 commits from 31 contributors, of which 22 new!) plus everyone who contributed with issue reporting, discussions and testing. On behalf of the libusb development community, Tormod -- Addison Crump (1): descriptor: Guard against corrupted descriptor length field Alex Feinman (1): windows: Refactor parsing of MI_XX string taking into account it's 16-based Alexander Mot (1): windows: Define __func__ for vs2015 Aurelien Jarno (1): tests/set_option: Avoid use-after-free in case of test failure Brad Smith (1): threads_posix: Use proper getthrid() for thread ID on OpenBSD Craig Hutchinson (1): Fix `exit` order to match reverse of `init` Dominik Boehi (1): descriptor: Add support for BOS platform descriptor parsing Edgar Fuß (2): netbsd: Add comment about udi_speed values matching libusb enum netbsd: Map NetBSD's udi_bus/udi_addr to libusb's 1-based API Francis Hart (1): Fix setting log level before libusb_init() Ihor Dutchak (2): Fix possible memory leak of configuration descriptor (Darwin/Windows) darwin/windows: Find interface descriptor by bInterfaceNumber Ingvar Stepanyan (15): Add Emscripten backend for WebAssembly + WebUSB support examples/hotplugtest: Match any device by default tests: Mark callbacks as LIBUSB_CALL testlib: Don't count skipped tests as failures CI: Run cross-platform tests on all platforms CI: Enable Address Sanitizer (ASAN) where supported CI: Tell tests that we don't have any devices CI: Pass the extra warnings flags to CXXFLAGS too Add WebUSB testing via node-usb CI: Enable Emscripten build tests/stress_mt: Test open/transfer/close on available devices webusb: Wasm+WebUSB backend fixes and improvements tests/stress_mt: Stop early if any device fails tests/set_option: Allow no devices in test_no_discovery msvc: Add tests/init_context project to MSVC Joshua M. Clulow (2): sunos: Fix error detection in sunos_submit_transfer() sunos: Return error if OS paths hit their limits Lars Kanis (2): core: Don't overwrite the log callback on every global libusb_set_option() core: Allow setting global log callback after first libusb_init() Lonnie Abelbeck (1): configure.ac: Link with -latomic only if no atomic builtins Ludovic Rousseau (6): Doxygen: Add references to LIBUSB_ERROR codes Doxygen: Improve libusb_wrap_sys_device() documentation Add github action build for --enable-debug-log Fix build error with --enable-debug-log Fix build errors of tests with --enable-debug-log Fix github action warnings Mario Kleiner (1): windows: Fix off-by-one error in HID backend for devices without report IDs Martin Ling (4): docs: Clear endpoint halt issued after cancellation only for macOS < 10.5 windows: Add GetPipePolicy to struct winusb_interface windows: Add option for WinUSB RAW_IO endpoint policy Revert "windows: Add option for WinUSB RAW_IO endpoint policy" Nathan Hjelm (17): darwin: add missing locking around cached device list cleanup config: allow configure to continue without pkg-config installed darwin: Do not clear device data toggle on macOS 10.5 or newer Add tags and cscope.out to .gitignore core: Add libusb_init_context() setting options at context creation Update tests and example to use the new libusb_init_context() function libusb_set_options: Adjust semantics of libusb_set_option for log level tests: Add unit test for libusb_set_option Add support for setting the log callback with libusb_set_option/libusb_init_context darwin: fix potential crash at darwin_exit ci: do not hard code test names for CI ci: dump test suite output on test failure ci: ensure testsuite log is dumped on failure darwin: add get_running_version helper darwin: add abstraction for IOUSBInterfaceInterface darwin: add abstraction for IOUSBDeviceInterface darwin: add testing for IOKit version fallbacks Niklas Gürtler (1): Fix #1263 by acquiring the waiters lock while calling transfer callbacks and swapping the order of operations in sync_transfer_cb Orhan aib Kavrakoglu (3): core: Factor out helper get_endpoint_max_packet_size() core: Add helper find_alt_endpoint() core: Add libusb_get_max_alt_packet_size() Pablo Prietz (1): core: Remove leftover usbi_mutex_unlock in libusb_set_interface_alt_setting Petr Pazourek (1): windows: Allow device GUIDs missing terminating characters or separators Rosen Penev (4): windows: Add clock_gettime check windows: Mark libusb_set_option as WINAPIV windows: Fix build with --disable-log windows: Remove __stdcall libusb_set_option from .def file Ryan Metcalfe (3): descriptor: Introduce interface association descriptors (IAD) windows: Allow claiming all interfaces for a WINUSBX composite function xusb: Print info from IAD descriptors Sean McBride (18): Simplify clock_gettime() conditionalization and fallback on macOS examples: Replace most uses of sprintf with safer snprintf core: Fix -Wswitch warnings by including all enum values in switch darwin: Revert seemingly harmless introduction of temporary variable darwin: Avoid error checking regression descriptor: Prevent string descriptor buffer overread io: Fix incorrect alignment in allocation in libusb_alloc_transfer core: Add missing mutex acquisition when manipulating active_contexts_list libusb.h: Rename ZERO_SIZED_ARRAY to LIBUSB_FLEXIBLE_ARRAY io: Change remove_from_flying_list() to not lock flying_transfers_lock itself Fix docs about backend functions that lock itransfer->lock Document backend functions that already lock dev_handle->lock Replace all http://libusb.info/ with https darwin: locationID is 32-bit, not 64-bit Correct some spelling and add codespell config file xcode: Move some options from Xcode project to xcconfig file xcode: Add files from other backends into the Xcode project docs: Prefer use of libusb_init_context() over old libusb_init() Shawn Hoffman (5): msvc: Rework msbuild files windows: Whitespace fix msvc: Implement LIBUSB_DEPRECATED_FOR msvc: Correct usage comments about linking windows: Use sdk-defined GUIDs where possible Simon Chan (1): windows: Recognize Samsung composite device driver SomeAlphabetGuy (1): core: Avoid possible data race in log_v() Sonatique (1): msvc: Add configurations with /MT compilation flag Sylvain (1): git ignore "build" folder Sylvain Fasel (2): windows: Define bus numbers without using HCD windows: No longer wait for device to get an active configuration Tormod Volden (52): windows: Pass on returned isochronous packet status on libusbK core: Remove select case not possibly reached windows: Correct function name in comment core: Avoid mutex lock while printing error and warning windows: Avoid invalid dereference in debug print windows: Silence warnings when building without logging tests: Add multithreaded stress test for Posix platforms CI: Run multithreaded stress test on Linux core: Do not warn about new context as implicit default Fix most -Wpedantic warnings xusb: Add newlines in mass-storage test output Bump LIBUSB_API_VERSION to 0x0100010A windows: Omit -mwin32 GCC option for MSYS/MinGW windows: Only link with --add-stdcall-alias if supported by linker xusb: Improve kernel driver probe messages xusb: Improve Max LUN retrieval stall handling tests/stress_mt: Add Windows threads support tests/stress_mt: Also run with device enumeration Revert "windows: Fix off-by-one error in HID backend for devices without report IDs" core: Avoid crash due to premature va_end core: Fix always-true condition in log callback function setting netbsd/openbsd: Drop parentheses around return values netbsd/openbsd: Remove extraneous parentheses around ioctl call netbsd: Print control transfer request debug values in hex netbsd: Add error number to debug output Add HACKING file with hints on proper commits tests: Remove unused function in init_context.c tests: Fix builds with logging disabled Revert "core: Remove select case not possibly reached" windows: Cover all enumeration passes explicitly in switch statements stress_mt: Return error if device count varies core: Avoid warning with logging disabled windows: Avoid warning with logging disabled windows: Include enumeration details in debug output CI: Simplify Linux job description CI: Add Linux and MSYS build with logging disabled tests/umockdev: Avoid unknown warning option on older gcc .gitignore: Ignore test binaries and logs tests: Use AM_LDFLAGS for -static flag to allow LDFLAGS override libusb 1.0.27-rc1 libusb.h: Avoid UNREFERENCED_PARAMETER macro on GCC/clang tests/stress_mt: Ignore some unavailable devices on Windows tests/stress_mt: Ignore device descriptor mismatch for Windows HID ChangeLog updates Change libusb_init_option to fix libusb_set_option() on big-endian windows: Downgrade get_guid DeviceInterfaceGUID warning to info docs: Add more references in libusb_option section libusb 1.0.27-rc2 configure.ac: Do not build umockdev if --enable-debug-log is used examples/hotplugtest: Tone down message about failed open configure.ac: Bump libtool library version libusb 1.0.27 Xiaofan Chen (2): CI: Add build jobs for MSYS clang32/64 Do not deprecate libusb_set_debug and libusb_init Zeng Guang (1): windows: Add USBD_STATUS_STALL_PID to usbd_status translation xloem (1): linux: Keep the no_device_discovery option per context _______________________________________________ libusb-devel mailing list libusb-de...@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusb-devel