1 |
commit: fb87abe19150270ba0448d6192e0d6d0d5e782cc |
2 |
Author: Akinori Hattori <hattya <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun Sep 11 01:46:47 2022 +0000 |
4 |
Commit: Akinori Hattori <hattya <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Sep 11 01:46:47 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fb87abe1 |
7 |
|
8 |
app-text/hyperestraier: fix build with Java 11+ |
9 |
|
10 |
Closes: https://bugs.gentoo.org/867862 |
11 |
Package-Manager: Portage-3.0.30, Repoman-3.0.3 |
12 |
Signed-off-by: Akinori Hattori <hattya <AT> gentoo.org> |
13 |
|
14 |
.../files/hyperestraier-java-11.patch | 78 ++++++++++++++++++++++ |
15 |
...13-r1.ebuild => hyperestraier-1.4.13-r2.ebuild} | 3 +- |
16 |
2 files changed, 80 insertions(+), 1 deletion(-) |
17 |
|
18 |
diff --git a/app-text/hyperestraier/files/hyperestraier-java-11.patch b/app-text/hyperestraier/files/hyperestraier-java-11.patch |
19 |
new file mode 100644 |
20 |
index 000000000000..fa143fb23872 |
21 |
--- /dev/null |
22 |
+++ b/app-text/hyperestraier/files/hyperestraier-java-11.patch |
23 |
@@ -0,0 +1,78 @@ |
24 |
+--- a/javanative/Database.java |
25 |
++++ b/javanative/Database.java |
26 |
+@@ -135,7 +135,7 @@ |
27 |
+ /** last happened error code */ |
28 |
+ private int ecode; |
29 |
+ /** callback function to inform of database events */ |
30 |
+- private DatabaseInformer informer; |
31 |
++ private long informer; |
32 |
+ //---------------------------------------------------------------- |
33 |
+ // constructors and finalizers |
34 |
+ //---------------------------------------------------------------- |
35 |
+--- a/javanative/database.c |
36 |
++++ b/javanative/database.c |
37 |
+@@ -19,7 +19,7 @@ |
38 |
+ |
39 |
+ |
40 |
+ /* global variables */ |
41 |
+-JNIEnv *infoenv = NULL; |
42 |
++static JavaVM* jvm = NULL; |
43 |
+ |
44 |
+ |
45 |
+ /* private function prototypes */ |
46 |
+@@ -181,8 +181,8 @@ |
47 |
+ err = TRUE; |
48 |
+ } |
49 |
+ (*env)->SetLongField(env, obj, fid, 0); |
50 |
+- fid = (*env)->GetFieldID(env, cls, "informer", "L" CLSDBINFO ";"); |
51 |
+- if((infoobj = (*env)->GetObjectField(env, obj, fid)) != NULL) |
52 |
++ fid = (*env)->GetFieldID(env, cls, "informer", "J"); |
53 |
++ if((infoobj = (jobject)(*env)->GetLongField(env, obj, fid)) != NULL) |
54 |
+ (*env)->DeleteGlobalRef(env, infoobj); |
55 |
+ (*env)->SetObjectField(env, obj, fid, NULL); |
56 |
+ return err ? FALSE : TRUE; |
57 |
+@@ -735,16 +735,17 @@ |
58 |
+ throwillarg(env); |
59 |
+ return; |
60 |
+ } |
61 |
+- fid = (*env)->GetFieldID(env, cls, "informer", "L" CLSDBINFO ";"); |
62 |
+- if((oldobj = (*env)->GetObjectField(env, obj, fid)) != NULL) |
63 |
++ fid = (*env)->GetFieldID(env, cls, "informer", "J"); |
64 |
++ if((oldobj = (jobject)(*env)->GetLongField(env, obj, fid)) != NULL) |
65 |
+ (*env)->DeleteGlobalRef(env, oldobj); |
66 |
+ (*env)->SetObjectField(env, obj, fid, NULL); |
67 |
+ if(!(informer = (*env)->NewGlobalRef(env, informer))){ |
68 |
+ throwoutmem(env); |
69 |
+ return; |
70 |
+ } |
71 |
+- (*env)->SetObjectField(env, obj, fid, informer); |
72 |
+- infoenv = env; |
73 |
++ (*env)->SetLongField(env, obj, fid, (PTRNUM)informer); |
74 |
++ if(jvm == NULL) |
75 |
++ (*env)->GetJavaVM(env, &jvm); |
76 |
+ est_mtdb_set_informer((ESTMTDB *)(PTRNUM)coreptr, dbinform, informer); |
77 |
+ } |
78 |
+ |
79 |
+@@ -767,10 +768,12 @@ |
80 |
+ |
81 |
+ /* callback function for database events */ |
82 |
+ static void dbinform(const char *message, void *opaque){ |
83 |
++ JNIEnv *infoenv; |
84 |
+ jstring msgobj; |
85 |
+ jobject opobj; |
86 |
+ jclass cls; |
87 |
+ jmethodID mid; |
88 |
++ (*jvm)->GetEnv(jvm, (void **)&infoenv, JNI_VERSION_1_8); |
89 |
+ if(!(msgobj = (*infoenv)->NewStringUTF(infoenv, message))) return; |
90 |
+ opobj = (jobject)opaque; |
91 |
+ cls = (*infoenv)->GetObjectClass(infoenv, opobj); |
92 |
+--- a/javanative/myconf.h |
93 |
++++ b/javanative/myconf.h |
94 |
+@@ -69,7 +69,6 @@ |
95 |
+ #define CLSDOC "estraier/Document" |
96 |
+ #define CLSCOND "estraier/Condition" |
97 |
+ #define CLSDB "estraier/Database" |
98 |
+-#define CLSDBINFO "estraier/DatabaseInformer" |
99 |
+ #define CLSRES "estraier/Result" |
100 |
+ |
101 |
+ |
102 |
|
103 |
diff --git a/app-text/hyperestraier/hyperestraier-1.4.13-r1.ebuild b/app-text/hyperestraier/hyperestraier-1.4.13-r2.ebuild |
104 |
similarity index 98% |
105 |
rename from app-text/hyperestraier/hyperestraier-1.4.13-r1.ebuild |
106 |
rename to app-text/hyperestraier/hyperestraier-1.4.13-r2.ebuild |
107 |
index 28d438f7c840..94667fffd8b0 100644 |
108 |
--- a/app-text/hyperestraier/hyperestraier-1.4.13-r1.ebuild |
109 |
+++ b/app-text/hyperestraier/hyperestraier-1.4.13-r2.ebuild |
110 |
@@ -1,4 +1,4 @@ |
111 |
-# Copyright 1999-2021 Gentoo Authors |
112 |
+# Copyright 1999-2022 Gentoo Authors |
113 |
# Distributed under the terms of the GNU General Public License v2 |
114 |
|
115 |
EAPI="7" |
116 |
@@ -31,6 +31,7 @@ S="${WORKDIR}/all/${P}" |
117 |
|
118 |
PATCHES=( |
119 |
"${FILESDIR}"/${PN}-configure.patch |
120 |
+ "${FILESDIR}"/${PN}-java-11.patch |
121 |
"${FILESDIR}"/${PN}-perl.patch |
122 |
"${FILESDIR}"/${PN}-ruby19.patch |
123 |
) |