Install this version:
emerge -a =dev-java/batik-1.20
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =dev-java/batik-1.20
Or alternatively:
emerge --autounmask-write -a =dev-java/batik-1.20
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
JAVA_TESTING_FRAMEWORKS="junit-4"
inherit desktop java-pkg-2 java-pkg-simple verify-sig xdg
DESCRIPTION="XML Graphics Batik"
HOMEPAGE="https://xmlgraphics.apache.org/batik/"
SRC_URI="mirror://apache/xmlgraphics/batik/source/batik-src-${PV}.tar.gz
verify-sig? ( mirror://apache/xmlgraphics/batik/source/batik-src-${PV}.tar.gz.asc )"
S="${WORKDIR}/${P}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc64"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-xmlgraphics )"
CP_DEPEND="
>=dev-java/rhino-1.9.1:0
dev-java/xml-commons-external:1.4
~dev-java/xmlgraphics-commons-2.12:0
"
DEPEND="
${CP_DEPEND}
>=virtual/jdk-11:*
"
RDEPEND="
${CP_DEPEND}
>=virtual/jre-1.8:*
"
DOCS=( CHANGES NOTICE README )
JAVA_RESOURCE_DIRS="resources"
JAVA_SRC_DIR=( ! -path '*test*/src/*' ! -path '*/jacl/*' -path '*/src/main/java/**.java' )
JAVA_TEST_EXCLUDES=(
# JAXP00010003: The length of entity "%SVG.Presentation.attrib" is "15,002"
# that exceeds the "15,000" limit set by "jdk.xml.maxParameterEntitySizeLimit".
org.apache.batik.svg.ValidateDTDTestCase
# org.apache.batik.test.TestException: Cannot build Test instance of class : . Got exception of class :
# java.lang.IllegalArgumentException with messages test-references/samples/anne.png and stack trace :
# java.lang.IllegalArgumentException: test-references/samples/anne.png
org.apache.batik.test.xml.JUnitRunnerTestCase
)
JAVA_TEST_GENTOO_CLASSPATH="junit-4"
JAVA_TEST_RESOURCE_DIRS=( batik-util/src/test/resources test-resources )
JAVA_TEST_SRC_DIR=( -path '*/src/test/java/**/*TestCase*.java' )
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/apache-xmlgraphics.asc"
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
cat > "batik-squiggle.desktop" <<-EOF || die
[Desktop Entry]
Name=Squiggle
Comment=SVG browser
Exec=batik-squiggle
Icon=init
Terminal=false
Type=Application
Categories=Graphics;VectorGraphics;
MimeType=image/svg+xml
EOF
mkdir resources || die "mkdir"
# collect resources from all those modules' directories
local module
for module in $(find ! -path '*test*/src/*' -path '*/src/main/resources'); do
pushd "${module}" >/dev/null || die
find -type f ! -name '*.java' ! -name 'LICENSE' -printf '%P\n' |
xargs cp --parent -t "${S}"/resources || die "copy resources"
popd >/dev/null || die
done
mkdir -p src/test/resources || die "test-resources"
mv {batik-bridge/,}src/test/resources/circular.svg || die "circular.svg"
}
src_test() {
einfo "building batik-test.jar"
JAVA_GENTOO_CLASSPATH_EXTRA="batik.jar:batik-test.jar"
JAVA_JAR_FILENAME="batik-test.jar"
JAVA_SRC_DIR=( -path '**/*test*/**/*.java' )
java-pkg-simple_src_compile
einfo "compiling and running tests"
java-pkg-simple_src_test
# a mistake in java-pkg-simple.eclass suppresses this test-class
# but we can run it separately
JAVA_TEST_RUN_ONLY=( org.apache.batik.util.Base64TestCases )
java-pkg-simple_src_test
}
src_install() {
JAVA_JAR_FILENAME="batik.jar" # avoid installing 'batik-test.jar'
JAVA_SRC_DIR=( batik-* )
java-pkg-simple_src_install
domenu "batik-squiggle.desktop"
newicon -s scalable \
batik-svgbrowser/src/main/resources/org/apache/batik/apps/svgbrowser/resources/init.svg \
squiggle.svg
grep mainClass */pom.xml |
sed -n 's:.*<mainClass>\(.*\)</mainClass>:\1:p' |
sort | uniq | while read line
do
local launcher=$(echo "${line}" | cut -d. -f 5) || die
java-pkg_dolauncher "batik-${launcher}" --main "${line}"
done
# java_policy_file is copied from previous version
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 \
"\$gjl_java_args -Djava.security.policy=file:${EPREFIX}${java_policy_file}"
}
| Mirror Name | URLs |
|---|---|
| apache |
>=dev-java/rhino-1.9.1:0 dev-java/xml-commons-external:1.4 ~dev-java/xmlgraphics-commons-2.12:0 >=virtual/jdk-11:*
>=dev-java/rhino-1.9.1:0 dev-java/xml-commons-external:1.4 ~dev-java/xmlgraphics-commons-2.12:0 >=virtual/jre-1.8:*
verify-sig? ( sec-keys/openpgp-keys-apache-xmlgraphics )
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | batik-src-1.20.tar.gz | 14157209 bytes | mirror://apache/xmlgraphics/batik/source/batik-src-1.20.tar.gz |
| DIST | batik-src-1.20.tar.gz.asc | 833 bytes | mirror://apache/xmlgraphics/batik/source/batik-src-1.20.tar.gz.asc |