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 Marchiquoted
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