From 89d533d9628bb14e128da538589afbe40928300b Mon Sep 17 00:00:00 2001 From: Eric Smith Date: Tue, 23 Jul 2013 16:13:17 -0600 Subject: [PATCH] Add Python 3 support. --- python-pycparser.spec | 77 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 8 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 @@ -Name: python-pycparser -Version: 2.09.1 -Release: 5%{?dist} -Summary: C parser and AST generator written in Python +%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 +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 -Requires: python-ply +%if 0%{?with_python3} +BuildRequires: python3-devel python3-setuptools +# for unit tests +BuildRequires: python3-ply +%endif # if with_python3 + +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 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