commit:     10579138b9895a51dfaad4d6b6bccb5908045ee0
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sun Nov 28 09:45:00 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Nov 28 19:02:04 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=10579138

dev-java/jnr-ffi: undo 2.0.2 removal

Bug: https://bugs.gentoo.org/827215
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-java/jnr-ffi/Manifest                          |   1 +
 dev-java/jnr-ffi/files/jnr-ffi-2.0.2-junit48.patch |  11 +
 dev-java/jnr-ffi/files/jnr-ffi_maven-build.xml     | 250 +++++++++++++++++++++
 dev-java/jnr-ffi/jnr-ffi-2.0.2.ebuild              |  60 +++++
 4 files changed, 322 insertions(+)

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/*
+}

Reply via email to