commit:     9f8da323e110cc3aedde0bc3a22cd45eb2ced27f
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Tue Oct 15 17:41:53 2024 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Wed Oct 30 11:15:54 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f8da323

dev-java/batik: add 1.18

back to default slot

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: 
https://github.com/gentoo/gentoo/pull/38836/commits/5610ee98f9cccead633ac96d46c3630a7c5d87ba
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/batik/Manifest          |   2 +
 dev-java/batik/batik-1.18.ebuild | 247 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 249 insertions(+)

diff --git a/dev-java/batik/Manifest b/dev-java/batik/Manifest
index 38cde9303492..bd4be40b1a27 100644
--- a/dev-java/batik/Manifest
+++ b/dev-java/batik/Manifest
@@ -1,2 +1,4 @@
 DIST batik-src-1.17.tar.gz 13578640 BLAKE2B 
c77f994674dd8e8054ad6f753e53304ce6daad9b9eadceef053ede0c746872528ecd1caa6e87064d41892fed0c39f07936779851777208229f817bf84cb529b2
 SHA512 
0879f298142630e96931f429ade5e7107d2d981c6c3a99b8f2ddca8e26ea4fde1b7c717d06412c57d64759bed6c5f2d056970d59e19e66caafb926cb30078516
 DIST batik-src-1.17.tar.gz.asc 833 BLAKE2B 
33836c8f0cbc878410ce8b2738dbbb4dc47d6067c5f58febb3460d836424b1c1d815f369bd7aeb15a8ed9371628e03731c1338aa6524c8a935c48b8092e3bb1e
 SHA512 
513bd3d5c212ce4d98daa911f36e1b00e2f2b7a637e93ea116a2ebe848e20664d722ccf6c8928eac7170fa84d3b38eec86a71c8a0a7e21fd8622c8d475991c60
+DIST batik-src-1.18.tar.gz 13699469 BLAKE2B 
003a467b6948b902f56f004bf5c7d41f369bf49520d55fd70af3d3b8edef02d04557fdad5e4da70395a30c755f777791c89714edaa094eaa2964972eb81bdbf1
 SHA512 
209c6f4c76769cf1db616c5fe43c71d23c92afeb62e11bc7605baaa18bf9177efbb7a91a98bf03c3b4cd917bd7b7bd83e87083d16b11b3e57d3f31beeb8e1d7b
+DIST batik-src-1.18.tar.gz.asc 833 BLAKE2B 
a779b94a666edcab5b4c69866b4e7388ce6b8d9869d59773b084d870152cffd8c8cfd74df0f2a4ef06e5d598acb3b7bc00ec841871411b379f514b3fe2019765
 SHA512 
2fe6de9394f89c90e5ad2ede241c57bfbe5da4627b3730d445b2daa06b1ae71945bd65cda0d7a6bd46db536f318f755778a5b5a5b52080872a3143acd0d4677d

diff --git a/dev-java/batik/batik-1.18.ebuild b/dev-java/batik/batik-1.18.ebuild
new file mode 100644
index 000000000000..c37e45435562
--- /dev/null
+++ b/dev-java/batik/batik-1.18.ebuild
@@ -0,0 +1,247 @@
+# Copyright 1999-2024 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}/${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+BDEPEND="
+       app-arch/zip
+       verify-sig? ( sec-keys/openpgp-keys-apache-xmlgraphics-batik )
+"
+
+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:0
+"
+
+DEPEND="
+       ${CP_DEPEND}
+       >=virtual/jdk-1.8:*
+"
+
+RDEPEND="
+       ${CP_DEPEND}
+       >=virtual/jre-1.8:*
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/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
+
+       cat > "batik-squiggle-${SLOT}.desktop" <<-EOF || die
+               [Desktop Entry]
+               Name=Squiggle
+               Comment=SVG browser
+               Exec=batik-squiggle-${SLOT}
+               Icon=init
+               Terminal=false
+               Type=Application
+               Categories=Graphics;VectorGraphics;
+               MimeType=image/svg+xml
+       EOF
+}
+
+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" || die
+                       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 "batik-squiggle-${SLOT}.desktop"
+       newicon -s scalable \
+               
batik-svgbrowser/src/main/resources/org/apache/batik/apps/svgbrowser/resources/init.svg
 \
+               squiggle-${SLOT}.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 \
+               "\$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
+}

Reply via email to