[scipy] Add patch from upstream to fix python3.3 issues in linalg routines
Orion Poplawski
orion at fedoraproject.org
Thu Feb 14 04:28:29 UTC 2013
commit 86c67932b91b9608c41f4534769254a9ac8364c0
Author: Orion Poplawski <orion at cora.nwra.com>
Date: Wed Feb 13 21:28:10 2013 -0700
Add patch from upstream to fix python3.3 issues in linalg routines
scipy-linalg.patch | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++
scipy.spec | 11 +++++-
2 files changed, 109 insertions(+), 2 deletions(-)
---
diff --git a/scipy-linalg.patch b/scipy-linalg.patch
new file mode 100644
index 0000000..c90d9c4
--- /dev/null
+++ b/scipy-linalg.patch
@@ -0,0 +1,100 @@
+diff -up scipy-0.11.0/scipy/linalg/flapack.pyf.src.linalg scipy-0.11.0/scipy/linalg/flapack.pyf.src
+--- scipy-0.11.0/scipy/linalg/flapack.pyf.src.linalg 2012-09-10 15:37:39.000000000 -0600
++++ scipy-0.11.0/scipy/linalg/flapack.pyf.src 2013-02-13 21:25:50.684650798 -0700
+@@ -1470,7 +1470,7 @@ subroutine <prefix2>sbevx(ab,ldab,comput
+ !* If JOBZ = 'V', the N-by-N orthogonal matrix used in the
+ !* reduction to tridiagonal form.
+ !* If JOBZ = 'N', the array Q is not referenced.
+- integer intent(hide),depend(n) :: ldq=(compute_v?n:1)
++ integer intent(hide),depend(n,compute_v) :: ldq=(compute_v?n:1)
+ <ftype2> dimension(ldq,ldq),intent(hide),depend(ldq) :: q
+
+
+@@ -1495,8 +1495,8 @@ subroutine <prefix2>sbevx(ab,ldab,comput
+
+ <ftype2> dimension(n),intent(out),depend(n) :: w
+
+- <ftype2> dimension(ldz,mmax),intent(out) :: z
+- integer intent(hide),depend(n) :: ldz=(compute_v?n:1)
++ <ftype2> dimension(ldz,mmax),depend(ldz,mmax),intent(out) :: z
++ integer intent(hide),depend(n,compute_v) :: ldz=(compute_v?n:1)
+
+ ! We use the mmax parameter to fix the size of z
+ ! (only if eigenvalues are requested)
+@@ -1507,12 +1507,12 @@ subroutine <prefix2>sbevx(ab,ldab,comput
+ ! number of eigenvalues in the interval in advance.
+ ! As default we use the maximum value
+ ! but the user should use an appropriate mmax.
+- integer intent(in),depend(n) :: mmax=(compute_v?(range==2?(iu-il+1):n):1)
++ integer intent(in),depend(n,iu,il,compute_v,range) :: mmax=(compute_v?(range==2?(iu-il+1):n):1)
+ integer intent(out) :: m
+
+- <ftype2> dimension(7*n),intent(hide) :: work
+- integer dimension(5*n),intent(hide) :: iwork
+- integer dimension((compute_v?n:1)),intent(out) :: ifail
++ <ftype2> dimension(7*n),depend(n),intent(hide) :: work
++ integer dimension(5*n),depend(n),intent(hide) :: iwork
++ integer dimension((compute_v?n:1)),depend(n,compute_v),intent(out) :: ifail
+ integer intent(out):: info
+ end subroutine <prefix2>sbevx
+
+@@ -1590,7 +1590,7 @@ subroutine <prefix2c>hbevx(ab,ldab,compu
+ !* If JOBZ = 'V', the N-by-N orthogonal matrix used in the
+ !* reduction to tridiagonal form.
+ !* If JOBZ = 'N', the array Q is not referenced.
+- integer intent(hide),depend(n) :: ldq=(compute_v?n:1)
++ integer intent(hide),depend(n,compute_v) :: ldq=(compute_v?n:1)
+ <ftype2c> dimension(ldq,ldq),intent(hide),depend(ldq) :: q
+
+
+@@ -1615,8 +1615,8 @@ subroutine <prefix2c>hbevx(ab,ldab,compu
+
+ <ftype2> dimension(n),intent(out),depend(n) :: w
+
+- <ftype2c> dimension(ldz,mmax),intent(out) :: z
+- integer intent(hide),depend(n) :: ldz=(compute_v?n:1)
++ <ftype2c> dimension(ldz,mmax),depend(ldz,mmax),intent(out) :: z
++ integer intent(hide),depend(n,compute_v) :: ldz=(compute_v?n:1)
+
+ ! We use the mmax parameter to fix the size of z
+ ! (only if eigenvalues are requested)
+@@ -1627,13 +1627,13 @@ subroutine <prefix2c>hbevx(ab,ldab,compu
+ ! number of eigenvalues in the interval in advance.
+ ! As default we use the maximum value
+ ! but the user should use an appropriate mmax.
+- integer intent(in),depend(n) :: mmax=(compute_v?(range==2?(iu-il+1):n):1)
++ integer intent(in),depend(n,iu,il,compute_v,range) :: mmax=(compute_v?(range==2?(iu-il+1):n):1)
+ integer intent(out) :: m
+
+- <ftype2c> dimension(n),intent(hide) :: work
+- <ftype2> dimension(7*n),intent(hide) :: rwork
+- integer dimension(5*n),intent(hide) :: iwork
+- integer dimension((compute_v?n:1)),intent(out) :: ifail
++ <ftype2c> dimension(n),depend(n),intent(hide) :: work
++ <ftype2> dimension(7*n),depend(n),intent(hide) :: rwork
++ integer dimension(5*n),depend(n),intent(hide) :: iwork
++ integer dimension((compute_v?n:1)),depend(n,compute_v),intent(out) :: ifail
+ integer intent(out):: info
+ end subroutine <prefix2c>hbevx
+
+diff -up scipy-0.11.0/scipy/sparse/linalg/eigen/arpack/arpack.pyf.src.linalg scipy-0.11.0/scipy/sparse/linalg/eigen/arpack/arpack.pyf.src
+--- scipy-0.11.0/scipy/sparse/linalg/eigen/arpack/arpack.pyf.src.linalg 2012-09-10 15:37:41.000000000 -0600
++++ scipy-0.11.0/scipy/sparse/linalg/eigen/arpack/arpack.pyf.src 2013-02-13 21:25:50.686650709 -0700
+@@ -29,7 +29,7 @@ python module _arpack ! in
+ character :: howmny
+ logical dimension(ncv) :: select
+ <_rd> dimension(nev),intent(out),depend(nev) :: d
+- <_rd> dimension(n,nev),intent(out),depend(nev) :: z
++ <_rd> dimension(n,nev),intent(out),depend(n,nev) :: z
+ integer optional,check(shape(z,0)==ldz),depend(z) :: ldz=shape(z,0)
+ <_rd> :: sigma
+ character :: bmat
+@@ -121,7 +121,7 @@ python module _arpack ! in
+ character :: howmny
+ logical dimension(ncv) :: select
+ <_cd> dimension(nev),depend(nev),intent(out) :: d
+- <_cd> dimension(n,nev), depend(nev),intent(out) :: z
++ <_cd> dimension(n,nev), depend(n,nev),intent(out) :: z
+ integer optional,check(shape(z,0)==ldz),depend(z) :: ldz=shape(z,0)
+ <_cd> :: sigma
+ <_cd> dimension(3 * ncv),depend(ncv) :: workev
diff --git a/scipy.spec b/scipy.spec
index 4dd9e03..69e1a07 100644
--- a/scipy.spec
+++ b/scipy.spec
@@ -16,12 +16,15 @@
Summary: Scipy: Scientific Tools for Python
Name: scipy
Version: 0.11.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Group: Development/Libraries
License: BSD and LGPLv2+
Url: http://www.scipy.org
Source0: http://prdownloads.sourceforge.net/scipy/%{name}-%{version}.tar.gz
+# Upstream patch from https://github.com/scipy/scipy/pull/404/commits to fix
+# python3.3 issues
+Patch0: scipy-linalg.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: numpy, python-devel,f2py
@@ -69,6 +72,7 @@ leading scientists and engineers.
%prep
%setup -q -n %{name}-%{version}
+%patch0 -p1 -b .linalg
cat > site.cfg << EOF
[amd]
@@ -116,7 +120,7 @@ env CFLAGS="$RPM_OPT_FLAGS" ATLAS=%{_libdir}/atlas FFTW=%{_libdir} BLAS=%{_libdi
pushd %{py3dir}
mkdir test
cd test
-#PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} python3 -c "import scipy; scipy.test('full')"
+PYTHONPATH=$RPM_BUILD_ROOT%{python3_sitearch} python3 -c "import scipy; scipy.test('full')"
popd
%endif # with_python3
@@ -145,6 +149,9 @@ rm -rf $RPM_BUILD_ROOT
%endif # with_python3
%changelog
+* Wed Feb 13 2013 Orion Poplawski <orion at cora.nwra.com> - 0.11.0-4
+- Add patch from upstream to fix python3.3 issues in linalg routines
+
* Tue Feb 12 2013 Orion Poplawski <orion at cora.nwra.com> - 0.11.0-3
- Disable python3 tests for now
More information about the scm-commits
mailing list