[Pkg-zfsonlinux-devel] Bug#1098887: zfs-dkms: dkms updates: minimal supported kernel version
Andreas Beckmann
anbe at debian.org
Tue Feb 25 14:03:59 GMT 2025
Package: zfs-dkms
Version: 2.3.0-1
Severity: important
The Linux-Minimum defined in META is wrong. It says 4.18, but the code uses SHRINK_EMPTY from Linux v4.19.
Propagate Linux-Minimum to BUILD_EXCLUSIVE_KERNEL_MIN in dkms.conf s.t. dkms skips building modules for old kernels where the configure script would error out.
I'm intentionally not setting BUILD_EXCLUSIVE_KERNEL_MAX to suppress module build errors on too new kernels since users would be surprised if kernel upgrades succeed without error but booting fails because building the module was skipped.
Andreas
-------------- next part --------------
>From f6d0a2e61eabfb1eab2088dffa166f06df5baa4f Mon Sep 17 00:00:00 2001
From: Andreas Beckmann <anbe at debian.org>
Date: Tue, 25 Feb 2025 09:52:12 +0100
Subject: [PATCH 1/3] dkms.mkconf: switch to BUILD_EXCLUSIVE_CONFIG
supported by dkms/bookworm
---
debian/patches/cross-compile.patch | 2 +-
debian/patches/skip-on-PREEMPT_RT.patch | 11 ++++-------
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/debian/patches/cross-compile.patch b/debian/patches/cross-compile.patch
index e9c68d7d..6a6e6e16 100644
--- a/debian/patches/cross-compile.patch
+++ b/debian/patches/cross-compile.patch
@@ -4,7 +4,7 @@ Origin: ubuntu
Forwarded: no
--- a/scripts/dkms.mkconf
+++ b/scripts/dkms.mkconf
-@@ -51,6 +51,12 @@
+@@ -48,6 +48,12 @@ PRE_BUILD="configure
}
)
\$(
diff --git a/debian/patches/skip-on-PREEMPT_RT.patch b/debian/patches/skip-on-PREEMPT_RT.patch
index 44ceb35a..82c5dd6a 100644
--- a/debian/patches/skip-on-PREEMPT_RT.patch
+++ b/debian/patches/skip-on-PREEMPT_RT.patch
@@ -6,16 +6,13 @@ Last-Update: 2024-08-08
--- a/scripts/dkms.mkconf
+++ b/scripts/dkms.mkconf
-@@ -25,6 +25,12 @@
+@@ -25,6 +25,9 @@ PACKAGE_NAME="${pkgname}"
PACKAGE_VERSION="${pkgver}"
PACKAGE_CONFIG="${pkgcfg}"
NO_WEAK_MODULES="yes"
-+if [ -f \$kernel_source_dir/.config ]; then
-+ . \$kernel_source_dir/.config
-+ if [ "\$CONFIG_PREEMPT_RT" = "y" ]; then
-+ BUILD_EXCLUSIVE_KERNEL="NOT ON PREEMPT_RT"
-+ fi
-+fi
++
++BUILD_EXCLUSIVE_CONFIG="!CONFIG_PREEMPT_RT"
++
PRE_BUILD="configure
--disable-dependency-tracking
--prefix=/usr
--
2.39.5
-------------- next part --------------
>From a7457b805c4bc80cf39236c535ceb2f6b608cd33 Mon Sep 17 00:00:00 2001
From: Andreas Beckmann <anbe at debian.org>
Date: Tue, 25 Feb 2025 10:01:20 +0100
Subject: [PATCH 2/3] dkms.mkconf: set BUILD_EXCLUSIVE_KERNEL_MIN to the value
from META
---
.../patches/BUILD_EXCLUSIVE_KERNEL_MIN.patch | 23 +++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 24 insertions(+)
create mode 100644 debian/patches/BUILD_EXCLUSIVE_KERNEL_MIN.patch
diff --git a/debian/patches/BUILD_EXCLUSIVE_KERNEL_MIN.patch b/debian/patches/BUILD_EXCLUSIVE_KERNEL_MIN.patch
new file mode 100644
index 00000000..78c95acc
--- /dev/null
+++ b/debian/patches/BUILD_EXCLUSIVE_KERNEL_MIN.patch
@@ -0,0 +1,23 @@
+Author: Andreas Beckmann <anbe at debian.org>
+Description: set BUILD_EXCLUSIVE_KERNEL_MIN in dkms.conf
+
+--- a/scripts/dkms.mkconf
++++ b/scripts/dkms.mkconf
+@@ -20,6 +20,8 @@ if [ -z "${pkgname}" ] || [ -z "${pkgver
+ exit 1
+ fi
+
++linux_min=$(awk '/Linux-Minimum:/{print $2}' META)
++
+ exec cat >"${filename}" <<EOF
+ PACKAGE_NAME="${pkgname}"
+ PACKAGE_VERSION="${pkgver}"
+@@ -28,6 +30,8 @@ NO_WEAK_MODULES="yes"
+
+ BUILD_EXCLUSIVE_CONFIG="!CONFIG_PREEMPT_RT"
+
++BUILD_EXCLUSIVE_KERNEL_MIN="${linux_min}"
++
+ PRE_BUILD="configure
+ --disable-dependency-tracking
+ --prefix=/usr
diff --git a/debian/patches/series b/debian/patches/series
index b6ad6225..b3574d6f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -19,3 +19,4 @@ ubuntu/zfs-mount-container-start.patch
#ubuntu/4510-silently-ignore-modprobe-failure.patch
#ubuntu/4751-suppress-types.patch
fix-pyzfs-version.patch
+BUILD_EXCLUSIVE_KERNEL_MIN.patch
--
2.39.5
-------------- next part --------------
>From 98893b4b21c1163df65a2eec9cb9ae7be46d1f7f Mon Sep 17 00:00:00 2001
From: Andreas Beckmann <anbe at debian.org>
Date: Tue, 25 Feb 2025 10:50:18 +0100
Subject: [PATCH 3/3] META: bump Linux-Minimum due to SHRINK_EMPTY usage
---
debian/patches/bump-Linux-Minimum.patch | 13 +++++++++++++
debian/patches/series | 1 +
2 files changed, 14 insertions(+)
create mode 100644 debian/patches/bump-Linux-Minimum.patch
diff --git a/debian/patches/bump-Linux-Minimum.patch b/debian/patches/bump-Linux-Minimum.patch
new file mode 100644
index 00000000..ea62c41c
--- /dev/null
+++ b/debian/patches/bump-Linux-Minimum.patch
@@ -0,0 +1,13 @@
+Author: Andreas Beckmann <anbe at debian.org>
+Description: bump Linux-Minimum due to SHRINK_EMPTY usage
+
+SHRINK_EMPTY was introduced in Linux v4.19
+
+--- a/META
++++ b/META
+@@ -7,4 +7,4 @@ Release-Tags: relext
+ License: CDDL
+ Author: OpenZFS
+ Linux-Maximum: 6.12
+-Linux-Minimum: 4.18
++Linux-Minimum: 4.19
diff --git a/debian/patches/series b/debian/patches/series
index b3574d6f..eb404ef7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -20,3 +20,4 @@ ubuntu/zfs-mount-container-start.patch
#ubuntu/4751-suppress-types.patch
fix-pyzfs-version.patch
BUILD_EXCLUSIVE_KERNEL_MIN.patch
+bump-Linux-Minimum.patch
--
2.39.5
More information about the Pkg-zfsonlinux-devel
mailing list