diff --git a/.gitignore b/.gitignore index 821493f..d3a3c93 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ scipy-0.7.2.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 diff --git a/acceptable_failure_rate.patch b/acceptable_failure_rate.patch deleted file mode 100644 index aacb1f1..0000000 --- a/acceptable_failure_rate.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/scipy/conftest.py b/scipy/conftest.py -index e5fac23..1a971e8 100644 ---- a/scipy/conftest.py -+++ b/scipy/conftest.py -@@ -37,3 +38,15 @@ def check_fpu_mode(request): - warnings.warn("FPU mode changed from {0:#x} to {1:#x} during " - "the test".format(old_mode, new_mode), - category=FPUModeChangeWarning, stacklevel=0) -+ -+ -+ACCEPTABLE_FAILURE_RATE = int(os.environ.get('ACCEPTABLE_FAILURE_RATE', 0)) -+ -+ -+@pytest.hookimpl() -+def pytest_sessionfinish(session, exitstatus): -+ if exitstatus != 1: -+ return -+ failure_rate = (100.0 * session.testsfailed) / session.testscollected -+ if failure_rate <= ACCEPTABLE_FAILURE_RATE: -+ session.exitstatus = 0 diff --git a/scipy.spec b/scipy.spec index 5412207..9ade31b 100644 --- a/scipy.spec +++ b/scipy.spec @@ -14,8 +14,8 @@ Summary: Scientific Tools for Python Name: scipy -Version: 1.5.0 -Release: 4%{?dist} +Version: 1.5.2 +Release: 1%{?dist} # BSD -- whole package except: # Boost -- scipy/special/cephes/scipy_iv.c @@ -24,10 +24,8 @@ 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 -# Previously we ignored the tests results, because they don't always pass -# Instead of ignoring the results entirely, we allow certain failure rate -# https://stackoverflow.com/a/47731333/1839451 -Patch0: acceptable_failure_rate.patch +# https://github.com/scipy/scipy/pull/12899 +Patch0: test_nnz_overflow.patch BuildRequires: fftw-devel, suitesparse-devel BuildRequires: %{blaslib}-devel @@ -139,33 +137,24 @@ pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch # check against the reference BLAS/LAPACK export FLEXIBLAS=netlib -# Skip all tests on s390x because they hangs unexpectedly and randomly -# and pytest-timeout has no effect. Note that the outcome of the tests -# was previously ignored anyway so by disabling the test for s390x we -# are not doing anything more dangerous. %ifarch s390x -exit 0 -%endif - -%ifarch x86_64 -export ACCEPTABLE_FAILURE_RATE=0 -%else -# there are usually 10-21 test failing, so we allow 1% failure rate -# XXX ppc fails 2%+, so we've extended this to 3% for now -export ACCEPTABLE_FAILURE_RATE=3 -%endif - -%ifarch ppc64le -# test_decomp segfaults on ppc64le -export k="not test_denormals and not test_decomp" -%else -# test_denormals tends to stuck -export k="not test_denormals" +# 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 pushd %{buildroot}/%{python3_sitearch} -# TODO TestIQR.test_scale fails on Python 3.8+ due to some warnings, investigate -%{pytest} --timeout=500 -k "$k and not (TestIQR and test_scale)" scipy --numprocesses=auto +%{pytest} --timeout=300 scipy --numprocesses=auto # Remove test remnants rm -rf gram{A,B} popd @@ -182,6 +171,10 @@ popd %endif %changelog +* Mon Aug 31 2020 Nikola Forró - 1.5.2-1 +- New upstream release 1.5.2 + resolves: #1853871 and #1840077 + * Sun Aug 16 2020 Iñaki Úcar - 1.5.0-4 - https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager diff --git a/sources b/sources index e0a0492..339a005 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (scipy-1.5.0.tar.gz) = 4c981a3125a88593cbc5a17417022a5db8f6ccb4c1c24e78afeb9bb26428b81d2d0fe9965caa418753b1bbbda2fa30533fa1307aac6ab168458d68f7b46049be +SHA512 (scipy-1.5.2.tar.gz) = 45463df30a0f6270d9f4cf52235f31607904a6ae1375e12600e7f1ab2d27b1dc25a6211b49dceb71506be22c756890adaf9f81d9e6be7455def86c9caf0dc923 diff --git a/test_nnz_overflow.patch b/test_nnz_overflow.patch new file mode 100644 index 0000000..52d5cd3 --- /dev/null +++ b/test_nnz_overflow.patch @@ -0,0 +1,30 @@ +From b4da1455615fd7dc6d3554d16008a1e88018fa4d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Nikola=20Forr=C3=B3?= +Date: Wed, 30 Sep 2020 11:44:25 +0200 +Subject: [PATCH] TST: skip test_nnz_overflow on 32-bit architectures +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On a 32-bit architecture, in case check_free_memory() passes, the first +np.zeros() fails with "ValueError: Maximum allowed dimension exceeded", +which I believe is expected. + +Signed-off-by: Nikola Forró +--- + scipy/sparse/tests/test_sparsetools.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/scipy/sparse/tests/test_sparsetools.py b/scipy/sparse/tests/test_sparsetools.py +index 0c208ef4451..19c7de43fa1 100644 +--- a/scipy/sparse/tests/test_sparsetools.py ++++ b/scipy/sparse/tests/test_sparsetools.py +@@ -61,6 +61,8 @@ def test_regression_std_vector_dtypes(): + + + @pytest.mark.slow ++@pytest.mark.skipif(not (sys.platform.startswith('linux') and np.dtype(np.intp).itemsize >= 8), ++ reason="test requires 64-bit Linux") + def test_nnz_overflow(): + # Regression test for gh-7230 / gh-7871, checking that coo_todense + # with nnz > int32max doesn't overflow.