Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package usbutils for openSUSE:Factory 
checked in at 2025-11-21 16:54:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/usbutils (Old)
 and      /work/SRC/openSUSE:Factory/.usbutils.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "usbutils"

Fri Nov 21 16:54:10 2025 rev:50 rq:1318726 version:019

Changes:
--------
--- /work/SRC/openSUSE:Factory/usbutils/usbutils.changes        2024-10-25 
19:19:06.733298601 +0200
+++ /work/SRC/openSUSE:Factory/.usbutils.new.2061/usbutils.changes      
2025-11-21 16:54:36.005105691 +0100
@@ -1,0 +2,28 @@
+Tue Nov 18 14:45:59 UTC 2025 - Martin Hauke <[email protected]>
+
+- Update to version 019:
+  * usbreset.1: fix typo in the busnum/devicenum example.
+  * usbreset: fix swapped vendor and product ID in help/manpage.
+  * usbreset.1: fix groff warnings and small fixes.
+  * Remove commented out code in usbreset.c and list.h and
+    container_of.h .
+  * lsusb: turn a FIXME comment for dump_comm_descriptor() into
+    something real.
+  * lsusb: remove FIXME about wireless usb device.
+  * lsusb: change FIXME for bmEthernetStatistics into a TODO.
+  * lsusb.c: change TODO into a fixme in do_dualspeed() .
+  * usbreset: move the serial number forward in the output.
+  * usb-devices: fix up bash warning for $altset
+    (fixes boo#1253475).
+  * usb-devices: fix up some minor shellcheck warning messages.
+  * usb-spec: remove vendor specific entry.
+  * usbreset: support resetting device by serial number.
+  * lsusb: Show wBytesPerInterval field of the SS EP companion
+    descriptor.
+  * usb-devices: Make devcount 'local' to handle recursion.
+  * usb-devices: Make devnum 'local' to handle recursion.
+  * lsusb-t: add verblevel 3 to print_usbdevice() .
+  * lsusb: improve usb2 device capability descriptor.
+  * Fix display of HID descriptors.
+
+-------------------------------------------------------------------

Old:
----
  v018.tar.gz

New:
----
  v019.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ usbutils.spec ++++++
--- /var/tmp/diff_new_pack.S93fOD/_old  2025-11-21 16:54:36.769137887 +0100
+++ /var/tmp/diff_new_pack.S93fOD/_new  2025-11-21 16:54:36.773138056 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package usbutils
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           usbutils
-Version:        018
+Version:        019
 Release:        0
 Summary:        Tools and libraries for USB devices
 License:        GPL-2.0-or-later
@@ -32,6 +32,7 @@
 BuildRequires:  python-rpm-macros
 BuildRequires:  pkgconfig(libudev) >= 196
 Requires:       hwdata
+Obsoletes:      usbutils-devel < %{version}
 
 %description
 This package contains a utility for inspecting devices connected to USB

++++++ v018.tar.gz -> v019.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/actions/setup-debian/action.yml 
new/usbutils-019/.github/actions/setup-debian/action.yml
--- old/usbutils-018/.github/actions/setup-debian/action.yml    2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/actions/setup-debian/action.yml    2025-10-22 
14:00:57.000000000 +0200
@@ -11,6 +11,8 @@
     - name: Install dependencies
       shell: bash
       run: |
+        export DEBIAN_FRONTEND=noninteractive
+        export TZ=Etc/UTC
         dpkg --add-architecture i386
         apt-get update
         apt-get install --yes \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/actions/setup-ubuntu/action.yml 
new/usbutils-019/.github/actions/setup-ubuntu/action.yml
--- old/usbutils-018/.github/actions/setup-ubuntu/action.yml    2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/actions/setup-ubuntu/action.yml    2025-10-22 
14:00:57.000000000 +0200
@@ -11,6 +11,8 @@
     - name: Install dependencies
       shell: bash
       run: |
+        export DEBIAN_FRONTEND=noninteractive
+        export TZ=Etc/UTC
         dpkg --add-architecture i386
         apt-get update
         apt-get install --yes \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/workflows/clang-format.yml 
new/usbutils-019/.github/workflows/clang-format.yml
--- old/usbutils-018/.github/workflows/clang-format.yml 2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/workflows/clang-format.yml 2025-10-22 
14:00:57.000000000 +0200
@@ -15,8 +15,8 @@
   stylecheck:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
       - run: git fetch --depth=1 origin ${{ github.event.pull_request.base.sha 
}}
-      - uses: 
yshui/git-clang-format-lint@a65b466f5903524aef27552f63c3906c0f73f184 # v1.16
+      - uses: 
yshui/git-clang-format-lint@27f3890c6655216edadcc2759110b9c127c74786 # v1.17
         with:
           base: ${{ github.event.pull_request.base.sha }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/workflows/codeql.yml 
new/usbutils-019/.github/workflows/codeql.yml
--- old/usbutils-018/.github/workflows/codeql.yml       2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/workflows/codeql.yml       2025-10-22 
14:00:57.000000000 +0200
@@ -35,7 +35,7 @@
 
     steps:
       - name: Sparse checkout the local actions
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
         with:
           sparse-checkout: .github
 
@@ -43,7 +43,7 @@
         if: ${{ startsWith(matrix.container, 'ubuntu') }}
 
       - name: Checkout the whole project
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
 
       - name: Set the environment
         run: |
@@ -52,18 +52,33 @@
           git config --global --add safe.directory '*'
 
       - name: Initialize CodeQL
-        uses: 
github/codeql-action/init@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10
+        uses: 
github/codeql-action/init@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
         with:
           languages: cpp
           queries: +security-and-quality
 
       - name: Build
         run: |
-          mkdir build && cd build
-          meson setup --native-file ../build-dev.ini . ..
-          meson compile
+          meson setup --native-file build-dev.ini build
+          meson compile -C build
 
       - name: Perform CodeQL Analysis
-        uses: 
github/codeql-action/analyze@e2b3eafc8d227b0241d48be5f425d47c2d750a13 # v3.26.10
+        uses: 
github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
         with:
           category: "/language:cpp"
+          upload: false
+          output: sarif-results
+
+      - name: Filter out meson-internal test files
+        uses: 
advanced-security/filter-sarif@f3b8118a9349d88f7b1c0c488476411145b6270d # v1.0.1
+        with:
+          patterns: |
+            -build/meson-private/**/testfile.c
+          input: sarif-results/cpp.sarif
+          output: sarif-results/cpp.sarif
+
+      - name: Upload CodeQL results to code scanning
+        uses: 
github/codeql-action/upload-sarif@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # 
v3.30.5
+        with:
+          sarif_file: sarif-results/cpp.sarif
+          category: "/language:cpp"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/workflows/codespell.yml 
new/usbutils-019/.github/workflows/codespell.yml
--- old/usbutils-018/.github/workflows/codespell.yml    2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/workflows/codespell.yml    2025-10-22 
14:00:57.000000000 +0200
@@ -17,7 +17,7 @@
   spellcheck:
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # 
v4.1.7
+      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
       - uses: 
codespell-project/actions-codespell@406322ec52dd7b488e48c1c4b82e2a8b3a1bf630 # 
v2.1
         with:
           ignore_words_file: .codespellignore
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/workflows/main.yml 
new/usbutils-019/.github/workflows/main.yml
--- old/usbutils-018/.github/workflows/main.yml 2024-10-22 11:33:33.000000000 
+0200
+++ new/usbutils-019/.github/workflows/main.yml 2025-10-22 14:00:57.000000000 
+0200
@@ -44,7 +44,7 @@
 
     steps:
       - name: Sparse checkout the local actions
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
         with:
           sparse-checkout: .github
 
@@ -60,7 +60,7 @@
         if: ${{ startsWith(matrix.container, 'ubuntu') }}
 
       - name: Checkout the whole project
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
 
       - name: Set the environment
         run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/.github/workflows/reuse.yml 
new/usbutils-019/.github/workflows/reuse.yml
--- old/usbutils-018/.github/workflows/reuse.yml        2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/.github/workflows/reuse.yml        2025-10-22 
14:00:57.000000000 +0200
@@ -20,10 +20,10 @@
     runs-on: ubuntu-latest
     steps:
       - name: Checkout the project
-        uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # 
v4.2.0
+        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 
v5.0.0
 
       - name: Setup Python
-        uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # 
v5.2.0
+        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # 
v6.0.0
         with:
           python-version: '3.10'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/NEWS new/usbutils-019/NEWS
--- old/usbutils-018/NEWS       2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/NEWS       2025-10-22 14:00:57.000000000 +0200
@@ -1,12 +1,78 @@
 # usbutils old-style "NEWS" file
 # SPDX-License-Identifier: GPL-2.0-only
 #
-# Copyright (c) 2018-2024 Greg Kroah-Hartman <[email protected]>
+# Copyright (c) 2018-2025 Greg Kroah-Hartman <[email protected]>
 #
 # This file is here for people who do not have access to the git commit
 # history (i.e. packaged versions of the software).
 #
 
+usbutils 019
+============
+
+Alban Browaeys (1):
+      usbreset.1: fix typo in the busnum/devicenum example
+
+Aurelien Jarno (2):
+      lsusb.py: add usb.ids path for Debian
+      usbreset: fix swapped vendor and product ID in help/manpage
+
+Bjarni Ingi Gislason (1):
+      usbreset.1: fix groff warnings and small fixes
+
+Emil Velikov (1):
+      ci: stop manually creating build/
+
+Enrico Joerns (1):
+      ci/codeql: use filter-sarif to filter meson-private
+
+Greg Kroah-Hartman (8):
+      Remove commented out code in usbreset.c and list.h and container_of.h
+      lsusb: turn a FIXME comment for dump_comm_descriptor() into something 
real
+      lsusb: remove FIXME about wireless usb device
+      lsusb: change FIXME for bmEthernetStatistics into a TODO
+      lsusb.c: change TODO into a fixme in do_dualspeed()
+      usbreset: move the serial number forward in the output
+      usb-devices: fix up bash warning for $altset
+      usb-devices: fix up some minor shellcheck warning messages
+
+Guillaume G. (1):
+      usb-spec: remove vendor specific entry
+
+Jörg Hofrichter (2):
+      usbreset: apply clang-format
+      usbreset: support resetting device by serial number
+
+Lucas De Marchi (1):
+      ci: Fix debian/ubuntu installation
+
+Michal Pecio (1):
+      lsusb: Show wBytesPerInterval field of the SS EP companion descriptor
+
+Sahil Siddiq (2):
+      usb-devices: Make devcount 'local' to handle recursion
+      usb-devices: Make devnum 'local' to handle recursion
+
+Stefan Becker (1):
+      lsusb-t: add verblevel 3 to print_usbdevice()
+
+Torleiv Sundre (1):
+      lsusb: improve usb2 device capability descriptor
+
+Waffle Lapkin (1):
+      Fix display of HID descriptors
+
+dependabot[bot] (9):
+      ci: bump the all-actions group with 4 updates
+      ci: bump github/codeql-action in the all-actions group
+      ci: bump github/codeql-action in the all-actions group
+      ci: bump the all-actions group with 2 updates
+      ci: bump github/codeql-action in the all-actions group
+      ci: bump the all-actions group with 2 updates
+      ci: bump the all-actions group with 2 updates
+      ci: bump github/codeql-action in the all-actions group
+      ci: bump the all-actions group across 1 directory with 3 updates
+
 usbutils 018
 ============
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/ccan/container_of/container_of.h 
new/usbutils-019/ccan/container_of/container_of.h
--- old/usbutils-018/ccan/container_of/container_of.h   2024-10-22 
11:33:33.000000000 +0200
+++ new/usbutils-019/ccan/container_of/container_of.h   2025-10-22 
14:00:57.000000000 +0200
@@ -6,7 +6,6 @@
 #include <stddef.h>
 
 #include "../config.h"
-//#include <ccan/check_type/check_type.h>
 #include "../check_type/check_type.h"
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/ccan/list/list.h 
new/usbutils-019/ccan/list/list.h
--- old/usbutils-018/ccan/list/list.h   2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/ccan/list/list.h   2025-10-22 14:00:57.000000000 +0200
@@ -1,14 +1,13 @@
 // SPDX-License-Identifier: MIT
 // SPDX-FileCopyrightText: Rusty Russell <[email protected]>
 /* Licensed under BSD-MIT - see LICENSE file for details */
+
+/* define CCAN_LIST_DEBUG to be 1 if you want to have some debugging in here */
+
 #ifndef CCAN_LIST_H
 #define CCAN_LIST_H
-//#define CCAN_LIST_DEBUG 1
 #include <stdbool.h>
 #include <assert.h>
-//#include <ccan/str/str.h>
-//#include <ccan/container_of/container_of.h>
-//#include <ccan/check_type/check_type.h>
 #include "../str/str.h"
 #include "../container_of/container_of.h"
 #include "../check_type/check_type.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/lsusb-t.c new/usbutils-019/lsusb-t.c
--- old/usbutils-018/lsusb-t.c  2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/lsusb-t.c  2025-10-22 14:00:57.000000000 +0200
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2009 Greg Kroah-Hartman <[email protected]> */
+#include <stdbool.h>
 #include <stdint.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -201,6 +202,21 @@
                printf(" %*s", indent, "    ");
                printf("%s/%s  /dev/bus/usb/%03d/%03d\n", sys_bus_usb_devices, 
d->name, d->busnum, d->devnum);
        }
+       if (verblevel >= 3) {
+               bool hasManufacturer = strlen(d->manufacturer) > 0;
+               bool hasProduct = strlen(d->product) > 0;
+               bool hasSerial = strlen(d->serial) > 0;
+               if (hasManufacturer || hasProduct || hasSerial) {
+                       printf(" %*s", indent, "    ");
+                       if (hasManufacturer)
+                               printf("Manufacturer=%s ", d->manufacturer);
+                       if (hasProduct)
+                               printf("Product=%s ", d->product);
+                       if (hasSerial)
+                               printf("Serial=%s", d->serial);
+                       printf("\n");
+               }
+       }
 }
 
 static unsigned int read_sysfs_file_int(const char *d_name, const char *file, 
int base)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/lsusb.c new/usbutils-019/lsusb.c
--- old/usbutils-018/lsusb.c    2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/lsusb.c    2025-10-22 14:00:57.000000000 +0200
@@ -809,6 +809,10 @@
                                                (buf[3] & 0x3))
                                        printf("        Mult %20u\n",
                                                        buf[3] & 0x3);
+                               if ((endpoint->bmAttributes & 3) == 1 ||
+                                   (endpoint->bmAttributes & 3) == 3)
+                                       printf("        wBytesPerInterval 
%7u\n",
+                                                       buf[4] | buf[5] << 8);
                                break;
                        default:
                                /* often a misplaced class descriptor */
@@ -2736,7 +2740,41 @@
                       indent,
                       indent, buf[3], (buf[3] && *str) ? str : "(?\?)",
                       indent, tmp);
-               /* FIXME dissect ALL 28 bits */
+               /* TODO
+                * Translate all 28 bits of bmEthernetStatistics into something 
"real"  Here's the bitfields if someone
+                * wants to do this in the future.  As specified in the USB CDC 
ECM Subclass document, version 1.2,
+                * table 4:
+                * D00  XMIT_OK                 Frames transmitted without 
errors
+                * D01  RVC_OK                  Frames received without errors
+                * D02  XMIT_ERROR              Frames not transmitted, or 
transmitted with errors
+                * D03  RCV_ERROR               Frames received with errors 
that are not delivered to the USB host.
+                * D04  RCV_NO_BUFFER           Frame missed, no buffers
+                * D05  DIRECTED_BYTES_XMIT     Directed bytes transmitted 
without errors
+                * D06  DIRECTED_FRAMES_XMIT    Directed frames transmitted 
without errors
+                * D07  MULTICAST_BYTES_XMIT    Multicast bytes transmitted 
without errors
+                * D08  MULTICAST_FRAMES_XMIT   Multicast frames transmitted 
without errors
+                * D09  BROADCAST_BYTES_XMIT    Broadcast bytes transmitted 
without errors
+                * D10  BROADCAST_FRAMES_XMIT   Broadcast frames transmitted 
without errors
+                * D11  DIRECTED_BYTES_RCV      Directed bytes received without 
errors
+                * D12  DIRECTED_FRAMES_RCV     Directed frames received 
without errors
+                * D13  MULTICAST_BYTES_RCV     Multicast bytes received 
without errors
+                * D14  MULTICAST_FRAMES_RCV    Multicast frames received 
without errors
+                * D15  BROADCAST_BYTES_RCV     Broadcast bytes received 
without errors
+                * D16  BROADCAST_FRAMES_RCV    Broadcast frames received 
without errors
+                * D17  RCV_CRC_ERROR           Frames received with circular 
redundancy check (CRC) or frame check sequence (FCS) error
+                * D18  TRANSMIT_QUEUE_LENGTH   Length of transmit queue
+                * D19  RCV_ERROR_ALIGNMENT     Frames received with alignment 
error
+                * D20  XMIT_ONE_COLLISION      Frames transmitted with one 
collision
+                * D21  XMIT_MORE_COLLISIONS    Frames transmitted with more 
than one collision
+                * D22  XMIT_DEFERRED           Frames transmitted after 
deferral
+                * D23  XMIT_MAX_COLLISIONS     Frames not transmitted due to 
collisions
+                * D24  RCV_OVERRUN             Frames not received due to 
overrun
+                * D25  XMIT_UNDERRUN           Frames not transmitted due to 
underrun
+                * D26  XMIT_HEARTBEAT_FAILURE  Frames transmitted with 
heartbeat failure
+                * D27  XMIT_TIMES_CRS_LOST     Times carrier sense signal lost 
during transmission
+                * D28  XMIT_LATE_COLLISIONS    Late collisions detected
+                * D29-D31 Reserved             Must be set to 0
+                */
                printf("%s  wMaxSegmentSize         %10d\n"
                       "%s  wNumberMCFilters            0x%04x\n"
                       "%s  bNumberPowerFilters     %10d\n",
@@ -2877,7 +2915,11 @@
                       indent, buf[6] | (buf[7] << 8));
                break;
        default:
-               /* FIXME there are about a dozen more descriptor types */
+               /*
+                * There are about a dozen more descriptor types, if anyone has
+                * a device with them in it, we'll add them here in the future
+                * if * really needed.
+                */
                printf("%sUNRECOGNIZED CDC: ", indent);
                dump_bytes(buf, buf[0]);
                return;
@@ -3070,7 +3112,7 @@
               buf[6], proto,
               buf[7], buf[8]);
 
-       /* FIXME also show the OTHER_SPEED_CONFIG descriptors */
+       /* TODO also show the OTHER_SPEED_CONFIG descriptors */
 }
 
 static void do_debug(libusb_device_handle *fd)
@@ -3217,7 +3259,10 @@
 
 static void dump_usb2_device_capability_desc(unsigned char *buf, bool 
lpm_required)
 {
+       static const uint16_t besl_us[16] = { 125,  150,  200,  300,  400,  
500,  1000, 2000,
+                                             3000, 4000, 5000, 6000, 7000, 
8000, 9000, 10000 };
        unsigned int wide;
+       unsigned int besl;
 
        wide = buf[3] + (buf[4] << 8) +
                (buf[5] << 16) + (buf[6] << 24);
@@ -3232,16 +3277,17 @@
        else if (!lpm_required && !(wide & 0x02))
                printf("      Link Power Management (LPM) not supported\n");
        else if (!(wide & 0x04))
-               printf("      HIRD Link Power Management (LPM)"
-                               " Supported\n");
+               printf("      HIRD Link Power Management (LPM) Supported\n");
        else {
-               printf("      BESL Link Power Management (LPM)"
-                               " Supported\n");
-               if (wide & 0x08)
-                       printf("    BESL value    %5u us \n", wide & 0xf00);
-               if (wide & 0x10)
-                       printf("    Deep BESL value    %5u us \n",
-                                       wide & 0xf000);
+               printf("      BESL Link Power Management (LPM) Supported\n");
+               if (wide & 0x08) {
+                       besl = (wide & 0xf00) >> 8;
+                       printf("      Baseline BESL value  %5hu us \n", 
besl_us[besl]);
+               }
+               if (wide & 0x10) {
+                       besl = (wide & 0xf000) >> 12;
+                       printf("      Deep BESL value      %5hu us \n", 
besl_us[besl]);
+               }
        }
 }
 
@@ -3592,7 +3638,7 @@
                }
                switch (buf[2]) {
                case USB_DC_WIRELESS_USB:
-                       /* FIXME */
+                       /* It's dead!  Luckily no one has these devices so we 
can ignore it. */
                        break;
                case USB_DC_20_EXTENSION:
                        dump_usb2_device_capability_desc(buf, lpm_required);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/lsusb.py new/usbutils-019/lsusb.py
--- old/usbutils-018/lsusb.py   2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/lsusb.py   2025-10-22 14:00:57.000000000 +0200
@@ -28,6 +28,7 @@
 prefix = "/sys/bus/usb/devices/"
 usbids = [
        "/usr/share/hwdata/usb.ids",
+       "/usr/share/misc/usb.ids",
        "/usr/share/usb.ids",
 ]
 cols = ("", "", "", "", "", "")
@@ -64,7 +65,7 @@
        return type('MyEnum', (), enums)
 
 def parse_usb_ids():
-       "Parse /usr/share/{hwdata/,}usb.ids and fill usbvendors, usbproducts, 
usbclasses"
+       "Parse /usr/share/{hwdata/,misc/}usb.ids and fill usbvendors, 
usbproducts, usbclasses"
        vid = 0
        did = 0
        modes = myenum('Vendor', 'Class', 'Misc')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/man/usbreset.1 
new/usbutils-019/man/usbreset.1
--- old/usbutils-018/man/usbreset.1     2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/man/usbreset.1     2025-10-22 14:00:57.000000000 +0200
@@ -1,6 +1,6 @@
 .\" SPDX-License-Identifier: GPL-2.0-only
 .\" Copyright (c) 2023 Aurelien Jarno <[email protected]>
-.TH usbreset 1 "04 January 2024" "usbutils" "Linux USB Utilities"
+.TH usbreset 1 "04 January 2024" usbutils "Linux USB Utilities"
 .IX usbreset
 .SH NAME
 usbreset \- send a USB port reset to a USB device
@@ -12,23 +12,27 @@
 
 .SH DESCRIPTION
 .B usbreset
-is a utility that performs resets on USB devices. It is particularly useful
+is a utility that performs resets on USB devices.
+It is particularly useful for
 situations where a USB device is unresponsive or exhibits erratic behavior.
 The USB \fIdevice\fP to be reset can be specified in one of three formats:
 .TP
-.BR PPPP:VVVV
-Reset by product and vendor IDs
+.B VVVV:PPPP
+Reset by vendor and product IDs
 .TP
-.BR BBB/DDD
+.B BBB/DDD
 Reset by bus and device number
 .TP
-.BR "Product"
+.B SN:SERIAL
+Reset by serial number
+.TP
+.B Product
 Reset by product name
 .PP
 When run without any arguments,
 .B usbreset
 provides usage information and a list of connected USB devices, including their
-product and vendor IDs, bus and device numbers, and product names.
+vendor and product IDs, bus and device numbers, and product names.
 
 .SH RETURN VALUE
 If the specified device is not found, a non-zero exit code is returned.
@@ -40,7 +44,11 @@
 
 .TP
 Reset device 002 on bus 001:
-.B usbreset 001:002
+.B usbreset 001/002
+
+.TP
+Reset device with serial number ABCDEF0
+.B usbreset SN:ABCDEF0
 
 .TP
 Reset device named USB2.0 Hub:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/meson.build new/usbutils-019/meson.build
--- old/usbutils-018/meson.build        2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/meson.build        2025-10-22 14:00:57.000000000 +0200
@@ -4,7 +4,7 @@
 project(
   'usbutils',
   'c',
-  version: '018',
+  version: '019',
   license: ['GPL-2.0-only', 'GPL-2.0-or-later','GPL-2.0-or-later'],
   meson_version : '>=0.60.0',
   default_options : ['c_std=gnu99', 'warning_level=2', 'prefix=/usr']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/names.c new/usbutils-019/names.c
--- old/usbutils-018/names.c    2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/names.c    2025-10-22 14:00:57.000000000 +0200
@@ -35,11 +35,9 @@
 static const char *names_genericstrtable(const struct genericstrtable *t,
                                         unsigned int idx)
 {
-       const struct genericstrtable *h;
-
-       for (h = t; t->name; t++)
-               if (h->num == idx)
-                       return h->name;
+       for (; t->name; t++)
+               if (t->num == idx)
+                       return t->name;
        return NULL;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/usb-devices new/usbutils-019/usb-devices
--- old/usbutils-018/usb-devices        2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/usb-devices        2025-10-22 14:00:57.000000000 +0200
@@ -100,8 +100,8 @@
                driver="(none)"
        fi
        classname=$(class_decode "$class")
-       printf "I:  If#=%2i Alt=%2i #EPs=%2i Cls=%s(%s) Sub=%s Prot=%s 
Driver=%s\n" \
-               "0x${ifnum#0}" "${altset#0}" "0x${numeps#0}" "$class" 
"$classname" "$subclass" \
+       printf "I:  If#=%2i Alt=%2s #EPs=%2i Cls=%s(%s) Sub=%s Prot=%s 
Driver=%s\n" \
+               "0x${ifnum#0}" "${altset}" "0x${numeps#0}" "$class" 
"$classname" "$subclass" \
                "$protocol" "$driver"
 
        for endpoint in "$ifpath"/ep_??
@@ -113,10 +113,11 @@
 }
 
 print_device() {
-       local devpath=$1
-       local parent=$2
-       local level=$3
-       local count=$4
+       local devpath="$1"
+       local parent="$2"
+       local level="$3"
+       local count="$4"
+       local devnum
 
        [ -d "$devpath" ] || return
        cd "$devpath" || return
@@ -173,7 +174,7 @@
                print_interface "$devpath/$interface"
        done
 
-       devcount=0
+       local devcount=0
        for subdev in "$busnum"-*
        do
                echo "$subdev" | grep -Eq "^$busnum-[0-9]+(\.[0-9]+)*$" \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/usb-spec.h new/usbutils-019/usb-spec.h
--- old/usbutils-018/usb-spec.h 2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/usb-spec.h 2025-10-22 14:00:57.000000000 +0200
@@ -170,7 +170,6 @@
        { 0x90, "Camera Control Page" },
        { 0x91, "Arcade Control Page" },
        { 0xf0, "Cash Device" },
-       { 0xff, "Vendor Specific" },
        { 0x00, NULL },
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/usbreset.c new/usbutils-019/usbreset.c
--- old/usbutils-018/usbreset.c 2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/usbreset.c 2025-10-22 14:00:57.000000000 +0200
@@ -18,9 +18,6 @@
 
 #include <linux/usbdevice_fs.h>
 
-
-/* static char *usbfs = NULL; */
-
 struct usbentry {
        int bus_num;
        int dev_num;
@@ -28,6 +25,7 @@
        int product_id;
        char vendor_name[128];
        char product_name[128];
+       char serial[128];
 };
 
 static char *sysfs_attr(const char *dev, const char *attr)
@@ -92,6 +90,10 @@
        if (attr)
                strncpy(dev.product_name, attr, sizeof(dev.product_name) - 1);
 
+       attr = sysfs_attr(e->d_name, "serial");
+       if (attr)
+               strncpy(dev.serial, attr, sizeof(dev.serial) - 1);
+
        if (dev.bus_num && dev.dev_num && dev.vendor_id >= 0 && dev.product_id 
>= 0)
                return &dev;
 
@@ -102,21 +104,37 @@
 {
        DIR *devs = opendir("/sys/bus/usb/devices");
        struct usbentry *dev;
+       int max_serial_length = 0;
 
        if (!devs)
                return;
 
-       while ((dev = parse_devlist(devs)) != NULL)
-               printf("  Number %03d/%03d  ID %04x:%04x  %s\n",
-                          dev->bus_num, dev->dev_num,
-                          dev->vendor_id, dev->product_id,
-                          dev->product_name);
+       /* Calculate the largest size of the serial numbers if present */
+       while ((dev = parse_devlist(devs)) != NULL) {
+               int serial_length = strlen(dev->serial);
+               if (serial_length > max_serial_length)
+                       max_serial_length = serial_length;
+       }
+       closedir(devs);
+
+       devs = opendir("/sys/bus/usb/devices");
+       if (!devs)
+               return;
+
+       while ((dev = parse_devlist(devs)) != NULL) {
+               printf("  Number %03d/%03d  ID %04x:%04x  ", dev->bus_num, 
dev->dev_num, dev->vendor_id,
+                      dev->product_id);
+               if (strlen(dev->serial) > 0)
+                       printf("SN:%-*s", max_serial_length, dev->serial);
+               else
+                       printf("   %*s", max_serial_length, "");
+               printf("  %s\n", dev->product_name);
+       }
 
        closedir(devs);
 }
 
-static struct usbentry *find_device(int *bus, int *dev, int *vid, int *pid,
-                                   const char *product)
+static struct usbentry *find_device(int *bus, int *dev, int *vid, int *pid, 
const char *serial, const char *product)
 {
        DIR *devs = opendir("/sys/bus/usb/devices");
 
@@ -127,8 +145,8 @@
 
        while ((e = parse_devlist(devs)) != NULL)
                if ((bus && (e->bus_num == *bus) && (e->dev_num == *dev)) ||
-                       (vid && (e->vendor_id == *vid) && (e->product_id == 
*pid)) ||
-                       (product && !strcasecmp(e->product_name, product))) {
+                   (vid && (e->vendor_id == *vid) && (e->product_id == *pid)) 
||
+                   (serial && !strcasecmp(e->serial, serial)) || (product && 
!strcasecmp(e->product_name, product))) {
                        match = e;
                        break;
                }
@@ -143,13 +161,12 @@
        int fd;
        char path[PATH_MAX];
 
-       snprintf(path, sizeof(path) - 1, "/dev/bus/usb/%03d/%03d",
-               dev->bus_num, dev->dev_num);
+       snprintf(path, sizeof(path) - 1, "/dev/bus/usb/%03d/%03d", 
dev->bus_num, dev->dev_num);
 
        printf("Resetting %s ... ", dev->product_name);
 
        fd = open(path, O_WRONLY);
-       if (fd  > -1) {
+       if (fd > -1) {
                if (ioctl(fd, USBDEVFS_RESET, 0) < 0)
                        printf("failed [%s]\n", strerror(errno));
                else
@@ -161,22 +178,24 @@
        }
 }
 
-
 int main(int argc, char **argv)
 {
        int id1, id2;
        struct usbentry *dev;
 
        if ((argc == 2) && (sscanf(argv[1], "%3d/%3d", &id1, &id2) == 2))
-               dev = find_device(&id1, &id2, NULL, NULL, NULL);
+               dev = find_device(&id1, &id2, NULL, NULL, NULL, NULL);
        else if ((argc == 2) && (sscanf(argv[1], "%4x:%4x", &id1, &id2) == 2))
-               dev = find_device(NULL, NULL, &id1, &id2, NULL);
+               dev = find_device(NULL, NULL, &id1, &id2, NULL, NULL);
+       else if ((argc == 2) && (strncmp(argv[1], "SN:", 3) == 0))
+               dev = find_device(NULL, NULL, NULL, NULL, &(argv[1])[3], NULL);
        else if ((argc == 2) && strlen(argv[1]) < 128)
-               dev = find_device(NULL, NULL, NULL, NULL, argv[1]);
+               dev = find_device(NULL, NULL, NULL, NULL, NULL, argv[1]);
        else {
                printf("Usage:\n"
-                      "  usbreset PPPP:VVVV - reset by product and vendor id\n"
+                      "  usbreset VVVV:PPPP - reset by vendor and product id\n"
                       "  usbreset BBB/DDD   - reset by bus and device number\n"
+                      "  usbreset SN:SERIAL - reset by serial number\n"
                       "  usbreset \"Product\" - reset by product name\n\n"
                       "Devices:\n");
                list_devices();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usbutils-018/usbutils.spdx 
new/usbutils-019/usbutils.spdx
--- old/usbutils-018/usbutils.spdx      2024-10-22 11:33:33.000000000 +0200
+++ new/usbutils-019/usbutils.spdx      2025-10-22 14:00:57.000000000 +0200
@@ -2,29 +2,29 @@
 DataLicense: CC0-1.0
 SPDXID: SPDXRef-DOCUMENT
 DocumentName: usbutils
-DocumentNamespace: 
http://spdx.org/spdxdocs/spdx-v2.1-27f6aa30-7432-4e93-9eb4-0b42decd5fbd
+DocumentNamespace: 
http://spdx.org/spdxdocs/spdx-v2.1-265b69a0-f76d-4dda-b172-7b15dbf97f97
 Creator: Person: Greg Kroah-Hartman <[email protected]> ()
 Creator: Organization: The Linux Foundation ()
-Creator: Tool: reuse-4.0.3
-Created: 2024-10-22T09:33:13Z
+Creator: Tool: reuse-6.1.2
+Created: 2025-10-22T11:57:41Z
 CreatorComment: <text>This document was created automatically using available 
reuse information consistent with REUSE.</text>
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-68c02f636b8e3879dac8154f74e11a07
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-55ac808bfba4c56ce907af138af72acf
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-0eacc2ae7d0f5c3449ec0adf0eb43bf0
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-a3fe8c439a8920ee4f2b8078b85ad468
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-7a3bd08eba1bc24dee78f41529fb76d7
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-9d50e0b0e40bb0140e9f6d7914c16053
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-421ef750cbd607aeb62b8dab638454b4
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-dbefb4a51cbf16bc58c282be75359b68
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-7adfca84953238f811ff00949e265bea
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-f38228d528a8d5a2e1f3a7e14e3ef982
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-d55ab2ed4d5fdfcf0040347a879b8f2d
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-21a212edf35f19ec3cfeb707641e5d71
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-5503f4e216fc559b19e397a7433010ca
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-48837738997a8f7c8e44df92148bb30c
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-756378318565393ff48f1292b85cdded
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-9d1d2cd39aaefd926b25e9a96f462e43
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-a0dca448bcc96880587f0e9ddb53cb14
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-d6a26648562bd7a9782acf0ec87b8d02
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-ddd0854171f331d4da3d8e3e1824aa29
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-3d0f9a651bc0ef4392e82f9cd1dc57ac
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-1b01a9527b090987aa109db644e7b9e6
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-3c266a02447dff11e03fc0654ea06186
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-5a9e56b29cdc1e867b8950983068064d
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-9db087fb171bcb3d26160a4e4829fd9d
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-60c5f0772761312cad5b32c0fc824a3d
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-a9bd5f415bcf395d45744e20a813a05a
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-0d55599d39c57a6ef592993f38cb38ee
@@ -32,8 +32,8 @@
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-75b5d80d5b8e458a555bf9942bf7ed10
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-1d1ad6cdb4de72eeca72d3ad9a3c627e
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-4ae5ef4ab1501abb4c1c47d66ce32921
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-8f5454f574dbcff4dc1d582dc06483aa
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-000d620fc402bf53d9c734ebdeb7e3cd
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-a7b2b91a40c7ab0bbe53401d34033e3d
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-f4fc4054b521c527a93f6569df101ee6
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-50536ae3a0aee6056d7fb92e3331aba9
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-830fc01dabc63645c1547b64e529769c
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-ab0aa24619778bb6942ad2513cfc49f9
@@ -41,22 +41,22 @@
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-b7f35e140b6356cdb8e087dcd7b3aa0b
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-df32fd71045b9bb4a88d11b9d0f003c3
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-c80241df39c14854b1c4e034b14ee82c
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-654676621076127b37582bdf9c7bc2c0
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-6f00e1d4546ef3e6a02ec90c4f424a5e
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-3227ce12616620c2a20e8a14d8af06a2
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-2d91c927116a8bfd3e2da963c04fc6f2
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-03c4f6abffb242d6d0dccde1eff96a71
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-0767786dd4e99840a57609fef1af97a5
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-e9c31aa5353a2602a155942b009cd979
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-f8de93054989a2fd41f3c2efbfb096a9
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-c5e911e3fb38d1362fb16df2a2fefd9e
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-6bf84d40f00b2566aa73a36acd80b594
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-eae4055469224764325d52cc96cbab3b
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-e38f878d92a1acfc7f028a82fccf83a7
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-55ab2a28154ae54d03e8851633212eab
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-39cda2fc214ee9684ac11abbef3cc612
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-e8f43573a1e1c0ff6f4673c44c1c2bc1
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-3e2dd900eedfeb6de38e4ef6631df142
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-360b67a9ce3308fc7852156090c1e75d
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-e86a1beac9018216b303111be6b03e4e
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-69bd878b1773bc5d2cecfdede4b81d57
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-049709f1770711ea4558413c0af49689
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-2d19fe5fb8b4f7ab28eb8a45aeeee263
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-9929adf54a5cafd69cf282f0e62272ef
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-944b584000dd1ce8d6a5003bcd877998
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-34e66fb749b54331c2b384e291b433ed
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-5caab38b28b28a1e757052f304adfd8d
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-a4ab912da758ea90ac0483b463d76f54
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-3fcb43cc533d0519e5a1ecdc4afe58ac
@@ -71,7 +71,7 @@
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-bb1c9a232ce0b433ce3c314df4329477
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-04eadb4435b47c57bfa272f81be4f815
 Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-e99e2d061caabfd49e2c6a1967bed2c5
-Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-be9d24b98784bd29b232c30b9eb2e68a
+Relationship: SPDXRef-DOCUMENT DESCRIBES 
SPDXRef-43361a8abfac03fa76abeb3eac609890
 
 FileName: ./.clang-format
 SPDXID: SPDXRef-68c02f636b8e3879dac8154f74e11a07
@@ -111,8 +111,8 @@
 SPDX-FileCopyrightText: 2024 Lucas De Marchi <[email protected]></text>
 
 FileName: ./.github/actions/setup-debian/action.yml
-SPDXID: SPDXRef-9d50e0b0e40bb0140e9f6d7914c16053
-FileChecksum: SHA1: 14405bfd57dc72f634e66a15725fbe52241349df
+SPDXID: SPDXRef-421ef750cbd607aeb62b8dab638454b4
+FileChecksum: SHA1: 6c0141996f10be924043f89b63a657a0a0813b4d
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]>
@@ -127,8 +127,8 @@
 SPDX-FileCopyrightText: 2024 Lucas De Marchi <[email protected]></text>
 
 FileName: ./.github/actions/setup-ubuntu/action.yml
-SPDXID: SPDXRef-7adfca84953238f811ff00949e265bea
-FileChecksum: SHA1: b769d5976d574053adcae043da15a481acc9628b
+SPDXID: SPDXRef-f38228d528a8d5a2e1f3a7e14e3ef982
+FileChecksum: SHA1: b39e7f7e85819fa264b4f2ed571c9eccf682a7f9
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]>
@@ -163,38 +163,38 @@
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]></text>
 
 FileName: ./.github/workflows/clang-format.yml
-SPDXID: SPDXRef-756378318565393ff48f1292b85cdded
-FileChecksum: SHA1: d14b6e001cdda2ca448b598ab74ededadf7d3572
+SPDXID: SPDXRef-3d0f9a651bc0ef4392e82f9cd1dc57ac
+FileChecksum: SHA1: 40d9894f884639232e5e8585bb82c8a90f34d60a
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]></text>
 
 FileName: ./.github/workflows/codeql.yml
-SPDXID: SPDXRef-9d1d2cd39aaefd926b25e9a96f462e43
-FileChecksum: SHA1: bf0f5c9591b30874fb85df2ac04100be7afe0068
+SPDXID: SPDXRef-1b01a9527b090987aa109db644e7b9e6
+FileChecksum: SHA1: cfff478d8801e4b64cc123762ec42db4bc2e122b
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]>
 SPDX-FileCopyrightText: 2024 Lucas De Marchi <[email protected]></text>
 
 FileName: ./.github/workflows/codespell.yml
-SPDXID: SPDXRef-a0dca448bcc96880587f0e9ddb53cb14
-FileChecksum: SHA1: 2dd94bb33555815ed4360da53e966bf2e17584ed
+SPDXID: SPDXRef-3c266a02447dff11e03fc0654ea06186
+FileChecksum: SHA1: 00615e21e06d7097ac118548ed77f51c6063c407
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]></text>
 
 FileName: ./.github/workflows/main.yml
-SPDXID: SPDXRef-d6a26648562bd7a9782acf0ec87b8d02
-FileChecksum: SHA1: a02c21bdd3c8abce34e97b8e3ce0a82c148bd3e2
+SPDXID: SPDXRef-5a9e56b29cdc1e867b8950983068064d
+FileChecksum: SHA1: b82aea4e495ac6b7787e99cccd30c4da389411ff
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]>
 SPDX-FileCopyrightText: 2024 Lucas De Marchi <[email protected]></text>
 
 FileName: ./.github/workflows/reuse.yml
-SPDXID: SPDXRef-ddd0854171f331d4da3d8e3e1824aa29
-FileChecksum: SHA1: 73b77f69acf2f80da1e811913fed7dc9594746df
+SPDXID: SPDXRef-9db087fb171bcb3d26160a4e4829fd9d
+FileChecksum: SHA1: 0928cf2cbba85ff5652b0a8d74036fedbc980c42
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: LGPL-2.1-or-later
 FileCopyrightText: <text>SPDX-FileCopyrightText: 2024 Emil Velikov 
<[email protected]></text>
@@ -204,30 +204,31 @@
 FileChecksum: SHA1: 39951a5bdc5c52cac0e1849f5237b7f94300f5a7
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2009 Greg Kroah-Hartman <[email protected]>
-Copyright (c) 2014-2021 Greg Kroah-Hartman <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2009 Greg Kroah-Hartman <[email protected]>
+Copyright (C) 2014-2021 Greg Kroah-Hartman <[email protected]></text>
 
 FileName: ./NEWS
 SPDXID: SPDXRef-a9bd5f415bcf395d45744e20a813a05a
 FileChecksum: SHA1: 289991915e6c690eeabd34d8521b0f40554d77cb
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2018-2024 Greg Kroah-Hartman 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2018-2024 Greg Kroah-Hartman 
<[email protected]>
+Copyright strings</text>
 
 FileName: ./README.md
 SPDXID: SPDXRef-0d55599d39c57a6ef592993f38cb38ee
 FileChecksum: SHA1: 783f577dd8442485278bcd35e0956a6507a724e8
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
-FileCopyrightText: <text>Copyright (c) 2018 Greg Kroah-Hartman 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2018 Greg Kroah-Hartman 
<[email protected]></text>
 
 FileName: ./autogen.sh
 SPDXID: SPDXRef-a9cd23771d5dd91bb7547c2bf9b6d61d
 FileChecksum: SHA1: 9df97295b60b11b78521f829eab2ef489b8367e8
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2009,2010 Greg Kroah-Hartman 
<[email protected]>
-Copyright (c) 2024 Greg Kroah-Hartman <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2009, 2010 Greg Kroah-Hartman 
<[email protected]>
+Copyright (C) 2024 Greg Kroah-Hartman <[email protected]></text>
 
 FileName: ./build-dev.ini
 SPDXID: SPDXRef-75b5d80d5b8e458a555bf9942bf7ed10
@@ -251,15 +252,15 @@
 FileCopyrightText: <text>SPDX-FileCopyrightText: Rusty Russell 
<[email protected]></text>
 
 FileName: ./ccan/container_of/container_of.h
-SPDXID: SPDXRef-8f5454f574dbcff4dc1d582dc06483aa
-FileChecksum: SHA1: f0a0a369d19ad6527d1b6486f73038fe69b71acd
+SPDXID: SPDXRef-a7b2b91a40c7ab0bbe53401d34033e3d
+FileChecksum: SHA1: 09d56f0491025cf3da60c2c52db198795d06932f
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: CC0-1.0
 FileCopyrightText: <text>SPDX-FileCopyrightText: Rusty Russell 
<[email protected]></text>
 
 FileName: ./ccan/list/list.h
-SPDXID: SPDXRef-000d620fc402bf53d9c734ebdeb7e3cd
-FileChecksum: SHA1: b71b49cb975faa372e29ea64bdd75d207a15c2b6
+SPDXID: SPDXRef-f4fc4054b521c527a93f6569df101ee6
+FileChecksum: SHA1: b6e5a402b26d01c41faedf4d69d0194f68b73479
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: MIT
 FileCopyrightText: <text>SPDX-FileCopyrightText: Rusty Russell 
<[email protected]></text>
@@ -311,18 +312,18 @@
 FileChecksum: SHA1: 535a91d55e4c0fa2453beab5923b7c051f151c62
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2024 Greg Kroah-Hartman 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2024 Greg Kroah-Hartman 
<[email protected]></text>
 
 FileName: ./lsusb-t.c
-SPDXID: SPDXRef-654676621076127b37582bdf9c7bc2c0
-FileChecksum: SHA1: 596ee437ec8fe0126614ba5b1a996b455a7c956a
+SPDXID: SPDXRef-3227ce12616620c2a20e8a14d8af06a2
+FileChecksum: SHA1: 4eab28b391e6c7803bd672bcfd84851543c1107e
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2009 Greg Kroah-Hartman 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2009 Greg Kroah-Hartman 
<[email protected]></text>
 
 FileName: ./lsusb.c
-SPDXID: SPDXRef-6f00e1d4546ef3e6a02ec90c4f424a5e
-FileChecksum: SHA1: df94be365bbc1c0f915da702d9488d9fb3a8332c
+SPDXID: SPDXRef-2d91c927116a8bfd3e2da963c04fc6f2
+FileChecksum: SHA1: ed966d97ad407568ab3e99f03fbfed3bb98783cb
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
 FileCopyrightText: <text>Copyright (C) 1999-2001, 2003 Thomas Sailer 
([email protected])
@@ -336,37 +337,37 @@
 FileCopyrightText: <text>Copyright 2011 (c) Greg Kroah-Hartman 
<[email protected]></text>
 
 FileName: ./lsusb.py
-SPDXID: SPDXRef-0767786dd4e99840a57609fef1af97a5
-FileChecksum: SHA1: 155a3f8198ffc2a2e3dd0ba3b5df4fdc19fd33a6
+SPDXID: SPDXRef-e9c31aa5353a2602a155942b009cd979
+FileChecksum: SHA1: 851f40c326706911f87aa636188a86fb55e77e69
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
 LicenseInfoInFile: GPL-3.0-only
-FileCopyrightText: <text>Copyright (c) 2009 Kurt Garloff <[email protected]>
-Copyright (c) 2013,2018 Kurt Garloff <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2009 Kurt Garloff <[email protected]>
+Copyright (C) 2013, 2018 Kurt Garloff <[email protected]></text>
 
 FileName: ./man/lsusb.8
 SPDXID: SPDXRef-f8de93054989a2fd41f3c2efbfb096a9
 FileChecksum: SHA1: 809b319a3f62e6b58dc547f336c29e6204db098f
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 1999 Thomas Sailer 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 1999 Thomas Sailer 
<[email protected]></text>
 
 FileName: ./man/lsusb.py.1
 SPDXID: SPDXRef-c5e911e3fb38d1362fb16df2a2fefd9e
 FileChecksum: SHA1: df8fb145901a6249861e548bdf4a6a94e5185799
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 1999 Thomas Sailer 
<[email protected]>
-Copyright (c) 2020 Sam Morris <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 1999 Thomas Sailer 
<[email protected]>
+Copyright (C) 2020 Sam Morris <[email protected]></text>
 
 FileName: ./man/usb-devices.1
 SPDXID: SPDXRef-6bf84d40f00b2566aa73a36acd80b594
 FileChecksum: SHA1: d4149382a2dac133414f2994f23665f507cf4565
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2004 Frans Pop <[email protected]>
-Copyright (c) 2004 Greg Kroah-Hartman <[email protected]>
-Copyright (c) 2004 Randy Dunlap <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2004 Frans Pop <[email protected]>
+Copyright (C) 2004 Greg Kroah-Hartman <[email protected]>
+Copyright (C) 2004 Randy Dunlap <[email protected]></text>
 
 FileName: ./man/usbhid-dump.8
 SPDXID: SPDXRef-eae4055469224764325d52cc96cbab3b
@@ -376,22 +377,22 @@
 FileCopyrightText: <text>Copyright Nikolai Kondrashov 
<[email protected]></text>
 
 FileName: ./man/usbreset.1
-SPDXID: SPDXRef-e38f878d92a1acfc7f028a82fccf83a7
-FileChecksum: SHA1: 4c632c1d8a4fb012b0150708b060dd6c582b4b2a
+SPDXID: SPDXRef-e8f43573a1e1c0ff6f4673c44c1c2bc1
+FileChecksum: SHA1: e32e39d86165fb886202cd3c7eb1b69a460ce093
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2023 Aurelien Jarno 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2023 Aurelien Jarno 
<[email protected]></text>
 
 FileName: ./meson.build
-SPDXID: SPDXRef-55ab2a28154ae54d03e8851633212eab
-FileChecksum: SHA1: 172e0b2094aaee574ebdebae19a45153b08518f8
+SPDXID: SPDXRef-3e2dd900eedfeb6de38e4ef6631df142
+FileChecksum: SHA1: 9452eb02e8f3a8471a547c7c674c23027f0589fc
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2024 Greg Kroah-Hartman 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2024 Greg Kroah-Hartman 
<[email protected]></text>
 
 FileName: ./names.c
-SPDXID: SPDXRef-39cda2fc214ee9684ac11abbef3cc612
-FileChecksum: SHA1: bec0bd4cfa0033f87b8bc887edcb33b2dfe031a9
+SPDXID: SPDXRef-360b67a9ce3308fc7852156090c1e75d
+FileChecksum: SHA1: a8a9c959868d21977e4ffc842f08a3469360862f
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
 FileCopyrightText: <text>Copyright (C) 1999, 2000 Thomas Sailer 
([email protected])
@@ -420,17 +421,17 @@
 FileCopyrightText: <text>Copyright (C) 1999, 2000 Thomas Sailer 
([email protected])</text>
 
 FileName: ./usb-devices
-SPDXID: SPDXRef-2d19fe5fb8b4f7ab28eb8a45aeeee263
-FileChecksum: SHA1: bc0893ecf3726f064d3d10ce82772a8244b5238b
+SPDXID: SPDXRef-944b584000dd1ce8d6a5003bcd877998
+FileChecksum: SHA1: 336cefc7b32d865866c193de69b1277fcc28354f
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
-FileCopyrightText: <text>Copyright (c) 2009 Frans Pop <[email protected]>
-Copyright (c) 2009 Greg Kroah-Hartman <[email protected]>
-Copyright (c) 2009 Randy Dunlap <[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2009 Frans Pop <[email protected]>
+Copyright (C) 2009 Greg Kroah-Hartman <[email protected]>
+Copyright (C) 2009 Randy Dunlap <[email protected]></text>
 
 FileName: ./usb-spec.h
-SPDXID: SPDXRef-9929adf54a5cafd69cf282f0e62272ef
-FileChecksum: SHA1: b8a436de9e1d5c7458ebbdab80c7f9164895dd32
+SPDXID: SPDXRef-34e66fb749b54331c2b384e291b433ed
+FileChecksum: SHA1: e5f27aa2a1217a300ad6c112d38df1511f389e10
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
 FileCopyrightText: <text>Copyright (C) 2013 Tom Gundersen <[email protected]></text>
@@ -440,14 +441,14 @@
 FileChecksum: SHA1: 81f641160fd9f17f89a195cc782e8be3fb7d9975
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
-FileCopyrightText: <text>Copyright (c) 2010 Nikolai Kondrashov</text>
+FileCopyrightText: <text>Copyright (C) 2010 Nikolai Kondrashov</text>
 
 FileName: ./usbhid-dump/README.md
 SPDXID: SPDXRef-a4ab912da758ea90ac0483b463d76f54
 FileChecksum: SHA1: b184daca1cf24a499f3f4905f223e8f4e0dcb53a
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
-FileCopyrightText: <text>Copyright (c) 2010 Nikolai Kondrashov</text>
+FileCopyrightText: <text>Copyright (C) 2010 Nikolai Kondrashov</text>
 
 FileName: ./usbhid-dump/dev.c
 SPDXID: SPDXRef-3fcb43cc533d0519e5a1ecdc4afe58ac
@@ -517,7 +518,8 @@
 FileChecksum: SHA1: 8dc6a493567975f26142041149ebac1c9543c84e
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-or-later
-FileCopyrightText: <text>Copyright (C) 2010-2011 Nikolai Kondrashov 
<[email protected]></text>
+FileCopyrightText: <text>Copyright (C) 2010 Nikolai Kondrashov\n
+Copyright (C) 2010-2011 Nikolai Kondrashov <[email protected]></text>
 
 FileName: ./usbmisc.c
 SPDXID: SPDXRef-04eadb4435b47c57bfa272f81be4f815
@@ -534,8 +536,9 @@
 FileCopyrightText: <text>Copyright (C) 2003 Aurelien Jarno 
([email protected])</text>
 
 FileName: ./usbreset.c
-SPDXID: SPDXRef-be9d24b98784bd29b232c30b9eb2e68a
-FileChecksum: SHA1: 9dc944bc60ec8298e857dcbc968756961b3c63f5
+SPDXID: SPDXRef-43361a8abfac03fa76abeb3eac609890
+FileChecksum: SHA1: da89c8c944526a153edf18a2f562756dc4ffc179
 LicenseConcluded: NOASSERTION
 LicenseInfoInFile: GPL-2.0-only
-FileCopyrightText: <text>Copyright (c) 2009-2016 Alan Stern</text>
+FileCopyrightText: <text>Copyright (C) 2009-2016 Alan Stern</text>
+

Reply via email to