Opened 10 years ago

Closed 10 years ago

#5724 closed task (wontfix)

Add package hwids-20141022

Reported by: Fernando de Oliveira Owned by: bdubbs@…
Priority: normal Milestone: 7.7
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

Needed by usbutils-008.

version=`date +%Y%m%d`
git clone git://github.com/gentoo/hwids.git hwids-$version &&
    rm -rf hwids-$version/.git* &&
    tar cJf  hwids-$version.tar.xz  hwids-$version &&
    rm -rf hwids-$version

$ du -sh hwids-20141022.tar.xz 1,2M hwids-20141022.tar.xz

I will upload to my account later

Change History (30)

comment:1 by Fernando de Oliveira, 10 years ago

Owner: changed from blfs-book@… to Fernando de Oliveira
Status: newassigned

comment:2 by bdubbs@…, 10 years ago

Sigh. We can create a script to update the db daily on anduin if needed. We already do that for ssl certificates.

comment:3 by Fernando de Oliveira, 10 years ago

I've already added the page.

Please, verify if you still prefer the script, and if so, remove the package, or tell me to do it

In this case, we will need to also modify usbutils.

I will dfer uploading the package to anduin, until you reply.

Thanks for the interest. Sorry for this trouble.

Almost fixed at r14706.

Leaving open until we finish the discussion.

comment:4 by bdubbs@…, 10 years ago

Here is one strategy. Do a git clone and leave it populated.

Daily:

cd hwids
git pull
cd ..
rm hwids.tar.xz
tar -cJf hwids.tar.xz --exclude .git* hwids

This would be similar to the certificates that we now have as certdata.txt. What do you think? Note that the uncompressed database is 12M.

comment:5 by Fernando de Oliveira, 10 years ago

I like it. Do i need to do anything, or you will do the necessary modifications? I think e.g. that the version entitity would be removed. And then you can close both tickets? The hwids get both pci and usb. I believe in the probability sonn pciutils will suffer the same modification.

Whatever you decide is good for me. If you want me to take any action, please, just say. If you want to do them and close both tickets, it is good for me.

comment:6 by bdubbs@…, 10 years ago

OK, I'll do it tomorrow. I think it should be fairly easy.

comment:7 by Armin K, 10 years ago

It is not needed for usbutils. usbutils-008 uses hwdb from UDev for the USB database.

I see no mention of usb.ids anywhere in "strace lsusb". It may be needed for lsusb.py, but it only prints a warning about failing to read usb.ids and still displays the correct usb device names.

comment:8 by Armin K, 10 years ago

From usbutils-008 NEWS:

Tom Gundersen (2):
      lsusb: port to hwdb
      drop dependency on usb.ids

comment:9 by Fernando de Oliveira, 10 years ago

Thanks, Armin. I was already going to write to remove, then, decided to test, and the problem is not only a warning. To work correctly, it needs hwids.

lsusb has now very not reasonable output, and most users will go for lususb.py. That is whye your strace didn't get usb.ids.

I repeated with lsusb.py:

$ strace lsusb.py 2>&1 | grep ids
open("/usr/share/hwdata/usb.ids", O_RDONLY|O_LARGEFILE) = 3

Thus, it is definitely needed.

Furthermore, I have, without usb.ids:

$ sudo mv -vi /usr/share/hwdata/ /usr/share/hwdata-save
“/usr/share/hwdata/” -> “/usr/share/hwdata-save”
$ lsusb.py -ciu
 WARNING: Failure to read usb.ids
(<type 'exceptions.IOError'>, IOError(2, 'No such file or directory'), <traceback object at 0xb6fffb44>)
usb1             1d6b:0001 09  1.10   12MBit/s 0mA 1IF  (uhci_hcd 0000:02:00.0) hub
 1-1             0e0f:0003 00  1.10   12MBit/s 0mA 1IF  (VMware VMware Virtual USB Mouse)
  1-1:1.0         (IF) 03:01:02 1EP  () usbhid 

With usb.ids:

$ sudo mv -vi /usr/share/hwdata-save /usr/share/hwdata/
“/usr/share/hwdata-save” -> “/usr/share/hwdata/”
$ lsusb.py -ciu
usb1             1d6b:0001 09  1.10   12MBit/s 0mA 1IF  (uhci_hcd 0000:02:00.0) hub
 1-1             0e0f:0003 00  1.10   12MBit/s 0mA 1IF  (VMware VMware Virtual USB Mouse)
  1-1:1.0         (IF) 03:01:02 1EP  (Human Interface Device:Boot Interface Subclass:Mouse) usbhid 

comment:10 by Armin K, 10 years ago

I have yet to see someone actually using lsusb.py. Every support request or guide I have stumbled upon until today was using plain lsusb. Untill today I didn't know that lsusb.py even existed.

If it were for me, I'd add an optional external dep - beats adding a fast moving git package as 3/4 of the package works fine and we never go and make everything work out of the box - we leave something to the user. That's just my POV.

Bye.

in reply to:  10 ; comment:11 by Fernando de Oliveira, 10 years ago

Replying to Krejzi:

I have yet to see someone actually using lsusb.py.

You do have seen: Fernando de Oliveira.

You still don't understand what you wrote, it is now completely different: lsusb did it until version 007. Now lsusb.py is the only option doing it, and lsusb is going to be unsused by regular distro users, when they discover what they want.

It is surprising seeing you, who does not instal inetutils, liking a package working 3/4 of the perfection. It is a grade of 75. And everybody remembers you telling in many posts: "that will make it lose some functionality, I don't recommend".

comment:12 by bdubbs@…, 10 years ago

Owner: changed from Fernando de Oliveira to bdubbs@…
Status: assignednew

I'm going to take this ticket and investigate.

in reply to:  11 comment:13 by Armin K, 10 years ago

Replying to fo:

You still don't understand what you wrote, it is now completely different: lsusb did it until version 007.

Did what? Are you implying it doesn't "do it" now (whatever you have been thinking)? lsusb (without .py suffix) from 008 works just as fine to me as did one from version 007.

Now lsusb.py is the only option doing it, and lsusb is going to be unsused by regular distro users, when they discover what they want.

comment:14 by Igor Živković, 10 years ago

Well, lsusb doesn't work without udev as of this release but it shouldn't matter for LFS. It's just a shame they introduced this hard dependency and completely ripped out support for usb.ids.

comment:15 by Armin K, 10 years ago

Indeed. But, given that both udev and lsusb (at least from usbutils from kernel.org) are Linux specific, it doesn't matter to most of the people using Linux, including main LFS given that udev is installed by default.

comment:16 by Igor Živković, 10 years ago

Yeah but some people using Linux prefer mdev or smdev over udev so it matters to them.

in reply to:  10 ; comment:17 by bdubbs@…, 10 years ago

Replying to Krejzi:

I have yet to see someone actually using lsusb.py. Every support request or guide I have stumbled upon until today was using plain lsusb. Untill today I didn't know that lsusb.py even existed.

I did an strace on lsusb. It is looking for /etc/udev/hwdb.bin even though eudev does not have that. eudev has ascii files in /etc/udev/hwdb.d/. The lsusb binary doesn't use the usb.ids file at all. Right now I'm inclined to do:

mv /usr/bin/lsusb{,bin}
ln -sv lsusb.py /usr/bin/lsusb

At least the python version uses the usb.ids file. I'll also note that the python version gives more information than the binary version. The -c (color) option is nice too. That does not seem to be in the binary version.

Also looking at the old update-usbids.sh script, I think we should just use that. It boils down to a simple wget of http://www.linux-usb.org/usb.ids. It appears that it is being kept up to date.

comment:18 by bdubbs@…, 10 years ago

Upon investigation, I think we need to update LFS. The last part of eudev needs the command "udevadm hwdb --update" to create /etc/udev/hwdb.bin

After that, the binary lsusb gives the text desired. Still no color though.

Although updating the usb database is probably not something we would want to do a lot, I don't know how to do that for udev. Doing a wget of usb.ids for lsusb.py is pretty simple though.

in reply to:  17 comment:19 by Fernando de Oliveira, 10 years ago

Replying to bdubbs@…:

mv /usr/bin/lsusb{,bin}
ln -sv lsusb.py /usr/bin/lsusb

I thought about that, but had not capacity of doing it seriously, to purpose. Also, man lsusb would be different.

At least the python version uses the usb.ids file. I'll also note that the python version gives more information than the binary version. The -c (color) option is nice too. That does not seem to be in the binary version.

Yes, that facilitates reading.

Also looking at the old update-usbids.sh script, I think we should just use that. It boils down to a simple wget of http://www.linux-usb.org/usb.ids. It appears that it is being kept up to date.

This would be good, also.

in reply to:  18 comment:20 by Fernando de Oliveira, 10 years ago

Replying to bdubbs@…:

udevadm hwdb --update" to create /etc/udev/hwdb.bin

After that, the binary lsusb gives the text desired. Still no color though.

Although updating the usb database is probably not something we would want to do a lot, I don't know how to do that for udev. Doing a wget of usb.ids for lsusb.py is pretty simple though.

Just did it "udevadm hwdb --update". Solved the problem for me.

I would drop the hwids package, if it is possible to include the script in lsusb, together with the instruction to update hwdb.

Now, the text for lsusb is more traditional than the one for lsusb.py, although I prefer the latter and wil use the former just if any doubt appears.

comment:21 by Fernando de Oliveira, 10 years ago

Still, lsusb.py is nicer and has no systemd contamination.

comment:22 by Armin K, 10 years ago

Ah, so the reason is rather political than techical, as always. Still, it has no systemd contamination. It can use eudev just fine.

comment:23 by Igor Živković, 10 years ago

"It's been over a year since the 007 release, and a bunch of small bugfixes have piled up, along with a much larger change of now using the hwdb instead of the old usb.ids file (a patch which almost all distros using systemd have been shipping for a while), so it's time for a new release." -- Greg KH

All I see here is resistance in establishing any sort of compatibility even though one can technically exist.

comment:24 by Fernando de Oliveira, 10 years ago

Yes, Igor. And notice that after analyzing the comments, systemd users seem to have good output, whereas sysV need multiple extra steps fixing it to work as before. Thanks Bruce for finding that.

Bruce, including the script update-usbids.sh in the page, the sed could fix to point back to ls /usr/share/misc/.

And Igor, did lsusb worked properly when you issued udevadm hwdb --update?

comment:25 by Armin K, 10 years ago

systemd does that during the make install stage. Eudev folks didn't merge it for some reason.

http://cgit.freedesktop.org/systemd/systemd/tree/Makefile.am#n3475

Guess it belongs to the LFS Eudev instructions. A note on usbutils page would be needed for current LFS stable + BLFS svn combination.

comment:26 by Armin K, 10 years ago

Still, this package is not needed. Even if usb.ids are desired for lsusb.py, you can link directly to them as an (Optional) Additional Download and install them from usbutils install instructions.

comment:27 by bdubbs@…, 10 years ago

Don't mix up udev and systemd. The lsusb binary now has a udev dependency, but that's available via eudev or systemd.

in reply to:  24 comment:28 by Igor Živković, 10 years ago

Replying to fo:

And Igor, did lsusb worked properly when you issued udevadm hwdb --update?

I don't use udev. I switched to mdev. I guess I'll finally have to find some time to hack on support for usb.ids in busybox lsusb.

in reply to:  26 comment:29 by Fernando de Oliveira, 10 years ago

Replying to Krejzi:

Still, this package is not needed.

we are not discussing that anymore. It is going to be removed from the book.

Even if usb.ids are desired for lsusb.py

Of course it us desired.

I think we have also reached agreement that the old script will be included. Not optional.

comment:30 by bdubbs@…, 10 years ago

Resolution: wontfix
Status: newclosed

Removed the temporary page at revision 14722.

We can use a simple wget to get usb.ids and I put that in the usbutils page.

Note: See TracTickets for help on using tickets.