diff --git a/.gitignore b/.gitignore index 8d17914..ecf0026 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,3 @@ -antlr-3.2.tar.gz -libantlr3c-3.2.tar.gz -antlr-javascript-runtime-3.1.zip -antlr_python_runtime-3.1.2.tar.gz -antlr3-maven-plugin-3.2.jar -antlr-3.2.jar -/libantlr3c-3.4.tar.gz -/antlr-3.4.tar.gz -/antlr_python_runtime-3.1.3.tar.gz -/antlr-3.5.tar.gz -/3.5.2.tar.gz +/*.zip +/*.tar.gz +/*.src.rpm diff --git a/0001-java8-fix.patch b/0001-java8-fix.patch index e5146d4..a05238d 100644 --- a/0001-java8-fix.patch +++ b/0001-java8-fix.patch @@ -1,4 +1,4 @@ -From d0aa3d0a4f323cb1464c02d53711c2a0cd24c10d Mon Sep 17 00:00:00 2001 +From 33f662c60e6e7b703e197854d2478a8747f044f0 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 17 Jun 2014 19:36:24 +0200 Subject: [PATCH] java8 fix @@ -6,13 +6,12 @@ Subject: [PATCH] java8 fix Signed-off-by: Michael Simacek --- tool/src/main/java/org/antlr/codegen/CodeGenerator.java | 2 +- - tool/src/main/java/org/antlr/tool/ErrorManager.java | 1 - tool/src/main/java/org/antlr/tool/Grammar.java | 4 ++-- tool/src/main/java/org/antlr/tool/Strip.java | 2 +- - 4 files changed, 4 insertions(+), 5 deletions(-) + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tool/src/main/java/org/antlr/codegen/CodeGenerator.java b/tool/src/main/java/org/antlr/codegen/CodeGenerator.java -index 57495b2..eada38e 100644 +index b279bd5..566e33c 100644 --- a/tool/src/main/java/org/antlr/codegen/CodeGenerator.java +++ b/tool/src/main/java/org/antlr/codegen/CodeGenerator.java @@ -1087,7 +1087,7 @@ public class CodeGenerator { @@ -24,20 +23,8 @@ index 57495b2..eada38e 100644 // then translate via codegen.g CodeGenTreeWalker gen = new CodeGenTreeWalker(new CommonTreeNodeStream(rewriteTree)); -diff --git a/tool/src/main/java/org/antlr/tool/ErrorManager.java b/tool/src/main/java/org/antlr/tool/ErrorManager.java -index d3223ae..122c861 100644 ---- a/tool/src/main/java/org/antlr/tool/ErrorManager.java -+++ b/tool/src/main/java/org/antlr/tool/ErrorManager.java -@@ -385,7 +385,6 @@ public class ErrorManager { - public void runTimeError(STMessage msg) { - switch (msg.error) { - case NO_SUCH_ATTRIBUTE: -- case NO_SUCH_ATTRIBUTE_PASS_THROUGH: - case NO_SUCH_PROPERTY: - ErrorManager.warning(ErrorManager.MSG_STRING_TEMPLATE_ERROR, msg.toString()); - return; diff --git a/tool/src/main/java/org/antlr/tool/Grammar.java b/tool/src/main/java/org/antlr/tool/Grammar.java -index 91bbad9..dc4774a 100644 +index 667ebb2..4ca4328 100644 --- a/tool/src/main/java/org/antlr/tool/Grammar.java +++ b/tool/src/main/java/org/antlr/tool/Grammar.java @@ -706,7 +706,7 @@ public class Grammar { @@ -72,5 +59,5 @@ index f411090..ddda4ed 100644 rewrite(g.getTreeAdaptor(),t,g.getTokenNames()); } -- -1.9.3 +2.7.4 diff --git a/0002-conversion-timeout.patch b/0002-conversion-timeout.patch new file mode 100644 index 0000000..8bd8536 --- /dev/null +++ b/0002-conversion-timeout.patch @@ -0,0 +1,14 @@ +Description: Increase the default conversion timeout to avoid build failures when complex grammars are processed on slow architectures. +Author: Emmanuel Bourg +Forwarded: no +--- a/tool/src/main/java/org/antlr/analysis/DFA.java ++++ b/tool/src/main/java/org/antlr/analysis/DFA.java +@@ -57,7 +57,7 @@ + */ + + /** Set to 0 to not terminate early (time in ms) */ +- public static int MAX_TIME_PER_DFA_CREATION = 1*1000; ++ public static int MAX_TIME_PER_DFA_CREATION = 30*1000; + + /** How many edges can each DFA state have before a "special" state + * is created that uses IF expressions instead of a table? diff --git a/0003-fix-c-template.patch b/0003-fix-c-template.patch new file mode 100644 index 0000000..6eabc08 --- /dev/null +++ b/0003-fix-c-template.patch @@ -0,0 +1,35 @@ +Description: Fix various issues with the C template (backports of patchs proposed upstream) +Origin: backport, https://github.com/stephengaito/antlr3/commit/adc5e54 + https://github.com/stephengaito/antlr3/commit/71df80c +--- a/tool/src/main/resources/org/antlr/codegen/templates/C/C.stg ++++ b/tool/src/main/resources/org/antlr/codegen/templates/C/C.stg +@@ -2132,7 +2132,9 @@ + + LRECOVER(); + ++); ++!> + + goto ruleEx; + }<\n> +@@ -2143,7 +2145,10 @@ + EXCEPTION->type = ANTLR3_MISMATCHED_SET_EXCEPTION; + EXCEPTION->name = (void *)ANTLR3_MISMATCHED_SET_NAME; + ++EXCEPTION->expectingSet = NULL; ++expectingSet = &FOLLOW_set_in_; ++!> + + >> + +@@ -2510,7 +2515,7 @@ + */ + static const ANTLR3_INT32 * const dfa_transitions[] = + { +- _T}; separator=", ", wrap="\n", null="_empty"> ++ _T}; separator=", ", wrap="\n", null="NULL"> + }; + + diff --git a/0004-eof-token.patch b/0004-eof-token.patch new file mode 100644 index 0000000..2602ca6 --- /dev/null +++ b/0004-eof-token.patch @@ -0,0 +1,13 @@ +Description: Keep the Token.EOF_TOKEN field to preserve the backward compatibility +Author: Emmanuel Bourg +Forwarded: no +--- a/runtime/Java/src/main/java/org/antlr/runtime/Token.java ++++ b/runtime/Java/src/main/java/org/antlr/runtime/Token.java +@@ -38,6 +38,7 @@ + public static final int MIN_TOKEN_TYPE = UP+1; + + public static final int EOF = CharStream.EOF; ++ public static final Token EOF_TOKEN = new CommonToken(EOF); + + public static final int INVALID_TOKEN_TYPE = 0; + public static final Token INVALID_TOKEN = new CommonToken(INVALID_TOKEN_TYPE); diff --git a/0005-reproducible-parsers.patch b/0005-reproducible-parsers.patch new file mode 100644 index 0000000..a06bcaf --- /dev/null +++ b/0005-reproducible-parsers.patch @@ -0,0 +1,42 @@ +Description: Replace the HashSets with LinkedHashSets to make the generated parsers reproducible +Author: Emmanuel Bourg +Forwarded: no +--- a/tool/src/main/antlr3/org/antlr/grammar/v3/DefineGrammarItemsWalker.g ++++ b/tool/src/main/antlr3/org/antlr/grammar/v3/DefineGrammarItemsWalker.g +@@ -45,6 +45,7 @@ + package org.antlr.grammar.v3; + import org.antlr.tool.*; + import java.util.HashSet; ++import java.util.LinkedHashSet; + import java.util.Set; + } + +@@ -279,7 +280,7 @@ + throwsSpec returns [HashSet exceptions] + @init + { +- $exceptions = new HashSet(); ++ $exceptions = new LinkedHashSet(); + } + : ^('throws' (ID {$exceptions.add($ID.text);})+ ) + ; +@@ -556,7 +557,7 @@ + if ( state.backtracking == 0 ) + { + if ( grammar.buildAST() ) +- currentRewriteRule.rewriteRefsDeep = new HashSet(); ++ currentRewriteRule.rewriteRefsDeep = new LinkedHashSet(); + } + } + : ^( REWRITES +@@ -582,8 +583,8 @@ + { + // don't do if guessing + currentRewriteBlock=$start; // pts to BLOCK node +- currentRewriteBlock.rewriteRefsShallow = new HashSet(); +- currentRewriteBlock.rewriteRefsDeep = new HashSet(); ++ currentRewriteBlock.rewriteRefsShallow = new LinkedHashSet(); ++ currentRewriteBlock.rewriteRefsDeep = new LinkedHashSet(); + } + } + : ^( BLOCK rewrite_alternative EOB ) diff --git a/0006-antlr3memory.hpp-fix-for-C-20-mode.patch b/0006-antlr3memory.hpp-fix-for-C-20-mode.patch new file mode 100644 index 0000000..fd0870c --- /dev/null +++ b/0006-antlr3memory.hpp-fix-for-C-20-mode.patch @@ -0,0 +1,39 @@ +From 478902a7e57e2283c57410f5aa14939e743b5102 Mon Sep 17 00:00:00 2001 +From: Avi Kivity +Date: Tue, 12 May 2020 14:51:18 +0300 +Subject: [PATCH] antlr3memory.hpp: fix for C++20 mode + +gcc 10 in C++20 mode requires that the allocator type match +the type used to allocate, so do that by adding "const" to the +key type. +--- + runtime/Cpp/include/antlr3memory.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/runtime/Cpp/include/antlr3memory.hpp b/runtime/Cpp/include/antlr3memory.hpp +index 7713613..4667a00 100755 +--- a/runtime/Cpp/include/antlr3memory.hpp ++++ b/runtime/Cpp/include/antlr3memory.hpp +@@ -98,17 +98,17 @@ public: + { + }; + + template + class UnOrderedMapType : public std::map< KeyType, ValueType, std::less, +- AllocatorType > > ++ AllocatorType > > + { + }; + + template + class OrderedMapType : public std::map< KeyType, ValueType, std::less, +- AllocatorType > > ++ AllocatorType > > + { + }; + + ANTLR_INLINE static void* operator new (std::size_t bytes) + { +-- +2.26.2 + diff --git a/0007-update-java-target.patch b/0007-update-java-target.patch new file mode 100644 index 0000000..b2a8b56 --- /dev/null +++ b/0007-update-java-target.patch @@ -0,0 +1,13 @@ +--- a/antlr3-maven-archetype/src/main/resources/archetype-resources/pom.xml ++++ b/antlr3-maven-archetype/src/main/resources/archetype-resources/pom.xml +@@ -106,8 +106,8 @@ + maven-compiler-plugin + 2.0.2 + +- 1.6 +- jsr14 ++ 1.8 ++ 1.8 + src + + diff --git a/0008-unconst-cyclicdfa-gcc-14.patch b/0008-unconst-cyclicdfa-gcc-14.patch new file mode 100644 index 0000000..1a78820 --- /dev/null +++ b/0008-unconst-cyclicdfa-gcc-14.patch @@ -0,0 +1,29 @@ +--- a/runtime/Cpp/include/antlr3cyclicdfa.hpp.orig 2024-02-01 14:13:33.243312124 +0200 ++++ b/runtime/Cpp/include/antlr3cyclicdfa.hpp 2024-02-01 14:12:28.493542243 +0200 +@@ -61,18 +61,18 @@ + /// Decision number that a particular static structure + /// represents. + /// ++ ANTLR_INT32 m_decisionNumber; +- const ANTLR_INT32 m_decisionNumber; + + /// What this decision represents + /// + const ANTLR_UCHAR* m_description; ++ const ANTLR_INT32* m_eot; ++ const ANTLR_INT32* m_eof; ++ const ANTLR_INT32* m_min; ++ const ANTLR_INT32* m_max; ++ const ANTLR_INT32* m_accept; ++ const ANTLR_INT32* m_special; ++ const ANTLR_INT32* const * m_transition; +- const ANTLR_INT32* const m_eot; +- const ANTLR_INT32* const m_eof; +- const ANTLR_INT32* const m_min; +- const ANTLR_INT32* const m_max; +- const ANTLR_INT32* const m_accept; +- const ANTLR_INT32* const m_special; +- const ANTLR_INT32* const *const m_transition; + + public: + CyclicDFA( ANTLR_INT32 decisionNumber diff --git a/README.md b/README.md new file mode 100644 index 0000000..d572416 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# antlr3 + +[ANTLR version 3](https://www.antlr3.org/), ANother Tool for Language +Recognition, is a language tool that provides a framework for constructing +recognizers, interpreters, compilers, and translators from grammatical +descriptions containing actions in a variety of target languages. diff --git a/antlr-runtime-MANIFEST.MF b/antlr-runtime-MANIFEST.MF deleted file mode 100644 index e8a0e2d..0000000 --- a/antlr-runtime-MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Manifest-Version: 1.0 -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Bundle-RequiredExecutionEnvironment: J2SE-1.3 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.antlr.runtime -Eclipse-SourceReferences: scm:cvs:pserver:dev.eclipse.org:/cvsroot/too - ls:org.eclipse.orbit/org.antlr.runtime;tag=v201101311130 -Export-Package: org.antlr.runtime;version="3.2.0",org.antlr.runtime.de - bug;version="3.2.0",org.antlr.runtime.misc;version="3.2.0",org.antlr. - runtime.tree;version="3.2.0" -Bundle-Version: 3.2.0.v201101311130 -Bundle-ManifestVersion: 2 diff --git a/antlr3.spec b/antlr3.spec index e1bf834..6837262 100644 --- a/antlr3.spec +++ b/antlr3.spec @@ -1,138 +1,215 @@ -#%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} - -%global antlr_version 3.5.2 +%global antlr_version 3.5.3 %global c_runtime_version 3.4 -#%global python_runtime_version 3.1.3 %global javascript_runtime_version 3.1 -%global baserelease 4 +%global baserelease 16 -Summary: ANother Tool for Language Recognition -Name: antlr3 -Version: %{antlr_version} -Release: %{baserelease}%{?dist} -Epoch: 1 -URL: http://www.antlr3.org/ -Source0: https://github.com/antlr/antlr3/archive/%{antlr_version}.tar.gz -#Source2: http://www.antlr3.org/download/Python/antlr_python_runtime-%{python_runtime_version}.tar.gz -Source3: http://www.antlr3.org/download/antlr-javascript-runtime-%{javascript_runtime_version}.zip -Source9: antlr-runtime-MANIFEST.MF -Patch1: 0001-java8-fix.patch -License: BSD -BuildRequires: maven-local -BuildRequires: maven-enforcer-plugin -BuildRequires: maven-plugin-bundle -BuildRequires: maven-assembly-plugin -BuildRequires: maven-shared-reporting-impl -BuildRequires: maven-surefire-provider-junit -BuildRequires: maven-install-plugin -BuildRequires: buildnumber-maven-plugin -BuildRequires: junit -BuildRequires: tomcat-servlet-3.0-api -BuildRequires: stringtemplate4 -BuildRequires: stringtemplate -BuildRequires: felix-parent -BuildRequires: antlr3-tool -BuildRequires: autoconf +# This package needs itself to build. Use this to bootstrap on a new system. +%bcond bootstrap 0 -# we don't build it now -Obsoletes: antlr3-gunit < 3.2-15 +# Component versions to use when bootstrapping +%global antlr2_version 2.7.7 +%global bootstrap_version 3.5 +%global ST4ver1 4.0.7 +%global ST4ver2 4.0.8 +%global stringtemplatever 3.2.1 + +%global giturl https://github.com/antlr/antlr3 + +Summary: ANother Tool for Language Recognition +Name: antlr3 +Epoch: 1 +Version: %{antlr_version} +Release: %{baserelease}%{?dist} +License: BSD-3-Clause +URL: https://www.antlr3.org/ +VCS: git:%{giturl}.git + +Source0: %{giturl}/archive/%{antlr_version}/%{name}-%{antlr_version}.tar.gz +Source1: http://www.antlr3.org/download/antlr-javascript-runtime-%{javascript_runtime_version}.zip +%if %{with bootstrap} +# Get prebuilt versions to bootstrap +Source2: https://repo1.maven.org/maven2/org/antlr/ST4/%{ST4ver1}/ST4-%{ST4ver1}.jar +Source3: https://repo1.maven.org/maven2/org/antlr/ST4/%{ST4ver1}/ST4-%{ST4ver1}.pom +Source4: https://repo1.maven.org/maven2/org/antlr/ST4/%{ST4ver2}/ST4-%{ST4ver2}.jar +Source5: https://repo1.maven.org/maven2/org/antlr/ST4/%{ST4ver2}/ST4-%{ST4ver2}.pom +Source6: https://repo1.maven.org/maven2/org/antlr/antlr/%{bootstrap_version}/antlr-%{bootstrap_version}.jar +Source7: https://repo1.maven.org/maven2/org/antlr/antlr/%{bootstrap_version}/antlr-%{bootstrap_version}.pom +Source8: https://repo1.maven.org/maven2/org/antlr/antlr-master/%{bootstrap_version}/antlr-master-%{bootstrap_version}.pom +Source9: https://repo1.maven.org/maven2/org/antlr/antlr-runtime/%{bootstrap_version}/antlr-runtime-%{bootstrap_version}.jar +Source10: https://repo1.maven.org/maven2/org/antlr/antlr-runtime/%{bootstrap_version}/antlr-runtime-%{bootstrap_version}.pom +Source11: https://repo1.maven.org/maven2/org/antlr/antlr3-maven-plugin/%{bootstrap_version}/antlr3-maven-plugin-%{bootstrap_version}.jar +Source12: https://repo1.maven.org/maven2/org/antlr/antlr3-maven-plugin/%{bootstrap_version}/antlr3-maven-plugin-%{bootstrap_version}.pom +Source13: https://repo1.maven.org/maven2/org/antlr/stringtemplate/%{stringtemplatever}/stringtemplate-%{stringtemplatever}.jar +Source14: https://repo1.maven.org/maven2/org/antlr/stringtemplate/%{stringtemplatever}/stringtemplate-%{stringtemplatever}.pom +Source15: https://repo1.maven.org/maven2/antlr/antlr/%{antlr2_version}/antlr-%{antlr2_version}.jar +Source16: https://repo1.maven.org/maven2/antlr/antlr/%{antlr2_version}/antlr-%{antlr2_version}.pom +%endif + +Patch: 0001-java8-fix.patch +# Generate OSGi metadata +Patch: osgi-manifest.patch +# Increase the default conversion timeout to avoid build failures when complex +# grammars are processed on slow architectures. Patch from Debian. +Patch: 0002-conversion-timeout.patch +# Fix problems with the C template. Patch from Debian. +Patch: 0003-fix-c-template.patch +# Keep Token.EOF_TOKEN for backwards compatibility. Patch from Debian. +Patch: 0004-eof-token.patch +# Make parsers reproducible. Patch from Debian. +Patch: 0005-reproducible-parsers.patch +# Fix for C++20 +Patch: 0006-antlr3memory.hpp-fix-for-C-20-mode.patch +# Compile for target 1.8 to fix build with JDK 11 +Patch: 0007-update-java-target.patch +# Fix source for tighter gcc template checks +Patch: 0008-unconst-cyclicdfa-gcc-14.patch + +BuildRequires: ant-openjdk25 +BuildRequires: make +BuildRequires: maven-local-openjdk25 +%if %{without bootstrap} +BuildRequires: mvn(org.antlr:antlr) +BuildRequires: mvn(org.antlr:antlr3-maven-plugin) +BuildRequires: mvn(org.antlr:ST4) +BuildRequires: mvn(org.antlr:stringtemplate) +%endif +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-plugin-plugin) +BuildRequires: mvn(org.apache.maven:maven-plugin-api) +BuildRequires: mvn(org.codehaus.plexus:plexus-compiler-api) + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool + +# https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs +ExclusiveArch: %{java_arches} %description -ANother Tool for Language Recognition, is a language tool -that provides a framework for constructing recognizers, -interpreters, compilers, and translators from grammatical -descriptions containing actions in a variety of target languages. +ANother Tool for Language Recognition, is a language tool that provides a +framework for constructing recognizers, interpreters, compilers, and +translators from grammatical descriptions containing actions in a variety of +target languages. -%package tool -Summary: ANother Tool for Language Recognition -BuildArch: noarch -Provides: %{name} = %{epoch}:%{antlr_version}-%{release} -Obsoletes: %{name} < %{epoch}:%{antlr_version}-%{release} -Requires: %{name}-java = %{epoch}:%{antlr_version}-%{release} +%package tool +Summary: ANother Tool for Language Recognition +License: BSD-3-Clause AND Apache-2.0 +BuildArch: noarch +Provides: %{name} = %{epoch}:%{antlr_version}-%{release} +Obsoletes: %{name} < %{epoch}:%{antlr_version}-%{release} +Requires: %{name}-java = %{epoch}:%{antlr_version}-%{release} +# Explicit requires for javapackages-tools since antlr3-script +# uses /usr/share/java-utils/java-functions +Requires: javapackages-tools -%description tool -ANother Tool for Language Recognition, is a language tool -that provides a framework for constructing recognizers, -interpreters, compilers, and translators from grammatical -descriptions containing actions in a variety of target languages. +%description tool +ANother Tool for Language Recognition, is a language tool that provides a +framework for constructing recognizers, interpreters, compilers, and +translators from grammatical descriptions containing actions in a variety of +target languages. -%package java -Summary: Java run-time support for ANTLR-generated parsers -BuildArch: noarch +%package java +Summary: Java run-time support for ANTLR-generated parsers +BuildArch: noarch -%description java +%description java Java run-time support for ANTLR-generated parsers -%package javadoc +%package javadoc Summary: API documentation for %{name} BuildArch: noarch -%description javadoc +%description javadoc %{summary}. -%package javascript -Summary: Javascript run-time support for ANTLR-generated parsers -Version: %{javascript_runtime_version} -Release: %{antlr_version}.%{baserelease}%{?dist} -BuildArch: noarch +%package javascript +Summary: Javascript run-time support for ANTLR-generated parsers +Version: %{javascript_runtime_version} +Release: %{antlr_version}.%{baserelease}%{?dist} +BuildArch: noarch -%description javascript +%description javascript Javascript run-time support for ANTLR-generated parsers -%package C -Summary: C run-time support for ANTLR-generated parsers -Version: %{c_runtime_version} -Release: %{antlr_version}.%{baserelease}%{?dist} +%package C +Summary: C run-time support for ANTLR-generated parsers +Version: %{c_runtime_version} +Release: %{antlr_version}.%{baserelease}%{?dist} -%description C +%description C C run-time support for ANTLR-generated parsers -%package C-devel -Summary: Header files for the C bindings for ANTLR-generated parsers -Requires: %{name}-C = %{epoch}:%{c_runtime_version}-%{release} -Version: %{c_runtime_version} -Release: %{antlr_version}.%{baserelease}%{?dist} +%package C-devel +Summary: Header files for the C bindings for ANTLR-generated parsers +Requires: %{name}-C = %{epoch}:%{c_runtime_version}-%{release} +Version: %{c_runtime_version} +Release: %{antlr_version}.%{baserelease}%{?dist} -%description C-devel +%description C-devel Header files for the C bindings for ANTLR-generated parsers %package C-docs +# The content is BSD-3-Clause. Other licenses are due to files installed by +# doxygen. +# api/bc_s.png: GPL-1.0-or-later +# api/bdwn.png: GPL-1.0-or-later +# api/closed.png: GPL-1.0-or-later +# api/doc.png: GPL-1.0-or-later +# api/doxygen.css: GPL-1.0-or-later +# api/doxygen.svg: GPL-1.0-or-later +# api/dynsections.js: MIT +# api/folderclosed.png: GPL-1.0-or-later +# api/folderopen.png: GPL-1.0-or-later +# api/jquery.js: MIT +# api/menu.js: MIT +# api/menudata.js: MIT +# api/nav_f.png: GPL-1.0-or-later +# api/nav_g.png: GPL-1.0-or-later +# api/nav_h.png: GPL-1.0-or-later +# api/navtree.css: GPL-1.0-or-later +# api/navtree.js: MIT +# api/open.png: GPL-1.0-or-later +# api/resize.js: MIT +# api/splitbar.png: GPL-1.0-or-later +# api/sync_off.png: GPL-1.0-or-later +# api/sync_on.png: GPL-1.0-or-later +# api/tab_a.png: GPL-1.0-or-later +# api/tab_b.png: GPL-1.0-or-later +# api/tab_h.png: GPL-1.0-or-later +# api/tab_s.png: GPL-1.0-or-later +# api/tabs.css: GPL-1.0-or-later +License: BSD-3-Clause AND GPL-1.0-or-later AND MIT Summary: API documentation for the C run-time support for ANTLR-generated parsers BuildArch: noarch BuildRequires: graphviz BuildRequires: doxygen Requires: %{name}-C = %{epoch}:%{c_runtime_version}-%{release} -Version: %{c_runtime_version} -Release: %{antlr_version}.%{baserelease}%{?dist} +Version: %{c_runtime_version} +Release: %{antlr_version}.%{baserelease}%{?dist} %description C-docs -This package contains doxygen documentation with instruction -on how to use the C target in ANTLR and complete API description of the -C run-time support for ANTLR-generated parsers. +This package contains doxygen documentation with instruction on how to use the +C target in ANTLR and complete API description of the C run-time support for +ANTLR-generated parsers. -%package C++-devel +%package C++-devel Summary: C++ runtime support for ANTLR-generated parsers -%description C++-devel +%description C++-devel C++ runtime support for ANTLR-generated parsers. -#%package python -#Group: Development/Libraries -#Summary: Python run-time support for ANTLR-generated parsers -#BuildRequires: python-devel -#BuildRequires: python-setuptools-devel -#BuildArch: noarch -#Version: %{python_runtime_version} -# -#%description python -#Python run-time support for ANTLR-generated parsers - - %prep -%setup -q -n antlr3-%{antlr_version} -a 3 +%autosetup -p1 -n antlr3-%{antlr_version} -a 1 + +%conf sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/main/resources/org/antlr/antlr.properties -%patch1 -p1 + +# remove pre-built artifacts +find -type f -a -name *.jar -delete +find -type f -a -name *.class -delete + +%pom_remove_parent %pom_disable_module antlr3-maven-archetype %pom_disable_module gunit @@ -140,16 +217,8 @@ sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/ %pom_disable_module antlr-complete %pom_remove_plugin :maven-source-plugin -%pom_remove_plugin :maven-javadoc-plugin - -# compile for target 1.6, see BZ#842572 -sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resources/pom.xml \ - antlr3-maven-plugin/pom.xml \ - gunit/pom.xml \ - gunit-maven-plugin/pom.xml \ - pom.xml \ - runtime/Java/pom.xml \ - tool/pom.xml +%pom_remove_plugin :maven-enforcer-plugin +%pom_remove_plugin -r :maven-javadoc-plugin # workarounds bug in filtering (Mark invalid) %pom_xpath_remove pom:resource/pom:filtering @@ -161,14 +230,34 @@ sed -i 's/jsr14/1.6/' antlr3-maven-archetype/src/main/resources/archetype-resour %mvn_file :antlr-runtime antlr3-runtime %mvn_file :antlr-maven-plugin antlr3-maven-plugin +%if %{with bootstrap} +# Make the bootstrap JARs and POMs available +mkdir -p .m2/org/antlr/ST4/%{ST4ver1} +cp -p %{SOURCE2} %{SOURCE3} .m2/org/antlr/ST4/%{ST4ver1} +mkdir -p .m2/org/antlr/ST4/%{ST4ver2} +cp -p %{SOURCE4} %{SOURCE5} .m2/org/antlr/ST4/%{ST4ver2} +mkdir -p .m2/org/antlr/antlr/%{bootstrap_version} +cp -p %{SOURCE6} %{SOURCE7} .m2/org/antlr/antlr/%{bootstrap_version} +mkdir -p .m2/org/antlr/antlr-master/%{bootstrap_version} +cp -p %{SOURCE8} .m2/org/antlr/antlr-master/%{bootstrap_version} +mkdir -p .m2/org/antlr/antlr-runtime/%{bootstrap_version} +cp -p %{SOURCE9} %{SOURCE10} .m2/org/antlr/antlr-runtime/%{bootstrap_version} +mkdir -p .m2/org/antlr/antlr3-maven-plugin/%{bootstrap_version} +cp -p %{SOURCE11} %{SOURCE12} .m2/org/antlr/antlr3-maven-plugin/%{bootstrap_version} +mkdir -p .m2/org/antlr/stringtemplate/%{stringtemplatever} +cp -p %{SOURCE13} %{SOURCE14} .m2/org/antlr/stringtemplate/%{stringtemplatever} +mkdir -p .m2/antlr/antlr/%{antlr2_version} +cp -p %{SOURCE15} %{SOURCE16} .m2/antlr/antlr/%{antlr2_version} + +# We don't need the parent POM +%pom_remove_parent .m2/org/antlr/ST4/%{ST4ver1}/ST4-%{ST4ver1}.pom +%pom_remove_parent .m2/org/antlr/ST4/%{ST4ver2}/ST4-%{ST4ver2}.pom +%pom_remove_parent .m2/org/antlr/antlr-master/%{bootstrap_version}/antlr-master-%{bootstrap_version}.pom +%endif + %build %mvn_build -f -## Build the python runtime -#pushd antlr_python_runtime-%{python_runtime_version} -#%{__python} setup.py build -#popd - # Build the C runtime pushd runtime/C autoreconf -i @@ -179,19 +268,21 @@ autoreconf -i %{nil} %endif -sed -i "s/CFLAGS = .*/CFLAGS = $RPM_OPT_FLAGS/" Makefile -make %{?_smp_mflags} +sed -i 's#CFLAGS = .*#CFLAGS = %{build_cflags}#' Makefile +%make_build doxygen -u # update doxygen configuration file doxygen # build doxygen documentation popd - - -# inject OSGi manifests -mkdir -p META-INF -cp -p %{SOURCE9} META-INF/MANIFEST.MF -touch META-INF/MANIFEST.MF -zip runtime/Java/target/antlr-runtime-%{antlr_version}.jar META-INF/MANIFEST.MF +# build ant task +pushd antlr-ant/main/antlr3-task/ +export CLASSPATH=$(build-classpath ant) +javac -encoding ISO-8859-1 -source 1.8 -target 1.8 \ + antlr3-src/org/apache/tools/ant/antlr/ANTLR3.java +jar cvf ant-antlr3.jar \ + -C antlr3-src org/apache/tools/ant/antlr/antlib.xml \ + -C antlr3-src org/apache/tools/ant/antlr/ANTLR3.class +popd %install mkdir -p $RPM_BUILD_ROOT/%{_mandir} @@ -199,18 +290,19 @@ mkdir -p $RPM_BUILD_ROOT/%{_datadir}/antlr %mvn_install -# install wrapper script -%jpackage_script org.antlr.Tool '' '' 'stringtemplate4.jar:antlr3.jar:antlr3-runtime.jar' antlr3 true +# install ant task +install -m 644 antlr-ant/main/antlr3-task/ant-antlr3.jar -D $RPM_BUILD_ROOT%{_javadir}/ant/ant-antlr3.jar +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ant.d +cat > $RPM_BUILD_ROOT%{_sysconfdir}/ant.d/ant-antlr3 << EOF +ant/ant-antlr3 antlr3 +EOF -## install python runtime -#pushd antlr_python_runtime-%{python_runtime_version} -#%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT -#chmod a+x $RPM_BUILD_ROOT%{python_sitelib}/antlr_python_runtime-* -#popd +# install wrapper script +%jpackage_script org.antlr.Tool '' '' 'stringtemplate4/ST4.jar:antlr3.jar:antlr3-runtime.jar' antlr3 true # install C runtime pushd runtime/C -make DESTDIR=$RPM_BUILD_ROOT install +%make_install rm $RPM_BUILD_ROOT%{_libdir}/libantlr3c.{a,la} pushd api/man/man3 for file in `ls -1 * | grep -vi "^antlr3"`; do @@ -232,34 +324,28 @@ popd mkdir -p $RPM_BUILD_ROOT/%{_includedir}/%{name} install -pm 644 runtime/Cpp/include/* $RPM_BUILD_ROOT/%{_includedir}/ -%post C -p /sbin/ldconfig - -%postun C -p /sbin/ldconfig - %files tool -f .mfiles-tool %doc README.txt tool/{LICENSE.txt,CHANGES.txt} %{_bindir}/antlr3 - -#%files python -#%doc tool/LICENSE.txt -#%{python_sitelib}/antlr3/* -#%{python_sitelib}/antlr_python_runtime-* +%{_javadir}/ant/ant-antlr3.jar +%config(noreplace) %{_sysconfdir}/ant.d/ant-antlr3 %files C %doc tool/LICENSE.txt %{_libdir}/libantlr3c.so %files C-devel -%{_mandir}/man3/* -%{_includedir}/*.h +%{_mandir}/man3/ANTLR3* +%{_mandir}/man3/antlr3* +%{_includedir}/antlr3*.h %files C-docs %doc runtime/C/api %files C++-devel %doc tool/LICENSE.txt -%{_includedir}/*.hpp -%{_includedir}/*.inl +%{_includedir}/antlr3*.hpp +%{_includedir}/antlr3*.inl %files java -f .mfiles-java %doc tool/LICENSE.txt @@ -272,6 +358,165 @@ install -pm 644 runtime/Cpp/include/* $RPM_BUILD_ROOT/%{_includedir}/ %doc tool/LICENSE.txt %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 1:3.5.3-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Tue Sep 23 2025 Jerry James - 1:3.5.3-15 +- Remove build dependency on maven-enforcer-plugin + +* Tue Jul 29 2025 jiri vanek - 1:3.5.3-14 +- Rebuilt for java-25-openjdk as preffered jdk + +* Wed Jul 23 2025 Fedora Release Engineering - 1:3.5.3-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Thu Jan 16 2025 Fedora Release Engineering - 1:3.5.3-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Mon Jan 13 2025 Jerry James - 1:3.5.3-11 +- Clarify license of the tool subpackage +- Move configuration actions to %%conf + +* Wed Jul 17 2024 Fedora Release Engineering - 1:3.5.3-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Feb 27 2024 Jiri Vanek - 1:3.5.3-10 +- Rebuilt for java-21-openjdk as system jdk + +* Thu Feb 1 2024 Avi Kivity - 1:3.5.3-9 +- Remove const specifiers in templates that are now flagged by gcc 14. + +* Mon Jan 22 2024 Fedora Release Engineering - 1:3.5.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1:3.5.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1:3.5.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Jun 11 2023 Jerry James - 1:3.5.3-5 +- Remove unneeded maven 2 dependency + +* Wed Jan 18 2023 Fedora Release Engineering - 1:3.5.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Aug 11 2022 Jerry James - 1:3.5.3-3 +- Convert License tag to SPDX + +* Wed Jul 20 2022 Fedora Release Engineering - 1:3.5.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 19 2022 Jerry James - 1:3.5.3-2 +- Remove i686 support (https://fedoraproject.org/wiki/Changes/Drop_i686_JDKs) + +* Sun Apr 10 2022 Jerry James - 1:3.5.3-1 +- Version 3.5.3 +- Drop ancient obsoletes +- Minor spec file cleanups + +* Sat Feb 05 2022 Jiri Vanek - 1:3.5.2-35 +- Rebuilt for java-17-openjdk as system jdk + +* Wed Jan 19 2022 Fedora Release Engineering - 1:3.5.2-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1:3.5.2-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Mar 12 2021 Jerry James - 1:3.5.2-32 +- Add bootstrap conditional (bz 1847093) + +* Tue Jan 26 2021 Fedora Release Engineering - 1:3.5.2-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1:3.5.2-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 10 2020 Jiri Vanek - 1:3.5.2-29 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Wed Jun 03 2020 Fabio Valentini - 1:3.5.2-28 +- Actually apply Patch7. + +* Tue May 12 2020 Jerry James - 1:3.5.2-27 +- Add 0007-update-java-target.patch to fix JDK 11 build + +* Tue May 12 2020 Avi Kivity - 1:3.5.2-27 +- Fix for C++20 mode (#1834782) + +* Sat Apr 25 2020 Fabio Valentini - 1:3.5.2-26 +- Remove unnecessary dependency on deprecated parent pom. + +* Tue Jan 28 2020 Fedora Release Engineering - 1:3.5.2-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Aug 1 2019 Jerry James - 1:3.5.2-24 +- BR ant to fix FTBFS. Thanks to Fabio Valentini for the hint. + +* Wed Jul 24 2019 Fedora Release Engineering - 1:3.5.2-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Apr 27 2019 Jerry James - 1:3.5.2-22 +- Add Debian patches + +* Thu Jan 31 2019 Fedora Release Engineering - 1:3.5.2-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Aug 30 2018 Severin Gehwolf - 1:3.5.2-20 +- Explicit requires for javapackages-tools since antlr3 script uses + java-functions. See RHBZ#1600426. + +* Thu Jul 12 2018 Fedora Release Engineering - 1:3.5.2-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jun 28 2018 Michael Simacek - 1:3.5.2-18 +- Remove ldconfig scriptlets + +* Wed Feb 07 2018 Fedora Release Engineering - 1:3.5.2-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1:3.5.2-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1:3.5.2-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1:3.5.2-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Oct 04 2016 David Geiger - 1:3.5.2-13 +- Fix stringtemplate4 jar classpath in shell script (stringtemplate4/ST4.jar) + +* Tue Sep 27 2016 Michael Simacek - 1:3.5.2-12 +- Fix Java 8 patch + +* Wed Jun 15 2016 Mikolaj Izdebski - 1:3.5.2-11 +- Regenerate build-requires + +* Wed Feb 03 2016 Fedora Release Engineering - 1:3.5.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Nov 24 2015 Mat Booth - 1:3.5.2-10 +- Fix OSGi metadata +- Delete some commented out sections + +* Wed Jun 17 2015 Mat Booth - 1:3.5.2-9 +- Build and ship the antlr3 ant task +- Add provides/obsoletes for separate ant-antlr3 package + +* Tue Jun 16 2015 Fedora Release Engineering - 1:3.5.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Apr 29 2015 Michal Srb - 1:3.5.2-7 +- Fix FTBFS (Resolves: rhbz#1204672) + +* Mon Mar 30 2015 Michael Simacek - 1:3.5.2-6 +- Fix FTBFS + +* Mon Mar 23 2015 Dan HorĂ¡k - 1:3.5.2-5 +- update BR - whole autotools chain is required explicitly + * Fri Oct 31 2014 Yaakov Selkowitz - 1:3.5.2-4 - Avoid timestamp conflicts when updating jar manifest diff --git a/osgi-manifest.patch b/osgi-manifest.patch new file mode 100644 index 0000000..ff9bceb --- /dev/null +++ b/osgi-manifest.patch @@ -0,0 +1,38 @@ +--- a/runtime/Java/pom.xml 2022-04-10 17:09:47.418531841 -0600 ++++ b/runtime/Java/pom.xml 2022-04-10 17:16:58.890381092 -0600 +@@ -81,6 +81,35 @@ + + + ++ ++ org.apache.felix ++ maven-bundle-plugin ++ ++ ++ bundle-manifest ++ process-classes ++ ++ manifest ++ ++ ++ ++ ++ ${project.build.directory}/osgi ++ ++ org.antlr.runtime ++ !org.antlr.stringtemplate,* ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-jar-plugin ++ ++ ++ ${project.build.directory}/osgi/MANIFEST.MF ++ ++ ++ + + + diff --git a/sources b/sources index 1dbfcb6..b2ec866 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -8c644afcdd7c7ec9f255b603d15163db 3.5.2.tar.gz -5f58e5f8c8a052225d57d518d77742fc antlr-javascript-runtime-3.1.zip +SHA512 (antlr3-3.5.3.tar.gz) = c565e1ade7a62bb127df707015afded9a9cea54cbf5488730a327671c57e8718f93f76c4fa28edd856810cb9c7ccbcb27b53a7c8f7e3efc8169e64cfcc535a4c +SHA512 (antlr-javascript-runtime-3.1.zip) = 4bc7129d3eb1d864c05d91bf33d02f0fa03362ddb1b750157be04e5279891272d34b3fb18b421631b74dfafa48723e080b213a9acb993c6f17cec4c9e94f10ed