commit:     77bf00d28f1a424b8ab2fae483927df1cd1b5bf8
Author:     Yuan Liao <liaoyuan <AT> gmail <DOT> com>
AuthorDate: Mon Dec 20 16:55:39 2021 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Mon Feb  7 07:59:57 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77bf00d2

dev-java/snappy: Add 1.1.7.8

Signed-off-by: Yuan Liao <liaoyuan <AT> gmail.com>
Closes: 
https://github.com/gentoo/gentoo/pull/23438/commits/1c957771ab63735f4981bb3ee5243e442c802655
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/snappy/Manifest                           |   1 +
 dev-java/snappy/files/1.1.7.8-gentoo.patch         |  28 ++++++
 .../snappy/files/1.1.7.8-java-version-target.patch |  47 ++++++++++
 .../snappy/files/1.1.7.8-remove-perl-usage.patch   |  38 ++++++++
 .../snappy/files/1.1.7.8-unbundle-bitshuffle.patch |  26 ++++++
 .../snappy/files/1.1.7.8-unbundle-snappy.patch     |  54 +++++++++++
 dev-java/snappy/snappy-1.1.7.8.ebuild              | 103 +++++++++++++++++++++
 7 files changed, 297 insertions(+)

diff --git a/dev-java/snappy/Manifest b/dev-java/snappy/Manifest
index 3b685046ec3a..7c04b3f1d2a6 100644
--- a/dev-java/snappy/Manifest
+++ b/dev-java/snappy/Manifest
@@ -1 +1,2 @@
 DIST snappy-java-1.1.0.1.tar.gz 4909520 BLAKE2B 
65daf3d01f1cb46dd0d51609e2d95fc954d56e41fbb2d22e9eca24fad16a6d4ba16083e633fb13e68dacf6c2fb0d10ec6fb1e6dcdda6dc611b58b172710fcd62
 SHA512 
32d0afce880ecccd814f7738eb375a13bd533998c73d79908964061337730ad76fb4794f78fd1fcdc4a4562db57cbc4c6f912d9f3351b1d75b12ce3224ec387e
+DIST snappy-java-1.1.7.8.tar.gz 3558859 BLAKE2B 
871f4190212399c5bd34a72766d7f3abca9a09608d9acddc126905bcdafc723613aa33d0cdb59419e6bfba46ff27e91f5ca5382073dd895d5601f6d84929ef96
 SHA512 
8129d4ae2abd78f967c07e7f13df8cb9043cc34bd8346be28625a3d2bea06674ce6dd09b521af2b7053b25d0132a0e822b78c06e09bacd0067ba8178bd167691

diff --git a/dev-java/snappy/files/1.1.7.8-gentoo.patch 
b/dev-java/snappy/files/1.1.7.8-gentoo.patch
new file mode 100644
index 000000000000..b4a58e6482be
--- /dev/null
+++ b/dev-java/snappy/files/1.1.7.8-gentoo.patch
@@ -0,0 +1,28 @@
+--- a/Makefile
++++ b/Makefile
+@@ -124,11 +124,7 @@
+       $(CXX) $(CXXFLAGS) -c $< -o $@
+ 
+ $(SNAPPY_OUT)/$(LIBNAME): $(SNAPPY_OBJ)
+-      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) -lsnappy -lbitshuffle
+-    # Workaround for strip Protocol error when using VirtualBox on Mac
+-      cp $@ /tmp/$(@F)
+-      $(STRIP) /tmp/$(@F)
+-      cp /tmp/$(@F) $@
++      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) -lsnappy -lbitshuffle 
$(LDFLAGS)
+ 
+ clean-native:
+       rm -rf $(SNAPPY_OUT)
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -274,8 +274,8 @@
+ 
+ CXX        := $($(os_arch)_CXX)
+ STRIP     := $($(os_arch)_STRIP)
+-CXXFLAGS    := $($(os_arch)_CXXFLAGS)
+-LINKFLAGS := $($(os_arch)_LINKFLAGS)
++CXXFLAGS    := $($(os_arch)_CXXFLAGS) $(CXXFLAGS)
++LINKFLAGS := $($(os_arch)_LINKFLAGS) $(LDFLAGS)
+ LIBNAME   := $($(os_arch)_LIBNAME)
+ SNAPPY_FLAGS := $($(os_arch)_SNAPPY_FLAGS)
+ 

diff --git a/dev-java/snappy/files/1.1.7.8-java-version-target.patch 
b/dev-java/snappy/files/1.1.7.8-java-version-target.patch
new file mode 100644
index 000000000000..a852d0bdb807
--- /dev/null
+++ b/dev-java/snappy/files/1.1.7.8-java-version-target.patch
@@ -0,0 +1,47 @@
+From e7d1d0167426790ba9b1d28ffa11e0d0c523f3b5 Mon Sep 17 00:00:00 2001
+From: Yuan Liao <[email protected]>
+Date: Sun, 6 Feb 2022 08:29:20 -0800
+Subject: [PATCH] Allow Java version target to be specified using variable
+
+Signed-off-by: Yuan Liao <[email protected]>
+---
+ Makefile        | 4 ++--
+ Makefile.common | 2 ++
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1d82a8a..8eaa319 100644
+--- a/Makefile
++++ b/Makefile
+@@ -92,13 +92,13 @@ snappy-header: $(SNAPPY_CMAKE_CACHE)
+ 
+ $(TARGET)/jni-classes/org/xerial/snappy/SnappyNative.class: 
$(SRC)/org/xerial/snappy/SnappyNative.java
+       @mkdir -p $(TARGET)/jni-classes
+-      $(JAVAC) -source 1.7 -target 1.7 -h $(SRC)/org/xerial/snappy/ -d 
$(TARGET)/jni-classes -sourcepath $(SRC) $<
++      $(JAVAC) -source $(JAVA_SOURCE) -target $(JAVA_TARGET) -h 
$(SRC)/org/xerial/snappy/ -d $(TARGET)/jni-classes -sourcepath $(SRC) $<
+ 
+ $(SRC)/org/xerial/snappy/SnappyNative.h: 
$(TARGET)/jni-classes/org/xerial/snappy/SnappyNative.class
+ 
+ $(TARGET)/jni-classes/org/xerial/snappy/BitShuffleNative.class: 
$(SRC)/org/xerial/snappy/BitShuffleNative.java
+       @mkdir -p $(TARGET)/jni-classes
+-      $(JAVAC) -source 1.7 -target 1.7 -h $(SRC)/org/xerial/snappy/ -d 
$(TARGET)/jni-classes -sourcepath $(SRC) $<
++      $(JAVAC) -source $(JAVA_SOURCE) -target $(JAVA_TARGET) -h 
$(SRC)/org/xerial/snappy/ -d $(TARGET)/jni-classes -sourcepath $(SRC) $<
+ 
+ $(SRC)/org/xerial/snappy/BitShuffleNative.h: 
$(TARGET)/jni-classes/org/xerial/snappy/BitShuffleNative.class
+ 
+diff --git a/Makefile.common b/Makefile.common
+index 534bc4f..86d839b 100755
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -10,6 +10,8 @@ endif
+ JAVA  := "$$JAVA_HOME/bin/java"
+ JAVAC := "$$JAVA_HOME/bin/javac"
+ JAVAH := "$$JAVA_HOME/bin/javah"
++JAVA_SOURCE := 1.8
++JAVA_TARGET := 1.8
+ 
+ LITTLE_ENDIAN := "Little Endian"
+ BIG_ENDIAN    := "Big Endian"
+-- 
+2.34.1
+

diff --git a/dev-java/snappy/files/1.1.7.8-remove-perl-usage.patch 
b/dev-java/snappy/files/1.1.7.8-remove-perl-usage.patch
new file mode 100644
index 000000000000..0c64240f12a3
--- /dev/null
+++ b/dev-java/snappy/files/1.1.7.8-remove-perl-usage.patch
@@ -0,0 +1,38 @@
+From 1413a33ef00e722bacab2e17297b89bb55b2bd49 Mon Sep 17 00:00:00 2001
+From: Yuan Liao <[email protected]>
+Date: Tue, 21 Dec 2021 07:33:52 -0800
+Subject: [PATCH] Makefile: Eliminate usage of the `perl` command
+
+dev-lang/perl is not an implicit system dependency, so we cannot assume
+its existence during build time.  The Makefile uses the `perl` command
+to generate the name of the JAR being built with it, but the ebuild uses
+Ant and a custom build.xml to build the JAR, and it uses the Makefile to
+build only the JNI part, thus the name of JAR in the Makefile will not
+be used.  For this reason, this package can still be built and installed
+without dev-lang/perl.  However, a QA notice for absent `perl` command
+will appear in this case.  Rather than declaring dev-lang/perl as a
+dependency, it might be better to eliminate usage of the `perl` command
+if it is never used in any meaningful way.
+
+Signed-off-by: Yuan Liao <[email protected]>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a7bd87c..d1d3d32 100644
+--- a/Makefile
++++ b/Makefile
+@@ -138,7 +138,8 @@ 
NATIVE_DIR:=src/main/resources/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH)
+ 
NATIVE_TARGET_DIR:=$(TARGET)/classes/org/xerial/snappy/native/$(OS_NAME)/$(OS_ARCH)
+ NATIVE_DLL:=$(NATIVE_DIR)/$(LIBNAME)
+ 
+-snappy-jar-version:=snappy-java-$(shell perl -npe "s/version in 
ThisBuild\s+:=\s+\"(.*)\"/\1/" version.sbt | sed -e "/^$$/d")
++#snappy-jar-version:=snappy-java-$(shell perl -npe "s/version in 
ThisBuild\s+:=\s+\"(.*)\"/\1/" version.sbt | sed -e "/^$$/d")
++snappy-jar-version:=snappy
+ 
+ native: jni-header snappy-header $(NATIVE_DLL)
+ native-nocmake: jni-header $(NATIVE_DLL)
+-- 
+2.32.0
+

diff --git a/dev-java/snappy/files/1.1.7.8-unbundle-bitshuffle.patch 
b/dev-java/snappy/files/1.1.7.8-unbundle-bitshuffle.patch
new file mode 100644
index 000000000000..e4f699ad123e
--- /dev/null
+++ b/dev-java/snappy/files/1.1.7.8-unbundle-bitshuffle.patch
@@ -0,0 +1,26 @@
+--- a/Makefile
++++ b/Makefile
+@@ -36,11 +36,11 @@
+ 
+ $(SNAPPY_OUT)/%.o: $(BITSHUFFLE_SRC_DIR)/%.c
+       @mkdir -p $(@D)
+-      $(CXX) $(CXXFLAGS) $(CXXFLAGS_BITSHUFFLE) -c $< -o $@
++      $(CXX) $(CXXFLAGS) -c $< -o $@
+ 
+-SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) 
$(patsubst %.c,%.o,$(BITSHUFFLE_C)) SnappyNative.o BitShuffleNative.o)
++SNAPPY_OBJ:=$(addprefix $(SNAPPY_OUT)/,$(patsubst %.cc,%.o,$(SNAPPY_CC)) 
SnappyNative.o BitShuffleNative.o)
+ 
+-CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR) -I$(SNAPPY_OUT) 
-I$(BITSHUFFLE_SRC_DIR)
++CXXFLAGS:=$(CXXFLAGS) -I$(SNAPPY_SRC_DIR) -I$(SNAPPY_OUT)
+ 
+ ifndef CXXFLAGS_BITSHUFFLE
+   ifeq ($(OS_NAME)-$(OS_ARCH),Linux-x86_64)
+@@ -124,7 +124,7 @@
+       $(CXX) $(CXXFLAGS) -c $< -o $@
+ 
+ $(SNAPPY_OUT)/$(LIBNAME): $(SNAPPY_OBJ)
+-      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) -lsnappy
++      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) -lsnappy -lbitshuffle
+     # Workaround for strip Protocol error when using VirtualBox on Mac
+       cp $@ /tmp/$(@F)
+       $(STRIP) /tmp/$(@F)

diff --git a/dev-java/snappy/files/1.1.7.8-unbundle-snappy.patch 
b/dev-java/snappy/files/1.1.7.8-unbundle-snappy.patch
new file mode 100644
index 000000000000..6113019be3ea
--- /dev/null
+++ b/dev-java/snappy/files/1.1.7.8-unbundle-snappy.patch
@@ -0,0 +1,54 @@
+diff --git a/Makefile b/Makefile
+index 0821c87..04f0435 100644
+--- a/Makefile
++++ b/Makefile
+@@ -8,7 +8,8 @@
+ 
+ SNAPPY_OUT:=$(TARGET)/snappy-$(SNAPPY_VERSION)-$(os_arch)
+ SNAPPY_ARCHIVE:=$(TARGET)/snappy-$(SNAPPY_VERSION).tar.gz
+-SNAPPY_CC:=snappy-sinksource.cc snappy-stubs-internal.cc snappy.cc
++#SNAPPY_CC:=snappy-sinksource.cc snappy-stubs-internal.cc snappy.cc
++SNAPPY_CC:=
+ SNAPPY_SRC_DIR:=$(TARGET)/snappy-$(SNAPPY_VERSION)
+ SNAPPY_SRC:=$(addprefix $(SNAPPY_SRC_DIR)/,$(SNAPPY_CC))
+ SNAPPY_GIT_REPO_URL:=https://github.com/google/snappy
+@@ -100,7 +101,8 @@
+ 
+ $(SRC)/org/xerial/snappy/BitShuffleNative.h: 
$(TARGET)/jni-classes/org/xerial/snappy/BitShuffleNative.class
+ 
+-$(SNAPPY_SRC): $(SNAPPY_GIT_UNPACKED)
++$(SNAPPY_SRC):
++# $(SNAPPY_GIT_UNPACKED)
+ 
+ # aarch64 can use big-endian optimzied code
+ ifeq ($(OS_ARCH),aarch64)
+@@ -122,7 +124,7 @@
+       $(CXX) $(CXXFLAGS) -c $< -o $@
+ 
+ $(SNAPPY_OUT)/$(LIBNAME): $(SNAPPY_OBJ)
+-      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS)
++      $(CXX) $(CXXFLAGS) -o $@ $+ $(LINKFLAGS) -lsnappy
+     # Workaround for strip Protocol error when using VirtualBox on Mac
+       cp $@ /tmp/$(@F)
+       $(STRIP) /tmp/$(@F)
+@@ -140,9 +142,9 @@
+ #snappy-jar-version:=snappy-java-$(shell perl -npe "s/version in 
ThisBuild\s+:=\s+\"(.*)\"/\1/" version.sbt | sed -e "/^$$/d")
+ snappy-jar-version:=snappy
+ 
+-native: jni-header snappy-header $(NATIVE_DLL)
+-native-nocmake: jni-header $(NATIVE_DLL)
+-snappy: native $(TARGET)/$(snappy-jar-version).jar
++native: $(NATIVE_DLL)
++native-nocmake: $(NATIVE_DLL)
++snappy: native
+ 
+ native-all: native win32 win64 native-arm linux32 linux64 linux-ppc64le
+ 
+@@ -151,6 +153,7 @@
+       cp $(SNAPPY_OUT)/$(LIBNAME) $@
+       @mkdir -p $(NATIVE_TARGET_DIR)
+       cp $(SNAPPY_OUT)/$(LIBNAME) $(NATIVE_TARGET_DIR)/$(LIBNAME)
++      cp $< $(TARGET)/
+ 
+ package: $(TARGET)/$(snappy-jar-version).jar
+ 

diff --git a/dev-java/snappy/snappy-1.1.7.8.ebuild 
b/dev-java/snappy/snappy-1.1.7.8.ebuild
new file mode 100644
index 000000000000..63853626e97c
--- /dev/null
+++ b/dev-java/snappy/snappy-1.1.7.8.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-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.xerial.snappy:snappy-java:1.1.7.8"
+
+inherit java-pkg-2 java-ant-2 toolchain-funcs
+
+MY_PN="${PN}-java"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Snappy compressor/decompressor for Java"
+HOMEPAGE="https://github.com/xerial/snappy-java/";
+SRC_URI="https://github.com/xerial/${MY_PN}/archive/${PV}.tar.gz -> 
${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="1.1"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+# Tests require org.apache.hadoop:hadoop-common:2.7.*, which is yet to be
+# packaged.  Some extra steps are required before running the tests:
+# 1. Download hadoop-common 2.7.x from 
https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common
+# 2. Set EANT_GENTOO_CLASSPATH_EXTRA to the path to hadoop-common-2.7.*.jar
+# 3. arm, arm64 and ppc64 only: Install test dependencies that are unkeyworded
+# 4. Set ALLOW_TEST="all"
+RESTRICT="test"
+
+CDEPEND="dev-java/osgi-core-api:0
+       app-arch/snappy
+       dev-libs/bitshuffle"
+
+# Some test dependencies are unsatisfied on arm, arm64, and ppc64
+DEPEND=">=virtual/jdk-1.8:*
+       ${CDEPEND}
+       test? (
+               dev-java/ant-junit4:0
+               dev-java/commons-io:1
+               !arm? (
+                       dev-java/commons-lang:2.1
+               )
+               !arm? ( !arm64? ( !ppc64? (
+                       dev-java/plexus-classworlds:0
+                       dev-java/xerial-core:0
+               ) ) )
+       )"
+
+RDEPEND=">=virtual/jre-1.8:*
+       ${CDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+JAVA_ANT_REWRITE_CLASSPATH="true"
+JAVA_ANT_CLASSPATH_TAGS="javac javadoc"
+EANT_GENTOO_CLASSPATH="osgi-core-api"
+EANT_TEST_GENTOO_CLASSPATH="
+       ${EANT_GENTOO_CLASSPATH}
+       commons-io-1
+       commons-lang-2.1
+       plexus-classworlds
+       xerial-core
+"
+
+src_prepare() {
+       cp "${FILESDIR}/1.x-build.xml" build.xml || die
+       rm -r src/main/resources/org/xerial/snappy/native || die
+       eapply "${FILESDIR}/${PV}-java-version-target.patch"
+       eapply "${FILESDIR}/${PV}-remove-perl-usage.patch"
+       eapply "${FILESDIR}/${PV}-unbundle-snappy.patch"
+       eapply "${FILESDIR}/${PV}-unbundle-bitshuffle.patch"
+       eapply "${FILESDIR}/${PV}-gentoo.patch"
+       java-pkg-2_src_prepare
+}
+
+src_compile() {
+       emake \
+               CXX="$(tc-getCXX)" \
+               JAVA_SOURCE="$(java-pkg_get-source)" \
+               JAVA_TARGET="$(java-pkg_get-target)"
+       java-pkg-2_src_compile
+}
+
+src_test() {
+       cp -r src/test/resources/org/xerial/snappy/* \
+               src/test/java/org/xerial/snappy || die
+       java-pkg-2_src_test
+}
+
+src_install() {
+       local jniext=.so
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               jniext=.jnilib
+               # avoid install_name check failure
+               install_name_tool -id "@loader_path/libsnappyjava${jniext}" \
+                       "target/libsnappyjava${jniext}"
+       fi
+       java-pkg_doso "target/libsnappyjava${jniext}"
+       java-pkg_dojar "target/${PN}.jar"
+
+       use source && java-pkg_dosrc src/main/java/*
+       use doc && java-pkg_dojavadoc target/site/apidocs
+}

Reply via email to