diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-java/jna | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'dev-java/jna')
| -rw-r--r-- | dev-java/jna/Manifest | 1 | ||||
| -rw-r--r-- | dev-java/jna/files/5.11.0-makefile-flags.patch | 34 | ||||
| -rw-r--r-- | dev-java/jna/files/jna-5.11.0-no-Werror.patch | 17 | ||||
| -rw-r--r-- | dev-java/jna/files/jna-5.13.0-LibCTest.patch | 12 | ||||
| -rw-r--r-- | dev-java/jna/files/jna-5.13.0-testpath.patch | 103 | ||||
| -rw-r--r-- | dev-java/jna/jna-5.18.1.ebuild | 199 | ||||
| -rw-r--r-- | dev-java/jna/metadata.xml | 9 |
7 files changed, 375 insertions, 0 deletions
diff --git a/dev-java/jna/Manifest b/dev-java/jna/Manifest new file mode 100644 index 000000000000..c3132217103e --- /dev/null +++ b/dev-java/jna/Manifest @@ -0,0 +1 @@ +DIST jna-5.18.1.tar.gz 117189568 BLAKE2B 32d641ef9f9565cd9469379ab848da4a7fef147ecba7ef20569590dfa76a66d677a0822f5a99bf567e4e70f41955173b118feb24f1bb717f57e08aac21e77acd SHA512 ce20cb336e49196bb438c5c575a4e7a708b59ee96f19510218c50a60f9f2124f299aa4e5f749963734d17f6cabcb77c6c0d5eed1aeaf14d03913bd31cc9d0846 diff --git a/dev-java/jna/files/5.11.0-makefile-flags.patch b/dev-java/jna/files/5.11.0-makefile-flags.patch new file mode 100644 index 000000000000..4a84abebf45d --- /dev/null +++ b/dev-java/jna/files/5.11.0-makefile-flags.patch @@ -0,0 +1,34 @@ +--- a/native/Makefile ++++ b/native/Makefile +@@ -81,7 +81,7 @@ LIBPFX=lib + LIBSFX=.so + ARSFX=.a + JNISFX=$(LIBSFX) +-CC=gcc ++CC?=gcc + LD=$(CC) + LIBS= + # Default to Sun recommendations for JNI compilation +@@ -94,10 +94,10 @@ CFLAGS_EXTRA= + COUT=-o $@ + CINCLUDES=$(JAVA_INCLUDES) -I"$(JAVAH)" -I$(FFI_BUILD)/include + CDEFINES=-D_REENTRANT +-PCFLAGS=-W -Wall -Wno-unused -Wno-parentheses +-CFLAGS=$(PCFLAGS) $(CFLAGS_EXTRA) $(COPT) $(CDEBUG) $(CDEFINES) $(CINCLUDES) \ ++PCFLAGS=-Wall -Wno-unused -Wno-parentheses ++CFLAGS+= $(PCFLAGS) $(CFLAGS_EXTRA) $(COPT) $(CDEBUG) $(CDEFINES) $(CINCLUDES) \ + -DJNA_JNI_VERSION='"$(JNA_JNI_VERSION)"' -DCHECKSUM='"$(CHECKSUM)"' +-LDFLAGS=-o $@ -shared ++LDFLAGS+= -o $@ -shared + ifeq ($(DYNAMIC_LIBFFI),true) + CFLAGS += $(shell pkg-config --cflags libffi 2>/dev/null || echo) + LIBS += $(shell pkg-config --libs libffi 2>/dev/null || echo -lffi) +@@ -108,7 +108,7 @@ endif + # Avoid bug in X11-based 1.5/1.6 VMs; dynamically load instead of linking + # See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6539705 + #LIBS=-L"$(LIBDIR)" -ljawt +-STRIP=strip -x ++STRIP?=strip -x + # end defaults + + # Android build (cross-compile) requires the android NDK. diff --git a/dev-java/jna/files/jna-5.11.0-no-Werror.patch b/dev-java/jna/files/jna-5.11.0-no-Werror.patch new file mode 100644 index 000000000000..629a1a4452de --- /dev/null +++ b/dev-java/jna/files/jna-5.11.0-no-Werror.patch @@ -0,0 +1,17 @@ +https://bugs.gentoo.org/888813 +--- a/native/Makefile ++++ b/native/Makefile +@@ -356,11 +356,11 @@ ifeq ($(CC),gcc) + GCC_MAJOR_VERSION = $(shell gcc -dumpversion | cut -f 1 -d '.') + ifneq ($(GCC_MAJOR_VERSION),4) + ifneq ($(GCC_MAJOR_VERSION),3) +- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than ++ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable -Wno-alloca-larger-than + endif + endif + else +- LOC_CC_OPTS=-Wno-unknown-warning-option -Werror -Wno-clobbered -Wno-unused-variable ++ LOC_CC_OPTS=-Wno-unknown-warning-option -Wno-clobbered -Wno-unused-variable + endif + + # Enable 64-bit builds if the arch demands it diff --git a/dev-java/jna/files/jna-5.13.0-LibCTest.patch b/dev-java/jna/files/jna-5.13.0-LibCTest.patch new file mode 100644 index 000000000000..8cc9da563ed3 --- /dev/null +++ b/dev-java/jna/files/jna-5.13.0-LibCTest.patch @@ -0,0 +1,12 @@ +Bug #906053 +--- a/contrib/platform/test/com/sun/jna/platform/linux/LibCTest.java ++++ b/contrib/platform/test/com/sun/jna/platform/linux/LibCTest.java +@@ -71,7 +71,7 @@ public class LibCTest extends TestCase { + } + + @Test +- public void testStatvfs() throws IOException, InterruptedException { ++ public void noTestStatvfs() throws IOException, InterruptedException { + Statvfs vfs = new Statvfs(); + + String testDirectory = "/"; diff --git a/dev-java/jna/files/jna-5.13.0-testpath.patch b/dev-java/jna/files/jna-5.13.0-testpath.patch new file mode 100644 index 000000000000..7bd918c4181a --- /dev/null +++ b/dev-java/jna/files/jna-5.13.0-testpath.patch @@ -0,0 +1,103 @@ +This patch solves several test failures on com.sun.jna.LibraryLoadTest like +"Expected JNA native library at build/native-linux-x86-64/libtestlib.so is missing" +--- a/test/com/sun/jna/Paths.java ++++ b/test/com/sun/jna/Paths.java +@@ -47,12 +47,12 @@ public interface Paths { + USING_CLOVER + ? "build.clover" : "build"); + String CLASSES = BUILDDIR + (Platform.isWindowsCE() ? "" : "/classes"); +- String JNAJAR = BUILDDIR + "/jna.jar"; ++ String JNAJAR = "jna.jar"; + + String TESTPATH = Platform.isWindowsCE() + ? "/Storage Card/" + : System.getProperty("jna.nativedir", +- BUILDDIR + "/native-" + Platform.RESOURCE_PREFIX + "/"); ++ BUILDDIR + "/native/"); + String TESTJAR = BUILDDIR + "/jna-test.jar"; + String TESTJAR2 = BUILDDIR + "/jna-test2.jar"; + String TESTJAR3 = BUILDDIR + "/jna-test3.jar"; +1) testAvoidJarUnpacking(com.sun.jna.JNALoadTest) +java.lang.ClassNotFoundException: com.sun.jna.Native + at java.net.URLClassLoader.findClass(URLClassLoader.java:387) + at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64) + at java.lang.ClassLoader.loadClass(ClassLoader.java:418) + at java.lang.ClassLoader.loadClass(ClassLoader.java:351) + at java.lang.Class.forName0(Native Method) + at java.lang.Class.forName(Class.java:348) + at com.sun.jna.JNALoadTest.testAvoidJarUnpacking(JNALoadTest.java:94) +2) testLoadAndUnloadFromJar(com.sun.jna.JNALoadTest) +java.lang.ClassNotFoundException: com.sun.jna.Native + at java.net.URLClassLoader.findClass(URLClassLoader.java:387) + at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64) + at java.lang.ClassLoader.loadClass(ClassLoader.java:418) + at java.lang.ClassLoader.loadClass(ClassLoader.java:351) + at java.lang.Class.forName0(Native Method) + at java.lang.Class.forName(Class.java:348) + at com.sun.jna.JNALoadTest.testLoadAndUnloadFromJar(JNALoadTest.java:128) +3) testAvoidResourcePathLoading(com.sun.jna.JNALoadTest) +java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing + at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87) + at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54) + at com.sun.jna.JNALoadTest.testAvoidResourcePathLoading(JNALoadTest.java:109) +4) testLoadFromUnicodePath(com.sun.jna.JNALoadTest) +java.lang.ClassNotFoundException: com.sun.jna.Native + at java.net.URLClassLoader.findClass(URLClassLoader.java:387) + at com.sun.jna.JNALoadTest$TestLoader.findClass(JNALoadTest.java:64) + at java.lang.ClassLoader.loadClass(ClassLoader.java:418) + at java.lang.ClassLoader.loadClass(ClassLoader.java:351) + at java.lang.Class.forName0(Native Method) + at java.lang.Class.forName(Class.java:348) + at com.sun.jna.JNALoadTest.testLoadFromUnicodePath(JNALoadTest.java:255) +5) testLoadAndUnloadFromResourcePath(com.sun.jna.JNALoadTest) +java.lang.Error: Expected JNA library at build/classes/com/sun/jna/linux-x86-64/libjnidispatch.so is missing + at com.sun.jna.JNALoadTest.assertLibraryExists(JNALoadTest.java:87) + at com.sun.jna.JNALoadTest$TestLoader.<init>(JNALoadTest.java:54) + at com.sun.jna.JNALoadTest.testLoadAndUnloadFromResourcePath(JNALoadTest.java:184) +--- a/test/com/sun/jna/JNALoadTest.java ++++ b/test/com/sun/jna/JNALoadTest.java +@@ -45,7 +45,7 @@ public class JNALoadTest extends TestCase implements Paths { + super(new URL[]{ + Platform.isWindowsCE() + ? new File("/Storage Card/" + (fromJar ? "jna.jar" : "test.jar")).toURI().toURL() +- : new File(BUILDDIR + (fromJar ? "/jna.jar" : "/classes")).toURI().toURL()}, ++ : new File((fromJar ? "jna.jar" : "/classes")).toURI().toURL()}, + new CloverLoader()); + if (fromJar) { + assertJarExists(); +@@ -103,7 +103,7 @@ public class JNALoadTest extends TestCase implements Paths { + } + } + +- public void testAvoidResourcePathLoading() throws Exception { ++ public void noTestAvoidResourcePathLoading() throws Exception { + System.setProperty("jna.noclasspath", "true"); + try { + Class<?> cls = Class.forName("com.sun.jna.Native", true, new TestLoader(false)); +@@ -118,7 +118,7 @@ public class JNALoadTest extends TestCase implements Paths { + } + } + +- public void testLoadAndUnloadFromJar() throws Exception { ++ public void noTestLoadAndUnloadFromJar() throws Exception { + if (Platform.isIntel() && (! Platform.is64Bit())) { + System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit"); + return; +@@ -175,7 +175,7 @@ public class JNALoadTest extends TestCase implements Paths { + } + + // GC Fails under OpenJDK(linux/ppc) +- public void testLoadAndUnloadFromResourcePath() throws Exception { ++ public void noTestLoadAndUnloadFromResourcePath() throws Exception { + if (Platform.isIntel() && (! Platform.is64Bit())) { + System.out.println("Skip " + getName() + " - it is known to be flaky and produces false positives on x86-32bit"); + return; +@@ -231,7 +231,7 @@ public class JNALoadTest extends TestCase implements Paths { + } + } + +- public void testLoadFromUnicodePath() throws Exception { ++ public void noTestLoadFromUnicodePath() throws Exception { + if (Platform.isWindows()) { + String vendor = System.getProperty("java.vendor"); + if (vendor != null) { diff --git a/dev-java/jna/jna-5.18.1.ebuild b/dev-java/jna/jna-5.18.1.ebuild new file mode 100644 index 000000000000..ad62e352bf80 --- /dev/null +++ b/dev-java/jna/jna-5.18.1.ebuild @@ -0,0 +1,199 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +JAVA_TESTING_FRAMEWORKS="junit-4" +MAVEN_PROVIDES=" + net.java.dev.jna:jna:${PV} + net.java.dev.jna:jna-platform:${PV} +" + +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 + + # 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 + ) + # 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 + --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" + 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 +} diff --git a/dev-java/jna/metadata.xml b/dev-java/jna/metadata.xml new file mode 100644 index 000000000000..3f89ec24b9fb --- /dev/null +++ b/dev-java/jna/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>java@gentoo.org</email> + <name>Java</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
