Skip to content

Let libudev find hwdb.bin under UDEV_HWDB_BIN#264

Merged
bbonev merged 2 commits intomasterfrom
unknown repository
Sep 30, 2023
Merged

Let libudev find hwdb.bin under UDEV_HWDB_BIN#264
bbonev merged 2 commits intomasterfrom
unknown repository

Conversation

@ghost
Copy link

@ghost ghost commented Sep 30, 2023

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

Copy link
Member

@bbonev bbonev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bbonev
Copy link
Member

bbonev commented Sep 30, 2023

Please add patch(es) to the respective man pages before we can merge

vivien35af and others added 2 commits September 30, 2023 19:36
* src/libudev/libudev-hwdb.c (get_hwdb_bin_paths): New function,
replacing hwdb_bin_paths.
(struct udev_hwdb): New bin_paths field.
(udev_hwdb_new): Initialize it with get_hwdb_bin_paths.
(udev_hwdb_validate): Use the bin_paths field to find hwdb.bin.
(udev_hwdb_unref): Free the bin_paths field.
* src/libudev/libudev.h: Warn about UDEV_HWDB_BIN.
* man/udev.xml: Mention run-time UDEV_HWDB_BIN.
* man/udev.7: Re-generate.
@bbonev bbonev merged commit a3ee57f into eudev-project:master Sep 30, 2023
@bbonev bbonev mentioned this pull request Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants