depmod: implement external directories support
authorYauheni Kaliuta <yauheni.kaliuta@redhat.com>
Tue, 9 May 2017 19:09:23 +0000 (22:09 +0300)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 2 Jun 2017 03:30:03 +0000 (20:30 -0700)
commit7da6884e7357ac05772e90f6d7e63b1948103fc4
treef16f8623b808f58eed9f96887b749274606baecb
parente0ff310d8758254591aedf1e9be62e276d58dfdc
depmod: implement external directories support

The idea is to add a configuration keyword, external, which
will list directories for scanning for particular kernel version
mask:

external 4.10 /the/modules/dir /second/modules/dir

And extend "search" keyword to set it's priority with pseudo dir
"external" (as it's done for built-in):

search subdir external subdir2 built-in subdir3

(actually, the version is the same as for override keyword: * or
posix regexp, so example above is a bit incorrect).

All other logic left the same: if there are duplicates, only one
is under consideration and it is unloadable if it is bad.

The resulting modules.dep will contain entries a-la:

/the/modules/dir/module1.ko:
kernel/module2.ko: /the/modules/dir/module1.ko

(here /lib/modules/$(uname -r)/kernel/module2.ko depends of
symbols, provided by /the/modules/dir/module1.ko and external has
higher priority).

modprobe and modinfo understand it out of box.

This is a pretty simple extention of existing logic, since now
depmod already is able to:

a) scan modules with full path from command line without -a
switch;
b) detects broken symbol dependencies and broken modversions,
what assumes, that modules are already are not built for the
existing kernel.

Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
tools/depmod.c