It is not very convenient that libudev can only use /etc/udev/hwdb.bin or /lib/udev/hwdb.bin. For Guix, we would like that the hwdb.bin file would be compiled for every used combination of hwdb-providing packages, and then let different users choose the file to use at run-time. The minimum that would work would be to add a single (absolute) file name under UDEV_HWDB_BIN, so that libudev would try that file first (and then, fall back to /etc and /lib). This is NOT a path variable. Libudev cannot use multiple hwdb.bin files anyway, so there is no need for a path.
The list of files to try for hwdb.bin is now dynamic, and so we should account for malloc failures. However, udev_hwdb_validate is not supposed to be able to fail. So, I think it should be OK to store the list of files to try in the struct udev_hwdb instance.
Dear eudev developers,
It is not very convenient that libudev can only use /etc/udev/hwdb.bin or/lib/udev/hwdb.bin. For Guix, we would like that the hwdb.bin file would be compiled for every used combination of hwdb-providing packages, and then let different users choose the file to use at run-time. The minimum that would work would be to add a single (absolute) file name under UDEV_HWDB_BIN, so that libudev would try that file first (and then, fall back to /etc and /lib). This is NOT a path variable. Libudev cannot use multiple hwdb.bin files anyway, so there is no need for a path.
The list of files to try for hwdb.bin is now dynamic, and so we should account for malloc failures. However,
udev_hwdb_validate
is not supposed to be able to fail. So, I think it should be OK to store the list of files to try in the struct udev_hwdb instance.What do you think?
Best regards,
Vivien