aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Wilson <elaexuotee@wilsonb.com>2025-03-09 13:12:55 +0900
committerLudovic Courtès <ludo@gnu.org>2025-03-19 11:31:41 +0100
commitcbd2db98954739db1cdda208e1667c5d50976bf1 (patch)
tree71aef9a0cb3e58177472a41e24a358d82725916b
parent81a911eab8a0214706fe0f74556a6788984949c3 (diff)
downloadguix-cbd2db98954739db1cdda208e1667c5d50976bf1.tar.gz
guix-cbd2db98954739db1cdda208e1667c5d50976bf1.zip
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>
-rw-r--r--gnu/local.mk3
-rw-r--r--gnu/packages/patches/xinit-startx-mcookie-path.patch23
-rw-r--r--gnu/packages/xorg.scm14
3 files changed, 32 insertions, 8 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 3e30418196..2e1b2f7c50 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 0000000000..050603433b
--- /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 15ee9edc79..db34a58f6e 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -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