summary refs log tree commit diff
path: root/gnu/packages/patches/eudev-rules-directory.patch
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-09-13 10:47:58 +0200
committerLudovic Courtès <ludo@gnu.org>2014-09-13 10:47:58 +0200
commitc19ce3a711fea24c173d615a4a7b162dbc86ce68 (patch)
tree7f3c511f3aaf6355056840f9f04f1a1f059f6559 /gnu/packages/patches/eudev-rules-directory.patch
parentdc2d59afa946eb7540ca6fb6233026780f99104e (diff)
downloadguix-c19ce3a711fea24c173d615a4a7b162dbc86ce68.tar.gz
gnu: eudev: Honor $EUDEV_RULES_DIRECTORY.
* gnu/packages/patches/eudev-rules-directory.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/linux.scm (eudev): Use it.
Diffstat (limited to 'gnu/packages/patches/eudev-rules-directory.patch')
-rw-r--r--gnu/packages/patches/eudev-rules-directory.patch36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch
new file mode 100644
index 0000000000..9173e22f76
--- /dev/null
+++ b/gnu/packages/patches/eudev-rules-directory.patch
@@ -0,0 +1,36 @@
+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.
+
+--- eudev-1.9/src/udev/udev-rules.c	2014-09-13 10:21:59.615980259 +0200
++++ eudev-1.9/src/udev/udev-rules.c	2014-09-13 10:24:13.839976335 +0200
+@@ -46,15 +46,11 @@
+         };
+ };
+ 
+-static const char* const rules_dirs[] = {
++static const char* rules_dirs[] = {
+         UDEV_CONF_DIR "/rules.d",
+         UDEV_RULES_DIR,
+-        "/run/udev/rules.d",
+         UDEV_LIBEXEC_DIR "/rules.d",
+-#ifdef HAVE_SPLIT_USR
+-        "/lib/udev/rules.d",
+-        "/usr/lib/udev/rules.d",
+-#endif
++	NULL,			  /* placeholder for $EUDEV_RULES_DIRECTORY */
+         NULL};
+ 
+ struct udev_rules {
+@@ -1637,6 +1633,9 @@
+ 
+         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("failed to enumerate rules files: %s", strerror(-r));