From cbd2db98954739db1cdda208e1667c5d50976bf1 Mon Sep 17 00:00:00 2001 From: "B. Wilson" Date: Sun, 9 Mar 2025 13:12:55 +0900 Subject: [PATCH] gnu: xinit: Fix broken mcookie path in startx. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/xinit-startx-mcookie-path.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. * gnu/packages/xorg.scm (xinit)[source]: Add patch. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 3 ++- .../patches/xinit-startx-mcookie-path.patch | 23 +++++++++++++++++++ gnu/packages/xorg.scm | 14 +++++------ 3 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 gnu/packages/patches/xinit-startx-mcookie-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3e30418196d2fb2b5a8f1344b361673045fd190f..2e1b2f7c50115e51b35ff4a3b24756075c9517d3 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2426,7 +2426,8 @@ dist_patch_DATA = \ %D%/packages/patches/xfig-Fix-double-free-when-requesting-MediaBox.patch \ %D%/packages/patches/xfig-Use-pkg-config-to-set-fontconfig-CFLAGS-and-LIBS.patch \ %D%/packages/patches/xfce4-settings-defaults.patch \ - %D%/packages/patches/xgboost-use-system-dmlc-core.patch \ + %D%/packages/patches/xgboost-use-system-dmlc-core.patch \ + %D%/packages/patches/xinit-startx-mcookie-path.patch \ %D%/packages/patches/xmonad-dynamic-linking.patch \ %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ diff --git a/gnu/packages/patches/xinit-startx-mcookie-path.patch b/gnu/packages/patches/xinit-startx-mcookie-path.patch new file mode 100644 index 0000000000000000000000000000000000000000..050603433b87d03284a1421cab27cbdd38e73247 --- /dev/null +++ b/gnu/packages/patches/xinit-startx-mcookie-path.patch @@ -0,0 +1,23 @@ +This patch fixes two bugs in upstream mcookie detection: 1) If mcookie is not +detected, we still need to set HAS_COOKIE_HANDLER and MK_COOKIE, and 2) the +value for MK_COOKIE must be a string in order to disallow further preprocessor +expansions. + +In particular for 2, if we fail to surround the path in quotes, our path +contains the token "linux", which gcc further expands, creating an invalid +path. + +--- a/configure.ac 2025-03-08 16:48:34.476791744 +0900 ++++ b/configure.ac 2025-03-08 16:48:30.208791623 +0900 +@@ -157,8 +157,10 @@ + fi + fi + if test "x$MCOOKIE" != x ; then +- STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="$(MCOOKIE)"' ++ STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="'"'"'$(MCOOKIE)'"'"'"' + AC_MSG_NOTICE([startx will depend on "$MCOOKIE" to generate xauth cookies]) ++else ++ STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE=' + fi + AC_SUBST(STARTX_COOKIE_FLAGS) + diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 15ee9edc794cf6381a4c947fe503a1313a0501fa..db34a58f6e1db35cda4189a99594cc318c3a593d 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2024 Nicolas Graves ;;; Copyright © 2025 Artyom V. Poptsov ;;; Copyright © 2025 宋文武 +;;; Copyright © 2025 B. Wilson ;;; ;;; This file is part of GNU Guix. ;;; @@ -5898,14 +5899,13 @@ The XCB util-wm module provides the following libraries: version ".tar.xz")) (sha256 (base32 - "0npx32mi035xkz26gp7raps5xsq4v7rgayy1q794h4d3lqhryh46")))) + "0npx32mi035xkz26gp7raps5xsq4v7rgayy1q794h4d3lqhryh46")) + (patches + (search-patches "xinit-startx-mcookie-path.patch")))) (build-system gnu-build-system) - (inputs - (list xorgproto libx11)) - (native-inputs - (list pkg-config)) - (propagated-inputs - (list xauth)) + (inputs (list libx11 util-linux xorgproto)) + (native-inputs (list pkg-config)) + (propagated-inputs (list xauth)) (home-page "https://www.x.org/") (synopsis "Commands to start the X Window server") (description