Package: release.debian.org
Severity: normal
Tags: bookworm
X-Debbugs-Cc: [email protected], Anton Lundin <[email protected]>, Sam
Hartman <[email protected]>, [email protected], [email protected]
Control: affects -1 + src:nfs-utils
User: [email protected]
Usertags: pu
Dear stable release managers,
[ Reason ]
This update fixes a regression with NFSv4 referrals not working in
Debian bookworm. The issue does not affect unstable, as there we
switched to compile with --enable-junction=yes, adding an additonal
dependency on libxml2. This solution is not applicable for bookworm to
avoid introducing the dependency.
The issue boils down that NFSv4 referrals without enabling junction
support were broken upstream in upstream commit 15dc0bead10d
("exportd: Moved cache upcalls routines into libexport.a"), so
nfs-utils-2-5-3-rc6 which means that the regression affects people
using NFSv4 referrals in bullseye and moving to bookworm.
Upstream has recently fixed the issue for the case where nfs-utils is
still compiled with --enable-junction=no (which btw, is the default in
the version on bookworm).
Details:
https://lore.kernel.org/linux-nfs/[email protected]/T/#u
https://bugs.debian.org/1035908
https://bugs.debian.org/1083098
[ Impact ]
Using NFSv4 refferals in Debian bookworm is actually not possible.
[ Tests ]
Tests by upstream when preparing the patch and additionally confirmed
by Anton in https://bugs.debian.org/1035908#52
[ Risks ]
The change is very targeted to fix the issue so I do not expect real
fallouts from it. The risk would probably be higher compiling
nfs-utils in bookworm with junction support and needing to add the
libxml2 dependency. This is the encouraged way upstream but for the
nwer versions targetting trixie we will have that.
[ Checklist ]
[x] *all* changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in (old)stable
[x] the issue is verified as fixed in unstable
For the later checkpoint: technically it is not an issue there since
enablement of junction support. The change is in any case as well
included upstream in 2.8.2.
[ Changes ]
Apply the upstream patch to fix referrals when --enable-junction=no
(the default in bookworm) by backing out not needed #ifdef
HAVE_JUNCTION_SUPPORT which blocks the referrals from working when, as
code is backed out to make referrals work.
I applied two changes as well in the packaging for let the salsa CI
pass, set the release to 'bookworm' and for lintian suppress the
aliased-location tag, as the usrmerge-migration happened only in a
later version nfs-utils/1:2.6.3-4~exp1
[ Other info ]
Nothing more I guess.
Regards,
Salvatore
diff -Nru nfs-utils-2.6.2/debian/changelog nfs-utils-2.6.2/debian/changelog
--- nfs-utils-2.6.2/debian/changelog 2023-01-11 21:41:40.000000000 +0100
+++ nfs-utils-2.6.2/debian/changelog 2024-12-11 15:00:17.000000000 +0100
@@ -1,3 +1,12 @@
+nfs-utils (1:2.6.2-4+deb12u1) bookworm; urgency=medium
+
+ * debian/salsa-ci.yml: Set release to bookworm
+ * d/salsa-ci.yml: Suppress aliased-location lintian errors
+ * exports: Fix referrals when --enable-junction=no
+ (Closes: #1083098, #1035908)
+
+ -- Salvatore Bonaccorso <[email protected]> Wed, 11 Dec 2024 15:00:17 +0100
+
nfs-utils (1:2.6.2-4) unstable; urgency=medium
[ Guillem Jover ]
diff -Nru
nfs-utils-2.6.2/debian/patches/exports-Fix-referrals-when-enable-junction-no.patch
nfs-utils-2.6.2/debian/patches/exports-Fix-referrals-when-enable-junction-no.patch
---
nfs-utils-2.6.2/debian/patches/exports-Fix-referrals-when-enable-junction-no.patch
1970-01-01 01:00:00.000000000 +0100
+++
nfs-utils-2.6.2/debian/patches/exports-Fix-referrals-when-enable-junction-no.patch
2024-12-11 15:00:17.000000000 +0100
@@ -0,0 +1,65 @@
+From: Scott Mayhew <[email protected]>
+Date: Sun, 8 Dec 2024 06:08:53 -0500
+Subject: exports: Fix referrals when --enable-junction=no
+Origin:
https://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=371929c8f0b5eb9aae1a23cc273413b9f4c0165e
+Bug-Debian: https://bugs.debian.org/1083098
+Bug-Debian: https://bugs.debian.org/1035908
+
+Commit 15dc0bea ("exportd: Moved cache upcalls routines into
+libexport.a") caused write_fsloc() to be elided when junction support is
+disabled. Remove the not needed #ifdef HAVE_JUNCTION_SUPPORT which
+blocks the referrals from working when --enable-junction=no is set.
+(only the #ifdef HAVE_JUNCTION_SUPPORT should be around actual
+junction code).
+
+Fixes: 15dc0bea ("exportd: Moved cache upcalls routines into libexport.a")
+Link: https://bugs.debian.org/1035908
+Link: https://bugs.debian.org/1083098
+
+Reviewed-by: Roland Mainz <[email protected]>
+Reviewed-by: Chuck Lever <[email protected]>
+Signed-off-by: Scott Mayhew <[email protected]>
+Signed-off-by: Steve Dickson <[email protected]>
+---
+ support/export/cache.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+--- a/support/export/cache.c
++++ b/support/export/cache.c
+@@ -33,10 +33,7 @@
+ #include "export.h"
+ #include "pseudoflavors.h"
+ #include "xcommon.h"
+-
+-#ifdef HAVE_JUNCTION_SUPPORT
+ #include "fsloc.h"
+-#endif
+
+ #ifdef USE_BLKID
+ #include "blkid/blkid.h"
+@@ -908,7 +905,6 @@ out:
+ xlog(D_CALL, "nfsd_fh: found %p path %s", found, found ? found->e_path
: NULL);
+ }
+
+-#ifdef HAVE_JUNCTION_SUPPORT
+ static void write_fsloc(char **bp, int *blen, struct exportent *ep)
+ {
+ struct servers *servers;
+@@ -931,7 +927,6 @@ static void write_fsloc(char **bp, int *
+ qword_addint(bp, blen, servers->h_referral);
+ release_replicas(servers);
+ }
+-#endif
+ static void write_secinfo(char **bp, int *blen, struct exportent *ep, int
flag_mask)
+ {
+ struct sec_entry *p;
+@@ -975,9 +970,7 @@ static int dump_to_cache(int f, char *bu
+ qword_addint(&bp, &blen, exp->e_anongid);
+ qword_addint(&bp, &blen, exp->e_fsid);
+
+-#ifdef HAVE_JUNCTION_SUPPORT
+ write_fsloc(&bp, &blen, exp);
+-#endif
+ write_secinfo(&bp, &blen, exp, flag_mask);
+ if (exp->e_uuid == NULL || different_fs) {
+ char u[16];
diff -Nru nfs-utils-2.6.2/debian/patches/series
nfs-utils-2.6.2/debian/patches/series
--- nfs-utils-2.6.2/debian/patches/series 2023-01-11 21:41:40.000000000
+0100
+++ nfs-utils-2.6.2/debian/patches/series 2024-12-11 15:00:17.000000000
+0100
@@ -8,3 +8,4 @@
systemd-Apply-all-sysctl-settings-through-udev-rule-.patch
auth-rpcgss-module.service-Don-t-fail-inside-linux-c.patch
systemd-Don-t-degrade-system-state-for-nfs-clients-w.patch
+exports-Fix-referrals-when-enable-junction-no.patch
diff -Nru nfs-utils-2.6.2/debian/salsa-ci.yml
nfs-utils-2.6.2/debian/salsa-ci.yml
--- nfs-utils-2.6.2/debian/salsa-ci.yml 2023-01-11 21:41:40.000000000 +0100
+++ nfs-utils-2.6.2/debian/salsa-ci.yml 2024-12-11 15:00:17.000000000 +0100
@@ -3,8 +3,10 @@
-
https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
variables:
- RELEASE: 'unstable'
+ RELEASE: 'bookworm'
# We only build arch:any packages
SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 'true'
# Currently triggering falsely (bugs #973313, #1000977)
- SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message,elf-error'
+ # Suppress 'aliased-location' as usrmerge-migration happened only
+ # in nfs-utils/1:2.6.3-4~exp1
+ SALSA_CI_LINTIAN_SUPPRESS_TAGS: 'groff-message,elf-error,aliased-location'