usbutils 011 and 012 release

From: Greg KH
Date: Tue May 07 2019 - 12:53:53 EST


Continuing the "one release a year" normal progression for the usbutils
package, I would like to announce the 011 and 012 release of usbutils.

There was 2 releases because we have now changed the way usbutils is
distributed, and it took me a second try to get it "correct".

More details on that below, if you are curious, below the shortlog,
here's the highlights of the latest release over the last 010 release:

- more USB descriptor extensions added
- python3 support for lsusb.py so those distros dropping python2
support can be happy.
- loads of cleanups of lsusb.py by Mantas MikulÄnas and Kurt Garloff
- SPDX bill-of-materials support, as defined by the REUSE project, to
make distro packagers happier
- libusb requirement settled down, again to make some distros happier
- usbhid-dump moved into the usbutils main

Here's the "shortlog" for those interested:

usbutils 012
============

Greg Kroah-Hartman:
Merge usbhid-dump into main usbutils repository


usbutils 011
============

Clemens Fruhwirth (1):
Add usbreset.c as noinst_PROGRAMS target.

Daniel Schaefer (1):
lsusb: Read unkown names from sysfs device desc.

Darsey Litzenberger (3):
Remove a small hack that no longer has any effect.
Cleanup grammar
lsusb-t: Emit USB IDs and other handy info when verbosity is increased

Emmanuele Bassi (1):
Require newer version of libusb

Georg Brandl (1):
lsusb.py: fix up Python 3 conversion

Greg Kroah-Hartman (10):
SPDX bill-of-material is supposed to be project_name.spdx
usbutils.spdx: rerun report, it is properly sorted.
desc-dump.c: fix compiler warning about unused variable
add usbreset to .gitignore
usbreset: fix some build warnings
usbhid-dump: update to latest version
fix up standard int types
update usbhid-dump git id
usbhid-dump: update to a newer version of usbhid-dump again.
usbutils.spdx: update with latest information

Kurt Garloff (4):
lsusb.py: Search multiple paths for usb.ids.
lsusb.py: Usb enum for parser state machine.
lsusb.py: Add driver names for usbhid.
lsusb.py: python2 compatibility

Lukas Nykryn (1):
Makefile.am: add files with licenses to archive

Mantas MikulÄnas (33):
lsusb.py: sort devices and interfaces numerically
lsusb.py: sort toplevel entries
lsusb.py: improve usage text
lsusb.py: replace fake deepcopy()
lsusb.py: remove -w (warn if usb.ids not sorted) option
lsusb.py: ensure all error messages are written to stderr
lsusb.py: support long options
lsusb.py: use regular print() instead of hand-rolling the same thing
lsusb.py: avoid shadowing Python's built-in 'str'
lsusb.py: replace usb.ids binary search with dict lookup
lsusb.py: remove now-unused bin_search()
lsusb.py: avoid manual calls to __foo__()
lsusb.py: replace __repr__() for USB IDs with __str__()
lsusb.py: insert class FF:FF:FF into usbclasses to avoid special casing
lsusb.py: entirely remove Usb* classes
lsusb.py: cosmetic - replace tuples-as-"immutable lists" with regular lists
lsusb.py: use 'elif' where suitable
lsusb.py: remove dead code
lsusb.py: move unrelated code out of try..except
lsusb.py: allow - as well as _ when matching hci module names
lsusb.py: use a constant for the magic class number 9
lsusb.py: Usb* classes: call read() automatically from constructor
lsusb.py: UsbEndpoint: indent is a class implementation detail
lsusb.py: a few cosmetic changes
lsusb.py: shorten find_usb_class()
lsusb.py: give all Usb* objects a .path attribute
lsusb.py: add an actual __repr__() to classes
lsusb.py: give all Usb* classes a superclass
lsusb.py: convert readattr() and readlink() to methods of the container
lsusb.py: use color by default
lsusb.py: rework output for more consistent indent of both columns
lsusb.py: fix endpoint interval spacing
lsusb.py: visually group USB-version-related fields

Michael Drake (4):
lsusb: Split out routine that fetches value for given field.
lsusb: Split out field name rendering.
lsusb: Add support for descriptor extensions.
lsusb: Add support for audio processing unit type-specific fields.

Philip Langdale (2):
lsusb: Added support for Billboard Alternate Mode Capability descriptor
lsusb.py: Fix formatting of 10Gbps speeds

Ross Burton (1):
usb-devices: use /bin/sh hashbang

Solomon Peachy (1):
lsusb: Add support for decoding IPP printer descriptors

Stefan Tauner (1):
Depend on libusb 1.0.14

Valerii Zapodovnikov (1):
man pages: add information on verbosity levels of -t option

junjie (1):
fix typo


------------


Now for the details of how the tarballs are released, if anyone is
interested.

Previously, to do a usbutils release, I would run 'make distcheck' on
the repository and upload the generated tarball, after signing it, to
kernel.org and it would do the correct compression and signatures and
all is good. But that means a bunch of auto-generated files are added
to the tarball, which are pulled from my system based on any sort of
random choice of autotools that I happened to have installed.

So a tarball would not represent the actual files checked into the git
repo, you would just have to "trust" that the files in the tarball that
were not part of git, were "ok". And that's fine, it's the way almost
all packages have ever been distributed for the past 30+ years, since
when autotools was created.

But now, kernel.org has the ability to create a signed tarball, based on
a signed git tag. We have been using this ability for a while now to do
kernel releases (both the stable and Linus's releases.) This means that
the git repo itself is the "true source" of all of the files, and what
is distributed and signed is the exact same thing that is in the
repository.

So now things can be properly verified. You can check that the files in
the tarball are identical to the ones in the git repository at that same
point in time.

But what this means is that now to build from the tarball, you have to
run the 'autogen.sh' script, instead of running 'configure'. This is
normally what a lot of distributions did anyway, as that way they would
"know" what version of autotools was building the package, because all
distros happen to use a different version.

Also, the other bad side affect was that the usbhid-dump repository,
which was a git submodule in usbutils, was not built at all as part of
the usbutils release. This is the reason that the 011 release that
happened yesterday did not contain usbhid-dump, and why I did the 012
release today to make up for that missing tool.

So, in conclusion, if you are a distro packager, you now have a way to
verify that the tarball matches exactly the git repository at a specific
point in time, and you should feel safer packaging things up as you are
not relying on random scripts that are pulled from my personal machine.

If you are a user of usbutils, none of this matters at all, but thanks
for reading this far.

If there are any questions, about any of this, please let me know.

thanks,

greg k-h