apache-rat-0.15.ebuild

Download (3.3 KB)

# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

# javadoc is broken for java 17, see https://bugs.gentoo.org/914458
JAVA_PKG_IUSE="doc source test"
MAVEN_PROVIDES="
	org.apache.rat:apache-rat-core:${PV}
	org.apache.rat:apache-rat-tasks:${PV}
"
JAVA_TESTING_FRAMEWORKS="junit-4"

inherit java-pkg-2 java-pkg-simple verify-sig

DESCRIPTION="Apache Rat is a release audit tool, focused on licenses"
HOMEPAGE="https://creadur.apache.org/rat/"
SRC_URI="mirror://apache//creadur/${P}/${P}-src.tar.bz2
	verify-sig? ( https://archive.apache.org/dist/creadur/${P}/${P}-src.tar.bz2.asc )"
S="${WORKDIR}/${P}"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"

CP_DEPEND="
	dev-java/ant-core:0
	dev-java/commons-cli:1
	dev-java/commons-collections:4
	dev-java/commons-compress:0
	dev-java/commons-io:1
	dev-java/commons-lang:3.6
"

DEPEND="${CP_DEPEND}
	>=virtual/jdk-1.8:*
	test? ( dev-java/ant-testutil:0 )"
RDEPEND="${CP_DEPEND}
	>=virtual/jre-1.8:*"

BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-creadur )"
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/creadur.apache.org.asc"

DOCS=( NOTICE README.md README.txt RELEASE-NOTES.txt RELEASE_NOTES.txt )

PATCHES=( "${FILESDIR}/apache-rat-0.15-fix-tests.patch" )

src_prepare() {
	default #780585
	java-pkg-2_src_prepare
}

src_compile() {
	einfo "Compiling apache-rat-core.jar"
	JAVA_JAR_FILENAME="${PN}-core.jar"
	JAVA_RESOURCE_DIRS="${PN}-core/src/main/resources"
	JAVA_SRC_DIR="${PN}-core/src/main/java"
	java-pkg-simple_src_compile
	JAVA_GENTOO_CLASSPATH_EXTRA+=":${PN}-core.jar"
	rm -r target || die

	einfo "Compiling apache-rat-tasks.jar"
	JAVA_JAR_FILENAME="${PN}-tasks.jar"
	JAVA_RESOURCE_DIRS="${PN}-tasks/src/main/resources"
	JAVA_SRC_DIR="${PN}-tasks/src/main/java"
	java-pkg-simple_src_compile
	JAVA_GENTOO_CLASSPATH_EXTRA+=":${PN}-tasks.jar"
	rm -r target || die

	# javadoc is broken for java 17, see https://bugs.gentoo.org/914458
	if use doc; then
		einfo "Compiling javadocs"
		ejavadoc \
			-verbose \
			-classpath "$(java-pkg_getjars \
				--build-only ant-core)":"$(java-pkg_getjars \
				--build-only commons-cli-1)":"$(java-pkg_getjars \
				--build-only commons-collections-4)":"$(java-pkg_getjars \
				--build-only commons-compress):$(java-pkg_getjars \
				--build-only commons-io-1):$(java-pkg_getjars \
				--build-only commons-lang-3.6)" \
			-sourcepath "${PN}-core/src/main/java:${PN}-tasks/src/main/java" \
			-d javadoc -subpackages org.apache.rat org.apache.rat.anttasks
	fi
}

src_test() {
	JAVA_TEST_GENTOO_CLASSPATH="ant-testutil,junit-4"

	einfo "Testing apache-rat-core"
	cp -r "${PN}"-core/src/{main,test} src || die
	JAVA_TEST_RESOURCE_DIRS="src/test/resources"
	JAVA_TEST_SRC_DIR="src/test/java"
	java-pkg-simple_src_test
	rm -r src/{main,test} || die

	einfo "Testing apache-rat-tasks"
	cp -r "${PN}"-tasks/src/{main,test} src || die
	mkdir -p target/it-sources || die
	JAVA_TEST_RESOURCE_DIRS="src/test/resources"
	JAVA_TEST_SRC_DIR="src/test/java"
	java-pkg-simple_src_test
}

src_install() {
	java-pkg_dojar "${PN}-core.jar"
	java-pkg_dojar "${PN}-tasks.jar"
	java-pkg_dolauncher "${PN}" --main org.apache.rat.Report

	use doc && java-pkg_dojavadoc javadoc

	if use source; then
		java-pkg_dosrc "${PN}-core/src/main/java/*"
		java-pkg_dosrc "${PN}-tasks/src/main/java/*"
	fi
}

Thank you!