From 4cbcc855382a06088e2f016f62cafdbcb7e40665 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 20 Mar 2022 00:40:44 +0000 Subject: gentoo resync : 20.03.2022 --- dev-java/lz4-java/Manifest | 7 ++ .../files/lz4-java-1.8.0-gentoo-classpath.xml | 7 ++ .../files/lz4-java-1.8.0-print-os-props.patch | 31 +++++++ dev-java/lz4-java/files/lz4-java-1.8.0-r1-Makefile | 47 ++++++++++ .../lz4-java/files/lz4-java-1.8.0-skip-ivy.patch | 91 +++++++++++++++++++ dev-java/lz4-java/lz4-java-1.8.0-r1.ebuild | 101 +++++++++++++++++++++ dev-java/lz4-java/metadata.xml | 11 +++ 7 files changed, 295 insertions(+) create mode 100644 dev-java/lz4-java/Manifest create mode 100644 dev-java/lz4-java/files/lz4-java-1.8.0-gentoo-classpath.xml create mode 100644 dev-java/lz4-java/files/lz4-java-1.8.0-print-os-props.patch create mode 100644 dev-java/lz4-java/files/lz4-java-1.8.0-r1-Makefile create mode 100644 dev-java/lz4-java/files/lz4-java-1.8.0-skip-ivy.patch create mode 100644 dev-java/lz4-java/lz4-java-1.8.0-r1.ebuild create mode 100644 dev-java/lz4-java/metadata.xml (limited to 'dev-java/lz4-java') diff --git a/dev-java/lz4-java/Manifest b/dev-java/lz4-java/Manifest new file mode 100644 index 000000000000..7f55cf8059ad --- /dev/null +++ b/dev-java/lz4-java/Manifest @@ -0,0 +1,7 @@ +AUX lz4-java-1.8.0-gentoo-classpath.xml 179 BLAKE2B 78a1d2615b0ceca3990b58891fa560ed2eeabb8dff397cef99b9f3281cb3d70a563257639051f2f96fa574fe5edefe3bae231a6553a6c1daf96df5e97a44aaee SHA512 b815a4f876a9d8fc30b1c68ec4b8c2fbee5e544247d5272af033d04ffb60fe018713b15f04740348306411c69775bcbc339e30df35bb147a208d119e1c11c017 +AUX lz4-java-1.8.0-print-os-props.patch 880 BLAKE2B 53256984d5afc08d85bee460f6f7ce4a333ea5960fbe3a6a6322338477d701582ee33bf52b05ec3105147fca3ea58424f82b742f965b6d638e56b5cf7e0f3135 SHA512 9c5dedab3cfa09014f9235d4a20dc9a7136b6925d53840e0721c7a58d7a2d2faa3e066440a7e23be60e79c1817813a683a9e76c9947d23ac168882421a498f5b +AUX lz4-java-1.8.0-r1-Makefile 1528 BLAKE2B e3f8825785c329fc2c9a480dc5e7dbb00268a87d0fa84fb09c70af5259f7a108970c9abbbd9276218d7ae3500ae28d5b4a782e1e9e80046af0e394d8a677944d SHA512 1b391cf872cfdc30e7b7b3f74b7cf4b6f1d9c8268be2556cfce4b9f51fe8bd5c1bf717bdfd2c7a5b05db63231ccb5b315fd34de7aa96e4eb418124bf4c47d3dd +AUX lz4-java-1.8.0-skip-ivy.patch 3236 BLAKE2B cae70a2600d8bc6f3e89e901728261d23102ec61ae35dfe678542953ecd5467f33d724154903dae3e7214c4c5bfcbf5b6956ae70f7806e270a9cb747b3661d47 SHA512 fd24db414b0944cac78e0b39014d9de38d694e958352d9dc4b83560c84c16790844f197a80bb4f90f084bb882406992ed72da5e54dc774122a347c2df2c76301 +DIST lz4-java-1.8.0.tar.gz 1069398 BLAKE2B 02ee363fc42eeeade01f04649416dd874513f4517264c6e1b6474d64e8b81e2ee9ff1f55e51b508608929e8d78cb30e98d929cc4a118c03f86b0e69bae237e8a SHA512 ae78748d984d2ede18018d5e9ae6aee0d5fe6ac8b56d717f863968cfad6e9f85b62305692345ba16002bee68278e87a0364aa98aeb92e2af6dc169e5d5b612d4 +EBUILD lz4-java-1.8.0-r1.ebuild 3162 BLAKE2B af48a8774cc7e0c67fbeea0b48383fc48b909d90cc05f03217846f082741416253dd215b073cb41cf1508b2b42eb7b22b45ba9191b8a739ce0276de078b40209 SHA512 0fd583fcfba0fb4760c263aec6a2d4cb3334c7c780c47ebee392ce3c78e4b6a1f0bc181a9d7470e49ce48e9bc72166bb785a522a29e4842fe640629fd5ed00e9 +MISC metadata.xml 313 BLAKE2B 08a0f9bbda1bcbc57ad87da568cb744824936147acbf6cc4d2693b957ebbf52454548d9f4ee568f7d1de864406c8a6af487cf6c8775d7cfa3f0a6029640d5d23 SHA512 1b33a50efd738cfbaf5fd163bbeb26736a0d4db2b1c68ff22d6d97931aa67043b2629900fcea3870afb99c6c6792db139361107f21dd87e75522287ae55c68f8 diff --git a/dev-java/lz4-java/files/lz4-java-1.8.0-gentoo-classpath.xml b/dev-java/lz4-java/files/lz4-java-1.8.0-gentoo-classpath.xml new file mode 100644 index 000000000000..2392679c4a69 --- /dev/null +++ b/dev-java/lz4-java/files/lz4-java-1.8.0-gentoo-classpath.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dev-java/lz4-java/files/lz4-java-1.8.0-print-os-props.patch b/dev-java/lz4-java/files/lz4-java-1.8.0-print-os-props.patch new file mode 100644 index 000000000000..d4363b6853e4 --- /dev/null +++ b/dev-java/lz4-java/files/lz4-java-1.8.0-print-os-props.patch @@ -0,0 +1,31 @@ +From b8d50d44ba1c0e4b5bf297f7499ad0fb5b82706e Mon Sep 17 00:00:00 2001 +From: Yuan Liao +Date: Wed, 19 Jan 2022 10:09:14 -0800 +Subject: [PATCH] build.xml: Add target that prints JVM system properties os.* + +The Gentoo custom JNI Makefile needs some of those properties. + +Signed-off-by: Yuan Liao +--- + build.xml | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/build.xml b/build.xml +index b7940ab..96e52ea 100644 +--- a/build.xml ++++ b/build.xml +@@ -62,6 +62,11 @@ + + + ++ ++ ++ ++ + + + +-- +2.34.1 + diff --git a/dev-java/lz4-java/files/lz4-java-1.8.0-r1-Makefile b/dev-java/lz4-java/files/lz4-java-1.8.0-r1-Makefile new file mode 100644 index 000000000000..4a766552c65e --- /dev/null +++ b/dev-java/lz4-java/files/lz4-java-1.8.0-r1-Makefile @@ -0,0 +1,47 @@ +# Gentoo custom Makefile for the JNI portion of lz4-java +# +# Adapted from the logic for target "compile-jni" in build.xml, +# but uses lz4 installed on the system. This Makefile respects +# custom CFLAGS and LDFLAGS settings, whereas build.xml does not. + +# Java system properties read by build.xml +PLATFORM ?= linux +SRC ?= src +BUILD ?= build +JAVA_HOME ?= +# Requires lz4-java-*-print-os-props.patch +OS_ARCH := $(shell ant os-props 2>&1 > /dev/null && \ + grep 'os\.arch=' os.properties | sed -e 's/os\.arch=//') + +MKDIR_P = mkdir -p + +SRC_DIR := $(SRC)/jni +OBJS_DIR_PREFIX := $(BUILD)/objects +OBJS_DIR := $(OBJS_DIR_PREFIX)/$(SRC_DIR) +OUT_DIR := $(BUILD)/jni/net/jpountz/util/$(PLATFORM)/$(OS_ARCH) + +SRC_FILES := $(wildcard $(SRC_DIR)/*.c) +OBJS := $(addprefix $(OBJS_DIR_PREFIX)/,$(SRC_FILES:.c=.o)) +SONAME = liblz4-java.so + +# C compiler arguments may be obtained by running 'ant -v compile-jni', +# as long as dev-java/cpptasks is in the classpath +CFLAGS := -fPIC $(CFLAGS) + +$(OUT_DIR)/$(SONAME): $(OBJS) | $(OUT_DIR) + # '-llz4' must be listed after this package's objects + # https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Importance_of_linking_order + $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,$(SONAME) -o $@ $^ -llz4 + +$(OBJS_DIR_PREFIX)/%.o: %.c | $(OBJS_DIR) + $(CC) $(CFLAGS) -c -o $@ \ + -I$(JAVA_HOME)/../include -I$(JAVA_HOME)/../include/$(PLATFORM) \ + -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(PLATFORM) \ + -I$(BUILD)/jni-headers \ + $< + +$(OUT_DIR): + $(MKDIR_P) $@ + +$(OBJS_DIR): + $(MKDIR_P) $@ diff --git a/dev-java/lz4-java/files/lz4-java-1.8.0-skip-ivy.patch b/dev-java/lz4-java/files/lz4-java-1.8.0-skip-ivy.patch new file mode 100644 index 000000000000..26c09e147072 --- /dev/null +++ b/dev-java/lz4-java/files/lz4-java-1.8.0-skip-ivy.patch @@ -0,0 +1,91 @@ +From 95ae85542f39cecd1af6a3e661ad6120195d2304 Mon Sep 17 00:00:00 2001 +From: Yuan Liao +Date: Mon, 20 Dec 2021 09:57:31 -0800 +Subject: [PATCH] build.xml: Skip Ivy logic and use Gentoo classpath + +Signed-off-by: Yuan Liao +--- + build.xml | 22 +++++++--------------- + 1 file changed, 7 insertions(+), 15 deletions(-) + +diff --git a/build.xml b/build.xml +index b7940ab..ff321c6 100644 +--- a/build.xml ++++ b/build.xml +@@ -20,6 +20,8 @@ + xmlns:junit4="antlib:com.carrotsearch.junit4" + xmlns:mvn="antlib:org.apache.maven.artifact.ant"> + ++ ++ + + + +@@ -81,8 +83,6 @@ + + + +- + + + +@@ -117,22 +117,14 @@ + + + +- +- + + + +- +- +- +- +- ++ + + + + +- + + + + +- ++ + + + + +- ++ + + + +@@ -260,14 +252,14 @@ + + + +- ++ + + + + + + +- ++ + + + +-- +2.32.0 + diff --git a/dev-java/lz4-java/lz4-java-1.8.0-r1.ebuild b/dev-java/lz4-java/lz4-java-1.8.0-r1.ebuild new file mode 100644 index 000000000000..993a8803f183 --- /dev/null +++ b/dev-java/lz4-java/lz4-java-1.8.0-r1.ebuild @@ -0,0 +1,101 @@ +# Copyright 2021-2022 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:= +" + +# The version requirement on mvel is strict; mvel-2.4.* generates source files +# incorrectly, which causes build failure of this package +DEPEND=" + >=virtual/jdk-1.8:* + dev-java/mvel:2.3 + dev-libs/xxhash + test? ( + dev-java/junit:4 + !ppc64? ( + 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.3)" + 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/* +} diff --git a/dev-java/lz4-java/metadata.xml b/dev-java/lz4-java/metadata.xml new file mode 100644 index 000000000000..576cd0ee41f1 --- /dev/null +++ b/dev-java/lz4-java/metadata.xml @@ -0,0 +1,11 @@ + + + + + java@gentoo.org + Java + + + lz4/lz4-java + + -- cgit v1.2.3