Gentoo Archives: gentoo-commits

From: Akinori Hattori <hattya@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-text/hyperestraier/files/, app-text/hyperestraier/
Date: Sun, 11 Sep 2022 01:50:38
Message-Id: 1662860807.fb87abe19150270ba0448d6192e0d6d0d5e782cc.hattya@gentoo
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 )