mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-29 07:42:23 -05:00
cde1becfab
Eudev now has a hardware database /etc/udev/hwdb.bin made up of descriptions installed in the /lib/udev/hwdb.d directory of each package, and more generally, UDEV_HWDB_PATH. This database index is compiled with udevadm hwdb --update. The udev-service-type collects the files and compiles the index. Previously, the hardware description files provided by eudev would be compiled into $prefix/etc/udev/hwdb.bin in the eudev output. * gnu/packages/linux.scm (eudev): Update to 3.2.14. [modules]: Import (guix build utils). [#:phases] <allow-eudev-hwdb>: New phase. <install-in-lib>: New phase. <build-hwdb>: Remove phase. [#:configure-flags]: Set sysconfdir to avoid a prefix. [native-search-paths]: Add UDEV_HWDB_PATH. * gnu/packages/patches/eudev-rules-directory.patch: Rebase it.
37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
Add $EUDEV_RULES_DIRECTORY to the list of rules directories.
|
|
|
|
The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed
|
|
the search path to be customized, but eudev no longer has this, hence
|
|
this hack.
|
|
|
|
--- a/src/udev/udev-rules.c
|
|
+++ b/src/udev/udev-rules.c
|
|
@@ -48,16 +48,11 @@ struct uid_gid {
|
|
};
|
|
};
|
|
|
|
-static const char* const rules_dirs[] = {
|
|
+static const char* rules_dirs[] = {
|
|
UDEV_CONF_DIR "/rules.d",
|
|
UDEV_RULES_DIR,
|
|
- UDEV_ROOT_RUN "/udev/rules.d",
|
|
UDEV_LIBEXEC_DIR "/rules.d",
|
|
-#ifdef HAVE_SPLIT_USR
|
|
- "/lib/udev/rules.d",
|
|
- "/usr/lib/udev/rules.d",
|
|
-#endif
|
|
- "/usr/local/lib/udev/rules.d",
|
|
+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */
|
|
NULL};
|
|
|
|
struct udev_rules {
|
|
@@ -1718,6 +1713,9 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) {
|
|
|
|
udev_rules_check_timestamp(rules);
|
|
|
|
+ /* Allow the user to specify an additional rules directory. */
|
|
+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
|
|
+
|
|
r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs);
|
|
if (r < 0) {
|
|
log_error_errno(r, "failed to enumerate rules files: %m");
|