From 9ece9dcfdc57098ebb40a39a84584074fd8b2d5ce9abc023dbbd6216540ee74a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 5 Jul 2023 08:08:25 +0000 Subject: [PATCH 1/6] - Reset package to the 2023-05-04 state [boo#12116]. The 2023-05-26 update broke `make modules_install` which failed with "depmod: ERROR: could not open directory $someprefix/usr/lib/modules/99.98.6.4.1-1-default: (ENOENT)" OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=219 --- depmod-Introduce-outdir-option.patch | 288 --------- ...command-to-show-compile-time-configu.patch | 90 --- kmod-testsuite.spec | 16 +- kmod.changes | 8 + kmod.spec | 16 +- ....d-Fix-incorrect-usr-lib-search-path.patch | 29 - no-stylesheet-download.patch | 26 +- testsuite-Handle-different-sysconfdir.patch | 178 ------ ...etup-rootfs-logic-from-Makefile-to-s.patch | 91 --- ...-use-defines-for-the-rootfs-lib_modu.patch | 193 ------ usr-lib-modprobe.patch | 69 +- usr-lib-modules.patch | 602 ------------------ 12 files changed, 34 insertions(+), 1572 deletions(-) delete mode 100644 depmod-Introduce-outdir-option.patch delete mode 100644 kmod-Add-config-command-to-show-compile-time-configu.patch delete mode 100644 man-depmod.d-Fix-incorrect-usr-lib-search-path.patch delete mode 100644 testsuite-Handle-different-sysconfdir.patch delete mode 100644 testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch delete mode 100644 testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch delete mode 100644 usr-lib-modules.patch diff --git a/depmod-Introduce-outdir-option.patch b/depmod-Introduce-outdir-option.patch deleted file mode 100644 index 736d4bd..0000000 --- a/depmod-Introduce-outdir-option.patch +++ /dev/null @@ -1,288 +0,0 @@ -From 7e145ef8bd7a45fef6ee4cf56d7fab9f21d23e72 Mon Sep 17 00:00:00 2001 -From: Emil Velikov -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 -[ 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 ---- - 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 @@ - - depmod - -+ - - - -@@ -151,6 +152,25 @@ - - - -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ Set the output directory where depmod will store any generated file. -+ outdir serves as a root to that location, -+ similar to how basedir is used. Also this -+ setting takes precedence and if used together with -+ basedir it will result in the input being -+ that directory, but the output being the one set by -+ outdir. -+ -+ -+ - - - -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 - diff --git a/kmod-Add-config-command-to-show-compile-time-configu.patch b/kmod-Add-config-command-to-show-compile-time-configu.patch deleted file mode 100644 index 953399b..0000000 --- a/kmod-Add-config-command-to-show-compile-time-configu.patch +++ /dev/null @@ -1,90 +0,0 @@ -From be701954b3e730944f949c1c3fc7dc5144e37de0 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -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 ---- - 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 @@ - Show the help message. - - -+ -+ config -+ -+ Show compile time options in JSON. -+ -+ - - list - -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 - diff --git a/kmod-testsuite.spec b/kmod-testsuite.spec index a4d29b0..72fe0d8 100644 --- a/kmod-testsuite.spec +++ b/kmod-testsuite.spec @@ -40,16 +40,9 @@ 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 -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-config-command-to-show-compile-time-configu.patch -Patch15: usr-lib-modules.patch -Patch16: no-stylesheet-download.patch +Patch7: usr-lib-modprobe.patch +Patch8: no-stylesheet-download.patch +Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: docbook-xsl-stylesheets @@ -94,9 +87,6 @@ export LDFLAGS="-Wl,-z,relro,-z,now" %endif --includedir="%_includedir/kmod" \ --with-rootlibdir="%_libdir" \ -%if 0%{?suse_version} > 1500 - --with-module-prefix="%_prefix" \ -%endif --bindir="%_bindir" %make_build KDIR="%kdir" diff --git a/kmod.changes b/kmod.changes index 3dd2925..ab9b174 100644 --- a/kmod.changes +++ b/kmod.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt + +- Reset package to the 2023-05-04 state [boo#12116]. The 2023-05-26 + update broke `make modules_install` which failed with + "depmod: ERROR: could not open directory + $someprefix/usr/lib/modules/99.98.6.4.1-1-default: (ENOENT)" + ------------------------------------------------------------------- Fri Jun 30 16:39:17 UTC 2023 - Michal Suchanek diff --git a/kmod.spec b/kmod.spec index 7cb831e..1665ac0 100644 --- a/kmod.spec +++ b/kmod.spec @@ -40,16 +40,9 @@ 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 -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-config-command-to-show-compile-time-configu.patch -Patch15: usr-lib-modules.patch -Patch16: no-stylesheet-download.patch +Patch7: usr-lib-modprobe.patch +Patch8: no-stylesheet-download.patch +Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: docbook-xsl-stylesheets @@ -136,9 +129,6 @@ export LDFLAGS="-Wl,-z,relro,-z,now" %endif --includedir="%_includedir/kmod" \ --with-rootlibdir="%_libdir" \ -%if 0%{?suse_version} > 1500 - --with-module-prefix="%_prefix" \ -%endif --bindir="%_bindir" %make_build diff --git a/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch b/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch deleted file mode 100644 index ee1fbb0..0000000 --- a/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a792ef9a42b9bd8cc76260b4aa61a681f6998364 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -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 ---- - 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 @@ - - - -- /usr/lib/depmod.d/*.conf -+ /lib/depmod.d/*.conf - /usr/local/lib/depmod.d/*.conf - /run/depmod.d/*.conf - /etc/depmod.d/*.conf --- -2.41.0 - diff --git a/no-stylesheet-download.patch b/no-stylesheet-download.patch index a261344..cbe9b59 100644 --- a/no-stylesheet-download.patch +++ b/no-stylesheet-download.patch @@ -1,24 +1,8 @@ -From cd775d005f7d36395ef554d128c849fac5430f37 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -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 ---- - 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) +--- kmod-27/man/Makefile.am~ 2018-01-31 18:10:59.569903733 +0100 ++++ kmod-27/man/Makefile.am 2021-01-12 21:48:28.488571775 +0100 +@@ -22,4 +22,4 @@ --nonet \ --stringparam man.output.quietly 1 \ --param funcsynopsis.style "'ansi'" \ -- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl - -+ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl - --- -2.41.0 - +- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ++ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl $< diff --git a/testsuite-Handle-different-sysconfdir.patch b/testsuite-Handle-different-sysconfdir.patch deleted file mode 100644 index 478169b..0000000 --- a/testsuite-Handle-different-sysconfdir.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 94fe372a5f6163f5bc8b620e6068ea2f1d99f858 Mon Sep 17 00:00:00 2001 -From: Lucas De Marchi -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 -Reviewed-by: Emil Velikov ---- - 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 - diff --git a/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch b/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch deleted file mode 100644 index 5154bad..0000000 --- a/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 00c15bc0710c399749421335c2c9372c9afee080 Mon Sep 17 00:00:00 2001 -From: Lucas De Marchi -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 -Reviewed-by: Emil Velikov ---- - 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 - diff --git a/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch b/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch deleted file mode 100644 index 0edaa62..0000000 --- a/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch +++ /dev/null @@ -1,193 +0,0 @@ -From 892c2c451397a4f424196bc57e2536651b0549c3 Mon Sep 17 00:00:00 2001 -From: Emil Velikov -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 -Signed-off-by: Lucas De Marchi ---- - 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 - diff --git a/usr-lib-modprobe.patch b/usr-lib-modprobe.patch index b0ed0d7..ed5746b 100644 --- a/usr-lib-modprobe.patch +++ b/usr-lib-modprobe.patch @@ -1,8 +1,7 @@ -From 9d4c3adcd051408a9a4489984be73f9c06b938ab Mon Sep 17 00:00:00 2001 +From fc1b2c14e2ca4d7ccd4a3b75a435ab7d927533bc Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Tue, 12 Jan 2021 16:54:46 +0100 -Subject: [PATCH 2/9] libkmod, depmod: Load modprobe.d, depmod.d from - $prefix/lib. +Subject: [PATCH] modprobe.d, depmod.d: load from /usr/lib. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -11,28 +10,20 @@ There is an ongoing effort to limit use of files outside of /usr (or $prefix on general). Currently all modprobe.d paths are hardcoded to outside of $prefix. Teach kmod to load modprobe.d from $prefix/lib. -On some distributions /usr/lib and /lib are the same directory because -of a compatibility symlink, and it is possible to craft configuration -files with sideeffects that would behave differently when loaded twice. -However, the override semantic ensures that one 'overrides' the other, -and only one configuration file of the same name is loaded from any of -the seach directories. - Cc: Marcus Rückert Cc: Takashi Iwai Cc: Dominique Leuenberger Signed-off-by: Michal Suchanek --- Makefile.am | 1 + - libkmod/libkmod.c | 3 ++- - man/Makefile.am | 9 +++++++-- + libkmod/libkmod.c | 1 + man/depmod.d.xml | 1 + man/modprobe.d.xml | 1 + tools/depmod.c | 1 + - 6 files changed, 13 insertions(+), 3 deletions(-) + 5 files changed, 5 insertions(+) diff --git a/Makefile.am b/Makefile.am -index 0e4877074f40..e7313fa8a33e 100644 +index d859c240178f..8553368988c0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,7 @@ AM_CPPFLAGS = \ @@ -44,7 +35,7 @@ index 0e4877074f40..e7313fa8a33e 100644 AM_CFLAGS = $(OUR_CFLAGS) diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 7c2b889d713e..75fc8be3fadc 100644 +index 7c2b889d713e..ddf13fb3d822 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -65,6 +65,7 @@ static const char *default_config_paths[] = { @@ -55,62 +46,32 @@ index 7c2b889d713e..75fc8be3fadc 100644 "/lib/modprobe.d", 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 -index 8d3d821cddc8..431ebca6654b 100644 +index b315e931d635..8a898cf4a9eb 100644 --- a/man/depmod.d.xml +++ b/man/depmod.d.xml -@@ -40,6 +40,7 @@ +@@ -39,6 +39,7 @@ + - /lib/depmod.d/*.conf -+ @PREFIX@/lib/depmod.d/*.conf ++ /lib/depmod.d/*.conf + /usr/lib/depmod.d/*.conf /usr/local/lib/depmod.d/*.conf /run/depmod.d/*.conf - /etc/depmod.d/*.conf diff --git a/man/modprobe.d.xml b/man/modprobe.d.xml -index 0ab3e9110a7e..e8a91d7668af 100644 +index 0ab3e9110a7e..8a7c696dcee1 100644 --- a/man/modprobe.d.xml +++ b/man/modprobe.d.xml @@ -41,6 +41,7 @@ /lib/modprobe.d/*.conf -+ @PREFIX@/lib/modprobe.d/*.conf ++ /usr/lib/modprobe.d/*.conf /usr/local/lib/modprobe.d/*.conf /run/modprobe.d/*.conf /etc/modprobe.d/*.conf diff --git a/tools/depmod.c b/tools/depmod.c -index 364b7d4faa9e..a9349b20ee9c 100644 +index eb810b811e35..8f6a4f8cd7cb 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -54,6 +54,7 @@ static const char *default_cfg_paths[] = { @@ -122,5 +83,5 @@ index 364b7d4faa9e..a9349b20ee9c 100644 NULL }; -- -2.41.0 +2.26.2 diff --git a/usr-lib-modules.patch b/usr-lib-modules.patch deleted file mode 100644 index aa536f4..0000000 --- a/usr-lib-modules.patch +++ /dev/null @@ -1,602 +0,0 @@ -From cb784d4f70cd49565a934bfae87373fe495adec8 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -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 ---- - 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 | 6 +- - tools/kmod.c | 1 + - tools/modinfo.c | 4 +- - tools/modprobe.c | 4 +- - tools/static-nodes.c | 6 +- - 18 files changed, 108 insertions(+), 85 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 246d4f5b138f..b25a95cfe266 100644 ---- a/Makefile.am -+++ b/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) -@@ -245,7 +246,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 \ -diff --git a/configure.ac b/configure.ac -index a74d3baf0a42..f5947dd7b446 100644 ---- a/configure.ac -+++ b/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} -diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 75fc8be3fadc..8a0b2f243b30 100644 ---- a/libkmod/libkmod.c -+++ b/libkmod/libkmod.c -@@ -209,7 +209,7 @@ static int log_priority(const char *priority) - 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 char *dirname) - /** - * 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. - * -diff --git a/man/Makefile.am b/man/Makefile.am -index ad07c30bbd24..1a9a92f9c224 100644 ---- a/man/Makefile.am -+++ b/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 \ -diff --git a/man/depmod.d.xml b/man/depmod.d.xml -index 431ebca6654b..2583a8d8a5fc 100644 ---- a/man/depmod.d.xml -+++ b/man/depmod.d.xml -@@ -70,7 +70,7 @@ - - - -- 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 depmod. Directories are - listed in order, with the highest priority given to the -@@ -101,7 +101,7 @@ - depmod command. It is possible to - specify one kernel or all kernels using the * wildcard. - modulesubdirectory 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. - - -@@ -110,7 +110,7 @@ - specifying the following command: "override kmod * extra". - This will ensure that any matching module name installed - under the extra 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. - - -diff --git a/man/depmod.xml b/man/depmod.xml -index 3b0097184fd7..9d9cf195a355 100644 ---- a/man/depmod.xml -+++ b/man/depmod.xml -@@ -80,7 +80,7 @@ - - depmod creates a list of module dependencies by - reading each module under -- /lib/modules/version and -+ @MODULE_PREFIX@/lib/modules/version and - determining what symbols it exports and what symbols it needs. By - default, this list is written to modules.dep, and a - binary hashed version named modules.dep.bin, in the -@@ -141,7 +141,7 @@ - - - If your modules are not currently in the (normal) directory -- /lib/modules/version, -+ @MODULE_PREFIX@/lib/modules/version, - but in a staging area, you can specify a - basedir which is prepended to the - directory name. This basedir is -diff --git a/man/modinfo.xml b/man/modinfo.xml -index 9fe0324a2527..d48c64560e9d 100644 ---- a/man/modinfo.xml -+++ b/man/modinfo.xml -@@ -54,7 +54,7 @@ - modinfo extracts information from the Linux Kernel - modules given on the command line. If the module name is not a filename, - then the -- /lib/modules/version -+ @MODULE_PREFIX@/lib/modules/version - directory is searched, as is also done by - modprobe8 - when loading kernel modules. -diff --git a/man/modprobe.xml b/man/modprobe.xml -index db39c7a18bb7..2c5ede617e23 100644 ---- a/man/modprobe.xml -+++ b/man/modprobe.xml -@@ -78,7 +78,7 @@ - is no difference between _ and - in module names (automatic - underscore conversion is performed). - modprobe looks in the module directory -- /lib/modules/`uname -r` for all -+ @MODULE_PREFIX@/lib/modules/`uname -r` for all - the modules and other files, except for the optional - configuration files in the - /etc/modprobe.d directory -diff --git a/man/modules.dep.xml b/man/modules.dep.xml -index ed633694ec9e..9130ec392089 100644 ---- a/man/modules.dep.xml -+++ b/man/modules.dep.xml -@@ -34,8 +34,8 @@ - - - -- /lib/modules/modules.dep -- /lib/modules/modules.dep.bin -+ @MODULE_PREFIX@/lib/modules/modules.dep -+ @MODULE_PREFIX@/lib/modules/modules.dep.bin - - - DESCRIPTION -@@ -43,7 +43,7 @@ - modules.dep.bin is a binary file generated by - depmod listing the dependencies for - every module in the directories under -- /lib/modules/version. -+ @MODULE_PREFIX@/lib/modules/version. - It is used by kmod tools such as modprobe and - libkmod. - -diff --git a/testsuite/module-playground/Makefile b/testsuite/module-playground/Makefile -index e6045b0dd932..a7ab09bea2bf 100644 ---- a/testsuite/module-playground/Makefile -+++ b/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 -diff --git a/testsuite/setup-rootfs.sh b/testsuite/setup-rootfs.sh -index 8b13a40f2cae..abc3790715db 100755 ---- a/testsuite/setup-rootfs.sh -+++ b/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=( -diff --git a/testsuite/test-depmod.c b/testsuite/test-depmod.c -index 93606947f18a..870f2667862b 100644 ---- a/testsuite/test-depmod.c -+++ b/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_compressed, - }); - - #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_first, - }); - - #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_last, - }); - - #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"; -diff --git a/testsuite/test-testsuite.c b/testsuite/test-testsuite.c -index 56e73609f204..903a0102105e 100644 ---- a/testsuite/test-testsuite.c -+++ b/testsuite/test-testsuite.c -@@ -64,7 +64,7 @@ static int testsuite_rootfs_fopen(const struct test *t) - 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 struct test *t) - 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(const struct test *t) - { - 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; - } -diff --git a/tools/depmod.c b/tools/depmod.c -index 2d4cf75fdfee..9aa350c5f8d6 100644 ---- a/tools/depmod.c -+++ b/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,11 +3024,11 @@ static int do_depmod(int argc, char *argv[]) - } - - 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/lib/modules/%s", -+ "%s" MODULE_PREFIX "/lib/modules/%s", - out_root ?: (root ?: ""), cfg.kversion); - - if (optind == argc) -diff --git a/tools/kmod.c b/tools/kmod.c -index 28aefb463492..76f52fcae921 100644 ---- a/tools/kmod.c -+++ b/tools/kmod.c -@@ -114,6 +114,7 @@ static int kmod_config(int argc, char *argv[]) - { - unsigned i; - printf("{\"prefix\":\"" PREFIX "\"" -+ ",\"module_prefix\":\"" MODULE_PREFIX "\"" - ",\"module_compression\":["); - for(i = 0; compressions[i]; i++) { - printf("%s\"%s\"", i ? "," : "", compressions[i]); -diff --git a/tools/modinfo.c b/tools/modinfo.c -index d0aab200af4e..c10ce7ec5ef3 100644 ---- a/tools/modinfo.c -+++ b/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 *argv[]) - } - 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; - } -diff --git a/tools/modprobe.c b/tools/modprobe.c -index 2a2ae21f5370..a36d3186901e 100644 ---- a/tools/modprobe.c -+++ b/tools/modprobe.c -@@ -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" -- "\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" -@@ -970,7 +970,7 @@ static int do_modprobe(int argc, char **orig_argv) - 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; - } -diff --git a/tools/static-nodes.c b/tools/static-nodes.c -index 8d2356da73f3..868af3b58ac7 100644 ---- a/tools/static-nodes.c -+++ b/tools/static-nodes.c -@@ -212,15 +212,15 @@ static int do_static_nodes(int argc, char *argv[]) - 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; - } --- -2.41.0 - From 4a1901b08e74f0e1910eaa2c210e743dc602b8123d6274ac7ac038f727bc41f5 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 5 Jul 2023 08:10:46 +0000 Subject: [PATCH 2/6] make bot happy OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=220 --- kmod.changes | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/kmod.changes b/kmod.changes index ab9b174..f9ef725 100644 --- a/kmod.changes +++ b/kmod.changes @@ -4,7 +4,14 @@ Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt - Reset package to the 2023-05-04 state [boo#12116]. The 2023-05-26 update broke `make modules_install` which failed with "depmod: ERROR: could not open directory - $someprefix/usr/lib/modules/99.98.6.4.1-1-default: (ENOENT)" + $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 ------------------------------------------------------------------- Fri Jun 30 16:39:17 UTC 2023 - Michal Suchanek From fac76d0a65b9db3e1687a2fdddb911e5f31d235f2db7bead03ead693af1d8736 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 5 Jul 2023 08:17:06 +0000 Subject: [PATCH 3/6] bugnr OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=221 --- kmod.changes | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kmod.changes b/kmod.changes index f9ef725..0529a2e 100644 --- a/kmod.changes +++ b/kmod.changes @@ -1,9 +1,9 @@ ------------------------------------------------------------------- Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt -- Reset package to the 2023-05-04 state [boo#12116]. The 2023-05-26 - update broke `make modules_install` which failed with - "depmod: ERROR: could not open directory +- Reset package to the 2023-05-04 state [boo#1211796]. The + 2023-05-26 update broke `make modules_install` which fails + with "depmod: ERROR: could not open directory $someprefix/usr/lib/modules/99.98.6.4.1-1-default: (ENOENT)"; deletes depmod-Introduce-outdir-option.patch From 1f28798308fc2586456ccc5b1146d406fc05d01e4ae040eb4a25e9709d5c5b2e Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 5 Jul 2023 08:41:43 +0000 Subject: [PATCH 4/6] botbot OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=222 --- kmod.changes | 1 + 1 file changed, 1 insertion(+) diff --git a/kmod.changes b/kmod.changes index 0529a2e..bad8d04 100644 --- a/kmod.changes +++ b/kmod.changes @@ -12,6 +12,7 @@ Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt 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 From 6dd634e97e1eeab0ee59e8132074a57095e8a4ca1f1f5508e9017736798d5636 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sun, 16 Jul 2023 17:10:15 +0000 Subject: [PATCH 5/6] reinstate r218, + edit usr-lib-modules.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=223 --- depmod-Introduce-outdir-option.patch | 288 +++++++++ ...command-to-show-compile-time-configu.patch | 90 +++ kmod-testsuite.spec | 16 +- kmod.changes | 17 +- kmod.spec | 16 +- ....d-Fix-incorrect-usr-lib-search-path.patch | 29 + no-stylesheet-download.patch | 26 +- testsuite-Handle-different-sysconfdir.patch | 178 +++++ ...etup-rootfs-logic-from-Makefile-to-s.patch | 91 +++ ...-use-defines-for-the-rootfs-lib_modu.patch | 193 ++++++ usr-lib-modprobe.patch | 69 +- usr-lib-modules.patch | 610 ++++++++++++++++++ 12 files changed, 1584 insertions(+), 39 deletions(-) create mode 100644 depmod-Introduce-outdir-option.patch create mode 100644 kmod-Add-config-command-to-show-compile-time-configu.patch create mode 100644 man-depmod.d-Fix-incorrect-usr-lib-search-path.patch create mode 100644 testsuite-Handle-different-sysconfdir.patch create mode 100644 testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch create mode 100644 testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch create mode 100644 usr-lib-modules.patch diff --git a/depmod-Introduce-outdir-option.patch b/depmod-Introduce-outdir-option.patch new file mode 100644 index 0000000..736d4bd --- /dev/null +++ b/depmod-Introduce-outdir-option.patch @@ -0,0 +1,288 @@ +From 7e145ef8bd7a45fef6ee4cf56d7fab9f21d23e72 Mon Sep 17 00:00:00 2001 +From: Emil Velikov +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 +[ 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 +--- + 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 @@ + + depmod + ++ + + + +@@ -151,6 +152,25 @@ + + + ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ Set the output directory where depmod will store any generated file. ++ outdir serves as a root to that location, ++ similar to how basedir is used. Also this ++ setting takes precedence and if used together with ++ basedir it will result in the input being ++ that directory, but the output being the one set by ++ outdir. ++ ++ ++ + + + +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 + diff --git a/kmod-Add-config-command-to-show-compile-time-configu.patch b/kmod-Add-config-command-to-show-compile-time-configu.patch new file mode 100644 index 0000000..953399b --- /dev/null +++ b/kmod-Add-config-command-to-show-compile-time-configu.patch @@ -0,0 +1,90 @@ +From be701954b3e730944f949c1c3fc7dc5144e37de0 Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +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 +--- + 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 @@ + Show the help message. + + ++ ++ config ++ ++ Show compile time options in JSON. ++ ++ + + list + +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 + diff --git a/kmod-testsuite.spec b/kmod-testsuite.spec index 72fe0d8..a4d29b0 100644 --- a/kmod-testsuite.spec +++ b/kmod-testsuite.spec @@ -40,9 +40,16 @@ 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: usr-lib-modprobe.patch -Patch8: no-stylesheet-download.patch -Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch +Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.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-config-command-to-show-compile-time-configu.patch +Patch15: usr-lib-modules.patch +Patch16: no-stylesheet-download.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: docbook-xsl-stylesheets @@ -87,6 +94,9 @@ export LDFLAGS="-Wl,-z,relro,-z,now" %endif --includedir="%_includedir/kmod" \ --with-rootlibdir="%_libdir" \ +%if 0%{?suse_version} > 1500 + --with-module-prefix="%_prefix" \ +%endif --bindir="%_bindir" %make_build KDIR="%kdir" diff --git a/kmod.changes b/kmod.changes index bad8d04..95b2523 100644 --- a/kmod.changes +++ b/kmod.changes @@ -1,18 +1,9 @@ ------------------------------------------------------------------- -Wed Jul 5 08:05:27 UTC 2023 - Jan Engelhardt +Sun Jul 16 15:55:38 UTC 2023 - Jan Engelhardt -- Reset package to the 2023-05-04 state [boo#1211796]. The - 2023-05-26 update broke `make modules_install` which fails - with "depmod: ERROR: could not open directory - $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 +- Edit usr-lib-modules.patch to /lib/modules provide fallback + behavior for successfully running `make modules_install` in + pristine tarballs. ------------------------------------------------------------------- Fri Jun 30 16:39:17 UTC 2023 - Michal Suchanek diff --git a/kmod.spec b/kmod.spec index 1665ac0..7cb831e 100644 --- a/kmod.spec +++ b/kmod.spec @@ -40,9 +40,16 @@ 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: usr-lib-modprobe.patch -Patch8: no-stylesheet-download.patch -Patch9: 0001-testsuite-repair-read-of-uninitialized-memory.patch +Patch7: 0001-testsuite-repair-read-of-uninitialized-memory.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-config-command-to-show-compile-time-configu.patch +Patch15: usr-lib-modules.patch +Patch16: no-stylesheet-download.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: docbook-xsl-stylesheets @@ -129,6 +136,9 @@ export LDFLAGS="-Wl,-z,relro,-z,now" %endif --includedir="%_includedir/kmod" \ --with-rootlibdir="%_libdir" \ +%if 0%{?suse_version} > 1500 + --with-module-prefix="%_prefix" \ +%endif --bindir="%_bindir" %make_build diff --git a/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch b/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch new file mode 100644 index 0000000..ee1fbb0 --- /dev/null +++ b/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch @@ -0,0 +1,29 @@ +From a792ef9a42b9bd8cc76260b4aa61a681f6998364 Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +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 +--- + 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 @@ + + + +- /usr/lib/depmod.d/*.conf ++ /lib/depmod.d/*.conf + /usr/local/lib/depmod.d/*.conf + /run/depmod.d/*.conf + /etc/depmod.d/*.conf +-- +2.41.0 + diff --git a/no-stylesheet-download.patch b/no-stylesheet-download.patch index cbe9b59..a261344 100644 --- a/no-stylesheet-download.patch +++ b/no-stylesheet-download.patch @@ -1,8 +1,24 @@ ---- kmod-27/man/Makefile.am~ 2018-01-31 18:10:59.569903733 +0100 -+++ kmod-27/man/Makefile.am 2021-01-12 21:48:28.488571775 +0100 -@@ -22,4 +22,4 @@ +From cd775d005f7d36395ef554d128c849fac5430f37 Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +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 +--- + 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 \ --stringparam man.output.quietly 1 \ --param funcsynopsis.style "'ansi'" \ -- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< -+ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl $< +- http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl - ++ /usr/share/xml/docbook/stylesheet/nwalsh/current/manpages/docbook.xsl - +-- +2.41.0 + diff --git a/testsuite-Handle-different-sysconfdir.patch b/testsuite-Handle-different-sysconfdir.patch new file mode 100644 index 0000000..478169b --- /dev/null +++ b/testsuite-Handle-different-sysconfdir.patch @@ -0,0 +1,178 @@ +From 94fe372a5f6163f5bc8b620e6068ea2f1d99f858 Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi +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 +Reviewed-by: Emil Velikov +--- + 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 + diff --git a/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch b/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch new file mode 100644 index 0000000..5154bad --- /dev/null +++ b/testsuite-Move-setup-rootfs-logic-from-Makefile-to-s.patch @@ -0,0 +1,91 @@ +From 00c15bc0710c399749421335c2c9372c9afee080 Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi +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 +Reviewed-by: Emil Velikov +--- + 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 + diff --git a/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch b/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch new file mode 100644 index 0000000..0edaa62 --- /dev/null +++ b/testsuite-depmod-use-defines-for-the-rootfs-lib_modu.patch @@ -0,0 +1,193 @@ +From 892c2c451397a4f424196bc57e2536651b0549c3 Mon Sep 17 00:00:00 2001 +From: Emil Velikov +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 +Signed-off-by: Lucas De Marchi +--- + 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 + diff --git a/usr-lib-modprobe.patch b/usr-lib-modprobe.patch index ed5746b..b0ed0d7 100644 --- a/usr-lib-modprobe.patch +++ b/usr-lib-modprobe.patch @@ -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 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 Content-Type: text/plain; charset=UTF-8 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 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 Cc: Takashi Iwai Cc: Dominique Leuenberger Signed-off-by: Michal Suchanek --- Makefile.am | 1 + - libkmod/libkmod.c | 1 + + libkmod/libkmod.c | 3 ++- + man/Makefile.am | 9 +++++++-- man/depmod.d.xml | 1 + man/modprobe.d.xml | 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 -index d859c240178f..8553368988c0 100644 +index 0e4877074f40..e7313fa8a33e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,7 @@ AM_CPPFLAGS = \ @@ -35,7 +44,7 @@ index d859c240178f..8553368988c0 100644 AM_CFLAGS = $(OUR_CFLAGS) diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 7c2b889d713e..ddf13fb3d822 100644 +index 7c2b889d713e..75fc8be3fadc 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -65,6 +65,7 @@ static const char *default_config_paths[] = { @@ -46,32 +55,62 @@ index 7c2b889d713e..ddf13fb3d822 100644 "/lib/modprobe.d", 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 -index b315e931d635..8a898cf4a9eb 100644 +index 8d3d821cddc8..431ebca6654b 100644 --- a/man/depmod.d.xml +++ b/man/depmod.d.xml -@@ -39,6 +39,7 @@ - +@@ -40,6 +40,7 @@ -+ /lib/depmod.d/*.conf - /usr/lib/depmod.d/*.conf + /lib/depmod.d/*.conf ++ @PREFIX@/lib/depmod.d/*.conf /usr/local/lib/depmod.d/*.conf /run/depmod.d/*.conf + /etc/depmod.d/*.conf 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 +++ b/man/modprobe.d.xml @@ -41,6 +41,7 @@ /lib/modprobe.d/*.conf -+ /usr/lib/modprobe.d/*.conf ++ @PREFIX@/lib/modprobe.d/*.conf /usr/local/lib/modprobe.d/*.conf /run/modprobe.d/*.conf /etc/modprobe.d/*.conf diff --git a/tools/depmod.c b/tools/depmod.c -index eb810b811e35..8f6a4f8cd7cb 100644 +index 364b7d4faa9e..a9349b20ee9c 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -54,6 +54,7 @@ static const char *default_cfg_paths[] = { @@ -83,5 +122,5 @@ index eb810b811e35..8f6a4f8cd7cb 100644 NULL }; -- -2.26.2 +2.41.0 diff --git a/usr-lib-modules.patch b/usr-lib-modules.patch new file mode 100644 index 0000000..0a89987 --- /dev/null +++ b/usr-lib-modules.patch @@ -0,0 +1,610 @@ +From cb784d4f70cd49565a934bfae87373fe495adec8 Mon Sep 17 00:00:00 2001 +From: Michal Suchanek +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 +--- + 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 @@ + + + +- 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 depmod. Directories are + listed in order, with the highest priority given to the +@@ -101,7 +101,7 @@ + depmod command. It is possible to + specify one kernel or all kernels using the * wildcard. + modulesubdirectory 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. + + +@@ -110,7 +110,7 @@ + specifying the following command: "override kmod * extra". + This will ensure that any matching module name installed + under the extra 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. + + +Index: kmod-30/man/depmod.xml +=================================================================== +--- kmod-30.orig/man/depmod.xml ++++ kmod-30/man/depmod.xml +@@ -80,7 +80,7 @@ + + depmod creates a list of module dependencies by + reading each module under +- /lib/modules/version and ++ @MODULE_PREFIX@/lib/modules/version and + determining what symbols it exports and what symbols it needs. By + default, this list is written to modules.dep, and a + binary hashed version named modules.dep.bin, in the +@@ -141,7 +141,7 @@ + + + If your modules are not currently in the (normal) directory +- /lib/modules/version, ++ @MODULE_PREFIX@/lib/modules/version, + but in a staging area, you can specify a + basedir which is prepended to the + directory name. This basedir is +Index: kmod-30/man/modinfo.xml +=================================================================== +--- kmod-30.orig/man/modinfo.xml ++++ kmod-30/man/modinfo.xml +@@ -54,7 +54,7 @@ + modinfo extracts information from the Linux Kernel + modules given on the command line. If the module name is not a filename, + then the +- /lib/modules/version ++ @MODULE_PREFIX@/lib/modules/version + directory is searched, as is also done by + modprobe8 + 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). + modprobe looks in the module directory +- /lib/modules/`uname -r` for all ++ @MODULE_PREFIX@/lib/modules/`uname -r` for all + the modules and other files, except for the optional + configuration files in the + /etc/modprobe.d 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 @@ + + + +- /lib/modules/modules.dep +- /lib/modules/modules.dep.bin ++ @MODULE_PREFIX@/lib/modules/modules.dep ++ @MODULE_PREFIX@/lib/modules/modules.dep.bin + + + DESCRIPTION +@@ -43,7 +43,7 @@ + modules.dep.bin is a binary file generated by + depmod listing the dependencies for + every module in the directories under +- /lib/modules/version. ++ @MODULE_PREFIX@/lib/modules/version. + It is used by kmod tools such as modprobe and + libkmod. + +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; + } From a88c2533b1f1f1f82dbb283699d8bb11212d36e2cac5751b0f1a0716d9b5407a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sun, 16 Jul 2023 18:04:31 +0000 Subject: [PATCH 6/6] trim two recently added lines from usr-lib-modules.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=224 --- usr-lib-modules.patch | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/usr-lib-modules.patch b/usr-lib-modules.patch index 0a89987..bf4a954 100644 --- a/usr-lib-modules.patch +++ b/usr-lib-modules.patch @@ -25,12 +25,12 @@ Signed-off-by: Michal Suchanek testsuite/setup-rootfs.sh | 109 +++++++++++++++++++---------------- testsuite/test-depmod.c | 16 ++--- testsuite/test-testsuite.c | 8 +- - tools/depmod.c | 15 ++++ + tools/depmod.c | 13 +++- tools/kmod.c | 1 tools/modinfo.c | 4 - tools/modprobe.c | 4 - tools/static-nodes.c | 6 - - 18 files changed, 118 insertions(+), 84 deletions(-) + 18 files changed, 116 insertions(+), 84 deletions(-) Index: kmod-30/Makefile.am =================================================================== @@ -504,7 +504,7 @@ Index: kmod-30/tools/depmod.c 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 +@@ -3024,12 +3024,21 @@ static int do_depmod(int argc, char *arg } cfg.dirnamelen = snprintf(cfg.dirname, PATH_MAX, @@ -520,8 +520,6 @@ Index: kmod-30/tools/depmod.c + 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);