blob: 19460d62ebc356515ebdbca534682caff1b912ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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}"
}
|