diff --git a/.gitignore b/.gitignore index fd4950b..52e4b12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1 @@ /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-0.91.1-disable-embedded-ply.patch b/pycparser-0.91.1-disable-embedded-ply.patch new file mode 100644 index 0000000..b9a1655 --- /dev/null +++ b/pycparser-0.91.1-disable-embedded-ply.patch @@ -0,0 +1,38 @@ +diff -Naur eliben-pycparser-82ace14bb612/pycparser/c_lexer.py eliben-pycparser-82ace14bb612.modified/pycparser/c_lexer.py +--- eliben-pycparser-82ace14bb612/pycparser/c_lexer.py 2012-12-29 14:22:23.000000000 +0100 ++++ eliben-pycparser-82ace14bb612.modified/pycparser/c_lexer.py 2013-03-19 23:15:05.074797841 +0100 +@@ -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 -Naur eliben-pycparser-82ace14bb612/pycparser/c_parser.py eliben-pycparser-82ace14bb612.modified/pycparser/c_parser.py +--- eliben-pycparser-82ace14bb612/pycparser/c_parser.py 2012-12-29 14:22:23.000000000 +0100 ++++ eliben-pycparser-82ace14bb612.modified/pycparser/c_parser.py 2013-03-19 23:15:20.338751658 +0100 +@@ -8,7 +8,7 @@ + #------------------------------------------------------------------------------ + import re + +-from .ply import yacc ++from ply import yacc + + from . import c_ast + from .c_lexer import CLexer +diff -Naur eliben-pycparser-82ace14bb612/setup.py eliben-pycparser-82ace14bb612.modified/setup.py +--- eliben-pycparser-82ace14bb612/setup.py 2012-12-29 14:22:23.000000000 +0100 ++++ eliben-pycparser-82ace14bb612.modified/setup.py 2013-03-19 23:14:48.861850227 +0100 +@@ -22,7 +22,7 @@ + classifiers = [ + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 3',], +- packages=['pycparser', 'pycparser.ply'], ++ packages=['pycparser'], + package_data={'pycparser': ['*.cfg']}, + ) + diff --git a/pycparser-0.91.1-tables-sys-path.patch b/pycparser-0.91.1-tables-sys-path.patch new file mode 100644 index 0000000..4b44522 --- /dev/null +++ b/pycparser-0.91.1-tables-sys-path.patch @@ -0,0 +1,12 @@ +diff -up pycparser-release_v2.09.1/pycparser/_build_tables.py.tables-sys-path pycparser-release_v2.09.1/pycparser/_build_tables.py +--- pycparser-release_v2.09.1/pycparser/_build_tables.py.tables-sys-path 2013-07-22 13:17:44.950531002 -0600 ++++ pycparser-release_v2.09.1/pycparser/_build_tables.py 2013-07-22 13:18:29.188526142 -0600 +@@ -17,7 +17,7 @@ ast_gen = ASTCodeGenerator('_c_ast.cfg') + ast_gen.generate(open('c_ast.py', 'w')) + + import sys +-sys.path.extend(['.', '..']) ++sys.path[0:0] = ['.', '..'] + from pycparser import c_parser + + # Generates the tables diff --git a/pycparser-0.91.1-unittests-sys-path.patch b/pycparser-0.91.1-unittests-sys-path.patch new file mode 100644 index 0000000..e786973 --- /dev/null +++ b/pycparser-0.91.1-unittests-sys-path.patch @@ -0,0 +1,24 @@ +# HG changeset patch +# User Scott Tsai +# Date 1358446261 -28800 +# Node ID 12aa73c5da595a08f587c14a74e84bf72f0bf7a0 +# Parent a46039840b0ed8466bebcddae9d4f1df60d3bc98 +tests/all_tests.py: add local paths to the front of sys.path + +While doing pycparser development on a machine that already has an +older version of pycparser installed, we want unit tests to run against +the local copy instead of the system wide copy of pycparser. +This patch adds '.' and '..' to the front of sys.path instead of the back. + +diff --git a/tests/all_tests.py b/tests/all_tests.py +--- a/tests/all_tests.py ++++ b/tests/all_tests.py +@@ -1,7 +1,7 @@ + #!/usr/bin/env python + + import sys +-sys.path.extend(['.', '..']) ++sys.path[0:0] = ['.', '..'] + + import unittest + 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..5686903 100644 --- a/python-pycparser.spec +++ b/python-pycparser.spec @@ -1,74 +1,90 @@ -%bcond_without tests - Name: python-pycparser +Version: 2.09.1 +Release: 5%{?dist} Summary: C parser and AST generator written in Python -Version: 2.22 -Release: %autorelease -License: BSD-3-Clause + +License: BSD 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 +Patch0: pycparser-0.91.1-unittests-sys-path.patch +# Submitted as upstream issue #11: +# https://github.com/eliben/pycparser/issues/11 + +Patch1: pycparser-0.91.1-tables-sys-path.patch +# Submitted as upstream issue #12: +# https://github.com/eliben/pycparser/issues/12 + +Patch100: pycparser-0.91.1-disable-embedded-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 # for unit tests -%if %{with tests} -BuildRequires: gcc -%endif +BuildRequires: python-ply +BuildRequires: dos2unix + +Requires: python-ply %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 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. - %prep -%autosetup -p1 -n pycparser-release_v%{version} +%setup -q -n pycparser-release_v%{version} +%patch0 -p1 -b .unittests-sys-path +%patch1 -p1 -b .tables-sys-path +%patch100 -p1 -b .orig # 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 +%{__python} %{SOURCE1} examples +dos2unix LICENSE %build -pushd pycparser -%{python3} _build_tables.py -popd -%pyproject_wheel +%{__python} setup.py build +cd build/lib/pycparser +%{__python} _build_tables.py %install -%pyproject_install -%pyproject_save_files -l pycparser +%{__python} setup.py install --skip-build --root %{buildroot} %check -%pyproject_check_import -%if %{with tests} -%py3_test_envvars %{python3} -m unittest discover -%endif +%{__python} tests/all_tests.py -%files -n python3-pycparser -f %{pyproject_files} -%doc examples +%files +%doc examples LICENSE +%{python_sitelib}/pycparser/ +%{python_sitelib}/pycparser-*.egg-info %changelog -%autochangelog +* 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..2bc93a8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (release_v2.22.tar.gz) = 1c5be2b83c0a892cafa55a2595942d7048994772dc0fc71d2943004b4198d939c0bf2a164d763d94fe11d532e49371c59c1cf4037c32dab8d3cf0c553a8de64a +b6a3be32513fd0d5d9acce2619abdf98 release_v2.09.1.tar.gz