View Raw Ebuild
# 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="no.priv.garshol.duke:${PN}:${PV}"
JAVA_TESTING_FRAMEWORKS="junit-4"
inherit java-pkg-2 java-pkg-simple
DESCRIPTION="A fast and flexible deduplication engine"
HOMEPAGE="https://github.com/larsga/Duke"
SRC_URI="https://github.com/larsga/Duke/archive/refs/tags/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
CP_DEPEND="
dev-java/lucene:4.0
dev-java/lucene-analyzers-common:4.0
dev-java/lucene-spatial:4.0
dev-java/mapdb:0.9.9
"
DEPEND="
>=virtual/jdk-1.8:*
${CP_DEPEND}
>=dev-java/commonj-1.1.1:0
dev-java/tomcat-servlet-api:2.4
test? (
dev-java/h2:0
)
"
RDEPEND="
>=virtual/jre-1.8:*
${CP_DEPEND}
"
S="${WORKDIR}/Duke-${P}"
JAVA_CLASSPATH_EXTRA="
commonj
tomcat-servlet-api-2.4
"
JAVA_SRC_DIR="src/main/java"
JAVA_RESOURCE_DIRS=( "src/main/resources" )
JAVA_TEST_GENTOO_CLASSPATH="junit-4"
JAVA_TEST_SRC_DIR="src/test/java"
JAVA_TEST_RESOURCE_DIRS=( "src/test/resources" )
JAVA_TEST_EXCLUDES=(
# Abstract classes, would cause InstantiationException
no.priv.garshol.duke.test.ClassDatabaseTest
no.priv.garshol.duke.test.DatabaseTest
no.priv.garshol.duke.test.PersistentDatabaseTest
)
src_prepare() {
java-pkg-2_src_prepare
eapply "${FILESDIR}/${P}-fix-raw-type.patch"
sed -i -e "s/\${project.version}/${PV}/g" \
"src/main/resources/no/priv/garshol/duke/duke.properties" ||
die "Failed to write project version to build properties"
sed -i -e "s/\${buildNumber}/1 ($(date '+%F'))/g" \
"src/main/resources/no/priv/garshol/duke/duke.properties" ||
die "Failed to write build number to build properties"
sed -i -e "s/\${user.name}/$(id -un)/g" \
"src/main/resources/no/priv/garshol/duke/duke.properties" ||
die "Failed to write builder's user name to build properties"
}
src_test() {
# dev-java/h2 depends on dev-java/lucene:0, but this package depends on
# dev-java/lucene:4.0, so including 'h2' in JAVA_TEST_GENTOO_CLASSPATH will
# cause two versions of lucene to be added to the classpath, resulting in
# compiler errors. Therefore, we add h2's classpath without its
# dependencies here.
JAVA_GENTOO_CLASSPATH_EXTRA="$(java-pkg_getjars h2)"
java-pkg-simple_src_test
}