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
This commit is contained in:
parent
4970184c4d
commit
a0a2e49a01
@ -1,46 +0,0 @@
|
||||
From 48b0c75f79f86140314b9656d3d855a515e18a73 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/8aff0c9c491d8afeec7f6b2cd96cbd0439e26fbb.1699618135.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 1bb23d7f19d888fbdd96ae0fe929b7086713ef33 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/b97e20faa07e9e31c6eaf96683011aa24e80760c.1689681454.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
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 <openssl/ssl.h>
|
||||
+ 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
|
||||
|
@ -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-----
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f5a6949043cc72c001b728d8c218609c5a15f3c33d75614b78c79418fcf00d80
|
||||
size 570936
|
16
kmod-32.tar.sign
Normal file
16
kmod-32.tar.sign
Normal file
@ -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-----
|
BIN
kmod-32.tar.xz
(Stored with Git LFS)
Normal file
BIN
kmod-32.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -1,115 +0,0 @@
|
||||
From ecef7c131618bbd9c559924ecae55764089db0dd Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/468b3f572d3b84f25bb53ec8fcb15ed4871914d4.1689681454.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -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
|
||||
|
17
kmod.changes
17
kmod.changes
@ -1,3 +1,20 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 4 15:13:53 UTC 2024 - Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
- 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 <msuchanek@suse.de>
|
||||
|
||||
|
13
kmod.spec
13
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
|
||||
|
@ -1,150 +0,0 @@
|
||||
From 510c8b7f7455c6613dd1706e5e41ec7b09cf6703 Mon Sep 17 00:00:00 2001
|
||||
From: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
|
||||
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 <dimitri.ledkov@canonical.com>
|
||||
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 <openssl/ssl.h>
|
||||
- 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
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 4e7effbdc00307d0d1e83115e0d00cc75aae5cc6 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/9c5a6356b1a111eb6e17ddb110494b7f1d1b44c0.1689681454.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
man/depmod.d.xml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/man/depmod.d.xml b/man/depmod.d.xml
|
||||
index 76548e92a312..8d3d821cddc8 100644
|
||||
--- a/man/depmod.d.xml
|
||||
+++ b/man/depmod.d.xml
|
||||
@@ -39,7 +39,7 @@
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
- <para><filename>/usr/lib/depmod.d/*.conf</filename></para>
|
||||
+ <para><filename>/lib/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/usr/local/lib/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/run/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/etc/depmod.d/*.conf</filename></para>
|
||||
--
|
||||
2.42.0
|
||||
|
@ -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 <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
@ -10,15 +10,18 @@ Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
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 -
|
||||
--
|
||||
2.42.0
|
||||
endef
|
||||
|
||||
%.5: %.5.xml
|
||||
--
|
||||
2.44.0
|
||||
|
||||
|
@ -1,73 +0,0 @@
|
||||
From 3af2f475b0b729f20279f2ce488cc9f727f0b763 Mon Sep 17 00:00:00 2001
|
||||
From: Sam James <sam@gentoo.org>
|
||||
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 <sam@gentoo.org>
|
||||
---
|
||||
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
|
||||
|
@ -1,150 +0,0 @@
|
||||
From 8463809f8a29b254b2cab2ce755641bc690f07c9 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/a290343ce32e2a3c25b134e4f27c13b26e06c9e0.1689681454.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
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 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/lib/depmod.d/*.conf</filename></para>
|
||||
+ <para><filename>@DISTCONFDIR@/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/usr/local/lib/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/run/depmod.d/*.conf</filename></para>
|
||||
<para><filename>/etc/depmod.d/*.conf</filename></para>
|
||||
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 @@
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/lib/modprobe.d/*.conf</filename></para>
|
||||
+ <para><filename>@DISTCONFDIR@/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/usr/local/lib/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/run/modprobe.d/*.conf</filename></para>
|
||||
<para><filename>/etc/modprobe.d/*.conf</filename></para>
|
||||
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
|
||||
|
@ -1,601 +0,0 @@
|
||||
From 9d1fb317c8dbf2b834b3d0efb34208eb8fb790fb Mon Sep 17 00:00:00 2001
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
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 <msuchanek@suse.de>
|
||||
Link: https://lore.kernel.org/r/a3765f4e8ae3ce29c0847a0132d4a8d51ad040a9.1699618135.git.msuchanek@suse.de
|
||||
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
|
||||
---
|
||||
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 @@
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
- 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 <command>depmod</command>. Directories are
|
||||
listed in order, with the highest priority given to the
|
||||
@@ -101,7 +101,7 @@
|
||||
<command>depmod</command> command. It is possible to
|
||||
specify one kernel or all kernels using the * wildcard.
|
||||
<replaceable>modulesubdirectory</replaceable> is the
|
||||
- name of the subdirectory under /lib/modules (or other
|
||||
+ name of the subdirectory under @MODULE_DIRECTORY@ (or other
|
||||
module location) where the target module is installed.
|
||||
</para>
|
||||
<para>
|
||||
@@ -110,7 +110,7 @@
|
||||
specifying the following command: "override kmod * extra".
|
||||
This will ensure that any matching module name installed
|
||||
under the <command>extra</command> subdirectory within
|
||||
- /lib/modules (or other module location) will take priority
|
||||
+ @MODULE_DIRECTORY@ (or other module location) will take priority
|
||||
over any likenamed module already provided by the kernel.
|
||||
</para>
|
||||
</listitem>
|
||||
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 @@
|
||||
</para>
|
||||
<para> <command>depmod</command> creates a list of module dependencies by
|
||||
reading each module under
|
||||
- <filename>/lib/modules/</filename><replaceable>version</replaceable> and
|
||||
+ <filename>@MODULE_DIRECTORY@/</filename><replaceable>version</replaceable> and
|
||||
determining what symbols it exports and what symbols it needs. By
|
||||
default, this list is written to <filename>modules.dep</filename>, and a
|
||||
binary hashed version named <filename>modules.dep.bin</filename>, in the
|
||||
@@ -141,7 +141,7 @@
|
||||
<listitem>
|
||||
<para>
|
||||
If your modules are not currently in the (normal) directory
|
||||
- <filename>/lib/modules/</filename><replaceable>version</replaceable>,
|
||||
+ <filename>@MODULE_DIRECTORY@/</filename><replaceable>version</replaceable>,
|
||||
but in a staging area, you can specify a
|
||||
<replaceable>basedir</replaceable> which is prepended to the
|
||||
directory name. This <replaceable>basedir</replaceable> is
|
||||
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 @@
|
||||
<command>modinfo</command> extracts information from the Linux Kernel
|
||||
modules given on the command line. If the module name is not a filename,
|
||||
then the
|
||||
- <filename>/lib/modules/</filename><replaceable>version</replaceable>
|
||||
+ <filename>@MODULE_DIRECTORY@/</filename><replaceable>version</replaceable>
|
||||
directory is searched, as is also done by
|
||||
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
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).
|
||||
<command>modprobe</command> looks in the module directory
|
||||
- <filename>/lib/modules/`uname -r`</filename> for all
|
||||
+ <filename>@MODULE_DIRECTORY@/`uname -r`</filename> for all
|
||||
the modules and other files, except for the optional
|
||||
configuration files in the
|
||||
<filename>/etc/modprobe.d</filename> 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 @@
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
- <para><filename>/lib/modules/modules.dep</filename></para>
|
||||
- <para><filename>/lib/modules/modules.dep.bin</filename></para>
|
||||
+ <para><filename>@MODULE_DIRECTORY@/modules.dep</filename></para>
|
||||
+ <para><filename>@MODULE_DIRECTORY@/modules.dep.bin</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1><title>DESCRIPTION</title>
|
||||
@@ -43,7 +43,7 @@
|
||||
<filename>modules.dep.bin</filename> is a binary file generated by
|
||||
<command>depmod</command> listing the dependencies for
|
||||
every module in the directories under
|
||||
- <filename>/lib/modules/</filename><replaceable>version</replaceable>.
|
||||
+ <filename>@MODULE_DIRECTORY@/</filename><replaceable>version</replaceable>.
|
||||
It is used by kmod tools such as <command>modprobe</command> and
|
||||
libkmod.
|
||||
</para>
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user