diff --git a/antlr3.spec b/antlr3.spec index a938e3b..6c415d6 100644 --- a/antlr3.spec +++ b/antlr3.spec @@ -1,7 +1,17 @@ %global antlr_version 3.5.2 %global c_runtime_version 3.4 %global javascript_runtime_version 3.1 -%global baserelease 31 +%global baserelease 32 + +# This package needs itself to build. Use this to bootstrap on a new system. +%bcond_without bootstrap + +# 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 Summary: ANother Tool for Language Recognition Name: antlr3 @@ -12,8 +22,25 @@ License: BSD URL: http://www.antlr3.org/ Source0: https://github.com/antlr/antlr3/archive/%{antlr_version}/%{name}-%{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 +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 Patch0: 0001-java8-fix.patch # Generate OSGi metadata @@ -35,10 +62,12 @@ Patch7: 0007-update-java-target.patch BuildRequires: ant BuildRequires: make BuildRequires: maven-local +%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:maven-plugin-api) BuildRequires: mvn(org.apache.maven:maven-project) @@ -140,7 +169,7 @@ Summary: C++ runtime support for ANTLR-generated parsers C++ runtime support for ANTLR-generated parsers. %prep -%setup -q -n antlr3-%{antlr_version} -a 3 +%setup -q -n antlr3-%{antlr_version} -a 1 sed -i "s,\${buildNumber},`cat %{_sysconfdir}/fedora-release` `date`," tool/src/main/resources/org/antlr/antlr.properties %patch0 -p1 %patch1 @@ -175,6 +204,31 @@ find -type f -a -name *.class -delete %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 @@ -277,6 +331,9 @@ install -pm 644 runtime/Cpp/include/* $RPM_BUILD_ROOT/%{_includedir}/ %doc tool/LICENSE.txt %changelog +* 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