Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dev-java/batik: add 1.16 #30411

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions dev-java/batik/Manifest
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
229 changes: 229 additions & 0 deletions dev-java/batik/batik-1.16.ebuild
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
}
1 change: 1 addition & 0 deletions sec-keys/openpgp-keys-apache-xmlgraphics-batik/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST openpgp-keys-apache-xmlgraphics-batik-20170410-KEYS.asc 18450 BLAKE2B 160f9fb04c0b349b59b50c5fcc811ac087407be682f114b2f32c7747f7b1c46d0def6fe27aa3b79ef1b8e35cdcece8cc3761a89ec00b8575b8919944173c79d5 SHA512 98c2d7e51c76c64c9c0040bd18851d08cb55f383d7850a01bcd7df3e0b5eb123e23bf064e10d58d72d627edfa118f1c12bb814e71be5255834274179b90fdc6b
8 changes: 8 additions & 0 deletions sec-keys/openpgp-keys-apache-xmlgraphics-batik/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>java@gentoo.org</email>
<name>Java</name>
</maintainer>
</pkgmetadata>
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DESCRIPTION="OpenPGP keys used by xmlgraphics.apache.org/batik"
HOMEPAGE="https://xmlgraphics.apache.org/batik/download.html"
SRC_URI="https://downloads.apache.org/xmlgraphics/batik/KEYS -> ${P}-KEYS.asc"

LICENSE="public-domain"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ppc64 x86"

S="${WORKDIR}"

src_install() {
local files=( ${A} )
insinto /usr/share/openpgp-keys
newins - xmlgraphics-batik.apache.org.asc < <(cat "${files[@]/#/${DISTDIR}/}" || die)
}