Compare commits

..

2 Commits
master ... f27

Author SHA1 Message Date
Lumir Balhar
d3f9d62d37 Merge branch 'master' into f27 2018-01-03 13:45:44 +01:00
Christian Dersch
451dc0b7df OpenBLAS-related fixes 2017-11-03 16:02:17 +01:00
5 changed files with 177 additions and 297 deletions

9
.gitignore vendored
View File

@ -23,12 +23,3 @@ scipy-0.7.2.tar.gz
/scipy-0.19.0.tar.xz
/scipy-0.19.1.tar.xz
/scipy-1.0.0.tar.xz
/scipy-1.1.0.tar.gz
/scipy-1.2.0.tar.gz
/scipy-1.2.1.tar.gz
/scipy-1.3.1.tar.gz
/scipy-1.4.1.tar.gz
/scipy-1.5.0.tar.gz
/scipy-1.5.2.tar.gz
/scipy-1.5.3.tar.gz
/scipy-1.5.4.tar.gz

View File

@ -1,56 +1,59 @@
# without means enabled
%bcond_with doc
%global with_python3 1
%global with_doc 1
%{?filter_setup:
%filter_provides_in %{python2_sitearch}.*\.so$
%filter_provides_in %{python3_sitearch}.*\.so$
%filter_setup
}
# Set to pre-release version suffix if building pre-release, else %%{nil}
%global rcver %{nil}
%if 0%{?fedora} >= 33 || 0%{?rhel} >= 9
%global blaslib flexiblas
%global blasvar %{nil}
%else
%global blaslib openblas
%global blasvar p
%endif
Summary: Scientific Tools for Python
Name: scipy
Version: 1.5.4
Release: 2%{?dist}
Version: 1.0.0
Release: 4%{?dist}
Group: Development/Libraries
# BSD -- whole package except:
# Boost -- scipy/special/cephes/scipy_iv.c
# Public Domain -- scipy/odr/__odrpack.c
License: BSD and Boost and Public Domain
Url: http://www.scipy.org/scipylib/index.html
Source0: https://github.com/scipy/scipy/releases/download/v%{version}/scipy-%{version}.tar.gz
Source0: https://github.com/scipy/scipy/releases/download/v%{version}/scipy-%{version}.tar.xz
# https://github.com/scipy/scipy/pull/12899
Patch0: skip-certain-tests-on-32-bit-arches.patch
# https://github.com/scipy/scipy/pull/13130
Patch1: skip-factorial-float-tests-on-py310.patch
BuildRequires: fftw-devel, suitesparse-devel
BuildRequires: %{blaslib}-devel
BuildRequires: gcc-gfortran, swig, gcc-c++
BuildRequires: numpy, python2-devel,f2py
BuildRequires: python2-pytest
BuildRequires: python2-pytest-xdist
BuildRequires: python2-pytest-timeout
BuildRequires: fftw-devel, blas-devel, lapack-devel, suitesparse-devel
%ifarch %{openblas_arches}
BuildRequires: openblas-devel
%else
BuildRequires: atlas-devel
%endif
BuildRequires: gcc-gfortran, swig
BuildRequires: qhull-devel
BuildRequires: /usr/bin/pathfix.py
BuildRequires: pybind11-devel
BuildRequires: python3-pybind11 >= 2.4.0
BuildRequires: python3-numpy, python3-devel, python3-numpy-f2py
%if 0%{?with_python3}
BuildRequires: python3-numpy, python3-devel, python3-f2py
BuildRequires: python3-setuptools
BuildRequires: python3-Cython
BuildRequires: python3-pytest
BuildRequires: python3-pytest-xdist
BuildRequires: python3-pytest-timeout
%if %{with doc}
%endif
%if 0%{?with_doc}
BuildRequires: python2-sphinx
BuildRequires: python2-matplotlib
BuildRequires: python2-numpydoc
%if 0%{?with_python3}
BuildRequires: python3-sphinx
BuildRequires: python3-matplotlib
BuildRequires: python3-numpydoc
%endif
%endif # with_python3
%endif # with_doc
%global _description %{expand:
%description
Scipy is open-source software for mathematics, science, and
engineering. The core library is NumPy which provides convenient and
fast N-dimensional array manipulation. The SciPy library is built to
@ -59,27 +62,66 @@ numerical routines such as routines for numerical integration and
optimization. Together, they run on all popular operating systems, are
quick to install, and are free of charge. NumPy and SciPy are easy to
use, but powerful enough to be depended upon by some of the world's
leading scientists and engineers.}
leading scientists and engineers.
%description %_description
%package -n python3-scipy
%package -n python2-scipy
Summary: Scientific Tools for Python
Requires: python3-numpy, python3-f2py
%{?python_provide:%python_provide python3-scipy}
%description -n python3-scipy %_description
Requires: numpy, f2py
%{?python_provide:%python_provide python2-scipy}
# General provides of plain 'scipy' in F24
Provides: scipy = %{version}-%{release}
Provides: scipy%{?_isa} = %{version}-%{release}
Obsoletes: scipy <= 0.16.0
%description -n python2-scipy
Scipy is open-source software for mathematics, science, and
engineering. The core library is NumPy which provides convenient and
fast N-dimensional array manipulation. The SciPy library is built to
work with NumPy arrays, and provides many user-friendly and efficient
numerical routines such as routines for numerical integration and
optimization. Together, they run on all popular operating systems, are
quick to install, and are free of charge. NumPy and SciPy are easy to
use, but powerful enough to be depended upon by some of the world's
leading scientists and engineers.
%if %{with doc}
%if 0%{?with_doc}
%package -n python2-scipy-doc
Summary: Scientific Tools for Python - documentation
Requires: python2-scipy = %{version}-%{release}
%description -n python2-scipy-doc
HTML documentation for Scipy
%if 0%{?with_python3}
%package -n python3-scipy-doc
Summary: Scientific Tools for Python - documentation
Requires: python3-scipy = %{version}-%{release}
%description -n python3-scipy-doc
HTML documentation for Scipy
%endif
%endif # with_python3
%endif # with_doc
%if 0%{?with_python3}
%package -n python3-scipy
Summary: Scientific Tools for Python
Group: Development/Libraries
License: BSD and LGPLv2+
Requires: python3-numpy, python3-f2py
%{?python_provide:%python_provide python3-scipy}
%description -n python3-scipy
Scipy is open-source software for mathematics, science, and
engineering. The core library is NumPy which provides convenient and
fast N-dimensional array manipulation. The SciPy library is built to
work with NumPy arrays, and provides many user-friendly and efficient
numerical routines such as routines for numerical integration and
optimization. Together, they run on all popular operating systems, are
quick to install, and are free of charge. NumPy and SciPy are easy to
use, but powerful enough to be depended upon by some of the world's
leading scientists and engineers.
%endif # with _python3
%prep
%autosetup -p1 -n %{name}-%{version}%{?rcver}
%setup -q -n %{name}-%{version}%{?rcver}
cat > site.cfg << EOF
[amd]
@ -92,198 +134,131 @@ library_dirs = %{_libdir}
include_dirs = /usr/include/suitesparse
umfpack_libs = umfpack
%ifarch %{openblas_arches}
[openblas]
libraries = %{blaslib}%{blasvar}
library_dirs = %{_libdir}
openblas_libs = openblasp
%endif
EOF
# Docs won't build unless the .dat files are specified here
sed -i 's/metadata = dict(/metadata = dict(package_data={"": ["*.dat"]},/' setup.py
# remove bundled numpydoc
rm doc/sphinxext -r
rm $(grep -rl '/\* Generated by Cython') PKG-INFO
%build
for PY in %{python3_version}; do
# Adding -fallow-argument-mismatch workaround for https://github.com/scipy/scipy/issues/11611
env CFLAGS="$RPM_OPT_FLAGS -lm" \
%if 0%{?fedora} >= 32 || 0%{?rhel} >= 9
FFLAGS="$RPM_OPT_FLAGS -fPIC -fallow-argument-mismatch" \
%else
%if 0%{?with_python3}
env CFLAGS="$RPM_OPT_FLAGS" \
FFLAGS="$RPM_OPT_FLAGS -fPIC" \
%endif
%ifarch %{openblas_arches}
OPENBLAS=%{_libdir} \
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%{_bindir}/python$PY setup.py config_fc \
--fcompiler=gnu95 --noarch \
build
%if %{with doc}
pushd doc
export PYTHONPATH=$(echo ../build/lib.linux-*-$PY/)
make html SPHINXBUILD=sphinx-build-$PY
rm -rf build/html/.buildinfo
mv build build-$PY
popd
%else
ATLAS=%{_libdir}/atlas \
%endif
done
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%__python3 setup.py config_fc \
--fcompiler=gnu95 --noarch \
%if 0%{?with_doc}
build_sphinx
rm -r build/sphinx/html/.buildinfo
mv build/sphinx build/sphinx-%{python3_version}
%else
build
%endif # with_doc
%endif # with _python3
env CFLAGS="$RPM_OPT_FLAGS" \
FFLAGS="$RPM_OPT_FLAGS -fPIC" \
%ifarch %{openblas_arches}
OPENBLAS=%{_libdir} \
%else
ATLAS=%{_libdir}/atlas \
%endif
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%__python2 setup.py config_fc \
--fcompiler=gnu95 --noarch \
%if 0%{?with_doc}
build_sphinx
rm -r build/sphinx/html/.buildinfo
mv build/sphinx build/sphinx-%{python2_version}
%else
build
%endif # with_doc
%install
%py3_install
# Some files got ambiguous python shebangs, we fix them after everything else is done
pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch}
# first install python3 so the binaries are overwritten by the python2 ones
%if 0%{?with_python3}
env CFLAGS="$RPM_OPT_FLAGS" \
FFLAGS="$RPM_OPT_FLAGS -fPIC" \
%ifarch %{openblas_arches}
OPENBLAS=%{_libdir} \
%else
ATLAS=%{_libdir}/atlas \
%endif
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%__python3 setup.py install --root=$RPM_BUILD_ROOT
%endif # with_python3
env CFLAGS="$RPM_OPT_FLAGS" \
FFLAGS="$RPM_OPT_FLAGS -fPIC" \
%ifarch %{openblas_arches}
OPENBLAS=%{_libdir} \
%else
ATLAS=%{_libdir}/atlas \
%endif
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%__python2 setup.py install --root=$RPM_BUILD_ROOT
%check
# check against the reference BLAS/LAPACK
export FLEXIBLAS=netlib
%ifarch s390x
# skip failing tests on s390x for now
export PYTEST_ADDOPTS="-k '\
not (TestNoData and test_nodata) and \
not test_fortranfile_read_mixed_record and \
not test_kde_1d and \
not test_kde_1d_weighted and \
not test_kde_2d and \
not test_kde_2d_weighted and \
not test_gaussian_kde_subclassing and \
not test_gaussian_kde_covariance_caching and \
not test_kde_integer_input and \
not test_pdf_logpdf and \
not test_pdf_logpdf_weighted'"
%endif
# Skip all tests on s390x because they hangs unexpectedly and randomly
# and pytest-timeout has no effect. Note that the outcome of the tests
# is ignored anyway so by disabling the test for s390x we are not doing
# anything more dangerous.
%ifnarch s390x
%if 0%{?with_python3}
pushd %{buildroot}/%{python3_sitearch}
%{pytest} --timeout=500 scipy --numprocesses=auto
# Remove test remnants
rm -rf gram{A,B}
py.test-%{python3_version} --timeout=300 -k "not test_denormals" scipy || :
popd
%endif # with_python3
pushd %{buildroot}/%{python2_sitearch}
py.test-%{python2_version} --timeout=300 -k "not test_denormals" scipy || :
popd
%endif # ifnarch s390x
%files -n python2-scipy
%doc LICENSE.txt
%{python2_sitearch}/scipy
%{python2_sitearch}/*.egg-info
%if 0%{?with_doc}
%files -n python2-scipy-doc
%license LICENSE.txt
%doc build/sphinx-%{python2_version}/html
%endif # with_doc
%if 0%{?with_python3}
%files -n python3-scipy
%doc LICENSE.txt
%{python3_sitearch}/scipy/
%{python3_sitearch}/scipy
%{python3_sitearch}/*.egg-info
%if %{with doc}
%if 0%{?with_doc}
%files -n python3-scipy-doc
%license LICENSE.txt
%doc doc/build-%{python3_version}/html
%endif
%doc build/sphinx-%{python3_version}/html
%endif # with_doc
%endif # with_python3
%changelog
* Wed Nov 25 2020 Nikola Forró <nforro@redhat.com> - 1.5.4-2
- Skip factorial() float tests on Python 3.10
resolves: #1898157
* Thu Nov 05 2020 Nikola Forró <nforro@redhat.com> - 1.5.4-1
- New upstream release 1.5.4
- Increase test timeout, 300 seconds is not always enough
for test_logpdf_overflow on s390x
resolves: #1894887
* Mon Oct 19 2020 Nikola Forró <nforro@redhat.com> - 1.5.3-1
- New upstream release 1.5.3
resolves: #1889132
* Wed Sep 30 2020 Nikola Forró <nforro@redhat.com> - 1.5.2-2
- Skip one more test expected to fail on 32-bit architectures
* Mon Aug 31 2020 Nikola Forró <nforro@redhat.com> - 1.5.2-1
- New upstream release 1.5.2
resolves: #1853871 and #1840077
* Sun Aug 16 2020 Iñaki Úcar <iucar@fedoraproject.org> - 1.5.0-4
- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-3
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 23 2020 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 1.5.0-1
- Update to latest version
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 1.4.1-2
- Rebuilt for Python 3.9
* Sun Mar 01 2020 Orion Poplawski <orion@nwra.com> - 1.4.1-1
- Update to 1.4.1 (bz#1771154)
- Workaround FTBFS with gcc 10 (bz#1800078)
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Fri Oct 18 2019 Miro Hrončok <mhroncok@redhat.com> - 1.3.1-1
- Update to 1.3.1 (#1674101)
- Drop Python 2 packages (not supported by SciPy >= 1.3)
- Backported upstream patch for cKDTree (fixes FTBFS)
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.2.1-8
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.2.1-7
- Rebuilt for Python 3.8
* Tue Jul 30 2019 Petr Viktorin <pviktori@redhat.com> - 1.2.1-6
- Remove build dependency on python2-pytest-xdist and python2-pytest-timeout
- Enable parallel tests in Python 3 %%check
- Use macros for Python interpreter in tests
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jun 10 2019 Marcel Plch <mplch@redhat.com> - 1.2.1-4
- Fix FTBFS with Py3.8 (#1606315)
* Thu May 16 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-3
- Build only against openblasp (bugz#1709161)
* Fri Apr 26 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-2
- Do not create *-PYTEST.pyc files
* Tue Apr 23 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-1
- Update to 1.2.1
- Drop scipy2-doc
* Wed Feb 06 2019 Charalampos Stratakis <cstratak@redhat.com> - 1.2.0-1
- Update to 1.2.0
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Jun 23 2018 Miro Hrončok <mhroncok@redhat.com> - 1.1.0-2
- Don't ignore the tests results but rather have a tolerance rate
- Skip test_decomp on ppc64le as it currently segfaults
* Fri Jun 22 2018 Miro Hrončok <mhroncok@redhat.com> - 1.1.0-1
- Update to 1.1.0 (#1560265, #1594355)
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.0.0-8
- Rebuilt for Python 3.7
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Feb 02 2018 Petr Viktorin <pviktori@redhat.com> - 1.0.0-6
- Link with -lm to build with new stricter Fedora flags
https://bugzilla.redhat.com/show_bug.cgi?id=1541416
* Wed Jan 31 2018 Christian Dersch <lupinix@mailbox.org> - 1.0.0-5
- rebuilt for GCC 8.x (gfortran soname bump)
* Mon Dec 11 2017 Lumír Balhar <lbalhar@redhat.com> - 1.0.0-4
- Disable tests on s390x
* Mon Nov 20 2017 Lumír Balhar <lbalhar@redhat.com> - 1.0.0-3
- New subpackages with HTML documentation
* Fri Nov 03 2017 Christian Dersch <lupinix@mailbox.org> - 0.19.1-6
- OpenBLAS-related fixes
* Tue Oct 31 2017 Christian Dersch <lupinix@mailbox.org> - 1.0.0-2
- Use openblas where available https://fedoraproject.org/wiki/Changes/OpenBLAS_as_default_BLAS
- Remove ppc64 hackery for OpenBLAS
@ -610,3 +585,4 @@ popd
- Add changelog
- Removed Prefix, Vendor
- Fix Source0

View File

@ -1,47 +0,0 @@
From ea0a77cf8761a8b8636b93314139ed0fc0a9d1db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com>
Date: Wed, 30 Sep 2020 11:44:25 +0200
Subject: [PATCH] TST: make a couple of tests expected to fail on 32-bit
architectures
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In TestConstructUtils.test_concatenate_int32_overflow
and test_nnz_overflow, on a 32-bit architecture, in case
check_free_memory() passes, ValueError is raised on an attempt
to create a numpy array too large for a 32-bit architecture.
Signed-off-by: Nikola Forró <nforro@redhat.com>
---
scipy/sparse/tests/test_construct.py | 1 +
scipy/sparse/tests/test_sparsetools.py | 1 +
2 files changed, 2 insertions(+)
diff --git a/scipy/sparse/tests/test_construct.py b/scipy/sparse/tests/test_construct.py
index 3a882c6cc..5a2b92667 100644
--- a/scipy/sparse/tests/test_construct.py
+++ b/scipy/sparse/tests/test_construct.py
@@ -378,6 +378,7 @@ class TestConstructUtils(object):
excinfo.match(r'Got blocks\[0,1\]\.shape\[0\] == 1, expected 2')
@pytest.mark.slow
+ @pytest.mark.xfail_on_32bit("Can't create large array for test")
def test_concatenate_int32_overflow(self):
""" test for indptr overflow when concatenating matrices """
check_free_memory(30000)
diff --git a/scipy/sparse/tests/test_sparsetools.py b/scipy/sparse/tests/test_sparsetools.py
index 0c208ef44..e95df1ba0 100644
--- a/scipy/sparse/tests/test_sparsetools.py
+++ b/scipy/sparse/tests/test_sparsetools.py
@@ -61,6 +61,7 @@ def test_regression_std_vector_dtypes():
@pytest.mark.slow
+@pytest.mark.xfail_on_32bit("Can't create large array for test")
def test_nnz_overflow():
# Regression test for gh-7230 / gh-7871, checking that coo_todense
# with nnz > int32max doesn't overflow.
--
2.26.2

View File

@ -1,40 +0,0 @@
From eabd8ea25fe291665f37fd069a1c574cd30d12cc Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Wed, 25 Nov 2020 11:41:15 +0100
Subject: [PATCH] GH-13122: Skip factorial() float tests on Python 3.10
special.factorial() argument should be an array of integers.
On Python 3.10, math.factorial() reject float.
On Python 3.9, a DeprecationWarning is emitted.
A numpy array casts all integers to float if the array contains a
single NaN.
---
scipy/special/tests/test_basic.py | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/scipy/special/tests/test_basic.py b/scipy/special/tests/test_basic.py
index 9b7260e8435..e2ae29812a5 100644
--- a/scipy/special/tests/test_basic.py
+++ b/scipy/special/tests/test_basic.py
@@ -19,6 +19,7 @@
import itertools
import platform
+import sys
import numpy as np
from numpy import (array, isnan, r_, arange, finfo, pi, sin, cos, tan, exp,
@@ -1822,6 +1823,13 @@ def test_nan_inputs(self, x, exact):
result = special.factorial(x, exact=exact)
assert_(np.isnan(result))
+ # GH-13122: special.factorial() argument should be an array of integers.
+ # On Python 3.10, math.factorial() reject float.
+ # On Python 3.9, a DeprecationWarning is emitted.
+ # A numpy array casts all integers to float if the array contains a
+ # single NaN.
+ @pytest.mark.skipif(sys.version_info >= (3, 10),
+ reason="Python 3.10+ math.factorial() requires int")
def test_mixed_nan_inputs(self):
x = np.array([np.nan, 1, 2, 3, np.nan])
with suppress_warnings() as sup:

View File

@ -1 +1 @@
SHA512 (scipy-1.5.4.tar.gz) = d23f68911a8880f87767819750d4d175ba8f9c72fcb9b8080305ee65722c046d4485fde4f0c85cc53c46247dd99813afe675a38b3b0569a683ddc2c2e021b8fc
SHA512 (scipy-1.0.0.tar.xz) = 541bf377fd67ac15dec55ecd6435a2c0e3043bbdc4fdce05e584db123f113141c8713a07a5895597cb3c3449af493453391ffb1ab9251f054646b4133f651633