- update to 0.4.9:

* Allow reading HID descriptors larger than 255 bytes
  * Close the libusb handle if returning open failure
  * Fix a buffer over-read when emulating devices
  * Only request the BOS descriptor when bcdUSB is new enough

OBS-URL: https://build.opensuse.org/package/show/hardware/libgusb?expand=0&rev=52
This commit is contained in:
Bjørn Lie 2024-07-18 17:21:09 +00:00 committed by Git OBS Bridge
commit 5bd1ee689e
8 changed files with 469 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libgusb2

3
libgusb-0.4.8.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:77aec51de289afe3bf5f8a1a36ae989d1a59748391097242949daccda9569ede
size 51632

3
libgusb-0.4.9.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9df5ef301d6a4b361002aa52cce1165a87a89744055879bdbab31e7e86f1e846
size 51672

287
libgusb.changes Normal file
View File

@ -0,0 +1,287 @@
-------------------------------------------------------------------
Thu Jul 18 14:26:24 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 0.4.9:
* Allow reading HID descriptors larger than 255 bytes
* Close the libusb handle if returning open failure
* Fix a buffer over-read when emulating devices
* Only request the BOS descriptor when bcdUSB is new enough
-------------------------------------------------------------------
Wed Feb 28 14:31:20 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix patch tag line.
-------------------------------------------------------------------
Thu Feb 15 13:20:14 UTC 2024 - Michael Gorse <mgorse@suse.com>
- Explicitly require python311-packaging if python 3.11 is being
used. On SLE, python 3.6 is still the default, but 3.11 is used
by meson. Drop python3-base from BuildRequires: it is not
needed, since python will be pulled in by meson.
-------------------------------------------------------------------
Tue Nov 7 16:25:01 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.4.8:
+ Add an device error code for 'busy'.
-------------------------------------------------------------------
Sun Oct 15 08:16:29 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 0.4.7:
+ Add new API to get the HID descriptor data
+ Add calling convention to libusb callback functions
- Changes from version 0.4.6:
+ Add JSON compatibility helpers for old json-glib versions
+ Fix emulation of devices using out-of-order BulkTransfer
replies
+ Use project_source_root to fix building as a subproject
- Changes from version 0.4.5:
+ Add new API to better detect emulated replug
+ Do not emit spurious ::device-removed events when emulating
+ Record zero-sized device events
+ Reset the in-order event index when clearing the event array
+ Save the libusb error if libusb_submit_transfer() fails
- Changes from version 0.4.4:
+ Add new API to make emulation easier to use
+ Emit remove devices with matching tags when loading contexts
+ Fix a critical warning when finalizing devices without
endpoints
+ Reduce the debugging level when emulating firmware
- Changes from version 0.4.3:
+ Export g_usb_device_has_tag()
+ Work around a libusb issue which causes devices to appear twice
- Add pkgconfig(gi-docgen) and pkgconfig(json-glib-1.0)
BuildRequires: New dependencies.
- Drop gtk-doc BuildRequires: No longer needed, nor used after the
port upstream.
- Pass tests=false to meson setup, do not build or install any
tests at this time.
- Use ldconfig_scriptlets macro for post(un) handling.
-------------------------------------------------------------------
Fri Aug 5 11:30:24 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Add no-pkg-resources.patch:
* Replaces pkg_resources with python-packaging
* pkg_resources is provided by setuptools, but the previously
transitive pull in of setuptools has been broken by
gtk-doc --> python3-Pygments -/-> python3-setuptools
-------------------------------------------------------------------
Mon May 9 07:58:08 UTC 2022 - Paolo Stivanin <info@paolostivanin.com>
- Update to version 0.3.10:
+ New Features:
- Add API to change the hotplug poll interval.
-------------------------------------------------------------------
Wed Dec 22 12:12:22 UTC 2021 - Callum Farmer <gmbr3@opensuse.org>
- Update to version 0.3.9:
- Add g_usb_device_get_string_descriptor_bytes()
- Do not double-reference USB devices
- Fix hotplug handling and signal emission during enumerate
- Add the GUsbEndpoint methods to the docs
- Add g_usb_device_get_string_descriptor_bytes_full
- Fix hotplug after threaded device removal
- Don't hard-code the list of OS supporting --version-script
-------------------------------------------------------------------
Fri Jan 8 07:46:54 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
- Add baselibs.conf: build libgusb2-32bit, which is a dependency to
libfprint-2-2-32bit. Due to a installcheck bot issue, this
happened to be undetected for a while though.
-------------------------------------------------------------------
Mon Sep 14 10:51:19 UTC 2020 - Dirk Mueller <dmueller@suse.com>
- update to 0.3.5:
- Add a way to get iConfiguration (Benson Leung)
- Allow building GtkDoc when building as a subproject (Richard Hughes)
- Fix version script to be more portable (Laurent Bigonville, Ting-Wei Lan)
- Include methods on plain structs in the version script (Simon McVittie)
- This fixes the symbol version for g_usb_version_string() to be in the right
place, so update this library alongside with external programs if you've
already started using this symbol for example in fwupd. We've put a mechanism
in place so this kind of thing can't happen again. Sorry!
- Validate the exported symbol list during check (Richard Hughes)
- Include the USB bus in the generated platform_id (Richard Hughes)
- Add a thin glib wrapper around libusb_endpoint_descriptor (Emmanuel Pacaud)
- Fix high number of wakeups when checking the GUsbContext (Richard Hughes)
- Use '#pragma once' to reduce boilerplate (Richard Hughes)
- Wrap the upstream libusb_strerror() (Richard Hughes)
- Do not use deprecated libusb API (Richard Hughes)
- Fix compilation on macOS (Richard Hughes)
- Use a 1ms timeout in the Windows event thread (Richard Hughes)
- Use has_link_argument() to detect linker flags (Richard Hughes)
- Add g_usb_device_get_spec() (Richard Hughes)
- Add g_usb_version_string() for fwupd (Richard Hughes)
- Add -Wswitch-enum (Benjamin Berg)
- Fix GI length introspection annotations (grindhold)
- Make gir generation optional (maxice8)
-------------------------------------------------------------------
Thu Mar 8 12:23:43 UTC 2018 - dimstar@opensuse.org
- Update to version 0.3.0:
+ New Features:
- Add Travis integration.
- Allow changing the path to usb.ids file.
- Port to the Meson build system.
+ Replace libusb-1.0/libusb.h with libusb.h.
- Port to meson build system:
+ Add meson BuildRequires.
+ Replace configure/make/make_install with
meson/meson_build/meson_install.
- Add gtk-doc BuildRequires: the meson-based tarball no longer
ships pre-built documentation.
- Drop xz BuildRequires: this is implicit in all openSUSE
buildroots.
-------------------------------------------------------------------
Mon Mar 5 19:25:54 UTC 2018 - jengelh@inai.de
- Fix SRPM group. Update summaries.
-------------------------------------------------------------------
Wed Feb 28 16:35:13 UTC 2018 - dimstar@opensuse.org
- Modernize spec-file by calling spec-cleaner
-------------------------------------------------------------------
Wed Sep 6 20:08:26 UTC 2017 - dimstar@opensuse.org
- Update to version 0.2.11:
+ New Features: Add g_usb_context_set_flags().
+ Bugfix: Fix the actual required GLib version.
-------------------------------------------------------------------
Tue Jun 13 14:09:40 UTC 2017 - dimstar@opensuse.org
- Update to version 0.2.10:
+ Correctly detect removed devices when rescanning.
+ Fix a memory leak when using control tranfers.
+ Fix gtk-doc build when builddir != srcdir.
+ Fix symbol version table up to version 0.2.9.
-------------------------------------------------------------------
Thu Apr 14 11:17:08 UTC 2016 - idonmez@suse.com
- Update to GNOME 3.20 Fate#318572
-------------------------------------------------------------------
Wed Mar 23 17:10:18 UTC 2016 - zaitor@opensuse.org
- Update to version 0.2.9:
+ Add g_usb_context_wait_for_replug().
+ Install gusbcmd as a debugging aid.
-------------------------------------------------------------------
Thu Dec 10 15:50:30 UTC 2015 - dimstar@opensuse.org
- Update to version 0.2.8:
+ New Features:
- Add a PERMISSION_DENIED error enum.
- Add a thin glib wrapper around a libusb_interface_descriptor.
- Add g_usb_device_get_interfaces().
- Add g_usb_device_get_release().
- Add g_usb_device_set_interface_alt().
+ Bugfix: Ignore the not-found error when resetting a device.
-------------------------------------------------------------------
Wed Sep 16 09:08:33 UTC 2015 - dimstar@opensuse.org
- Update to version 0.2.7:
+ Support g_autoptr() for all gusb object types.
+ Bugfixes:
- Add missing element-type annotations.
- Changes from version 0.2.6:
+ Bugfixes:
- Do not unref the GMainContext after each request.
-------------------------------------------------------------------
Thu Jun 18 13:43:34 UTC 2015 - zaitor@opensuse.org
- Update to version 0.2.5:
+ Add g_usb_device_get_custom_index().
+ Allow setting the GMainContext when used for sync methods.
+ Include all the USB device class codes.
+ Use symbol versioning.
-------------------------------------------------------------------
Sun Feb 22 10:43:24 UTC 2015 - benoit.monin@gmx.fr
- Update to version 0.2.4:
+ Various API extensions.
+ Bugfixes:
- Don't filter out hub devices when getting the device list.
- Make the platform ID persistent across re-plug.
- Port to GTask.
- Use new Glib features for various code cleanups.
-------------------------------------------------------------------
Fri Dec 19 09:20:02 UTC 2014 - kkaempf@suse.com
- Update to version 0.2.3:
+ Bugfixes: Correctly terminate the libusb event thread.
- Changes from version 0.2.2:
+ New Features: Official Windows support!
+ Bugfixes:
- No longer require G_USB_API_IS_SUBJECT_TO_CHANGE.
- Use a thread to process libusb1 events.
- Changes from version 0.2.1:
+ Bugfixes:
- Always set a device platform ID.
- Ignore 'unsupported' as a return value for kernel drivers.
- Changes from version 0.2.0:
+ Notes:
- This release raises the GLib requirement to 2.32 and libusb
to 1.0.19.
- No GUdev functionality is now required.
+ New Features:
- Add g_usb_device_get_device_class().
- Use the native hotplug support in libusb 1.0.19.
+ Bugfixes:
- Fix a crash where libusb_get_pollfds() is unavailable.
- Manually coldplug devices and poll if hotplugging is not
available.
-------------------------------------------------------------------
Tue Mar 12 12:36:56 UTC 2013 - dimstar@opensuse.org
- Update to version 0.1.6:
+ Do not use deprecated GLib functionality.
+ Remove duplicate gtk-doc check in configure.
+ Unref the GMainloop after it has been run, not when just quit.
- Changes from version 0.1.5:
+ Don't use the deprecated INCLUDES in Makefile.am.
+ Fix documentation build.
+ Fix obvious typo in README.
-------------------------------------------------------------------
Tue Nov 13 15:54:01 UTC 2012 - dimstar@opensuse.org
- Update to version 0.1.4:
+ Add GObject Introspection support.
+ Add g_usb_device_reset() to reset a connected device.
+ Add Vala bindings.
+ Assorted introspection annotation fixes.
+ Rename inconsistently named gusb_* symbols to g_usb_*.
- Add pkgconfig(gobject-introspection-1.0) and vala BuildRequires:
New dependency for the GObject introspection support and the vala
bindings.
- Create new typelib-1_0-GUsb-1_0 subpackage.
-------------------------------------------------------------------
Fri Jan 13 11:05:55 UTC 2012 - vuntz@opensuse.org
- Cleanup packaging so it can get pushed to Factory.
-------------------------------------------------------------------
Mon Jan 2 09:01:58 UTC 2012 - kkaempf@suse.com
- Initial package, version 0.1.3

110
libgusb.spec Normal file
View File

@ -0,0 +1,110 @@
#
# spec file for package libgusb
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: libgusb
Version: 0.4.9
Release: 0
Summary: GObject-based library for libusb1
License: LGPL-2.1-or-later
Group: Development/Libraries/GNOME
URL: https://github.com/hughsie/libgusb
Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-UPSTREAM no-pkg-resources.patch gh#hughsie/libgusb#61 mcepl@suse.com -- Don't rely on the obsolete version of pkg_resources
Patch0: no-pkg-resources.patch
BuildRequires: meson
BuildRequires: pkgconfig
BuildRequires: vala
BuildRequires: (python3-packaging if python3-base)
BuildRequires: (python311-packaging if python311-base)
BuildRequires: pkgconfig(gi-docgen)
BuildRequires: pkgconfig(glib-2.0) >= 2.44.0
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.29
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libusb-1.0) >= 1.0.19
%description
GUsb is a GObject wrapper for libusb1 that makes it easy to do
asynchronous control, bulk and interrupt transfers with proper
cancellation and integration into a mainloop.
%package -n libgusb2
Summary: GObject-based library for libusb1
Group: System/Libraries
%description -n libgusb2
GUsb is a GObject wrapper for libusb1 that makes it easy to do
asynchronous control, bulk and interrupt transfers with proper
cancellation and integration into a mainloop.
%package -n typelib-1_0-GUsb-1_0
Summary: Introspection bindings for libgusb, a GObject-based wrapper for libusb1
Group: System/Libraries
%description -n typelib-1_0-GUsb-1_0
GUsb is a GObject wrapper for libusb1 that makes it easy to do
asynchronous control, bulk and interrupt transfers with proper
cancellation and integration into a mainloop.
%package devel
Summary: Development files for libgusb, a GObject-based wrapper for libusb1
Group: Development/Libraries/C and C++
Requires: libgusb2 = %{version}
Requires: typelib-1_0-GUsb-1_0 = %{version}
%description devel
GUsb is a GObject wrapper for libusb1 that makes it easy to do
asynchronous control, bulk and interrupt transfers with proper
cancellation and integration into a mainloop.
%prep
%autosetup -p1
%build
%meson \
-D tests=false \
%{nil}
%meson_build
%install
%meson_install
%ldconfig_scriptlets -n libgusb2
%files -n libgusb2
%license COPYING
%doc AUTHORS NEWS
%{_libdir}/libgusb.so.?
%{_libdir}/libgusb.so.?.0.*
%files -n typelib-1_0-GUsb-1_0
%{_libdir}/girepository-1.0/GUsb-1.0.typelib
%files devel
%doc %{_datadir}/doc/libgusb
%{_bindir}/gusbcmd
%{_datadir}/gir-1.0/GUsb-1.0.gir
%dir %{_datadir}/vala/vapi
%{_datadir}/vala/vapi/gusb.deps
%{_datadir}/vala/vapi/gusb.vapi
%{_includedir}/gusb-1/
%{_libdir}/libgusb.so
%{_libdir}/pkgconfig/gusb.pc
%changelog

41
no-pkg-resources.patch Normal file
View File

@ -0,0 +1,41 @@
---
contrib/generate-version-script.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
--- a/contrib/generate-version-script.py
+++ b/contrib/generate-version-script.py
@@ -7,7 +7,7 @@
import sys
import xml.etree.ElementTree as ET
-from pkg_resources import parse_version
+from packaging.version import parse
XMLNS = '{http://www.gtk.org/introspection/core/1.0}'
XMLNS_C = '{http://www.gtk.org/introspection/c/1.0}'
@@ -54,14 +54,14 @@ class LdVersionScript:
for node in cls.findall(XMLNS + 'method'):
version_tmp = self._add_node(node)
if version_tmp:
- if not version_lowest or parse_version(version_tmp) < parse_version(version_lowest):
+ if not version_lowest or parse(version_tmp) < parse(version_lowest):
version_lowest = version_tmp
# add the constructor
for node in cls.findall(XMLNS + 'constructor'):
version_tmp = self._add_node(node)
if version_tmp:
- if not version_lowest or parse_version(version_tmp) < parse_version(version_lowest):
+ if not version_lowest or parse(version_tmp) < parse(version_lowest):
version_lowest = version_tmp
if '{http://www.gtk.org/introspection/glib/1.0}get-type' not in cls.attrib:
@@ -93,7 +93,7 @@ class LdVersionScript:
# output the version data to a file
verout = '# generated automatically, do not edit!\n'
oldversion = None
- for version in sorted(versions, key=parse_version):
+ for version in sorted(versions, key=parse):
symbols = sorted(self.releases[version])
verout += '\n%s_%s {\n' % (self.library_name, version)
verout += ' global:\n'