diff options
Diffstat (limited to 'src/udev/udev-rules.c')
-rw-r--r-- | src/udev/udev-rules.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 0611c1d6fa..55d9ba9a8a 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -1600,11 +1600,28 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) if (!rules->strbuf) return udev_rules_unref(rules); - rules->dirs = strv_new(UDEV_RULES_DIR, + /* Note - need a better way to manage these paths: + * ie, should have a list of paths we always support, and + * do not include the #define vars if they are duplicates + * + * original - UDEV_RULES_DIR should be /etc/udev/rules.d + * ..but we have it set to UDEV_LIBEXEC_DIR "/rules.d" so that + * ..the default rules are installed there instead of in /etc + * + * original2 - UDEV_LIBEXEC_DIR used to be forced to /usr/lib/udev + * ..by default, we have it as /lib/udev (or whatever rootlibdir is) + * ..therefore we did not include /usr/lib/udev/rules.d. + * + * Reworked code; there are duplicate paths here but at least + * everyting is listed. + */ + rules->dirs = strv_new(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); if (!rules->dirs) { |