git: f0a7455052d8 - 2024Q2 - x11-servers/xorg-server: Add upstream patch for xkbcomp directory
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 16 Apr 2024 05:11:23 UTC
The branch 2024Q2 has been updated by manu:
URL: https://cgit.FreeBSD.org/ports/commit/?id=f0a7455052d887a8e832013643bc1e3ca2386b0d
commit f0a7455052d887a8e832013643bc1e3ca2386b0d
Author: Emmanuel Vadot <manu@FreeBSD.org>
AuthorDate: 2024-04-09 15:25:10 +0000
Commit: Emmanuel Vadot <manu@FreeBSD.org>
CommitDate: 2024-04-16 05:11:12 +0000
x11-servers/xorg-server: Add upstream patch for xkbcomp directory
Add a patch commited upstream but not present in any releases (except
Xwayland ones) as xorg-server releases stopped a while ago. This adds
a fallback to use $XDG_RUNTIME_DIR for xkbcomp result file if the user
can't write to the configured directory, which is unlikely for xorg-server
as it's SUID but it is likely for xephyr or xvfb.
While here use the meson default for xkb_dir as it's the same as the one we
provide and use also the default for xkb_output_dir which defaults to
xkb_dir/compiled which is a link to /var/lib/xkb (setup by the xkeyboard-config
port).
Differential Revision: https://reviews.freebsd.org/D44697
Reviewed by: bapt
Sponsored by: Beckhoff Automation GmbH & Co. KG
(cherry picked from commit 5c3c7500abd37116903994674f562c603a29aec1)
---
x11-servers/xorg-server/Makefile | 6 +----
x11-servers/xorg-server/files/patch-xkb_ddxLoad.c | 30 +++++++++++++++++++++++
x11-servers/xorg-server/pkg-plist | 2 --
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/x11-servers/xorg-server/Makefile b/x11-servers/xorg-server/Makefile
index 9939340ec737..ec5deabbea4b 100644
--- a/x11-servers/xorg-server/Makefile
+++ b/x11-servers/xorg-server/Makefile
@@ -1,5 +1,6 @@
PORTNAME= xorg
PORTVERSION= 21.1.12
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= x11-servers
MASTER_SITES= XORG/individual/xserver
@@ -34,7 +35,6 @@ PKGMESSAGE=
BINARY_NAME= ${FLAVOR:C/^(.).*/\1/:tu}${FLAVOR:C/^.//}
PLIST_FILES= bin/${BINARY_NAME} \
share/man/man1/${BINARY_NAME}.1.gz
-PLIST_DIRS= /var/lib/xkb /var/lib
.endif
DESCR= ${.CURDIR}/pkg-descr-${FLAVOR}
@@ -53,8 +53,6 @@ MESON_ARGS+= -Dxwin=false \
-Dfallback_input_driver=libinput \
-Ddocs=false \
-Dxcsecurity=true \
- -Dxkb_dir=${LOCALBASE}/share/X11/xkb \
- -Dxkb_output_dir=/var/lib/xkb \
-D${FLAVOR}=true
.for f in ${FLAVORS:N${FLAVOR}}
@@ -126,13 +124,11 @@ post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/share/X11/xorg.conf.d
@${INSTALL_DATA} ${FILESDIR}/20-evdev-kbd.conf \
${STAGEDIR}${PREFIX}/share/X11/xorg.conf.d
- ${MKDIR} -p ${STAGEDIR}/var/lib/xkb
.else
post-install:
${RM} -r ${STAGEDIR}${PREFIX}/lib/xorg/protocol.txt
${RMDIR} ${STAGEDIR}${PREFIX}/lib/xorg
${RM} ${STAGEDIR}${PREFIX}/share/man/man1/Xserver.1
- ${MKDIR} -p ${STAGEDIR}/var/lib/xkb
.endif
.include <bsd.port.post.mk>
diff --git a/x11-servers/xorg-server/files/patch-xkb_ddxLoad.c b/x11-servers/xorg-server/files/patch-xkb_ddxLoad.c
new file mode 100644
index 000000000000..509c70b6a680
--- /dev/null
+++ b/x11-servers/xorg-server/files/patch-xkb_ddxLoad.c
@@ -0,0 +1,30 @@
+--- xkb/ddxLoad.c.orig 2024-04-03 20:50:12 UTC
++++ xkb/ddxLoad.c
+@@ -31,6 +31,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ #include <xkb-config.h>
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <ctype.h>
+ #include <X11/X.h>
+ #include <X11/Xos.h>
+@@ -70,9 +71,17 @@ OutputDirectory(char *outdir, size_t size)
+ /* Can we write an xkm and then open it too? */
+ if (access(XKM_OUTPUT_DIR, W_OK | X_OK) == 0) {
+ directory = XKM_OUTPUT_DIR;
+- if (XKM_OUTPUT_DIR[strlen(XKM_OUTPUT_DIR) - 1] != '/')
+- pathsep = "/";
++ } else {
++ const char *xdg_runtime_dir = getenv("XDG_RUNTIME_DIR");
++
++ if (xdg_runtime_dir && xdg_runtime_dir[0] == '/' &&
++ access(xdg_runtime_dir, W_OK | X_OK) == 0)
++ directory = xdg_runtime_dir;
+ }
++
++ if (directory && directory[strlen(directory) - 1] != '/')
++ pathsep = "/";
++
+ #else
+ directory = Win32TempDir();
+ pathsep = "\\";
diff --git a/x11-servers/xorg-server/pkg-plist b/x11-servers/xorg-server/pkg-plist
index d99baab25f6b..b920012e58ba 100644
--- a/x11-servers/xorg-server/pkg-plist
+++ b/x11-servers/xorg-server/pkg-plist
@@ -189,5 +189,3 @@ share/X11/xorg.conf.d/20-evdev-kbd.conf
share/aclocal/xorg-server.m4
@dir etc/X11/xorg.conf.d
@dir %%FONTPATHD%%
-@dir /var/lib/xkb
-@dir /var/lib