- switches to default slot (SLOT=0) - consumers should be switched on version bumps
Signed-off-by: Volkmar W. Pogatzki <gen...@pogatzki.net> --- dev-java/jna/Manifest | 1 + dev-java/jna/jna-5.17.0.ebuild | 193 +++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 dev-java/jna/jna-5.17.0.ebuild diff --git a/dev-java/jna/Manifest b/dev-java/jna/Manifest index 7b0e3833bb1a..b002df3f1916 100644 --- a/dev-java/jna/Manifest +++ b/dev-java/jna/Manifest @@ -1,2 +1,3 @@ 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 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 +} -- 2.41.0