~ruther/guix-local

cbd2db98954739db1cdda208e1667c5d50976bf1 — B. Wilson 1 year, 4 months ago 81a911e
gnu: xinit: Fix broken mcookie path in startx.

* 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 <ludo@gnu.org>
3 files changed, 32 insertions(+), 8 deletions(-)

M gnu/local.mk
A gnu/packages/patches/xinit-startx-mcookie-path.patch
M gnu/packages/xorg.scm
M gnu/local.mk => gnu/local.mk +2 -1
@@ 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	\

A gnu/packages/patches/xinit-startx-mcookie-path.patch => gnu/packages/patches/xinit-startx-mcookie-path.patch +23 -0
@@ 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)
 

M gnu/packages/xorg.scm => gnu/packages/xorg.scm +7 -7
@@ 42,6 42,7 @@
;;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2025 宋文武 <iyzsong@envs.net>
;;; Copyright © 2025 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; 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