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 <msuchanek@xxxxxxx> wrote: > > > > 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 > > > > > Cc: Marcus Rückert <mrueckert@xxxxxxxx> > > Cc: Takashi Iwai <tiwai@xxxxxxxx> > > Cc: Dominique Leuenberger <dimstar@xxxxxxxxxxxx> > > Signed-off-by: Michal Suchanek <msuchanek@xxxxxxx> > > --- > > 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 > >