blob: 49f3c61e5e135737b0e57118431a97e88c49b12f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# Copyright 1999-2025 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:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-4"
inherit edo check-reqs java-pkg-2 java-pkg-simple toolchain-funcs
DESCRIPTION="Snappy compressor/decompressor for Java"
HOMEPAGE="https://github.com/xerial/snappy-java/"
# ::gentoo does not have hadoop-common packaged. Currently we bundle the binary version.
# It's used for testing only and does not get installed.
HCV="3.3.5"
SRC_URI="https://github.com/xerial/snappy-java/archive/v${PV}.tar.gz -> ${P}.tar.gz
test? ( https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common/${HCV}/hadoop-common-${HCV}.jar )"
S="${WORKDIR}/${P}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64"
CP_DEPEND="dev-java/osgi-core:0"
CDEPEND="
app-arch/snappy
>=dev-libs/bitshuffle-0.3.5-r1
"
DEPEND="
>=virtual/jdk-1.8:*
${CP_DEPEND}
${CDEPEND}
test? (
>=dev-java/ant-1.10.15:0[junit4]
dev-java/commons-io:1
dev-java/commons-lang:3.6
dev-java/plexus-classworlds:0
dev-java/xerial-core:0
)
"
RDEPEND="
>=virtual/jre-1.8:*
${CP_DEPEND}
${CDEPEND}
"
PATCHES=(
"${FILESDIR}/snappy-1.1.10.5-SnappyOutputStreamTest.patch"
"${FILESDIR}/snappy-java-1.1.10.7-skipFailingTest.patch"
)
JAVA_RESOURCE_DIRS="src/main/resources"
JAVA_SRC_DIR="src/main/java"
JAVA_TEST_GENTOO_CLASSPATH="
commons-io-1
commons-lang-3.6
junit-4
plexus-classworlds
xerial-core
"
JAVA_TEST_RESOURCE_DIRS="src/test/resources"
JAVA_TEST_SRC_DIR="src/test/java"
check_env() {
if use test; then
# this is needed only for tests
CHECKREQS_MEMORY="2560M"
check-reqs_pkg_pretend
fi
}
pkg_pretend() {
check_env
}
pkg_setup() {
check_env
java-pkg-2_pkg_setup
}
src_prepare() {
default #780585
java-pkg-2_src_prepare
# remove pre-compiled sofiles
rm -r src/main/resources/org/xerial/snappy/native || die
rm -r src/test/resources/lib || die
}
compile_lib() {
edo "$(tc-getCC)" "${@}" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
$(java-pkg_get-jni-cflags)
}
src_compile() {
java-pkg-simple_src_compile
# Create some directories, Java 8 doesn't do it for us.
mkdir -p build/objects target/jni-classes || die "mkdir"
einfo "Generate headers"
ejavac \
-h build/jni-headers \
-d target/jni-classes \
-sourcepath src/main/java \
src/main/java/org/xerial/snappy/SnappyNative.java \
src/main/java/org/xerial/snappy/BitShuffleNative.java
einfo "Generate native library"
compile_lib -o build/objects/BitShuffleNative.o \
-Ibuild/build/jni-headers \
-c src/main/java/org/xerial/snappy/BitShuffleNative.cpp
compile_lib -o build/objects/SnappyNative.o \
-Ibuild/build/jni-headers \
-c src/main/java/org/xerial/snappy/SnappyNative.cpp
compile_lib -o build/objects/libsnappyjava.so \
build/objects/{SnappyNative.o,BitShuffleNative.o} \
-shared -lsnappy -lbitshuffle
}
src_test() {
JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/hadoop-common-${HCV}.jar"
# Setting use.systemlib=true is essential.
JAVA_TEST_EXTRA_ARGS=(
-Xmx${CHECKREQS_MEMORY}
-Djava.library.path=build/objects
-Dorg.xerial.snappy.use.systemlib=true
)
local vm_version="$(java-config -g PROVIDES_VERSION)"
if ver_test "${vm_version}" -ge 17; then
java-pkg-simple_src_test
else
einfo "Tests need jdk-17 to pass."
fi
}
src_install() {
java-pkg-simple_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 "build/objects/libsnappyjava${jniext}"
}
|