commit:     368a221ffad5353c066fd649c5e0d89749f86124
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sat Nov 11 20:00:28 2023 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Nov 26 09:08:42 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=368a221f

dev-java/lz4-java: update to newer mvel

Bug: https://bugs.gentoo.org/916973
Bug: https://bugs.gentoo.org/841236
Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: https://github.com/gentoo/gentoo/pull/33617
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/lz4-java/lz4-java-1.8.0-r2.ebuild | 97 ++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/dev-java/lz4-java/lz4-java-1.8.0-r2.ebuild 
b/dev-java/lz4-java/lz4-java-1.8.0-r2.ebuild
new file mode 100644
index 000000000000..45a7f75b6a3c
--- /dev/null
+++ b/dev-java/lz4-java/lz4-java-1.8.0-r2.ebuild
@@ -0,0 +1,97 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.lz4:lz4-java:1.8.0"
+
+inherit java-pkg-2 java-ant-2 toolchain-funcs
+
+DESCRIPTION="LZ4 compression for Java"
+HOMEPAGE="https://github.com/lz4/lz4-java";
+SRC_URI="https://github.com/lz4/lz4-java/archive/refs/tags/${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+# Tests require com.carrotsearch.randomizedtesting:junit4-ant, which is yet to
+# be packaged.  Some extra steps are required before running the tests:
+# 1. Download junit4-ant 2.7.x from 
https://mvnrepository.com/artifact/com.carrotsearch.randomizedtesting/junit4-ant
+# 2. Set EANT_GENTOO_CLASSPATH_EXTRA to the path to junit4-ant-2.7.*.jar
+# 3. ppc64 only: Install test dependencies that are unkeyworded
+# 4. Set ALLOW_TEST="all"
+RESTRICT="test"
+
+CDEPEND="
+       app-arch/lz4:=
+"
+
+DEPEND="
+       >=virtual/jdk-1.8:*
+       dev-java/mvel:2.5
+       dev-libs/xxhash
+       test? (
+               dev-java/junit:4
+               dev-java/randomized-runner:0
+       )
+       ${CDEPEND}
+"
+
+RDEPEND="
+       >=virtual/jre-1.8:*
+       ${CDEPEND}
+"
+
+# Ant is only needed to generate JNI headers;
+# the JNI shared object will be built by the custom Makefile
+EANT_BUILD_TARGET="compile-java generate-headers"
+EANT_DOC_TARGET="docs"
+EANT_EXTRA_ARGS="-Djava.io.tmpdir=${T}"
+EANT_TEST_GENTOO_CLASSPATH="randomized-runner"
+
+pkg_setup() {
+       java-pkg-2_pkg_setup
+       local build_only_cp="$(java-pkg_getjars --build-only mvel-2.5)"
+       if [[ -z "${EANT_GENTOO_CLASSPATH_EXTRA}" ]]; then
+               EANT_GENTOO_CLASSPATH_EXTRA="${build_only_cp}"
+       else
+               EANT_GENTOO_CLASSPATH_EXTRA+=":${build_only_cp}"
+       fi
+}
+
+src_prepare() {
+       eapply "${FILESDIR}/${P}-print-os-props.patch"
+       eapply "${FILESDIR}/${P}-skip-ivy.patch"
+       cp "${FILESDIR}/${P}-r1-Makefile" Makefile || die "Failed to copy 
Makefile"
+       cp "${FILESDIR}/${P}-gentoo-classpath.xml" gentoo-classpath.xml ||
+               die "Failed to copy Gentoo classpath injection XML"
+       java-pkg-2_src_prepare
+       rm -r src/resources || die "Failed to remove pre-built shared libraries"
+}
+
+src_compile() {
+       java-pkg-2_src_compile
+       emake CC="$(tc-getCC)" JAVA_HOME="${JAVA_HOME}"
+       # JNI has already been built by the Makefile at this point
+       # Also pretend cpptasks is available, which is required by build.xml
+       EANT_EXTRA_ARGS+=" -Dcpptasks.available=true -Dskip.jni=true"
+       # Manually call 'ant jar' to include the JNI shared object in JAR
+       eant jar -f "${EANT_BUILD_XML}" ${EANT_EXTRA_ARGS}
+}
+
+src_test() {
+       java-pkg-2_src_test
+}
+
+src_install() {
+       java-pkg_newjar 'dist/${ivy.module}.jar'
+       java-pkg_doso $(find build/jni -name "*.so")
+       use doc && java-pkg_dojavadoc build/docs
+       # Ant project's 'sources' target generates a source JAR rather than a 
Zip
+       # archive; we simply let java-utils-2.eclass create the source Zip 
archive
+       # from the same source directories the 'sources' target would access
+       # https://github.com/lz4/lz4-java/blob/1.8.0/build.xml#L323-L330
+       use source && java-pkg_dosrc src/java/* src/java-unsafe/*
+}

Reply via email to