From a0a2e49a01b81ff947791ffba559dc60f6816923353d989004c0616c2ea774f7 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 4 Apr 2024 22:34:58 +0000 Subject: [PATCH] Accepting request 1164983 from home:michals - Update to release 32 * Drop python bindings * Remove unmaintained experimental tool - Drop upstreamed patches * configure-Detect-openssl-sm3-support.patch * man-depmod.d-Fix-incorrect-usr-lib-search-path.patch * usr-lib-modprobe.patch * kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch * tools-depmod-fix-Walloc-size.patch * libkmod-remove-pkcs7-obj_to_hash_algo.patch * usr-lib-modules.patch * configure-Check-that-provided-paths-are-absolute.patch - Refresh no-stylesheet-download.patch OBS-URL: https://build.opensuse.org/request/show/1164983 OBS-URL: https://build.opensuse.org/package/show/Base:System/kmod?expand=0&rev=236 --- ...eck-that-provided-paths-are-absolute.patch | 46 -- configure-Detect-openssl-sm3-support.patch | 37 -- kmod-31.tar.sign | 16 - kmod-31.tar.xz | 3 - kmod-32.tar.sign | 16 + kmod-32.tar.xz | 3 + ...ig-file-with-kmod-compile-time-confi.patch | 115 ---- kmod-testsuite.spec | 12 +- kmod.changes | 17 + kmod.spec | 13 +- libkmod-remove-pkcs7-obj_to_hash_algo.patch | 150 ----- ....d-Fix-incorrect-usr-lib-search-path.patch | 31 - no-stylesheet-download.patch | 13 +- tools-depmod-fix-Walloc-size.patch | 73 --- usr-lib-modprobe.patch | 150 ----- usr-lib-modules.patch | 601 ------------------ 16 files changed, 49 insertions(+), 1247 deletions(-) delete mode 100644 configure-Check-that-provided-paths-are-absolute.patch delete mode 100644 configure-Detect-openssl-sm3-support.patch delete mode 100644 kmod-31.tar.sign delete mode 100644 kmod-31.tar.xz create mode 100644 kmod-32.tar.sign create mode 100644 kmod-32.tar.xz delete mode 100644 kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch delete mode 100644 libkmod-remove-pkcs7-obj_to_hash_algo.patch delete mode 100644 man-depmod.d-Fix-incorrect-usr-lib-search-path.patch delete mode 100644 tools-depmod-fix-Walloc-size.patch delete mode 100644 usr-lib-modprobe.patch delete mode 100644 usr-lib-modules.patch diff --git a/configure-Check-that-provided-paths-are-absolute.patch b/configure-Check-that-provided-paths-are-absolute.patch deleted file mode 100644 index 81f5eff..0000000 --- a/configure-Check-that-provided-paths-are-absolute.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 48b0c75f79f86140314b9656d3d855a515e18a73 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Fri, 10 Nov 2023 13:13:55 +0100 -Subject: [PATCH 8/9] configure: Check that provided paths are absolute - -configure checks that its built-in directory options get an absolute -path. Copy the check for custom options. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/8aff0c9c491d8afeec7f6b2cd96cbd0439e26fbb.1699618135.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - configure.ac | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/configure.ac b/configure.ac -index d6da5ee9ae9a..de01e08cf2e8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -97,6 +97,23 @@ AC_ARG_WITH([module_directory], - [], [with_module_directory=/lib/modules]) - AC_SUBST([module_directory], [$with_module_directory]) - -+# Check all directory arguments for consistency. -+for ac_var in distconfdir rootlibdir module_directory -+do -+ eval ac_val=\$$ac_var -+ # Remove trailing slashes. -+ case $ac_val in -+ */ ) -+ ac_val=`expr "X$ac_val" : 'X\(.*@<:@^/@:>@\)' \| "X$ac_val" : 'X\(.*\)'` -+ eval $ac_var=\$ac_val;; -+ esac -+ # Be sure to have absolute directory names. -+ case $ac_val in -+ @<:@\\/$@:>@* | ?:@<:@\\/@:>@* ) continue;; -+ esac -+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -+done -+ - AC_ARG_WITH([zstd], - AS_HELP_STRING([--with-zstd], [handle Zstandard-compressed modules @<:@default=disabled@:>@]), - [], [with_zstd=no]) --- -2.42.0 - diff --git a/configure-Detect-openssl-sm3-support.patch b/configure-Detect-openssl-sm3-support.patch deleted file mode 100644 index c24e56f..0000000 --- a/configure-Detect-openssl-sm3-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 1bb23d7f19d888fbdd96ae0fe929b7086713ef33 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Tue, 18 Jul 2023 14:01:52 +0200 -Subject: [PATCH 1/9] configure: Detect openssl sm3 support - -Older openssl versions do not support sm3. The code has an option to -disable the sm3 hash but the lack of openssl support is not detected -automatically. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/b97e20faa07e9e31c6eaf96683011aa24e80760c.1689681454.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - configure.ac | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/configure.ac b/configure.ac -index 82a853289a83..e5bceeaa1722 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -123,6 +123,13 @@ AC_ARG_WITH([openssl], - AS_IF([test "x$with_openssl" != "xno"], [ - PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0], [LIBS="$LIBS $libcrypto_LIBS"]) - AC_DEFINE([ENABLE_OPENSSL], [1], [Enable openssl for modinfo.]) -+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include -+ int nid = NID_sm3;]])], [ -+ AC_MSG_NOTICE([openssl supports sm3]) -+ ], [ -+ AC_MSG_NOTICE([openssl sm3 support not detected]) -+ CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3" -+ ]) - ], [ - AC_MSG_NOTICE([openssl support not requested]) - ]) --- -2.42.0 - diff --git a/kmod-31.tar.sign b/kmod-31.tar.sign deleted file mode 100644 index 34a9e73..0000000 --- a/kmod-31.tar.sign +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEE6rM8lpABPHM5FqyDm6KlpjDL6lMFAmUW3PIACgkQm6KlpjDL -6lPmUw/9EoddTKB7wVaTHPHqx4uu00jz8BKUFJsAppmdbAco+2++n8GWzqi6TgIV -+kwCweS7Ac6xivQQKhKlXrzHw4cXD8uwpWEmzW+o2gP9dSKHcr60ozfPMQ0QNEUF -6wOMGZffkbGmGYKBs6F2QriLznEVvbCYTyTE1khtSH9YIPR7EB2QDI4QCGCWGIdQ -VgmzPRnfoXr/Iiyw86w9AKB4WiqVxor97Gcz7Jyy5qM/9Y9OXi10y75mDKwFgHPJ -JN+Zt3IJXpUpc7rasIlvXfuK2W0q1SLkFWLwNUQ1sXX2QeriJYaMbi+eaJ4fvwjs -YN53duGyvajGkOEXvg487Em411ZPdbWmfbtrHQqhMBOMy/6cSx0CuSoztNBPqc9S -vALwusaoGxoh3PNfUZoHUPHvtRhT3s/J27p7EKK5uX63hvJuKj0/+XD6+mHKCgxG -0lFMglRa6AsVvxiudFEwIafLMaTPLOjcLxnu2zQOeDholZZES3wNkY4AQ5KHjvwH -owF102atzMq+2jyDTsBLdazZhfOwmUG+OwDP9tfWUMaCR6uK8KkJQLFQHZvij3T2 -ynO9axS9KhLB48jKBSGffR2dUnvshkfdEcjiIsTOxOk3nOnyIvqJLA4VL4rJnPVu -ZHZgTN21QNZCLAaMT9NND7klBmZ4qvPBPEpa+ugwXMnyWj6kZf4= -=e1C2 ------END PGP SIGNATURE----- diff --git a/kmod-31.tar.xz b/kmod-31.tar.xz deleted file mode 100644 index 5634028..0000000 --- a/kmod-31.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f5a6949043cc72c001b728d8c218609c5a15f3c33d75614b78c79418fcf00d80 -size 570936 diff --git a/kmod-32.tar.sign b/kmod-32.tar.sign new file mode 100644 index 0000000..cf66a40 --- /dev/null +++ b/kmod-32.tar.sign @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE6rM8lpABPHM5FqyDm6KlpjDL6lMFAmXn4vQACgkQm6KlpjDL +6lNdrg//Z2RngX3Vl1Y0/0tC77dez36xFZ4MnpW+gYm5B1vPgqyqChFWCc1WbUHG +mgJc5EU3Zbesg6Pdblp6YIswBvVGSMcH+7zkysGzLJyiO61Az+YjInlWgfuyI8lA +EG6qlqTFc1O8nExO+2Zci5E8VxjX/6BriB3jzls1zjk7WdI6X8HRjWrG8QgW3yix +Blt0AiBPw2wM9rdlFoQ8ZIOj7V33ax96dPHmSq6dTfMaZFCtXhPqgb6vh8ZtP9OW +21aJcWbVcdgalWIeNHKHxq+GOeXi7qs/s5Ss/6ugSVncOTXq3Y6X+WqVjgiQNdn8 +BLm0bK/eL78FlIkrx7xDgWDuHyarICoPa4Y8M+lKpABuKssXWSXm/IoRmYtThWj7 +UdNXx7cpGXsa0OGBA4HvMMKXkRVTLFhYdodEPLllIQm90dOt3oYJrf57a36MU49B +F03o5MKazuA3BbUlF5u5DQ/eG5lbp/i3kw2J6K+ezC24P/ulR+P5jP+nTeEoOI1T +QfgMvGvifbVaOX8jy3eisej7QvshBi/fGcpZcYORE/mCyEz0xcXAvhQdoo4UgdtG +6+qOm4ZSIrb98lmyjOg0LXI3SNJ2+7mbP08K5t4o1nTTa/pjzSrwbeoRU1uPLQyg +DxUp7bayhKXDwtN1Qgye1ZNbUGj4NvR5neGp0bXKICMV09XESeQ= +=jQpD +-----END PGP SIGNATURE----- diff --git a/kmod-32.tar.xz b/kmod-32.tar.xz new file mode 100644 index 0000000..3cd90b5 --- /dev/null +++ b/kmod-32.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:630ed0d92275a88cb9a7bf68f5700e911fdadaf02e051cf2e4680ff8480bd492 +size 511988 diff --git a/kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch b/kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch deleted file mode 100644 index 4742def..0000000 --- a/kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch +++ /dev/null @@ -1,115 +0,0 @@ -From ecef7c131618bbd9c559924ecae55764089db0dd Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Tue, 18 Jul 2023 14:01:55 +0200 -Subject: [PATCH 4/9] kmod: Add pkgconfig file with kmod compile time - configuration - -Show distconfdir (where system configuration files are searched/to be -installed), sysconfdir (where user configuration files are searched), -module compressions, and module signatures supported. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/468b3f572d3b84f25bb53ec8fcb15ed4871914d4.1689681454.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - Makefile.am | 2 +- - configure.ac | 11 +++++++++++ - tools/kmod.pc.in | 9 +++++++++ - 3 files changed, 21 insertions(+), 1 deletion(-) - create mode 100644 tools/kmod.pc.in - -diff --git a/Makefile.am b/Makefile.am -index e6630a36e18c..2a54c25bd631 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -96,7 +96,7 @@ libkmod_libkmod_internal_la_DEPENDENCIES = $(libkmod_libkmod_la_DEPENDENCIES) - libkmod_libkmod_internal_la_LIBADD = $(libkmod_libkmod_la_LIBADD) - - pkgconfigdir = $(libdir)/pkgconfig --pkgconfig_DATA = libkmod/libkmod.pc -+pkgconfig_DATA = libkmod/libkmod.pc tools/kmod.pc - - bashcompletiondir=@bashcompletiondir@ - dist_bashcompletion_DATA = \ -diff --git a/configure.ac b/configure.ac -index fd88d1fbdbf7..7bf8d78ca747 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -21,6 +21,9 @@ LT_INIT([disable-static pic-only]) - AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])]) - AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])]) - -+module_compressions="" -+module_signatures="legacy" -+ - ##################################################################### - # Program checks and configurations - ##################################################################### -@@ -94,6 +97,7 @@ AC_ARG_WITH([zstd], - AS_IF([test "x$with_zstd" != "xno"], [ - PKG_CHECK_MODULES([libzstd], [libzstd >= 1.4.4], [LIBS="$LIBS $libzstd_LIBS"]) - AC_DEFINE([ENABLE_ZSTD], [1], [Enable Zstandard for modules.]) -+ module_compressions="zstd $module_compressions" - ], [ - AC_MSG_NOTICE([Zstandard support not requested]) - ]) -@@ -105,6 +109,7 @@ AC_ARG_WITH([xz], - AS_IF([test "x$with_xz" != "xno"], [ - PKG_CHECK_MODULES([liblzma], [liblzma >= 4.99], [LIBS="$LIBS $liblzma_LIBS"]) - AC_DEFINE([ENABLE_XZ], [1], [Enable Xz for modules.]) -+ module_compressions="xz $module_compressions" - ], [ - AC_MSG_NOTICE([Xz support not requested]) - ]) -@@ -116,6 +121,7 @@ AC_ARG_WITH([zlib], - AS_IF([test "x$with_zlib" != "xno"], [ - PKG_CHECK_MODULES([zlib], [zlib], [LIBS="$LIBS $zlib_LIBS"]) - AC_DEFINE([ENABLE_ZLIB], [1], [Enable zlib for modules.]) -+ module_compressions="gzip $module_compressions" - ], [ - AC_MSG_NOTICE([zlib support not requested]) - ]) -@@ -134,6 +140,7 @@ AS_IF([test "x$with_openssl" != "xno"], [ - AC_MSG_NOTICE([openssl sm3 support not detected]) - CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3" - ]) -+ module_signatures="PKCS7 $module_signatures" - ], [ - AC_MSG_NOTICE([openssl support not requested]) - ]) -@@ -298,6 +305,9 @@ AC_DEFINE_UNQUOTED(KMOD_FEATURES, ["$with_features"], [Features in this build]) - # Generate files from *.in - ##################################################################### - -+AC_SUBST([module_compressions], $module_compressions) -+AC_SUBST([module_signatures], $module_signatures) -+ - AC_CONFIG_FILES([ - Makefile - man/Makefile -@@ -305,6 +315,7 @@ AC_CONFIG_FILES([ - libkmod/docs/version.xml - libkmod/libkmod.pc - libkmod/python/kmod/version.py -+ tools/kmod.pc - ]) - - -diff --git a/tools/kmod.pc.in b/tools/kmod.pc.in -new file mode 100644 -index 000000000000..2595980a6b35 ---- /dev/null -+++ b/tools/kmod.pc.in -@@ -0,0 +1,9 @@ -+prefix=@prefix@ -+sysconfdir=@sysconfdir@ -+distconfdir=@distconfdir@ -+module_compressions=@module_compressions@ -+module_signatures=@module_signatures@ -+ -+Name: kmod -+Description: Tools to deal with kernel modules -+Version: @VERSION@ --- -2.42.0 - diff --git a/kmod-testsuite.spec b/kmod-testsuite.spec index 7d0f10b..4e4c6c7 100644 --- a/kmod-testsuite.spec +++ b/kmod-testsuite.spec @@ -1,7 +1,7 @@ # # spec file for package kmod-testsuite # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ Name: kmod-testsuite %define lname libkmod2 -Version: 31 +Version: 32 Release: 0 Summary: Testsuite of the kmod package License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -40,14 +40,6 @@ 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: configure-Detect-openssl-sm3-support.patch -Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.patch -Patch9: usr-lib-modprobe.patch -Patch10: kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch -Patch11: tools-depmod-fix-Walloc-size.patch -Patch12: libkmod-remove-pkcs7-obj_to_hash_algo.patch -Patch13: usr-lib-modules.patch -Patch14: configure-Check-that-provided-paths-are-absolute.patch Patch16: no-stylesheet-download.patch BuildRequires: autoconf BuildRequires: automake diff --git a/kmod.changes b/kmod.changes index f8ca89a..b3c88bf 100644 --- a/kmod.changes +++ b/kmod.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Thu Apr 4 15:13:53 UTC 2024 - Michal Suchanek + +- Update to release 32 + * Drop python bindings + * Remove unmaintained experimental tool +- Drop upstreamed patches + * configure-Detect-openssl-sm3-support.patch + * man-depmod.d-Fix-incorrect-usr-lib-search-path.patch + * usr-lib-modprobe.patch + * kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch + * tools-depmod-fix-Walloc-size.patch + * libkmod-remove-pkcs7-obj_to_hash_algo.patch + * usr-lib-modules.patch + * configure-Check-that-provided-paths-are-absolute.patch +- Refresh no-stylesheet-download.patch + ------------------------------------------------------------------- Wed Dec 6 20:00:12 UTC 2023 - Michal Suchanek diff --git a/kmod.spec b/kmod.spec index ae1817d..a8443b5 100644 --- a/kmod.spec +++ b/kmod.spec @@ -1,7 +1,7 @@ # # spec file for package kmod # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -22,7 +22,7 @@ Name: kmod %define lname libkmod2 -Version: 31 +Version: 32 Release: 0 Summary: Utilities to load modules into the kernel License: GPL-2.0-or-later AND LGPL-2.1-or-later @@ -41,14 +41,6 @@ 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: configure-Detect-openssl-sm3-support.patch -Patch8: man-depmod.d-Fix-incorrect-usr-lib-search-path.patch -Patch9: usr-lib-modprobe.patch -Patch10: kmod-Add-pkgconfig-file-with-kmod-compile-time-confi.patch -Patch11: tools-depmod-fix-Walloc-size.patch -Patch12: libkmod-remove-pkcs7-obj_to_hash_algo.patch -Patch13: usr-lib-modules.patch -Patch14: configure-Check-that-provided-paths-are-absolute.patch Patch16: no-stylesheet-download.patch BuildRequires: autoconf BuildRequires: automake @@ -151,6 +143,7 @@ rm -f "$b/%_libdir"/*.la mkdir -p "$b/%_sbindir" "$b/sbin" for i in depmod insmod lsmod modinfo modprobe rmmod; do ln -s "%_bindir/kmod" "$b/%_sbindir/$i" + rm "$b/%_bindir/$i" %if 0%{?suse_version} < 1550 ln -s "%_bindir/kmod" "$b/sbin/$i" %endif diff --git a/libkmod-remove-pkcs7-obj_to_hash_algo.patch b/libkmod-remove-pkcs7-obj_to_hash_algo.patch deleted file mode 100644 index f9d9039..0000000 --- a/libkmod-remove-pkcs7-obj_to_hash_algo.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 510c8b7f7455c6613dd1706e5e41ec7b09cf6703 Mon Sep 17 00:00:00 2001 -From: Dimitri John Ledkov -Date: Sun, 29 Oct 2023 03:03:19 +0200 -Subject: [PATCH 6/9] libkmod: remove pkcs7 obj_to_hash_algo() - -Switch to using OBJ_obj2txt() to calculate and print the pkcs7 -signature hash name. This eliminates the need to duplicate libcrypto -NID to name mapping, detect SM3 openssl compile-time support, and -enables using any hashes that openssl and kernel know about. For -example SHA3 are being added for v6.7 and with this patch are -automatically supported. - -Signed-off-by: Dimitri John Ledkov -Link: https://lore.kernel.org/r/20231029010319.157390-1-dimitri.ledkov@canonical.com ---- - configure.ac | 7 ----- - libkmod/libkmod-signature.c | 59 +++++++++++++------------------------ - 2 files changed, 20 insertions(+), 46 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7bf8d78ca747..a6b8fa0308b6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -133,13 +133,6 @@ AC_ARG_WITH([openssl], - AS_IF([test "x$with_openssl" != "xno"], [ - PKG_CHECK_MODULES([libcrypto], [libcrypto >= 1.1.0], [LIBS="$LIBS $libcrypto_LIBS"]) - AC_DEFINE([ENABLE_OPENSSL], [1], [Enable openssl for modinfo.]) -- AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include -- int nid = NID_sm3;]])], [ -- AC_MSG_NOTICE([openssl supports sm3]) -- ], [ -- AC_MSG_NOTICE([openssl sm3 support not detected]) -- CPPFLAGS="$CPPFLAGS -DOPENSSL_NO_SM3" -- ]) - module_signatures="PKCS7 $module_signatures" - ], [ - AC_MSG_NOTICE([openssl support not requested]) -diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c -index b749a818f994..80f6447bcea0 100644 ---- a/libkmod/libkmod-signature.c -+++ b/libkmod/libkmod-signature.c -@@ -127,6 +127,7 @@ struct pkcs7_private { - PKCS7 *pkcs7; - unsigned char *key_id; - BIGNUM *sno; -+ char *hash_algo; - }; - - static void pkcs7_free(void *s) -@@ -137,42 +138,11 @@ static void pkcs7_free(void *s) - PKCS7_free(pvt->pkcs7); - BN_free(pvt->sno); - free(pvt->key_id); -+ free(pvt->hash_algo); - free(pvt); - si->private = NULL; - } - --static int obj_to_hash_algo(const ASN1_OBJECT *o) --{ -- int nid; -- -- nid = OBJ_obj2nid(o); -- switch (nid) { -- case NID_md4: -- return PKEY_HASH_MD4; -- case NID_md5: -- return PKEY_HASH_MD5; -- case NID_sha1: -- return PKEY_HASH_SHA1; -- case NID_ripemd160: -- return PKEY_HASH_RIPE_MD_160; -- case NID_sha256: -- return PKEY_HASH_SHA256; -- case NID_sha384: -- return PKEY_HASH_SHA384; -- case NID_sha512: -- return PKEY_HASH_SHA512; -- case NID_sha224: -- return PKEY_HASH_SHA224; --# ifndef OPENSSL_NO_SM3 -- case NID_sm3: -- return PKEY_HASH_SM3; --# endif -- default: -- return -1; -- } -- return -1; --} -- - static const char *x509_name_to_str(X509_NAME *name) - { - int i; -@@ -219,7 +189,8 @@ static bool fill_pkcs7(const char *mem, off_t size, - unsigned char *key_id_str; - struct pkcs7_private *pvt; - const char *issuer_str; -- int hash_algo; -+ char *hash_algo; -+ int hash_algo_len; - - size -= sig_len; - pkcs7_raw = mem + size; -@@ -278,27 +249,37 @@ static bool fill_pkcs7(const char *mem, off_t size, - - X509_ALGOR_get0(&o, NULL, NULL, dig_alg); - -- hash_algo = obj_to_hash_algo(o); -- if (hash_algo < 0) -+ // Use OBJ_obj2txt to calculate string length -+ hash_algo_len = OBJ_obj2txt(NULL, 0, o, 0); -+ if (hash_algo_len < 0) - goto err3; -- sig_info->hash_algo = pkey_hash_algo[hash_algo]; -- // hash algo has not been recognized -- if (sig_info->hash_algo == NULL) -+ hash_algo = malloc(hash_algo_len + 1); -+ if (hash_algo == NULL) - goto err3; -+ hash_algo_len = OBJ_obj2txt(hash_algo, hash_algo_len + 1, o, 0); -+ if (hash_algo_len < 0) -+ goto err4; -+ -+ // Assign libcrypto hash algo string or number -+ sig_info->hash_algo = hash_algo; -+ - sig_info->id_type = pkey_id_type[modsig->id_type]; - - pvt = malloc(sizeof(*pvt)); - if (pvt == NULL) -- goto err3; -+ goto err4; - - pvt->pkcs7 = pkcs7; - pvt->key_id = key_id_str; - pvt->sno = sno_bn; -+ pvt->hash_algo = hash_algo; - sig_info->private = pvt; - - sig_info->free = pkcs7_free; - - return true; -+err4: -+ free(hash_algo); - err3: - free(key_id_str); - err2: --- -2.42.0 - 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 bdb6910..0000000 --- a/man-depmod.d-Fix-incorrect-usr-lib-search-path.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 4e7effbdc00307d0d1e83115e0d00cc75aae5cc6 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Tue, 18 Jul 2023 14:01:53 +0200 -Subject: [PATCH 2/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 -searched. Align the documentation with the code. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/9c5a6356b1a111eb6e17ddb110494b7f1d1b44c0.1689681454.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - 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.42.0 - diff --git a/no-stylesheet-download.patch b/no-stylesheet-download.patch index aab1669..ea5eacb 100644 --- a/no-stylesheet-download.patch +++ b/no-stylesheet-download.patch @@ -1,7 +1,7 @@ -From 11979d01f72a0da574b795ad3029a52706c16f6d Mon Sep 17 00:00:00 2001 +From 3bb8f5af80b611238160ceb88f288af7037281e9 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 +Subject: [PATCH] Do not download the docbook stylesheet during build, use local copy instead. Signed-off-by: Michal Suchanek @@ -10,15 +10,18 @@ Signed-off-by: Michal Suchanek 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/Makefile.am b/man/Makefile.am -index f550091a216a..a8ddb8bfd0ed 100644 +index d62ff21c799f..6e6aedf092ad 100644 --- a/man/Makefile.am +++ b/man/Makefile.am -@@ -28,4 +28,4 @@ CLEANFILES = $(dist_man_MANS) +@@ -28,7 +28,7 @@ define generate_manpage --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 - + endef + + %.5: %.5.xml -- -2.42.0 +2.44.0 diff --git a/tools-depmod-fix-Walloc-size.patch b/tools-depmod-fix-Walloc-size.patch deleted file mode 100644 index f7d291a..0000000 --- a/tools-depmod-fix-Walloc-size.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 3af2f475b0b729f20279f2ce488cc9f727f0b763 Mon Sep 17 00:00:00 2001 -From: Sam James -Date: Sun, 5 Nov 2023 22:02:25 +0000 -Subject: [PATCH 5/9] tools: depmod: fix -Walloc-size -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GCC 14 introduces a new -Walloc-size included in -Wextra which gives: -``` -tools/depmod.c:192:14: warning: allocation of insufficient size ‘1’ for type ‘struct index_node’ with size ‘1048’ [-Walloc-size] -tools/depmod.c:255:11: warning: allocation of insufficient size ‘1’ for type ‘struct index_value’ with size ‘16’ [-Walloc-size] -tools/depmod.c:286:35: warning: allocation of insufficient size ‘1’ for type ‘struct index_node’ with size ‘1048’ [-Walloc-size] -tools/depmod.c:315:44: warning: allocation of insufficient size ‘1’ for type ‘struct index_node’ with size ‘1048’ [-Walloc-size] -``` - -The calloc prototype is: -``` -void *calloc(size_t nmemb, size_t size); -``` - -So, just swap the number of members and size arguments to match the prototype, as -we're initialising 1 struct of size `sizeof(struct ...)`. GCC then sees we're not -doing anything wrong. - -Signed-off-by: Sam James ---- - tools/depmod.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/tools/depmod.c b/tools/depmod.c -index 630fef9c8fb0..ab8513b21526 100644 ---- a/tools/depmod.c -+++ b/tools/depmod.c -@@ -190,7 +190,7 @@ static struct index_node *index_create(void) - { - struct index_node *node; - -- node = NOFAIL(calloc(sizeof(struct index_node), 1)); -+ node = NOFAIL(calloc(1, sizeof(struct index_node))); - node->prefix = NOFAIL(strdup("")); - node->first = INDEX_CHILDMAX; - -@@ -253,7 +253,7 @@ static int index_add_value(struct index_value **values, - values = &(*values)->next; - - len = strlen(value); -- v = NOFAIL(calloc(sizeof(struct index_value) + len + 1, 1)); -+ v = NOFAIL(calloc(1, sizeof(struct index_value) + len + 1)); - v->next = *values; - v->priority = priority; - memcpy(v->value, value, len + 1); -@@ -284,7 +284,7 @@ static int index_insert(struct index_node *node, const char *key, - struct index_node *n; - - /* New child is copy of node with prefix[j+1..N] */ -- n = NOFAIL(calloc(sizeof(struct index_node), 1)); -+ n = NOFAIL(calloc(1, sizeof(struct index_node))); - memcpy(n, node, sizeof(struct index_node)); - n->prefix = NOFAIL(strdup(&prefix[j+1])); - -@@ -313,7 +313,7 @@ static int index_insert(struct index_node *node, const char *key, - node->first = ch; - if (ch > node->last) - node->last = ch; -- node->children[ch] = NOFAIL(calloc(sizeof(struct index_node), 1)); -+ node->children[ch] = NOFAIL(calloc(1, sizeof(struct index_node))); - - child = node->children[ch]; - child->prefix = NOFAIL(strdup(&key[i+1])); --- -2.42.0 - diff --git a/usr-lib-modprobe.patch b/usr-lib-modprobe.patch deleted file mode 100644 index 753e83b..0000000 --- a/usr-lib-modprobe.patch +++ /dev/null @@ -1,150 +0,0 @@ -From 8463809f8a29b254b2cab2ce755641bc690f07c9 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Tue, 18 Jul 2023 14:01:54 +0200 -Subject: [PATCH 3/9] libkmod, depmod: Load modprobe.d, depmod.d from - ${prefix}/lib. - -There is an ongoing effort to limit use of files outside of /usr (or -${prefix} on general). Currently all modprobe.d paths are hardcoded to -outside of $prefix. Teach kmod to load modprobe.d from ${prefix}/lib. - -On some distributions /usr/lib and /lib are the same directory because -of a compatibility symlink, and it is possible to craft configuration -files with sideeffects that would behave differently when loaded twice. -However, the override semantic ensures that one 'overrides' the other, -and only one configuration file of the same name is loaded from any of -the search directories. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/a290343ce32e2a3c25b134e4f27c13b26e06c9e0.1689681454.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - Makefile.am | 1 + - configure.ac | 5 +++++ - libkmod/libkmod.c | 7 ++++--- - man/Makefile.am | 9 +++++++-- - man/depmod.d.xml | 1 + - man/modprobe.d.xml | 1 + - tools/depmod.c | 1 + - 7 files changed, 20 insertions(+), 5 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 5b7abfe6a20e..e6630a36e18c 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -19,6 +19,7 @@ AM_CPPFLAGS = \ - -include $(top_builddir)/config.h \ - -I$(top_srcdir) \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ -+ -DDISTCONFDIR=\""$(distconfdir)"\" \ - ${zlib_CFLAGS} - - AM_CFLAGS = $(OUR_CFLAGS) -diff --git a/configure.ac b/configure.ac -index e5bceeaa1722..fd88d1fbdbf7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -79,6 +79,10 @@ AC_COMPILE_IFELSE( - # --with- - ##################################################################### - -+AC_ARG_WITH([distconfdir], AS_HELP_STRING([--with-distconfdir=DIR], [directory to search for distribution configuration files]), -+ [], [with_distconfdir='${prefix}/lib']) -+AC_SUBST([distconfdir], [$with_distconfdir]) -+ - AC_ARG_WITH([rootlibdir], - AS_HELP_STRING([--with-rootlibdir=DIR], [rootfs directory to install shared libraries]), - [], [with_rootlibdir=$libdir]) -@@ -313,6 +317,7 @@ AC_MSG_RESULT([ - - prefix: ${prefix} - sysconfdir: ${sysconfdir} -+ distconfdir: ${distconfdir} - libdir: ${libdir} - rootlibdir: ${rootlibdir} - includedir: ${includedir} -diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 1b8773cdf452..57fac1cb9f7b 100644 ---- a/libkmod/libkmod.c -+++ b/libkmod/libkmod.c -@@ -65,6 +65,7 @@ static const char *const default_config_paths[] = { - SYSCONFDIR "/modprobe.d", - "/run/modprobe.d", - "/usr/local/lib/modprobe.d", -+ DISTCONFDIR "/modprobe.d", - "/lib/modprobe.d", - NULL - }; -@@ -272,9 +273,9 @@ static enum kmod_file_compression_type get_kernel_compression(struct kmod_ctx *c - * 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 -- * vector if configuration should not be read. This array must -- * be null terminated. -+ * /usr/local/lib/modprobe.d, DISTCONFDIR/modprobe.d, and -+ * /lib/modprobe.d. Give an empty vector if configuration should -+ * not be read. This array must be null terminated. - * - * Create kmod library context. This reads the kmod configuration - * and fills in the default values. -diff --git a/man/Makefile.am b/man/Makefile.am -index 11514d52a190..2fea8e46bf2f 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 [ '$(distconfdir)' != '/lib' ] ; then \ -+ sed -e 's|@DISTCONFDIR@|$(distconfdir)|g' $< ; \ -+ else \ -+ sed -e '/@DISTCONFDIR@/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..f282a39cc840 100644 ---- a/man/depmod.d.xml -+++ b/man/depmod.d.xml -@@ -40,6 +40,7 @@ - - - /lib/depmod.d/*.conf -+ @DISTCONFDIR@/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..2bf6537f07e6 100644 ---- a/man/modprobe.d.xml -+++ b/man/modprobe.d.xml -@@ -41,6 +41,7 @@ - - - /lib/modprobe.d/*.conf -+ @DISTCONFDIR@/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 1d1d41db860f..630fef9c8fb0 100644 ---- a/tools/depmod.c -+++ b/tools/depmod.c -@@ -54,6 +54,7 @@ static const char *const default_cfg_paths[] = { - SYSCONFDIR "/depmod.d", - "/run/depmod.d", - "/usr/local/lib/depmod.d", -+ DISTCONFDIR "/depmod.d", - "/lib/depmod.d", - NULL - }; --- -2.42.0 - diff --git a/usr-lib-modules.patch b/usr-lib-modules.patch deleted file mode 100644 index 4a71ff5..0000000 --- a/usr-lib-modules.patch +++ /dev/null @@ -1,601 +0,0 @@ -From 9d1fb317c8dbf2b834b3d0efb34208eb8fb790fb Mon Sep 17 00:00:00 2001 -From: Michal Suchanek -Date: Fri, 10 Nov 2023 13:13:54 +0100 -Subject: [PATCH 7/9] libkmod, depmod, modprobe: Make directory for kernel - modules configurable - -Now that modprobe.d is searched under ${prefix}/lib, allow a complete -transition to files only under ${prefix} by adding a ${module_directory} -configuration. This specifies the directory where to search for kernel -modules and should match the location where the kernel/distro installs -them. - -With this distributions that do not want to ship files in /lib can also -move kernel modules to /usr while others can keep them in /lib. - -Signed-off-by: Michal Suchanek -Link: https://lore.kernel.org/r/a3765f4e8ae3ce29c0847a0132d4a8d51ad040a9.1699618135.git.msuchanek@suse.de -Signed-off-by: Lucas De Marchi ---- - Makefile.am | 3 +- - configure.ac | 7 ++ - libkmod/libkmod.c | 4 +- - 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.pc.in | 1 + - tools/modinfo.c | 4 +- - tools/modprobe.c | 4 +- - tools/static-nodes.c | 6 +- - 18 files changed, 107 insertions(+), 84 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 2a54c25bd631..4062d81227df 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -20,6 +20,7 @@ AM_CPPFLAGS = \ - -I$(top_srcdir) \ - -DSYSCONFDIR=\""$(sysconfdir)"\" \ - -DDISTCONFDIR=\""$(distconfdir)"\" \ -+ -DMODULE_DIRECTORY=\""$(module_directory)"\" \ - ${zlib_CFLAGS} - - AM_CFLAGS = $(OUR_CFLAGS) -@@ -220,7 +221,7 @@ EXTRA_DIST += testsuite/setup-rootfs.sh - MODULE_PLAYGROUND = testsuite/module-playground - ROOTFS = testsuite/rootfs - ROOTFS_PRISTINE = $(top_srcdir)/testsuite/rootfs-pristine --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_DIRECTORY=$(module_directory) $(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 a6b8fa0308b6..d6da5ee9ae9a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -91,6 +91,12 @@ AC_ARG_WITH([rootlibdir], - [], [with_rootlibdir=$libdir]) - AC_SUBST([rootlibdir], [$with_rootlibdir]) - -+# Ideally this would be $prefix/lib/modules but default to /lib/modules for compatibility with earlier versions -+AC_ARG_WITH([module_directory], -+ AS_HELP_STRING([--with-module-directory=DIR], [directory in which to look for kernel modules - typically '/lib/modules' or '${prefix}/lib/modules']), -+ [], [with_module_directory=/lib/modules]) -+AC_SUBST([module_directory], [$with_module_directory]) -+ - AC_ARG_WITH([zstd], - AS_HELP_STRING([--with-zstd], [handle Zstandard-compressed modules @<:@default=disabled@:>@]), - [], [with_zstd=no]) -@@ -319,6 +325,7 @@ AC_MSG_RESULT([ - $PACKAGE $VERSION - ======= - -+ module_directory: ${module_directory} - prefix: ${prefix} - sysconfdir: ${sysconfdir} - distconfdir: ${distconfdir} -diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c -index 57fac1cb9f7b..213b42482fb6 100644 ---- a/libkmod/libkmod.c -+++ b/libkmod/libkmod.c -@@ -210,7 +210,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_DIRECTORY; - - static char *get_kernel_release(const char *dirname) - { -@@ -266,7 +266,7 @@ static enum kmod_file_compression_type get_kernel_compression(struct kmod_ctx *c - /** - * kmod_new: - * @dirname: what to consider as linux module's directory, if NULL -- * defaults to /lib/modules/`uname -r`. If it's relative, -+ * defaults to $MODULE_DIRECTORY/`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 -diff --git a/man/Makefile.am b/man/Makefile.am -index 2fea8e46bf2f..f550091a216a 100644 ---- a/man/Makefile.am -+++ b/man/Makefile.am -@@ -22,6 +22,7 @@ CLEANFILES = $(dist_man_MANS) - else \ - sed -e '/@DISTCONFDIR@/d' $< ; \ - fi | \ -+ sed -e 's|@MODULE_DIRECTORY@|$(module_directory)|g' | \ - $(XSLT) \ - -o $@ \ - --nonet \ -diff --git a/man/depmod.d.xml b/man/depmod.d.xml -index f282a39cc840..b07e6a2bd4fe 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_DIRECTORY@ - (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_DIRECTORY@ (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_DIRECTORY@ (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..fce2a4a67a89 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_DIRECTORY@/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_DIRECTORY@/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..b6c4d6045829 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_DIRECTORY@/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 91f9e27997cd..4d1fd59c000b 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_DIRECTORY@/`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..8ef6d8b3536e 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_DIRECTORY@/modules.dep -+ @MODULE_DIRECTORY@/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_DIRECTORY@/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 4440ddcd6b4d..a780f9381b3c 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 [ "$MODULE_DIRECTORY" != "/lib/modules" ] ; then -+ sed -i -e "s|/lib/modules|$MODULE_DIRECTORY|g" $(find "$ROOTFS" -name \*.txt -o -name \*.conf -o -name \*.dep) -+ sed -i -e "s|$MODULE_DIRECTORY/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 -+ mod="$(dirname $i)" -+ lib="$(dirname $mod)" -+ up="$(dirname $lib)$MODULE_DIRECTORY" -+ mkdir -p "$up" -+ mv "$i" "$up" -+ done -+ fi - - if [ "$SYSCONFDIR" != "/etc" ]; then - find "$ROOTFS" -type d -name etc -printf "%h\n" | while read -r e; do -@@ -32,57 +45,57 @@ 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_DIRECTORY/4.4.4/kernel/crypto/"]="mod-simple.ko" -+ ["test-depmod/search-order-simple$MODULE_DIRECTORY/4.4.4/updates/"]="mod-simple.ko" -+ ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" -+ ["test-depmod/search-order-same-prefix$MODULE_DIRECTORY/4.4.4/foobar/"]="mod-simple.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-c.ko"]="mod-loop-c.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-d.ko"]="mod-loop-d.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko" -+ ["test-depmod/detect-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko" -+ ["test-depmod/search-order-external-first$MODULE_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" -+ ["test-depmod/search-order-external-first$MODULE_DIRECTORY/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_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" -+ ["test-depmod/search-order-external-last$MODULE_DIRECTORY/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_DIRECTORY/4.4.4/foo/"]="mod-simple.ko" -+ ["test-depmod/search-order-override$MODULE_DIRECTORY/4.4.4/override/"]="mod-simple.ko" -+ ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko" -+ ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/"]="mod-foo-c.ko" -+ ["test-dependencies$MODULE_DIRECTORY/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko" -+ ["test-dependencies$MODULE_DIRECTORY/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_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" -+ ["test-modprobe/show-depends$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" -+ ["test-modprobe/show-depends$MODULE_DIRECTORY/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_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" -+ ["test-modprobe/softdep-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" -+ ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-a.ko"]="mod-loop-a.ko" -+ ["test-modprobe/install-cmd-loop$MODULE_DIRECTORY/4.4.4/kernel/mod-loop-b.ko"]="mod-loop-b.ko" -+ ["test-modprobe/force$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" -+ ["test-modprobe/oldkernel$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" -+ ["test-modprobe/oldkernel-force$MODULE_DIRECTORY/3.3.3/kernel/"]="mod-simple.ko" -+ ["test-modprobe/alias-to-none$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" -+ ["test-modprobe/module-param-kcmdline$MODULE_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" - ["test-modprobe/external/lib/modules/external/"]="mod-simple.ko" - ["test-modprobe/module-from-abspath/home/foo/"]="mod-simple.ko" - ["test-modprobe/module-from-relpath/home/foo/"]="mod-simple.ko" -- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" -- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" -- ["test-depmod/modules-order-compressed/lib/modules/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" -- ["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_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" -+ ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" -+ ["test-depmod/modules-order-compressed$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/scsi_mod.ko"]="mod-fake-scsi-mod.ko" -+ ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/block/cciss.ko"]="mod-fake-cciss.ko" -+ ["test-depmod/modules-outdir$MODULE_DIRECTORY/4.4.4/kernel/drivers/scsi/hpsa.ko"]="mod-fake-hpsa.ko" -+ ["test-depmod/modules-outdir$MODULE_DIRECTORY/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" -@@ -90,20 +103,20 @@ map=( - ["test-modinfo/mod-simple-sha256.ko"]="mod-simple.ko" - ["test-modinfo/mod-simple-pkcs7.ko"]="mod-simple.ko" - ["test-modinfo/external/lib/modules/external/mod-simple.ko"]="mod-simple.ko" -- ["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_DIRECTORY/4.4.4/kernel/"]="mod-simple.ko" -+ ["test-tools/remove$MODULE_DIRECTORY/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_DIRECTORY/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_DIRECTORY/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_DIRECTORY/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..c96dbf0a62be 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_DIRECTORY "/" 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_DIRECTORY "/" MODULES_UNAME -+#define MODULES_OUTDIR_LIB_MODULES_INPUT MODULES_OUTDIR_ROOTFS MODULE_DIRECTORY "/" 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_DIRECTORY "/" 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_DIRECTORY "/" 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_DIRECTORY "/" 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_DIRECTORY "/" 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_DIRECTORY "/" 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..c77c4bbc04eb 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_DIRECTORY "/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_DIRECTORY "/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_DIRECTORY "/a", F_OK) < 0) { - ERR("access failed: %m\n"); - return EXIT_FAILURE; - } - -- if (stat("/lib/modules/a", &st) < 0) { -+ if (stat(MODULE_DIRECTORY "/a", &st) < 0) { - ERR("stat failed: %m\n"); - return EXIT_FAILURE; - } -diff --git a/tools/depmod.c b/tools/depmod.c -index ab8513b21526..43fc354afb09 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_DIRECTORY/$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_DIRECTORY "/%s", - root ?: "", cfg.kversion); - - cfg.outdirnamelen = snprintf(cfg.outdirname, PATH_MAX, -- "%s/lib/modules/%s", -+ "%s" MODULE_DIRECTORY "/%s", - out_root ?: (root ?: ""), cfg.kversion); - - if (optind == argc) -diff --git a/tools/kmod.pc.in b/tools/kmod.pc.in -index 2595980a6b35..97215c8ed48f 100644 ---- a/tools/kmod.pc.in -+++ b/tools/kmod.pc.in -@@ -1,6 +1,7 @@ - prefix=@prefix@ - sysconfdir=@sysconfdir@ - distconfdir=@distconfdir@ -+module_directory=@module_directory@ - module_compressions=@module_compressions@ - module_signatures=@module_signatures@ - -diff --git a/tools/modinfo.c b/tools/modinfo.c -index d0aab200af4e..cacc32dc4c40 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_DIRECTORY "\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_DIRECTORY "/%s", - root, kversion); - dirname = dirname_buf; - } -diff --git a/tools/modprobe.c b/tools/modprobe.c -index e891028349a8..5306bef250da 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_DIRECTORY "\n" - "\t-S, --set-version=VERSION Use VERSION instead of `uname -r`\n" - - "\t-s, --syslog print to syslog, not stderr\n" -@@ -999,7 +999,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_DIRECTORY "/%s", root, - kversion); - dirname = dirname_buf; - } -diff --git a/tools/static-nodes.c b/tools/static-nodes.c -index 8d2356da73f3..5ef3743e967b 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_DIRECTORY "/%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_DIRECTORY "/%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_DIRECTORY "/%s/modules.devname - %m\n", - kernel.release); - ret = EXIT_FAILURE; - } --- -2.42.0 -