-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug: https://bugs.gentoo.org/903600 Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net>
- Loading branch information
Showing
2 changed files
with
231 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,3 @@ | ||
DIST batik-src-1.14.tar.gz 17647867 BLAKE2B 9385e77e739ece921012310a53953a6e258a5d748987e85dd20783ca248ae55619db6472b7590a45fe40a1b51c693478a37a7dbe1a958b42392c525e5f228815 SHA512 689c52f58f8f0456c89bd18745d2d92e7590b9054bea71b96be87d44977057d583e78504cbf14afc3e0c585d2383dac3009c7c421de868c847db045e921da8fb | ||
DIST batik-src-1.16.tar.gz 13495722 BLAKE2B 041442b5485588a23b6e335cc46630b3c73fb8a36157e8bc77baa7b399bf7986549039f27e89727ebc98b8492095b957c8c6deb12b232a39784844e4c5edf6ab SHA512 024ab7a204d00b6c855e26c62a326dfcde5fb486a7635890c6fcb37d421c7195ae04b3d292daabc0fcb6564f55bfa93d6fef15cf4c2dad77e569ca17d1eeb250 | ||
DIST batik-src-1.16.tar.gz.asc 833 BLAKE2B fdcfb26b9cc0d4fb0c37ce42d65628629ab0c27257ebe07715d5b2786500515125a240957c9ba76333aa54320905273031354cf09ee29e3a79fc7529640ebf03 SHA512 7fc3450d2b4d19e03528707fc20d6e18af926938ad24ad7460cc1c423c6c40507059fff2e2921d82fc582a4b486a75141fb407d450b043e2cc5007e0c2d486ea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
# Copyright 1999-2023 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
JAVA_PKG_IUSE="doc source test" | ||
MAVEN_ID="org.apache.xmlgraphics:batik:${PV}" | ||
JAVA_TESTING_FRAMEWORKS="junit-4" | ||
|
||
inherit desktop java-pkg-2 java-pkg-simple xdg-utils verify-sig | ||
|
||
DESCRIPTION="XML Graphics Batik" | ||
HOMEPAGE="https://xmlgraphics.apache.org/batik/" | ||
SRC_URI="mirror://apache/xmlgraphics/batik/source/batik-src-${PV}.tar.gz | ||
verify-sig? ( https://downloads.apache.org/xmlgraphics/batik/source/batik-src-${PV}.tar.gz.asc )" | ||
S="${WORKDIR}/batik-${PV}" | ||
|
||
LICENSE="Apache-2.0" | ||
SLOT="1.16" | ||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" | ||
|
||
CP_DEPEND=" | ||
dev-java/jacl:0 | ||
dev-java/rhino:1.6 | ||
dev-java/xalan:0 | ||
dev-java/xml-commons-external:1.4 | ||
dev-java/xmlgraphics-commons:2 | ||
" | ||
|
||
DEPEND=" | ||
${CP_DEPEND} | ||
>=virtual/jdk-1.8:* | ||
" | ||
|
||
RDEPEND=" | ||
${CP_DEPEND} | ||
>=virtual/jre-1.8:* | ||
" | ||
|
||
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-xmlgraphics-batik )" | ||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}/usr/share/openpgp-keys/xmlgraphics-batik.apache.org.asc" | ||
|
||
DOCS=( CHANGES NOTICE README ) | ||
|
||
# Modules batik-rasterizer-ext and batik-squiggle-ext, upstream puts their jar files in the extensions | ||
# directory, see batik-extension/src/main/resources/org/apache/batik/extensions/README.txt | ||
# We comment them out but keep them in the mudules list for later. | ||
# The same for batik-test-old which depends on fop-transcoder-allinone which itself depends on batik. | ||
# We also don't build batik-shared-resources since we install those resources on global scope. | ||
# And we don't build batik-all. Instead we install the modules. | ||
# BATIK_MODULES is the "Reactor Build Order" extracted from the output of "mvn dependency:tree": | ||
# mvn -DskipTests dependency:tree \ | ||
# | sed -n '/Reactor Build Order:/,/Building org/p' \ | ||
# | cut -d':' -f2 | cut -d' ' -f1 | grep 'batik-' || die | ||
BATIK_MODULES=( | ||
# batik-shared-resources | ||
batik-constants | ||
batik-i18n | ||
batik-test | ||
batik-util | ||
batik-awt-util | ||
batik-css | ||
batik-ext | ||
batik-xml | ||
batik-dom | ||
batik-parser | ||
batik-svg-dom | ||
batik-anim | ||
batik-gvt | ||
batik-script | ||
batik-bridge | ||
batik-svggen | ||
batik-transcoder | ||
batik-codec | ||
batik-extension | ||
batik-gui-util | ||
batik-svgrasterizer | ||
# batik-rasterizer-ext | ||
batik-rasterizer | ||
batik-slideshow | ||
batik-swing | ||
batik-svgbrowser | ||
# batik-squiggle-ext | ||
batik-squiggle | ||
batik-svgpp | ||
batik-ttf2svg | ||
# batik-all | ||
batik-test-swing | ||
batik-test-svg | ||
# batik-test-old | ||
) | ||
|
||
src_prepare() { | ||
java-pkg_clean | ||
java-pkg-2_src_prepare | ||
# We drop support for jython due to bug #825486. | ||
rm batik-script/src/main/java/org/apache/batik/script/jpython/JPythonInterpreter.java || die | ||
rm batik-script/src/main/java/org/apache/batik/script/jpython/JPythonInterpreterFactory.java || die | ||
} | ||
|
||
src_compile() { | ||
# We loop over the modules list and compile the jar files. | ||
local module | ||
for module in "${BATIK_MODULES[@]}"; do | ||
einfo "Compiling ${module}" | ||
|
||
JAVA_JAR_FILENAME="${module}.jar" | ||
JAVA_MAIN_CLASS="" | ||
JAVA_RESOURCE_DIRS="" | ||
JAVA_SRC_DIR="" | ||
|
||
# Not all of the modules have resources. | ||
if [[ -d "${module}/src/main/resources" ]]; then | ||
JAVA_RESOURCE_DIRS="${module}/src/main/resources" | ||
fi | ||
|
||
# Get Main-Class from the module's pom.xml | ||
JAVA_MAIN_CLASS=$( sed -n 's:.*<mainClass>\(.*\)</mainClass>:\1:p' "${module}/pom.xml" ) | ||
|
||
# Some modules don't have source code. | ||
if [[ -d "${module}/src/main/java/org" ]]; then | ||
JAVA_SRC_DIR="${module}/src/main/java" | ||
java-pkg-simple_src_compile | ||
else | ||
# This case applies to batik-rasterizer. | ||
if [[ -d "${module}/src/main/resources/org" ]]; then | ||
jar -cfe "${module}.jar" "${JAVA_MAIN_CLASS}" -C "${module}/src/main/resources" . || die | ||
# Else for batik-squiggle (also batik-rasterizer-ext, batik-squiggle-ext) | ||
else | ||
# Create the JAR file (not possible without adding at least one file). | ||
jar -cfe "${module}.jar" "${JAVA_MAIN_CLASS}" -C . README || die | ||
zip -d "${module}.jar" "README" | ||
fi | ||
fi | ||
|
||
JAVA_GENTOO_CLASSPATH_EXTRA+=":${module}.jar" | ||
|
||
rm -fr target || die | ||
done | ||
|
||
if use doc; then | ||
JAVA_SRC_DIR="" | ||
JAVA_JAR_FILENAME="ignoreme.jar" | ||
|
||
for module in "${BATIK_MODULES[@]}"; do | ||
# Some modules don't have source code | ||
if [[ -d "${module}/src/main/java/org" ]]; then | ||
JAVA_SRC_DIR+=( "${module}/src/main/java" ) | ||
fi | ||
done | ||
|
||
java-pkg-simple_src_compile | ||
fi | ||
} | ||
|
||
src_test() { | ||
JAVA_TEST_GENTOO_CLASSPATH="junit-4" | ||
|
||
for module in "${BATIK_MODULES[@]}"; do | ||
einfo "Testing ${module}" | ||
|
||
JAVA_TEST_SRC_DIR="" | ||
JAVA_TEST_RESOURCE_DIRS="" | ||
JAVA_TEST_RUN_ONLY="" | ||
|
||
if [[ -d "${module}/src/test/resources" ]]; then | ||
JAVA_TEST_RESOURCE_DIRS="${module}/src/test/resources" | ||
fi | ||
|
||
# https://github.com/apache/xmlgraphics-batik/blob/refs/tags/batik-1_14/batik-util/pom.xml#L74-L75 | ||
if [[ "${module}" == batik-util ]]; then | ||
JAVA_TEST_RUN_ONLY="org.apache.batik.util.Base64TestCases" | ||
fi | ||
|
||
if [[ -d "${module}/src/test/java/org" ]]; then | ||
JAVA_TEST_SRC_DIR="${module}/src/test/java" | ||
java-pkg-simple_src_test | ||
fi | ||
done | ||
} | ||
|
||
src_install() { | ||
einstalldocs | ||
domenu "${FILESDIR}"/batik-squiggle.desktop | ||
doicon batik-svgbrowser/src/main/resources/org/apache/batik/apps/svgbrowser/resources/init.svg | ||
|
||
for module in "${BATIK_MODULES[@]}"; do | ||
JAVA_MAIN_CLASS=$( sed -n 's:.*<mainClass>\(.*\)</mainClass>:\1:p' "${module}/pom.xml" ) | ||
|
||
java-pkg_dojar "${module}.jar" | ||
|
||
# Add a launcher if the module has a MainClass. | ||
if [[ -n "${JAVA_MAIN_CLASS}" ]]; then | ||
java-pkg_dolauncher "${module}-${SLOT}" --main "${JAVA_MAIN_CLASS}" | ||
fi | ||
|
||
# Some modules don't have source code | ||
if [[ -d "${module}/src/main/java/org" ]]; then | ||
if use source; then | ||
java-pkg_dosrc "${module}/src/main/java/*" | ||
fi | ||
fi | ||
done | ||
|
||
local java_policy_file="${JAVA_PKG_SHAREPATH}/etc/${PN}.policy" | ||
insinto "$(dirname "${java_policy_file}")" | ||
newins - "$(basename "${java_policy_file}")" <<- _EOF_ | ||
grant codeBase "file:${EPREFIX}${JAVA_PKG_JARDEST}/-" { | ||
permission java.security.AllPermission; | ||
}; | ||
_EOF_ | ||
java-pkg_register-environment-variable \ | ||
gjl_java_args \ | ||
"-Djava.security.policy=file:${EPREFIX}${java_policy_file}" | ||
|
||
if use doc; then | ||
java-pkg_dojavadoc target/api | ||
fi | ||
} | ||
|
||
pkg_postinst() { | ||
xdg_desktop_database_update | ||
xdg_icon_cache_update | ||
} | ||
|
||
pkg_postrm() { | ||
xdg_desktop_database_update | ||
xdg_icon_cache_update | ||
} |