[python-pycparser] Add Python 3 support.

Eric Smith brouhaha at fedoraproject.org
Tue Jul 23 22:13:55 UTC 2013


commit 89d533d9628bb14e128da538589afbe40928300b
Author: Eric Smith <brouhaha at fedoraproject.org>
Date:   Tue Jul 23 16:13:17 2013 -0600

    Add Python 3 support.

 python-pycparser.spec |   75 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 68 insertions(+), 7 deletions(-)
---
diff --git a/python-pycparser.spec b/python-pycparser.spec
index 5686903..fc061a9 100644
--- a/python-pycparser.spec
+++ b/python-pycparser.spec
@@ -1,9 +1,15 @@
+%if 0%{?fedora} > 12 || 0%{?rhel} > 6
+%global with_python3 1
+%else
+%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
+%endif
+
 Name:           python-pycparser
-Version:        2.09.1
-Release:        5%{?dist}
 Summary:        C parser and AST generator written in Python
-
+Version:        2.09.1
+Release:        6%{?dist}
 License:        BSD
+Group:          System Environment/Libraries
 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
@@ -23,19 +29,37 @@ Patch100:       pycparser-0.91.1-disable-embedded-ply.patch
 
 BuildArch:      noarch
 
-BuildRequires:  python2-devel
+BuildRequires:  python2-devel python-setuptools
 
 # for unit tests
-BuildRequires:  python-ply
 BuildRequires:  dos2unix
+BuildRequires:  python-ply
+
+%if 0%{?with_python3}
+BuildRequires:  python3-devel python3-setuptools
+# for unit tests
+BuildRequires:  python3-ply       
+%endif # if with_python3
 
-Requires:  python-ply
+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.
 
+%if 0%{?with_python3}
+%package -n python3-pycparser
+Summary:        C parser and AST generator written in Python
+Group:          System Environment/Libraries
+Requires:       python3-ply
+
+%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}
 %patch0 -p1 -b .unittests-sys-path
@@ -49,23 +73,60 @@ rm -rf pycparser/ply
 %{__python} %{SOURCE1} examples
 dos2unix LICENSE
 
+%if 0%{?with_python3}
+rm -rf %{py3dir}
+cp -a . %{py3dir}
+find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!/usr/bin/python|#!%{__python3}|'
+%endif # with_python3
+
 %build
 %{__python} setup.py build
-cd build/lib/pycparser
+pushd build/lib/pycparser
 %{__python} _build_tables.py
+popd
+
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py build
+pushd build/lib/pycparser
+%{__python3} _build_tables.py
+popd
+popd
+%endif # with_python3
 
 %install
 %{__python} setup.py install --skip-build --root %{buildroot}
 
+%if 0%{?with_python3}
+pushd %{py3dir}
+%{__python3} setup.py install --skip-build --root %{buildroot}
+popd
+%endif # with_python3
+
 %check
 %{__python} tests/all_tests.py 
+
+%if 0%{?with_python3}
+%{__python3} tests/all_tests.py 
+pushd %{py3dir}
+popd
+%endif # with_python3
  
 %files
 %doc examples LICENSE
 %{python_sitelib}/pycparser/
 %{python_sitelib}/pycparser-*.egg-info
 
+%if 0%{?with_python3}
+%files -n python3-pycparser
+%{python3_sitelib}/pycparser/
+%{python3_sitelib}/pycparser-*.egg-info
+%endif # with_python3
+
 %changelog
+* Tue Jul 23 2013 Eric Smith <brouhaha at fedoraproject.org> 2.09.1-6
+- Added Python 3 support.
+
 * 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


More information about the scm-commits mailing list