GNU bug report logs - #73733
[PATCH] gnu: lsof: fix build in Linux 6.9

Previous Next

Package: guix-patches;

Reported by: Ekaitz Zarraga <ekaitz <at> elenq.tech>

Date: Thu, 10 Oct 2024 13:16:02 UTC

Severity: normal

Tags: patch

Done: Efraim Flashner <efraim <at> flashner.co.il>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73733 in the body.
You can then email your comments to 73733 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#73733; Package guix-patches. (Thu, 10 Oct 2024 13:16:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ekaitz Zarraga <ekaitz <at> elenq.tech>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 10 Oct 2024 13:16:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ekaitz Zarraga <ekaitz <at> elenq.tech>
To: guix-patches <at> gnu.org
Cc: Ekaitz Zarraga <ekaitz <at> elenq.tech>
Subject: [PATCH] gnu: lsof: fix build in Linux 6.9
Date: Thu, 10 Oct 2024 15:14:30 +0200
This commit adds the patch that fixes:
<https://github.com/lsof-org/lsof/issues/317>

The issue was triggering the following error in the `test` phase that
resulted in a build failure in Linux 6.9 or higher:

    FAIL: lib/dialects/linux/tests/case-20-pidfd-pid.bash

* gnu/packages/lsof.scm(patches): Add `lsof-compat-linux-6.9.patch`.
* gnu/packages/patches/lsof-compat-linux-6.9.patch: New file.

Change-Id: I98b895ecaf1b952bfd33ea7ae3af70b1c39a0a94
---
 gnu/packages/lsof.scm                         |  4 +-
 .../patches/lsof-compat-linux-6.9.patch       | 58 +++++++++++++++++++
 2 files changed, 61 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/lsof-compat-linux-6.9.patch

diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index 7d849c80b5..d76ef585c3 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -46,7 +46,9 @@ (define-public lsof
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))))
+                "1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))
+              ;; FIXES: https://github.com/lsof-org/lsof/issues/317
+              (patches (search-patches "lsof-compat-linux-6.9.patch"))))
     (build-system gnu-build-system)
     (native-inputs (list automake
                          autoconf
diff --git a/gnu/packages/patches/lsof-compat-linux-6.9.patch b/gnu/packages/patches/lsof-compat-linux-6.9.patch
new file mode 100644
index 0000000000..419cae927a
--- /dev/null
+++ b/gnu/packages/patches/lsof-compat-linux-6.9.patch
@@ -0,0 +1,58 @@
+From c1678e3f6e4b4d984cb3078b7bf0c9e24bedb8ca Mon Sep 17 00:00:00 2001
+From: Jiajie Chen <c <at> jia.je>
+Date: Fri, 17 May 2024 15:22:35 +0800
+Subject: [PATCH] [linux] Maintain original output for pidfd in linux 6.9
+
+---
+ 00DIST                     |  3 +++
+ lib/dialects/linux/dproc.c | 13 +++++++++++++
+ 2 files changed, 16 insertions(+)
+
+diff --git a/00DIST b/00DIST
+index d5a0349..9a29611 100644
+--- a/00DIST
++++ b/00DIST
+@@ -5605,6 +5605,9 @@ Supplement	Regenerated the 4.04 distribution to correct a non-
+ 
+ 		[linux] Do not embed kernel version in CFLAGS (#314)
+ 
++		[linux] Linux 6.9 changed the pidfs appearence in procfs. Try
++		to maintain original output in lsof (#317)
++
+ 
+ Vic Abell <abe <at> purdue.edu>
+ July 14, 2018
+diff --git a/lib/dialects/linux/dproc.c b/lib/dialects/linux/dproc.c
+index cb6bb64..3a7a120 100644
+--- a/lib/dialects/linux/dproc.c
++++ b/lib/dialects/linux/dproc.c
+@@ -1273,6 +1273,10 @@ static int process_id(struct lsof_context *ctx, /* context */
+ #endif     /* defined(HASEPTOPTS) */
+                 if (rest && rest[0] == '[' && rest[1] == 'p')
+                     fdinfo_mask |= FDINFO_PID;
++                else if (Lf->ntype == N_REGLR && rest && *rest && strcmp(pbuf, "pidfd") == 0) {
++                    // https://github.com/lsof-org/lsof/issues/317
++                    fdinfo_mask |= FDINFO_PID;
++                }
+ 
+                 if ((av = get_fdinfo(ctx, pathi, fdinfo_mask, &fi)) &
+                     FDINFO_POS) {
+@@ -1338,6 +1342,15 @@ static int process_id(struct lsof_context *ctx, /* context */
+                     Lf->sf |= SELPTYINFO;
+                 }
+ #endif /* defined(HASEPTOPTS) && defined(HASPTYEPT) */
++                else if (Lf->ntype == N_REGLR && rest && *rest && Lf->nm &&
++                         strcmp(Lf->nm, "pidfd") == 0) {
++                    // https://github.com/lsof-org/lsof/issues/317
++                    // pidfd since Linux 6.9 becomes a regular file:
++                    // /proc/PID/fd/FD -> pidfd:[INODE]
++                    (void)snpf(rest, sizeof(pbuf) - (rest - pbuf),
++                                "[pidfd:%d]", fi.pid);
++                    enter_nm(ctx, rest);
++                }
+ 
+                 if (Lf->sf)
+                     link_lfile(ctx);
+-- 
+2.45.2
+

base-commit: f5aff5b3972b9a3342b1ce807f7ed68289cce74d
-- 
2.46.0





Reply sent to Efraim Flashner <efraim <at> flashner.co.il>:
You have taken responsibility. (Thu, 10 Oct 2024 14:53:02 GMT) Full text and rfc822 format available.

Notification sent to Ekaitz Zarraga <ekaitz <at> elenq.tech>:
bug acknowledged by developer. (Thu, 10 Oct 2024 14:53:02 GMT) Full text and rfc822 format available.

Message #10 received at 73733-done <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ekaitz Zarraga <ekaitz <at> elenq.tech>
Cc: 73733-done <at> debbugs.gnu.org
Subject: Re: [bug#73733] [PATCH] gnu: lsof: fix build in Linux 6.9
Date: Thu, 10 Oct 2024 17:50:59 +0300
[Message part 1 (text/plain, inline)]
Thanks for the patch. I added a line to gnu/local.mk.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 08 Nov 2024 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 276 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.