aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/lsof.scm3
-rw-r--r--gnu/packages/patches/lsof-compat-linux-6.9.patch67
2 files changed, 69 insertions, 1 deletions
diff --git a/gnu/packages/lsof.scm b/gnu/packages/lsof.scm
index 7d849c80b5..a6ac0306de 100644
--- a/gnu/packages/lsof.scm
+++ b/gnu/packages/lsof.scm
@@ -46,7 +46,8 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))))
+ "1v32407al4j0hhcph95lv4xvr9h012lii29iyq41iwj39zwfavax"))
+ (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..a7c09c7ecf
--- /dev/null
+++ b/gnu/packages/patches/lsof-compat-linux-6.9.patch
@@ -0,0 +1,67 @@
+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
+
+
+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
+
8d8e732f969cf0a09aaa78f87032ab1. * gnu/tests/virtualization.scm (run-childhurd-test)[test]: Import (ice-9 textual-ports) and (ice-9 match) in the marionette when needed. Ludovic Courtès 2023-03-03services: dbus: Deprecate 'dbus-service' procedure....* doc/guix.texi (Desktop Services): Replace with 'dbus-root-service-type'. Document dbus-configuration. * gnu/services/dbus.scm (dbus-service): Define with 'define-deprecated'. * gnu/services/desktop.scm (desktop-services-for-system): Replace with dbus-root-service-type. * gnu/system/install.scm (%installation-services): Ditto. * gnu/tests/base.scm (%avahi-os): Ditto. * gnu/tests/docker.scm (%docker-os): Ditto. * gnu/tests/lightdm.scm (minimal-desktop-services): Ditto. * gnu/tests/virtualization.scm (%libvirt-os): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal 2023-03-03services: dbus: Deprecate 'polkit-service' procedure....* doc/guix.texi (Desktop Services): Replace 'polkit-service' with 'polkit-service-type'. * gnu/services/dbus.scm (polkit-service): Deprecate procedure. * gnu/tests/docker.scm (%docker-os): Use polkit-service-type. * gnu/tests/virtualization.scm (%libvirt-os): Ditto. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Bruno Victal