aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/eudev-rules-directory.patch
blob: c4b1cfae39ffaac1e172df342a00d0bf5bb9a657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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");