summaryrefslogtreecommitdiff
path: root/dev-java/jna
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/jna')
-rw-r--r--dev-java/jna/Manifest2
-rw-r--r--dev-java/jna/jna-5.17.0.ebuild193
2 files changed, 195 insertions, 0 deletions
diff --git a/dev-java/jna/Manifest b/dev-java/jna/Manifest
index f9f3b7b4fe3b..7318dd8fdc37 100644
--- a/dev-java/jna/Manifest
+++ b/dev-java/jna/Manifest
@@ -4,6 +4,8 @@ AUX jna-5.13.0-LibCTest.patch 456 BLAKE2B 51dc724df52af7dbc8700dd7adae2d9db32c15
AUX jna-5.13.0-testpath.patch 5567 BLAKE2B 0c76e603af9ae2a1f3cacde220ec4451d5973f9dab805e20fc5e9bf852928a0489ca742df8277a9c5a47d10064897ea50860d587b21288d605c476d3e7d122ae SHA512 c8c40a6f5ec049641eb3cca2a9b74fd851ebf6264d5a5cc1db10190d645e4bf219f45d5bb68094ce843b32f7079a8ae0ccb1a804f2cc0d066052acf841c96145
DIST jna-5.13.0.tar.gz 116027625 BLAKE2B 1f2bc7ab28adefa0bbad122957ed2c6ef55ab88e79b30c05f0d2d88e0e05152f7bb5e28097906a7e24f78304dfa2b225587adb0ada205ca3c2ceac1cdbab3f04 SHA512 aefd0becc03bb7fd753e8c5cdcbcb20f6d590125a5fb03048bef0024e826ab0254b750e22a8bb26bea38cc89262ad45e5030b666cb2c857b01b15a6a55379a0f
DIST jna-5.16.0.tar.gz 117007067 BLAKE2B 805cc1b9a23a0bddad77900b7158d00dde3827dd577f68bdbc4d7de8a1d6d368826accee92bc76b3ea3188d1f9e3655776141136c04238c51bcedcb587937109 SHA512 76124b4c885e81f68f7724a04508a76f9b366867faede11d9b75c1c56e46f904825f4d05ce94e7e3c0e4b759007c589d4fbdb90f93864a51044b5baa6b9ca21a
+DIST jna-5.17.0.tar.gz 117280491 BLAKE2B 4eb919b4a1f21e7674f334a26c7a63a3e8ec98cbfa114bc22e0a34c70f151f32f252a7c21467cf138dad6fa9bcb538a61da95450384353821d20588f99658c5f SHA512 9ed24af21a5e0470733c0836b8d7e892de8d0307d32460925b5457052de4a9c3b5f20466afd14059d686ea4af23670b002f78e3027dcc0dfc07e790942236bcb
EBUILD jna-5.13.0-r1.ebuild 5362 BLAKE2B 45afcd8316679df0621c01f432a11913a367725800fd1705aa095f5b8623ad5e99a824ba3728c03ece164e63e45dc128fa2790d03000f8827cfa02568a1fac73 SHA512 09b768f2cc2b835f6dd466d66a1133f78fc15eb266c3a85cd52779d3d5efb07ea7f8bc3ea2756045971cafcbd46c02c41b14eef5fbe0d247230f135a72e417f8
EBUILD jna-5.16.0.ebuild 5385 BLAKE2B 39d527ce06b0af1e908421b9cbabff1f689b0d0e802df7f185c3af4153be16cb03ebc5a9834ab3dda124b422a5a30671fa3ab96a560741bf2aca1e931afae545 SHA512 57f8c991c1abddc5da791406e23ff740d78be39bc8024c5a88045d8493dfa139faf1578d9b5722989a9f0374ccdf66c1b7b5cd5be482ca5afcff98250cfdd9d0
+EBUILD jna-5.17.0.ebuild 5689 BLAKE2B 66a0e9565c2280fc80f03b0c0f1245c5e61ab767ede932b690be96c010b59fed3510471bd0841e5a02d9bb3f9dc4125e30b9a59cdacc312fa6613f00b2a63be4 SHA512 438d88e740f198f130e50fbe43ec20baa9d79586163dcd29dfeedaaea4ebfd098bb97325a5afa21353463420d35da1e79a0c52cb95c42f0517128031c88a63a1
MISC metadata.xml 334 BLAKE2B 9e55710ddf27995f7f0ea6480a4b2ff6ed38424e5a8de87614715defa4ae9f788932d270df48e78fdadb27851f06f2651d94c0b043816151aea55c08f083c4ee SHA512 b8b0cc53cc447f2811b3e94638de0799efaf99a05f29a0341d3a261b1f0f996ca308a007221f165031e56e60339d8d616ca366f25eda7f7f5d55acfc60a9d695
diff --git a/dev-java/jna/jna-5.17.0.ebuild b/dev-java/jna/jna-5.17.0.ebuild
new file mode 100644
index 000000000000..860332ec5136
--- /dev/null
+++ b/dev-java/jna/jna-5.17.0.ebuild
@@ -0,0 +1,193 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_PROVIDES="
+ net.java.dev.jna:jna:${PV}
+ net.java.dev.jna:jna-platform:${PV}
+"
+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 )
+"
+
+RDEPEND="
+ ${CDEPEND}
+ >=virtual/jre-1.8:*
+"
+
+DOCS=( README.md CHANGES.md OTHERS TODO )
+
+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() {
+ default #780585
+ java-pkg-2_src_prepare
+ java-pkg_clean
+
+ # https://github.com/java-native-access/jna/blob/5.13.0/build.xml#L402-L407
+ sed \
+ -e "/VERSION =/s:TEMPLATE:${PV}:" \
+ -e '/VERSION_NATIVE =/s:TEMPLATE:5.1.0:' \
+ -i src/com/sun/jna/Version.java || 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
+
+ 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
+ )
+ # Using -j1 since otherwise fails to build:
+ # cannot find ../build/native/libtestlib.so: No such file or directory
+ # [Makefile:505: ../build/native/libtestlib2.so] Error 1
+ emake -j1 "${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
+ )
+
+ 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"
+ pushd "${JAVA_TEST_SRC_DIR}" > /dev/null || die
+ local JAVA_TEST_RUN_LATER=$(find * -name '*Test.java' ! -name 'XAttrUtilTest.java' )
+ popd
+ 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 )
+
+ pushd "${JAVA_TEST_SRC_DIR}" > /dev/null || die
+ # 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 * \
+ -name "*Test.java" \
+ ! -name 'CallbacksTest.java' \
+ ! -name 'DirectTest.java' \
+ ! -name 'UnionTest.java' \
+ ! -name 'TypeMapperTest.java' \
+ ! -name 'NativeTest.java' \
+ ! -name 'DirectCallbacksTest.java' \
+ ! -name 'VMCrashProtectionTest.java' \
+ )
+ popd
+ 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() {
+ default
+ java-pkg_dojar jna.jar jna-platform.jar
+ java-pkg_doso build/native/libjnidispatch.so
+
+ use doc && java-pkg_dojavadoc target/api
+
+ if use source; then
+ java-pkg_dosrc "src/*"
+ java-pkg_dosrc "contrib/platform/src/*"
+ fi
+}