Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let libudev find hwdb.bin under UDEV_HWDB_BIN #264

Merged
merged 2 commits into from Sep 30, 2023
Merged

Let libudev find hwdb.bin under UDEV_HWDB_BIN #264

merged 2 commits into from Sep 30, 2023

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

Vivien Kraus 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
2 checks passed
@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.

None yet

1 participant