all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ekaitz Zarraga <ekaitz@elenq.tech>
To: 73733@debbugs.gnu.org
Cc: Ekaitz Zarraga <ekaitz@elenq.tech>
Subject: [bug#73733] [PATCH] gnu: lsof: fix build in Linux 6.9
Date: Thu, 10 Oct 2024 15:14:30 +0200	[thread overview]
Message-ID: <0e032dbca5f08b3e0ea45748a4290336306e639e.1728566057.git.ekaitz@elenq.tech> (raw)

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@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@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	other threads:[~2024-10-10 13:34 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-10 13:14 Ekaitz Zarraga [this message]
2024-10-10 14:50 ` bug#73733: [PATCH] gnu: lsof: fix build in Linux 6.9 Efraim Flashner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0e032dbca5f08b3e0ea45748a4290336306e639e.1728566057.git.ekaitz@elenq.tech \
    --to=ekaitz@elenq.tech \
    --cc=73733@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.