diff --git a/.antlr.metadata b/.antlr.metadata new file mode 100644 index 0000000..14176b2 --- /dev/null +++ b/.antlr.metadata @@ -0,0 +1 @@ +3bec329f1c7c9a3d2af1e2389f2e0ed479798a06 antlr-2.7.7.tar.gz diff --git a/.gitignore b/.gitignore index 95a8082..43a5701 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ SOURCES/antlr-2.7.7.tar.gz +/antlr-2.7.7.tar.gz diff --git a/antlr-build.xml b/antlr-build.xml index eadf11b..d280255 100644 --- a/antlr-build.xml +++ b/antlr-build.xml @@ -60,7 +60,8 @@ version="true" packagenames="${packagenames}" splitindex="true" - use="true"> + use="true" + additionalparam="-Xdoclint:none"> diff --git a/antlr.spec b/antlr.spec index ff050a9..c66a0dd 100644 --- a/antlr.spec +++ b/antlr.spec @@ -1,36 +1,47 @@ +%bcond_without doxygen +%bcond_without python + %global debug_package %{nil} # since we have only a static library -Summary: ANother Tool for Language Recognition -Name: antlr -Version: 2.7.7 -Release: 30%{?dist} -Epoch: 0 -License: Public Domain -URL: http://www.antlr.org/ -Group: Development/Tools -Source0: http://www.antlr2.org/download/antlr-%{version}.tar.gz -Source1: %{name}-build.xml -Source2: %{name}-script -Source3: http://repo2.maven.org/maven2/%{name}/%{name}/%{version}/%{name}-%{version}.pom -Patch1: %{name}-%{version}-newgcc.patch +Summary: ANother Tool for Language Recognition +Name: antlr +Version: 2.7.7 +Release: 56%{?dist} +Epoch: 0 +License: ANTLR-PD +URL: http://www.antlr2.org/ +# ./generate-tarball.sh +Source0: antlr-%{version}.tar.gz +Source1: %{name}-build.xml +Source2: %{name}-script +Source3: http://repo2.maven.org/maven2/antlr/antlr/%{version}/%{name}-%{version}.pom +# Repack the tarball without prebuilt binaries of unknown origin +Source4: generate-tarball.sh +Patch1: %{name}-%{version}-newgcc.patch # see BZ#848662 -Patch2: antlr-examples-license.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot +Patch2: antlr-examples-license.patch -%ifarch %ix86 x86_64 ia64 armv4l sparcv9 alpha s390x ppc ppc64 +%ifarch %{mono_arches} %if ! 0%{?rhel} >= 6 -BuildRequires: mono-core -BuildRequires: mono-winforms +BuildRequires: mono-core +BuildRequires: mono-winforms %endif %endif -BuildRequires: ant -BuildRequires: java-javadoc -BuildRequires: jpackage-utils -BuildRequires: java-devel >= 1:1.7.0 - -Requires: jpackage-utils -Requires: java >= 1:1.7.0 +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: ant +BuildRequires: java-devel >= 1:1.7.0 +BuildRequires: java-javadoc +BuildRequires: javapackages-local +%if %{with doxygen} +BuildRequires: doxygen graphviz +%endif +%if %{with python} +# Do not support Python3 +BuildRequires: python2-devel +BuildRequires: python2-setuptools +%endif %description ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a @@ -39,65 +50,66 @@ compilers, and translators from grammatical descriptions containing C++ or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. -%package tool -Group: Development/Tools -Summary: ANother Tool for Language Recognition -Provides: %{name} = %{version}-%{release} -Obsoletes: %{name} < %{version}-%{release} -Requires: jpackage-utils -Requires: java >= 1:1.7.0 -BuildArch: noarch +%package tool +Summary: ANother Tool for Language Recognition +Provides: %{name} = %{version}-%{release} +# Explicit requires for javapackages-tools since antlr-script +# uses /usr/share/java-utils/java-functions +Requires: javapackages-tools +BuildArch: noarch -%description tool +%description tool ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing C++ or Java actions [You can use PCCTS 1.xx to generate C-based parsers]. -%package manual -Group: Development/Tools -Summary: Manual for %{name} -BuildArch: noarch +%package manual +Summary: Manual for %{name} +BuildArch: noarch -%description manual +%description manual Documentation for %{name}. -%package javadoc -Group: Documentation -Summary: Javadoc for %{name} -BuildArch: noarch +%package javadoc +Summary: Javadoc for %{name} +BuildArch: noarch -%description javadoc +%description javadoc Javadoc for %{name}. -%package C++ -Group: Development/Libraries -Summary: C++ bindings for antlr2 generated parsers -Provides: antlr-static = %{version}-%{release} +%package C++ +Summary: C++ bindings for antlr2 generated parsers +Provides: antlr-static = %{version}-%{release} -%description C++ +%description C++ This package provides a static C++ library for parsers generated by ANTLR2. -%package C++-doc -Group: Documentation -Summary: Documentation for C++ bindings for antlr2 generated parsers -BuildRequires: doxygen -BuildArch: noarch +%if %{with doxygen} +%package C++-doc +Summary: Documentation for C++ bindings for antlr2 generated parsers +BuildArch: noarch -%description C++-doc +%description C++-doc This package contains the documentation for the C++ bindings for parsers generated by ANTLR2. +%endif -%package python -Group: Development/Libraries -Summary: Python runtime support for ANTLR-generated parsers -BuildRequires: python2-devel -BuildRequires: python-setuptools-devel -BuildArch: noarch +%if %{with python} +%package -n python2-%{name} +Summary: Python 2 runtime support for ANTLR-generated parsers +%{?python_provide:%python_provide python2-%{name}} -%description python +# This can be removed in Fedora 30 +Provides: %{name}-python = %{version}-%{release} +Obsoletes: %{name}-python < 2.7.7-48 + +BuildArch: noarch + +%description -n python2-%{name} Python runtime support for ANTLR-generated parsers +%endif %prep %setup -q @@ -109,112 +121,189 @@ cp -p %{SOURCE1} build.xml # CRLF->LF sed -i 's/\r//' LICENSE.txt +# set jar location +%mvn_file %{name}:%{name} %{name} + %build ant -Dj2se.apidoc=%{_javadocdir}/java -cp work/lib/antlr.jar . # make expects to find it here +# make expects to find it here +cp work/lib/antlr.jar . export CLASSPATH=. %configure --without-examples make CXXFLAGS="${CXXFLAGS} -fPIC" DEBUG=1 verbose=1 -rm antlr.jar # no longer needed +# no longer needed +rm antlr.jar # fix doc permissions and remove Makefiles rm doc/{Makefile,Makefile.in} chmod 0644 doc/* +%if %{with doxygen} # generate doxygen docs for C++ bindings pushd lib/cpp - doxygen doxygen.cfg - find gen_doc -type f -exec chmod 0644 {} \; + doxygen doxygen.cfg + find gen_doc -type f -exec chmod 0644 {} \; popd +%endif +%if %{with python} # build python cd lib/python -%{__python} setup.py build +%py2_build cd ../../ +%endif %install -rm -rf $RPM_BUILD_ROOT +# jars, POM and depmap +%mvn_artifact %{SOURCE3} work/lib/%{name}.jar +%mvn_alias %{name}:%{name} %{name}:%{name}all +%mvn_install -J work/api + mkdir -p $RPM_BUILD_ROOT{%{_includedir}/%{name},%{_libdir},%{_bindir}} - -# jars -mkdir -p $RPM_BUILD_ROOT%{_javadir} -cp -p work/lib/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar -(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done) - # script install -p -m 755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/antlr -# C++ lib and headers - +# C++ lib and headers, antlr-config install -p -m 644 lib/cpp/antlr/*.hpp $RPM_BUILD_ROOT%{_includedir}/%{name} install -p -m 644 lib/cpp/src/libantlr.a $RPM_BUILD_ROOT%{_libdir} +install -p -m 755 scripts/antlr-config $RPM_BUILD_ROOT%{_bindir} -# javadoc -mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} -cp -pr work/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} -ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} - +%if %{with python} # python cd lib/python -%{__python} setup.py install -O1 --skip-build --root %{buildroot} +%py2_install cd ../.. +%endif -# POM and depmap -install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir} -install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom -%add_maven_depmap -a antlr:antlrall -%clean -rm -rf $RPM_BUILD_ROOT - -%files tool -%defattr(-,root,root,-) -%doc LICENSE.txt -%{_javadir}/%{name}*.jar +%files tool -f .mfiles +%license LICENSE.txt %{_bindir}/antlr -%{_mavenpomdir}/JPP-%{name}.pom -%{_mavendepmapfragdir}/%{name} # this is actually a development package for the C++ target # as we ship only a static library, it doesn't make sense # to have a separate -devel package for the headers %files C++ -%defattr(-,root,root,-) +%license LICENSE.txt %{_includedir}/%{name} %{_libdir}/libantlr.a +%{_bindir}/antlr-config +%if %{with doxygen} %files C++-doc -%defattr(-,root,root,-) +%license LICENSE.txt %doc lib/cpp/gen_doc/html/ +%endif %files manual -%defattr(-,root,root,-) +%license LICENSE.txt %doc doc/* -%files javadoc -%defattr(-,root,root,-) -%doc %{_javadocdir}/%{name}-%{version} -%doc %{_javadocdir}/%{name} +%files javadoc -f .mfiles-javadoc +%license LICENSE.txt -%files python -%defattr(-,root,root,-) -%{python_sitelib}/antlr/* -%{python_sitelib}/antlr-* +%if %{with python} +%files -n python2-%{name} +%license LICENSE.txt +%{python2_sitelib}/antlr/* +%{python2_sitelib}/antlr-* +%endif %changelog -* Fri Mar 14 2014 Mikolaj Izdebski - 0:2.7.7-30 -- Don't install antlr-config script -- Resolves: rhbz#1076406 +* Mon Jul 30 2018 Severin Gehwolf - 0:2.7.7-56 +- Add explicit requirement of javapackages-tools. -* Fri Jan 24 2014 Daniel Mach - 02.7.7-29 -- Mass rebuild 2014-01-24 +* Tue Jul 24 2018 Michael Simacek - 0:2.7.7-55 +- Repack the tarball without binaries -* Fri Dec 27 2013 Daniel Mach - 02.7.7-28 -- Mass rebuild 2013-12-27 +* Thu Jul 12 2018 Fedora Release Engineering - 0:2.7.7-54 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild -* Fri Jun 28 2013 Mikolaj Izdebski - 0:2.7.7-27 -- Rebuild to regenerate API documentation -- Resolves: CVE-2013-1571 +* Wed Feb 07 2018 Fedora Release Engineering - 0:2.7.7-53 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Nov 7 2017 Mikolaj Izdebski - 0:2.7.7-52 +- Switch to new license tag: ANTLR-PD + +* Sat Sep 23 2017 Mikolaj Izdebski - 0:2.7.7-51 +- Conditionally allow building without C++ docs + +* Wed Aug 02 2017 Fedora Release Engineering - 0:2.7.7-50 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0:2.7.7-49 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Wed Jul 12 2017 Miro HronĨok - 0:2.7.7-48 +- Proper python2 subpackage name + +* Thu Feb 16 2017 Michael Simacek - 0:2.7.7-47 +- Add conditional for python + +* Wed Feb 15 2017 Mikolaj Izdebski - 0:2.7.7-46 +- Generalize requires on python2 packages + +* Fri Feb 10 2017 Fedora Release Engineering - 0:2.7.7-45 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 31 2017 Mikolaj Izdebski - 0:2.7.7-44 +- Add missing build-requires on GCC + +* Tue Jul 19 2016 Fedora Release Engineering - 0:2.7.7-43 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Tue Mar 01 2016 gil cattaneo 0:2.7.7-42 +- fix URL field (rhbz#1313275) + +* Mon Feb 29 2016 gil cattaneo 0:2.7.7-41 +- use python macros + +* Wed Feb 03 2016 Fedora Release Engineering - 0:2.7.7-40 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Oct 02 2015 gil cattaneo 0:2.7.7-39 +- adapt to current guideline +- remove some rpmlint problems +- disable javadoc doclint +- introduce license macro + +* Fri Aug 21 2015 Marcin Juszkiewicz - 0:2.7.7-38 +- use %%{mono_archs} instead of hardcoding list (rhbz#1255726) + +* Tue Jun 16 2015 Fedora Release Engineering - 0:2.7.7-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Apr 24 2015 Orion Poplawski - 0:2.7.7-36 +- Rebuild for gcc 5 C++11 ABI again + +* Sun Feb 22 2015 Orion Poplawski - 0:2.7.7-35 +- Rebuild for gcc 5 C++11 ABI + +* Fri Aug 15 2014 Fedora Release Engineering - 0:2.7.7-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jun 30 2014 Toshio Kuratomi - 2.7.7-33 +- Change python-setuptools-devel BR into python-setuptools. + +* Sat Jun 07 2014 Fedora Release Engineering - 0:2.7.7-32 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed May 21 2014 Mikolaj Izdebski - 0:2.7.7-31 +- Use .mfiles generated during build + +* Tue Mar 04 2014 Stanislav Ochotnicky - 0:2.7.7-30 +- Use Requires: java-headless rebuild (#1067528) + +* Mon Nov 11 2013 Stanislav Ochotnicky - 0:2.7.7-29 +- Do not install versioned jar (#1022080) +- Install LICENSE files in each independent subpackage +- Minor spec cleanups + +* Fri Nov 08 2013 Marek Goldmann - 0:2.7.7-28 +- Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 0:2.7.7-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Wed Feb 13 2013 Fedora Release Engineering - 0:2.7.7-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild diff --git a/sources b/sources index 11d229c..e0b7852 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA1 (antlr-2.7.7.tar.gz) = 802655c343cc7806aaf1ec2177a0e663ff209de1 +SHA512 (antlr-2.7.7.tar.gz) = 7e05d440513663dab1960974ac61694552583bdd20d6eac2bff27f5142b118a26022d910b44312cdac9164b087c7cd4d1c8325e1ec914f9704b3cdd5f4b2b166