summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/jnr-ffi')
-rw-r--r--dev-java/jnr-ffi/Manifest1
-rw-r--r--dev-java/jnr-ffi/files/jnr-ffi-2.0.2-junit48.patch11
-rw-r--r--dev-java/jnr-ffi/files/jnr-ffi_maven-build.xml250
-rw-r--r--dev-java/jnr-ffi/jnr-ffi-2.0.2.ebuild60
4 files changed, 322 insertions, 0 deletions
diff --git a/dev-java/jnr-ffi/Manifest b/dev-java/jnr-ffi/Manifest
index a1833f95b1e1..a62c50306aae 100644
--- a/dev-java/jnr-ffi/Manifest
+++ b/dev-java/jnr-ffi/Manifest
@@ -1 +1,2 @@
+DIST jnr-ffi-2.0.2.tar.gz 170707 BLAKE2B fc4f1dcea51939b6098b980b4962380e58ba590ea9d4cdba7823c1372bd645d985ae25d8ebf1f0b575a0e4b5c192e5595094076d3cd44e4bb3c077dd838c170f SHA512 80a932408f5ceaf19fd7a399b786aa0d7b9251ea144bc2755bcf3cdc3aea85615a1faa001bbcd3072bc0eead2aaa30d0bbead5f96c82c4b9e455c1ed1379b4c0
DIST jnr-ffi-2.2.8-sources.tar.gz 261959 BLAKE2B 16f7b89c88a61fa07da65d4e5287258f96550b93898bb7313ddd62d1f002276da86aca2c79874eccb466eaebcad5181ff33539996a6558b6d79ce9280cf9c0a9 SHA512 15187d90f15ad82cb6cac0617806ab7d0322bfcb4f44523f2272f93f19ec115625806c9d450bffaa57db32c70906328c8edc905046465b0ec3eb6ff52e500b42
diff --git a/dev-java/jnr-ffi/files/jnr-ffi-2.0.2-junit48.patch b/dev-java/jnr-ffi/files/jnr-ffi-2.0.2-junit48.patch
new file mode 100644
index 000000000000..92b4cb2bcfc3
--- /dev/null
+++ b/dev-java/jnr-ffi/files/jnr-ffi-2.0.2-junit48.patch
@@ -0,0 +1,11 @@
+--- a/src/test/java/jnr/ffi/ObjectReferenceManagerTest.java
++++ b/src/test/java/jnr/ffi/ObjectReferenceManagerTest.java
+@@ -35,7 +35,7 @@
+ Pointer ptr = referenceManager.add(bar);
+ Pointer ptr2 = referenceManager.add(bar2);
+ assertNotSame(ptr, ptr2);
+- assertNotEquals(ptr, ptr2);
++ assertTrue(!ptr.equals(ptr2));
+ assertSame(bar, referenceManager.get(ptr));
+ assertSame(bar2, referenceManager.get(ptr2));
+ }
diff --git a/dev-java/jnr-ffi/files/jnr-ffi_maven-build.xml b/dev-java/jnr-ffi/files/jnr-ffi_maven-build.xml
new file mode 100644
index 000000000000..0337f347bec0
--- /dev/null
+++ b/dev-java/jnr-ffi/files/jnr-ffi_maven-build.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<!-- ====================================================================== -->
+<!-- ===================== - DO NOT EDIT THIS FILE! - ===================== -->
+<!-- ====================================================================== -->
+<!-- -->
+<!-- Any modifications will be overwritten. -->
+<!-- -->
+<!-- Generated by Maven Ant Plugin on 1/9/12 11:18 AM -->
+<!-- See: http://maven.apache.org/plugins/maven-ant-plugin/ -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<project name="jnr-ffi-from-maven" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Build environment properties -->
+ <!-- ====================================================================== -->
+
+ <property file="${user.home}/.m2/maven.properties"/>
+ <property file="maven-build.properties"/>
+
+ <property name="maven.build.finalName" value="jnr-ffi-0.6.0"/>
+ <property name="maven.build.dir" value="target"/>
+ <property name="maven.build.outputDir" value="${maven.build.dir}/classes"/>
+ <property name="maven.build.srcDir.0" value="src/main/java"/>
+ <property name="maven.build.resourceDir.0" value="src/main/resources"/>
+ <property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes"/>
+ <property name="maven.build.testDir.0" value="src/test/java"/>
+ <property name="maven.build.testResourceDir.0" value="src/test/resources"/>
+ <property name="maven.test.reports" value="${maven.build.dir}/test-reports"/>
+ <property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site"/>
+
+ <property name="maven.repo.local" value="${user.home}/.m2/repository"/>
+ <property name="maven.settings.offline" value="false"/>
+ <property name="maven.settings.interactiveMode" value="true"/>
+
+ <!-- ====================================================================== -->
+ <!-- Defining classpaths -->
+ <!-- ====================================================================== -->
+
+ <path id="build.classpath">
+ <pathelement location="${maven.repo.local}/com/github/jnr/jffi/1.0.11/jffi-1.0.11.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm/3.2/asm-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-commons/3.2/asm-commons-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-analysis/3.2/asm-analysis-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-tree/3.2/asm-tree-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-util/3.2/asm-util-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/com/github/jnr/jnr-x86asm/1.0.1/jnr-x86asm-1.0.1.jar"/>
+ </path>
+ <path id="build.test.classpath">
+ <pathelement location="${maven.repo.local}/junit/junit/4.8.2/junit-4.8.2.jar"/>
+ <pathelement location="${maven.repo.local}/com/github/jnr/jffi/1.0.11/jffi-1.0.11.jar"/>
+ <pathelement location="${maven.repo.local}/com/github/jnr/jffi/1.0.11/jffi-1.0.11-native.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm/3.2/asm-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-commons/3.2/asm-commons-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-analysis/3.2/asm-analysis-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-tree/3.2/asm-tree-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/asm/asm-util/3.2/asm-util-3.2.jar"/>
+ <pathelement location="${maven.repo.local}/com/github/jnr/jnr-x86asm/1.0.1/jnr-x86asm-1.0.1.jar"/>
+ </path>
+
+ <!-- ====================================================================== -->
+ <!-- Cleaning up target -->
+ <!-- ====================================================================== -->
+
+ <target name="clean" description="Clean the output directory">
+ <delete dir="${maven.build.dir}"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile" depends="get-deps" description="Compile the code">
+ <mkdir dir="${maven.build.outputDir}"/>
+ <javac destdir="${maven.build.outputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.1"
+ verbose="false"
+ fork="false"
+ source="1.3">
+ <src>
+ <pathelement location="${maven.build.srcDir.0}"/>
+ </src>
+ <classpath refid="build.classpath"/>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Test-compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile-tests"
+ depends="compile"
+ description="Compile the test code"
+ unless="maven.test.skip">
+ <mkdir dir="${maven.build.testOutputDir}"/>
+ <javac destdir="${maven.build.testOutputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.1"
+ verbose="false"
+ fork="false"
+ source="1.3">
+ <src>
+ <pathelement location="${maven.build.testDir.0}"/>
+ </src>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Run all tests -->
+ <!-- ====================================================================== -->
+
+ <target name="test"
+ depends="compile-tests, junit-missing"
+ unless="junit.skipped"
+ description="Run the test cases">
+ <mkdir dir="${maven.test.reports}"/>
+ <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
+ <sysproperty key="basedir" value="."/>
+ <formatter type="xml"/>
+ <formatter type="plain" usefile="false"/>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ <pathelement location="${maven.build.testOutputDir}"/>
+ </classpath>
+ <batchtest todir="${maven.test.reports}" unless="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/Test*.java"/>
+ <include name="**/*Test.java"/>
+ <include name="**/*TestCase.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ <batchtest todir="${maven.test.reports}" if="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/${test}.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="test-junit-present">
+ <available classname="junit.framework.Test" property="junit.present"/>
+ </target>
+
+ <target name="test-junit-status"
+ depends="test-junit-present">
+ <condition property="junit.missing">
+ <and>
+ <isfalse value="${junit.present}"/>
+ <isfalse value="${maven.test.skip}"/>
+ </and>
+ </condition>
+ <condition property="junit.skipped">
+ <or>
+ <isfalse value="${junit.present}"/>
+ <istrue value="${maven.test.skip}"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="junit-missing"
+ depends="test-junit-status"
+ if="junit.missing">
+ <echo>=================================== WARNING ===================================</echo>
+ <echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
+ <echo>===============================================================================</echo>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Javadoc target -->
+ <!-- ====================================================================== -->
+
+ <target name="javadoc" description="Generates the Javadoc of the application">
+ <javadoc sourcepath="${maven.build.srcDir.0}"
+ packagenames="*"
+ destdir="${maven.reporting.outputDirectory}/apidocs"
+ access="protected"
+ old="false"
+ verbose="false"
+ version="true"
+ use="true"
+ author="true"
+ splitindex="false"
+ nodeprecated="false"
+ nodeprecatedlist="false"
+ notree="false"
+ noindex="false"
+ nohelp="false"
+ nonavbar="false"
+ serialwarn="false"
+ charset="ISO-8859-1"
+ linksource="false"
+ breakiterator="false"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Package target -->
+ <!-- ====================================================================== -->
+
+ <target name="package" depends="compile,test" description="Package the application">
+ <jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
+ compress="true"
+ index="false"
+ basedir="${maven.build.outputDir}"
+ excludes="**/package.html"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- A dummy target for the package named after the type it creates -->
+ <!-- ====================================================================== -->
+
+ <target name="jar" depends="package" description="Builds the jar for the application"/>
+
+ <!-- ====================================================================== -->
+ <!-- Download dependencies target -->
+ <!-- ====================================================================== -->
+
+ <target name="test-offline">
+ <condition property="maven.mode.offline">
+ <equals arg1="${maven.settings.offline}" arg2="true"/>
+ </condition>
+ </target>
+
+ <target name="get-deps"
+ depends="test-offline"
+ description="Download all dependencies"
+ unless="maven.mode.offline">
+ <!-- removed -->
+ </target>
+
+</project>
diff --git a/dev-java/jnr-ffi/jnr-ffi-2.0.2.ebuild b/dev-java/jnr-ffi/jnr-ffi-2.0.2.ebuild
new file mode 100644
index 000000000000..5fd24c27ec3c
--- /dev/null
+++ b/dev-java/jnr-ffi/jnr-ffi-2.0.2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+JAVA_PKG_IUSE="doc source test"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="An abstracted interface to invoking native functions from java"
+HOMEPAGE="https://github.com/jnr/jnr-ffi"
+SRC_URI="https://github.com/jnr/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="|| ( Apache-2.0 LGPL-3 )"
+SLOT="2"
+KEYWORDS="amd64 ~arm64 ~ppc64 x86"
+
+COMMON_DEP="
+ dev-java/jffi:1.2
+ dev-java/jnr-x86asm:1.0
+ dev-java/asm:4"
+
+RDEPEND="${COMMON_DEP}
+ >=virtual/jre-1.5"
+
+DEPEND="${COMMON_DEP}
+ >=virtual/jdk-1.5
+ test? (
+ dev-java/ant-junit:0
+ >=dev-java/junit-4.8:4
+ )"
+
+java_prepare() {
+ cp "${FILESDIR}"/${PN}_maven-build.xml build.xml || die
+ epatch "${FILESDIR}"/${P}-junit48.patch
+}
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+JAVA_ANT_CLASSPATH_TAGS="${JAVA_ANT_CLASSPATH_TAGS} javadoc"
+JAVA_ANT_ENCODING="UTF-8"
+
+EANT_GENTOO_CLASSPATH="asm-4,jffi-1.2,jnr-x86asm-1.0"
+EANT_EXTRA_ARGS="-Dmaven.build.finalName=${PN}"
+
+EANT_TEST_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH},junit-4"
+
+src_test() {
+ # build native test library
+ emake BUILD_DIR=build -f libtest/GNUmakefile
+
+ _JAVA_OPTIONS="-Djnr.ffi.library.path=build" \
+ java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_dojar target/${PN}.jar
+
+ use doc && java-pkg_dojavadoc target/site/apidocs
+ use source && java-pkg_dosrc src/main/java/*
+}