Gentoo Archives: gentoo-commits

From: "Miroslav Šulc" <fordfrog@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/antlr/, dev-java/antlr/files/
Date: Sun, 16 May 2021 19:06:17
Message-Id: 1621191970.3394094d2c0d89ccc8d831bb299dddf7c94dd6ab.fordfrog@gentoo
1 commit: 3394094d2c0d89ccc8d831bb299dddf7c94dd6ab
2 Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
3 AuthorDate: Sun May 16 09:30:11 2021 +0000
4 Commit: Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
5 CommitDate: Sun May 16 19:06:10 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3394094d
7
8 dev-java/antlr: EAPI 7, min java 1.8 (slot 3)
9
10 Package-Manager: Portage-3.0.18, Repoman-3.0.2
11 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
12 Closes: https://github.com/gentoo/gentoo/pull/20829
13 Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>
14
15 dev-java/antlr/antlr-3.2-r1.ebuild | 101 ++++++++++++++++++++++++++++++
16 dev-java/antlr/files/3.2-test-fixes.patch | 16 ++---
17 2 files changed, 109 insertions(+), 8 deletions(-)
18
19 diff --git a/dev-java/antlr/antlr-3.2-r1.ebuild b/dev-java/antlr/antlr-3.2-r1.ebuild
20 new file mode 100644
21 index 00000000000..fba666dc5ad
22 --- /dev/null
23 +++ b/dev-java/antlr/antlr-3.2-r1.ebuild
24 @@ -0,0 +1,101 @@
25 +# Copyright 1999-2021 Gentoo Authors
26 +# Distributed under the terms of the GNU General Public License v2
27 +
28 +EAPI=7
29 +
30 +JAVA_PKG_IUSE="doc test"
31 +
32 +inherit java-pkg-2 java-pkg-simple
33 +
34 +DESCRIPTION="A parser generator for many languages"
35 +HOMEPAGE="https://www.antlr3.org/"
36 +SRC_URI="https://www.antlr3.org/download/${P}.tar.gz
37 + https://www.antlr3.org/download/${P}.jar" # Prebuilt version needed.
38 +
39 +LICENSE="BSD"
40 +SLOT="3"
41 +KEYWORDS="amd64 ~arm ~arm64 ppc64 x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
42 +RESTRICT="!test? ( test )"
43 +
44 +CDEPEND=">=dev-java/antlr-2.7.7-r7:0
45 + dev-java/stringtemplate:0"
46 +
47 +RDEPEND="${CDEPEND}
48 + >=virtual/jre-1.8:*"
49 +
50 +DEPEND="${CDEPEND}
51 + >=virtual/jdk-1.8:*
52 + test? ( dev-java/junit:4 )"
53 +
54 +PATCHES=(
55 + # These fixes have been applied in 3.5.
56 + "${FILESDIR}/${PV}-test-fixes.patch"
57 + "${FILESDIR}/${PV}-java-8.patch"
58 +)
59 +
60 +S="${WORKDIR}/${P}"
61 +JAVA_GENTOO_CLASSPATH_EXTRA="${S}/${PN}-runtime.jar"
62 +JAVA_GENTOO_CLASSPATH="antlr,stringtemplate"
63 +
64 +src_unpack() {
65 + unpack ${P}.tar.gz
66 +}
67 +
68 +src_prepare() {
69 + default
70 + java-pkg_clean
71 +
72 + # Some tests fail under Java 8 in ways that probably aren't limited
73 + # to the tests. This is bad but upstream is never going to update
74 + # 3.2 even though other projects still rely on it. If any issues
75 + # arise, we can only put pressure on those projects to upgrade.
76 + if java-pkg_is-vm-version-ge 1.8; then
77 + rm -v tool/src/test/java/org/antlr/test/Test{DFAConversion,SemanticPredicates,TopologicalSort}.java || die
78 + fi
79 +
80 + # 3.2 has strange hidden files.
81 + find -type f -name "._*.*" -delete || die
82 +}
83 +
84 +src_compile() {
85 + cd "${S}/runtime/Java/src/main" || die
86 + JAVA_JAR_FILENAME="${S}/${PN}-runtime.jar" java-pkg-simple_src_compile
87 +
88 + cd "${S}/tool/src/main" || die
89 +
90 + local G; for G in antlr codegen antlr.print assign.types buildnfa define; do # from pom.xml
91 + antlr -o antlr2/org/antlr/grammar/v2/{,${G}.g} || die
92 + done
93 +
94 + # We have applied a patch to fix this version under Java 8. Trouble
95 + # is that we need to run a prebuilt version before we can build our
96 + # own and that version doesn't have the fix applied. We work around
97 + # this by building just the offending class against the prebuilt
98 + # version and then putting them together in the classpath. That
99 + # isn't all. Due to a compiler limitation that Chewi doesn't fully
100 + # understand, this class cannot be compiled by itself without a
101 + # couple of tweaks that have been applied in the Java 8 patch.
102 + ejavac -classpath "${DISTDIR}/${P}.jar" java/org/antlr/tool/CompositeGrammar.java
103 +
104 + java -classpath "java:${DISTDIR}/${P}.jar" org.antlr.Tool $(find antlr3 -name "*.g") || die
105 + JAVA_JAR_FILENAME="${S}/${PN}-tool.jar" java-pkg-simple_src_compile
106 + java-pkg_addres "${S}/${PN}-tool.jar" resources
107 +}
108 +
109 +src_install() {
110 + java-pkg_dojar ${PN}-{runtime,tool}.jar
111 + java-pkg_dolauncher ${PN}${SLOT} --main org.antlr.Tool
112 + use doc && java-pkg_dojavadoc runtime/Java/src/main/target/api
113 +}
114 +
115 +src_test() {
116 + cd tool/src/test/java || die
117 + local CP=".:${S}/${PN}-runtime.jar:${S}/${PN}-tool.jar:$(java-pkg_getjars junit-4,${JAVA_GENTOO_CLASSPATH})"
118 +
119 + local TESTS=$(find * -name "Test*.java")
120 + TESTS="${TESTS//.java}"
121 + TESTS="${TESTS//\//.}"
122 +
123 + ejavac -classpath "${CP}" $(find -name "*.java")
124 + ejunit4 -classpath "${CP}" ${TESTS}
125 +}
126
127 diff --git a/dev-java/antlr/files/3.2-test-fixes.patch b/dev-java/antlr/files/3.2-test-fixes.patch
128 index 0544b700617..28068edb76b 100644
129 --- a/dev-java/antlr/files/3.2-test-fixes.patch
130 +++ b/dev-java/antlr/files/3.2-test-fixes.patch
131 @@ -1,5 +1,5 @@
132 ---- tool/src/test/java/org/antlr/test/BaseTest.java.orig 2010-11-30 01:54:04.000000000 +0000
133 -+++ tool/src/test/java/org/antlr/test/BaseTest.java 2015-09-24 22:25:36.872191194 +0100
134 +--- a/tool/src/test/java/org/antlr/test/BaseTest.java.orig 2010-11-30 01:54:04.000000000 +0000
135 ++++ b/tool/src/test/java/org/antlr/test/BaseTest.java 2015-09-24 22:25:36.872191194 +0100
136 @@ -130,8 +130,8 @@
137 try {
138 Process process =
139 @@ -43,8 +43,8 @@
140 buf.append(line);
141 buf.append('\n');
142 line = in.readLine();
143 ---- tool/src/test/java/org/antlr/test/TestTopologicalSort.java.orig 2009-09-23 19:36:14.000000000 +0100
144 -+++ tool/src/test/java/org/antlr/test/TestTopologicalSort.java 2010-11-30 01:54:04.000000000 +0000
145 +--- a/tool/src/test/java/org/antlr/test/TestTopologicalSort.java.orig 2009-09-23 19:36:14.000000000 +0100
146 ++++ b/tool/src/test/java/org/antlr/test/TestTopologicalSort.java 2010-11-30 01:54:04.000000000 +0000
147 @@ -49,7 +49,7 @@
148 g.addEdge("F", "H");
149 g.addEdge("E", "F");
150 @@ -72,8 +72,8 @@
151 List nodes = g.sort();
152 String result = nodes.toString();
153 assertEquals(expecting, result);
154 ---- tool/src/test/java/org/antlr/test/TestSemanticPredicates.java.orig 2009-09-23 19:36:12.000000000 +0100
155 -+++ tool/src/test/java/org/antlr/test/TestSemanticPredicates.java 2015-12-05 13:52:05.923411552 +0000
156 +--- a/tool/src/test/java/org/antlr/test/TestSemanticPredicates.java.orig 2009-09-23 19:36:12.000000000 +0100
157 ++++ b/tool/src/test/java/org/antlr/test/TestSemanticPredicates.java 2015-12-05 13:52:05.923411552 +0000
158 @@ -731,19 +731,23 @@
159 "c : a\n" +
160 " | b\n" +
161 @@ -111,8 +111,8 @@
162 }
163
164 @Test
165 ---- tool/src/test/java/org/antlr/test/TestAttributes.java.orig 2015-12-05 13:55:55.392843185 +0000
166 -+++ tool/src/test/java/org/antlr/test/TestAttributes.java 2015-12-05 14:04:38.120599871 +0000
167 +--- a/tool/src/test/java/org/antlr/test/TestAttributes.java.orig 2015-12-05 13:55:55.392843185 +0000
168 ++++ b/tool/src/test/java/org/antlr/test/TestAttributes.java 2015-12-05 14:04:38.120599871 +0000
169 @@ -439,20 +439,15 @@
170 ErrorManager.setErrorListener(equeue);
171 Grammar g = new Grammar(