diff --git a/.gitignore b/.gitignore index 9898552..fd4950b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ /release_v2.09.1.tar.gz /release_v2.10.tar.gz /release_v2.14.tar.gz +/release_v2.19.tar.gz +/release_v2.20.tar.gz +/release_v2.22.tar.gz diff --git a/changelog b/changelog new file mode 100644 index 0000000..3966e26 --- /dev/null +++ b/changelog @@ -0,0 +1,163 @@ +* Fri Jan 26 2024 Fedora Release Engineering - 2.20-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2.20-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Aug 22 2023 Rob Crittenden - 2.20-12 +- migrated to SPDX license + +* Fri Jul 21 2023 Fedora Release Engineering - 2.20-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 2.20-10 +- Rebuilt for Python 3.12 + +* Fri Jan 20 2023 Fedora Release Engineering - 2.20-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jul 22 2022 Fedora Release Engineering - 2.20-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.20-7 +- Rebuilt for Python 3.11 + +* Fri Jan 21 2022 Fedora Release Engineering - 2.20-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Jul 27 2021 Fedora Release Engineering - 2.20-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jun 02 2021 Python Maint - 2.20-4 +- Rebuilt for Python 3.10 + +* Wed Jan 27 2021 Fedora Release Engineering - 2.20-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jun 05 2020 Miro Hrončok - 2.20-1 +- Update to 2.20 (#1810349) + +* Sat May 23 2020 Miro Hrončok - 2.19-3 +- Rebuilt for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 2.19-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Nov 08 2019 Lumír Balhar - 2.19-1 +- New usptream version 2.19 + +* Sun Oct 20 2019 Miro Hrončok - 2.14-23 +- Subpackage python2-ply has been removed + See https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal + +* Thu Oct 03 2019 Miro Hrončok - 2.14-22 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Thu Aug 15 2019 Miro Hrončok - 2.14-21 +- Rebuilt for Python 3.8 + +* Fri Jul 26 2019 Fedora Release Engineering - 2.14-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 10 2019 Marcel Plch - 2.14-19 +- Avoid invalid unicode escape sequences in Py3.8 + +* Tue Feb 26 2019 Christian Heimes - 2.14-18 +- Add build dependency on cpp for unit tests +- Add dependency on python-ply version to prevent "yacc table file version is out of date" +- Fixes RHBZ#1668230 + +* Sat Feb 02 2019 Fedora Release Engineering - 2.14-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 2.14-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 15 2018 Miro Hrončok - 2.14-15 +- Rebuilt for Python 3.7 + +* Mon Feb 12 2018 Iryna Shcherbina - 2.14-14 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Fri Feb 09 2018 Fedora Release Engineering - 2.14-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Sep 27 2017 Troy Dawson - 2.14-12 +- Cleanup spec file conditionals + +* Thu Jul 27 2017 Fedora Release Engineering - 2.14-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 2.14-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Jan 6 2017 Orion Poplawski - 2.14-9 +- Ship python2-pycparser +- Modernize spec + +* Fri Dec 09 2016 Charalampos Stratakis - 2.14-8 +- Rebuild for Python 3.6 + +* Tue Jul 19 2016 Fedora Release Engineering - 2.14-7 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Fri Jul 8 2016 Tom Callaway - 2.14-6 +- rebuild to update yacctab.py + +* Thu Feb 04 2016 Fedora Release Engineering - 2.14-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Tue Oct 13 2015 Robert Kuska - 2.14-4 +- Rebuilt for Python3.5 rebuild + +* Tue Jul 14 2015 Stephen Gallagher - 2.14-3 +- Rebuild alongside python-ply 3.6 + +* Thu Jun 18 2015 Fedora Release Engineering - 2.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue Jun 09 2015 Nathaniel McCallum - 2.14-1 +- Update to 2.14 + +* Wed Aug 20 2014 Eric Smith 2.10-1 +- Update to latest upstream. + +* Sat Jun 07 2014 Fedora Release Engineering - 2.09.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon May 12 2014 Bohuslav Kabrda - 2.09.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 + +* Sun Aug 04 2013 Fedora Release Engineering - 2.09.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 23 2013 Eric Smith 2.09.1-6 +- Added Python 3 support. + +* Mon Jul 22 2013 Eric Smith 2.09.1-5 +- Renumbered Fedora-specific Patch1 to Patch100 +- Added new Patch1 to fix table generation when the build system + already has a python-pycparser package installed. +- Submitted Patch0 and Patch1 as upstream issues. +- Added comments about patches. + +* Sun Jul 21 2013 Eric Smith 2.09.1-4 +- Upstream repository is now on github. +- Fix rpmlint strange-permission complaint. +- Rename patches, Source1 to all start with pycparser-{version}, to + simplify updating patches for future upstream releases. + +* Sun Jul 21 2013 Eric Smith 2.09.1-3 +- Run _build_tables.py to build the lextab.py and yacctab.py; otherwise + they have to be regenerated at runtime for no benefit. + +* Tue Mar 19 2013 Jos de Kloe 2.09.1-2 +- remove the embedded ply code + +* Fri Jan 18 2013 Scott Tsai 2.09.1-1 +- upstream 2.09.1 diff --git a/pycparser-2.10-ply.patch b/pycparser-2.10-ply.patch deleted file mode 100644 index d1e1f53..0000000 --- a/pycparser-2.10-ply.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff -up pycparser-release_v2.10/pycparser/c_lexer.py.ply pycparser-release_v2.10/pycparser/c_lexer.py ---- pycparser-release_v2.10/pycparser/c_lexer.py.ply 2013-08-03 07:15:32.000000000 -0600 -+++ pycparser-release_v2.10/pycparser/c_lexer.py 2014-08-20 12:40:48.308461164 -0600 -@@ -9,8 +9,8 @@ - import re - import sys - --from .ply import lex --from .ply.lex import TOKEN -+from ply import lex -+from ply.lex import TOKEN - - - class CLexer(object): -diff -up pycparser-release_v2.10/pycparser/c_parser.py.ply pycparser-release_v2.10/pycparser/c_parser.py ---- pycparser-release_v2.10/pycparser/c_parser.py.ply 2013-08-03 07:15:32.000000000 -0600 -+++ pycparser-release_v2.10/pycparser/c_parser.py 2014-08-20 12:40:05.154894980 -0600 -@@ -8,7 +8,7 @@ - #------------------------------------------------------------------------------ - import re - --from .ply import yacc -+from ply import yacc - - from . import c_ast - from .c_lexer import CLexer -diff -up pycparser-release_v2.10/setup.py.ply pycparser-release_v2.10/setup.py ---- pycparser-release_v2.10/setup.py.ply 2013-08-03 07:15:32.000000000 -0600 -+++ pycparser-release_v2.10/setup.py 2014-08-20 12:40:05.154894980 -0600 -@@ -22,7 +22,7 @@ setup( - classifiers = [ - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 3',], -- packages=['pycparser', 'pycparser.ply'], -+ packages=['pycparser'], - package_data={'pycparser': ['*.cfg']}, - ) - diff --git a/pycparser-unbundle-ply.patch b/pycparser-unbundle-ply.patch new file mode 100644 index 0000000..5abbf72 --- /dev/null +++ b/pycparser-unbundle-ply.patch @@ -0,0 +1,51 @@ +diff --git a/pycparser/c_lexer.py b/pycparser/c_lexer.py +index 22c64bc..a97c5d1 100644 +--- a/pycparser/c_lexer.py ++++ b/pycparser/c_lexer.py +@@ -8,8 +8,8 @@ + #------------------------------------------------------------------------------ + import re + +-from .ply import lex +-from .ply.lex import TOKEN ++from ply import lex ++from ply.lex import TOKEN + + + class CLexer(object): +diff --git a/pycparser/c_parser.py b/pycparser/c_parser.py +index d31574a..5fc3544 100644 +--- a/pycparser/c_parser.py ++++ b/pycparser/c_parser.py +@@ -6,7 +6,7 @@ + # Eli Bendersky [https://eli.thegreenplace.net/] + # License: BSD + #------------------------------------------------------------------------------ +-from .ply import yacc ++from ply import yacc + + from . import c_ast + from .c_lexer import CLexer +diff --git a/setup.py b/setup.py +index f7e89bf..f78f559 100644 +--- a/setup.py ++++ b/setup.py +@@ -8,6 +8,8 @@ except ImportError: + from distutils.command.install import install as _install + from distutils.command.sdist import sdist as _sdist + ++import ply ++ + + def _run_build_tables(dir): + from subprocess import check_call +@@ -60,7 +62,8 @@ setup( + 'Programming Language :: Python :: 3.12', + ], + python_requires=">=3.8", +- packages=['pycparser', 'pycparser.ply'], ++ packages=['pycparser'], ++ install_requires=['ply==' + ply.__version__], + package_data={'pycparser': ['*.cfg']}, + cmdclass={'install': install, 'sdist': sdist}, + ) diff --git a/python-pycparser.spec b/python-pycparser.spec index 0dfd48f..aa370d5 100644 --- a/python-pycparser.spec +++ b/python-pycparser.spec @@ -1,183 +1,74 @@ -%if 0%{?fedora} -%global with_python3 1 -%endif +%bcond_without tests Name: python-pycparser Summary: C parser and AST generator written in Python -Version: 2.14 -Release: 10%{?dist} -License: BSD -Group: System Environment/Libraries +Version: 2.22 +Release: %autorelease +License: BSD-3-Clause URL: http://github.com/eliben/pycparser -Source0: http://github.com/eliben/pycparser/archive/release_v%{version}.tar.gz +Source0: %{url}/archive/release_v%{version}.tar.gz Source1: pycparser-0.91.1-remove-relative-sys-path.py -Patch100: pycparser-2.10-ply.patch # This is Fedora-specific; I don't think we should request upstream to -# remove embedded libraries from their distribuution, when we can remove +# remove embedded libraries from their distribution, when we can remove # them during packaging. +# It also ensures that pycparser uses the same YACC __tabversion__ as ply +# package to prevent "yacc table file version is out of date" problem. +Patch100: pycparser-unbundle-ply.patch BuildArch: noarch -BuildRequires: python2-devel python-setuptools +BuildRequires: python3-devel +BuildRequires: python3-ply # for unit tests -BuildRequires: dos2unix -BuildRequires: python-ply >= 3.6 - -%if 0%{?with_python3} -BuildRequires: python3-devel python3-setuptools -# for unit tests -BuildRequires: python3-ply -%endif # if with_python3 +%if %{with tests} +BuildRequires: gcc +%endif %description pycparser is a complete parser for the C language, written in pure Python. It is a module designed to be easily integrated into applications that need to parse C source code. -%package -n python2-pycparser -Summary: C parser and AST generator written in Python -Group: System Environment/Libraries -Requires: python-ply >= 3.6 -%{?python_provide:%python_provide python2-pycparser} - -%description -n python2-pycparser -pycparser is a complete parser for the C language, written in pure Python. -It is a module designed to be easily integrated into applications that -need to parse C source code. - -%if 0%{?with_python3} %package -n python3-pycparser -Summary: C parser and AST generator written in Python -Group: System Environment/Libraries -Requires: python3-ply -%{?python_provide:%python_provide python3-pycparser} +Summary: %{summary} %description -n python3-pycparser pycparser is a complete parser for the C language, written in pure Python. It is a module designed to be easily integrated into applications that need to parse C source code. -%endif # if with_python3 %prep -%setup -q -n pycparser-release_v%{version} -%patch100 -p1 -F5 -b .ply +%autosetup -p1 -n pycparser-release_v%{version} # remove embedded copy of ply -rm -rf pycparser/ply +rm -r pycparser/ply -# examples -%{__python2} %{SOURCE1} examples -dos2unix LICENSE +# Remove relative sys.path from the examples +%{python3} %{SOURCE1} examples + +%generate_buildrequires +%pyproject_buildrequires %build -%py2_build -pushd build/lib/pycparser -%{__python2} _build_tables.py +pushd pycparser +%{python3} _build_tables.py popd - -%if 0%{?with_python3} -%py3_build -pushd build/lib/pycparser -%{__python3} _build_tables.py -popd -%endif # with_python3 +%pyproject_wheel %install -%py2_install - -%if 0%{?with_python3} -%py3_install -%endif # with_python3 +%pyproject_install +%pyproject_save_files -l pycparser %check -%{__python2} tests/all_tests.py - -%if 0%{?with_python3} -%{__python3} tests/all_tests.py -%endif # with_python3 +%pyproject_check_import +%if %{with tests} +%py3_test_envvars %{python3} -m unittest discover +%endif -%files -n python2-pycparser -%license LICENSE +%files -n python3-pycparser -f %{pyproject_files} %doc examples -%{python_sitelib}/pycparser/ -%{python_sitelib}/pycparser-*.egg-info - -%if 0%{?with_python3} -%files -n python3-pycparser -%license LICENSE -%doc examples -%{python3_sitelib}/pycparser/ -%{python3_sitelib}/pycparser-*.egg-info -%endif # with_python3 %changelog -* Sat Feb 11 2017 Fedora Release Engineering - 2.14-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Fri Jan 6 2017 Orion Poplawski - 2.14-9 -- Ship python2-pycparser -- Modernize spec - -* Fri Dec 09 2016 Charalampos Stratakis - 2.14-8 -- Rebuild for Python 3.6 - -* Tue Jul 19 2016 Fedora Release Engineering - 2.14-7 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Fri Jul 8 2016 Tom Callaway - 2.14-6 -- rebuild to update yacctab.py - -* Thu Feb 04 2016 Fedora Release Engineering - 2.14-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Oct 13 2015 Robert Kuska - 2.14-4 -- Rebuilt for Python3.5 rebuild - -* Tue Jul 14 2015 Stephen Gallagher - 2.14-3 -- Rebuild alongside python-ply 3.6 - -* Thu Jun 18 2015 Fedora Release Engineering - 2.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Tue Jun 09 2015 Nathaniel McCallum - 2.14-1 -- Update to 2.14 - -* Wed Aug 20 2014 Eric Smith 2.10-1 -- Update to latest upstream. - -* Sat Jun 07 2014 Fedora Release Engineering - 2.09.1-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Mon May 12 2014 Bohuslav Kabrda - 2.09.1-8 -- Rebuilt for https://fedoraproject.org/wiki/Changes/Python_3.4 - -* Sun Aug 04 2013 Fedora Release Engineering - 2.09.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Tue Jul 23 2013 Eric Smith 2.09.1-6 -- Added Python 3 support. - -* Mon Jul 22 2013 Eric Smith 2.09.1-5 -- Renumbered Fedora-specific Patch1 to Patch100 -- Added new Patch1 to fix table generation when the build system - already has a python-pycparser package installed. -- Submitted Patch0 and Patch1 as upstream issues. -- Added comments about patches. - -* Sun Jul 21 2013 Eric Smith 2.09.1-4 -- Upstream repository is now on github. -- Fix rpmlint strange-permission complaint. -- Rename patches, Source1 to all start with pycparser-{version}, to - simplify updating patches for future upstream releases. - -* Sun Jul 21 2013 Eric Smith 2.09.1-3 -- Run _build_tables.py to build the lextab.py and yacctab.py; otherwise - they have to be regenerated at runtime for no benefit. - -* Tue Mar 19 2013 Jos de Kloe 2.09.1-2 -- remove the embedded ply code - -* Fri Jan 18 2013 Scott Tsai 2.09.1-1 -- upstream 2.09.1 +%autochangelog diff --git a/sources b/sources index 01a75b8..14d685c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -dfa652c012a97ed0168889797873b73f release_v2.14.tar.gz +SHA512 (release_v2.22.tar.gz) = 1c5be2b83c0a892cafa55a2595942d7048994772dc0fc71d2943004b4198d939c0bf2a164d763d94fe11d532e49371c59c1cf4037c32dab8d3cf0c553a8de64a