reinstate r218, + edit usr-lib-modules.patch
OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=223
This commit is contained in:
parent
1f28798308
commit
6dd634e97e
288
depmod-Introduce-outdir-option.patch
Normal file
288
depmod-Introduce-outdir-option.patch
Normal file
@ -0,0 +1,288 @@
|
|||||||
|
From 7e145ef8bd7a45fef6ee4cf56d7fab9f21d23e72 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Date: Mon, 6 Feb 2023 13:18:34 +0000
|
||||||
|
Subject: [PATCH 5/9] depmod: Introduce outdir option
|
||||||
|
|
||||||
|
This option is equivalent to basedir, with the small difference being
|
||||||
|
that's where the meta-data files are generated. In other words, this
|
||||||
|
allows us to have read-only input modules and modules.dep, while still
|
||||||
|
being able to generate the meta-data files.
|
||||||
|
|
||||||
|
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
[ Move files to a different dir so input files (produced by kernel build
|
||||||
|
system is separate from the files generated by depmod (output) ]
|
||||||
|
Signed-off-by: Lucas De Marchi <lucas.demarchi@gmail.com>
|
||||||
|
---
|
||||||
|
man/depmod.xml | 20 ++++++++++
|
||||||
|
.../modules-outdir/correct-modules.alias | 37 +++++++++++++++++++
|
||||||
|
.../modules-outdir/correct-modules.dep | 3 ++
|
||||||
|
.../lib/modules/4.4.4/modules.builtin | 0
|
||||||
|
.../lib/modules/4.4.4/modules.order | 7 ++++
|
||||||
|
testsuite/setup-rootfs.sh | 3 ++
|
||||||
|
testsuite/test-depmod.c | 36 ++++++++++++++++++
|
||||||
|
tools/depmod.c | 25 +++++++++++--
|
||||||
|
8 files changed, 128 insertions(+), 3 deletions(-)
|
||||||
|
create mode 100644 testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.alias
|
||||||
|
create mode 100644 testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.dep
|
||||||
|
create mode 100644 testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.builtin
|
||||||
|
create mode 100644 testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.order
|
||||||
|
|
||||||
|
diff --git a/man/depmod.xml b/man/depmod.xml
|
||||||
|
index ea0be27280b2..3b0097184fd7 100644
|
||||||
|
--- a/man/depmod.xml
|
||||||
|
+++ b/man/depmod.xml
|
||||||
|
@@ -45,6 +45,7 @@
|
||||||
|
<cmdsynopsis>
|
||||||
|
<command>depmod</command>
|
||||||
|
<arg><option>-b <replaceable>basedir</replaceable></option></arg>
|
||||||
|
+ <arg><option>-o <replaceable>outdir</replaceable></option></arg>
|
||||||
|
<arg><option>-e</option></arg>
|
||||||
|
<arg><option>-E <replaceable>Module.symvers</replaceable></option></arg>
|
||||||
|
<arg><option>-F <replaceable>System.map</replaceable></option></arg>
|
||||||
|
@@ -151,6 +152,25 @@
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
+ <varlistentry>
|
||||||
|
+ <term>
|
||||||
|
+ <option>-o <replaceable>outdir</replaceable></option>
|
||||||
|
+ </term>
|
||||||
|
+ <term>
|
||||||
|
+ <option>--outdir <replaceable>outdir</replaceable></option>
|
||||||
|
+ </term>
|
||||||
|
+ <listitem>
|
||||||
|
+ <para>
|
||||||
|
+ Set the output directory where depmod will store any generated file.
|
||||||
|
+ <replaceable>outdir</replaceable> serves as a root to that location,
|
||||||
|
+ similar to how <replaceable>basedir</replaceable> is used. Also this
|
||||||
|
+ setting takes precedence and if used together with
|
||||||
|
+ <replaceable>basedir</replaceable> it will result in the input being
|
||||||
|
+ that directory, but the output being the one set by
|
||||||
|
+ <replaceable>outdir</replaceable>.
|
||||||
|
+ </para>
|
||||||
|
+ </listitem>
|
||||||
|
+ </varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<option>-C</option>
|
||||||
|
diff --git a/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.alias b/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.alias
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..56753291c47e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.alias
|
||||||
|
@@ -0,0 +1,37 @@
|
||||||
|
+# Aliases extracted from modules themselves.
|
||||||
|
+alias pci:v0000103Cd00003230sv0000103Csd0000323Dbc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003230sv0000103Csd00003237bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003238sv0000103Csd00003215bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003238sv0000103Csd00003214bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003238sv0000103Csd00003213bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003238sv0000103Csd00003212bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003238sv0000103Csd00003211bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003230sv0000103Csd00003235bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003230sv0000103Csd00003234bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003230sv0000103Csd00003223bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd00003220sv0000103Csd00003225bc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d00000046sv00000E11sd0000409Dbc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d00000046sv00000E11sd0000409Cbc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d00000046sv00000E11sd0000409Bbc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d00000046sv00000E11sd0000409Abc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d00000046sv00000E11sd00004091bc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d0000B178sv00000E11sd00004083bc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d0000B178sv00000E11sd00004082bc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d0000B178sv00000E11sd00004080bc*sc*i* cciss
|
||||||
|
+alias pci:v00000E11d0000B060sv00000E11sd00004070bc*sc*i* cciss
|
||||||
|
+alias pci:v0000103Cd*sv*sd*bc01sc04i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003356bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003355bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003354bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003353bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003352bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003351bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Bsv0000103Csd00003350bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003233bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd0000324Bbc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd0000324Abc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003249bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003247bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003245bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003243bc*sc*i* hpsa
|
||||||
|
+alias pci:v0000103Cd0000323Asv0000103Csd00003241bc*sc*i* hpsa
|
||||||
|
diff --git a/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.dep b/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.dep
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..ec50ac32426a
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/testsuite/rootfs-pristine/test-depmod/modules-outdir/correct-modules.dep
|
||||||
|
@@ -0,0 +1,3 @@
|
||||||
|
+kernel/drivers/block/cciss.ko:
|
||||||
|
+kernel/drivers/scsi/scsi_mod.ko:
|
||||||
|
+kernel/drivers/scsi/hpsa.ko: kernel/drivers/scsi/scsi_mod.ko
|
||||||
|
diff --git a/testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.builtin b/testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.builtin
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..e69de29bb2d1
|
||||||
|
diff --git a/testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.order b/testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.order
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..4b643099f661
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/testsuite/rootfs-pristine/test-depmod/modules-outdir/lib/modules/4.4.4/modules.order
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+#336
|
||||||
|
+kernel/drivers/block/cciss.ko
|
||||||
|
+#2094
|
||||||
|
+kernel/drivers/scsi/scsi_mod.ko
|
||||||
|
+#2137
|
||||||
|
+kernel/drivers/scsi/hpsa.ko
|
||||||
|
+
|
||||||
|
diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh
|
||||||
|
index d9cc627f7224..3e814d22d813 100755
|
||||||
|
--- a/testsuite/setup-rootfs.sh
|
||||||
|
+++ b/testsuite/setup-rootfs.sh
|
||||||
|
@@ -70,6 +70,9 @@ map=(
|
||||||
|
["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
+ ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
+ ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
+ ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko"
|
||||||
|
["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko"
|
||||||
|
["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko"
|
||||||
|
diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c
|
||||||
|
index d7802d7b2e0b..6e3ae562d766 100644
|
||||||
|
--- a/testsuite/test-depmod.c
|
||||||
|
+++ b/testsuite/test-depmod.c
|
||||||
|
@@ -57,6 +57,42 @@ DEFINE_TEST(depmod_modules_order_for_compressed,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
+#define MODULES_OUTDIR_UNAME "4.4.4"
|
||||||
|
+#define MODULES_OUTDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-outdir"
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir/lib/modules/" MODULES_OUTDIR_UNAME
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS "/lib/modules/" MODULES_OUTDIR_UNAME
|
||||||
|
+static noreturn int depmod_modules_outdir(const struct test *t)
|
||||||
|
+{
|
||||||
|
+ const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
+ const char *const args[] = {
|
||||||
|
+ progname,
|
||||||
|
+ "--outdir", MODULES_OUTDIR_ROOTFS "/outdir/",
|
||||||
|
+ NULL,
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ test_spawn_prog(progname, args);
|
||||||
|
+ exit(EXIT_FAILURE);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+DEFINE_TEST(depmod_modules_outdir,
|
||||||
|
+#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
+ .skip = true,
|
||||||
|
+#endif
|
||||||
|
+ .description = "check if depmod honours the outdir option",
|
||||||
|
+ .config = {
|
||||||
|
+ [TC_UNAME_R] = MODULES_OUTDIR_UNAME,
|
||||||
|
+ [TC_ROOTFS] = MODULES_OUTDIR_ROOTFS,
|
||||||
|
+ },
|
||||||
|
+ .output = {
|
||||||
|
+ .files = (const struct keyval[]) {
|
||||||
|
+ { MODULES_OUTDIR_LIB_MODULES_OUTPUT "/modules.dep",
|
||||||
|
+ MODULES_OUTDIR_ROOTFS "/correct-modules.dep" },
|
||||||
|
+ { MODULES_OUTDIR_LIB_MODULES_OUTPUT "/modules.alias",
|
||||||
|
+ MODULES_OUTDIR_ROOTFS "/correct-modules.alias" },
|
||||||
|
+ { }
|
||||||
|
+ },
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
#define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple"
|
||||||
|
static noreturn int depmod_search_order_simple(const struct test *t)
|
||||||
|
{
|
||||||
|
diff --git a/tools/depmod.c b/tools/depmod.c
|
||||||
|
index a9349b20ee9c..2d4cf75fdfee 100644
|
||||||
|
--- a/tools/depmod.c
|
||||||
|
+++ b/tools/depmod.c
|
||||||
|
@@ -59,11 +59,12 @@ static const char *default_cfg_paths[] = {
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
-static const char cmdopts_s[] = "aAb:C:E:F:euqrvnP:wmVh";
|
||||||
|
+static const char cmdopts_s[] = "aAb:o:C:E:F:euqrvnP:wmVh";
|
||||||
|
static const struct option cmdopts[] = {
|
||||||
|
{ "all", no_argument, 0, 'a' },
|
||||||
|
{ "quick", no_argument, 0, 'A' },
|
||||||
|
{ "basedir", required_argument, 0, 'b' },
|
||||||
|
+ { "outdir", required_argument, 0, 'o' },
|
||||||
|
{ "config", required_argument, 0, 'C' },
|
||||||
|
{ "symvers", required_argument, 0, 'E' },
|
||||||
|
{ "filesyms", required_argument, 0, 'F' },
|
||||||
|
@@ -105,6 +106,7 @@ static void help(void)
|
||||||
|
"\n"
|
||||||
|
"The following options are useful for people managing distributions:\n"
|
||||||
|
"\t-b, --basedir=DIR Use an image of a module tree.\n"
|
||||||
|
+ "\t-o, --outdir=DIR Output directory for generated files.\n"
|
||||||
|
"\t-F, --filesyms=FILE Use the file instead of the\n"
|
||||||
|
"\t current kernel symbols.\n"
|
||||||
|
"\t-E, --symvers=FILE Use Module.symvers file to check\n"
|
||||||
|
@@ -468,6 +470,8 @@ struct cfg {
|
||||||
|
const char *kversion;
|
||||||
|
char dirname[PATH_MAX];
|
||||||
|
size_t dirnamelen;
|
||||||
|
+ char outdirname[PATH_MAX];
|
||||||
|
+ size_t outdirnamelen;
|
||||||
|
char sym_prefix;
|
||||||
|
uint8_t check_symvers;
|
||||||
|
uint8_t print_unknown;
|
||||||
|
@@ -2577,7 +2581,7 @@ static int depmod_output(struct depmod *depmod, FILE *out)
|
||||||
|
{ "modules.devname", output_devname },
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
- const char *dname = depmod->cfg->dirname;
|
||||||
|
+ const char *dname = depmod->cfg->outdirname;
|
||||||
|
int dfd, err = 0;
|
||||||
|
struct timeval tv;
|
||||||
|
|
||||||
|
@@ -2586,6 +2590,11 @@ static int depmod_output(struct depmod *depmod, FILE *out)
|
||||||
|
if (out != NULL)
|
||||||
|
dfd = -1;
|
||||||
|
else {
|
||||||
|
+ err = mkdir_p(dname, strlen(dname), 0755);
|
||||||
|
+ if (err < 0) {
|
||||||
|
+ CRIT("could not create directory %s: %m\n", dname);
|
||||||
|
+ return err;
|
||||||
|
+ }
|
||||||
|
dfd = open(dname, O_RDONLY);
|
||||||
|
if (dfd < 0) {
|
||||||
|
err = -errno;
|
||||||
|
@@ -2899,6 +2908,7 @@ static int do_depmod(int argc, char *argv[])
|
||||||
|
FILE *out = NULL;
|
||||||
|
int err = 0, all = 0, maybe_all = 0, n_config_paths = 0;
|
||||||
|
_cleanup_free_ char *root = NULL;
|
||||||
|
+ _cleanup_free_ char *out_root = NULL;
|
||||||
|
_cleanup_free_ const char **config_paths = NULL;
|
||||||
|
const char *system_map = NULL;
|
||||||
|
const char *module_symvers = NULL;
|
||||||
|
@@ -2928,6 +2938,11 @@ static int do_depmod(int argc, char *argv[])
|
||||||
|
free(root);
|
||||||
|
root = path_make_absolute_cwd(optarg);
|
||||||
|
break;
|
||||||
|
+ case 'o':
|
||||||
|
+ if (out_root)
|
||||||
|
+ free(out_root);
|
||||||
|
+ out_root = path_make_absolute_cwd(optarg);
|
||||||
|
+ break;
|
||||||
|
case 'C': {
|
||||||
|
size_t bytes = sizeof(char *) * (n_config_paths + 2);
|
||||||
|
void *tmp = realloc(config_paths, bytes);
|
||||||
|
@@ -3010,7 +3025,11 @@ static int do_depmod(int argc, char *argv[])
|
||||||
|
|
||||||
|
cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX,
|
||||||
|
"%s/lib/modules/%s",
|
||||||
|
- root == NULL ? "" : root, cfg.kversion);
|
||||||
|
+ root ?: "", cfg.kversion);
|
||||||
|
+
|
||||||
|
+ cfg.outdirnamelen = snprintf(cfg.outdirname, PATH_MAX,
|
||||||
|
+ "%s/lib/modules/%s",
|
||||||
|
+ out_root ?: (root ?: ""), cfg.kversion);
|
||||||
|
|
||||||
|
if (optind == argc)
|
||||||
|
all = 1;
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
90
kmod-Add-config-command-to-show-compile-time-configu.patch
Normal file
90
kmod-Add-config-command-to-show-compile-time-configu.patch
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
From be701954b3e730944f949c1c3fc7dc5144e37de0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
Date: Fri, 30 Jun 2023 16:16:24 +0200
|
||||||
|
Subject: [PATCH 3/9] kmod: Add config command to show compile time
|
||||||
|
configuration as JSON
|
||||||
|
|
||||||
|
Show prefix (where configuration files are searched/to be installed)
|
||||||
|
and module compressions supported.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
---
|
||||||
|
man/kmod.xml | 6 ++++++
|
||||||
|
tools/kmod.c | 34 ++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 40 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/man/kmod.xml b/man/kmod.xml
|
||||||
|
index 0706ad58c2cc..f992a500f836 100644
|
||||||
|
--- a/man/kmod.xml
|
||||||
|
+++ b/man/kmod.xml
|
||||||
|
@@ -71,6 +71,12 @@
|
||||||
|
<para>Show the help message.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
+ <varlistentry>
|
||||||
|
+ <term><command>config</command></term>
|
||||||
|
+ <listitem>
|
||||||
|
+ <para>Show compile time options in JSON.</para>
|
||||||
|
+ </listitem>
|
||||||
|
+ </varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><command>list</command></term>
|
||||||
|
<listitem>
|
||||||
|
diff --git a/tools/kmod.c b/tools/kmod.c
|
||||||
|
index 55689c075ab1..28aefb463492 100644
|
||||||
|
--- a/tools/kmod.c
|
||||||
|
+++ b/tools/kmod.c
|
||||||
|
@@ -37,9 +37,11 @@ static const struct option options[] = {
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct kmod_cmd kmod_cmd_help;
|
||||||
|
+static const struct kmod_cmd kmod_cmd_config;
|
||||||
|
|
||||||
|
static const struct kmod_cmd *kmod_cmds[] = {
|
||||||
|
&kmod_cmd_help,
|
||||||
|
+ &kmod_cmd_config,
|
||||||
|
&kmod_cmd_list,
|
||||||
|
&kmod_cmd_static_nodes,
|
||||||
|
|
||||||
|
@@ -95,6 +97,38 @@ static const struct kmod_cmd kmod_cmd_help = {
|
||||||
|
.help = "Show help message",
|
||||||
|
};
|
||||||
|
|
||||||
|
+static const char *compressions[] = {
|
||||||
|
+#ifdef ENABLE_ZSTD
|
||||||
|
+ "zstd",
|
||||||
|
+#endif
|
||||||
|
+#ifdef ENABLE_XZ
|
||||||
|
+ "xz",
|
||||||
|
+#endif
|
||||||
|
+#ifdef ENABLE_ZLIB
|
||||||
|
+ "gz",
|
||||||
|
+#endif
|
||||||
|
+ NULL
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static int kmod_config(int argc, char *argv[])
|
||||||
|
+{
|
||||||
|
+ unsigned i;
|
||||||
|
+ printf("{\"prefix\":\"" PREFIX "\""
|
||||||
|
+ ",\"module_compression\":[");
|
||||||
|
+ for(i = 0; compressions[i]; i++) {
|
||||||
|
+ printf("%s\"%s\"", i ? "," : "", compressions[i]);
|
||||||
|
+ }
|
||||||
|
+ printf("]}\n");
|
||||||
|
+
|
||||||
|
+ return EXIT_SUCCESS;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static const struct kmod_cmd kmod_cmd_config = {
|
||||||
|
+ .name = "config",
|
||||||
|
+ .cmd = kmod_config,
|
||||||
|
+ .help = "Show compile time options in JSON",
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static int handle_kmod_commands(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
const char *cmd;
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -40,9 +40,16 @@ Patch3: 0009-libkmod-Implement-filtering-of-unsupported-modules-o.patch
|
|||||||
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
|
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
|
||||||
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
|
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
|
||||||
Patch6: 0012-modprobe-print-unsupported-status.patch
|
Patch6: 0012-modprobe-print-unsupported-status.patch
|
||||||
Patch7: usr-lib-modprobe.patch
|
Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.patch
|
||||||
Patch8: no-stylesheet-download.patch
|
Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.patch
|
||||||
Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch
|
Patch9: usr-lib-modprobe.patch
|
||||||
|
Patch10: testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
|
||||||
|
Patch11: depmod-Introduce-outdir-option.patch
|
||||||
|
Patch12: testsuite-Handle-different-sysconfdir.patch
|
||||||
|
Patch13: testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch
|
||||||
|
Patch14: kmod-Add-config-command-to-show-compile-time-configu.patch
|
||||||
|
Patch15: usr-lib-modules.patch
|
||||||
|
Patch16: no-stylesheet-download.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: docbook-xsl-stylesheets
|
BuildRequires: docbook-xsl-stylesheets
|
||||||
@ -87,6 +94,9 @@ export LDFLAGS="-Wl,-z,relro,-z,now"
|
|||||||
%endif
|
%endif
|
||||||
--includedir="%_includedir/kmod" \
|
--includedir="%_includedir/kmod" \
|
||||||
--with-rootlibdir="%_libdir" \
|
--with-rootlibdir="%_libdir" \
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
--with-module-prefix="%_prefix" \
|
||||||
|
%endif
|
||||||
--bindir="%_bindir"
|
--bindir="%_bindir"
|
||||||
%make_build KDIR="%kdir"
|
%make_build KDIR="%kdir"
|
||||||
|
|
||||||
|
17
kmod.changes
17
kmod.changes
@ -1,18 +1,9 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
Sun Jul 16 15:55:38 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
|
||||||
|
|
||||||
- Reset package to the 2023-05-04 state [boo#1211796]. The
|
- Edit usr-lib-modules.patch to /lib/modules provide fallback
|
||||||
2023-05-26 update broke `make modules_install` which fails
|
behavior for successfully running `make modules_install` in
|
||||||
with "depmod: ERROR: could not open directory
|
pristine tarballs.
|
||||||
$someprefix/usr/lib/modules/99.98.6.4.1-1-default: (ENOENT)";
|
|
||||||
deletes
|
|
||||||
depmod-Introduce-outdir-option.patch
|
|
||||||
kmod-Add-config-command-to-show-compile-time-configu.patch
|
|
||||||
man-depmod.d-Fix-incorrect-usr-lib-search-path.patch
|
|
||||||
testsuite-Handle-different-sysconfdir.patch
|
|
||||||
testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
|
|
||||||
testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch
|
|
||||||
usr-lib-modules.patch
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jun 30 16:39:17 UTC 2023 - Michal Suchanek <msuchanek@suse.de>
|
Fri Jun 30 16:39:17 UTC 2023 - Michal Suchanek <msuchanek@suse.de>
|
||||||
|
16
kmod.spec
16
kmod.spec
@ -40,9 +40,16 @@ Patch3: 0009-libkmod-Implement-filtering-of-unsupported-modules-o.patch
|
|||||||
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
|
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
|
||||||
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
|
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
|
||||||
Patch6: 0012-modprobe-print-unsupported-status.patch
|
Patch6: 0012-modprobe-print-unsupported-status.patch
|
||||||
Patch7: usr-lib-modprobe.patch
|
Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.patch
|
||||||
Patch8: no-stylesheet-download.patch
|
Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.patch
|
||||||
Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch
|
Patch9: usr-lib-modprobe.patch
|
||||||
|
Patch10: testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
|
||||||
|
Patch11: depmod-Introduce-outdir-option.patch
|
||||||
|
Patch12: testsuite-Handle-different-sysconfdir.patch
|
||||||
|
Patch13: testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch
|
||||||
|
Patch14: kmod-Add-config-command-to-show-compile-time-configu.patch
|
||||||
|
Patch15: usr-lib-modules.patch
|
||||||
|
Patch16: no-stylesheet-download.patch
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: docbook-xsl-stylesheets
|
BuildRequires: docbook-xsl-stylesheets
|
||||||
@ -129,6 +136,9 @@ export LDFLAGS="-Wl,-z,relro,-z,now"
|
|||||||
%endif
|
%endif
|
||||||
--includedir="%_includedir/kmod" \
|
--includedir="%_includedir/kmod" \
|
||||||
--with-rootlibdir="%_libdir" \
|
--with-rootlibdir="%_libdir" \
|
||||||
|
%if 0%{?suse_version} > 1500
|
||||||
|
--with-module-prefix="%_prefix" \
|
||||||
|
%endif
|
||||||
--bindir="%_bindir"
|
--bindir="%_bindir"
|
||||||
%make_build
|
%make_build
|
||||||
|
|
||||||
|
29
man-depmod.d-Fix-incorrect-usr-lib-search-path.patch
Normal file
29
man-depmod.d-Fix-incorrect-usr-lib-search-path.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From a792ef9a42b9bd8cc76260b4aa61a681f6998364 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
Date: Fri, 30 Jun 2023 10:56:31 +0200
|
||||||
|
Subject: [PATCH 1/9] man/depmod.d: Fix incorrect /usr/lib search path
|
||||||
|
|
||||||
|
depmod searches /lib/depmod.d but the man page says /usr/lib/depmod.d is
|
||||||
|
reached. Aling the documentation with the code.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
---
|
||||||
|
man/depmod.d.xml | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/depmod.d.xml b/man/depmod.d.xml
|
||||||
|
index 76548e92a312..8d3d821cddc8 100644
|
||||||
|
--- a/man/depmod.d.xml
|
||||||
|
+++ b/man/depmod.d.xml
|
||||||
|
@@ -39,7 +39,7 @@
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
- <para><filename>/usr/lib/depmod.d/*.conf</filename></para>
|
||||||
|
+ <para><filename>/lib/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>
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -1,8 +1,24 @@
|
|||||||
--- kmod-27/man/Makefile.am~ 2018-01-31 18:10:59.569903733 +0100
|
From cd775d005f7d36395ef554d128c849fac5430f37 Mon Sep 17 00:00:00 2001
|
||||||
+++ kmod-27/man/Makefile.am 2021-01-12 21:48:28.488571775 +0100
|
From: Michal Suchanek <msuchanek@suse.de>
|
||||||
@@ -22,4 +22,4 @@
|
Date: Mon, 6 Sep 2021 14:52:35 +0200
|
||||||
|
Subject: [PATCH 9/9] Do not download the docbook stylesheet during build, use
|
||||||
|
local copy instead.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
---
|
||||||
|
man/Makefile.am | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/man/Makefile.am b/man/Makefile.am
|
||||||
|
index 1a9a92f9c224..6b89400e9d39 100644
|
||||||
|
--- a/man/Makefile.am
|
||||||
|
+++ b/man/Makefile.am
|
||||||
|
@@ -28,4 +28,4 @@ CLEANFILES = $(dist_man_MANS)
|
||||||
--nonet \
|
--nonet \
|
||||||
--stringparam man.output.quietly 1 \
|
--stringparam man.output.quietly 1 \
|
||||||
--param funcsynopsis.style "'ansi'" \
|
--param funcsynopsis.style "'ansi'" \
|
||||||
- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
|
- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl -
|
||||||
+ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl $<
|
+ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl -
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
||||||
|
178
testsuite-Handle-different-sysconfdir.patch
Normal file
178
testsuite-Handle-different-sysconfdir.patch
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
From 94fe372a5f6163f5bc8b620e6068ea2f1d99f858 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
Date: Thu, 9 Feb 2023 11:19:46 -0800
|
||||||
|
Subject: [PATCH 6/9] testsuite: Handle different sysconfdir
|
||||||
|
|
||||||
|
Instead of skipping tests if sysconfdir isn't /etc, just handle it
|
||||||
|
during the rootfs setup logic.
|
||||||
|
|
||||||
|
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
|
---
|
||||||
|
Makefile.am | 6 +-----
|
||||||
|
configure.ac | 3 ---
|
||||||
|
testsuite/setup-rootfs.sh | 8 ++++++++
|
||||||
|
testsuite/test-blacklist.c | 3 ---
|
||||||
|
testsuite/test-depmod.c | 15 ---------------
|
||||||
|
testsuite/test-modprobe.c | 6 ------
|
||||||
|
6 files changed, 9 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index 32f4b80e9870..246d4f5b138f 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -245,7 +245,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh
|
||||||
|
MODULE_PLAYGROUND = testsuite/module-playground
|
||||||
|
ROOTFS = testsuite/rootfs
|
||||||
|
ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine
|
||||||
|
-CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h
|
||||||
|
+CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir)
|
||||||
|
|
||||||
|
build-module-playground:
|
||||||
|
$(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \
|
||||||
|
@@ -330,10 +330,6 @@ TESTSUITE_LDADD = \
|
||||||
|
testsuite/libtestsuite.la libkmod/libkmod-internal.la \
|
||||||
|
shared/libshared.la
|
||||||
|
|
||||||
|
-if KMOD_SYSCONFDIR_NOT_ETC
|
||||||
|
-TESTSUITE_CPPFLAGS += -DKMOD_SYSCONFDIR_NOT_ETC
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
check_LTLIBRARIES += testsuite/libtestsuite.la
|
||||||
|
testsuite_libtestsuite_la_SOURCES = \
|
||||||
|
testsuite/testsuite.c testsuite/testsuite.h
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index 6989e9360da2..a74d3baf0a42 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -224,9 +224,6 @@ GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat])
|
||||||
|
], [
|
||||||
|
AM_CONDITIONAL([ENABLE_GTK_DOC], false)])
|
||||||
|
|
||||||
|
-# Some tests are skipped when sysconfdir != /etc.
|
||||||
|
-AM_CONDITIONAL([KMOD_SYSCONFDIR_NOT_ETC], [test "x$sysconfdir" != "x/etc"])
|
||||||
|
-
|
||||||
|
#####################################################################
|
||||||
|
# Default CFLAGS and LDFLAGS
|
||||||
|
#####################################################################
|
||||||
|
diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh
|
||||||
|
index 3e814d22d813..8b13a40f2cae 100755
|
||||||
|
--- a/testsuite/setup-rootfs.sh
|
||||||
|
+++ b/testsuite/setup-rootfs.sh
|
||||||
|
@@ -6,6 +6,7 @@ ROOTFS_PRISTINE=$1
|
||||||
|
ROOTFS=$2
|
||||||
|
MODULE_PLAYGROUND=$3
|
||||||
|
CONFIG_H=$4
|
||||||
|
+SYSCONFDIR=$5
|
||||||
|
|
||||||
|
# create rootfs from rootfs-pristine
|
||||||
|
|
||||||
|
@@ -15,6 +16,13 @@ create_rootfs() {
|
||||||
|
cp -r "$ROOTFS_PRISTINE" "$ROOTFS"
|
||||||
|
find "$ROOTFS" -type d -exec chmod +w {} \;
|
||||||
|
find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \;
|
||||||
|
+
|
||||||
|
+ if [ "$SYSCONFDIR" != "/etc" ]; then
|
||||||
|
+ find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do
|
||||||
|
+ mkdir -p "$(dirname $e/$SYSCONFDIR)"
|
||||||
|
+ mv $e/{etc,$SYSCONFDIR}
|
||||||
|
+ done
|
||||||
|
+ fi
|
||||||
|
}
|
||||||
|
|
||||||
|
feature_enabled() {
|
||||||
|
diff --git a/testsuite/test-blacklist.c b/testsuite/test-blacklist.c
|
||||||
|
index d03eedb60106..969567ddc817 100644
|
||||||
|
--- a/testsuite/test-blacklist.c
|
||||||
|
+++ b/testsuite/test-blacklist.c
|
||||||
|
@@ -95,9 +95,6 @@ fail_lookup:
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_TEST(blacklist_1,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if modules are correctly blacklisted",
|
||||||
|
.config = {
|
||||||
|
[TC_ROOTFS] = TESTSUITE_ROOTFS "test-blacklist/",
|
||||||
|
diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c
|
||||||
|
index 6e3ae562d766..42878cb4eb22 100644
|
||||||
|
--- a/testsuite/test-depmod.c
|
||||||
|
+++ b/testsuite/test-depmod.c
|
||||||
|
@@ -41,9 +41,6 @@ static noreturn int depmod_modules_order_for_compressed(const struct test *t)
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_TEST(depmod_modules_order_for_compressed,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if depmod let aliases in right order when using compressed modules",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = MODULES_ORDER_UNAME,
|
||||||
|
@@ -75,9 +72,6 @@ static noreturn int depmod_modules_outdir(const struct test *t)
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_TEST(depmod_modules_outdir,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if depmod honours the outdir option",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = MODULES_OUTDIR_UNAME,
|
||||||
|
@@ -158,9 +152,6 @@ static noreturn int depmod_detect_loop(const struct test *t)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
DEFINE_TEST(depmod_detect_loop,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if depmod detects module loops correctly",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = "4.4.4",
|
||||||
|
@@ -184,9 +175,6 @@ static noreturn int depmod_search_order_external_first(const struct test *t)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
DEFINE_TEST(depmod_search_order_external_first,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if depmod honor external keyword with higher priority",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = "4.4.4",
|
||||||
|
@@ -239,9 +227,6 @@ static noreturn int depmod_search_order_override(const struct test *t)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
DEFINE_TEST(depmod_search_order_override,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if depmod honor override keyword",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = "4.4.4",
|
||||||
|
diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c
|
||||||
|
index 0255f1aaccb5..bbdf11443d47 100644
|
||||||
|
--- a/testsuite/test-modprobe.c
|
||||||
|
+++ b/testsuite/test-modprobe.c
|
||||||
|
@@ -83,9 +83,6 @@ static noreturn int modprobe_show_alias_to_none(const struct test *t)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
DEFINE_TEST(modprobe_show_alias_to_none,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if modprobe --show-depends doesn't explode with an alias to nothing",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = "4.4.4",
|
||||||
|
@@ -175,9 +172,6 @@ static noreturn int modprobe_softdep_loop(const struct test *t)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
DEFINE_TEST(modprobe_softdep_loop,
|
||||||
|
-#if defined(KMOD_SYSCONFDIR_NOT_ETC)
|
||||||
|
- .skip = true,
|
||||||
|
-#endif
|
||||||
|
.description = "check if modprobe breaks softdep loop",
|
||||||
|
.config = {
|
||||||
|
[TC_UNAME_R] = "4.4.4",
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
91
testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
Normal file
91
testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
From 00c15bc0710c399749421335c2c9372c9afee080 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
Date: Thu, 9 Feb 2023 11:19:45 -0800
|
||||||
|
Subject: [PATCH 4/9] testsuite: Move setup-rootfs logic from Makefile to
|
||||||
|
script
|
||||||
|
|
||||||
|
It's easier to implement the logic outside of the Makefile, so rename
|
||||||
|
the populate-modules.sh script to setup-rootfs.sh and move the
|
||||||
|
additional logic from the makefile to the script.
|
||||||
|
|
||||||
|
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
|
||||||
|
---
|
||||||
|
Makefile.am | 10 ++--------
|
||||||
|
.../{populate-modules.sh => setup-rootfs.sh} | 19 +++++++++++++++++--
|
||||||
|
2 files changed, 19 insertions(+), 10 deletions(-)
|
||||||
|
rename testsuite/{populate-modules.sh => setup-rootfs.sh} (94%)
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index e7313fa8a33e..32f4b80e9870 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -240,18 +240,12 @@ endif
|
||||||
|
# TESTSUITE
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-EXTRA_DIST += testsuite/populate-modules.sh
|
||||||
|
+EXTRA_DIST += testsuite/setup-rootfs.sh
|
||||||
|
|
||||||
|
MODULE_PLAYGROUND = testsuite/module-playground
|
||||||
|
ROOTFS = testsuite/rootfs
|
||||||
|
ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine
|
||||||
|
-CREATE_ROOTFS = $(AM_V_GEN) ( $(RM) -rf $(ROOTFS) && mkdir -p $(dir $(ROOTFS)) && \
|
||||||
|
- cp -r $(ROOTFS_PRISTINE) $(ROOTFS) && \
|
||||||
|
- find $(ROOTFS) -type d -exec chmod +w {} \; && \
|
||||||
|
- find $(ROOTFS) -type f -name .gitignore -exec rm -f {} \; && \
|
||||||
|
- $(top_srcdir)/testsuite/populate-modules.sh \
|
||||||
|
- $(MODULE_PLAYGROUND) $(ROOTFS) $(top_builddir)/config.h ) && \
|
||||||
|
- touch testsuite/stamp-rootfs
|
||||||
|
+CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h
|
||||||
|
|
||||||
|
build-module-playground:
|
||||||
|
$(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \
|
||||||
|
diff --git a/testsuite/populate-modules.sh b/testsuite/setup-rootfs.sh
|
||||||
|
similarity index 94%
|
||||||
|
rename from testsuite/populate-modules.sh
|
||||||
|
rename to testsuite/setup-rootfs.sh
|
||||||
|
index 099f02669156..d9cc627f7224 100755
|
||||||
|
--- a/testsuite/populate-modules.sh
|
||||||
|
+++ b/testsuite/setup-rootfs.sh
|
||||||
|
@@ -2,9 +2,20 @@
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
-MODULE_PLAYGROUND=$1
|
||||||
|
+ROOTFS_PRISTINE=$1
|
||||||
|
ROOTFS=$2
|
||||||
|
-CONFIG_H=$3
|
||||||
|
+MODULE_PLAYGROUND=$3
|
||||||
|
+CONFIG_H=$4
|
||||||
|
+
|
||||||
|
+# create rootfs from rootfs-pristine
|
||||||
|
+
|
||||||
|
+create_rootfs() {
|
||||||
|
+ rm -rf "$ROOTFS"
|
||||||
|
+ mkdir -p $(dirname "$ROOTFS")
|
||||||
|
+ cp -r "$ROOTFS_PRISTINE" "$ROOTFS"
|
||||||
|
+ find "$ROOTFS" -type d -exec chmod +w {} \;
|
||||||
|
+ find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \;
|
||||||
|
+}
|
||||||
|
|
||||||
|
feature_enabled() {
|
||||||
|
local feature=$1
|
||||||
|
@@ -94,6 +105,8 @@ attach_pkcs7_array=(
|
||||||
|
"test-modinfo/mod-simple-pkcs7.ko"
|
||||||
|
)
|
||||||
|
|
||||||
|
+create_rootfs
|
||||||
|
+
|
||||||
|
for k in "${!map[@]}"; do
|
||||||
|
dst=${ROOTFS}/$k
|
||||||
|
src=${MODULE_PLAYGROUND}/${map[$k]}
|
||||||
|
@@ -138,3 +151,5 @@ done
|
||||||
|
for m in "${attach_pkcs7_array[@]}"; do
|
||||||
|
cat "${MODULE_PLAYGROUND}/dummy.pkcs7" >>"${ROOTFS}/$m"
|
||||||
|
done
|
||||||
|
+
|
||||||
|
+touch testsuite/stamp-rootfs
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
193
testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch
Normal file
193
testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
From 892c2c451397a4f424196bc57e2536651b0549c3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Date: Mon, 6 Feb 2023 14:04:49 +0000
|
||||||
|
Subject: [PATCH 7/9] testsuite/depmod: use defines for the rootfs/lib_modules
|
||||||
|
|
||||||
|
The uname used across the tests is same, so drop "_ORDER" from the macro
|
||||||
|
name and use it throughout. Similarly - add respective LIB_MODULES
|
||||||
|
defines and use them in the tests.
|
||||||
|
|
||||||
|
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
|
||||||
|
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||||
|
---
|
||||||
|
testsuite/test-depmod.c | 50 ++++++++++++++++++++++-------------------
|
||||||
|
1 file changed, 27 insertions(+), 23 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c
|
||||||
|
index 42878cb4eb22..93606947f18a 100644
|
||||||
|
--- a/testsuite/test-depmod.c
|
||||||
|
+++ b/testsuite/test-depmod.c
|
||||||
|
@@ -25,9 +25,9 @@
|
||||||
|
|
||||||
|
#include "testsuite.h"
|
||||||
|
|
||||||
|
-#define MODULES_ORDER_UNAME "4.4.4"
|
||||||
|
+#define MODULES_UNAME "4.4.4"
|
||||||
|
#define MODULES_ORDER_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-order-compressed"
|
||||||
|
-#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS "/lib/modules/" MODULES_ORDER_UNAME
|
||||||
|
+#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_modules_order_for_compressed(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -43,7 +43,7 @@ static noreturn int depmod_modules_order_for_compressed(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_modules_order_for_compressed,
|
||||||
|
.description = "check if depmod let aliases in right order when using compressed modules",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = MODULES_ORDER_UNAME,
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = MODULES_ORDER_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
@@ -54,10 +54,9 @@ DEFINE_TEST(depmod_modules_order_for_compressed,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
-#define MODULES_OUTDIR_UNAME "4.4.4"
|
||||||
|
#define MODULES_OUTDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-outdir"
|
||||||
|
-#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir/lib/modules/" MODULES_OUTDIR_UNAME
|
||||||
|
-#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS "/lib/modules/" MODULES_OUTDIR_UNAME
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir/lib/modules/" MODULES_UNAME
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_modules_outdir(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -74,7 +73,7 @@ static noreturn int depmod_modules_outdir(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_modules_outdir,
|
||||||
|
.description = "check if depmod honours the outdir option",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = MODULES_OUTDIR_UNAME,
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = MODULES_OUTDIR_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
@@ -88,6 +87,7 @@ DEFINE_TEST(depmod_modules_outdir,
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple"
|
||||||
|
+#define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_simple(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -102,18 +102,19 @@ static noreturn int depmod_search_order_simple(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_search_order_simple,
|
||||||
|
.description = "check if depmod honor search order in config",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = SEARCH_ORDER_SIMPLE_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
.files = (const struct keyval[]) {
|
||||||
|
- { SEARCH_ORDER_SIMPLE_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
|
||||||
|
- SEARCH_ORDER_SIMPLE_ROOTFS "/lib/modules/4.4.4/modules.dep" },
|
||||||
|
+ { SEARCH_ORDER_SIMPLE_LIB_MODULES "/correct-modules.dep",
|
||||||
|
+ SEARCH_ORDER_SIMPLE_LIB_MODULES "/modules.dep" },
|
||||||
|
{ }
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix"
|
||||||
|
+#define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_same_prefix(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -128,13 +129,13 @@ static noreturn int depmod_search_order_same_prefix(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_search_order_same_prefix,
|
||||||
|
.description = "check if depmod honor search order in config with same prefix",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = SEARCH_ORDER_SAME_PREFIX_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
.files = (const struct keyval[]) {
|
||||||
|
- { SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
|
||||||
|
- SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/4.4.4/modules.dep" },
|
||||||
|
+ { SEARCH_ORDER_SAME_PREFIX_LIB_MODULES "/correct-modules.dep",
|
||||||
|
+ SEARCH_ORDER_SAME_PREFIX_LIB_MODULES "/modules.dep" },
|
||||||
|
{ }
|
||||||
|
},
|
||||||
|
});
|
||||||
|
@@ -154,7 +155,7 @@ static noreturn int depmod_detect_loop(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_detect_loop,
|
||||||
|
.description = "check if depmod detects module loops correctly",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = DETECT_LOOP_ROOTFS,
|
||||||
|
},
|
||||||
|
.expected_fail = true,
|
||||||
|
@@ -163,6 +164,7 @@ DEFINE_TEST(depmod_detect_loop,
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-first"
|
||||||
|
+#define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_external_first(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -177,18 +179,19 @@ static noreturn int depmod_search_order_external_first(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_search_order_external_first,
|
||||||
|
.description = "check if depmod honor external keyword with higher priority",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
.files = (const struct keyval[]) {
|
||||||
|
- { SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
|
||||||
|
- SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS "/lib/modules/4.4.4/modules.dep" },
|
||||||
|
+ { SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES "/correct-modules.dep",
|
||||||
|
+ SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES "/modules.dep" },
|
||||||
|
{ }
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_EXTERNAL_LAST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-last"
|
||||||
|
+#define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_external_last(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -203,18 +206,19 @@ static noreturn int depmod_search_order_external_last(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_search_order_external_last,
|
||||||
|
.description = "check if depmod honor external keyword with lower priority",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = SEARCH_ORDER_EXTERNAL_LAST_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
.files = (const struct keyval[]) {
|
||||||
|
- { SEARCH_ORDER_EXTERNAL_LAST_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
|
||||||
|
- SEARCH_ORDER_EXTERNAL_LAST_ROOTFS "/lib/modules/4.4.4/modules.dep" },
|
||||||
|
+ { SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES "/correct-modules.dep",
|
||||||
|
+ SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES "/modules.dep" },
|
||||||
|
{ }
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_OVERRIDE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-override"
|
||||||
|
+#define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_override(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -229,13 +233,13 @@ static noreturn int depmod_search_order_override(const struct test *t)
|
||||||
|
DEFINE_TEST(depmod_search_order_override,
|
||||||
|
.description = "check if depmod honor override keyword",
|
||||||
|
.config = {
|
||||||
|
- [TC_UNAME_R] = "4.4.4",
|
||||||
|
+ [TC_UNAME_R] = MODULES_UNAME,
|
||||||
|
[TC_ROOTFS] = SEARCH_ORDER_OVERRIDE_ROOTFS,
|
||||||
|
},
|
||||||
|
.output = {
|
||||||
|
.files = (const struct keyval[]) {
|
||||||
|
- { SEARCH_ORDER_OVERRIDE_ROOTFS "/lib/modules/4.4.4/correct-modules.dep",
|
||||||
|
- SEARCH_ORDER_OVERRIDE_ROOTFS "/lib/modules/4.4.4/modules.dep" },
|
||||||
|
+ { SEARCH_ORDER_OVERRIDE_LIB_MODULES "/correct-modules.dep",
|
||||||
|
+ SEARCH_ORDER_OVERRIDE_LIB_MODULES "/modules.dep" },
|
||||||
|
{ }
|
||||||
|
},
|
||||||
|
});
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -1,7 +1,8 @@
|
|||||||
From fc1b2c14e2ca4d7ccd4a3b75a435ab7d927533bc Mon Sep 17 00:00:00 2001
|
From 9d4c3adcd051408a9a4489984be73f9c06b938ab Mon Sep 17 00:00:00 2001
|
||||||
From: Michal Suchanek <msuchanek@suse.de>
|
From: Michal Suchanek <msuchanek@suse.de>
|
||||||
Date: Tue, 12 Jan 2021 16:54:46 +0100
|
Date: Tue, 12 Jan 2021 16:54:46 +0100
|
||||||
Subject: [PATCH] modprobe.d, depmod.d: load from /usr/lib.
|
Subject: [PATCH 2/9] libkmod, depmod: Load modprobe.d, depmod.d from
|
||||||
|
$prefix/lib.
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=UTF-8
|
Content-Type: text/plain; charset=UTF-8
|
||||||
Content-Transfer-Encoding: 8bit
|
Content-Transfer-Encoding: 8bit
|
||||||
@ -10,20 +11,28 @@ 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
|
$prefix on general). Currently all modprobe.d paths are hardcoded to
|
||||||
outside of $prefix. Teach kmod to load modprobe.d from $prefix/lib.
|
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 seach directories.
|
||||||
|
|
||||||
Cc: Marcus Rückert <mrueckert@suse.com>
|
Cc: Marcus Rückert <mrueckert@suse.com>
|
||||||
Cc: Takashi Iwai <tiwai@suse.com>
|
Cc: Takashi Iwai <tiwai@suse.com>
|
||||||
Cc: Dominique Leuenberger <dimstar@opensuse.org>
|
Cc: Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||||
---
|
---
|
||||||
Makefile.am | 1 +
|
Makefile.am | 1 +
|
||||||
libkmod/libkmod.c | 1 +
|
libkmod/libkmod.c | 3 ++-
|
||||||
|
man/Makefile.am | 9 +++++++--
|
||||||
man/depmod.d.xml | 1 +
|
man/depmod.d.xml | 1 +
|
||||||
man/modprobe.d.xml | 1 +
|
man/modprobe.d.xml | 1 +
|
||||||
tools/depmod.c | 1 +
|
tools/depmod.c | 1 +
|
||||||
5 files changed, 5 insertions(+)
|
6 files changed, 13 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
index d859c240178f..8553368988c0 100644
|
index 0e4877074f40..e7313fa8a33e 100644
|
||||||
--- a/Makefile.am
|
--- a/Makefile.am
|
||||||
+++ b/Makefile.am
|
+++ b/Makefile.am
|
||||||
@@ -19,6 +19,7 @@ AM_CPPFLAGS = \
|
@@ -19,6 +19,7 @@ AM_CPPFLAGS = \
|
||||||
@ -35,7 +44,7 @@ index d859c240178f..8553368988c0 100644
|
|||||||
|
|
||||||
AM_CFLAGS = $(OUR_CFLAGS)
|
AM_CFLAGS = $(OUR_CFLAGS)
|
||||||
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
|
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
|
||||||
index 7c2b889d713e..ddf13fb3d822 100644
|
index 7c2b889d713e..75fc8be3fadc 100644
|
||||||
--- a/libkmod/libkmod.c
|
--- a/libkmod/libkmod.c
|
||||||
+++ b/libkmod/libkmod.c
|
+++ b/libkmod/libkmod.c
|
||||||
@@ -65,6 +65,7 @@ static const char *default_config_paths[] = {
|
@@ -65,6 +65,7 @@ static const char *default_config_paths[] = {
|
||||||
@ -46,32 +55,62 @@ index 7c2b889d713e..ddf13fb3d822 100644
|
|||||||
"/lib/modprobe.d",
|
"/lib/modprobe.d",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@@ -237,7 +238,7 @@ static char *get_kernel_release(const char *dirname)
|
||||||
|
* 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
|
||||||
|
+ * /usr/local/lib/modprobe.d and PREFIX/lib/modprobe.d. Give an empty
|
||||||
|
* vector if configuration should not be read. This array must
|
||||||
|
* be null terminated.
|
||||||
|
*
|
||||||
|
diff --git a/man/Makefile.am b/man/Makefile.am
|
||||||
|
index 11514d52a190..ad07c30bbd24 100644
|
||||||
|
--- a/man/Makefile.am
|
||||||
|
+++ b/man/Makefile.am
|
||||||
|
@@ -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 [ -n '$(prefix)' ] ; then \
|
||||||
|
+ sed -e 's|@PREFIX@|$(prefix)|g' $< ; \
|
||||||
|
+ else \
|
||||||
|
+ sed -e '/@PREFIX@/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 -
|
||||||
diff --git a/man/depmod.d.xml b/man/depmod.d.xml
|
diff --git a/man/depmod.d.xml b/man/depmod.d.xml
|
||||||
index b315e931d635..8a898cf4a9eb 100644
|
index 8d3d821cddc8..431ebca6654b 100644
|
||||||
--- a/man/depmod.d.xml
|
--- a/man/depmod.d.xml
|
||||||
+++ b/man/depmod.d.xml
|
+++ b/man/depmod.d.xml
|
||||||
@@ -39,6 +39,7 @@
|
@@ -40,6 +40,7 @@
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
+ <para><filename>/lib/depmod.d/*.conf</filename></para>
|
<para><filename>/lib/depmod.d/*.conf</filename></para>
|
||||||
<para><filename>/usr/lib/depmod.d/*.conf</filename></para>
|
+ <para><filename>@PREFIX@/lib/depmod.d/*.conf</filename></para>
|
||||||
<para><filename>/usr/local/lib/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>/run/depmod.d/*.conf</filename></para>
|
||||||
|
<para><filename>/etc/depmod.d/*.conf</filename></para>
|
||||||
diff --git a/man/modprobe.d.xml b/man/modprobe.d.xml
|
diff --git a/man/modprobe.d.xml b/man/modprobe.d.xml
|
||||||
index 0ab3e9110a7e..8a7c696dcee1 100644
|
index 0ab3e9110a7e..e8a91d7668af 100644
|
||||||
--- a/man/modprobe.d.xml
|
--- a/man/modprobe.d.xml
|
||||||
+++ b/man/modprobe.d.xml
|
+++ b/man/modprobe.d.xml
|
||||||
@@ -41,6 +41,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
|
|
||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
<para><filename>/lib/modprobe.d/*.conf</filename></para>
|
<para><filename>/lib/modprobe.d/*.conf</filename></para>
|
||||||
+ <para><filename>/usr/lib/modprobe.d/*.conf</filename></para>
|
+ <para><filename>@PREFIX@/lib/modprobe.d/*.conf</filename></para>
|
||||||
<para><filename>/usr/local/lib/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>/run/modprobe.d/*.conf</filename></para>
|
||||||
<para><filename>/etc/modprobe.d/*.conf</filename></para>
|
<para><filename>/etc/modprobe.d/*.conf</filename></para>
|
||||||
diff --git a/tools/depmod.c b/tools/depmod.c
|
diff --git a/tools/depmod.c b/tools/depmod.c
|
||||||
index eb810b811e35..8f6a4f8cd7cb 100644
|
index 364b7d4faa9e..a9349b20ee9c 100644
|
||||||
--- a/tools/depmod.c
|
--- a/tools/depmod.c
|
||||||
+++ b/tools/depmod.c
|
+++ b/tools/depmod.c
|
||||||
@@ -54,6 +54,7 @@ static const char *default_cfg_paths[] = {
|
@@ -54,6 +54,7 @@ static const char *default_cfg_paths[] = {
|
||||||
@ -83,5 +122,5 @@ index eb810b811e35..8f6a4f8cd7cb 100644
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
--
|
--
|
||||||
2.26.2
|
2.41.0
|
||||||
|
|
||||||
|
610
usr-lib-modules.patch
Normal file
610
usr-lib-modules.patch
Normal file
@ -0,0 +1,610 @@
|
|||||||
|
From cb784d4f70cd49565a934bfae87373fe495adec8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
Date: Fri, 26 May 2023 10:38:05 +0200
|
||||||
|
Subject: [PATCH 8/9] libkmod, depmod, modprobe: Search for kernel modules
|
||||||
|
under ${module_prefix}
|
||||||
|
|
||||||
|
modprobe.d is now searched under ${prefix}/lib, add ${module_prefix} to
|
||||||
|
specify the directory where to search for kernel modules.
|
||||||
|
|
||||||
|
With this distributions that do not want to ship files in /lib can also
|
||||||
|
move kernel modules to /usr while others can keep them in /lib.
|
||||||
|
|
||||||
|
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||||
|
---
|
||||||
|
Makefile.am | 3
|
||||||
|
configure.ac | 7 ++
|
||||||
|
libkmod/libkmod.c | 6 -
|
||||||
|
man/Makefile.am | 1
|
||||||
|
man/depmod.d.xml | 6 -
|
||||||
|
man/depmod.xml | 4 -
|
||||||
|
man/modinfo.xml | 2
|
||||||
|
man/modprobe.xml | 2
|
||||||
|
man/modules.dep.xml | 6 -
|
||||||
|
testsuite/module-playground/Makefile | 2
|
||||||
|
testsuite/setup-rootfs.sh | 109 +++++++++++++++++++----------------
|
||||||
|
testsuite/test-depmod.c | 16 ++---
|
||||||
|
testsuite/test-testsuite.c | 8 +-
|
||||||
|
tools/depmod.c | 15 ++++
|
||||||
|
tools/kmod.c | 1
|
||||||
|
tools/modinfo.c | 4 -
|
||||||
|
tools/modprobe.c | 4 -
|
||||||
|
tools/static-nodes.c | 6 -
|
||||||
|
18 files changed, 118 insertions(+), 84 deletions(-)
|
||||||
|
|
||||||
|
Index: kmod-30/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/Makefile.am
|
||||||
|
+++ kmod-30/Makefile.am
|
||||||
|
@@ -20,6 +20,7 @@ AM_CPPFLAGS = \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||||
|
-DPREFIX=\""$(prefix)"\" \
|
||||||
|
+ -DMODULE_PREFIX=\""$(module_prefix)"\" \
|
||||||
|
${zlib_CFLAGS}
|
||||||
|
|
||||||
|
AM_CFLAGS = $(OUR_CFLAGS)
|
||||||
|
@@ -247,7 +248,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh
|
||||||
|
MODULE_PLAYGROUND = testsuite/module-playground
|
||||||
|
ROOTFS = testsuite/rootfs
|
||||||
|
ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine
|
||||||
|
-CREATE_ROOTFS = $(AM_V_GEN) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir)
|
||||||
|
+CREATE_ROOTFS = $(AM_V_GEN) MODULE_PREFIX=$(module_prefix) $(top_srcdir)/testsuite/setup-rootfs.sh $(ROOTFS_PRISTINE) $(ROOTFS) $(MODULE_PLAYGROUND) $(top_builddir)/config.h $(sysconfdir)
|
||||||
|
|
||||||
|
build-module-playground:
|
||||||
|
$(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \
|
||||||
|
Index: kmod-30/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/configure.ac
|
||||||
|
+++ kmod-30/configure.ac
|
||||||
|
@@ -83,6 +83,12 @@ AC_ARG_WITH([rootlibdir],
|
||||||
|
[], [with_rootlibdir=$libdir])
|
||||||
|
AC_SUBST([rootlibdir], [$with_rootlibdir])
|
||||||
|
|
||||||
|
+# Ideally this would be $prefix but default to empty for compatibility with earlier versions
|
||||||
|
+AC_ARG_WITH([module_prefix],
|
||||||
|
+ AS_HELP_STRING([--with-module-prefix=DIR], [directory in which to look for /lib/modules directory with kernel modules - typically '' or ${prefix}]),
|
||||||
|
+ [], [with_module_prefix=])
|
||||||
|
+AC_SUBST([module_prefix], [$with_module_prefix])
|
||||||
|
+
|
||||||
|
AC_ARG_WITH([zstd],
|
||||||
|
AS_HELP_STRING([--with-zstd], [handle Zstandard-compressed modules @<:@default=disabled@:>@]),
|
||||||
|
[], [with_zstd=no])
|
||||||
|
@@ -302,6 +308,7 @@ AC_MSG_RESULT([
|
||||||
|
=======
|
||||||
|
|
||||||
|
prefix: ${prefix}
|
||||||
|
+ module_prefix: ${module_prefix}
|
||||||
|
sysconfdir: ${sysconfdir}
|
||||||
|
libdir: ${libdir}
|
||||||
|
rootlibdir: ${rootlibdir}
|
||||||
|
Index: kmod-30/libkmod/libkmod.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/libkmod/libkmod.c
|
||||||
|
+++ kmod-30/libkmod/libkmod.c
|
||||||
|
@@ -209,7 +209,7 @@ static int log_priority(const char *prio
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static const char *dirname_default_prefix = "/lib/modules";
|
||||||
|
+static const char *dirname_default_prefix = MODULE_PREFIX "/lib/modules";
|
||||||
|
|
||||||
|
static char *get_kernel_release(const char *dirname)
|
||||||
|
{
|
||||||
|
@@ -231,14 +231,14 @@ static char *get_kernel_release(const ch
|
||||||
|
/**
|
||||||
|
* kmod_new:
|
||||||
|
* @dirname: what to consider as linux module's directory, if NULL
|
||||||
|
- * defaults to /lib/modules/`uname -r`. If it's relative,
|
||||||
|
+ * defaults to ${module_prefix}/lib/modules/`uname -r`. If it's relative,
|
||||||
|
* it's treated as relative to the current working directory.
|
||||||
|
* Otherwise, give an absolute dirname.
|
||||||
|
* @config_paths: ordered array of paths (directories or files) where
|
||||||
|
* 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 PREFIX/lib/modprobe.d. Give an empty
|
||||||
|
+ * /usr/local/lib/modprobe.d and ${module_prefix}/lib/modprobe.d. Give an empty
|
||||||
|
* vector if configuration should not be read. This array must
|
||||||
|
* be null terminated.
|
||||||
|
*
|
||||||
|
Index: kmod-30/man/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/Makefile.am
|
||||||
|
+++ kmod-30/man/Makefile.am
|
||||||
|
@@ -22,6 +22,7 @@ CLEANFILES = $(dist_man_MANS)
|
||||||
|
else \
|
||||||
|
sed -e '/@PREFIX@/d' $< ; \
|
||||||
|
fi | \
|
||||||
|
+ sed -e 's|@MODULE_PREFIX@|$(module_prefix)|g' | \
|
||||||
|
$(XSLT) \
|
||||||
|
-o $@ \
|
||||||
|
--nonet \
|
||||||
|
Index: kmod-30/man/depmod.d.xml
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/depmod.d.xml
|
||||||
|
+++ kmod-30/man/depmod.d.xml
|
||||||
|
@@ -70,7 +70,7 @@
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
- This allows you to specify the order in which /lib/modules
|
||||||
|
+ This allows you to specify the order in which @MODULE_PREFIX@/lib/modules
|
||||||
|
(or other configured module location) subdirectories will
|
||||||
|
be processed by <command>depmod</command>. Directories are
|
||||||
|
listed in order, with the highest priority given to the
|
||||||
|
@@ -101,7 +101,7 @@
|
||||||
|
<command>depmod</command> command. It is possible to
|
||||||
|
specify one kernel or all kernels using the * wildcard.
|
||||||
|
<replaceable>modulesubdirectory</replaceable> is the
|
||||||
|
- name of the subdirectory under /lib/modules (or other
|
||||||
|
+ name of the subdirectory under @MODULE_PREFIX@/lib/modules (or other
|
||||||
|
module location) where the target module is installed.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
@@ -110,7 +110,7 @@
|
||||||
|
specifying the following command: "override kmod * extra".
|
||||||
|
This will ensure that any matching module name installed
|
||||||
|
under the <command>extra</command> subdirectory within
|
||||||
|
- /lib/modules (or other module location) will take priority
|
||||||
|
+ @MODULE_PREFIX@/lib/modules (or other module location) will take priority
|
||||||
|
over any likenamed module already provided by the kernel.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
Index: kmod-30/man/depmod.xml
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/depmod.xml
|
||||||
|
+++ kmod-30/man/depmod.xml
|
||||||
|
@@ -80,7 +80,7 @@
|
||||||
|
</para>
|
||||||
|
<para> <command>depmod</command> creates a list of module dependencies by
|
||||||
|
reading each module under
|
||||||
|
- <filename>/lib/modules/</filename><replaceable>version</replaceable> and
|
||||||
|
+ <filename>@MODULE_PREFIX@/lib/modules/</filename><replaceable>version</replaceable> and
|
||||||
|
determining what symbols it exports and what symbols it needs. By
|
||||||
|
default, this list is written to <filename>modules.dep</filename>, and a
|
||||||
|
binary hashed version named <filename>modules.dep.bin</filename>, in the
|
||||||
|
@@ -141,7 +141,7 @@
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If your modules are not currently in the (normal) directory
|
||||||
|
- <filename>/lib/modules/</filename><replaceable>version</replaceable>,
|
||||||
|
+ <filename>@MODULE_PREFIX@/lib/modules/</filename><replaceable>version</replaceable>,
|
||||||
|
but in a staging area, you can specify a
|
||||||
|
<replaceable>basedir</replaceable> which is prepended to the
|
||||||
|
directory name. This <replaceable>basedir</replaceable> is
|
||||||
|
Index: kmod-30/man/modinfo.xml
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/modinfo.xml
|
||||||
|
+++ kmod-30/man/modinfo.xml
|
||||||
|
@@ -54,7 +54,7 @@
|
||||||
|
<command>modinfo</command> extracts information from the Linux Kernel
|
||||||
|
modules given on the command line. If the module name is not a filename,
|
||||||
|
then the
|
||||||
|
- <filename>/lib/modules/</filename><replaceable>version</replaceable>
|
||||||
|
+ <filename>@MODULE_PREFIX@/lib/modules/</filename><replaceable>version</replaceable>
|
||||||
|
directory is searched, as is also done by
|
||||||
|
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||||
|
when loading kernel modules.
|
||||||
|
Index: kmod-30/man/modprobe.xml
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/modprobe.xml
|
||||||
|
+++ kmod-30/man/modprobe.xml
|
||||||
|
@@ -78,7 +78,7 @@
|
||||||
|
is no difference between _ and - in module names (automatic
|
||||||
|
underscore conversion is performed).
|
||||||
|
<command>modprobe</command> looks in the module directory
|
||||||
|
- <filename>/lib/modules/`uname -r`</filename> for all
|
||||||
|
+ <filename>@MODULE_PREFIX@/lib/modules/`uname -r`</filename> for all
|
||||||
|
the modules and other files, except for the optional
|
||||||
|
configuration files in the
|
||||||
|
<filename>/etc/modprobe.d</filename> directory
|
||||||
|
Index: kmod-30/man/modules.dep.xml
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/man/modules.dep.xml
|
||||||
|
+++ kmod-30/man/modules.dep.xml
|
||||||
|
@@ -34,8 +34,8 @@
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
- <para><filename>/lib/modules/modules.dep</filename></para>
|
||||||
|
- <para><filename>/lib/modules/modules.dep.bin</filename></para>
|
||||||
|
+ <para><filename>@MODULE_PREFIX@/lib/modules/modules.dep</filename></para>
|
||||||
|
+ <para><filename>@MODULE_PREFIX@/lib/modules/modules.dep.bin</filename></para>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1><title>DESCRIPTION</title>
|
||||||
|
@@ -43,7 +43,7 @@
|
||||||
|
<filename>modules.dep.bin</filename> is a binary file generated by
|
||||||
|
<command>depmod</command> listing the dependencies for
|
||||||
|
every module in the directories under
|
||||||
|
- <filename>/lib/modules/</filename><replaceable>version</replaceable>.
|
||||||
|
+ <filename>@MODULE_PREFIX@/lib/modules/</filename><replaceable>version</replaceable>.
|
||||||
|
It is used by kmod tools such as <command>modprobe</command> and
|
||||||
|
libkmod.
|
||||||
|
</para>
|
||||||
|
Index: kmod-30/testsuite/module-playground/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/testsuite/module-playground/Makefile
|
||||||
|
+++ kmod-30/testsuite/module-playground/Makefile
|
||||||
|
@@ -47,7 +47,7 @@ endif
|
||||||
|
|
||||||
|
else
|
||||||
|
# normal makefile
|
||||||
|
-KDIR ?= /lib/modules/`uname -r`/build
|
||||||
|
+KDIR ?= $(module_prefix)/lib/modules/`uname -r`/build
|
||||||
|
KVER ?= `uname -r`
|
||||||
|
ifeq ($(FAKE_BUILD),)
|
||||||
|
FAKE_BUILD=0
|
||||||
|
Index: kmod-30/testsuite/setup-rootfs.sh
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/testsuite/setup-rootfs.sh
|
||||||
|
+++ kmod-30/testsuite/setup-rootfs.sh
|
||||||
|
@@ -16,6 +16,19 @@ create_rootfs() {
|
||||||
|
cp -r "$ROOTFS_PRISTINE" "$ROOTFS"
|
||||||
|
find "$ROOTFS" -type d -exec chmod +w {} \;
|
||||||
|
find "$ROOTFS" -type f -name .gitignore -exec rm -f {} \;
|
||||||
|
+ if [ -n "$MODULE_PREFIX" ] ; then
|
||||||
|
+ sed -i -e "s|/lib/modules|$MODULE_PREFIX/lib/modules|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep)
|
||||||
|
+ sed -i -e "s|$MODULE_PREFIX/lib/modules/external|/lib/modules/external|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep)
|
||||||
|
+ for i in "$ROOTFS"/*/lib/modules/* "$ROOTFS"/*/*/lib/modules/* ; do
|
||||||
|
+ version=$(basename $i)
|
||||||
|
+ [ $version != 'external' ] || continue
|
||||||
|
+ i=$(dirname $i)
|
||||||
|
+ lib="$(dirname $i)"
|
||||||
|
+ up="$(dirname $lib)$MODULE_PREFIX"
|
||||||
|
+ mkdir -p "$up"
|
||||||
|
+ mv "$lib" "$up"
|
||||||
|
+ done
|
||||||
|
+ fi
|
||||||
|
|
||||||
|
if [ "$SYSCONFDIR" != "/etc" ]; then
|
||||||
|
find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do
|
||||||
|
@@ -32,55 +45,55 @@ feature_enabled() {
|
||||||
|
|
||||||
|
declare -A map
|
||||||
|
map=(
|
||||||
|
- ["test-depmod/search-order-simple/lib/modules/4.4.4/kernel/crypto/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-simple/lib/modules/4.4.4/updates/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-same-prefix/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko"
|
||||||
|
- ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko"
|
||||||
|
- ["test-depmod/search-order-external-first/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-external-first/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-simple$MODULE_PREFIX/lib/modules/4.4.4/kernel/crypto/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-simple$MODULE_PREFIX/lib/modules/4.4.4/updates/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-same-prefix$MODULE_PREFIX/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-same-prefix$MODULE_PREFIX/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko"
|
||||||
|
+ ["test-depmod/detect-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko"
|
||||||
|
+ ["test-depmod/search-order-external-first$MODULE_PREFIX/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-external-first$MODULE_PREFIX/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
["test-depmod/search-order-external-first/lib/modules/external/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-external-last/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-external-last/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-external-last$MODULE_PREFIX/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-external-last$MODULE_PREFIX/lib/modules/4.4.4/foobar/"]="mod-simple.ko"
|
||||||
|
["test-depmod/search-order-external-last/lib/modules/external/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-override/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/search-order-override/lib/modules/4.4.4/override/"]="mod-simple.ko"
|
||||||
|
- ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
|
||||||
|
- ["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
|
||||||
|
- ["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
|
||||||
|
- ["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko"
|
||||||
|
+ ["test-depmod/search-order-override$MODULE_PREFIX/lib/modules/4.4.4/foo/"]="mod-simple.ko"
|
||||||
|
+ ["test-depmod/search-order-override$MODULE_PREFIX/lib/modules/4.4.4/override/"]="mod-simple.ko"
|
||||||
|
+ ["test-dependencies$MODULE_PREFIX/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
|
||||||
|
+ ["test-dependencies$MODULE_PREFIX/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
|
||||||
|
+ ["test-dependencies$MODULE_PREFIX/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
|
||||||
|
+ ["test-dependencies$MODULE_PREFIX/lib/modules/4.0.20-kmod/kernel/fs/"]="mod-foo.ko"
|
||||||
|
["test-init/"]="mod-simple.ko"
|
||||||
|
["test-remove/"]="mod-simple.ko"
|
||||||
|
- ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
- ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
- ["test-modprobe/show-depends/lib/modules/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/show-depends$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
+ ["test-modprobe/show-depends$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
+ ["test-modprobe/show-depends$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-simple.ko"]="mod-simple.ko"
|
||||||
|
["test-modprobe/show-exports/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
- ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
- ["test-modprobe/softdep-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
- ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
- ["test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
- ["test-modprobe/force/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
- ["test-modprobe/oldkernel/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
|
||||||
|
- ["test-modprobe/oldkernel-force/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
|
||||||
|
- ["test-modprobe/alias-to-none/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
- ["test-modprobe/module-param-kcmdline/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/softdep-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
+ ["test-modprobe/softdep-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
+ ["test-modprobe/install-cmd-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko"
|
||||||
|
+ ["test-modprobe/install-cmd-loop$MODULE_PREFIX/lib/modules/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko"
|
||||||
|
+ ["test-modprobe/force$MODULE_PREFIX/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/oldkernel$MODULE_PREFIX/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/oldkernel-force$MODULE_PREFIX/lib/modules/3.3.3/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/alias-to-none$MODULE_PREFIX/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-modprobe/module-param-kcmdline$MODULE_PREFIX/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
["test-modprobe/external/lib/modules/external/"]="mod-simple.ko"
|
||||||
|
- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
- ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
- ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
- ["test-depmod/modules-outdir/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
+ ["test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
+ ["test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
+ ["test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
+ ["test-depmod/modules-outdir$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko"
|
||||||
|
+ ["test-depmod/modules-outdir$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko"
|
||||||
|
+ ["test-depmod/modules-outdir$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko"
|
||||||
|
["test-modinfo/mod-simple-i386.ko"]="mod-simple-i386.ko"
|
||||||
|
["test-modinfo/mod-simple-x86_64.ko"]="mod-simple-x86_64.ko"
|
||||||
|
["test-modinfo/mod-simple-sparc64.ko"]="mod-simple-sparc64.ko"
|
||||||
|
@@ -88,20 +101,20 @@ map=(
|
||||||
|
["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko"
|
||||||
|
["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko"
|
||||||
|
["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko"
|
||||||
|
- ["test-tools/insert/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
- ["test-tools/remove/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-tools/insert$MODULE_PREFIX/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
+ ["test-tools/remove$MODULE_PREFIX/lib/modules/4.4.4/kernel/"]="mod-simple.ko"
|
||||||
|
)
|
||||||
|
|
||||||
|
gzip_array=(
|
||||||
|
- "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"
|
||||||
|
+ "test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"
|
||||||
|
)
|
||||||
|
|
||||||
|
xz_array=(
|
||||||
|
- "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"
|
||||||
|
+ "test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"
|
||||||
|
)
|
||||||
|
|
||||||
|
zstd_array=(
|
||||||
|
- "test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"
|
||||||
|
+ "test-depmod/modules-order-compressed$MODULE_PREFIX/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"
|
||||||
|
)
|
||||||
|
|
||||||
|
attach_sha256_array=(
|
||||||
|
Index: kmod-30/testsuite/test-depmod.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/testsuite/test-depmod.c
|
||||||
|
+++ kmod-30/testsuite/test-depmod.c
|
||||||
|
@@ -27,7 +27,7 @@
|
||||||
|
|
||||||
|
#define MODULES_UNAME "4.4.4"
|
||||||
|
#define MODULES_ORDER_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-order-compressed"
|
||||||
|
-#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define MODULES_ORDER_LIB_MODULES MODULES_ORDER_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_modules_order_for_compressed(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -55,8 +55,8 @@ DEFINE_TEST(depmod_modules_order_for_com
|
||||||
|
});
|
||||||
|
|
||||||
|
#define MODULES_OUTDIR_ROOTFS TESTSUITE_ROOTFS "test-depmod/modules-outdir"
|
||||||
|
-#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir/lib/modules/" MODULES_UNAME
|
||||||
|
-#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_OUTPUT MODULES_OUTDIR_ROOTFS "/outdir" MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_modules_outdir(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -87,7 +87,7 @@ DEFINE_TEST(depmod_modules_outdir,
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_SIMPLE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-simple"
|
||||||
|
-#define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define SEARCH_ORDER_SIMPLE_LIB_MODULES SEARCH_ORDER_SIMPLE_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_simple(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -114,7 +114,7 @@ DEFINE_TEST(depmod_search_order_simple,
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_SAME_PREFIX_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-same-prefix"
|
||||||
|
-#define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define SEARCH_ORDER_SAME_PREFIX_LIB_MODULES SEARCH_ORDER_SAME_PREFIX_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_same_prefix(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -164,7 +164,7 @@ DEFINE_TEST(depmod_detect_loop,
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-first"
|
||||||
|
-#define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define SEARCH_ORDER_EXTERNAL_FIRST_LIB_MODULES SEARCH_ORDER_EXTERNAL_FIRST_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_external_first(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -191,7 +191,7 @@ DEFINE_TEST(depmod_search_order_external
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_EXTERNAL_LAST_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-external-last"
|
||||||
|
-#define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define SEARCH_ORDER_EXTERNAL_LAST_LIB_MODULES SEARCH_ORDER_EXTERNAL_LAST_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_external_last(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
@@ -218,7 +218,7 @@ DEFINE_TEST(depmod_search_order_external
|
||||||
|
});
|
||||||
|
|
||||||
|
#define SEARCH_ORDER_OVERRIDE_ROOTFS TESTSUITE_ROOTFS "test-depmod/search-order-override"
|
||||||
|
-#define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS "/lib/modules/" MODULES_UNAME
|
||||||
|
+#define SEARCH_ORDER_OVERRIDE_LIB_MODULES SEARCH_ORDER_OVERRIDE_ROOTFS MODULE_PREFIX "/lib/modules/" MODULES_UNAME
|
||||||
|
static noreturn int depmod_search_order_override(const struct test *t)
|
||||||
|
{
|
||||||
|
const char *progname = ABS_TOP_BUILDDIR "/tools/depmod";
|
||||||
|
Index: kmod-30/testsuite/test-testsuite.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/testsuite/test-testsuite.c
|
||||||
|
+++ kmod-30/testsuite/test-testsuite.c
|
||||||
|
@@ -64,7 +64,7 @@ static int testsuite_rootfs_fopen(const
|
||||||
|
char s[100];
|
||||||
|
int n;
|
||||||
|
|
||||||
|
- fp = fopen("/lib/modules/a", "r");
|
||||||
|
+ fp = fopen(MODULE_PREFIX "/lib/modules/a", "r");
|
||||||
|
if (fp == NULL)
|
||||||
|
return EXIT_FAILURE;;
|
||||||
|
|
||||||
|
@@ -89,7 +89,7 @@ static int testsuite_rootfs_open(const s
|
||||||
|
char buf[100];
|
||||||
|
int fd, done;
|
||||||
|
|
||||||
|
- fd = open("/lib/modules/a", O_RDONLY);
|
||||||
|
+ fd = open(MODULE_PREFIX "/lib/modules/a", O_RDONLY);
|
||||||
|
if (fd < 0)
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
@@ -121,12 +121,12 @@ static int testsuite_rootfs_stat_access(
|
||||||
|
{
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
- if (access("/lib/modules/a", F_OK) < 0) {
|
||||||
|
+ if (access(MODULE_PREFIX "/lib/modules/a", F_OK) < 0) {
|
||||||
|
ERR("access failed: %m\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (stat("/lib/modules/a", &st) < 0) {
|
||||||
|
+ if (stat(MODULE_PREFIX "/lib/modules/a", &st) < 0) {
|
||||||
|
ERR("stat failed: %m\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
Index: kmod-30/tools/depmod.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/tools/depmod.c
|
||||||
|
+++ kmod-30/tools/depmod.c
|
||||||
|
@@ -911,7 +911,7 @@ struct vertex;
|
||||||
|
struct mod {
|
||||||
|
struct kmod_module *kmod;
|
||||||
|
char *path;
|
||||||
|
- const char *relpath; /* path relative to '$ROOT/lib/modules/$VER/' */
|
||||||
|
+ const char *relpath; /* path relative to '$ROOT$MODULE_PREFIX/lib/modules/$VER/' */
|
||||||
|
char *uncrelpath; /* same as relpath but ending in .ko */
|
||||||
|
struct kmod_list *info_list;
|
||||||
|
struct kmod_list *dep_sym_list;
|
||||||
|
@@ -3024,12 +3024,23 @@ static int do_depmod(int argc, char *arg
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX,
|
||||||
|
- "%s/lib/modules/%s",
|
||||||
|
+ "%s" MODULE_PREFIX "/lib/modules/%s",
|
||||||
|
root ?: "", cfg.kversion);
|
||||||
|
|
||||||
|
cfg.outdirnamelen = snprintf(cfg.outdirname, PATH_MAX,
|
||||||
|
+ "%s" MODULE_PREFIX "/lib/modules/%s",
|
||||||
|
+ out_root ?: (root ?: ""), cfg.kversion);
|
||||||
|
+ struct stat sb;
|
||||||
|
+ if (stat(cfg.dirname, &sb) != 0) {
|
||||||
|
+ cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX,
|
||||||
|
+ "%s/lib/modules/%s",
|
||||||
|
+ root ?: "", cfg.kversion);
|
||||||
|
+ }
|
||||||
|
+ if (stat(cfg.outdirname, &sb) != 0) {
|
||||||
|
+ cfg.outdirnamelen = snprintf(cfg.outdirname, PATH_MAX,
|
||||||
|
"%s/lib/modules/%s",
|
||||||
|
out_root ?: (root ?: ""), cfg.kversion);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (optind == argc)
|
||||||
|
all = 1;
|
||||||
|
Index: kmod-30/tools/kmod.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/tools/kmod.c
|
||||||
|
+++ kmod-30/tools/kmod.c
|
||||||
|
@@ -114,6 +114,7 @@ static int kmod_config(int argc, char *a
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
printf("{\"prefix\":\"" PREFIX "\""
|
||||||
|
+ ",\"module_prefix\":\"" MODULE_PREFIX "\""
|
||||||
|
",\"module_compression\":[");
|
||||||
|
for(i = 0; compressions[i]; i++) {
|
||||||
|
printf("%s\"%s\"", i ? "," : "", compressions[i]);
|
||||||
|
Index: kmod-30/tools/modinfo.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/tools/modinfo.c
|
||||||
|
+++ kmod-30/tools/modinfo.c
|
||||||
|
@@ -367,7 +367,7 @@ static void help(void)
|
||||||
|
"\t-m, --modname Handle argument as module name instead of alias or filename\n"
|
||||||
|
"\t-F, --field=FIELD Print only provided FIELD\n"
|
||||||
|
"\t-k, --set-version=VERSION Use VERSION instead of `uname -r`\n"
|
||||||
|
- "\t-b, --basedir=DIR Use DIR as filesystem root for /lib/modules\n"
|
||||||
|
+ "\t-b, --basedir=DIR Use DIR as filesystem root for " MODULE_PREFIX "/lib/modules\n"
|
||||||
|
"\t-V, --version Show version\n"
|
||||||
|
"\t-h, --help Show this help\n",
|
||||||
|
program_invocation_short_name);
|
||||||
|
@@ -462,7 +462,7 @@ static int do_modinfo(int argc, char *ar
|
||||||
|
}
|
||||||
|
kversion = u.release;
|
||||||
|
}
|
||||||
|
- snprintf(dirname_buf, sizeof(dirname_buf), "%s/lib/modules/%s",
|
||||||
|
+ snprintf(dirname_buf, sizeof(dirname_buf), "%s" MODULE_PREFIX "/lib/modules/%s",
|
||||||
|
root, kversion);
|
||||||
|
dirname = dirname_buf;
|
||||||
|
}
|
||||||
|
Index: kmod-30/tools/modprobe.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/tools/modprobe.c
|
||||||
|
+++ kmod-30/tools/modprobe.c
|
||||||
|
@@ -146,7 +146,7 @@ static void help(void)
|
||||||
|
"\t-n, --show Same as --dry-run\n"
|
||||||
|
|
||||||
|
"\t-C, --config=FILE Use FILE instead of default search paths\n"
|
||||||
|
- "\t-d, --dirname=DIR Use DIR as filesystem root for /lib/modules\n"
|
||||||
|
+ "\t-d, --dirname=DIR Use DIR as filesystem root for " MODULE_PREFIX "/lib/modules\n"
|
||||||
|
"\t-S, --set-version=VERSION Use VERSION instead of `uname -r`\n"
|
||||||
|
|
||||||
|
"\t-s, --syslog print to syslog, not stderr\n"
|
||||||
|
@@ -983,7 +983,7 @@ static int do_modprobe(int argc, char **
|
||||||
|
kversion = u.release;
|
||||||
|
}
|
||||||
|
snprintf(dirname_buf, sizeof(dirname_buf),
|
||||||
|
- "%s/lib/modules/%s", root,
|
||||||
|
+ "%s" MODULE_PREFIX "/lib/modules/%s", root,
|
||||||
|
kversion);
|
||||||
|
dirname = dirname_buf;
|
||||||
|
}
|
||||||
|
Index: kmod-30/tools/static-nodes.c
|
||||||
|
===================================================================
|
||||||
|
--- kmod-30.orig/tools/static-nodes.c
|
||||||
|
+++ kmod-30/tools/static-nodes.c
|
||||||
|
@@ -212,15 +212,15 @@ static int do_static_nodes(int argc, cha
|
||||||
|
goto finish;
|
||||||
|
}
|
||||||
|
|
||||||
|
- snprintf(modules, sizeof(modules), "/lib/modules/%s/modules.devname", kernel.release);
|
||||||
|
+ snprintf(modules, sizeof(modules), MODULE_PREFIX "/lib/modules/%s/modules.devname", kernel.release);
|
||||||
|
in = fopen(modules, "re");
|
||||||
|
if (in == NULL) {
|
||||||
|
if (errno == ENOENT) {
|
||||||
|
- fprintf(stderr, "Warning: /lib/modules/%s/modules.devname not found - ignoring\n",
|
||||||
|
+ fprintf(stderr, "Warning: " MODULE_PREFIX "/lib/modules/%s/modules.devname not found - ignoring\n",
|
||||||
|
kernel.release);
|
||||||
|
ret = EXIT_SUCCESS;
|
||||||
|
} else {
|
||||||
|
- fprintf(stderr, "Error: could not open /lib/modules/%s/modules.devname - %m\n",
|
||||||
|
+ fprintf(stderr, "Error: could not open " MODULE_PREFIX "/lib/modules/%s/modules.devname - %m\n",
|
||||||
|
kernel.release);
|
||||||
|
ret = EXIT_FAILURE;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user