diff options
Diffstat (limited to 'dev-java/batik/batik-1.20.ebuild')
| -rw-r--r-- | dev-java/batik/batik-1.20.ebuild | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/dev-java/batik/batik-1.20.ebuild b/dev-java/batik/batik-1.20.ebuild new file mode 100644 index 000000000000..19460d62ebc3 --- /dev/null +++ b/dev-java/batik/batik-1.20.ebuild @@ -0,0 +1,134 @@ +# 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}" +} |
