~registry/kmod/master

« back to all changes in this revision

Viewing changes to libkmod/libkmod.c

  • Committer: Lucas De Marchi
  • Author(s): Michal Suchanek
  • Date: 2023-10-17 17:27:59 UTC
  • Revision ID: git-v1:8463809f8a29b254b2cab2ce755641bc690f07c9
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>

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
        SYSCONFDIR "/modprobe.d",
66
66
        "/run/modprobe.d",
67
67
        "/usr/local/lib/modprobe.d",
 
68
        DISTCONFDIR "/modprobe.d",
68
69
        "/lib/modprobe.d",
69
70
        NULL
70
71
};
272
273
 *                to load from user-defined configuration parameters such as
273
274
 *                alias, blacklists, commands (install, remove). If NULL
274
275
 *                defaults to /etc/modprobe.d, /run/modprobe.d,
275
 
 *                /usr/local/lib/modprobe.d and /lib/modprobe.d. Give an empty
276
 
 *                vector if configuration should not be read. This array must
277
 
 *                be null terminated.
 
276
 *                /usr/local/lib/modprobe.d, DISTCONFDIR/modprobe.d, and
 
277
 *                /lib/modprobe.d. Give an empty vector if configuration should
 
278
 *                not be read. This array must be null terminated.
278
279
 *
279
280
 * Create kmod library context. This reads the kmod configuration
280
281
 * and fills in the default values.