unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
blob 975730518b354e4f5f08c4474e9a1a7d179233ba 3391 bytes (raw)
name: gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
From: Danny Milosavljevic <dannym@scratchpost.org>
Date: Thu, 31 Mar 2022 17:02:00 +0200
Subject: Make openjdk use libxcursor directly

Fixes <https://issues.guix.gnu.org/54654>.

This patch makes openjdk use libxcursor directly.
Without it, libx11 would try to dlopen("libXcursor.so.1") and fail.

diff -ru orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/make/modules/java.desktop/lib/Awt2dLibraries.gmk 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/make/modules/java.desktop/lib/Awt2dLibraries.gmk
--- orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/make/modules/java.desktop/lib/Awt2dLibraries.gmk	2022-03-31 15:34:08.773419480 +0200
+++ 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/make/modules/java.desktop/lib/Awt2dLibraries.gmk	2022-03-31 17:47:26.259535832 +0200
@@ -217,7 +217,7 @@
       endif
     endif
 
-    LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
+    LIBAWT_XAWT_LIBS := $(LIBM) -lawt -lXext -lX11 -lXcursor -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm
 
     ifeq ($(call isTargetOs, linux), true)
       LIBAWT_XAWT_LIBS += -lpthread
diff -ru orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/test/jdk/java/awt/JAWT/Makefile.unix 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/test/jdk/java/awt/JAWT/Makefile.unix
--- orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/test/jdk/java/awt/JAWT/Makefile.unix	2022-03-31 15:34:10.553466316 +0200
+++ 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/test/jdk/java/awt/JAWT/Makefile.unix	2022-03-31 17:47:08.027052750 +0200
@@ -31,7 +31,7 @@
 
 J_INC =		$(TESTJAVA)/include
 INCLUDES =	-I$(J_INC) -I$(J_INC)/$(SYST) -I.
-LIBS =		-L$(TESTJAVA)/lib -ljawt -lX11
+LIBS =		-L$(TESTJAVA)/lib -ljawt -lX11 -lXcursor
 
 all:		$(CLASSES) libmylib.so
 
diff -ru orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c
--- orig/22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c	2022-03-31 15:34:11.917502206 +0200
+++ 22kjr9lzrml0h5m55viq7zlfkqr9p7ny-openjdk-15.0.3-checkout/src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c	2022-03-31 17:07:25.664488391 +0200
@@ -44,6 +44,7 @@
 #include <X11/XKBlib.h>
 #include <X11/Xos.h>
 #include <X11/Xutil.h>
+#include <X11/Xcursor/Xcursor.h>
 
 #if defined(AIX)
 #undef X_HAVE_UTF8_STRING
@@ -972,10 +973,20 @@
 
 }
 
+static XColor _Xconst foreground = { 0,    0,     0,     0  };  /* black */
+static XColor _Xconst background = { 0, 65535, 65535, 65535 };  /* white */
+
 JNIEXPORT jint JNICALL Java_sun_awt_X11_XlibWrapper_XCreateFontCursor
 (JNIEnv *env, jclass clazz, jlong display, jint shape) {
     AWT_CHECK_HAVE_LOCK_RETURN(0);
-    return XCreateFontCursor((Display *) jlong_to_ptr(display), (int) shape);
+    Display * dpy = (Display *) jlong_to_ptr(display);
+    Font font = XLoadFont(dpy, "cursor"); /* note: leak */
+    if (font == None)
+        return 0;
+    Cursor result = XcursorTryShapeCursor(dpy, font, font, (int) shape, (int) shape + 1, &foreground, &background);
+    if (!result)
+        result = XCreateFontCursor(dpy, (int) shape);
+    return result;
 }
 
 /*

debug log:

solving 975730518b ...
found 975730518b in https://yhetil.org/guix-bugs/20220331171311.20805-1-dannym@scratchpost.org/

applying [1/1] https://yhetil.org/guix-bugs/20220331171311.20805-1-dannym@scratchpost.org/
diff --git a/gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch b/gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch
new file mode 100644
index 0000000000..975730518b

1:22: trailing whitespace.
 
1:25: trailing whitespace.
 
1:32: trailing whitespace.
 
1:37: trailing whitespace.
 
1:39: trailing whitespace.
 
Checking patch gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch...
Applied patch gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch cleanly.
warning: squelched 4 whitespace errors
warning: 9 lines add whitespace errors.

index at:
100644 975730518b354e4f5f08c4474e9a1a7d179233ba	gnu/packages/patches/openjdk-15-xcursor-no-dynamic.patch

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).