* [bug#54680] [PATCH] gnu: xterm: Make big cursors work.
@ 2022-04-02 10:15 dannym
2022-04-03 10:39 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: dannym @ 2022-04-02 10:15 UTC (permalink / raw)
To: 54680; +Cc: Danny Milosavljevic
From: Danny Milosavljevic <dannym@scratchpost.org>
* gnu/packages/patches/xterm-370-explicit-xcursor.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/xorg.scm (xterm)[source]: Add it.
[arguments]<#:configure-flags>: Add "-lXcursor".
---
gnu/local.mk | 1 +
.../patches/xterm-370-explicit-xcursor.patch | 37 +++++++++++++++++++
gnu/packages/xorg.scm | 7 +++-
3 files changed, 43 insertions(+), 2 deletions(-)
create mode 100644 gnu/packages/patches/xterm-370-explicit-xcursor.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index ac8992885e..3896f13074 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1975,6 +1975,7 @@ dist_patch_DATA = \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \
%D%/packages/patches/xsane-support-ipv6.patch \
%D%/packages/patches/xsane-tighten-default-umask.patch \
+ %D%/packages/patches/xterm-370-explicit-xcursor.patch \
%D%/packages/patches/xygrib-fix-finding-data.patch \
%D%/packages/patches/yggdrasil-extra-config.patch \
%D%/packages/patches/ytfzf-programs.patch \
diff --git a/gnu/packages/patches/xterm-370-explicit-xcursor.patch b/gnu/packages/patches/xterm-370-explicit-xcursor.patch
new file mode 100644
index 0000000000..2500ccf0c8
--- /dev/null
+++ b/gnu/packages/patches/xterm-370-explicit-xcursor.patch
@@ -0,0 +1,37 @@
+From: Danny Milosavljevic <dannym@scratchpost.org>
+Date: Thu, 2 Apr 2022 12:10:00 +0200
+Subject: Make xterm use libxcursor directly
+
+Fixes <https://issues.guix.gnu.org/54654>.
+
+This patch makes xterm use libxcursor directly.
+Without it, libx11 would try to dlopen("libXcursor.so.1") and fail.
+
+--- xterm-370/misc.c.orig 2022-04-02 11:52:26.225131854 +0200
++++ xterm-370/misc.c 2022-04-02 12:06:13.091482385 +0200
+@@ -79,6 +79,9 @@
+ #ifdef HAVE_LIBXPM
+ #include <X11/xpm.h>
+ #endif
++#ifdef HAVE_LIB_XCURSOR
++#include <X11/Xcursor/Xcursor.h>
++#endif
+
+ #ifdef HAVE_LANGINFO_CODESET
+ #include <langinfo.h>
+@@ -866,7 +869,14 @@
+ * 0, 2 a shape, 3 a mask for 2, etc. <X11/cursorfont.h>
+ * contains defined names for each shape.
+ */
+- c = XCreateGlyphCursor(dpy,
++ c = XcursorTryShapeCursor(dpy,
++ myFont.fs->fid, /* source_font */
++ myFont.fs->fid, /* mask_font */
++ c_index + 0, /* source_char */
++ c_index + 1, /* mask_char */
++ &foreground,
++ &background);
++ if (c == None) c = XCreateGlyphCursor(dpy,
+ myFont.fs->fid, /* source_font */
+ myFont.fs->fid, /* mask_font */
+ c_index + 0, /* source_char */
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 14cd3bc789..75a7bbd01c 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -6144,12 +6144,15 @@ (define-public xterm
(string-append "ftp://ftp.invisible-island.net/xterm/"
"xterm-" version ".tgz")))
(sha256
- (base32 "10lc72spa69n9d7zg9nwhgwz70qzidp5i17jgw3lq3qg1a25sg4n"))))
+ (base32 "10lc72spa69n9d7zg9nwhgwz70qzidp5i17jgw3lq3qg1a25sg4n"))
+ (patches
+ (search-patches "xterm-370-explicit-xcursor.patch"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
"--enable-i18n" "--enable-doublechars"
- "--enable-luit" "--enable-mini-luit")
+ "--enable-luit" "--enable-mini-luit"
+ "X_EXTRA_LIBS=-lXcursor")
#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
--
2.34.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-04-04 20:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-02 10:15 [bug#54680] [PATCH] gnu: xterm: Make big cursors work dannym
2022-04-03 10:39 ` Ludovic Courtès
2022-04-03 11:51 ` bug#54680: " Danny Milosavljevic
2022-04-04 20:14 ` [bug#54680] " Ludovic Courtès
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.