From 5bd1ee689ead5bfdb3498be9e58f4cad18d5c26ae2d893ddf4c0d69d7fc91851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Lie?= Date: Thu, 18 Jul 2024 17:21:09 +0000 Subject: [PATCH] - 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 --- .gitattributes | 23 ++++ .gitignore | 1 + baselibs.conf | 1 + libgusb-0.4.8.tar.xz | 3 + libgusb-0.4.9.tar.xz | 3 + libgusb.changes | 287 +++++++++++++++++++++++++++++++++++++++++ libgusb.spec | 110 ++++++++++++++++ no-pkg-resources.patch | 41 ++++++ 8 files changed, 469 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 baselibs.conf create mode 100644 libgusb-0.4.8.tar.xz create mode 100644 libgusb-0.4.9.tar.xz create mode 100644 libgusb.changes create mode 100644 libgusb.spec create mode 100644 no-pkg-resources.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..3e713f6 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libgusb2 diff --git a/libgusb-0.4.8.tar.xz b/libgusb-0.4.8.tar.xz new file mode 100644 index 0000000..ecf0453 --- /dev/null +++ b/libgusb-0.4.8.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77aec51de289afe3bf5f8a1a36ae989d1a59748391097242949daccda9569ede +size 51632 diff --git a/libgusb-0.4.9.tar.xz b/libgusb-0.4.9.tar.xz new file mode 100644 index 0000000..9ae8283 --- /dev/null +++ b/libgusb-0.4.9.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9df5ef301d6a4b361002aa52cce1165a87a89744055879bdbab31e7e86f1e846 +size 51672 diff --git a/libgusb.changes b/libgusb.changes new file mode 100644 index 0000000..3325cae --- /dev/null +++ b/libgusb.changes @@ -0,0 +1,287 @@ +------------------------------------------------------------------- +Thu Jul 18 14:26:24 UTC 2024 - Dirk Müller + +- 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 + +- Fix patch tag line. + +------------------------------------------------------------------- +Thu Feb 15 13:20:14 UTC 2024 - Michael Gorse + +- 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 + +- Update to version 0.4.8: + + Add an device error code for 'busy'. + +------------------------------------------------------------------- +Sun Oct 15 08:16:29 UTC 2023 - Bjørn Lie + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + +- 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 + diff --git a/libgusb.spec b/libgusb.spec new file mode 100644 index 0000000..8f589c6 --- /dev/null +++ b/libgusb.spec @@ -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 diff --git a/no-pkg-resources.patch b/no-pkg-resources.patch new file mode 100644 index 0000000..c540488 --- /dev/null +++ b/no-pkg-resources.patch @@ -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'