diff --git a/.gitignore b/.gitignore index fd4950b..9898552 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ /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 deleted file mode 100644 index 3966e26..0000000 --- a/changelog +++ /dev/null @@ -1,163 +0,0 @@ -* 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 new file mode 100644 index 0000000..d1e1f53 --- /dev/null +++ b/pycparser-2.10-ply.patch @@ -0,0 +1,38 @@ +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 deleted file mode 100644 index 5abbf72..0000000 --- a/pycparser-unbundle-ply.patch +++ /dev/null @@ -1,51 +0,0 @@ -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 aa370d5..0dfd48f 100644 --- a/python-pycparser.spec +++ b/python-pycparser.spec @@ -1,74 +1,183 @@ -%bcond_without tests +%if 0%{?fedora} +%global with_python3 1 +%endif Name: python-pycparser Summary: C parser and AST generator written in Python -Version: 2.22 -Release: %autorelease -License: BSD-3-Clause +Version: 2.14 +Release: 10%{?dist} +License: BSD +Group: System Environment/Libraries URL: http://github.com/eliben/pycparser -Source0: %{url}/archive/release_v%{version}.tar.gz +Source0: http://github.com/eliben/pycparser/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 distribution, when we can remove +# remove embedded libraries from their distribuution, 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: python3-devel -BuildRequires: python3-ply +BuildRequires: python2-devel python-setuptools # for unit tests -%if %{with tests} -BuildRequires: gcc -%endif +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 %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: %{summary} +Summary: C parser and AST generator written in Python +Group: System Environment/Libraries +Requires: python3-ply +%{?python_provide:%python_provide python3-pycparser} %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 -%autosetup -p1 -n pycparser-release_v%{version} +%setup -q -n pycparser-release_v%{version} +%patch100 -p1 -F5 -b .ply # remove embedded copy of ply -rm -r pycparser/ply +rm -rf pycparser/ply -# Remove relative sys.path from the examples -%{python3} %{SOURCE1} examples - -%generate_buildrequires -%pyproject_buildrequires +# examples +%{__python2} %{SOURCE1} examples +dos2unix LICENSE %build -pushd pycparser -%{python3} _build_tables.py +%py2_build +pushd build/lib/pycparser +%{__python2} _build_tables.py popd -%pyproject_wheel + +%if 0%{?with_python3} +%py3_build +pushd build/lib/pycparser +%{__python3} _build_tables.py +popd +%endif # with_python3 %install -%pyproject_install -%pyproject_save_files -l pycparser +%py2_install + +%if 0%{?with_python3} +%py3_install +%endif # with_python3 %check -%pyproject_check_import -%if %{with tests} -%py3_test_envvars %{python3} -m unittest discover -%endif +%{__python2} tests/all_tests.py + +%if 0%{?with_python3} +%{__python3} tests/all_tests.py +%endif # with_python3 -%files -n python3-pycparser -f %{pyproject_files} +%files -n python2-pycparser +%license LICENSE %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 -%autochangelog +* 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/sources b/sources index 14d685c..01a75b8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (release_v2.22.tar.gz) = 1c5be2b83c0a892cafa55a2595942d7048994772dc0fc71d2943004b4198d939c0bf2a164d763d94fe11d532e49371c59c1cf4037c32dab8d3cf0c553a8de64a +dfa652c012a97ed0168889797873b73f release_v2.14.tar.gz