mirror of
https://github.com/AuxXxilium/kmod.git
synced 2025-02-20 08:26:55 +07:00
libkmod, depmod: Load modprobe.d, depmod.d from ${prefix}/lib.
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. On some distributions /usr/lib and /lib are the same directory because of a compatibility symlink, and it is possible to craft configuration files with sideeffects that would behave differently when loaded twice. However, the override semantic ensures that one 'overrides' the other, and only one configuration file of the same name is loaded from any of the search directories. Signed-off-by: Michal Suchanek <msuchanek@suse.de> Link: https://lore.kernel.org/r/a290343ce32e2a3c25b134e4f27c13b26e06c9e0.1689681454.git.msuchanek@suse.de Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
This commit is contained in:
parent
4e7effbdc0
commit
8463809f8a
@ -19,6 +19,7 @@ AM_CPPFLAGS = \
|
||||
-include $(top_builddir)/config.h \
|
||||
-I$(top_srcdir) \
|
||||
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DDISTCONFDIR=\""$(distconfdir)"\" \
|
||||
${zlib_CFLAGS}
|
||||
|
||||
AM_CFLAGS = $(OUR_CFLAGS)
|
||||
|
@ -79,6 +79,10 @@ AC_COMPILE_IFELSE(
|
||||
# --with-
|
||||
#####################################################################
|
||||
|
||||
AC_ARG_WITH([distconfdir], AS_HELP_STRING([--with-distconfdir=DIR], [directory to search for distribution configuration files]),
|
||||
[], [with_distconfdir='${prefix}/lib'])
|
||||
AC_SUBST([distconfdir], [$with_distconfdir])
|
||||
|
||||
AC_ARG_WITH([rootlibdir],
|
||||
AS_HELP_STRING([--with-rootlibdir=DIR], [rootfs directory to install shared libraries]),
|
||||
[], [with_rootlibdir=$libdir])
|
||||
@ -313,6 +317,7 @@ AC_MSG_RESULT([
|
||||
|
||||
prefix: ${prefix}
|
||||
sysconfdir: ${sysconfdir}
|
||||
distconfdir: ${distconfdir}
|
||||
libdir: ${libdir}
|
||||
rootlibdir: ${rootlibdir}
|
||||
includedir: ${includedir}
|
||||
|
@ -65,6 +65,7 @@ static const char *const default_config_paths[] = {
|
||||
SYSCONFDIR "/modprobe.d",
|
||||
"/run/modprobe.d",
|
||||
"/usr/local/lib/modprobe.d",
|
||||
DISTCONFDIR "/modprobe.d",
|
||||
"/lib/modprobe.d",
|
||||
NULL
|
||||
};
|
||||
@ -272,9 +273,9 @@ static enum kmod_file_compression_type get_kernel_compression(struct kmod_ctx *c
|
||||
* to load from user-defined configuration parameters such as
|
||||
* alias, blacklists, commands (install, remove). If NULL
|
||||
* defaults to /etc/modprobe.d, /run/modprobe.d,
|
||||
* /usr/local/lib/modprobe.d and /lib/modprobe.d. Give an empty
|
||||
* vector if configuration should not be read. This array must
|
||||
* be null terminated.
|
||||
* /usr/local/lib/modprobe.d, DISTCONFDIR/modprobe.d, and
|
||||
* /lib/modprobe.d. Give an empty vector if configuration should
|
||||
* not be read. This array must be null terminated.
|
||||
*
|
||||
* Create kmod library context. This reads the kmod configuration
|
||||
* and fills in the default values.
|
||||
|
@ -17,9 +17,14 @@ EXTRA_DIST = $(MAN5:%.5=%.xml) $(MAN8:%.8=%.xml)
|
||||
CLEANFILES = $(dist_man_MANS)
|
||||
|
||||
%.5 %.8: %.xml
|
||||
$(AM_V_XSLT)$(XSLT) \
|
||||
$(AM_V_XSLT)if [ '$(distconfdir)' != '/lib' ] ; then \
|
||||
sed -e 's|@DISTCONFDIR@|$(distconfdir)|g' $< ; \
|
||||
else \
|
||||
sed -e '/@DISTCONFDIR@/d' $< ; \
|
||||
fi | \
|
||||
$(XSLT) \
|
||||
-o $@ \
|
||||
--nonet \
|
||||
--stringparam man.output.quietly 1 \
|
||||
--param funcsynopsis.style "'ansi'" \
|
||||
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
|
||||
http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl -
|
||||
|
@ -40,6 +40,7 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/lib/depmod.d/*.conf</filename></para>
|
||||
<para><filename>@DISTCONFDIR@/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/usr/local/lib/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/run/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/etc/depmod.d/*.conf</filename></para>
|
||||
|
@ -41,6 +41,7 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/lib/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>@DISTCONFDIR@/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/usr/local/lib/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/run/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/etc/modprobe.d/*.conf</filename></para>
|
||||
|
@ -54,6 +54,7 @@ static const char *const default_cfg_paths[] = {
|
||||
SYSCONFDIR "/depmod.d",
|
||||
"/run/depmod.d",
|
||||
"/usr/local/lib/depmod.d",
|
||||
DISTCONFDIR "/depmod.d",
|
||||
"/lib/depmod.d",
|
||||
NULL
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user