Thread (6 messages) 6 messages, 3 authors, 2021-05-30

Re: [PATCH] modprobe.d: load from /usr/lib.

flat view

From: Michal Suchánek <hidden>
Date: 2021-05-30 09:39:35

On Tue, Jan 12, 2021 at 12:56:05PM -0800, Lucas De Marchi wrote:
On Tue, Jan 12, 2021 at 8:06 AM Michal Suchanek [off-list ref] wrote:
quoted
There is an ongoing effort to limit use of files outside of /usr (or
$prefix on general). Currently all modprobe.d paths are hardcoded to
outside of $prefix. Teach kmod to load modprobe.d from $prefix/lib.
/lib came from module-init-tools and we kept it for compatibility. It
became a non-issue when distros
decided to just merge them and do a symlink /lib -> /usr/lib following
https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/

what distros didn't do that?

I also fear the solution you want here is not so simple since now the
configs will be added twice
if there is the symlink.  And if we just drop /lib and start using
/usr/lib we break compatibility.
Ins't there already a mechanism in place that loads only one file with
the same name (so that files in /etc can override files in /lib)?

Then even if the same directory is seached twice because of symlinks it
has no effect, right?

Also there is depmod.d which is documented as /lib but is actually
searched in /usr/lib.

Thanks

Michal
Lucas De Marchi
quoted
Cc: Marcus Rückert <redacted>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Dominique Leuenberger <redacted>
Signed-off-by: Michal Suchanek <redacted>
---
 Makefile.am        | 1 +
 libkmod/libkmod.c  | 1 +
 man/modprobe.d.xml | 1 +
 3 files changed, 3 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index b29e943a4d29..702a665f0334 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,6 +19,7 @@ AM_CPPFLAGS = \
        -include $(top_builddir)/config.h \
        -I$(top_srcdir) \
        -DSYSCONFDIR=\""$(sysconfdir)"\" \
+       -DPREFIX=\""$(prefix)"\" \
        ${zlib_CFLAGS}

 AM_CFLAGS = $(OUR_CFLAGS)
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
index 43423d63a889..9399c6c902f8 100644
--- a/libkmod/libkmod.c
+++ b/libkmod/libkmod.c
@@ -65,6 +65,7 @@ static const char *default_config_paths[] = {
        SYSCONFDIR "/modprobe.d",
        "/run/modprobe.d",
        "/lib/modprobe.d",
+       PREFIX "/lib/modprobe.d",
        NULL
 };
diff --git a/man/modprobe.d.xml b/man/modprobe.d.xml
index 211af8488abb..ae5a83986a52 100644
--- a/man/modprobe.d.xml
+++ b/man/modprobe.d.xml
@@ -40,6 +40,7 @@
   </refnamediv>

   <refsynopsisdiv>
+    <para><filename>/usr/lib/modprobe.d/*.conf</filename></para>
     <para><filename>/lib/modprobe.d/*.conf</filename></para>
     <para><filename>/etc/modprobe.d/*.conf</filename></para>
     <para><filename>/run/modprobe.d/*.conf</filename></para>
--
2.26.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help