Gentoo Archives: gentoo-commits

From: Florian Schmaus <flow@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/jffi/
Date: Mon, 27 Feb 2023 08:57:52
Message-Id: 1677488261.ba4b499ebfd082c8022b05b828261dcde4d4800f.flow@gentoo
1 commit: ba4b499ebfd082c8022b05b828261dcde4d4800f
2 Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
3 AuthorDate: Sat Jan 28 11:01:14 2023 +0000
4 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 27 08:57:41 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ba4b499e
7
8 dev-java/jffi: add 1.3.10
9
10 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
11 Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
12
13 dev-java/jffi/Manifest | 1 +
14 dev-java/jffi/jffi-1.3.10.ebuild | 118 +++++++++++++++++++++++++++++++++++++++
15 2 files changed, 119 insertions(+)
16
17 diff --git a/dev-java/jffi/Manifest b/dev-java/jffi/Manifest
18 index 1417241bf1c7..6dfe7544ed64 100644
19 --- a/dev-java/jffi/Manifest
20 +++ b/dev-java/jffi/Manifest
21 @@ -1 +1,2 @@
22 +DIST jffi-1.3.10.tar.gz 3304571 BLAKE2B a2ce4901d05b31cffcbe750e9a9294413057ae26426ae381f08ab07a085507afe38d447a60d4698d0878760ba1fe18bfdc31ce9b737676a70c93689d2e4533a7 SHA512 9e7d9aa1c16d7fa2486c75b71fd23465a3069ea3f314bc1b536115c982333d7cffa93f75a06ec86b740b83f4fca3be0c32cf99222d90bf1e6b45a9744ead1268
23 DIST jffi-1.3.9.tar.gz 3193992 BLAKE2B bcd2dba3f9528c293aebb13a8fbd0b2fd7afcbae0cc5fa231f7e8ab190b834adc9e3f40bfc1211d0019a34a9edbaf8810f44b88f3c44b1e3b8065b2b80ccc6dc SHA512 21bf6997c64c0764c1fe86c9ab9b854037241489789f443a3337253ecc95100c94723a57165c85eed7a6c3837b8c04751af4a1fb5873a9c9fcd9a4535b68fc10
24
25 diff --git a/dev-java/jffi/jffi-1.3.10.ebuild b/dev-java/jffi/jffi-1.3.10.ebuild
26 new file mode 100644
27 index 000000000000..38a54daf093d
28 --- /dev/null
29 +++ b/dev-java/jffi/jffi-1.3.10.ebuild
30 @@ -0,0 +1,118 @@
31 +# Copyright 1999-2023 Gentoo Authors
32 +# Distributed under the terms of the GNU General Public License v2
33 +
34 +EAPI=8
35 +
36 +JAVA_PKG_IUSE="doc source test"
37 +MAVEN_ID="com.github.jnr:jffi:1.3.10"
38 +JAVA_TESTING_FRAMEWORKS="junit-4"
39 +
40 +inherit java-pkg-2 java-pkg-simple
41 +
42 +DESCRIPTION="Java Foreign Function Interface"
43 +HOMEPAGE="https://github.com/jnr/jffi"
44 +SRC_URI="https://github.com/jnr/${PN}/archive/${P}.tar.gz"
45 +S="${WORKDIR}/${PN}-${P}"
46 +
47 +LICENSE="Apache-2.0"
48 +SLOT="1.3"
49 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
50 +
51 +DEPEND=">=virtual/jdk-1.8:*
52 + >=dev-libs/libffi-3.4.2-r2:="
53 +RDEPEND=">=virtual/jre-1.8:*
54 + >=dev-libs/libffi-3.4.2-r2:="
55 +
56 +PATCHES=( "${FILESDIR}"/jffi-1.3.8-GNUmakefile.patch )
57 +
58 +JAVA_AUTOMATIC_MODULE_NAME="org.jnrproject.jffi"
59 +JAVA_SRC_DIR="src/main/java"
60 +
61 +# https://github.com/jnr/jffi/blob/b6ad5c066a6346072ea04f8ffa8177204aadcb13/build.xml#L26
62 +JAVA_TEST_EXTRA_ARGS="-Djffi.library.path=${S}/build/jni -Djffi.boot.library.path=${S}/build/jni"
63 +JAVA_TEST_GENTOO_CLASSPATH="junit-4"
64 +JAVA_TEST_SRC_DIR="src/test/java"
65 +
66 +src_prepare() {
67 + java-pkg-2_src_prepare
68 + default
69 + cat > src/main/java/com/kenai/jffi/Version.java <<-EOF
70 + package com.kenai.jffi;
71 + import java.lang.annotation.Native;
72 + public final class Version {
73 + private Version() {}
74 + @Native
75 + public static final int MAJOR = $(ver_cut 1);
76 + @Native
77 + public static final int MINOR = $(ver_cut 2);
78 + @Native
79 + public static final int MICRO = $(ver_cut 3);
80 + }
81 + EOF
82 +
83 + # https://bugs.gentoo.org/829820
84 + if use arm; then
85 + sed \
86 + -e '/import org.junit.Test/a import org.junit.Ignore;' \
87 + -e '/invokeHeapDO()/i @Ignore' \
88 + -e '/invokeHeapNO()/i @Ignore' \
89 + -e '/invokeHeapOD()/i @Ignore' \
90 + -e '/invokeHeapON()/i @Ignore' \
91 + -e '/invokeHeapOO()/i @Ignore' \
92 + -e '/invokeHeapO()/i @Ignore' \
93 + -e '/invokeNativeDO()/i @Ignore' \
94 + -e '/invokeNativeNO()/i @Ignore' \
95 + -e '/invokeNativeOD()/i @Ignore' \
96 + -e '/invokeNativeON()/i @Ignore' \
97 + -e '/invokeNativeOO()/i @Ignore' \
98 + -e '/invokeNativeO()/i @Ignore' \
99 + -i src/test/java/com/kenai/jffi/InvokerTest.java || die
100 + sed \
101 + -e '/import org.junit.Test/a import org.junit.Ignore;' \
102 + -e '/returnDefaultF128HighPrecision/i @Ignore' \
103 + -i src/test/java/com/kenai/jffi/NumberTest.java || die
104 + fi
105 +}
106 +
107 +src_compile() {
108 + java-pkg-simple_src_compile
109 +
110 + # generate headers
111 + mkdir -p build/jni
112 + javac -h build/jni -classpath target/classes \
113 + ${JAVA_SRC_DIR}/com/kenai/jffi/{Foreign,ObjectBuffer,Version}.java \
114 + || die
115 +
116 + #build native library.
117 + local args=(
118 + SRC_DIR=jni
119 + JNI_DIR=jni
120 + BUILD_DIR=build/jni
121 + VERSION=$(ver_cut 1-2)
122 + USE_SYSTEM_LIBFFI=1
123 + CCACHE=
124 + -f jni/GNUmakefile
125 + )
126 + emake "${args[@]}"
127 +}
128 +
129 +src_test() {
130 + # build native test library
131 + emake BUILD_DIR=build -f libtest/GNUmakefile
132 +
133 + # https://github.com/jnr/jffi/issues/60
134 + LC_ALL=C java-pkg-simple_src_test
135 +}
136 +
137 +src_install() {
138 + local libname=".so"
139 + java-pkg_doso build/jni/lib${PN}-$(ver_cut 1-2)${libname}
140 +
141 + # must be after _doso to have JAVA_PKG_LIBDEST set
142 + cat > boot.properties <<-EOF
143 + jffi.boot.library.path = ${JAVA_PKG_LIBDEST}
144 + EOF
145 + jar -uf ${PN}.jar boot.properties || die
146 +
147 + java-pkg-simple_src_install
148 +}