This is more of a packaging question I guess, but I thought someone here might know best too… I was having a face2face discussion with Maitland at the recent GNU Radio Conference, about this, and I don’t think we came to a conclusion. When making a package for USB devices, that need udev rules, where should the udev rule go? The specific example is, for IIO devices that have the library, utils, and a -dev package. IIO devices are oscilloscopes, Software Defined Radios, Sensors, etc – (it’s a kernel subsystem). We don't want to keep a large list of USB PID/VIDs, so in our udev rule, so, we check iio_info, and set any found IIO device to 666.
https://github.com/analogdevicesinc/libiio/blob/master/libiio.rules.cmakein This assumes that iio_info is accessible/runnable for the root user. Today, iio_info is included in the libiio-utils package: https://packages.debian.org/bullseye/amd64/libiio-utils/filelist and the library libiio doesn’t have it (iio_utils or the udev rule) https://packages.debian.org/bullseye/amd64/libiio0/filelist which that means when someone installs the base library (libiio), they can’t actually use any USB devices (as a non-root user), since the udev rule isn’t installed, and the udev rule is dependent on the libiio-utils package. It’s not in libiio-dev either, but that makes sense, since non-root users want to use and run applications too. https://packages.debian.org/bullseye/arm64/libiio-dev/filelist Thanks for the pointers. -Robin |