[python-pycparser] Initial import (#833226).
Eric Smith
brouhaha at fedoraproject.org
Tue Jul 23 15:45:57 UTC 2013
commit d7547ff8ed4441bf9b9025a6ea2ecec5076ba7d7
Author: Eric Smith <brouhaha at fedoraproject.org>
Date: Tue Jul 23 09:45:25 2013 -0600
Initial import (#833226).
.gitignore | 1 +
pycparser-0.91.1-disable-embedded-ply.patch | 38 +++++++++++
pycparser-0.91.1-remove-relative-sys-path.py | 38 +++++++++++
pycparser-0.91.1-tables-sys-path.patch | 12 ++++
pycparser-0.91.1-unittests-sys-path.patch | 24 +++++++
python-pycparser.spec | 90 ++++++++++++++++++++++++++
sources | 1 +
7 files changed, 204 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..52e4b12 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/release_v2.09.1.tar.gz
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-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-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 <scottt.tw at gmail.com>
+# 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/python-pycparser.spec b/python-pycparser.spec
new file mode 100644
index 0000000..5686903
--- /dev/null
+++ b/python-pycparser.spec
@@ -0,0 +1,90 @@
+Name: python-pycparser
+Version: 2.09.1
+Release: 5%{?dist}
+Summary: C parser and AST generator written in Python
+
+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
+
+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 distribuution, when we can remove
+# them during packaging.
+
+BuildArch: noarch
+
+BuildRequires: python2-devel
+
+# for unit tests
+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.
+
+%prep
+%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 -rf pycparser/ply
+
+# examples
+%{__python} %{SOURCE1} examples
+dos2unix LICENSE
+
+%build
+%{__python} setup.py build
+cd build/lib/pycparser
+%{__python} _build_tables.py
+
+%install
+%{__python} setup.py install --skip-build --root %{buildroot}
+
+%check
+%{__python} tests/all_tests.py
+
+%files
+%doc examples LICENSE
+%{python_sitelib}/pycparser/
+%{python_sitelib}/pycparser-*.egg-info
+
+%changelog
+* Mon Jul 22 2013 Eric Smith <brouhaha at fedoraproject.org> 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 <brouhaha at fedoraproject.org> 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 <brouhaha at fedoraproject.org> 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 <josdekloe at gmail.com> 2.09.1-2
+- remove the embedded ply code
+
+* Fri Jan 18 2013 Scott Tsai <scottt.tw at gmail.com> 2.09.1-1
+- upstream 2.09.1
diff --git a/sources b/sources
index e69de29..2bc93a8 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+b6a3be32513fd0d5d9acce2619abdf98 release_v2.09.1.tar.gz
More information about the scm-commits
mailing list