From 32d1f71593dc381880b42a3277fdf457df0be25d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 3 Apr 2022 13:45:10 +0200 Subject: gnu: xterm: Make big cursors work. * 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 4bff8d8f6e..aac7362475 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 +Date: Thu, 2 Apr 2022 12:10:00 +0200 +Subject: Make xterm use libxcursor directly + +Fixes . + +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 + #endif ++#ifdef HAVE_LIB_XCURSOR ++#include ++#endif + + #ifdef HAVE_LANGINFO_CODESET + #include +@@ -866,7 +869,14 @@ + * 0, 2 a shape, 3 a mask for 2, etc. + * 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 @@ to answer a question. Xmessage can also exit after a specified time.") (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 -- cgit v1.2.3