SHA256
1
0
forked from pool/kmod

Accepting request 1118391 from Base:System

- Fix tests
  * refresh configure-Detect-openssl-sm3-support.patch
  * refresh kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch
  * refresh usr-lib-modules.patch (forwarded request 1118343 from michals)

OBS-URL: https://build.opensuse.org/request/show/1118391
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kmod?expand=0&rev=79
This commit is contained in:
Ana Guerrero 2023-10-18 19:25:12 +00:00 committed by Git OBS Bridge
commit 16778a567e
16 changed files with 132 additions and 900 deletions

View File

@ -1,33 +0,0 @@
From 16c086f48c2270ad6412ad7226df53079f825270 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Thu, 30 Jun 2022 18:47:25 +0200
Subject: [PATCH] testsuite: repair read of uninitialized memory
References: https://github.com/kmod-project/kmod/pull/15
References: https://github.com/kmod-project/kmod/issues/14
Function ``test_backoff_time`` does not initialize ``delta``, and
``get_backoff_delta_msec`` then performs a read from uninitialized
memory with the ``!*delta`` expression.
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
---
testsuite/test-util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testsuite/test-util.c b/testsuite/test-util.c
index fb8c9ef..5766584 100644
--- a/testsuite/test-util.c
+++ b/testsuite/test-util.c
@@ -231,7 +231,7 @@ DEFINE_TEST(test_addu64_overflow,
static int test_backoff_time(const struct test *t)
{
- unsigned long long delta;
+ unsigned long long delta = 0;
/* Check exponential increments */
get_backoff_delta_msec(now_msec(), now_msec() + 10, &delta);
--
2.36.1

View File

@ -12,11 +12,11 @@ Patch-mainline: never
libkmod/libkmod-module.c | 31 +++++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c
index 1b24536..07d6a9e 100644
--- a/libkmod/libkmod-config.c
+++ b/libkmod/libkmod-config.c
@@ -651,8 +651,16 @@ static int kmod_config_parse(struct kmod_config *config, int fd,
Index: kmod-31/libkmod/libkmod-config.c
===================================================================
--- kmod-31.orig/libkmod/libkmod-config.c
+++ kmod-31/libkmod/libkmod-config.c
@@ -708,8 +708,16 @@ static int kmod_config_parse(struct kmod
ERR(ctx, "%s: command %s is deprecated and not parsed anymore\n",
filename, cmd);
} else if (streq(cmd, "allow_unsupported_modules")) {
@ -35,11 +35,11 @@ index 1b24536..07d6a9e 100644
} else {
syntax_error:
ERR(ctx, "%s line %u: ignoring bad line starting with '%s'\n",
diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h
index a65ddd1..2ad74c7 100644
--- a/libkmod/libkmod-internal.h
+++ b/libkmod/libkmod-internal.h
@@ -119,6 +119,7 @@ struct kmod_config {
Index: kmod-31/libkmod/libkmod-internal.h
===================================================================
--- kmod-31.orig/libkmod/libkmod-internal.h
+++ kmod-31/libkmod/libkmod-internal.h
@@ -130,6 +130,7 @@ struct kmod_config {
struct kmod_list *softdeps;
struct kmod_list *paths;
@ -47,13 +47,13 @@ index a65ddd1..2ad74c7 100644
};
int kmod_config_new(struct kmod_ctx *ctx, struct kmod_config **config, const char * const *config_paths) __attribute__((nonnull(1, 2,3)));
diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index bffe715..9a3a35a 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -798,6 +798,24 @@ KMOD_EXPORT int kmod_module_remove_module(struct kmod_module *mod,
extern long init_module(const void *mem, unsigned long len, const char *args);
Index: kmod-31/libkmod/libkmod-module.c
===================================================================
--- kmod-31.orig/libkmod/libkmod-module.c
+++ kmod-31/libkmod/libkmod-module.c
@@ -781,6 +781,24 @@ KMOD_EXPORT const char *kmod_module_get_
return mod->name;
}
+static int check_module_supported(struct kmod_module *mod)
+{
@ -74,17 +74,17 @@ index bffe715..9a3a35a 100644
+}
+
/**
* kmod_module_insert_module:
* kmod_module_get_path:
* @mod: kmod module
@@ -823,6 +841,7 @@ KMOD_EXPORT int kmod_module_insert_module(struct kmod_module *mod,
struct kmod_elf *elf;
@@ -959,6 +977,7 @@ KMOD_EXPORT int kmod_module_insert_modul
int err;
const char *path;
const char *args = options ? options : "";
+ const struct kmod_config *config = kmod_get_config(mod->ctx);
if (mod == NULL)
return -ENOENT;
@@ -841,6 +860,18 @@ KMOD_EXPORT int kmod_module_insert_module(struct kmod_module *mod,
@@ -977,6 +996,18 @@ KMOD_EXPORT int kmod_module_insert_modul
}
}
@ -100,9 +100,6 @@ index bffe715..9a3a35a 100644
+ }
+ }
+
if (kmod_file_get_direct(mod->file)) {
unsigned int kernel_flags = 0;
--
2.20.1
err = do_finit_module(mod, flags, args);
if (err == -ENOSYS)
err = do_init_module(mod, flags, args);

View File

@ -1,7 +1,7 @@
From 90446ff0273775ee20762bb892fd3e901c8eb8ac Mon Sep 17 00:00:00 2001
From 1bb5f3aafc9b4bff638ed3288308289fdec60270 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Mon, 17 Jul 2023 21:23:51 +0200
Subject: [PATCH] configure: Detect openssl sm3 support
Subject: [PATCH 1/6] configure: Detect openssl sm3 support
Older openssl versions do not support sm3. The code has an option to
disable the sm3 hash but the lack of openssl support is not detected
@ -9,17 +9,17 @@ automatically.
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
configure.ac | 6 ++++++
1 file changed, 6 insertions(+)
configure.ac | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/configure.ac b/configure.ac
index a1e64e190d2f..5a582cb5a2af 100644
index 82a853289a83..e5bceeaa1722 100644
--- a/configure.ac
+++ b/configure.ac
@@ -148,6 +148,13 @@ AS_IF([test "x$with_openssl" != "xno"], [
PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0])
@@ -123,6 +123,13 @@ AC_ARG_WITH([openssl],
AS_IF([test "x$with_openssl" != "xno"], [
PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0], [LIBS="$LIBS $libcrypto_LIBS"])
AC_DEFINE([ENABLE_OPENSSL], [1], [Enable openssl for modinfo.])
module_signatures="PKCS7 $module_signatures"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include <openssl/ssl.h>
+ int nid = NID_sm3;]])], [
+ AC_MSG_NOTICE([openssl supports sm3])
@ -31,5 +31,5 @@ index a1e64e190d2f..5a582cb5a2af 100644
AC_MSG_NOTICE([openssl support not requested])
])
--
2.41.0
2.42.0

View File

@ -1,288 +0,0 @@
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

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE6rM8lpABPHM5FqyDm6KlpjDL6lMFAmK9v0IACgkQm6KlpjDL
6lNxuRAAhPg6EYA3Y+fYefTDN7sEc4LA64Y8uu7GIHqZzTwislxN+15pU5gSUjDF
igk84+lYEnmgO5uMVdQrilelxzhq4lhxxjwTjSK/nFUzZoCAQDGirWk34FnMcXCi
mHtbqtFy9ZZdZ+ktisI1uGKYkTNIhhQp6iuLdgYugSVgEjXTKIhjZsRu96OzY82a
1qh7i4CZNCqaS2qPjs8FukBwvgG1xEp3mlnZMkjA9j28WJVsJ9dxxkdXB03wfnvf
E1lFX4HDqwLH//vXQvDo4nD6JhXNGn7bSCKWb88doW6KkMCBhPVKql/lo2It2+sj
VbmzCrtn8GR42FmVhJZKMPMLxYsUgRVn08W2y6ThZOBWtK5tFCOHHHhGjh3D16WI
9jVmmvmn9bNNNhrJJncRWUfmYlf4v9CX8yBfzq5a4z7XYloo/XR77WDuB+G0o4jN
vukauZhsVg8LxPIv+q6xfE0WRzOqAjl2qQRdewYJJBDXLFTa8/9QlYy/LMEPZ6u9
hMnrUNHjUQBVojKLxHlArjZXflSp5DY46+IyhRrFWnPd1wArTvF0IStJn2rm2UuO
F0MfRXwMJwqll7TR9lai+X+7deh+F9YY5XyhXKXTseJYnaO28rzVMk+tBHmZFm5l
1R9gq+TsJZBVLKeb/QpeCdfdkoyDAmnd0PB8aA6IHdwzgx9nBB0=
=SXtI
-----END PGP SIGNATURE-----

BIN
kmod-30.tar.xz (Stored with Git LFS)

Binary file not shown.

16
kmod-31.tar.sign Normal file
View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE6rM8lpABPHM5FqyDm6KlpjDL6lMFAmUW3PIACgkQm6KlpjDL
6lPmUw/9EoddTKB7wVaTHPHqx4uu00jz8BKUFJsAppmdbAco+2++n8GWzqi6TgIV
+kwCweS7Ac6xivQQKhKlXrzHw4cXD8uwpWEmzW+o2gP9dSKHcr60ozfPMQ0QNEUF
6wOMGZffkbGmGYKBs6F2QriLznEVvbCYTyTE1khtSH9YIPR7EB2QDI4QCGCWGIdQ
VgmzPRnfoXr/Iiyw86w9AKB4WiqVxor97Gcz7Jyy5qM/9Y9OXi10y75mDKwFgHPJ
JN+Zt3IJXpUpc7rasIlvXfuK2W0q1SLkFWLwNUQ1sXX2QeriJYaMbi+eaJ4fvwjs
YN53duGyvajGkOEXvg487Em411ZPdbWmfbtrHQqhMBOMy/6cSx0CuSoztNBPqc9S
vALwusaoGxoh3PNfUZoHUPHvtRhT3s/J27p7EKK5uX63hvJuKj0/+XD6+mHKCgxG
0lFMglRa6AsVvxiudFEwIafLMaTPLOjcLxnu2zQOeDholZZES3wNkY4AQ5KHjvwH
owF102atzMq+2jyDTsBLdazZhfOwmUG+OwDP9tfWUMaCR6uK8KkJQLFQHZvij3T2
ynO9axS9KhLB48jKBSGffR2dUnvshkfdEcjiIsTOxOk3nOnyIvqJLA4VL4rJnPVu
ZHZgTN21QNZCLAaMT9NND7klBmZ4qvPBPEpa+ugwXMnyWj6kZf4=
=e1C2
-----END PGP SIGNATURE-----

3
kmod-31.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f5a6949043cc72c001b728d8c218609c5a15f3c33d75614b78c79418fcf00d80
size 570936

View File

@ -1,7 +1,7 @@
From 2e4eff4f252fe2a4c5bdb81e3ca2639b9b5f04c6 Mon Sep 17 00:00:00 2001
From 6760cce5b59eeb2ba9b96f43626221df0128a285 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/7] kmod: Add pkgconfig file with kmod compile time
Subject: [PATCH 4/6] kmod: Add pkgconfig file with kmod compile time
configuration
Show distconfdir (where system configuration files are searched/to be
@ -14,31 +14,27 @@ v2: mention module signature in commit message
v3: add sysconfdir
v5: add distconfdir, switch to pkgconfig
---
Makefile.am | 6 +++---
Makefile.am | 2 +-
configure.ac | 11 +++++++++++
tools/kmod.pc.in | 9 +++++++++
3 files changed, 23 insertions(+), 3 deletions(-)
3 files changed, 21 insertions(+), 1 deletion(-)
create mode 100644 tools/kmod.pc.in
diff --git a/Makefile.am b/Makefile.am
index a03846d02b9c..18818c811634 100644
index e6630a36e18c..2a54c25bd631 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -118,9 +118,9 @@ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES)
@@ -96,7 +96,7 @@ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES)
libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD)
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libkmod/libkmod.pc
-EXTRA_DIST += libkmod/libkmod.pc.in
-CLEANFILES += libkmod/libkmod.pc
+pkgconfig_DATA = libkmod/libkmod.pc tools/kmod.pc
+EXTRA_DIST += libkmod/libkmod.pc.in tools/kmod.pc.in
+CLEANFILES += libkmod/libkmod.pc tools/kmod.pc
bashcompletiondir=@bashcompletiondir@
dist_bashcompletion_DATA = \
diff --git a/configure.ac b/configure.ac
index 18206ccdb607..a6ed8a36ca70 100644
index fd88d1fbdbf7..7bf8d78ca747 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,6 +21,9 @@ LT_INIT([disable-static pic-only])
@ -51,39 +47,39 @@ index 18206ccdb607..a6ed8a36ca70 100644
#####################################################################
# Program checks and configurations
#####################################################################
@@ -93,6 +96,7 @@ AC_ARG_WITH([zstd],
@@ -94,6 +97,7 @@ AC_ARG_WITH([zstd],
AS_IF([test "x$with_zstd" != "xno"], [
PKG_CHECK_MODULES([libzstd], [libzstd >= 1.4.4])
PKG_CHECK_MODULES([libzstd], [libzstd >= 1.4.4], [LIBS="$LIBS $libzstd_LIBS"])
AC_DEFINE([ENABLE_ZSTD], [1], [Enable Zstandard for modules.])
+ module_compressions="zstd $module_compressions"
], [
AC_MSG_NOTICE([Zstandard support not requested])
])
@@ -104,6 +108,7 @@ AC_ARG_WITH([xz],
@@ -105,6 +109,7 @@ AC_ARG_WITH([xz],
AS_IF([test "x$with_xz" != "xno"], [
PKG_CHECK_MODULES([liblzma], [liblzma >= 4.99])
PKG_CHECK_MODULES([liblzma], [liblzma >= 4.99], [LIBS="$LIBS $liblzma_LIBS"])
AC_DEFINE([ENABLE_XZ], [1], [Enable Xz for modules.])
+ module_compressions="xz $module_compressions"
], [
AC_MSG_NOTICE([Xz support not requested])
])
@@ -115,6 +120,7 @@ AC_ARG_WITH([zlib],
@@ -116,6 +121,7 @@ AC_ARG_WITH([zlib],
AS_IF([test "x$with_zlib" != "xno"], [
PKG_CHECK_MODULES([zlib], [zlib])
PKG_CHECK_MODULES([zlib], [zlib], [LIBS="$LIBS $zlib_LIBS"])
AC_DEFINE([ENABLE_ZLIB], [1], [Enable zlib for modules.])
+ module_compressions="gzip $module_compressions"
], [
AC_MSG_NOTICE([zlib support not requested])
])
@@ -126,6 +132,7 @@ AC_ARG_WITH([openssl],
AS_IF([test "x$with_openssl" != "xno"], [
PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0])
AC_DEFINE([ENABLE_OPENSSL], [1], [Enable openssl for modinfo.])
@@ -134,6 +140,7 @@ AS_IF([test "x$with_openssl" != "xno"], [
AC_MSG_NOTICE([openssl sm3 support not detected])
CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3"
])
+ module_signatures="PKCS7 $module_signatures"
], [
AC_MSG_NOTICE([openssl support not requested])
])
@@ -290,11 +297,15 @@ AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build])
@@ -298,6 +305,9 @@ AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build])
# Generate files from *.in
#####################################################################
@ -93,8 +89,10 @@ index 18206ccdb607..a6ed8a36ca70 100644
AC_CONFIG_FILES([
Makefile
man/Makefile
libkmod/docs/Makefile
@@ -305,6 +315,7 @@ AC_CONFIG_FILES([
libkmod/docs/version.xml
libkmod/libkmod.pc
libkmod/python/kmod/version.py
+ tools/kmod.pc
])
@ -115,5 +113,5 @@ index 000000000000..2595980a6b35
+Description: Tools to deal with kernel modules
+Version: @VERSION@
--
2.41.0
2.42.0

View File

@ -22,7 +22,7 @@
Name: kmod-testsuite
%define lname libkmod2
Version: 30
Version: 31
Release: 0
Summary: Testsuite of the kmod package
License: GPL-2.0-or-later AND LGPL-2.1-or-later
@ -40,17 +40,12 @@ Patch3: 0009-libkmod-Implement-filtering-of-unsupported-modules-o.patch
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
Patch6: 0012-modprobe-print-unsupported-status.patch
Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.patch
Patch7: configure-Detect-openssl-sm3-support.patch
Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.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-pkgconfig-file-with-kmod-compile-time-confi.patch
Patch15: usr-lib-modules.patch
Patch16: no-stylesheet-download.patch
Patch17: configure-Detect-openssl-sm3-support.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: docbook-xsl-stylesheets

View File

@ -1,3 +1,27 @@
-------------------------------------------------------------------
Tue Oct 17 15:34:57 UTC 2023 - Michal Suchanek <msuchanek@suse.de>
- Fix tests
* refresh configure-Detect-openssl-sm3-support.patch
* refresh kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch
* refresh usr-lib-modules.patch
-------------------------------------------------------------------
Fri Sep 29 16:38:01 UTC 2023 - Jan Engelhardt <jengelh@inai.de>
- Update to release 31
* Allow passing a path to modprobe so the module is loaded from
anywhere from the filesystem.
* Use in-kernel decompression if available.
* depmod learned a `-o <dir>` option to allow using a separate
output directory.
- Delete depmod-Introduce-outdir-option.patch,
testsuite-Handle-different-sysconfdir.patch,
testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch,
0001-testsuite-repair-read-of-uninitialized-memory.patch,
testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch
-------------------------------------------------------------------
Mon Jul 24 12:50:23 UTC 2023 - Michal Suchanek <msuchanek@suse.de>

View File

@ -22,7 +22,7 @@
Name: kmod
%define lname libkmod2
Version: 30
Version: 31
Release: 0
Summary: Utilities to load modules into the kernel
License: GPL-2.0-or-later AND LGPL-2.1-or-later
@ -41,17 +41,12 @@ Patch3: 0009-libkmod-Implement-filtering-of-unsupported-modules-o.patch
Patch4: 0010-modprobe-Implement-allow-unsupported-modules.patch
Patch5: 0011-Do-not-filter-unsupported-modules-when-running-a-van.patch
Patch6: 0012-modprobe-print-unsupported-status.patch
Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.patch
Patch7: configure-Detect-openssl-sm3-support.patch
Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.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-pkgconfig-file-with-kmod-compile-time-confi.patch
Patch15: usr-lib-modules.patch
Patch16: no-stylesheet-download.patch
Patch17: configure-Detect-openssl-sm3-support.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: docbook-xsl-stylesheets

View File

@ -1,178 +0,0 @@
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

View File

@ -1,91 +0,0 @@
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

View File

@ -1,193 +0,0 @@
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

View File

@ -1,11 +1,14 @@
From d6ca73ea19ef26506686e7cc85044c40f3fb917c Mon Sep 17 00:00:00 2001
From 4ad85461d27d240efcb4922eb5810a65356a8d6a Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Fri, 26 May 2023 10:38:05 +0200
Subject: [PATCH 4/7] libkmod, depmod, modprobe: Make directory for kernel
Subject: [PATCH 5/6] libkmod, depmod, modprobe: Make directory for kernel
modules configurable
modprobe.d is now searched under ${prefix}/lib, add ${module_directory} to
specify the directory where to search for kernel modules.
Now that modprobe.d is searched under ${prefix}/lib, allow a complete
transition to files only under ${prefix} by adding a ${module_directory}
configuration. This specifies the directory where to search for kernel
modules and should match the location where the kernel/distro installs
them.
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.
@ -13,6 +16,7 @@ move kernel modules to /usr while others can keep them in /lib.
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
v4: Make the whole path configurable
v5: More verbose commit message
---
Makefile.am | 3 +-
configure.ac | 7 ++
@ -35,7 +39,7 @@ v4: Make the whole path configurable
18 files changed, 107 insertions(+), 84 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index fd4c7a04ec51..1d51a43d68ba 100644
index 2a54c25bd631..4062d81227df 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,6 +20,7 @@ AM_CPPFLAGS = \
@ -46,7 +50,7 @@ index fd4c7a04ec51..1d51a43d68ba 100644
${zlib_CFLAGS}
AM_CFLAGS = $(OUR_CFLAGS)
@@ -247,7 +248,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh
@@ -220,7 +221,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh
MODULE_PLAYGROUND = testsuite/module-playground
ROOTFS = testsuite/rootfs
ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine
@ -56,10 +60,10 @@ index fd4c7a04ec51..1d51a43d68ba 100644
build-module-playground:
$(AM_V_GEN)if test "$(top_srcdir)" != "$(top_builddir)"; then \
diff --git a/configure.ac b/configure.ac
index a6ed8a36ca70..602d3d3dbdf1 100644
index 7bf8d78ca747..d282fef9a08c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -90,6 +90,12 @@ AC_ARG_WITH([rootlibdir],
@@ -91,6 +91,12 @@ AC_ARG_WITH([rootlibdir],
[], [with_rootlibdir=$libdir])
AC_SUBST([rootlibdir], [$with_rootlibdir])
@ -72,7 +76,7 @@ index a6ed8a36ca70..602d3d3dbdf1 100644
AC_ARG_WITH([zstd],
AS_HELP_STRING([--with-zstd], [handle Zstandard-compressed modules @<:@default=disabled@:>@]),
[], [with_zstd=no])
@@ -316,6 +322,7 @@ AC_MSG_RESULT([
@@ -326,6 +332,7 @@ AC_MSG_RESULT([
$PACKAGE $VERSION
=======
@ -81,10 +85,10 @@ index a6ed8a36ca70..602d3d3dbdf1 100644
sysconfdir: ${sysconfdir}
distconfdir: ${distconfdir}
diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
index bc05a1873edf..876458f7449a 100644
index 57fac1cb9f7b..4489cbd04bf7 100644
--- a/libkmod/libkmod.c
+++ b/libkmod/libkmod.c
@@ -209,7 +209,7 @@ static int log_priority(const char *priority)
@@ -210,7 +210,7 @@ static int log_priority(const char *priority)
return 0;
}
@ -93,7 +97,7 @@ index bc05a1873edf..876458f7449a 100644
static char *get_kernel_release(const char *dirname)
{
@@ -231,7 +231,7 @@ static char *get_kernel_release(const char *dirname)
@@ -266,7 +266,7 @@ static enum kmod_file_compression_type get_kernel_compression(struct kmod_ctx *c
/**
* kmod_new:
* @dirname: what to consider as linux module's directory, if NULL
@ -181,7 +185,7 @@ index 9fe0324a2527..b6c4d6045829 100644
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
when loading kernel modules.
diff --git a/man/modprobe.xml b/man/modprobe.xml
index db39c7a18bb7..7374f37a0f7b 100644
index 91f9e27997cd..4d1fd59c000b 100644
--- a/man/modprobe.xml
+++ b/man/modprobe.xml
@@ -78,7 +78,7 @@
@ -231,7 +235,7 @@ index e6045b0dd932..a7ab09bea2bf 100644
ifeq ($(FAKE_BUILD),)
FAKE_BUILD=0
diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh
index 8b13a40f2cae..2fc7e592d1b5 100755
index 4440ddcd6b4d..a780f9381b3c 100755
--- a/testsuite/setup-rootfs.sh
+++ b/testsuite/setup-rootfs.sh
@@ -16,6 +16,19 @@ create_rootfs() {
@ -254,7 +258,7 @@ index 8b13a40f2cae..2fc7e592d1b5 100755
if [ "$SYSCONFDIR" != "/etc" ]; then
find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do
@@ -32,55 +45,55 @@ feature_enabled() {
@@ -32,57 +45,57 @@ feature_enabled() {
declare -A map
map=(
@ -338,6 +342,8 @@ index 8b13a40f2cae..2fc7e592d1b5 100755
+ ["test-modprobe/alias-to-none$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko"
+ ["test-modprobe/module-param-kcmdline$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko"
["test-modprobe/external/lib/modules/external/"]="mod-simple.ko"
["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko"
["test-modprobe/module-from-relpath/home/foo/"]="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"
@ -353,7 +359,7 @@ index 8b13a40f2cae..2fc7e592d1b5 100755
["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=(
@@ -90,20 +103,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"
@ -486,7 +492,7 @@ index 56e73609f204..c77c4bbc04eb 100644
return EXIT_FAILURE;
}
diff --git a/tools/depmod.c b/tools/depmod.c
index aada5ac57902..5ef490473186 100644
index 630fef9c8fb0..7f7c4b74d216 100644
--- a/tools/depmod.c
+++ b/tools/depmod.c
@@ -911,7 +911,7 @@ struct vertex;
@ -547,10 +553,10 @@ index d0aab200af4e..cacc32dc4c40 100644
dirname = dirname_buf;
}
diff --git a/tools/modprobe.c b/tools/modprobe.c
index 322d5d199372..c7016a58e43f 100644
index e891028349a8..5306bef250da 100644
--- a/tools/modprobe.c
+++ b/tools/modprobe.c
@@ -146,7 +146,7 @@ static void help(void)
@@ -142,7 +142,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"
@ -559,7 +565,7 @@ index 322d5d199372..c7016a58e43f 100644
"\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 **orig_argv)
@@ -999,7 +999,7 @@ static int do_modprobe(int argc, char **orig_argv)
kversion = u.release;
}
snprintf(dirname_buf, sizeof(dirname_buf),
@ -592,5 +598,5 @@ index 8d2356da73f3..5ef3743e967b 100644
ret = EXIT_FAILURE;
}
--
2.41.0
2.42.0