Switch to pexpect-u upstream with support for python 3

This commit is contained in:
Andrew McNabb 2012-11-21 07:21:50 -07:00
parent 2179c21f95
commit 336970ea60
3 changed files with 109 additions and 22 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
pexpect-2.3.tar.gz
/pexpect-u-2.5.1.tar.gz

View File

@ -1,17 +1,27 @@
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%if 0%{?fedora} > 15
%global with_python3 1
%else
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
%endif
Summary: Pure Python Expect-like module
Name: pexpect
Version: 2.3
Release: 8%{?dist}
Summary: Unicode-aware Pure Python Expect-like module
Name: python-pexpect
Version: 2.5.1
Release: 5%{?dist}
License: MIT
Group: Development/Languages
URL: http://pexpect.sourceforge.net/
Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
BuildRequires: python-devel
BuildArch: noarch
URL: http://pypi.python.org/pypi/pexpect-u
Source0: http://pypi.python.org/packages/source/p/pexpect-u/pexpect-u-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: python2-devel python-nose ed
%if 0%{?with_python3}
BuildRequires: python3-devel python3-nose
Provides: pexpect = %{version}-%{release}
Obsoletes: pexpect <= 2.3-9
%endif # if with_python3
%description
Pexpect is a pure Python module for spawning child applications; controlling
them; and responding to expected patterns in their output. Pexpect works like
@ -23,22 +33,81 @@ passwd, telnet, etc. It can be used to automate setup scripts for duplicating
software package installations on different servers. And it can be used for
automated software testing. Pexpect is in the spirit of Don Libes' Expect, but
Pexpect is pure Python. Unlike other Expect-like modules for Python, Pexpect
does not require TCL or Expect nor does it require C extensions to be compiled.
It should work on any platform that supports the standard Python pty module.
does not require TCL or Expect nor does it require C extensions to be
compiled. It should work on any platform that supports the standard Python
pty module.
%if 0%{?with_python3}
%package -n python3-pexpect
Summary: Unicode-aware Pure Python Expect-like module for Python 3
Group: Development/Languages
%description -n python3-pexpect
Pexpect is a pure Python module for spawning child applications; controlling
them; and responding to expected patterns in their output. Pexpect works like
Don Libes' Expect. Pexpect allows your script to spawn a child application and
control it as if a human were typing commands. This package contains the
python3 version of this module.
Pexpect can be used for automating interactive applications such as ssh, ftp,
passwd, telnet, etc. It can be used to automate setup scripts for duplicating
software package installations on different servers. And it can be used for
automated software testing. Pexpect is in the spirit of Don Libes' Expect, but
Pexpect is pure Python. Unlike other Expect-like modules for Python, Pexpect
does not require TCL or Expect nor does it require C extensions to be
compiled. It should work on any platform that supports the standard Python
pty module.
%endif # with_python3
%prep
%setup -q
%setup -q -n pexpect-u-%{version}
%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
find %{py3dir} -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|'
%endif # with_python3
%build
%{__python} setup.py build
%if 0%{?with_python3}
pushd %{py3dir}
CFLAGS="$RPM_OPT_FLAGS" %{__python3} setup.py build
popd
%endif # with_python3
%check
PYTHONSTARTUP="" nosetests
%if 0%{?with_python3}
pushd %{py3dir}/build/lib
PYTHONSTARTUP="" nosetests-%{python3_version}
popd
%endif # with_python3
%install
rm -rf $RPM_BUILD_ROOT
%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
rm -rf %{buildroot}
%if 0%{?with_python3}
pushd %{py3dir}
%{__python3} setup.py install --skip-build \
--root $RPM_BUILD_ROOT --install-lib %{python3_sitelib}
# Correct some permissions
find examples -type f -exec chmod a-x \{\} \;
rm -rf %{buildroot}%{python3_sitelib}/pexpect/tests
popd
%endif # with_python3
%{__python} setup.py install --skip-build \
--root $RPM_BUILD_ROOT --install-lib %{python_sitelib}
rm -rf ${buildroot}%{python_sitelib}/setuptools/tests
# Correct some permissions
find examples -type f -exec chmod a-x \{\} \;
chmod 755 $RPM_BUILD_ROOT%{python_sitelib}/FSM.py
%clean
rm -rf $RPM_BUILD_ROOT
@ -47,13 +116,30 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root)
%doc README doc examples LICENSE
%{python_sitelib}/*
%exclude %{python_sitelib}/pexpect/tests/
%if 0%{?with_python3}
%files -n python3-pexpect
%doc README doc examples LICENSE
%{python3_sitelib}/*
%exclude %{python3_sitelib}/pexpect/tests/
%endif # with_python3
%changelog
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Nov 20 2012 Andrew McNabb <amcnabb@mcnabbs.org> - 2.5.1-5
- Exclude test scripts from the files list
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Nov 20 2012 Andrew McNabb <amcnabb@mcnabbs.org> - 2.5.1-4
- Moved unit tests to a check section
* Tue Nov 20 2012 Andrew McNabb <amcnabb@mcnabbs.org> - 2.5.1-3
- Added unit tests and fixed metadata fields
* Tue Nov 20 2012 Andrew McNabb <amcnabb@mcnabbs.org> - 2.5.1-2
- Added versions to the obsoletes and provides fields
* Tue Nov 20 2012 Andrew McNabb <amcnabb@mcnabbs.org> - 2.5.1-1
- Updated to version 2.5.1 (pexpect-u fork) and added support for Python 3
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.3-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

View File

@ -1 +1 @@
bf107cf54e67bc6dec5bea1f3e6a65c3 pexpect-2.3.tar.gz
7c916a9f42d636ec6aec39f7cdd96eb5 pexpect-u-2.5.1.tar.gz