From 11554725917234ddf233ddf0cfe5c95e3017ad18 Mon Sep 17 00:00:00 2001 From: Adam Samalik Date: Fri, 5 May 2023 22:34:09 +0200 Subject: [PATCH] import sources --- .gitignore | 1 + pycparser-0.91.1-remove-relative-sys-path.py | 38 ++++ pycparser-2.10-ply.patch | 38 ++++ python-pycparser.spec | 204 +++++++++++++++++++ sources | 1 + 5 files changed, 282 insertions(+) create mode 100644 .gitignore create mode 100644 pycparser-0.91.1-remove-relative-sys-path.py create mode 100644 pycparser-2.10-ply.patch create mode 100644 python-pycparser.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..372378d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/release_v2.19.tar.gz diff --git a/pycparser-0.91.1-remove-relative-sys-path.py b/pycparser-0.91.1-remove-relative-sys-path.py new file mode 100644 index 0000000..20fcb06 --- /dev/null +++ b/pycparser-0.91.1-remove-relative-sys-path.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python + +''' +pycparser examples all contain the following boiler plate code +for running in tree. This script removes them: + +# This is not required if you've installed pycparser into +# your site-packages/ with setup.py +# +sys.path.extend(['.', '..']) +''' + +import sys +import os + +boiler_plate = "sys.path.extend(['.', '..'])\n" +d = sys.argv[1] +for (root, dirs, files) in os.walk(d): + for i in files: + if not i.endswith('.py'): + continue + fname = os.path.join(root, i) + lines = open(fname).readlines() + try: + start = lines.index(boiler_plate) + end = start + except ValueError: + start = None + end = start + if start is not None: + while lines[start-1].startswith('#'): + start -= 1 + + if start is not None and end is not None: + f = open(fname, 'w') + f.writelines(lines[:start]) + f.writelines(lines[end+1:]) + f.close() 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/python-pycparser.spec b/python-pycparser.spec new file mode 100644 index 0000000..53f8c41 --- /dev/null +++ b/python-pycparser.spec @@ -0,0 +1,204 @@ +# Ensure that pycparser uses the same YACC __tabversion__ as python-ply +# package to prevent "yacc table file version is out of date" problem. +%define ply_version %(LC_ALL=C rpm -q --qf '%%{VERSION}' python%{python3_pkgversion}-ply | grep -Eo '^[^.]+\.[^.]+') + +%bcond_without tests + +Name: python-pycparser +Summary: C parser and AST generator written in Python +Version: 2.19 +Release: 3%{?dist} +License: BSD +URL: http://github.com/eliben/pycparser +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 distribuution, when we can remove +# them during packaging. + +BuildArch: noarch +# Exclude i686 arch. Due to a modularity issue it's being added to the +# x86_64 compose of CRB, but we don't want to ship it at all. +# See: https://projects.engineering.redhat.com/browse/RCM-72605 +ExcludeArch: i686 + +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: dos2unix +BuildRequires: python%{python3_pkgversion}-ply +BuildRequires: python%{python3_pkgversion}-rpm-macros + +# for unit tests +%if %{with tests} +BuildRequires: cpp +%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 python%{python3_pkgversion}-pycparser +Summary: C parser and AST generator written in Python +Requires: python%{python3_pkgversion}-ply = %{ply_version} +%{?python_provide:%python_provide python%{python3_pkgversion}-pycparser} + +%description -n python%{python3_pkgversion}-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 +%setup -q -n pycparser-release_v%{version} +%patch100 -p1 -F5 -b .ply + +# remove embedded copy of ply +rm -rf pycparser/ply + +# examples +%{__python3} %{SOURCE1} examples +dos2unix LICENSE + +%build +%py3_build +pushd build/lib/pycparser +%{__python3} _build_tables.py +popd + +%install +%py3_install + +%check +%if %{with tests} +%{__python3} tests/all_tests.py +%endif + +%files -n python%{python3_pkgversion}-pycparser +%license LICENSE +%doc examples +%{python3_sitelib}/pycparser/ +%{python3_sitelib}/pycparser-*.egg-info/ + +%changelog +* Fri Dec 13 2019 Tomas Orsava - 2.19-3 +- Exclude unsupported i686 arch + +* Wed Nov 20 2019 Lumír Balhar - 2.19-2 +- Adjusted for Python 3.8 module in RHEL 8 + +* 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/sources b/sources new file mode 100644 index 0000000..9e5ebdb --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (release_v2.19.tar.gz) = 88fe63c1a7a344c564dfd3b4f99735a4159c8a3f5738bab839943ea7fcbf1f5340f67326550b7e66508ea5862897e5bcdf363c2a8d47eccb50890573a2640a98