diff options
author | Yelninei <yelninei@tutamail.com> | 2025-07-31 10:11:20 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2025-09-04 17:41:53 +0200 |
commit | 4ab17ac72e483a230a45f1745cc95c2a80a554dd (patch) | |
tree | ad8b2e46b859a0f707c99aeaa2ce8b77ba0edd2a | |
parent | b8058086ed840f2f69eb938daa3e7de68b127cef (diff) |
gnu: libxcb: Add a patch for PATH_MAX on the Hurd.
Followup to 214b9d500f1434f745c26c5d9f826615d754a3ce.
The PATH_MAX issue has been solved upstream so use their patch instead.
* gnu/packages/patches/libxcb-path-max.patch: New patch.
* gnu/local.mk (dist_path_DATA): Add it.
* gnu/packages/xorg.scm (libxcb): Adjust ‘fix-PATH_MAX’ phase to apply the
patch instead of substituting the source.
Change-Id: I290033978a86aaa9e87149b6bed9aec0918076f3
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/libxcb-path-max.patch | 37 | ||||
-rw-r--r-- | gnu/packages/xorg.scm | 5 |
3 files changed, 41 insertions, 2 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index 2310b87a84..1c520549eb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1797,6 +1797,7 @@ dist_patch_DATA = \ %D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ + %D%/packages/patches/libxcb-path-max.patch \ %D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \ %D%/packages/patches/libwpd-gcc-compat.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ diff --git a/gnu/packages/patches/libxcb-path-max.patch b/gnu/packages/patches/libxcb-path-max.patch new file mode 100644 index 0000000000..64a870569f --- /dev/null +++ b/gnu/packages/patches/libxcb-path-max.patch @@ -0,0 +1,37 @@ +Taken from: +https://gitlab.freedesktop.org/xorg/lib/libxcb/-/commit/6a7661f60a70ff42c64b32a725edcbee790d1c0d + +From 6a7661f60a70ff42c64b32a725edcbee790d1c0d Mon Sep 17 00:00:00 2001 +From: Samuel Thibault <samuel.thibault@ens-lyon.org> +Date: Tue, 8 Jul 2025 13:29:00 +0200 +Subject: [PATCH] Get rid of PATH_MAX + +There could be no upper limit on the length of a path according +to POSIX, therefore these macros may not be defined at all on +some systems (such as GNU Hurd). There is however a limit on +sizeof(struct sockaddr_un.sun_path), so use it. + +Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> +Part-of: <https://gitlab.freedesktop.org/xorg/lib/libxcb/-/merge_requests/65> +--- + src/xcb_util.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/xcb_util.c b/src/xcb_util.c +index 5124d14..017583e 100644 +--- a/src/xcb_util.c ++++ b/src/xcb_util.c +@@ -104,7 +104,9 @@ static int _xcb_parse_display_path_to_socket(const char *name, char **host, char + int *displayp, int *screenp) + { + struct stat sbuf; +- char path[PATH_MAX]; ++ /* In addition to the AF_UNIX path, there may be a screen number. ++ * The trailing \0 is already accounted in the size of sun_path. */ ++ char path[sizeof(((struct sockaddr_un*)0)->sun_path) + 1 + 10]; + size_t len; + int _screen = 0, res; + +-- +GitLab + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7b667da0b3..bee44f5858 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5201,8 +5201,9 @@ protocol.") (add-after 'unpack 'fix-PATH_MAX (lambda _ ;; Hurd doesn't define PATH_MAX. - (substitute* "src/xcb_util.c" - (("PATH_MAX") "4096"))))) + (let ((patch #$(local-file + (search-patch "libxcb-path-max.patch")))) + (invoke "patch" "--force" "-p1" "-i" patch))))) #~%standard-phases))) (home-page "https://xcb.freedesktop.org/") (synopsis "The X C Binding (XCB) library") |