summaryrefslogtreecommitdiff
path: root/dev-java
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java')
-rw-r--r--dev-java/jna/Manifest1
-rw-r--r--dev-java/jna/jna-5.19.1.ebuild184
2 files changed, 185 insertions, 0 deletions
diff --git a/dev-java/jna/Manifest b/dev-java/jna/Manifest
index c3132217103e..e8b1bedf2c1b 100644
--- a/dev-java/jna/Manifest
+++ b/dev-java/jna/Manifest
@@ -1 +1,2 @@
DIST jna-5.18.1.tar.gz 117189568 BLAKE2B 32d641ef9f9565cd9469379ab848da4a7fef147ecba7ef20569590dfa76a66d677a0822f5a99bf567e4e70f41955173b118feb24f1bb717f57e08aac21e77acd SHA512 ce20cb336e49196bb438c5c575a4e7a708b59ee96f19510218c50a60f9f2124f299aa4e5f749963734d17f6cabcb77c6c0d5eed1aeaf14d03913bd31cc9d0846
+DIST jna-5.19.1.tar.gz 121713304 BLAKE2B d81fead660532332a779480b7eb8cc526118a130788c15d0011f328daaa8c290357f14377d85246c1b18f90d08fd1e3c1aa00f1702e2f056bc08cefbd133eff2 SHA512 77a76442731f83bab7edce44b62d9c7b8ba5b55aff6e102d4114cbf5673d9a15b25f12f3185d54670537b0501a0835082182f499f5ff3e29feec8d139a0a14fb
diff --git a/dev-java/jna/jna-5.19.1.ebuild b/dev-java/jna/jna-5.19.1.ebuild
new file mode 100644
index 000000000000..9a08f0d47c6b
--- /dev/null
+++ b/dev-java/jna/jna-5.19.1.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+JAVA_PKG_IUSE="doc source test"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple toolchain-funcs
+
+DESCRIPTION="Java Native Access"
+HOMEPAGE="https://github.com/java-native-access/jna"
+SRC_URI="https://github.com/java-native-access/jna/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P}"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+BDEPEND="virtual/pkgconfig"
+
+CDEPEND=">=dev-libs/libffi-3.4:="
+
+DEPEND="
+ ${CDEPEND}
+ >=virtual/jdk-11:*
+ x11-base/xorg-proto:0
+ x11-libs/libXt
+ test? (
+ dev-java/reflections:0
+ net-print/cups
+ )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=virtual/jre-1.8:*
+"
+
+DOCS=( README.md CHANGES.md OTHERS )
+
+JAVADOC_SRC_DIRS=( {contrib/platform/,}src )
+
+PATCHES=(
+ "${FILESDIR}/5.11.0-makefile-flags.patch"
+ "${FILESDIR}/jna-5.11.0-no-Werror.patch"
+ "${FILESDIR}/jna-5.13.0-testpath.patch"
+ "${FILESDIR}/jna-5.13.0-LibCTest.patch"
+)
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ java-pkg_clean
+
+ # build.xml lines 245-250
+ sed \
+ -e "/VERSION =/s:TEMPLATE:${PV}:" \
+ -e "/VERSION_NATIVE =/s:TEMPLATE:${PV}:" \
+ -i src/com/sun/jna/Version.java || die
+ sed \
+ -e "s:^JNA_JNI_VERSION=.*$:JNA_JNI_VERSION=${PV}:" \
+ -i native/Makefile || die
+}
+
+src_compile() {
+ einfo "Compiling jna.jar"
+ JAVA_INTERMEDIATE_JAR_NAME="com.sun.jna"
+ JAVA_JAR_FILENAME="jna.jar"
+ JAVA_MAIN_CLASS="com.sun.jna.Native"
+ JAVA_MODULE_INFO_OUT="src"
+ JAVA_SRC_DIR="src"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":jna.jar"
+ rm -r target || die
+
+ einfo "Compiling jna-platform.jar"
+ JAVA_INTERMEDIATE_JAR_NAME="com.sun.jna.platform"
+ JAVA_JAR_FILENAME="jna-platform.jar"
+ JAVA_MAIN_CLASS="" # Did the eclass forget to unset this variable?
+ JAVA_MODULE_INFO_OUT="contrib/platform/src"
+ JAVA_SRC_DIR="contrib/platform/src"
+ java-pkg-simple_src_compile
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":jna-platform.jar"
+ rm -r target || die
+
+ #954164
+ rm contrib/platform/src/com.sun.jna.platform/versions/9/module-info.java || die
+ use doc && ejavadoc
+
+ einfo "Generating headers com_sun_jna_Native.h com_sun_jna_Function.h"
+ ejavac -h native -classpath "src" \
+ "src/com/sun/jna/Function.java" \
+ "src/com/sun/jna/Native.java" || die
+
+ einfo "Building native library"
+ cd native || die
+ local args=(
+ CC="$(tc-getCC)"
+ STRIP=true
+ DYNAMIC_LIBFFI=true
+ )
+ emake "${args[@]}"
+}
+
+src_test() {
+ rm -r contrib/platform/test/com/sun/jna/platform/{mac,unix,win32} || die
+ rm -r test/com/sun/jna/wince || die
+ rm -r test/com/sun/jna/win32 || die
+
+ # 1) testLoadFromJarAbsolute(com.sun.jna.LibraryLoadTest)
+ # java.lang.UnsatisfiedLinkError: Unable to load library '/libtestlib-jar.so':
+ # /libtestlib-jar.so: cannot open shared object file: No such file or directory
+ jar cvf build/jna-test.jar \
+ -C build/native libtestlib-jar.so \
+ -C test com/sun/jna/data || die
+ JAVA_GENTOO_CLASSPATH_EXTRA+=":build/jna-test.jar"
+
+ JAVA_TEST_EXTRA_ARGS=(
+ -Djna.nosys=true
+ -Djna.boot.library.path=build/native
+ -Djna.library.path=build/native
+ --enable-native-access=ALL-UNNAMED
+ )
+
+ JAVA_TEST_GENTOO_CLASSPATH="junit-4,reflections"
+
+ einfo "Testing jna-platform"
+ JAVA_TEST_RUN_ONLY=( com.sun.jna.platform.linux.XAttrUtilTest ) # If not run first, it would fail.
+ JAVA_TEST_SRC_DIR="contrib/platform/test"
+ local JAVA_TEST_RUN_LATER=$(find ${JAVA_TEST_SRC_DIR} \
+ ! -name 'XAttrUtilTest.java' -name '*Test.java' -printf '%P\n')
+ JAVA_TEST_RUN_LATER="${JAVA_TEST_RUN_LATER//.java}"
+ JAVA_TEST_RUN_ONLY+=( ${JAVA_TEST_RUN_LATER//\//.} )
+ java-pkg-simple_src_test
+
+ einfo "Testing jna"
+ JAVA_TEST_SRC_DIR="test"
+
+ # Some tests need to run first, otherwise they would fail.
+ JAVA_TEST_RUN_ONLY=(
+ com.sun.jna.CallbacksTest
+ com.sun.jna.DirectTest
+ com.sun.jna.UnionTest
+ )
+ JAVA_TEST_RUN_ONLY+=( com.sun.jna.TypeMapperTest )
+ JAVA_TEST_RUN_ONLY+=( com.sun.jna.NativeTest )
+
+ # Here, those tests which were moved to top of the array are excluded.
+ # Also exclude 2 tests which must not run before the others.
+ local JAVA_TEST_RUN_LATER=$(find test \
+ -name "*Test.java" \
+ ! -name 'CallbacksTest.java' \
+ ! -name 'DirectTest.java' \
+ ! -name 'UnionTest.java' \
+ ! -name 'TypeMapperTest.java' \
+ ! -name 'NativeTest.java' \
+ ! -name 'DirectCallbacksTest.java' \
+ ! -name 'VMCrashProtectionTest.java' -printf '%P\n')
+ JAVA_TEST_RUN_LATER="${JAVA_TEST_RUN_LATER//.java}"
+ JAVA_TEST_RUN_ONLY+=( ${JAVA_TEST_RUN_LATER//\//.} )
+
+ # This one makes trouble if run before some others.
+ JAVA_TEST_RUN_ONLY+=( com.sun.jna.VMCrashProtectionTest )
+ java-pkg-simple_src_test
+
+ # There was 1 failure:
+ # 1) testDefaultCallbackExceptionHandler(com.sun.jna.CallbacksTest)
+ # junit.framework.AssertionFailedError: Default handler not called
+ # at junit.framework.Assert.fail(Assert.java:57)
+ # at junit.framework.Assert.assertTrue(Assert.java:22)
+ # at junit.framework.TestCase.assertTrue(TestCase.java:192)
+ # at com.sun.jna.CallbacksTest.testDefaultCallbackExceptionHandler(CallbacksTest.java:865)
+ # Cannot run in same batch as 'com.sun.jna.CallbacksTest'.
+ # It would break other tests if run before and segmentation fault if run after.
+ JAVA_TEST_RUN_ONLY=( com.sun.jna.DirectCallbacksTest )
+ java-pkg-simple_src_test
+}
+
+src_install() {
+ JAVA_SRC_DIR=( {contrib/platform/,}src/* ) # for the 'source' flag
+ java-pkg-simple_src_install
+ java-pkg_dojar jna.jar
+ java-pkg_doso build/native/libjnidispatch.so
+}