Package: release.debian.org Severity: normal Tags: bookworm User: release.debian....@packages.debian.org Usertags: pu X-Debbugs-Cc: iptables-netf...@packages.debian.org Control: affects -1 + src:iptables-netflow
[ Reason ] An update to src:linux in bullseye backported a change that breaks a few third-party modules (due to unexporting find_module()). This is not a problem in bookworm itself (the -dkms module works fine for the bookworm kernel as the find_module() usage is guarded by preprocessor conditionals), but on upgrades from bullseye to bookworm because linux-headers-* from both bullseye and bookworm will be installed. Also building the kernel module is very slow if there are other -dkms packages installed because there is a useless dkms recursion in the configure script. [ Impact ] Failed distupgrades that need manual fixing. [ Tests ] Local autopkgtest run in bookworm. Manual installation in a bookworm chroot with these headers installed: linux-headers-5.10.0-34-amd64 linux-headers-6.1.0-0.deb11.31-amd64 linux-headers-6.1.0-29-amd64 [ Risks ] Low. [ Checklist ] [*] *all* changes are documented in the d/changelog [*] I reviewed all changes and I approve them [*] attach debdiff against the package in (old)stable [*] the issue is verified as fixed in unstable [ Changes ] * Improve dkms debugging output in make.log * Don't check for or call dkms (recursively) if the configure script has been called by 'dkms build', as that slows down the configure script significantly. * Update the LINUX_VERSION_CODE constraint for find_module() usage to take into account versions that got the unexport change backported. [ Other info ] As the window for the next point release will close soon, I'm going to directly upload the changes. Andreas
diff --git a/debian/changelog b/debian/changelog index dc892b1..3e1cd08 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +iptables-netflow (2.6-4+deb12u1) bookworm; urgency=medium + + * Non-maintainer upload. + * Dump the generated compat_def.h. + * Avoid dkms recursion. + * Unexporting find_module() has been backported to Linux v5.10.220. + (Closes: #1076456, #1088678) + + -- Andreas Beckmann <a...@debian.org> Fri, 07 Mar 2025 14:48:52 +0100 + iptables-netflow (2.6-4) unstable; urgency=medium * Acknowledge NMU. Thanks Andreas! diff --git a/debian/gbp.conf b/debian/gbp.conf index cec628c..b7202c9 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -1,2 +1,3 @@ [DEFAULT] +debian-branch = bookworm pristine-tar = True diff --git a/debian/patches/1005-Do-not-check-for-dkms-if-called-from-dkms.patch b/debian/patches/1005-Do-not-check-for-dkms-if-called-from-dkms.patch new file mode 100644 index 0000000..1a9ac64 --- /dev/null +++ b/debian/patches/1005-Do-not-check-for-dkms-if-called-from-dkms.patch @@ -0,0 +1,28 @@ +From f158f57ba960b66b9428d245a2b3a6e1b16ce7bc Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <a...@debian.org> +Date: Wed, 3 Jul 2024 12:09:45 +0200 +Subject: [PATCH] Do not check for dkms if called from dkms + +the recursive calls slowed down the configure script significantly + +Signed-off-by: Andreas Beckmann <a...@debian.org> +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 86f9488..f2ec1a9 100755 +--- a/configure ++++ b/configure +@@ -348,7 +348,7 @@ do + --disable-snmp-a*) SKIPSNMP=1 ;; + --disable-net-snmp*) SKIPSNMP=1 ;; + --disable-dkms*) SKIPDKMS=1 ;; +- --from-dkms-conf*) ;; ++ --from-dkms-conf*) SKIPDKMS=1 ;; + --make) echo called from make; CARGS=`echo $CARGS | sed s/--make//g` ;; + -Werror) KOPTS="$KOPTS -Werror" ;; + --help|-h) show_help ;; +-- +2.39.5 + diff --git a/debian/patches/1006-Set-KDIR-early-if-called-from-dkms-and-get-version-f.patch b/debian/patches/1006-Set-KDIR-early-if-called-from-dkms-and-get-version-f.patch new file mode 100644 index 0000000..5260e67 --- /dev/null +++ b/debian/patches/1006-Set-KDIR-early-if-called-from-dkms-and-get-version-f.patch @@ -0,0 +1,26 @@ +From 0d92accaa14d21236377173e9b5ab2e2727097e3 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <a...@debian.org> +Date: Wed, 3 Jul 2024 12:12:31 +0200 +Subject: [PATCH] Set KDIR early if called from dkms and get version from + sources + +Signed-off-by: Andreas Beckmann <a...@debian.org> +--- + configure | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure b/configure +index f2ec1a9..ae8a579 100755 +--- a/configure ++++ b/configure +@@ -6,6 +6,7 @@ PATH=$PATH:/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/sbin + case "$1" in + --from-dkms-conf*) + KDKMS=`echo "$1" | sed 's/[^=]*.//'` ++ KDIR="$KDKMS" + # restore options from existing Makefile, if present + if [ -e Makefile ]; then + set -- `sed -n 's/^CARGS = \(.*\)/\1/p' Makefile` +-- +2.39.5 + diff --git a/debian/patches/1009-Unexporting-find_module-has-been-backported-to-Linux.patch b/debian/patches/1009-Unexporting-find_module-has-been-backported-to-Linux.patch new file mode 100644 index 0000000..1b5f045 --- /dev/null +++ b/debian/patches/1009-Unexporting-find_module-has-been-backported-to-Linux.patch @@ -0,0 +1,31 @@ +From 17efcde6a816672d8f4b7ee21789f57d3bdeaff6 Mon Sep 17 00:00:00 2001 +From: Andreas Beckmann <a...@debian.org> +Date: Sat, 20 Jul 2024 02:22:01 +0200 +Subject: [PATCH] Unexporting find_module() has been backported to Linux + v5.10.220 + +Signed-off-by: Andreas Beckmann <a...@debian.org> +--- + compat.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/compat.h b/compat.h +index 27fe96d..ced9385 100644 +--- a/compat.h ++++ b/compat.h +@@ -746,9 +746,10 @@ unsigned long long strtoul(const char *cp, char **endp, unsigned int base) + return result; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0) ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0)) \ ++ || ((LINUX_VERSION_CODE >= KERNEL_VERSION(5,10,220)) && (LINUX_VERSION_CODE < KERNEL_VERSION(5,11,0))) + /* +- * find_module() is unexported in v5.12: ++ * find_module() is unexported in v5.12 (backported to 5.10.220): + * 089049f6c9956 ("module: unexport find_module and module_mutex") + * and module_mutex is replaced with RCU in + * a006050575745 ("module: use RCU to synchronize find_module") +-- +2.39.5 + diff --git a/debian/patches/series b/debian/patches/series index 7c44743..83b5e5b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,7 @@ +1005-Do-not-check-for-dkms-if-called-from-dkms.patch +1006-Set-KDIR-early-if-called-from-dkms-and-get-version-f.patch +1009-Unexporting-find_module-has-been-backported-to-Linux.patch + ignore-unknown-configure-options.patch properly-pass-CPPFLAGS-and-LDFLAGS.patch disable-kernel-check.patch @@ -5,3 +9,4 @@ dont-hardcode-current-gcc.patch cherry-pick_66e43041_namespace_sk_error_report.patch cherry-pick_6a55739a_fix_build_on_v5.15.patch cherry-pick_0901f028_fix_building_on_old_kernels.patch +verbose.patch diff --git a/debian/patches/verbose.patch b/debian/patches/verbose.patch new file mode 100644 index 0000000..36c09eb --- /dev/null +++ b/debian/patches/verbose.patch @@ -0,0 +1,25 @@ +Author: Andreas Beckmann <a...@debian.org> +Description: dump compat_def.h + +--- a/Makefile.in ++++ b/Makefile.in +@@ -28,6 +28,7 @@ ipt_NETFLOW.ko: version.h ipt_NETFLOW.c + @touch $@ + compat_def.h: gen_compat_def + ./gen_compat_def > $@ ++ cat $@ + sparse: | version.h ipt_NETFLOW.c ipt_NETFLOW.h compat.h Makefile + @rm -f ipt_NETFLOW.ko ipt_NETFLOW.o + @echo Compiling for kernel $(KVERSION) +--- a/gen_compat_def ++++ b/gen_compat_def +@@ -36,7 +36,8 @@ kbuild_test_compile() { + else + echo " undeclared" >&2 + echo "#undef HAVE_$1" +- echo "// ${2:-symbol} is undeclared${3:+ in <$3>}. Compile:" ++ echo "// ${2:-symbol} is undeclared${3:+ in <$3>}." ++ echo "// Compile:" + sed "s/^/\/\/ /" test.c + echo "// Output:" + sed "s/^/\/\/ /" log