From 0e91ca2d9178b8e783f78332248e30ac7c94fda8 Mon Sep 17 00:00:00 2001 From: Drew Parsons Date: Thu, 19 Jan 2023 13:54:51 +0000 Subject: [PATCH] Import scipy_1.8.1-21.debian.tar.xz [dgit import tarball scipy 1.8.1-21 scipy_1.8.1-21.debian.tar.xz] --- changelog | 1572 +++++++++++++++++ control | 86 + copyright | 411 +++++ ...t-treat-warnings-as-errors-in-pytest.patch | 20 + ...documentation-referencing-the-source.patch | 125 ++ ...s_parameter_k_which-to-fail-on-armel.patch | 27 + ...ries-segfault-by-explicitly-specifyi.patch | 84 + ...py-s-deprecation-of-accepting-out-of.patch | 94 + ...AINT-casting-errstate-for-NumPy-1.24.patch | 109 ++ ...utils.get_index_dtype-for-NEP-50-cas.patch | 192 ++ ...ues-with-casting-related-warnings-wi.patch | 67 + ...erator-behaviour-for-sparse-arrays-t.patch | 39 + ...umfpack-test-failure-with-numpy-1.23.patch | 34 + patches/0018-Drop-intersphinx.patch | 20 + patches/0019-Ignore-sphinx-warnings.patch | 52 + ...-use-of-inspect.formatargspec-dusing.patch | 35 + patches/Use-system-LBFGSB.patch | 24 + patches/build_sh4_FE.patch | 17 + patches/fix_numpy1.24_PR17035.patch | 35 + patches/hppa-boost-long-double-config.patch | 14 + patches/manage_tests.patch | 332 ++++ patches/pythran_type_PR16646.patch | 82 + patches/qhull-lfs.patch | 26 + patches/series | 21 + patches/use_local_mathjax.patch | 22 + python-scipy-doc.doc-base | 14 + python-scipy-doc.docs | 1 + python-scipy-doc.lintian-overrides | 1 + python3-scipy.lintian-overrides | 1 + rules | 113 ++ source/format | 1 + source/lintian-overrides | 2 + tests/atlas | 1 + tests/blis | 1 + tests/control | 22 + tests/openblas | 21 + tests/python3 | 117 ++ tests/python3-smoke | 18 + upstream/metadata | 15 + watch | 4 + 40 files changed, 3872 insertions(+) create mode 100644 changelog create mode 100644 control create mode 100644 copyright create mode 100644 patches/0008-Don-t-treat-warnings-as-errors-in-pytest.patch create mode 100644 patches/0009-Remove-some-documentation-referencing-the-source.patch create mode 100644 patches/0010-Allow-test_svds_parameter_k_which-to-fail-on-armel.patch create mode 100644 patches/0011-BUG-fix-syevr-series-segfault-by-explicitly-specifyi.patch create mode 100644 patches/0012-MAINT-Handle-numpy-s-deprecation-of-accepting-out-of.patch create mode 100644 patches/0013-MAINT-casting-errstate-for-NumPy-1.24.patch create mode 100644 patches/0014-MAINT-fix-up-_sputils.get_index_dtype-for-NEP-50-cas.patch create mode 100644 patches/0015-TST-fix-test-issues-with-casting-related-warnings-wi.patch create mode 100644 patches/0016-BUG-Fix-power-operator-behaviour-for-sparse-arrays-t.patch create mode 100644 patches/0017-MAINT-fix-umfpack-test-failure-with-numpy-1.23.patch create mode 100644 patches/0018-Drop-intersphinx.patch create mode 100644 patches/0019-Ignore-sphinx-warnings.patch create mode 100644 patches/0020-DOC-MAINT-remove-use-of-inspect.formatargspec-dusing.patch create mode 100644 patches/Use-system-LBFGSB.patch create mode 100644 patches/build_sh4_FE.patch create mode 100644 patches/fix_numpy1.24_PR17035.patch create mode 100644 patches/hppa-boost-long-double-config.patch create mode 100644 patches/manage_tests.patch create mode 100644 patches/pythran_type_PR16646.patch create mode 100644 patches/qhull-lfs.patch create mode 100644 patches/series create mode 100644 patches/use_local_mathjax.patch create mode 100644 python-scipy-doc.doc-base create mode 100644 python-scipy-doc.docs create mode 100644 python-scipy-doc.lintian-overrides create mode 100644 python3-scipy.lintian-overrides create mode 100755 rules create mode 100644 source/format create mode 100644 source/lintian-overrides create mode 120000 tests/atlas create mode 120000 tests/blis create mode 100644 tests/control create mode 100755 tests/openblas create mode 100755 tests/python3 create mode 100755 tests/python3-smoke create mode 100644 upstream/metadata create mode 100644 watch diff --git a/changelog b/changelog new file mode 100644 index 00000000..3c6dbb9f --- /dev/null +++ b/changelog @@ -0,0 +1,1572 @@ +scipy (1.8.1-21) unstable; urgency=medium + + * Team upload. + * debian patch fix_numpy1.24_PR17035.patch applies upstream PR17035 + to fix build with numpy 1.24. Closes: #1027244 + + -- Drew Parsons Thu, 19 Jan 2023 14:54:51 +0100 + +scipy (1.8.1-20) unstable; urgency=medium + + * Team upload. + * Fix sphinx build with Python 3.11 + + -- Jochen Sprickerhof Tue, 03 Jan 2023 21:59:59 +0100 + +scipy (1.8.1-19) unstable; urgency=medium + + * Team upload. + * Add upstream patch to fix flapack (Closes: #1027460) + * Add upstream patch for numpy 1.24 + * Use dh-sequence-* + + -- Jochen Sprickerhof Tue, 03 Jan 2023 11:32:39 +0100 + +scipy (1.8.1-18) unstable; urgency=medium + + * Team upload. + * Skip one more failing test on ppc64el + + -- Jochen Sprickerhof Mon, 26 Dec 2022 09:33:52 +0100 + +scipy (1.8.1-17) unstable; urgency=medium + + * Team upload. + * Ignore some test in autopkgtests + + -- Jochen Sprickerhof Sun, 25 Dec 2022 12:03:29 +0100 + +scipy (1.8.1-16) unstable; urgency=medium + + * Team upload. + * Ignore some failing unit tests on some archs + + -- Jochen Sprickerhof Fri, 23 Dec 2022 23:53:47 +0100 + +scipy (1.8.1-15) unstable; urgency=medium + + * Team upload. + * Fix FTBFS with new numpy (deprecated numpy.distutils) + (Closes: #1026210, #1026342, #1026516) + * Add workaround for FTBFS with new sphinx + * Ignore test failure on armel (Closes: #1025699) + + -- Jochen Sprickerhof Tue, 20 Dec 2022 19:47:35 +0100 + +scipy (1.8.1-14) unstable; urgency=medium + + * Team upload. + * debian/tests: skip all test_complex* tests on i386 with blis + * once again drop pythran support on armhf. + Still causes many packages to fail tests even after revised + version of PR16646 (possibly due to memory exhaustion?) + + -- Drew Parsons Thu, 08 Sep 2022 16:01:54 +0200 + +scipy (1.8.1-13) unstable; urgency=medium + + * Team upload. + * skip build-time tests + - armel: test_random_exact in linalg/tests/test_basic.py (segfaults) + * update debian patch pythran_type_PR16646.patch to latest PR16646 + + -- Drew Parsons Wed, 07 Sep 2022 09:53:04 +0200 + +scipy (1.8.1-12) unstable; urgency=medium + + * Team upload. + * skip build-time tests + - armel: linalg/tests/test_decomp.py (started segfaulting) + - hppa: test_nodata test_cont_basic[500-200-semicircular-arg89] + - riscv64: test_vector test_iterative_refinements_dense (segfaults) + * skip more tests in debian/test + - i386 with blis: test_complex_dotc (segfaults) + - armhf with openblas: test_solver_selection + - ppc64el with atlas: sparse test_svd_v0, test_svd_random_state{_2} + * update debian patch pythran_type_PR16646.patch to latest PR16646 + - reinstate TestMLS tests + - reinstate pythran on armhf to test if PR16646 now fixes problems + - Closes: #1017862 + + -- Drew Parsons Tue, 30 Aug 2022 20:12:18 +0200 + +scipy (1.8.1-11) unstable; urgency=medium + + * Team upload. + * skip more tests in debian/tests + - arm64: test_atol[cgs] with blis + - armel: skip linalg test_aligned_mem in test_decomp.py + - armhf with openblas: some optimize tests in TestRRSVD, TestDogbox + - i386 with blis: test_complex_dotu + - ppc64el: test_svds_parameter_tol, test_bug_6139 (with atlas) + - s390x with atlas: test_bug_6139, test_solver_select + - riscv64: avoid failures and segfaults + * skip tests failing on powerpc in stats/tests/test_stats.py: + overflow encountered in _hypergeom_*. Skip test_hypergeom_cdf, + test_hypergeom_sf, test_nch_hypergeom, test_precision, + test_precise, test_less_greater + * debian/tests: restrict openblas tests to supported architectures + only (i.e. not armel) + + -- Drew Parsons Fri, 26 Aug 2022 00:29:59 +0200 + +scipy (1.8.1-10) unstable; urgency=medium + + * Team upload. + * skip TestSmirnovp (test_kolmogorov) also on hurd-i386 + * skip test_first_step and test_classes on mips64el + (integrate/_ivp/tests/test_ivp.py) + See https://github.com/scipy/scipy/issues/16883 + * skip test_large_rank_deficient on armhf with blis. Segfaults in + test_lsq_linear.py::TestBVLS + * once again drop pythran support on armhf. + It does work successfully, but shifts numerical results enough to + break tests on a dozen packages (astropy, pandas, pyfai, skimage etc) + + -- Drew Parsons Wed, 24 Aug 2022 11:43:19 +0200 + +scipy (1.8.1-9) unstable; urgency=medium + + * Team upload. + * drop asyncio_mode=auto from debian patch manage_tests.patch. + Only relevant when python3-pytest-asyncio is installed + (causes errors if not installed, but scipy doesn't need it) + * use runtests.py to manage build-time tests + * skip failing tests + - signal TestMLS fails due to broken pythran support on 32 bit + arches. See Bug#1017862. + - special test_kolmogorov.py (TestSmirnovp) segfaults on i386. + Closes: Bug#1017864. + - stats test_cont_basic[500-200-ncf-arg74] fails with + IntegrationWarning. See upstream Issue 14519 + * update debian/watch (uscan) for latest github format + + -- Drew Parsons Mon, 22 Aug 2022 17:24:17 +0200 + +scipy (1.8.1-8) unstable; urgency=medium + + * Team upload. + * overhaul debian/tests to run debci tests using upstream's + runtests.py. Previous approach was overcomplicated and unable to + skip test_hermitian_modes for blis on i386. Keep specific skips for + BLAS tests but drop general tests previously skipped in order to + verify if they still need skipping. + * debian patch pythran_type_PR16646.patch applies upstream PR#16646 + to properly define pythran types for 32 bit arches. + - reinstate pythran support on armhf + * fix determination of python3 versions in debian/rules + + -- Drew Parsons Mon, 25 Jul 2022 00:20:58 +0200 + +scipy (1.8.1-7) unstable; urgency=medium + + * Team upload. + * drop pythran completely from armhf. Still causes errors from built + components even if pythran is not installed at runtime. + cf. https://github.com/serge-sans-paille/pythran/issues/2002 + * reorganise test skip list in debian/tests to ensure i386 properly + skips test_hermitian_modes + + -- Drew Parsons Mon, 18 Jul 2022 13:36:40 +0200 + +scipy (1.8.1-6) unstable; urgency=medium + + * Team upload. + * on armhf, demote python3-scipy Depends: pythran to Suggests. + Causes armhf debci test failure on dozens of dependent packages, + mainly with MemoryError. Only individual tests fail, probably + depends on the specific usage. + + -- Drew Parsons Thu, 30 Jun 2022 22:14:11 +0200 + +scipy (1.8.1-5) unstable; urgency=medium + + * Team upload. + * debian/tests: skip more blas-specific tests + - armhf/openblas: test_large_rank_deficient and all TestTRF + (in optimize/tests/test_lsq_linear.py; times out or segfaults) + - armhf/openblas: test_disp in optimize/tests/test_linprog.py + (times out) + - armhf/atlas: test_aligned_mem in linalg/tests/test_decomp.py + (illegal value for DHSEQR parameter) + - fix i386 skip of test_hermitian_modes (_eigen not eigen) + * update debian patch manage_tests.patch + - alpha: special test_round.py skip all + * Depends: python3-pythran on all arches. Even arches without full + SIMD support should benefit from the dynamic C++ compilation. + cf. https://github.com/scipy/scipy/issues/13308#issuecomment-1168579164 + Closes: #1013568. + + -- Drew Parsons Wed, 29 Jun 2022 01:17:22 +0200 + +scipy (1.8.1-4) unstable; urgency=medium + + * Team upload. + * update debian patch manage_tests.patch + - add asyncio_mode=auto to pytest.ini. Required in order to launch + tests from toplevel source directory. + - hppa (parisc64): io/arff test_arffread.py + skip TestNoData + - hppa (parisc64): special test_round.py skip all + - hurd: platform.machine() is 'i686-AT386', so use + machine.startswith('i686') instead of machine=='i686' + to skip tests for both i386 (linux) and hurd-i386 + * return an exit code from scipy.test() otherwise 0 is always + returned so test failure is not detected + * disable pythran support on i386 because of test errors + "TypeError: Invalid call to pythranized function" + cf. https://github.com/serge-sans-paille/pythran/issues/1025 + Revisit once pythran 0.11.0 is packaged. + * debian/tests: skip test_hermitian_modes with BLIS on i386 + (in sparse/linalg/eigen/arpack/arpack.py). Closes: Bug#1003880. + * in BLAS tests, only use first alternative for BLAS implementation + + -- Drew Parsons Wed, 15 Jun 2022 18:35:03 +0200 + +scipy (1.8.1-3) unstable; urgency=medium + + * Team upload. + * debian/tests specific blas tests Depend on -dev versions of blas + packages in order to not hardcode ABI versions + (blis recently bumped to libblis.so.4) + * update debian patch manage_tests.patch: + - mips64el: fft test_fftlog.py skip test_fht_special_cases + - mips64el: sparse/csgraph test_shortest_path.py + skip test_NaN_warnings + - mips64el: stats test_distributions.py skip test_moments_warnings + - on i386 platform.machine() is 'i686' not 'i386' + - on armel and armhf platform.machine() is "armv7l' not simply 'arm' + Use startswith('arm') not =='arm' to allow the general case. + - on powerpc platform.machine() is "ppc" + * reinstate handling of nocheck in DEB_BUILD_OPTIONS to run tests + * run tests with set -e to ensure errors are not ignored. + Closes: #1003417. + * debian patch build_sh4_FE.patch ensures FE_UPWARD and FE_DOWNWARD + are defined for sh4 architecture. Closes: #1007769. + * add pythran support for i386 + + -- Drew Parsons Tue, 14 Jun 2022 16:11:24 +0200 + +scipy (1.8.1-2) experimental; urgency=medium + + * Team upload. + * rename debian patch skip_tests.patch to manage_tests.patch and + update to increase test successes + - all: linalg test_lapack.py test_sygst + raise tol from 1e-4 to 2e-4 + - armel, powerpc: stats test_stats skip various tests + - armel: special test_round.py skip all + - armel: optimize test_linprog.py skip test_bounds_infeasible_2 + - armel: interpolate test_fitpack.py skip test_kink + - armhf: linalg test_interpolative.py + skip test_estimate_spectral_norm_diff + - i386: relax tolerance in spatial/transform test_rotation.py + and spatial test_distance.pytest_pdist_jensenshannon_iris + - i386: sparse/linalg/_isolve test_iterative.py skip + test_maxiter_worsening + - i386: signal test_spectral.py skip test_nd_axis_m1, + test_nd_axis_0 + - s390x, powerpc, ppc64, sparc64: io/arff test_arffread.py + skip TestNoData + + -- Drew Parsons Mon, 13 Jun 2022 01:36:20 +0200 + +scipy (1.8.1-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - Depends: python3-numpy (>= 1:1.17.3~) + * Build-Depends: pybuild-plugin-pyproject to use pyproject.toml. + Closes: #1008680. + * Simplify debian/rules back to minimal dh (with python,sphinxdoc) + * drop debian/python3-scipy.install: pybuild/pyproject installs + directly into debian package dirs + * launch build-time tests from /tmp (needs to start outside the + source dir) + * debian patch skip_tests.patch skips failing tests + - linalg: test_decomp.py TestSchur.test_sort and + test_solvers.py test_solve_discrete_are + see https://github.com/scipy/scipy/issues/14517 + - optimize test_optimize.py: test_minimize_l_bfgs_maxls passes but + marked as expected to fail + * Standards-Version: 4.6.1 + + -- Drew Parsons Sun, 12 Jun 2022 02:03:37 +0200 + +scipy (1.8.0-1exp2) experimental; urgency=medium + + * build scipy with pythran support where available [amd64 arm64 m68k] + Depends: python3-pythran [amd64 arm64 m68k] + Closes: #991753. + + -- Drew Parsons Tue, 15 Feb 2022 01:41:52 +0100 + +scipy (1.8.0-1exp1) experimental; urgency=medium + + * Team upload. + * New upstream release. + * update debian/copyright: vendored libraries SuperLU and arpack + used by sparse/linalg are now treated as private via an + _underscore prefix (_dsolve, _eigen) + + -- Drew Parsons Fri, 11 Feb 2022 22:05:09 +0100 + +scipy (1.7.3-2) unstable; urgency=medium + + * Team upload. + * debian patch hppa-boost-long-double-config.patch disables + LONG_DOUBLE in the boost submodule on hppa. Adapted from the boost + patch hppa-long-double-config.patch. + See https://github.com/scipy/scipy/issues/15260 + for discussion of why boost has been vendored for scipy. + Closes: #1004197. + + -- Drew Parsons Fri, 11 Feb 2022 12:11:29 +0100 + +scipy (1.7.3-1) unstable; urgency=medium + + * Team upload. + * New upstream release. + * Build-Depends-Indep: python3-sphinx-panels + Drop debian patch docs_skip_panels.patch. Closes: #991752. + * remove upper bound on python3-pybind11 build-dependency. It's not + used upstream in dev code, gets applied only to release versions + to make local pip virtualenv installations use known-good versions. + Closes: #1002065. + * remove upper bound in Build-Depends: python3-numpy, python3-wheel + * raise versioned Build-Depends python3-numpy (>= 1.21.4) for + python3.10 support. + * don't compress woff font files. Apply the same + override_dh_compress used for numpy. Closes: #1003282. + * add a source lintian override for fortran-si4-11x1x10.dat + (source-contains-prebuilt-windows-binary). It's a test data + file, not a DOS executable. + * Standards-Version: 4.6.0 + * update debian/copyright + - remove deprecated files debian/patches/css_font_OpenSans.patch, + doc/scipy-sphinx-theme/*, scipy/_lib/six.py + - acknowledge Jonathan Neal's code snippet "font-family: no-parens" + from https://codepen.io/jonneal/pen/bXLEdB (MIT licence) + in doc/source/_static/scipy.css + - scipy/fft/_pocketfft/ licence applies to all _pocketfft not only + pocketfft.cxx + - scipy/_lib/uarray/ renamed to _uarray + + -- Drew Parsons Sun, 09 Jan 2022 14:11:52 +0100 + +scipy (1.7.1-2) unstable; urgency=medium + + * Drop -dbg package; Closes: #994375 + + -- Sandro Tosi Wed, 10 Nov 2021 23:57:11 -0500 + +scipy (1.7.1-1) unstable; urgency=medium + + * Team upload. + + [ Debian Janitor ] + * Use secure URI in Homepage field. + * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, + Repository-Browse. + + [ Drew Parsons ] + * New upstream release + * update upper-versioned Build-Depends + - python3-numpy (<< 1.23.0) (see pyproject.toml) + - python3-pybind11 (<< 2.8) (build is stable with pybind11 2.7) + + -- Drew Parsons Wed, 18 Aug 2021 02:07:15 +0200 + +scipy (1.7.0-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - deprecates debian patches css_font_OpenSans.patch and + css_font_local.patch + * Build with SCIPY_USE_PYTHRAN=0 since pythran is not yet available. + pythran packaging requested in Bug#991143. + * Build-Depends-Indep: python3-pydata-sphinx-theme, + python3-sphinx (>> 3.1) + * debian patch docs_skip_panels.patch skips use of sphinx-panels in + docs. Not available yet (RFP#991684). + * update debian/rules + - allow for spaces in filenames in override_dh_fixperms-arch. + sobol_vec.gz is no longer installed. + - drop special handling for weave. It was removed in scipy 0.15.0. + * mark python3-scipy as Multi-Arch: no + * lintian fixes + - mark scipy/optimize/lbfgsb_src/*.f as License: BSD-generic not BSD + - packages override bogus-mail-host-in-debian-changelog + Debian/i386 Build Daemon + - source override obsolete-url-in-packaging debian/copyright + https://code.google.com/archive/p/ampgo + * remove deprecated debian/README.source + + -- Drew Parsons Sat, 31 Jul 2021 01:40:57 +0200 + +scipy (1.6.2-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - fixes matrix dtypes. Closes: #983404. + - introduces upper-versioned Build-Depends: cython3 (<< 3.0), + python3-pybind11 (<< 2.7), + python3-wheel (<< 0.37.0) + (leave python3-setuptools uncapped) + - also Build-Depends: python3-all-dev (>= 3.7) + * Stop ignoring build-time errors in debian/rules. Closes: #967977. + + -- Drew Parsons Fri, 26 Mar 2021 19:21:49 +0100 + +scipy (1.6.1-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + * Depends: python3-numpy (>= 1:1.16.5) + + -- Drew Parsons Sun, 21 Feb 2021 20:46:00 +0100 + +scipy (1.6.0-2) unstable; urgency=medium + + * Team upload. + * upload new upstream version to unstable + + -- Drew Parsons Sat, 16 Jan 2021 23:26:56 +1100 + +scipy (1.6.0-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + * Standards-Version: 4.5.1 + * drop debian/python3-scipy.docs: Thanks.txt no longer shipped. + * update debian/copyright for new features + - benchmarks/benchmarks/go_benchmark_functions/*.py + Copyright: 2013 Andrea Gavana + License: expat + - scipy/fft/_pocketfft/pocketfft.cxx + Copyright: 2010-2019 Max-Planck-Society, Martin Reinecke + 2019 Peter Bell. License: BSD-3-clause + - scipy/fft/_pocketfft/pocketfft_hdronly.h + Copyright: 2010-2019 Max-Planck-Society, Martin Reinecke + 2019 Peter Bell, 2003,2007-2014 Matteo Frigo, + Massachusetts Institute of Technology. License: BSD-3-clause + - scipy/optimize/_highs/* + Copyright: 2020 ERGO-Code + License: Expat + - scipy/sparse/csgraph/_matching.pyx + Copyright: 1987, A. Volgenant/Amsterdam School of Economics, + University of Amsterdam. License: BSD-3-clause + - scipy/_lib/uarray/* + Copyright: 2018, Quansight-Labs + License: BSD-3-clause + + -- Drew Parsons Wed, 06 Jan 2021 19:57:43 +1100 + +scipy (1.5.4-1) unstable; urgency=medium + + * Team upload. + * New upstream release. + + -- Drew Parsons Sat, 14 Nov 2020 13:36:06 +0800 + +scipy (1.5.3-2) unstable; urgency=medium + + * Team upload. + * push new upstream release to unstable + + -- Drew Parsons Thu, 05 Nov 2020 03:33:52 +0800 + +scipy (1.5.3-1) experimental; urgency=medium + + * Team upload. + + [ Ondřej Nový ] + * d/control: Update Maintainer field with new Debian Python Team + contact address. + * d/control: Update Vcs-* fields with new Debian Python Team Salsa + layout. + + [ Drew Parsons ] + * New upstream release. + + -- Drew Parsons Tue, 03 Nov 2020 13:32:21 +0800 + +scipy (1.5.2-2) unstable; urgency=medium + + * Team upload. + * debian/tests (autopkgtest): add a new test case using BLAS=libblis3 + + -- Drew Parsons Sat, 01 Aug 2020 12:49:57 +0800 + +scipy (1.5.2-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - update versioned Build-Depends: cython3 (>= 0.29.18), + python3-numpy (>= 1:1.14.5), python3-pybind11 (>= 2.4.3) + - builds with gfortran 10. Closes: #957780. + * debhelper compatibility level 13 + + -- Drew Parsons Fri, 24 Jul 2020 15:17:18 +0800 + +scipy (1.4.1-2) unstable; urgency=medium + + * Team upload. + * bring new upstream version to unstable + + -- Drew Parsons Sat, 18 Apr 2020 11:08:42 +0800 + +scipy (1.4.1-1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - applies debian patches fix_custom_sampling_input_2b3ed61.patch + and fix_test_NAN_input_iv_7806757.diff + - deprecates debian patch use_local_objects.inv.patch + - Build-Depends: python3-pybind11 (>= 2.4.0) + - Build-Depends-Indep: python3-sphinx (>= 2~) + * provide PYTHONPATH as env variable with make doc + * Standards-Version: 4.5.0 + + -- Drew Parsons Fri, 17 Apr 2020 01:11:18 +0800 + +scipy (1.3.3-3) unstable; urgency=medium + + * Team upload. + * skip sparsetools.TestInt32Overflow tests test_bsr_1_block and + test_bsr_n_block (they regularly timeout) + + -- Drew Parsons Fri, 06 Dec 2019 10:22:05 +0800 + +scipy (1.3.3-2) unstable; urgency=medium + + * Team upload. + * add debian patches to avoid internet connections when using docs + - css_font_OpenSans.patch adapts font settings from + https://fonts.googleapis.com/css?family=Open+Sans + (Apache 2.0 licence) + - css_font_local.patch uses local font_OpenSans.css from + css_font_OpenSans.patch + - python-scipy-doc Depends: fonts-open-sans + - Closes: #873433. + * debian patch fix_custom_sampling_input_2b3ed61.patch applies + upstream commit 2b3ed61 to fix syntax. Closes: #945093. + + -- Drew Parsons Thu, 05 Dec 2019 00:30:25 +0800 + +scipy (1.3.3-1) unstable; urgency=medium + + * Team upload. + * New upstream release. + * change source package name to scipy for python3-only, to + distinguish from python-scipy which supports python2. + * update Vcs salsa repo name to scipy (from python-scipy) + + -- Drew Parsons Wed, 27 Nov 2019 20:53:58 +0800 + +python-scipy (1.3.1-1exp3) experimental; urgency=medium + + * Team upload. + * update versioned Build-Depends: python3-numpy (>= 1:1.13.3) + and cython3 (>= 0.29.2) + * Patch fix_test_NAN_input_iv_7806757.diff applies upstream commit + 7806757 to fix tests on hppa, riscv64, sparc64. Closes: #934806. + + -- Drew Parsons Fri, 16 Aug 2019 13:20:27 +0800 + +python-scipy (1.3.1-1exp2) experimental; urgency=medium + + * Team upload. + * build binaries before building docs + + -- Drew Parsons Tue, 13 Aug 2019 18:45:38 +0800 + +python-scipy (1.3.1-1exp1) experimental; urgency=medium + + * Team upload. + * New upstream release. + - drops support for Python 2 (python-scipy is no longer provided) + - applies patches + matrix_API_614847c5.patch + matrix_API_filter_check_87e48c3c5.patch + matrix_API_more_e0cfa29e2.patch + fix_test_optim_canonical_constraint_2d7e7e8c.patch + * adjust skipping of spatial tests according to context of test + (openblas,atlas specify scipy.spatial) + + -- Drew Parsons Tue, 13 Aug 2019 15:04:07 +0800 + +python-scipy (1.2.2-8) unstable; urgency=medium + + * Team upload. + + [ Ondřej Nový ] + * Bump Standards-Version to 4.4.1. + + [ Drew Parsons ] + * only build docs for default python3. Closes: #942794. + - apply dh_auto_install to arch-dependent packages only + + -- Drew Parsons Tue, 19 Nov 2019 02:32:19 +0800 + +python-scipy (1.2.2-7) unstable; urgency=medium + + * Team upload. + * Patch fix_test_NAN_input_iv_7806757.diff applies upstream commit + 7806757 to fix tests on mipsel, hppa, riscv64, sparc64 + (taken from 1.3.1-1exp3) + + -- Drew Parsons Sun, 25 Aug 2019 20:37:32 +0800 + +python-scipy (1.2.2-6) unstable; urgency=medium + + * Team upload. + * atlas, openblas tests Depends: python3 + + -- Drew Parsons Sun, 25 Aug 2019 01:47:34 +0800 + +python-scipy (1.2.2-5) unstable; urgency=medium + + * Team upload. + * adjust skipping of sparse and spatial tests according to context + of test (openblas and atlas specify scipy.sparse, scipy.spatial) + * run atlas and openblas tests with python3 not python2 + + -- Drew Parsons Sat, 24 Aug 2019 11:42:02 +0800 + +python-scipy (1.2.2-4) unstable; urgency=medium + + * Team upload. + * debian patch Use-system-LBFGSB.patch: + run test_minimize_l_bfgs_maxls with rtol=1e-5 + + -- Drew Parsons Tue, 30 Jul 2019 09:28:55 +0800 + +python-scipy (1.2.2-3) unstable; urgency=medium + + * Team upload. + * run build-time tests over all versions of python3 + * Build-Depends: liblbfgsb-dev and add Debian patch + Use-system-LBFGSB.patch to use the system L-BFGS-B library (which + uses LAPACK rather than the scipy-bundled LINPACK) + Enables test_minimize_l_bfgs_maxls in scipy.optimize to succeed. + Thanks Gard Spreemann. Closes: #778635. + + -- Drew Parsons Tue, 30 Jul 2019 00:26:20 +0800 + +python-scipy (1.2.2-2) unstable; urgency=medium + + * Team upload. + * debhelper compatibility level 12 + - run configure build step through pybuild to get consistent + build directories + - set PYLIBPATH to pybuild build directory + * debian/rules: use AUTOPKGTEST_TMP instead of ADTTMP to run tests + * v1.2.2 fixes indexing in fftpack. Closes: #924396. + * drop ignore_DeprecationWarning_diff1.2.patch (already applied in + scipy 1.2) + * Register docs with doc-base. Closes: #846253. + * debian/tests/python3: skip tests of + scipy.spatial.tests.test__plotutils.TestPlotting + (see https://github.com/scipy/scipy/issues/9946) + + -- Drew Parsons Mon, 29 Jul 2019 18:43:34 +0800 + +python-scipy (1.2.2-1) unstable; urgency=medium + + * Team upload. + * New upstream release. + * configure debian/watch to grab tar.xz rather than tar.gz + (for smaller tarballs) + * debian/rules: build with dh --buildsystem=pybuild + * Standards-Version: 4.4.0 + + -- Drew Parsons Fri, 26 Jul 2019 15:22:36 +0800 + +python-scipy (1.2.1-1exp1) experimental; urgency=medium + + * Team upload. + * New upstream release. + + -- Drew Parsons Thu, 28 Feb 2019 11:16:38 +0800 + +python-scipy (1.2.0-1) experimental; urgency=medium + + * New upstream release + + -- Julian Taylor Tue, 15 Jan 2019 12:27:45 +0100 + +python-scipy (1.1.0-7) unstable; urgency=medium + + * Team upload. + * Patch fix_test_optim_canonical~onstraint_2d7e7e8c.patch applies + upstream patch 2d7e7e8 to fix occasional random failures in + test_canonical_constraint.test_concatenation. + + -- Drew Parsons Fri, 12 Apr 2019 00:46:35 +0800 + +python-scipy (1.1.0-6) unstable; urgency=medium + + * Team upload. + * skip sparsetools.TestInt32Overflow matvec tests on python3 also. + + -- Drew Parsons Thu, 11 Apr 2019 09:38:17 +0800 + +python-scipy (1.1.0-5) unstable; urgency=medium + + * Team upload. + * Skip sparsetools.TestInt32Overflow matvec tests on python2 + (MemoryError). Closes: #919929. + + -- Drew Parsons Wed, 10 Apr 2019 16:41:47 +0800 + +python-scipy (1.1.0-4) unstable; urgency=medium + + * Team upload. + * Replace patch ignore_DeprecationWarning_diff1.2.patch with + matrix_API_614847c5.patch + matrix_API_filter_check_87e48c3c5.patch + matrix_API_more_e0cfa29e2.patch + adapting the indicated upstream commits to scipy 1.1.0 + (use numpy.matmul instead of @ for matrix multiplication, since @ + is not available in python2) + Removes sources of matrix DeprecationWarnings. + Addresses: Bug#919929. + + -- Drew Parsons Thu, 14 Mar 2019 14:12:00 +0800 + +python-scipy (1.1.0-3) unstable; urgency=medium + + * Team upload. + * Debian patch ignore_DeprecationWarning_diff1.2.patch applies diff + of pytest.ini between scipy 1.1 and 1.2 to ignore + DeprecationWarnings from numpy 1.16. Addresses Bug#919929. + * Use default gfortran-8 on s390x. unroll-loops was fixed in + gcc-8 8.2.0-18. Closes: #906198, #915738. + + -- Drew Parsons Fri, 08 Mar 2019 00:31:29 +0800 + +python-scipy (1.1.0-2) unstable; urgency=medium + + * Team upload. + * Remove Alexandre Fayolle from the Uploaders list. Thanks for your + previous contributions! Closes: #833329 + * Use gfortran-7 on s390x to work around a regression causing the imexam + test suite to fail when scipy is built with gfortran 8. Addresses: #906198 + * Add some Multi-Arch markers suggested by the m-a hinter. + + -- Mattia Rizzolo Sun, 04 Nov 2018 19:01:19 +0100 + +python-scipy (1.1.0-1) unstable; urgency=medium + + [ Julian Taylor ] + * New upstream release + Closes: #896060, #901380, #896635 + * update to debian/compat 9 and standard 4.1.4 + + [ Ondřej Nový ] + * d/control: Set Vcs-* to salsa.debian.org + * d/copyright: Use https protocol in Format field + * d/tests: Use AUTOPKGTEST_TMP instead of ADTTMP + * d/control: Remove ancient X-Python-Version field + * d/control: Remove ancient X-Python3-Version field + + -- Julian Taylor Sun, 01 Jul 2018 14:34:28 +0200 + +python-scipy (0.19.1-2) unstable; urgency=medium + + * Replace python-imaging recomments with python-pil (Closes: #866468) + * build documentation with python3-sphinx + * Fix atlas and openblas tests for openblas and atlas multiarch locations + Thanks to Matthias Klose for the patch (Closes: #876007) + * Depend on python-all-dbg for autopkgtests + Thanks to Michael Hudson-Doyle for the patch (Closes: #864699) + * bump standard to 4.1.3 + - debian/control: replace priority extra with optional + + -- Julian Taylor Sun, 07 Jan 2018 14:38:57 +0100 + +python-scipy (0.19.1-1) unstable; urgency=medium + + * New upstream release + * weave has been removed, drop its patch blitz++.patch + * drop cap-ld-precision.patch, fixed in numpy + + -- Julian Taylor Wed, 06 Sep 2017 18:07:38 +0200 + +python-scipy (0.18.1-2.1) unstable; urgency=high + + * Non-maintainer upload. + * No-change rebuild to build without _PyFPE symbols. + + -- Matthias Klose Tue, 05 Sep 2017 16:36:34 +0200 + +python-scipy (0.18.1-2) unstable; urgency=medium + + * fix dbg package import (Closes: #840264) + * add dbg package import adt tests + + -- Julian Taylor Fri, 21 Oct 2016 16:10:57 +0200 + +python-scipy (0.18.1-1) unstable; urgency=medium + + [ Julian Taylor ] + * New upstream bugfix release + + [ Sebastian Humenda ] + * make the build-indep target execute the build target to allow the usage of + the module for generating the documentation (Closes: #806867) + + -- Julian Taylor Sun, 25 Sep 2016 11:25:21 +0200 + +python-scipy (0.18.0-1) unstable; urgency=medium + + * New upstream release + * add python-setuptools to build depends + + -- Julian Taylor Sat, 30 Jul 2016 19:05:17 +0200 + +python-scipy (0.17.1-1) unstable; urgency=medium + + [ Julian Taylor ] + * New upstream bugfix release + * enable parallel build based on DEB_BUILD_OPTIONS + * bump standard to 3.9.7, no changes required + + [ Ondřej Nový ] + * Fixed VCS URL (https) + + -- Julian Taylor Mon, 23 May 2016 20:02:14 +0200 + +python-scipy (0.17.0-1) unstable; urgency=medium + + * New upstream release + + -- Julian Taylor Sat, 23 Jan 2016 20:39:44 +0100 + +python-scipy (0.16.1-1) unstable; urgency=medium + + * New upstream bugfix release + * update adt-tests to new layout + * remove duplicate files in -doc package + + -- Julian Taylor Sun, 25 Oct 2015 11:51:34 +0100 + +python-scipy (0.16.0-2) unstable; urgency=medium + + [ Julian Taylor ] + * bump cython build-depend to required 0.22 + + [ Jean-Christophe Jaskula ] + * fix build of documentation in arch only builds + + -- Julian Taylor Mon, 24 Aug 2015 09:51:10 +0200 + +python-scipy (0.16.0-1) unstable; urgency=medium + + [ Varun Hiremath ] + * New upstream release + * Bump Standards-Version to 3.9.6 + * Remove upstream applied patches: + - fitpack-alias.patch + - fix-undefined-behavior-in-alngam.patch + - relax-bounds-of-interpolate-test.patch + * d/rules: minor build fixes + + [ Jean-Christophe Jaskula ] + * Pointed debian/watch to github.com (cleaner sources) + * d/control: + - Added dh_python to B-d + - Removed unnecessary XS-Testsuite field + * Linking to local javascript libraries + - use_local_mathjax.patch + * Using local intersphinx objects + - use_local_objects.patch + * Cleaned debian/copyright + + -- Varun Hiremath Sun, 23 Aug 2015 23:01:46 -0400 + +python-scipy (0.14.1-1) unstable; urgency=medium + + * New upstream bugfix release + remove upstream applied patches: + - numpy-version-fix.patch + - numpy_ufunc.patch + - put-_gen-classes-back.patch + - put-back-veccdf.patch + - sparse-fix-omitted-types.patch + - sparse-superlu-fix.patch + * add python-gmpy2 dependency to autopkgtest to speed up mpmath tests + * add suggest on python-scipy-doc (Closes: #760522) + * debian/copyright: add bootstrap Apache 2.0 license + + -- Julian Taylor Fri, 05 Sep 2014 18:56:54 +0200 + +python-scipy (0.14.0-2) unstable; urgency=medium + + * add patches to fix test failures on i386 and mips: + - fix-undefined-behavior-in-alngam.patch (Closes: #756905) + - relax-bounds-of-interpolate-test.patch + * add patches from 0.14.x maintenance branch: + - sparse-superlu-fix.patch: fix crash + - sparse-fix-omitted-types.patch: fix crash + - put-back-veccdf.patch: restore stats api + - put-_gen-classes-back.patch: restore stats api + - numpy-version-fix.patch: fix wrong version check + - numpy_ufunc.patch: compatibility with numpy 1.9 + + -- Julian Taylor Wed, 27 Aug 2014 14:40:24 +0200 + +python-scipy (0.14.0-1) unstable; urgency=low + + [ Denis Laxalde ] + * Add the documentation binary package (Closes: #600547). + + [ Julian Taylor ] + * New upstream release + * drop not swig build dependency and reswig.patch, not needed anymore + * use embedded six, current unstable version not compatible + * fitpack-alias.patch: fix wrong aliasing in interpolate.splder + + -- Julian Taylor Fri, 23 May 2014 10:37:06 +0200 + +python-scipy (0.13.3-2) unstable; urgency=medium + + * upload to unstable + * add build-essential dependency to adt tests, needed for weave + + -- Julian Taylor Mon, 31 Mar 2014 23:32:16 +0200 + +python-scipy (0.13.3-1) experimental; urgency=low + + * New upstream release + * ignore TestSplder.test_kink adt failure, probably numerical error + + -- Julian Taylor Tue, 04 Feb 2014 19:48:01 +0100 + +python-scipy (0.13.2-1) experimental; urgency=low + + * New upstream release + * update X-Python-Version to >= 2.6 + * require python3-numpy (>= 1:1.7.2) for hashing fixes + * bump standard to 3.9.5, no changes required + * bump cython dependency to >= 0.19 to avoid leaks with fused types + + -- Julian Taylor Mon, 21 Oct 2013 18:59:29 +0200 + +python-scipy (0.13.0~b1-1) experimental; urgency=low + + [ Julian Taylor ] + * New upstream beta release + * require python-six >= 1.3.0, scipy ships a slightly patched 1.2.0, + version 1.3.0 includes the patches + + [ Varun Hiremath ] + * Fix debian/watch file + + -- Julian Taylor Sat, 07 Sep 2013 18:06:00 +0200 + +python-scipy (0.12.0-3) unstable; urgency=high + + * temporary-directory-usage.patch: + fix insecure temporary directory usage of weave module. (Closes: #726093) + Thanks to Tomas Tomecek for the patch. + + -- Julian Taylor Tue, 22 Oct 2013 23:44:47 +0200 + +python-scipy (0.12.0-2) unstable; urgency=low + + * ignore testsuite failures to not block python3.3 transition + only masks issues on hardly used ports + + -- Julian Taylor Mon, 01 Jul 2013 20:09:40 +0200 + +python-scipy (0.12.0-1) unstable; urgency=low + + [ Julian Taylor ] + * New upstream release, no repackaging required anymore + - Closes: #707315 + - Closes: #691254 + * also fail on test failures not only test errors + * skip failing test_mio on big endian python3 >= 3.2 + * print skipped tests and unused skips in autopkgtest scripts + * add-swig-filetypes.patch, reswig.patch: + reswigging from setup.py, dropped from debian/rules + * cython-wraparound.patch: fix issue in ckdtree.pyx + * qhull-lfs.patch: enable large file support + * cap-ld-precision.patch: fix test failures due to broken np.finfo on ppc + * refresh patches and remove upstream applied: + - BUG-fix-dependency-on-dict-ordering-in-test.patch + - BUG-remove-inline-statement-rejected-by-cython.patch + - fix-dbg-crash.patch + - fix-f2py-dependencies.patch + - fix-test_basic.py-cephes_vs_amos_mass_te.patch + - python3.3-incdir.diff + * Bump standard to 3.9.4, no changes required + * drop unused sharutils build depend and python-profiler from suggests + * use system python-six and python-decorator instead of embedded copies + * don't install setup.py and generator scripts + + [ Jakub Wilk ] + * Use canonical URIs for Vcs-* fields. + * Remove DM-Upload-Allowed; it's no longer used by the archive + software. + + -- Julian Taylor Thu, 09 May 2013 11:35:07 +0200 + +python-scipy (0.11.0+dfsg1-1) experimental; urgency=low + + * New upstream release + * bump required cython to >= 0.17 + * refresh patches: + - drop upstream applied: + - interpnd-generator.patch + - dtype.diff, + - kolmogorov.diff, + - up_minpack_ints.diff + - kde.diff + - new patches for python3.3 compatibility and test fixing: + - BUG-remove-inline-statement-rejected-by-cython.patch + - BUG-fix-dependency-on-dict-ordering-in-test.patch + - fix-test_basic.py-cephes_vs_amos_mass_te.patch + - python3.3-incdir.diff + - fix-dbg-crash.patch + - fix-f2py-dependencies.patch + * add autopkgtests + * run fast tests during build + * update debian/copyright to dep5 + + -- Julian Taylor Fri, 25 Jan 2013 23:54:43 +0100 + +python-scipy (0.10.1+dfsg2-1) unstable; urgency=low + + * add missing cython and swig sources from git tag (Closes: #589731) + * generate cython c files, requires python-mako and cython build depends + * ensure that all swig files are regenerated + * update debian/orig-tar.sh appropriately + * interpnd-generator.patch: fix the interpnd.pyx generation + + -- Julian Taylor Thu, 29 Nov 2012 21:56:31 +0100 + +python-scipy (0.10.1+dfsg1-4) unstable; urgency=low + + [ Julian Taylor ] + * use dh_numpy3 + - build depend on python3-numpy >= 1:1.6.2~rc1-1~ + * debian/rules: remove reference to pyshared + + [ Varun Hiremath ] + * debian/patches: + - add dtype.diff (Closes: #682030) + - add up_minpack_ints.diff, thanks to Yaroslav Halchenko (Closes: #681270) + + -- Varun Hiremath Sat, 21 Jul 2012 17:23:02 -0400 + +python-scipy (0.10.1+dfsg1-3) unstable; urgency=low + + * wrap-and-sort debian folder + * add python3 packages (Closes: #664785) + * debian/rules: + - split the build into build and install step + - use .install files instead of direct setup.py install + + -- Julian Taylor Fri, 20 Apr 2012 21:59:33 +0200 + +python-scipy (0.10.1+dfsg1-2) unstable; urgency=low + + * debian/control: + - Recommends: python-imaging (Closes: #648036) + - Recommends: python-dev (Closes: #651760) + * debian/patches: + - Add kolmogorov.diff, thanks to Yaroslav Halchenko (Closes: #653948) + - Add kde.diff (Closes: #648034) + + -- Varun Hiremath Fri, 20 Apr 2012 02:37:28 -0400 + +python-scipy (0.10.1+dfsg1-1) unstable; urgency=low + + * New upstream release (Closes: #653262) + * Update debian/orig-tar.sh script + * debian/patches + - updated restore_sys_argv.patch + - removed string_exception.patch, not needed + + -- Varun Hiremath Thu, 19 Apr 2012 16:14:28 -0400 + +python-scipy (0.9.0+dfsg1-1) unstable; urgency=low + + * New upstream release (Closes: #614407, #579041, #569008) + * Convert to dh_python2 (Closes: #617028) + + -- Varun Hiremath Wed, 06 Apr 2011 21:26:25 -0400 + +python-scipy (0.8.0+dfsg1-1) experimental; urgency=low + + [ Varun Hiremath ] + * New upstream release + * Build-Depend on python-numpy-* (>= 1:1.5.1) + * Update all the debian/patches/* + + [ Luca Falavigna ] + * Remove myself from Uploaders. + + [ Stefano Rivera ] + * debian/patches/blitz++.patch: Fix scipy.weave.inline compilations. Thanks + to Sameer Morar (Closes: #598520, LP: #302649) + + -- Varun Hiremath Fri, 24 Dec 2010 08:20:54 -0500 + +python-scipy (0.7.2+dfsg1-1) unstable; urgency=low + + * Release with a new source tarball with missing cython source files + * debian/rules: Add get-orig-source target + * Add debian/README.source explaining the repackaging of source tarball + * Add debian/orig-tar.sh to add missing cython source files to the + source tarball (Closes: #589731) + * debian/rules: add call to dh_numpy to generate stricter versioned + depends on python-numpy (Closes: #590763) + * Bump Standards-Version to 3.9.1 + * Add myself to Uploaders + + -- Varun Hiremath Fri, 30 Jul 2010 18:29:18 -0400 + +python-scipy (0.7.2-2) unstable; urgency=low + + * debian/patches/string_exceptions.patch: + - Do not use string exceptions, not supported by Python 2.6. + + -- Luca Falavigna Mon, 07 Jun 2010 14:52:40 +0200 + +python-scipy (0.7.2-1) unstable; urgency=low + + * New upstream release. + * Switch to debhelper 7. + * Provide python-scipy-dbg package (Closes: #525329). + * Add myself to Uploaders. + + -- Luca Falavigna Sun, 25 Apr 2010 17:21:21 +0200 + +python-scipy (0.7.1-1) unstable; urgency=low + + [ Sandro Tosi ] + * debian/control + - removed Marco Presi from uploaders: thanks for your work! + + [ Luca Falavigna ] + * New upstream release. + - Fix KeyError exception in sparse module (Closes: #525109). + - Fix SyntaxWarning exception with python2.6 (Closes: #567148). + * debian/patches/restore_sys_argv.patch: + - Restore sys.argv in case of exception (Closes: #500814). + * debian/control: + - Depend on ${misc:Depends}. + - Drop useless Conflicts/Replaces fields. + - Bump Standards-Version to 3.8.4, no changes required. + * debian/README.Debian: + - Remove obsolete information. + * debian/pycompat: + - Remove, useless. + + -- Debian Python Modules Team Mon, 05 Apr 2010 17:10:56 +0200 + +python-scipy (0.7.0-2) unstable; urgency=medium + + [ Julien Lavergne ] + * debian/copyright : Update Copyright holders (Closes: #524131) + * From Ubuntu, prepare for the future python transition: + - debian/rules: + + Include /usr/share/python/python.mk + + Add $(py_setup_install_args) to setup.py install + + Replace site-packages by *-packages + - debian/control: + + Bump build-depends to python-all-dev (>= 2.5.4-1~) + + [ Luca Falavigna ] + * Remove patches, they are no longer needed and also causing FTBFS with + recent python-numpy. Remove quilt machinery too (Closes: #545606). + * debian/copyright: add missing copyright holder (Closes: #540504). + * debian/control: bump Standards-Version to 3.8.3, no changes required. + * debian/watch: fix regex to report correct upstream stable version. + + -- Debian Python Modules Team Tue, 15 Sep 2009 23:30:12 +0200 + +python-scipy (0.7.0-1) unstable; urgency=low + + [ Ondrej Certik ] + * Beta version + * debian/patches: scipy_include_fix.diff and segfault.patch removed (applied + upstream), swig_ftbfs.dpatch and umfpack.dpatch updated to new paths + + [ Sandro Tosi ] + * debian/control + - switch Vcs-Browser field to viewsvn + + [ David Cournapeau ] + * New upstream version + * Remove obsolete dependencies on libfftw3-dev, libx11-dev and libnetcdf-dev + * Update version for numpy dependency: scipy requires version >= 1.2.0 + * Set ATLAS to None when building scipy to avoid depending on ATLAS API, and + only use BLAS/LAPACK public API, even when ATLAS is installed on the build + machine + + -- Ondrej Certik Sun, 08 Mar 2009 18:47:03 -0700 + +python-scipy (0.6.0-12) unstable; urgency=low + + * The description updated to match the current SciPy (Closes: #489149). + * Standards-Version bumped to 3.8.0 (no action needed) + * Build-Depends: netcdf-dev changed to libnetcdf-dev + + -- Ondrej Certik Mon, 16 Jun 2008 22:58:01 +0200 + +python-scipy (0.6.0-11.1) unstable; urgency=low + + * Non-maintainer upload. + * Change description to refer to python-numpy package instead of Numeric + to avoid confusion with python-numeric package. + + -- Chris AtLee Wed, 23 Apr 2008 15:45:22 -0400 + +python-scipy (0.6.0-11) unstable; urgency=low + + * Fixes FTBFS, by unexporting LDFLAGS and setting FFLAGS directly, the same + hack as in numpy (Closes: #475990) + + -- Ondrej Certik Mon, 14 Apr 2008 14:53:57 +0200 + +python-scipy (0.6.0-10) unstable; urgency=low + + [Sandro Tosi] + * Fixes a dangling symlink (Closes: #471825) + + -- Ondrej Certik Thu, 20 Mar 2008 14:50:31 +0100 + +python-scipy (0.6.0-9) unstable; urgency=medium + + * Uses correct pycentral locations (Closes: #471549) + + -- Ondrej Certik Wed, 19 Mar 2008 21:41:12 +0100 + +python-scipy (0.6.0-8) unstable; urgency=low + + * Build depend on libsuitesparse (>= 3.1.0-3) + * Build depends fixed to use gfortran based lapack and blas (Closes: #466868) + + -- Ondrej Certik Sat, 23 Feb 2008 01:21:51 +0100 + +python-scipy (0.6.0-7) unstable; urgency=low + + * Bumped the version, because python-numpy conflicts with python-scipy (<= + 0.6.0-6). This compiles against the old suitesparse, but it makes the + package installable and working again. + + -- Ondrej Certik Thu, 21 Feb 2008 15:38:00 +0100 + +python-scipy (0.6.0-6) UNRELEASED; urgency=low + + * debian/control + - uniforming both Vcs-Svn and Vcs-Browser fields + + -- Sandro Tosi Thu, 03 Jan 2008 12:18:46 +0100 + +python-scipy (0.6.0-5.1) unstable; urgency=low + + * Non-maintainer upload. + * Changed `fftw3-dev' to `libfftw3-dev' to get rid of that dependency + on a virtual package. + * Fix FTBFS with relation to swig with a patch provided by + Kumar Appaiah (Closes: #456892) + + -- Philipp Kern Mon, 31 Dec 2007 13:45:10 +0100 + +python-scipy (0.6.0-5) unstable; urgency=low + + * DM-Upload-Allowed changed to XS-DM-Upload-Allowed + * standards-version made uptodate (3.7.3) + * don't create an empty dir usr/share/doc/python-scipy/weave/ + + -- Ondrej Certik Tue, 04 Dec 2007 22:27:48 +0100 + +python-scipy (0.6.0-4) unstable; urgency=low + + * Use quilt (much eaiser to use) instead of dpatch + * Paul's patch added (Closes: #452991) + * Add DM-Upload-Allowed: yes + + -- Ondrej Certik Mon, 03 Dec 2007 15:33:24 +0100 + +python-scipy (0.6.0-3) unstable; urgency=low + + [ Piotr Ożarowski ] + * Rename XS-Vcs-* fields to Vcs-* (dpkg supports them now) + + [ Ondrej Certik ] + * Depending on libsuitesparse-dev directly instead of libufsparse-dev + (Closes: #445771) + + -- Ondrej Certik Mon, 15 Oct 2007 20:09:07 +0200 + +python-scipy (0.6.0-2) unstable; urgency=medium + + * Replaced fftw-dev with fftw3-dev in Build-Depends (closes: #444124) + + -- Piotr Ożarowski Wed, 26 Sep 2007 23:52:25 +0200 + +python-scipy (0.6.0-1) unstable; urgency=low + + [Ondřej Čertík] + * New upstream release + * watch file added + + [Piotr Ożarowski] + * Homepage field added + + -- Ondrej Certik Sun, 23 Sep 2007 16:14:35 +0200 + +python-scipy (0.5.2.1-2) unstable; urgency=low + + * Got rid of all lintian and linda warnings (removed "SciPy is an open + source library of scientific tools for Python" (first sentence) from the + long description) + * debian/control: Added XS-Vcs-Svn and XS-Vcs-Browser fields to the Source + section + + -- Ondrej Certik Fri, 31 Aug 2007 04:29:55 +0200 + +python-scipy (0.5.2.1-1) unstable; urgency=low + + * Adopting the package + * New upstream release (Closes: #426012) + * Removed unnecessary patches + * Removing LICENSE.txt, since it is unnecessary (and it fixes a lintian + warning) + + -- Ondrej Certik Tue, 28 Aug 2007 12:03:29 +0200 + +python-scipy (0.5.2-9) experimental; urgency=low + + * Added Build-Dep on python-numpy (Closes: 422389) + * Made build independent of the python version (Closes: 414626) + * Added a new patch on sandbox/montecarlo to fix py2.5 compatibility + + -- Marco Presi (Zufus) Fri, 18 May 2007 11:12:31 +0100 + +python-scipy (0.5.2-8) experimental; urgency=low + + * Fixed compatibility with numpy >= 1.0.2, by importing parts from upstream svn + + -- Marco Presi (Zufus) Sat, 21 Apr 2007 22:46:29 +0100 + +python-scipy (0.5.2-7+b1) unstable; urgency=low + + * Binary-only non-maintainer upload for i386; no source changes. + * Rebuild to fix binaries built against experimental + + -- Debian/i386 Build Daemon Tue, 27 Feb 2007 02:01:45 -0600 + +python-scipy (0.5.2-7) unstable; urgency=low + + * Added 'm86k' among the archs on which xplt should not build. + + -- Marco Presi (Zufus) Sat, 24 Feb 2007 13:40:42 +0000 + +python-scipy (0.5.2-6) unstable; urgency=low + + * Merged patch for image viwer from upstream svn + + -- Marco Presi (Zufus) Sat, 24 Feb 2007 01:39:18 +0000 + +python-scipy (0.5.2-5) experimental; urgency=low + + * Added a fix in sandbox/montecarlo tests that prevented installation + + -- Marco Presi (Zufus) Thu, 22 Feb 2007 01:33:18 +0000 + +python-scipy (0.5.2-4) experimental; urgency=low + + * Incorporated code from setup_without_xplt.py into patches/sandbox.dpatch, in order to + build sandbox/xplt only on supported archs (Closes: #407869). + * Added libx11-dev among Build-Deps to support xplt. + + -- Marco Presi (Zufus) Thu, 22 Feb 2007 00:33:51 +0000 + +python-scipy (0.5.2-3) experimental; urgency=low + + * Added netcdfg-dev Build-Deps (completed sandbox inclusion) + + -- Marco Presi (Zufus) Tue, 20 Feb 2007 23:28:43 +0000 + +python-scipy (0.5.2-2) experimental; urgency=low + + * Enabled sandbox modules. To this aim randomkit.[ch] are included from + pyhon-numpy sources. See debian/patches/sandbox.dpatch + (Closes: #407869). + + -- Marco Presi (Zufus) Mon, 19 Feb 2007 19:26:22 +0000 + +python-scipy (0.5.2-1) unstable; urgency=low + + * Fixed scipy.signal segfault (closes: #410757) + * Replaced hard-coded xv command with "see" (from mime-support). + Additionally, the environment variable SCIPY_PIL_IMAGE_VIEWER can be set. + (Closes: #395198) + + -- Marco Presi (Zufus) Sun, 18 Feb 2007 16:22:03 +0000 + +python-scipy (0.5.2-0.1) unstable; urgency=medium + + * Remove build dependency on python-numpy-dev. + * python-scipy: Depend on python-numpy instead of python-numpy-dev. + * Package builds on other archs than i386. Closes: #402783. + + -- Matthias Klose Sun, 7 Jan 2007 14:12:12 +0100 + +python-scipy (0.5.2-0) experimental; urgency=low + + * New upstream version (compatible with python-numpy-1.0.x). + * (Build-)depend on python-numpy (>= 1:1.0.1). + * Remove redundant (build-)dependencies. + * weave examples and docs are removed from the upstream tarball. + + -- Matthias Klose Wed, 3 Jan 2007 22:37:49 +0100 + +python-scipy (0.5.1-3) unstable; urgency=low + + * Moved weave/examples into /usr/share/doc/python-scipy/ + and removed *.so files that prevented building on non x86 archs + (closes: #397241) + + -- Marco Presi (Zufus) Sat, 16 Sep 2006 18:46:56 +0200 + +python-scipy (0.5.1-2) unstable; urgency=low + + * Added swig and libufsparse-dev among Build-deps + + -- Marco Presi (Zufus) Mon, 11 Sep 2006 22:05:45 +0200 + +python-scipy (0.5.1-1) unstable; urgency=low + + * New upstream release + + -- Marco Presi (Zufus) Thu, 7 Sep 2006 00:32:07 +0200 + +python-scipy (0.5.0-3) unstable; urgency=low + + * Re-compiled to reflect C-API changes in numpy. + + -- Marco Presi (Zufus) Fri, 18 Aug 2006 01:06:06 +0200 + +python-scipy (0.5.0-2) unstable; urgency=low + + * Re-added fftw-dev among build-deps. + + -- Marco Presi (Zufus) Tue, 8 Aug 2006 17:34:44 -0400 + +python-scipy (0.5.0-1) unstable; urgency=low + + * New upstream release + * Removed debian/patches/python2.3.dpatch now included in upstream release + + -- Marco Presi (Zufus) Sun, 30 Jul 2006 00:33:21 +0200 + +python-scipy (0.4.9-2) unstable; urgency=low + + * Build against new release of python-numpy. + + -- José Fonseca Wed, 05 Jul 2006 18:06:41 +0100 + +python-scipy (0.4.9-1) unstable; urgency=low + + * New upstream version. + + -- José Fonseca Tue, 04 Jul 2006 16:11:01 +0100 + +python-scipy (0.3.2-9) unstable; urgency=low + + * Updated to new python policy (closes: #373352) + * Updated standards to 3.7.2 + + -- Alexandre Fayolle Thu, 15 Jun 2006 17:10:49 +0200 + +python-scipy (0.3.2-8) unstable; urgency=low + + * Changed dependency on libwxgtk2.4-1-python to python-wxgtk2.4 (closes: #333795) + * Added cow progress bar fix by Glen W. Mabey (closes: #322796) + + -- Alexandre Fayolle Tue, 8 Nov 2005 11:56:51 +0100 + +python-scipy (0.3.2-7) unstable; urgency=low + + * Depend on libwxgtk2.4-1-python due to new C++ ABI. + * Do not depend on obsolete blas-dev (Closes: #320441) + * Drop the python2.2 version due to python2.2-numeric removal. + * Applied Andreas Jochens' patch fixing gcc4.0 storage class + error (Closes: #302598) + + -- José Fonseca Sun, 31 Jul 2005 11:11:42 +0100 + +python-scipy (0.3.2-6) unstable; urgency=low + + * Added a Suggests: python2.X-profiler in debian/control, made the + import of pstats optional by patching stats/__init__.py + (Closes: #296796) + + -- Alexandre Fayolle Fri, 11 Mar 2005 10:54:35 +0100 + +python-scipy (0.3.2-5) unstable; urgency=low + + * Applied Adam Conrad's patch to allow build on m68k (Closes: #292919) + * Applied Andreas Jochens' patch fixing gcc4.0 incompatibility and + syntax error in debian/control (Closes: #288181) + + -- Alexandre Fayolle Thu, 17 Feb 2005 14:49:03 +0100 + +python-scipy (0.3.2-4) unstable; urgency=low + + * Build for python 2.4. + + -- José Fonseca Mon, 24 Jan 2005 12:25:16 +0000 + +python-scipy (0.3.2-3) unstable; urgency=low + + * fixed build dependencies on arm (Closes: #277897) + + -- Alexandre Fayolle Sat, 23 Oct 2004 11:28:51 +0200 + +python-scipy (0.3.2-2) unstable; urgency=low + + * Updated package description + * removed scipy.xplt on hppa, s390, ia64, mips, mipsel (Closes: #277485) + * Added note about the missing module in README.Debian + + -- Alexandre Fayolle Fri, 22 Oct 2004 15:05:00 +0200 + +python-scipy (0.3.2-1) unstable; urgency=low + + * New version. + + -- José Fonseca Mon, 18 Oct 2004 16:28:16 +0100 + +python-scipy (0.3.0+266.4239-1) unstable; urgency=low + + * Updated to release. + * Recommends c++-compiler. + * Dropped python2.1 support. + * Official package (closes: #126037). + * Added Alexandre Fayolle and Marco Presi as uploaders + * Added missing build dependencies + + -- Alexandre Fayolle Mon, 13 Sep 2004 23:04:34 +0200 + +python-scipy (0.2.0+cvs20031002-1) unstable; urgency=low + + * Moved scipy_core into a seperate package. + * Default to python-2.3. + + -- José Fonseca Thu, 02 Oct 2003 13:31:30 +0100 + +python-scipy (0.2.0+alpha144.4350-1) unstable; urgency=low + + * Initial Release. + + -- José Fonseca Tue, 01 Jul 2003 13:35:03 +0100 diff --git a/control b/control new file mode 100644 index 00000000..a28197f5 --- /dev/null +++ b/control @@ -0,0 +1,86 @@ +Source: scipy +Section: python +Priority: optional +Maintainer: Debian Python Team +Uploaders: Ondrej Certik , + David Cournapeau , + Varun Hiremath +Build-Depends: cython3 (>= 0.29.18), cython3 (<< 3.0), + debhelper-compat (= 13), + dh-sequence-python3, + pybuild-plugin-pyproject, + gfortran, + libblas-dev, + liblapack-dev, + liblbfgsb-dev, + libsuitesparse-dev (>= 3.1.0-3), + python3-all-dev (>= 3.7), + python3-decorator, + python3-numpy (>= 1:1.21.4), + python3-pybind11 (>= 2.4.3), + python3-pytest, + python3-setuptools, + python3-wheel, + python3-pythran [!armhf] +Build-Depends-Indep: dvipng, + dh-sequence-sphinxdoc, + python3-doc, + python3-docutils, + python3-matplotlib, + python3-numpydoc, + python3-pydata-sphinx-theme, + python3-sphinx, + python3-sphinx-panels, + rdfind, + symlinks, + texlive-latex-base, + texlive-latex-extra +Standards-Version: 4.6.1 +Homepage: https://www.scipy.org/ +Vcs-Git: https://salsa.debian.org/python-team/packages/scipy.git +Vcs-Browser: https://salsa.debian.org/python-team/packages/scipy + +Package: python3-scipy +Architecture: any +Multi-Arch: no +Depends: python3-decorator, + python3-numpy (>= 1:1.17.3~), + python3-pythran [!armhf], + ${misc:Depends}, + ${python3:Depends}, + ${shlibs:Depends} +Recommends: g++ | c++-compiler, python3-pil +Suggests: python-scipy-doc +Description: scientific tools for Python 3 + SciPy supplements the popular NumPy module (python-numpy package), gathering a + variety of high level science and engineering modules together as a single + package. + . + SciPy is a set of Open Source scientific and numeric tools for Python. It + currently supports special functions, integration, ordinary differential + equation (ODE) solvers, gradient optimization, genetic algorithms, parallel + programming tools, an expression-to-C++ compiler for fast execution, and + others. + +Package: python-scipy-doc +Depends: fonts-open-sans, + libjs-jquery, + libjs-mathjax, + libjs-underscore, + ${misc:Depends}, + ${sphinxdoc:Depends} +Section: doc +Architecture: all +Multi-Arch: foreign +Description: scientific library for Python - documentation + SciPy supplements the popular NumPy module (python-numpy package), gathering a + variety of high level science and engineering modules together as a single + package. + . + SciPy is a set of Open Source scientific and numeric tools for Python. It + currently supports special functions, integration, ordinary differential + equation (ODE) solvers, gradient optimization, genetic algorithms, parallel + programming tools, an expression-to-C++ compiler for fast execution, and + others. + . + This package contains documentation for the SciPy library. diff --git a/copyright b/copyright new file mode 100644 index 00000000..a01c62bc --- /dev/null +++ b/copyright @@ -0,0 +1,411 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: SciPy +Source: http://www.scipy.org/ + +Files: * +Copyright: 2003-2019 SciPy Developers + 1999-2005 Travis Oliphant + 2001-2002 Enthought, Inc. + 2002 Eric Jones + 2002 Patrick J. Miller + 2002-2003 Jochen Kuepper + 2002-2004 Pearu Peterson + 2002-2005 Jean-Sebastien Roy + 2003-2005 Peter J. Verveer + 2003-2006 Ed Schofield + 2003-2012 SciPy Developers. + 2004 David M. Cooke + 2006 Bart Vandereycken + 2006 BasSw + 2006 Johannes Loehnert + 2007 Andrew D Straw + 2007 John Travers, Robert Hetland + 2007-2008 Damian Eads + 2008 Tiziano Zito + Gary Strangman + 2010 Pauli Virtanen + 2010, 2011 Pim Schellart + 2009 Yosef Meller +License: BSD-3-clause +Comment: the files in scipy/io/tests/data/*.sav are IDL formatted test data files + and can be read with the functions in scipy/io/idl.py + they contain a EULA notice which is likely invalid and ignored by debian, see + also https://lists.debian.org/debian-legal/2014/06/msg00001.html + +Files: doc/source/_static/scipy-mathjax/* +Copyright: 2009-2017 The MathJax Consortium +License: Apache-2.0 + +Files: doc/source/_static/scipy.css +Copyright: 2009-2017 The MathJax Consortium + 2019 Jonathan Neal "font-family: no-parens" +Comments: + Code snippet "font-family: no-parens" retrieved + from https://codepen.io/jonneal/pen/bXLEdB (MIT) +License: Apache-2.0+MIT + Code snippet "font-family: no-parens" under MIT licence: + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + . + Other parts of scipy.css released under the standard SciPy Apache-2.0 + licence. + +Files: doc/sphinxext/* doc/sphinxext/numpydoc/* +Copyright: 2008 Stefan van der Walt , + Pauli Virtanen +License: BSD-2-clause + +Files: benchmarks/benchmarks/go_benchmark_functions/*.py +Copyright: 2013 Andrea Gavana +License: expat +Comment: Functions for testing global optimizers, + forked from the AMPGO project, https://code.google.com/archive/p/ampgo + +Files: scipy/fft/_pocketfft/* +Copyright: 2010-2019 Max-Planck-Society +License: BSD-3-clause + +Files: scipy/fft/_pocketfft/pocketfft_hdronly.h +Copyright: 2010-2019 Max-Planck-Society, Martin Reinecke + 2019 Peter Bell + 2003,2007-2014 Matteo Frigo, Massachusetts Institute of Technology +License: BSD-3-clause + +Files: scipy/linalg/src/id_dist/* +Copyright: 2014, P.-G. Martinsson, V. Rokhlin, Y. Shkolnisky, M. Tygert +License: BSD-3-clause + +Files: scipy/misc/ascent.dat +Copyright: public-domain +License: public-domain + No permission whatsoever is needed to copy or use public domain works. Public + domain material is available for anyone to use for any purpose, private and + commercial. Public domain works can serve as the foundation for new creative + works. Public domain works can also be copied and distributed without any + permission or paying royalties + +Files: scipy/ndimage/* +Copyright: 2003-2005, Peter J. Verveer +License: BSD-3-clause + +Files: scipy/optimize/_highs/* +Copyright: 2020 ERGO-Code +License: Expat + +Files: scipy/optimize/lbfgsb_src/*.f +Copyright: 2011 Ciyou Zhu, Richard Byrd, and Jorge Nocedal +License: BSD-generic + The version included here (in lbfgsb.f) is 3.0 (released April 25, 2011). It was + written by Ciyou Zhu, Richard Byrd, and Jorge Nocedal . It + carries the following condition for use: + . + """ + This software is freely available, but we expect that all publications + describing work using this software, or all commercial products using it, + quote at least one of the references given below. This software is released + under the BSD License. + . + References + * R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound + Constrained Optimization, (1995), SIAM Journal on Scientific and + Statistical Computing, 16, 5, pp. 1190-1208. + * C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: L-BFGS-B, + FORTRAN routines for large scale bound constrained optimization (1997), + ACM Transactions on Mathematical Software, 23, 4, pp. 550 - 560. + * J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: L-BFGS-B, + FORTRAN routines for large scale bound constrained optimization (2011), + ACM Transactions on Mathematical Software, 38, 1. + """ + +Files: scipy/optimize/lbfgsb_src/lbfgsb.pyf +Copyright: 2004 David M. Cooke + 2012 Joonas Paalasmaa +License: Expat + +Files: scipy/sparse/csgraph/_matching.pyx +Copyright: 1987, A. Volgenant/Amsterdam School of Economics, + University of Amsterdam +License: BSD-3-clause + +Files: scipy/sparse/linalg/_dsolve/SuperLU/* +Copyright: 2003, The Regents of the University of California, + through Lawrence Berkeley National Laboratory (subject to receipt + of any required approvals from U.S. Dept. of Energy) +License: BSD-3-clause + +Files: scipy/sparse/linalg/_eigen/arpack/* +Copyright: 1996-2008 Rice University, + 1996-2008 D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff + 2001-2011 Scilab Enterprises, Allan Cornet, Sylvestre Ledru + 2007 - Sébastien Fabbro (gentoo patch) + 2010 - Jordi Gutiérrez Hermoso (Octave patch) +License: BSD-3-clause + +Files: scipy/spatial/qhull_src/* +Copyright: 1993-2015, The Geometry Center (University of Minnesota) + 1993-2015, C.B. Barber +License: qhullbsd + This software includes Qhull from C.B. Barber and The Geometry Center. + Qhull is copyrighted as noted above. Qhull is free software and may + be obtained via http from www.qhull.org. It may be freely copied, modified, + and redistributed under the following conditions: + . + 1. All copyright notices must remain intact in all files. + . + 2. A copy of this text file must be distributed along with any copies + of Qhull that you redistribute; this includes copies that you have + modified, or copies of programs or other software products that + include Qhull. + . + 3. If you modify Qhull, you must include a notice giving the + name of the person performing the modification, the date of + modification, and the reason for such modification. + . + 4. When distributing modified versions of Qhull, or other software + products that include Qhull, you must provide notice that the original + source code may be obtained as noted above. + . + 5. There is no warranty or other guarantee of fitness for Qhull, it is + provided solely "as is". Bug reports or fixes may be sent to + qhull_bug@qhull.org; the authors may or may not act on them as + they desire. + +Files: scipy/special/cephes/* +Copyright: 1984, 1987, 1989, 2000 Stephen L. Moshier +License: BSD-3-clause + +Files: scipy/special/cephes/dd_*.c scipy/special/cephes/dd_*.h +Copyright: 2003-2009, The Regents of the University of California, + through Lawrence Berkeley National Laboratory (subject to receipt of + any required approvals from U.S. Dept. of Energy) +License: BSD-LBNL +Comment: This work was supported by the Director, Office of Science, Division + of Mathematical, Information, and Computational Sciences of the + U.S. Department of Energy under contract numbers DE-AC03-76SF00098 and + DE-AC02-05CH11231. + +Files: scipy/special/Faddeeva.cc scipy/special/Faddeeva.hh +Copyright: 2012 Massachusetts Institute of Technology +License: Expat + +Files: scipy/_lib/_uarray/* +Copyright: 2018, Quansight-Labs +License: BSD-3-clause + +Files: scipy/_lib/decorator.py +Copyright: 2005-2015 Michele Simionato +License: bsdlike + All rights reserved. + . + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + Redistributions in bytecode form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +License: Apache-2.0 + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy + of the License at + . + http://www.apache.org/licenses/LICENSE-2.0 + . + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + . + On Debian systems, the full text of the Apache License, Version 2.0 + can be found in the file + `/usr/share/common-licenses/Apache-2.0'. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + a. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + b. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + c. Neither the name of Enthought nor the names of the SciPy Developers + may be used to endorse or promote products derived from this software + without specific prior written permission. + . + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH + DAMAGE. + +License: BSD-LBNL + 1. Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the following + conditions are met: + . + (1) Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. + . + (2) Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + (3) Neither the name of the University of California, Lawrence + Berkeley National Laboratory, U.S. Dept. of Energy nor the names + of its contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + . + 2. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + . + 3. You are under no obligation whatsoever to provide any bug fixes, + patches, or upgrades to the features, functionality or performance of + the source code ("Enhancements") to anyone; however, if you choose to + make your Enhancements available either publicly, or directly to + Lawrence Berkeley National Laboratory, without imposing a separate + written license agreement for such Enhancements, then you hereby grant + the following license: a non-exclusive, royalty-free perpetual license + to install, use, modify, prepare derivative works, incorporate into + other computer software, distribute, and sublicense such enhancements + or derivative works thereof, in binary and source code form. +Comment: modified BSD license + +License: Expat + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in the + Software without restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the + Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + . + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License: PSF-2 + PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 + . + 1. This LICENSE AGREEMENT is between the Python Software Foundation + ("PSF"), and the Individual or Organization ("Licensee") accessing and + otherwise using this software ("Python") in source or binary form and + its associated documentation. + . + 2. Subject to the terms and conditions of this License Agreement, PSF hereby + grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, + analyze, test, perform and/or display publicly, prepare derivative works, + distribute, and otherwise use Python alone or in any derivative version, + provided, however, that PSF's License Agreement and PSF's notice of copyright, + i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, + 2011, 2012, 2013 Python Software Foundation; All Rights Reserved" are retained + in Python alone or in any derivative version prepared by Licensee. + . + 3. In the event Licensee prepares a derivative work that is based on + or incorporates Python or any part thereof, and wants to make + the derivative work available to others as provided herein, then + Licensee hereby agrees to include in any such work a brief summary of + the changes made to Python. + . + 4. PSF is making Python available to Licensee on an "AS IS" + basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR + IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND + DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS + FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT + INFRINGE ANY THIRD PARTY RIGHTS. + . + 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON + FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS + A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, + OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + . + 6. This License Agreement will automatically terminate upon a material + breach of its terms and conditions. + . + 7. Nothing in this License Agreement shall be deemed to create any + relationship of agency, partnership, or joint venture between PSF and + Licensee. This License Agreement does not grant permission to use PSF + trademarks or trade name in a trademark sense to endorse or promote + products or services of Licensee, or any third party. + . + 8. By copying, installing or otherwise using Python, Licensee + agrees to be bound by the terms and conditions of this License + Agreement. diff --git a/patches/0008-Don-t-treat-warnings-as-errors-in-pytest.patch b/patches/0008-Don-t-treat-warnings-as-errors-in-pytest.patch new file mode 100644 index 00000000..ca510b82 --- /dev/null +++ b/patches/0008-Don-t-treat-warnings-as-errors-in-pytest.patch @@ -0,0 +1,20 @@ +From: Jochen Sprickerhof +Date: Sun, 18 Dec 2022 10:33:23 +0100 +Subject: Don't treat warnings as errors in pytest + +--- + pytest.ini | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/pytest.ini b/pytest.ini +index a4deb42..3438da8 100644 +--- a/pytest.ini ++++ b/pytest.ini +@@ -3,7 +3,6 @@ addopts = -l + junit_family=xunit2 + + filterwarnings = +- error + always::scipy._lib._testutils.FPUModeChangeWarning + ignore:.*deprecated and ignored since IPython.*:DeprecationWarning + once:.*LAPACK bug 0038.*:RuntimeWarning diff --git a/patches/0009-Remove-some-documentation-referencing-the-source.patch b/patches/0009-Remove-some-documentation-referencing-the-source.patch new file mode 100644 index 00000000..5b5b355b --- /dev/null +++ b/patches/0009-Remove-some-documentation-referencing-the-source.patch @@ -0,0 +1,125 @@ +From: Jochen Sprickerhof +Date: Tue, 20 Dec 2022 09:45:22 +0100 +Subject: Remove some documentation referencing the source + +These break in sbuild with: + +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 281, in build_main + app.build(args.force_all, args.filenames) + File "/usr/lib/python3/dist-packages/sphinx/application.py", line 341, in build + self.builder.build_update() + File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 310, in build_update + self.build(to_build, + File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 376, in build + self.write(docnames, list(updated_docnames), method) + File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 571, in write + self._write_serial(sorted(docnames)) + File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 574, in _write_serial + with logging.pending_warnings(): + File "/usr/lib/python3.10/contextlib.py", line 142, in __exit__ + next(self.gen) + File "/usr/lib/python3/dist-packages/sphinx/util/logging.py", line 218, in pending_warnings + memhandler.flushTo(logger) + File "/usr/lib/python3/dist-packages/sphinx/util/logging.py", line 183, in flushTo + logger.handle(record) + File "/usr/lib/python3.10/logging/__init__.py", line 1634, in handle + self.callHandlers(record) + File "/usr/lib/python3.10/logging/__init__.py", line 1696, in callHandlers + hdlr.handle(record) + File "/usr/lib/python3.10/logging/__init__.py", line 964, in handle + rv = self.filter(record) + File "/usr/lib/python3.10/logging/__init__.py", line 821, in filter + result = f.filter(record) + File "/usr/lib/python3/dist-packages/sphinx/util/logging.py", line 499, in filter + record.location = get_node_location(location) + File "/usr/lib/python3/dist-packages/sphinx/util/logging.py", line 519, in get_node_location + source = abspath(source) + File "/usr/lib/python3/dist-packages/sphinx/util/osutil.py", line 136, in abspath + pathdir = path.abspath(pathdir) + File "/usr/lib/python3.10/posixpath.py", line 378, in abspath + path = os.fspath(path) +TypeError: expected str, bytes or os.PathLike object, not StringList +--- + doc/source/reference/optimize.qap-2opt.rst | 8 -------- + doc/source/reference/optimize.qap-faq.rst | 8 -------- + doc/source/reference/sparse.linalg.svds-arpack.rst | 8 -------- + doc/source/reference/sparse.linalg.svds-lobpcg.rst | 8 -------- + doc/source/reference/sparse.linalg.svds-propack.rst | 8 -------- + 5 files changed, 40 deletions(-) + delete mode 100644 doc/source/reference/optimize.qap-2opt.rst + delete mode 100644 doc/source/reference/optimize.qap-faq.rst + delete mode 100644 doc/source/reference/sparse.linalg.svds-arpack.rst + delete mode 100644 doc/source/reference/sparse.linalg.svds-lobpcg.rst + delete mode 100644 doc/source/reference/sparse.linalg.svds-propack.rst + +diff --git a/doc/source/reference/optimize.qap-2opt.rst b/doc/source/reference/optimize.qap-2opt.rst +deleted file mode 100644 +index f2ac70e..0000000 +--- a/doc/source/reference/optimize.qap-2opt.rst ++++ /dev/null +@@ -1,8 +0,0 @@ +-.. _optimize.qap-2opt: +- +-quadratic_assignment(method='2opt') +----------------------------------------- +- +-.. scipy-optimize:function:: scipy.optimize.quadratic_assignment +- :impl: scipy.optimize._qap._quadratic_assignment_2opt +- :method: 2opt +diff --git a/doc/source/reference/optimize.qap-faq.rst b/doc/source/reference/optimize.qap-faq.rst +deleted file mode 100644 +index 385274a..0000000 +--- a/doc/source/reference/optimize.qap-faq.rst ++++ /dev/null +@@ -1,8 +0,0 @@ +-.. _optimize.qap-faq: +- +-quadratic_assignment(method='faq') +----------------------------------------- +- +-.. scipy-optimize:function:: scipy.optimize.quadratic_assignment +- :impl: scipy.optimize._qap._quadratic_assignment_faq +- :method: faq +diff --git a/doc/source/reference/sparse.linalg.svds-arpack.rst b/doc/source/reference/sparse.linalg.svds-arpack.rst +deleted file mode 100644 +index 6651c94..0000000 +--- a/doc/source/reference/sparse.linalg.svds-arpack.rst ++++ /dev/null +@@ -1,8 +0,0 @@ +-.. _sparse.linalg.svds-arpack: +- +-svds(solver='arpack') +----------------------------------------- +- +-.. scipy-optimize:function:: scipy.sparse.linalg.svds +- :impl: scipy.sparse.linalg._eigen._svds_doc._svds_arpack_doc +- :method: arpack +diff --git a/doc/source/reference/sparse.linalg.svds-lobpcg.rst b/doc/source/reference/sparse.linalg.svds-lobpcg.rst +deleted file mode 100644 +index 52e91e6..0000000 +--- a/doc/source/reference/sparse.linalg.svds-lobpcg.rst ++++ /dev/null +@@ -1,8 +0,0 @@ +-.. _sparse.linalg.svds-lobpcg: +- +-svds(solver='lobpcg') +----------------------------------------- +- +-.. scipy-optimize:function:: scipy.sparse.linalg.svds +- :impl: scipy.sparse.linalg._eigen._svds_doc._svds_lobpcg_doc +- :method: lobpcg +diff --git a/doc/source/reference/sparse.linalg.svds-propack.rst b/doc/source/reference/sparse.linalg.svds-propack.rst +deleted file mode 100644 +index ac282f9..0000000 +--- a/doc/source/reference/sparse.linalg.svds-propack.rst ++++ /dev/null +@@ -1,8 +0,0 @@ +-.. _sparse.linalg.svds-propack: +- +-svds(solver='propack') +----------------------------------------- +- +-.. scipy-optimize:function:: scipy.sparse.linalg.svds +- :impl: scipy.sparse.linalg._eigen._svds_doc._svds_propack_doc +- :method: propack diff --git a/patches/0010-Allow-test_svds_parameter_k_which-to-fail-on-armel.patch b/patches/0010-Allow-test_svds_parameter_k_which-to-fail-on-armel.patch new file mode 100644 index 00000000..01771d35 --- /dev/null +++ b/patches/0010-Allow-test_svds_parameter_k_which-to-fail-on-armel.patch @@ -0,0 +1,27 @@ +From: Jochen Sprickerhof +Date: Tue, 20 Dec 2022 19:29:15 +0100 +Subject: Allow test_svds_parameter_k_which to fail on armel + +--- + scipy/sparse/linalg/_eigen/tests/test_svds.py | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/scipy/sparse/linalg/_eigen/tests/test_svds.py b/scipy/sparse/linalg/_eigen/tests/test_svds.py +index cd4c531..2be52fd 100644 +--- a/scipy/sparse/linalg/_eigen/tests/test_svds.py ++++ b/scipy/sparse/linalg/_eigen/tests/test_svds.py +@@ -1,4 +1,5 @@ + import os ++import platform + import re + import copy + import numpy as np +@@ -245,6 +246,8 @@ class SVDSCommonTests: + _check_svds(A, k, *res, which=which, atol=8e-10) + + # loop instead of parametrize for simplicity ++ @pytest.mark.xfail(platform.machine() == 'armv8l', ++ reason="fails on armel") + def test_svds_parameter_tol(self): + if self.solver == 'propack': + if not has_propack: diff --git a/patches/0011-BUG-fix-syevr-series-segfault-by-explicitly-specifyi.patch b/patches/0011-BUG-fix-syevr-series-segfault-by-explicitly-specifyi.patch new file mode 100644 index 00000000..de05ba31 --- /dev/null +++ b/patches/0011-BUG-fix-syevr-series-segfault-by-explicitly-specifyi.patch @@ -0,0 +1,84 @@ +From: Mamoru TASAKA +Date: Sun, 3 Jul 2022 16:11:18 +0900 +Subject: BUG: fix syevr series segfault by explicitly specifying operator + priority + +With numpy 1.22.x f2py, dimension of isuppz in syevr is mistranslated. +Avoid this by explicitly specifying operator priority with parenthesis. + +Fixes #16527 +--- + scipy/linalg/flapack_sym_herm.pyf.src | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/scipy/linalg/flapack_sym_herm.pyf.src b/scipy/linalg/flapack_sym_herm.pyf.src +index 8df741c..f07dbae 100644 +--- a/scipy/linalg/flapack_sym_herm.pyf.src ++++ b/scipy/linalg/flapack_sym_herm.pyf.src +@@ -772,10 +772,10 @@ subroutine syevr(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z,m + integer intent(hide),dimension(liwork),depend(liwork) :: iwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?(*range=='I'?iu-il+1:MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z ++ intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?((*range=='I')?(iu-il+1):MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z + integer intent(out) :: m + ! Only returned if range=='A' or range=='I' and il, iu = 1, n +- integer intent(out),dimension((compute_v?(2*(*range=='A'||(*range=='I' && iu-il+1==n)?n:0)):0)),depend(n,iu,il,compute_v,range) :: isuppz ++ integer intent(out),dimension((compute_v?(2*((*range=='A')||((*range=='I') && (iu-il+1==n))?n:0)):0)),depend(n,iu,il,compute_v,range) :: isuppz + integer intent(out) :: info + + end subroutine syevr +@@ -844,7 +844,7 @@ subroutine heevr(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z, + integer intent(hide),dimension(liwork),depend(liwork) :: iwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?(*range=='I'?iu-il+1:MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z ++ intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?((*range=='I')?(iu-il+1):MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z + integer intent(out) :: m + ! MKL implementation has a bug that still accesses isuppz array even if + ! range=='A' or range=='I' and il, iu = 1, n which is not the case for +@@ -852,7 +852,7 @@ subroutine heevr(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z, + ! of the settings. It is wasteful but necessary. The bug is fixed in + ! mkl 2020 update 2 and when time comes change this line with + ! +- ! integer intent(out),dimension((compute_v?(2*(*range=='A'||(*range=='I' && iu-il+1==n)?n:0)):0)),depend(n,iu,il,range,compute_v) :: isuppz ++ ! integer intent(out),dimension((compute_v?(2*(*range=='A'||((*range=='I') && (iu-il+1==n))?n:0)):0)),depend(n,iu,il,range,compute_v) :: isuppz + ! + integer intent(out),dimension(2*max(1,n)),depend(n) :: isuppz + integer intent(out) :: info +@@ -919,7 +919,7 @@ subroutine syevx(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z,m + integer intent(hide),dimension(5*n),depend(n) :: iwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?(*range=='I'?iu-il+1:MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z ++ intent(out),dimension((compute_v?MAX(0,n):0),(compute_v?((*range=='I')?(iu-il+1):MAX(1,n)):0)),depend(n,compute_v,range,iu,il) :: z + integer intent(out) :: m + integer intent(out),dimension((compute_v?n:0)),depend(compute_v,n):: ifail + integer intent(out) :: info +@@ -984,7 +984,7 @@ subroutine heevx(compute_v,range,lower,n,a,lda,vl,vu,il,iu,abstol,w,z, + intent(hide),dimension(7*n),depend(n) :: rwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((compute_v*n),(compute_v?(*range=='I'?iu-il+1:MAX(1,n)):0)),depend(compute_v,range,n,iu,il) :: z ++ intent(out),dimension((compute_v*n),(compute_v?((*range=='I')?(iu-il+1):MAX(1,n)):0)),depend(compute_v,range,n,iu,il) :: z + integer intent(out) :: m + integer intent(out),dimension(compute_v*n),depend(compute_v,n):: ifail + integer intent(out) :: info +@@ -1222,7 +1222,7 @@ subroutine sygvx(itype,jobz,range,uplo,n,a,lda,b,ldb,vl,vu,il,iu,abstol + integer intent(hide),dimension(5*n),depend(n) :: iwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((jobz[0]=='V'?MAX(0,n):0),(jobz[0]=='V'?(range[0]=='I'?iu-il+1:MAX(1,n)):0)),depend(n,jobz,range,iu,il) :: z ++ intent(out),dimension((jobz[0]=='V'?MAX(0,n):0),(jobz[0]=='V'?((range[0]=='I')?(iu-il+1):MAX(1,n)):0)),depend(n,jobz,range,iu,il) :: z + integer intent(out) :: m + integer intent(out),dimension((jobz[0]=='N'?0:n)),depend(jobz,n):: ifail + integer intent(out) :: info +@@ -1293,7 +1293,7 @@ subroutine hegvx(itype,jobz,range,uplo,n,a,lda,b,ldb,vl,vu,il,iu,absto + intent(hide),dimension(7*n),depend(n) :: rwork + + intent(out),dimension(n),depend(n) :: w +- intent(out),dimension((jobz[0]=='V'?MAX(0,n):0),(jobz[0]=='V'?(range[0]=='I'?iu-il+1:MAX(1,n)):0)),depend(n,jobz,range,iu,il) :: z ++ intent(out),dimension((jobz[0]=='V'?MAX(0,n):0),(jobz[0]=='V'?((range[0]=='I')?(iu-il+1):MAX(1,n)):0)),depend(n,jobz,range,iu,il) :: z + integer intent(out) :: m + integer intent(out),dimension((jobz[0]=='N'?0:n)),depend(jobz,n):: ifail + integer intent(out) :: info diff --git a/patches/0012-MAINT-Handle-numpy-s-deprecation-of-accepting-out-of.patch b/patches/0012-MAINT-Handle-numpy-s-deprecation-of-accepting-out-of.patch new file mode 100644 index 00000000..e8d111f3 --- /dev/null +++ b/patches/0012-MAINT-Handle-numpy-s-deprecation-of-accepting-out-of.patch @@ -0,0 +1,94 @@ +From: warren +Date: Tue, 11 Oct 2022 21:41:23 -0400 +Subject: MAINT: Handle numpy's deprecation of accepting out-of-bound + integers. + +After the change in https://github.com/numpy/numpy/pull/22385, numpy +raises a deprecation warning with calls such as np.int8(5000) and +np.uint32(-1). This change avoids such calls in the tests. +--- + scipy/sparse/tests/test_base.py | 4 ++-- + scipy/sparse/tests/test_sparsetools.py | 13 ++++++++++--- + scipy/spatial/tests/test_distance.py | 7 ++++--- + 3 files changed, 16 insertions(+), 8 deletions(-) + +diff --git a/scipy/sparse/tests/test_base.py b/scipy/sparse/tests/test_base.py +index dc9e940..4362bde 100644 +--- a/scipy/sparse/tests/test_base.py ++++ b/scipy/sparse/tests/test_base.py +@@ -1011,8 +1011,8 @@ class _TestCommon: + def test_mean(self): + def check(dtype): + dat = array([[0, 1, 2], +- [3, -4, 5], +- [-6, 7, 9]], dtype=dtype) ++ [3, 4, 5], ++ [6, 7, 9]], dtype=dtype) + datsp = self.spmatrix(dat, dtype=dtype) + + assert_array_almost_equal(dat.mean(), datsp.mean()) +diff --git a/scipy/sparse/tests/test_sparsetools.py b/scipy/sparse/tests/test_sparsetools.py +index 8c725c1..06d3fcf 100644 +--- a/scipy/sparse/tests/test_sparsetools.py ++++ b/scipy/sparse/tests/test_sparsetools.py +@@ -14,6 +14,13 @@ import pytest + from pytest import raises as assert_raises + + ++def int_to_int8(n): ++ """ ++ Wrap an integer to the interval [-128, 127]. ++ """ ++ return (n + 128) % 256 - 128 ++ ++ + def test_exception(): + assert_raises(MemoryError, _sparsetools.test_throw_error) + +@@ -157,7 +164,7 @@ class TestInt32Overflow: + m = dia_matrix((data, offsets), shape=(n, n)) + v = np.ones(m.shape[1], dtype=np.int8) + r = m.dot(v) +- assert_equal(r[0], np.int8(n)) ++ assert_equal(r[0], int_to_int8(n)) + del data, offsets, m, v, r + gc.collect() + +@@ -219,7 +226,7 @@ class TestInt32Overflow: + + # _matvecs + r = m.dot(np.ones((n, 2), dtype=np.int8)) +- assert_equal(r[0,0], np.int8(n)) ++ assert_equal(r[0, 0], int_to_int8(n)) + + def _check_bsr_matvec(self, m): + m = m() +@@ -227,7 +234,7 @@ class TestInt32Overflow: + + # _matvec + r = m.dot(np.ones((n,), dtype=np.int8)) +- assert_equal(r[0], np.int8(n)) ++ assert_equal(r[0], int_to_int8(n)) + + def _check_bsr_diagonal(self, m): + m = m() +diff --git a/scipy/spatial/tests/test_distance.py b/scipy/spatial/tests/test_distance.py +index a5b580f..ab38219 100644 +--- a/scipy/spatial/tests/test_distance.py ++++ b/scipy/spatial/tests/test_distance.py +@@ -2007,11 +2007,12 @@ def test_sqeuclidean_dtypes(): + assert_(np.issubdtype(d.dtype, np.floating)) + + for dtype in [np.uint8, np.uint16, np.uint32, np.uint64]: +- d1 = wsqeuclidean([0], np.asarray([-1], dtype=dtype)) +- d2 = wsqeuclidean(np.asarray([-1], dtype=dtype), [0]) ++ umax = np.iinfo(dtype).max ++ d1 = wsqeuclidean([0], np.asarray([umax], dtype=dtype)) ++ d2 = wsqeuclidean(np.asarray([umax], dtype=dtype), [0]) + + assert_equal(d1, d2) +- assert_equal(d1, np.float64(np.iinfo(dtype).max)**2) ++ assert_equal(d1, np.float64(umax)**2) + + dtypes = [np.float32, np.float64, np.complex64, np.complex128] + for dtype in ['float16', 'float128']: diff --git a/patches/0013-MAINT-casting-errstate-for-NumPy-1.24.patch b/patches/0013-MAINT-casting-errstate-for-NumPy-1.24.patch new file mode 100644 index 00000000..0e586377 --- /dev/null +++ b/patches/0013-MAINT-casting-errstate-for-NumPy-1.24.patch @@ -0,0 +1,109 @@ +From: Tyler Reddy +Date: Mon, 19 Dec 2022 20:22:21 -0700 +Subject: MAINT: casting errstate for NumPy 1.24 + +* Attempts to deal with the ARM-specific portion +of gh-17630 -- these issues appear to be the +result of NumPy 1.24.0 change: +https://numpy.org/devdocs/release/1.24.0-notes.html#numpy-now-gives-floating-point-errors-in-casts + +* I was able to reproduce and fix the issues +in `scipy/sparse/tests/test_base` on an ARM node + +* however, for `test_decomp_update` I actually saw more severe +problems when working on a Cavium ThunderX2 B0 node; +for the latter cases, I'll paste what I saw below +for some of the representative failures, but for now +I just tried to patch the less severe casting errors I see +in the CI for those tests to see if it helps (I'm hoping that +my own flavor of OpenBLAS is just throwing things off locally +and I can at least delay looking into that for now...) + +``` +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_neg_strides_economic_rank_p - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_neg_strides_rank_p - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_non_itemsize_strides_rank_p - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_non_native_byte_order_economic_rank_1 - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_non_unit_strides_rank_p - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_D::test_economic_rank_p - AssertionError: +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_d::test_non_native_byte_order_rank_1 - ValueError: array must not contain infs or NaNs +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_D::test_Mx1_economic_rank_p - AssertionError: +FAILED scipy/linalg/tests/test_decomp_update.py::TestQRupdate_D::test_economic_rank_1 - AssertionError: +``` +--- + scipy/linalg/tests/test_decomp_update.py | 9 ++++++--- + scipy/sparse/tests/test_base.py | 12 ++++++++---- + 2 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/scipy/linalg/tests/test_decomp_update.py b/scipy/linalg/tests/test_decomp_update.py +index 2477295..3306833 100644 +--- a/scipy/linalg/tests/test_decomp_update.py ++++ b/scipy/linalg/tests/test_decomp_update.py +@@ -581,7 +581,8 @@ class BaseQRdelete(BaseQRdeltas): + a, q0, r0 = self.generate('tall') + for dtype in dts: + q = q0.real.astype(dtype) +- r = r0.real.astype(dtype) ++ with np.errstate(invalid="ignore"): ++ r = r0.real.astype(dtype) + assert_raises(ValueError, qr_delete, q, r0, 0, 1, 'row') + assert_raises(ValueError, qr_delete, q, r0, 0, 2, 'row') + assert_raises(ValueError, qr_delete, q, r0, 0, 1, 'col') +@@ -1125,7 +1126,8 @@ class BaseQRinsert(BaseQRdeltas): + a, q0, r0, u0 = self.generate('sqr', which='row') + for dtype in dts: + q = q0.real.astype(dtype) +- r = r0.real.astype(dtype) ++ with np.errstate(invalid="ignore"): ++ r = r0.real.astype(dtype) + u = u0.real.astype(dtype) + assert_raises(ValueError, qr_insert, q, r0, u0, 0, 'row') + assert_raises(ValueError, qr_insert, q, r0, u0, 0, 'col') +@@ -1558,7 +1560,8 @@ class BaseQRupdate(BaseQRdeltas): + a, q0, r0, u0, v0 = self.generate('tall') + for dtype in dts: + q = q0.real.astype(dtype) +- r = r0.real.astype(dtype) ++ with np.errstate(invalid="ignore"): ++ r = r0.real.astype(dtype) + u = u0.real.astype(dtype) + v = v0.real.astype(dtype) + assert_raises(ValueError, qr_update, q, r0, u0, v0) +diff --git a/scipy/sparse/tests/test_base.py b/scipy/sparse/tests/test_base.py +index 4362bde..9e2ec87 100644 +--- a/scipy/sparse/tests/test_base.py ++++ b/scipy/sparse/tests/test_base.py +@@ -3241,11 +3241,13 @@ class _TestArithmetic: + + # check conversions + for x in supported_dtypes: +- A = self.__A.astype(x) ++ with np.errstate(invalid="ignore"): ++ A = self.__A.astype(x) + Asp = self.spmatrix(A) + for y in supported_dtypes: + if not np.issubdtype(y, np.complexfloating): +- B = self.__B.real.astype(y) ++ with np.errstate(invalid="ignore"): ++ B = self.__B.real.astype(y) + else: + B = self.__B.astype(y) + Bsp = self.spmatrix(B) +@@ -3280,13 +3282,15 @@ class _TestArithmetic: + self.__A @ self.__B.T) + + for x in supported_dtypes: +- A = self.__A.astype(x) ++ with np.errstate(invalid="ignore"): ++ A = self.__A.astype(x) + Asp = self.spmatrix(A) + for y in supported_dtypes: + if np.issubdtype(y, np.complexfloating): + B = self.__B.astype(y) + else: +- B = self.__B.real.astype(y) ++ with np.errstate(invalid="ignore"): ++ B = self.__B.real.astype(y) + Bsp = self.spmatrix(B) + + D1 = A @ B.T diff --git a/patches/0014-MAINT-fix-up-_sputils.get_index_dtype-for-NEP-50-cas.patch b/patches/0014-MAINT-fix-up-_sputils.get_index_dtype-for-NEP-50-cas.patch new file mode 100644 index 00000000..b88dc9b8 --- /dev/null +++ b/patches/0014-MAINT-fix-up-_sputils.get_index_dtype-for-NEP-50-cas.patch @@ -0,0 +1,192 @@ +From: Ralf Gommers +Date: Fri, 17 Jun 2022 16:22:40 +0200 +Subject: MAINT: fix up `_sputils.get_index_dtype` for NEP 50 casting rules + +The issue boiled down to `np.iinfo(np.int32).max` being a Python int, +and comparisons between numpy scalars and Python scalars changing +behavior - so avoid using Python scalars. + +Also fix other sparse issues in the test suite turned up by NEP 50 +And makes the tests more concise. +--- + scipy/sparse/_sputils.py | 5 ++- + scipy/sparse/linalg/tests/test_matfuncs.py | 6 +-- + scipy/sparse/tests/test_base.py | 64 +++++++++++------------------- + scipy/sparse/tests/test_sputils.py | 2 +- + 4 files changed, 30 insertions(+), 47 deletions(-) + +diff --git a/scipy/sparse/_sputils.py b/scipy/sparse/_sputils.py +index 6d93b6f..add718f 100644 +--- a/scipy/sparse/_sputils.py ++++ b/scipy/sparse/_sputils.py +@@ -150,12 +150,13 @@ def get_index_dtype(arrays=(), maxval=None, check_contents=False): + + """ + +- int32min = np.iinfo(np.int32).min +- int32max = np.iinfo(np.int32).max ++ int32min = np.int32(np.iinfo(np.int32).min) ++ int32max = np.int32(np.iinfo(np.int32).max) + + # not using intc directly due to misinteractions with pythran + dtype = np.int32 if np.intc().itemsize == 4 else np.int64 + if maxval is not None: ++ maxval = np.int64(maxval) + if maxval > int32max: + dtype = np.int64 + +diff --git a/scipy/sparse/linalg/tests/test_matfuncs.py b/scipy/sparse/linalg/tests/test_matfuncs.py +index 2ea5d11..8f98455 100644 +--- a/scipy/sparse/linalg/tests/test_matfuncs.py ++++ b/scipy/sparse/linalg/tests/test_matfuncs.py +@@ -113,7 +113,7 @@ class TestExpM: + for scale in [1e-2, 1e-1, 5e-1, 1, 10]: + A = scale * eye(3, dtype=dtype) + observed = expm(A) +- expected = exp(scale) * eye(3, dtype=dtype) ++ expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype) + assert_array_almost_equal_nulp(observed, expected, nulp=100) + + def test_padecases_dtype_complex(self): +@@ -121,7 +121,7 @@ class TestExpM: + for scale in [1e-2, 1e-1, 5e-1, 1, 10]: + A = scale * eye(3, dtype=dtype) + observed = expm(A) +- expected = exp(scale) * eye(3, dtype=dtype) ++ expected = exp(scale, dtype=dtype) * eye(3, dtype=dtype) + assert_array_almost_equal_nulp(observed, expected, nulp=100) + + def test_padecases_dtype_sparse_float(self): +@@ -129,7 +129,7 @@ class TestExpM: + dtype = np.float64 + for scale in [1e-2, 1e-1, 5e-1, 1, 10]: + a = scale * speye(3, 3, dtype=dtype, format='csc') +- e = exp(scale) * eye(3, dtype=dtype) ++ e = exp(scale, dtype=dtype) * eye(3, dtype=dtype) + with suppress_warnings() as sup: + sup.filter(SparseEfficiencyWarning, + "Changing the sparsity structure of a csc_matrix is expensive.") +diff --git a/scipy/sparse/tests/test_base.py b/scipy/sparse/tests/test_base.py +index 9e2ec87..c6c9589 100644 +--- a/scipy/sparse/tests/test_base.py ++++ b/scipy/sparse/tests/test_base.py +@@ -97,7 +97,11 @@ def with_64bit_maxval_limit(maxval_limit=None, random=False, fixed_dtype=None, + + """ + if maxval_limit is None: +- maxval_limit = 10 ++ maxval_limit = np.int64(10) ++ else: ++ # Ensure we use numpy scalars rather than Python scalars (matters for ++ # NEP 50 casting rule changes) ++ maxval_limit = np.int64(maxval_limit) + + if assert_32bit: + def new_get_index_dtype(arrays=(), maxval=None, check_contents=False): +@@ -409,21 +413,15 @@ class _TestCommon: + assert_array_equal_dtype(dat < dat2, datsp < dat2) + assert_array_equal_dtype(datcomplex < dat2, datspcomplex < dat2) + # sparse/scalar +- assert_array_equal_dtype((datsp < 2).toarray(), dat < 2) +- assert_array_equal_dtype((datsp < 1).toarray(), dat < 1) +- assert_array_equal_dtype((datsp < 0).toarray(), dat < 0) +- assert_array_equal_dtype((datsp < -1).toarray(), dat < -1) +- assert_array_equal_dtype((datsp < -2).toarray(), dat < -2) ++ for val in [2, 1, 0, -1, -2]: ++ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes) ++ assert_array_equal_dtype((datsp < val).toarray(), dat < val) ++ assert_array_equal_dtype((val < datsp).toarray(), val < dat) ++ + with np.errstate(invalid='ignore'): + assert_array_equal_dtype((datsp < np.nan).toarray(), + dat < np.nan) + +- assert_array_equal_dtype((2 < datsp).toarray(), 2 < dat) +- assert_array_equal_dtype((1 < datsp).toarray(), 1 < dat) +- assert_array_equal_dtype((0 < datsp).toarray(), 0 < dat) +- assert_array_equal_dtype((-1 < datsp).toarray(), -1 < dat) +- assert_array_equal_dtype((-2 < datsp).toarray(), -2 < dat) +- + # data + dat = self.dat_dtypes[dtype] + datsp = self.datsp_dtypes[dtype] +@@ -477,21 +475,15 @@ class _TestCommon: + assert_array_equal_dtype(dat > dat2, datsp > dat2) + assert_array_equal_dtype(datcomplex > dat2, datspcomplex > dat2) + # sparse/scalar +- assert_array_equal_dtype((datsp > 2).toarray(), dat > 2) +- assert_array_equal_dtype((datsp > 1).toarray(), dat > 1) +- assert_array_equal_dtype((datsp > 0).toarray(), dat > 0) +- assert_array_equal_dtype((datsp > -1).toarray(), dat > -1) +- assert_array_equal_dtype((datsp > -2).toarray(), dat > -2) ++ for val in [2, 1, 0, -1, -2]: ++ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes) ++ assert_array_equal_dtype((datsp > val).toarray(), dat > val) ++ assert_array_equal_dtype((val > datsp).toarray(), val > dat) ++ + with np.errstate(invalid='ignore'): + assert_array_equal_dtype((datsp > np.nan).toarray(), + dat > np.nan) + +- assert_array_equal_dtype((2 > datsp).toarray(), 2 > dat) +- assert_array_equal_dtype((1 > datsp).toarray(), 1 > dat) +- assert_array_equal_dtype((0 > datsp).toarray(), 0 > dat) +- assert_array_equal_dtype((-1 > datsp).toarray(), -1 > dat) +- assert_array_equal_dtype((-2 > datsp).toarray(), -2 > dat) +- + # data + dat = self.dat_dtypes[dtype] + datsp = self.datsp_dtypes[dtype] +@@ -545,15 +537,10 @@ class _TestCommon: + assert_array_equal_dtype(datsp <= dat2, dat <= dat2) + assert_array_equal_dtype(datspcomplex <= dat2, datcomplex <= dat2) + # sparse/scalar +- assert_array_equal_dtype((datsp <= 2).toarray(), dat <= 2) +- assert_array_equal_dtype((datsp <= 1).toarray(), dat <= 1) +- assert_array_equal_dtype((datsp <= -1).toarray(), dat <= -1) +- assert_array_equal_dtype((datsp <= -2).toarray(), dat <= -2) +- +- assert_array_equal_dtype((2 <= datsp).toarray(), 2 <= dat) +- assert_array_equal_dtype((1 <= datsp).toarray(), 1 <= dat) +- assert_array_equal_dtype((-1 <= datsp).toarray(), -1 <= dat) +- assert_array_equal_dtype((-2 <= datsp).toarray(), -2 <= dat) ++ for val in [2, 1, -1, -2]: ++ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes) ++ assert_array_equal_dtype((datsp <= val).toarray(), dat <= val) ++ assert_array_equal_dtype((val <= datsp).toarray(), val <= dat) + + # data + dat = self.dat_dtypes[dtype] +@@ -608,15 +595,10 @@ class _TestCommon: + assert_array_equal_dtype(datsp >= dat2, dat >= dat2) + assert_array_equal_dtype(datspcomplex >= dat2, datcomplex >= dat2) + # sparse/scalar +- assert_array_equal_dtype((datsp >= 2).toarray(), dat >= 2) +- assert_array_equal_dtype((datsp >= 1).toarray(), dat >= 1) +- assert_array_equal_dtype((datsp >= -1).toarray(), dat >= -1) +- assert_array_equal_dtype((datsp >= -2).toarray(), dat >= -2) +- +- assert_array_equal_dtype((2 >= datsp).toarray(), 2 >= dat) +- assert_array_equal_dtype((1 >= datsp).toarray(), 1 >= dat) +- assert_array_equal_dtype((-1 >= datsp).toarray(), -1 >= dat) +- assert_array_equal_dtype((-2 >= datsp).toarray(), -2 >= dat) ++ for val in [2, 1, -1, -2]: ++ val = np.int64(val) # avoid Python scalar (due to NEP 50 changes) ++ assert_array_equal_dtype((datsp >= val).toarray(), dat >= val) ++ assert_array_equal_dtype((val >= datsp).toarray(), val >= dat) + + # dense data + dat = self.dat_dtypes[dtype] +diff --git a/scipy/sparse/tests/test_sputils.py b/scipy/sparse/tests/test_sputils.py +index 0eaf573..fadce9e 100644 +--- a/scipy/sparse/tests/test_sputils.py ++++ b/scipy/sparse/tests/test_sputils.py +@@ -94,7 +94,7 @@ class TestSparseUtils: + sputils.validateaxis(axis) + + def test_get_index_dtype(self): +- imax = np.iinfo(np.int32).max ++ imax = np.int64(np.iinfo(np.int32).max) + too_big = imax + 1 + + # Check that uint32's with no values too large doesn't return diff --git a/patches/0015-TST-fix-test-issues-with-casting-related-warnings-wi.patch b/patches/0015-TST-fix-test-issues-with-casting-related-warnings-wi.patch new file mode 100644 index 00000000..772acca8 --- /dev/null +++ b/patches/0015-TST-fix-test-issues-with-casting-related-warnings-wi.patch @@ -0,0 +1,67 @@ +From: Ralf Gommers +Date: Fri, 17 Jun 2022 07:12:24 +0200 +Subject: TST: fix test issues with casting-related warnings with numpy >1.23 + +Closes gh-16403 +--- + scipy/io/_mmio.py | 7 +++++-- + scipy/sparse/tests/test_sparsetools.py | 5 ++++- + scipy/spatial/tests/test_distance.py | 4 ++++ + 3 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/scipy/io/_mmio.py b/scipy/io/_mmio.py +index f026065..f3c28f8 100644 +--- a/scipy/io/_mmio.py ++++ b/scipy/io/_mmio.py +@@ -13,6 +13,7 @@ + import os + import sys + ++import numpy as np + from numpy import (asarray, real, imag, conj, zeros, ndarray, concatenate, + ones, can_cast) + +@@ -382,8 +383,10 @@ class MMFile: + else: + if issymm and aij != aji: + issymm = False +- if isskew and aij != -aji: +- isskew = False ++ with np.errstate(over="ignore"): ++ # This can give a warning for uint dtypes, so silence that ++ if isskew and aij != -aji: ++ isskew = False + if isherm and aij != conj(aji): + isherm = False + if not (issymm or isskew or isherm): +diff --git a/scipy/sparse/tests/test_sparsetools.py b/scipy/sparse/tests/test_sparsetools.py +index 06d3fcf..dcada59 100644 +--- a/scipy/sparse/tests/test_sparsetools.py ++++ b/scipy/sparse/tests/test_sparsetools.py +@@ -302,7 +302,10 @@ def test_upcast(): + if np.issubdtype(b_dtype, np.complexfloating): + b = b0.copy().astype(b_dtype) + else: +- b = b0.real.copy().astype(b_dtype) ++ with np.errstate(invalid="ignore"): ++ # Casting a large value (2**32) to int8 causes a warning in ++ # numpy >1.23 ++ b = b0.real.copy().astype(b_dtype) + + if not (a_dtype == np.bool_ and b_dtype == np.bool_): + c = np.zeros((2,), dtype=np.bool_) +diff --git a/scipy/spatial/tests/test_distance.py b/scipy/spatial/tests/test_distance.py +index ab38219..0ebbe6a 100644 +--- a/scipy/spatial/tests/test_distance.py ++++ b/scipy/spatial/tests/test_distance.py +@@ -219,6 +219,10 @@ def _weight_masked(arrays, weights, axis): + + + def _rand_split(arrays, weights, axis, split_per, seed=None): ++ # Coerce `arrays` to float64 if integer, to avoid nan-to-integer issues ++ arrays = [arr.astype(np.float64) if np.issubdtype(arr.dtype, np.integer) ++ else arr for arr in arrays] ++ + # inverse operation for stats.collapse_weights + weights = np.array(weights, dtype=np.float64) # modified inplace; need a copy + seeded_rand = np.random.RandomState(seed) diff --git a/patches/0016-BUG-Fix-power-operator-behaviour-for-sparse-arrays-t.patch b/patches/0016-BUG-Fix-power-operator-behaviour-for-sparse-arrays-t.patch new file mode 100644 index 00000000..aaa90ed0 --- /dev/null +++ b/patches/0016-BUG-Fix-power-operator-behaviour-for-sparse-arrays-t.patch @@ -0,0 +1,39 @@ +From: Jake Bowhay +Date: Sat, 18 Jun 2022 08:39:32 +0100 +Subject: BUG: Fix power operator behaviour for sparse arrays to be consistent + with numpy arrays + +--- + scipy/sparse/_arrays.py | 4 ++++ + scipy/sparse/tests/test_array_api.py | 6 ++++++ + 2 files changed, 10 insertions(+) + +diff --git a/scipy/sparse/_arrays.py b/scipy/sparse/_arrays.py +index d272c10..5234339 100644 +--- a/scipy/sparse/_arrays.py ++++ b/scipy/sparse/_arrays.py +@@ -49,6 +49,10 @@ class _sparray: + def __rmul__(self, *args, **kwargs): + return self.multiply(*args, **kwargs) + ++ # Restore elementwise power ++ def __pow__(self, *args, **kwargs): ++ return self.power(*args, **kwargs) ++ + + def _matrix_doc_to_array(docstr): + # For opimized builds with stripped docstrings +diff --git a/scipy/sparse/tests/test_array_api.py b/scipy/sparse/tests/test_array_api.py +index f00972a..a074cae 100644 +--- a/scipy/sparse/tests/test_array_api.py ++++ b/scipy/sparse/tests/test_array_api.py +@@ -331,3 +331,9 @@ def test_spilu(): + ]) + LU = spla.spilu(X) + npt.assert_allclose(LU.solve(np.array([1, 2, 3, 4])), [1, 0, 0, 0]) ++ ++ ++@parametrize_sparrays ++def test_power_operator(A): ++ # https://github.com/scipy/scipy/issues/15948 ++ npt.assert_equal((A**2).todense(), (A.todense())**2) diff --git a/patches/0017-MAINT-fix-umfpack-test-failure-with-numpy-1.23.patch b/patches/0017-MAINT-fix-umfpack-test-failure-with-numpy-1.23.patch new file mode 100644 index 00000000..677db882 --- /dev/null +++ b/patches/0017-MAINT-fix-umfpack-test-failure-with-numpy-1.23.patch @@ -0,0 +1,34 @@ +From: Ralf Gommers +Date: Sun, 3 Jul 2022 13:12:56 +0200 +Subject: MAINT: fix umfpack test failure with numpy 1.23 + +The reason is a divide-by-zero warning that our test suite settings +convert to an error. So ignore these warnings, because they're +coming from inside `scikit-umfpack`. + +This has been failing consistently in the Azure pre-release job. + +Closes gh-16523 + +[skip github] +--- + scipy/sparse/linalg/_dsolve/linsolve.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/scipy/sparse/linalg/_dsolve/linsolve.py b/scipy/sparse/linalg/_dsolve/linsolve.py +index 35e6ba5..4a126d0 100644 +--- a/scipy/sparse/linalg/_dsolve/linsolve.py ++++ b/scipy/sparse/linalg/_dsolve/linsolve.py +@@ -485,7 +485,11 @@ def factorized(A): + umf.numeric(A) + + def solve(b): +- return umf.solve(umfpack.UMFPACK_A, A, b, autoTranspose=True) ++ with np.errstate(divide="ignore", invalid="ignore"): ++ # Ignoring warnings with numpy >= 1.23.0, see gh-16523 ++ result = umf.solve(umfpack.UMFPACK_A, A, b, autoTranspose=True) ++ ++ return result + + return solve + else: diff --git a/patches/0018-Drop-intersphinx.patch b/patches/0018-Drop-intersphinx.patch new file mode 100644 index 00000000..085333dc --- /dev/null +++ b/patches/0018-Drop-intersphinx.patch @@ -0,0 +1,20 @@ +From: Jochen Sprickerhof +Date: Tue, 3 Jan 2023 14:35:03 +0100 +Subject: Drop intersphinx + +--- + doc/source/conf.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/doc/source/conf.py b/doc/source/conf.py +index b311d27..6d03a04 100644 +--- a/doc/source/conf.py ++++ b/doc/source/conf.py +@@ -43,7 +43,6 @@ extensions = [ + 'sphinx.ext.autosummary', + 'sphinx.ext.coverage', + 'sphinx.ext.mathjax', +- 'sphinx.ext.intersphinx', + 'numpydoc', + 'sphinx_panels', + 'scipyoptdoc', diff --git a/patches/0019-Ignore-sphinx-warnings.patch b/patches/0019-Ignore-sphinx-warnings.patch new file mode 100644 index 00000000..965a4ca7 --- /dev/null +++ b/patches/0019-Ignore-sphinx-warnings.patch @@ -0,0 +1,52 @@ +From: Jochen Sprickerhof +Date: Tue, 3 Jan 2023 18:44:06 +0100 +Subject: Ignore sphinx warnings + +--- + doc/source/conf.py | 33 --------------------------------- + 1 file changed, 33 deletions(-) + +diff --git a/doc/source/conf.py b/doc/source/conf.py +index 6d03a04..7553e0c 100644 +--- a/doc/source/conf.py ++++ b/doc/source/conf.py +@@ -138,39 +138,6 @@ exclude_patterns = [ # glob-style + + ] + +-# be strict about warnings in our examples, we should write clean code +-# (exceptions permitted for pedagogical purposes below) +-warnings.resetwarnings() +-warnings.filterwarnings('error') +-# allow these and show them +-warnings.filterwarnings('default', module='sphinx') # internal warnings +-# global weird ones that can be safely ignored +-for key in ( +- r"'U' mode is deprecated", # sphinx io +- r"OpenSSL\.rand is deprecated", # OpenSSL package in linkcheck +- r"Using or importing the ABCs from", # 3.5 importlib._bootstrap +- r"'contextfunction' is renamed to 'pass_context'", # Jinja +- ): +- warnings.filterwarnings( # deal with other modules having bad imports +- 'ignore', message=".*" + key, category=DeprecationWarning) +-warnings.filterwarnings( # matplotlib<->pyparsing issue +- 'ignore', message="Exception creating Regex for oneOf.*", +- category=SyntaxWarning) +-# warnings in examples (mostly) that we allow +-# TODO: eventually these should be eliminated! +-for key in ( +- 'invalid escape sequence', # numpydoc 0.8 has some bad escape chars +- 'The integral is probably divergent', # stats.mielke example +- 'underflow encountered in square', # signal.filtfilt underflow +- 'underflow encountered in multiply', # scipy.spatial.HalfspaceIntersection +- 'underflow encountered in nextafter', # tuterial/interpolate.rst +- # stats.skewnorm, stats.norminvgauss, stats.gaussian_kde, +- # tutorial/stats.rst (twice): +- 'underflow encountered in exp', +- ): +- warnings.filterwarnings( +- 'once', message='.*' + key) +- + # ----------------------------------------------------------------------------- + # HTML output + # ----------------------------------------------------------------------------- diff --git a/patches/0020-DOC-MAINT-remove-use-of-inspect.formatargspec-dusing.patch b/patches/0020-DOC-MAINT-remove-use-of-inspect.formatargspec-dusing.patch new file mode 100644 index 00000000..11f566ba --- /dev/null +++ b/patches/0020-DOC-MAINT-remove-use-of-inspect.formatargspec-dusing.patch @@ -0,0 +1,35 @@ +From: Tirth Patel +Date: Fri, 28 Oct 2022 03:52:43 -0700 +Subject: DOC,MAINT: remove use of inspect.formatargspec dusing doc build + (#17301) + +--- + doc/source/scipyoptdoc.py | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/doc/source/scipyoptdoc.py b/doc/source/scipyoptdoc.py +index 75cd42d..d02c534 100644 +--- a/doc/source/scipyoptdoc.py ++++ b/doc/source/scipyoptdoc.py +@@ -20,10 +20,9 @@ Produces output similar to autodoc, except + - See Also link to the actual function documentation is inserted + + """ +-import os, sys, re, pydoc ++import sys, pydoc + import sphinx + import inspect +-import collections + import textwrap + import warnings + +@@ -125,8 +124,7 @@ def wrap_mangling_directive(base_directive): + # XXX deprecation that we should fix someday using Signature (?) + with warnings.catch_warnings(record=True): + warnings.simplefilter('ignore') +- signature = inspect.formatargspec( +- args, varargs, keywords, defaults) ++ signature = str(inspect.signature(obj)) + + # Produce output + self.options['noindex'] = True diff --git a/patches/Use-system-LBFGSB.patch b/patches/Use-system-LBFGSB.patch new file mode 100644 index 00000000..eb59c05c --- /dev/null +++ b/patches/Use-system-LBFGSB.patch @@ -0,0 +1,24 @@ +From: Gard Spreemann +Date: Tue, 2 Apr 2019 11:25:26 +0200 +Subject: Use system LBFGSB. + +--- + scipy/optimize/setup.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +Index: scipy/scipy/optimize/setup.py +=================================================================== +--- scipy.orig/scipy/optimize/setup.py 2022-02-11 18:56:19.803689586 +0100 ++++ scipy/scipy/optimize/setup.py 2022-02-11 18:56:19.803689586 +0100 +@@ -63,8 +63,10 @@ + pre_build_hook = None + + lapack = combine_dict(lapack, numpy_nodepr_api) ++ lapack.setdefault('libraries', []) ++ lapack['libraries'].append('lbfgsb') + +- sources = ['lbfgsb.pyf', 'lbfgsb.f', 'linpack.f', 'timer.f'] ++ sources = ['lbfgsb.pyf'] + ext = config.add_extension('_lbfgsb', + sources=[join('lbfgsb_src', x) + for x in sources], diff --git a/patches/build_sh4_FE.patch b/patches/build_sh4_FE.patch new file mode 100644 index 00000000..a1685a79 --- /dev/null +++ b/patches/build_sh4_FE.patch @@ -0,0 +1,17 @@ +Index: scipy/scipy/special/_round.h +=================================================================== +--- scipy.orig/scipy/special/_round.h 2021-08-17 17:46:09.254650951 +0200 ++++ scipy/scipy/special/_round.h 2022-06-14 08:40:23.531748220 +0200 +@@ -69,5 +69,12 @@ + + #endif + ++/* SH4 is not C99 compliant, see https://github.com/scipy/scipy/issues/15584 */ ++#ifndef FE_UPWARD ++#define FE_UPWARD -1 ++#endif ++#ifndef FE_DOWNWARD ++#define FE_DOWNWARD -1 ++#endif + + #endif /* _round.h */ diff --git a/patches/fix_numpy1.24_PR17035.patch b/patches/fix_numpy1.24_PR17035.patch new file mode 100644 index 00000000..93c6ca29 --- /dev/null +++ b/patches/fix_numpy1.24_PR17035.patch @@ -0,0 +1,35 @@ +Index: scipy/scipy/sparse/_sputils.py +=================================================================== +--- scipy.orig/scipy/sparse/_sputils.py 2023-01-19 14:48:00.372177721 +0100 ++++ scipy/scipy/sparse/_sputils.py 2023-01-19 14:48:00.364177447 +0100 +@@ -11,7 +11,8 @@ + 'isshape', 'issequence', 'isdense', 'ismatrix', 'get_sum_dtype'] + + supported_dtypes = [np.bool_, np.byte, np.ubyte, np.short, np.ushort, np.intc, +- np.uintc, np.int_, np.uint, np.longlong, np.ulonglong, np.single, np.double, ++ np.uintc, np.int_, np.uint, np.longlong, np.ulonglong, ++ np.single, np.double, + np.longdouble, np.csingle, np.cdouble, np.clongdouble] + + _upcast_memo = {} +@@ -89,7 +90,19 @@ + + + def to_native(A): +- return np.asarray(A, dtype=A.dtype.newbyteorder('native')) ++ """ ++ Ensure that the data type of the NumPy array `A` has native byte order. ++ ++ `A` must be a NumPy array. If the data type of `A` does not have native ++ byte order, a copy of `A` with a native byte order is returned. Otherwise ++ `A` is returned. ++ """ ++ dt = A.dtype ++ if dt.isnative: ++ # Don't call `asarray()` if A is already native, to avoid unnecessarily ++ # creating a view of the input array. ++ return A ++ return np.asarray(A, dtype=dt.newbyteorder('native')) + + + def getdtype(dtype, a=None, default=None): diff --git a/patches/hppa-boost-long-double-config.patch b/patches/hppa-boost-long-double-config.patch new file mode 100644 index 00000000..724c0eb5 --- /dev/null +++ b/patches/hppa-boost-long-double-config.patch @@ -0,0 +1,14 @@ +Index: scipy/scipy/_lib/boost/boost/math/tools/config.hpp +=================================================================== +--- scipy.orig/scipy/_lib/boost/boost/math/tools/config.hpp 2021-08-17 17:46:08.822648218 +0200 ++++ scipy/scipy/_lib/boost/boost/math/tools/config.hpp 2022-01-10 13:11:06.796416639 +0100 +@@ -29,7 +29,8 @@ + #include + + #if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__EMSCRIPTEN__)\ +- || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \ ++ || (defined(__hppa) && !defined(__OpenBSD__) && !defined(__linux__)) \ ++ || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \ + && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS) + # define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS + #endif diff --git a/patches/manage_tests.patch b/patches/manage_tests.patch new file mode 100644 index 00000000..f2839fdf --- /dev/null +++ b/patches/manage_tests.patch @@ -0,0 +1,332 @@ +Index: scipy/scipy/linalg/tests/test_decomp.py +=================================================================== +--- scipy.orig/scipy/linalg/tests/test_decomp.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/linalg/tests/test_decomp.py 2022-07-26 22:50:06.195812392 +0200 +@@ -1909,6 +1909,7 @@ + tc2, zc2 = rsf2csf(tc, zc) + assert_array_almost_equal(zc2 @ tc2 @ zc2.conj().T, a) + ++ @pytest.mark.skip(reason="test fails, see https://github.com/scipy/scipy/issues/14517") + def test_sort(self): + a = [[4., 3., 1., -1.], + [-4.5, -3.5, -1., 1.], +Index: scipy/scipy/linalg/tests/test_solvers.py +=================================================================== +--- scipy.orig/scipy/linalg/tests/test_solvers.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/linalg/tests/test_solvers.py 2022-07-26 22:50:06.195812392 +0200 +@@ -306,7 +306,7 @@ + for ind, case in enumerate(cases): + _test_factory(case, min_decimal[ind]) + +- ++@pytest.mark.skip(reason="test fails, see https://github.com/scipy/scipy/issues/14517") + def test_solve_discrete_are(): + + cases = [ +Index: scipy/scipy/optimize/tests/test_optimize.py +=================================================================== +--- scipy.orig/scipy/optimize/tests/test_optimize.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/optimize/tests/test_optimize.py 2022-07-26 22:50:06.195812392 +0200 +@@ -992,6 +992,7 @@ + + assert_allclose(v, self.func(self.solution), rtol=tol) + ++ @pytest.mark.skip(reason="contradictory: expected to fail but succeeds") + def test_minimize_l_bfgs_maxls(self): + # check that the maxls is passed down to the Fortran routine + sol = optimize.minimize(optimize.rosen, np.array([-1.2, 1.0]), +Index: scipy/scipy/linalg/tests/test_lapack.py +=================================================================== +--- scipy.orig/scipy/linalg/tests/test_lapack.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/linalg/tests/test_lapack.py 2022-07-26 22:50:06.199812425 +0200 +@@ -1032,7 +1032,7 @@ + + eig, _, info = syevd(a) + assert_(info == 0) +- assert_allclose(eig, eig_gvd, rtol=1e-4) ++ assert_allclose(eig, eig_gvd, rtol=2e-4) + + + def test_hegst(): +Index: scipy/scipy/interpolate/tests/test_fitpack.py +=================================================================== +--- scipy.orig/scipy/interpolate/tests/test_fitpack.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/interpolate/tests/test_fitpack.py 2022-07-26 22:50:06.199812425 +0200 +@@ -6,6 +6,7 @@ + assert_almost_equal, assert_array_almost_equal) + from pytest import raises as assert_raises + import pytest ++import platform + from scipy._lib._testutils import check_free_memory + + from numpy import array, asarray, pi, sin, cos, arange, dot, ravel, sqrt, round +@@ -353,6 +354,7 @@ + def test_order0_diff(self): + assert_raises(ValueError, splder, self.spl, 4) + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armel") + def test_kink(self): + # Should refuse to differentiate splines with kinks + +Index: scipy/scipy/optimize/tests/test_linprog.py +=================================================================== +--- scipy.orig/scipy/optimize/tests/test_linprog.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/optimize/tests/test_linprog.py 2022-07-26 22:50:06.199812425 +0200 +@@ -13,6 +13,7 @@ + from scipy.linalg import LinAlgWarning + import scipy.sparse + import pytest ++import platform + + has_umfpack = True + try: +@@ -527,6 +528,7 @@ + if do_presolve: + assert_equal(res.nit, 0) + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armel") + def test_bounds_infeasible_2(self): + + # Test ill-valued bounds (lower inf, upper -inf) +Index: scipy/scipy/special/tests/test_round.py +=================================================================== +--- scipy.orig/scipy/special/tests/test_round.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/special/tests/test_round.py 2022-07-26 22:50:06.199812425 +0200 +@@ -1,8 +1,14 @@ + import numpy as np + import pytest ++import platform + + from scipy.special import _test_round + ++machine=platform.machine() ++if ( machine.startswith('arm') or ++ machine=='alpha' or ++ machine=='parisc64' ): ++ pytest.skip("rounding tests known to fail on armel, alpha and hppa", allow_module_level=True) + + @pytest.mark.skipif(not _test_round.have_fenv(), reason="no fenv()") + def test_add_round_up(): +Index: scipy/scipy/stats/tests/test_stats.py +=================================================================== +--- scipy.orig/scipy/stats/tests/test_stats.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/stats/tests/test_stats.py 2022-07-26 22:50:06.199812425 +0200 +@@ -18,6 +18,7 @@ + assert_array_less) + import pytest + from pytest import raises as assert_raises ++import platform + import numpy.ma.testutils as mat + from numpy import array, arange, float32, float64, power + import numpy as np +@@ -465,6 +466,7 @@ + [1] 1.701815e-09 + """ + ++ @pytest.mark.skipif(platform.machine()=='ppc', reason="test known to fail on powerpc") + def test_basic(self): + fisher_exact = stats.fisher_exact + +@@ -5736,14 +5738,17 @@ + with pytest.raises(ValueError, match='Invalid array input'): + stats.gstd('This should fail as it can not be cast to an array.') + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armel") + def test_raises_value_error_zero_entry(self): + with pytest.raises(ValueError, match='Non positive value'): + stats.gstd(np.append(self.array_1d, [0])) + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armel") + def test_raises_value_error_negative_entry(self): + with pytest.raises(ValueError, match='Non positive value'): + stats.gstd(np.append(self.array_1d, [-1])) + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armel") + def test_raises_value_error_inf_entry(self): + with pytest.raises(ValueError, match='Infinite value'): + stats.gstd(np.append(self.array_1d, [np.inf])) +Index: scipy/scipy/signal/tests/test_spectral.py +=================================================================== +--- scipy.orig/scipy/signal/tests/test_spectral.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/signal/tests/test_spectral.py 2022-07-26 22:50:06.199812425 +0200 +@@ -4,6 +4,7 @@ + assert_array_almost_equal_nulp, suppress_warnings) + import pytest + from pytest import raises as assert_raises ++import platform + + from scipy import signal + from scipy.fft import fftfreq +@@ -94,6 +95,7 @@ + assert_raises(ValueError, periodogram, np.zeros(4, np.complex128), + scaling='foo') + ++ @pytest.mark.skipif(platform.machine().startswith('i686'), reason="test known to fail on i386 linux and hurd") + def test_nd_axis_m1(self): + x = np.zeros(20, dtype=np.float64) + x = x.reshape((2,1,10)) +@@ -104,6 +106,7 @@ + f0, p0 = periodogram(x[0,0,:]) + assert_array_almost_equal_nulp(p0[np.newaxis,:], p[1,:], 60) + ++ @pytest.mark.skipif(platform.machine().startswith('i686'), reason="test known to fail on i386 linux and hurd") + def test_nd_axis_0(self): + x = np.zeros(20, dtype=np.float64) + x = x.reshape((10,2,1)) +Index: scipy/scipy/sparse/linalg/_isolve/tests/test_iterative.py +=================================================================== +--- scipy.orig/scipy/sparse/linalg/_isolve/tests/test_iterative.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/sparse/linalg/_isolve/tests/test_iterative.py 2022-07-26 22:50:06.199812425 +0200 +@@ -10,6 +10,7 @@ + assert_, assert_allclose, suppress_warnings) + import pytest + from pytest import raises as assert_raises ++import platform + + from numpy import zeros, arange, array, ones, eye, iscomplexobj + from scipy.linalg import norm +@@ -468,6 +469,7 @@ + pytest.param(bicgstab, marks=pytest.mark.xfail), + pytest.param(gcrotmk, marks=pytest.mark.xfail), + pytest.param(tfqmr, marks=pytest.mark.xfail)]) ++@pytest.mark.skipif(platform.machine().startswith('i686'), reason="needs tol=9 not 5 on i386 (linux and hurd)") + def test_maxiter_worsening(solver): + # Check error does not grow (boundlessly) with increasing maxiter. + # This can occur due to the solvers hitting close to breakdown, +Index: scipy/scipy/spatial/tests/test_distance.py +=================================================================== +--- scipy.orig/scipy/spatial/tests/test_distance.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/spatial/tests/test_distance.py 2022-07-26 22:50:06.203812457 +0200 +@@ -1155,7 +1155,7 @@ + def test_pdist_jensenshannon_iris(self): + if _is_32bit(): + # Test failing on 32-bit Linux on Azure otherwise, see gh-12810 +- eps = 1.5e-10 ++ eps = 2.5e-10 + else: + eps = 1e-12 + +Index: scipy/scipy/spatial/transform/tests/test_rotation.py +=================================================================== +--- scipy.orig/scipy/spatial/transform/tests/test_rotation.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/spatial/transform/tests/test_rotation.py 2022-07-26 22:50:06.203812457 +0200 +@@ -1,4 +1,5 @@ + import pytest ++import platform + + import numpy as np + from numpy.testing import assert_equal, assert_array_almost_equal +@@ -1115,9 +1116,14 @@ + + + def test_align_vectors_single_vector(): ++ if platform.machine().startswith("i686"): ++ # Test failing on 32-bit i386 (linux and hurd) ++ eps = 3e-8 ++ else: ++ eps = 1e-16 + with pytest.warns(UserWarning, match="Optimal rotation is not"): + r_estimate, rmsd = Rotation.align_vectors([[1, -1, 1]], [[1, 1, -1]]) +- assert_allclose(rmsd, 0, atol=1e-16) ++ assert_allclose(rmsd, 0, atol=eps) + + + def test_align_vectors_invalid_input(): +Index: scipy/scipy/io/arff/tests/test_arffread.py +=================================================================== +--- scipy.orig/scipy/io/arff/tests/test_arffread.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/io/arff/tests/test_arffread.py 2022-07-26 22:50:06.203812457 +0200 +@@ -11,6 +11,7 @@ + assert_array_equal, assert_equal, assert_) + import pytest + from pytest import raises as assert_raises ++import platform + + from scipy.io.arff import loadarff + from scipy.io.arff._arffread import read_header, ParseArffError +@@ -97,7 +98,12 @@ + for i in ['yop', 'yap']: + assert_array_almost_equal(data[i], expect_missing[i]) + +- ++machine=platform.machine() ++@pytest.mark.skipif(machine=='s390x' ++ or machine.startswith('ppc') ++ or machine=='parisc64' ++ or machine=='sparc64', ++ reason="test known to fail on s390x, powerpc, ppc64, hppa and sparc64") + class TestNoData: + def test_nodata(self): + # The file nodata.arff has no data in the @DATA section. +Index: scipy/scipy/linalg/tests/test_interpolative.py +=================================================================== +--- scipy.orig/scipy/linalg/tests/test_interpolative.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/linalg/tests/test_interpolative.py 2022-07-26 22:50:06.203812457 +0200 +@@ -36,6 +36,7 @@ + assert_array_equal) + import pytest + from pytest import raises as assert_raises ++import platform + import sys + _IS_32BIT = (sys.maxsize < 2**32) + +@@ -146,6 +147,7 @@ + norm_2_est = pymatrixid.estimate_spectral_norm(A) + assert_allclose(norm_2_est, s[0], rtol=1e-6, atol=1e-8) + ++ @pytest.mark.skipif(platform.machine().startswith('arm'), reason="test known to fail on armhf") + def test_estimate_spectral_norm_diff(self, A): + B = A.copy() + B[:, 0] *= 1.2 +Index: scipy/scipy/fft/tests/test_fftlog.py +=================================================================== +--- scipy.orig/scipy/fft/tests/test_fftlog.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/fft/tests/test_fftlog.py 2022-07-26 22:50:06.203812457 +0200 +@@ -2,6 +2,7 @@ + import numpy as np + from numpy.testing import assert_allclose + import pytest ++import platform + + from scipy.fft._fftlog import fht, ifht, fhtoffset + from scipy.special import poch +@@ -99,6 +100,7 @@ + assert_allclose(a, a_) + + ++@pytest.mark.skipif(platform.machine().startswith('mips64'), reason="test known to fail on mips64el") + def test_fht_special_cases(): + rng = np.random.RandomState(3491349965) + +Index: scipy/scipy/sparse/csgraph/tests/test_shortest_path.py +=================================================================== +--- scipy.orig/scipy/sparse/csgraph/tests/test_shortest_path.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/sparse/csgraph/tests/test_shortest_path.py 2022-07-26 22:50:06.203812457 +0200 +@@ -7,6 +7,7 @@ + NegativeCycleError) + import scipy.sparse + import pytest ++import platform + + directed_G = np.array([[0, 3, 3, 0, 0], + [0, 0, 0, 2, 4], +@@ -314,6 +315,7 @@ + shortest_path(G, method=method) + + ++@pytest.mark.skipif(platform.machine().startswith('mips64'), reason="test known to fail on mips64el") + def test_NaN_warnings(): + with warnings.catch_warnings(record=True) as record: + shortest_path(np.array([[0, 1], [np.nan, 0]])) +Index: scipy/scipy/stats/tests/test_distributions.py +=================================================================== +--- scipy.orig/scipy/stats/tests/test_distributions.py 2022-07-26 22:50:06.207812491 +0200 ++++ scipy/scipy/stats/tests/test_distributions.py 2022-07-26 22:50:06.203812457 +0200 +@@ -2261,6 +2261,7 @@ + assert_(np.isfinite(s)) + assert_(not np.isfinite(k)) + ++ @pytest.mark.skipif(platform.machine().startswith('mips64'), reason="test known to fail on mips64el") + def test_moments_warnings(self): + # no warnings should be generated for dfd = 2, 4, 6, 8 (div by zero) + with warnings.catch_warnings(): diff --git a/patches/pythran_type_PR16646.patch b/patches/pythran_type_PR16646.patch new file mode 100644 index 00000000..5923cefa --- /dev/null +++ b/patches/pythran_type_PR16646.patch @@ -0,0 +1,82 @@ +From 82ad101e8a9317a2c5d7640b64d31c3ecb53b022 Mon Sep 17 00:00:00 2001 +From: serge-sans-paille +Date: Mon, 29 Aug 2022 08:15:49 +0200 +Subject: [PATCH] WIP + +--- + scipy/optimize/_group_columns.py | 8 ++++---- + scipy/signal/_max_len_seq.py | 5 +++-- + scipy/signal/_max_len_seq_inner.py | 4 ++-- + scipy/sparse/_sputils.py | 3 ++- + 4 files changed, 11 insertions(+), 9 deletions(-) + +Index: scipy/scipy/optimize/_group_columns.py +=================================================================== +--- scipy.orig/scipy/optimize/_group_columns.py 2022-09-07 09:51:42.992170041 +0200 ++++ scipy/scipy/optimize/_group_columns.py 2022-09-07 09:51:42.992170041 +0200 +@@ -52,10 +52,10 @@ + return groups + + +-#pythran export group_sparse(int, int, intc[], intc[]) +-#pythran export group_sparse(int, int, int[], int[]) +-#pythran export group_sparse(int, int, intc[::], intc[::]) +-#pythran export group_sparse(int, int, int[::], int[::]) ++#pythran export group_sparse(int, int, int32[], int32[]) ++#pythran export group_sparse(int, int, int64[], int64[]) ++#pythran export group_sparse(int, int, int32[::], int32[::]) ++#pythran export group_sparse(int, int, int64[::], int64[::]) + def group_sparse(m, n, indices, indptr): + groups = -np.ones(n, dtype=np.intp) + current_group = 0 +Index: scipy/scipy/signal/_max_len_seq.py +=================================================================== +--- scipy.orig/scipy/signal/_max_len_seq.py 2022-09-07 09:51:42.992170041 +0200 ++++ scipy/scipy/signal/_max_len_seq.py 2022-09-07 09:51:42.992170041 +0200 +@@ -101,14 +101,15 @@ + >>> plt.show() + + """ ++ taps_dtype = np.int32 if np.intp().itemsize == 4 else np.int64 + if taps is None: + if nbits not in _mls_taps: + known_taps = np.array(list(_mls_taps.keys())) + raise ValueError('nbits must be between %s and %s if taps is None' + % (known_taps.min(), known_taps.max())) +- taps = np.array(_mls_taps[nbits], np.intp) ++ taps = np.array(_mls_taps[nbits], taps_dtype) + else: +- taps = np.unique(np.array(taps, np.intp))[::-1] ++ taps = np.unique(np.array(taps, taps_dtype))[::-1] + if np.any(taps < 0) or np.any(taps > nbits) or taps.size < 1: + raise ValueError('taps must be non-empty with values between ' + 'zero and nbits (inclusive)') +Index: scipy/scipy/signal/_max_len_seq_inner.py +=================================================================== +--- scipy.orig/scipy/signal/_max_len_seq_inner.py 2022-09-07 09:51:42.992170041 +0200 ++++ scipy/scipy/signal/_max_len_seq_inner.py 2022-09-07 09:51:42.992170041 +0200 +@@ -3,8 +3,8 @@ + + import numpy as np + +-#pythran export _max_len_seq_inner(intp[], int8[], int, int, int8[]) +-#pythran export _max_len_seq_inner(int[], int8[], int, int, int8[]) ++#pythran export _max_len_seq_inner(int32[], int8[], int, int, int8[]) ++#pythran export _max_len_seq_inner(int64[], int8[], int, int, int8[]) + + # Fast inner loop of max_len_seq. + def _max_len_seq_inner(taps, state, nbits, length, seq): +Index: scipy/scipy/sparse/_sputils.py +=================================================================== +--- scipy.orig/scipy/sparse/_sputils.py 2022-09-07 09:51:42.992170041 +0200 ++++ scipy/scipy/sparse/_sputils.py 2022-09-07 09:51:42.992170041 +0200 +@@ -153,7 +153,8 @@ + int32min = np.iinfo(np.int32).min + int32max = np.iinfo(np.int32).max + +- dtype = np.intc ++ # not using intc directly due to misinteractions with pythran ++ dtype = np.int32 if np.intc().itemsize == 4 else np.int64 + if maxval is not None: + if maxval > int32max: + dtype = np.int64 diff --git a/patches/qhull-lfs.patch b/patches/qhull-lfs.patch new file mode 100644 index 00000000..5f7aced7 --- /dev/null +++ b/patches/qhull-lfs.patch @@ -0,0 +1,26 @@ +From: Julian Taylor +Date: Mon, 12 Oct 2015 15:17:23 -0700 +Subject: enable large file support + + probably not needed as the file open api of qhull is not available in python +Forwarded: no + +Patch-Name: qhull-lfs.patch +--- + scipy/spatial/setup.py | 3 +++ + 1 file changed, 3 insertions(+) + +Index: scipy/scipy/spatial/setup.py +=================================================================== +--- scipy.orig/scipy/spatial/setup.py 2022-02-11 18:59:49.481435693 +0100 ++++ scipy/scipy/spatial/setup.py 2022-02-11 18:59:49.477435659 +0100 +@@ -53,6 +53,9 @@ + config.add_extension('_qhull', + sources=['_qhull.c', 'qhull_misc.c'] + qhull_src, + **cfg) ++ cfg.setdefault('define_macros', []).append(('_FILE_OFFSET_BITS','64')) ++ cfg.setdefault('define_macros', []).append(('_LARGEFILE_SOURCE','1')) ++ cfg.setdefault('define_macros', []).append(('_LARGEFILE64_SOURCE','1')) + + # cKDTree + ckdtree_src = ['query.cxx', diff --git a/patches/series b/patches/series new file mode 100644 index 00000000..66f75ef1 --- /dev/null +++ b/patches/series @@ -0,0 +1,21 @@ +use_local_mathjax.patch +qhull-lfs.patch +Use-system-LBFGSB.patch +hppa-boost-long-double-config.patch +manage_tests.patch +build_sh4_FE.patch +pythran_type_PR16646.patch +0008-Don-t-treat-warnings-as-errors-in-pytest.patch +0009-Remove-some-documentation-referencing-the-source.patch +0010-Allow-test_svds_parameter_k_which-to-fail-on-armel.patch +0011-BUG-fix-syevr-series-segfault-by-explicitly-specifyi.patch +0012-MAINT-Handle-numpy-s-deprecation-of-accepting-out-of.patch +0013-MAINT-casting-errstate-for-NumPy-1.24.patch +0014-MAINT-fix-up-_sputils.get_index_dtype-for-NEP-50-cas.patch +0015-TST-fix-test-issues-with-casting-related-warnings-wi.patch +0016-BUG-Fix-power-operator-behaviour-for-sparse-arrays-t.patch +0017-MAINT-fix-umfpack-test-failure-with-numpy-1.23.patch +0018-Drop-intersphinx.patch +0019-Ignore-sphinx-warnings.patch +0020-DOC-MAINT-remove-use-of-inspect.formatargspec-dusing.patch +fix_numpy1.24_PR17035.patch diff --git a/patches/use_local_mathjax.patch b/patches/use_local_mathjax.patch new file mode 100644 index 00000000..fc0870ef --- /dev/null +++ b/patches/use_local_mathjax.patch @@ -0,0 +1,22 @@ +From: SVN-Git Migration +Date: Mon, 12 Oct 2015 15:17:20 -0700 +Subject: use_local_mathjax + +Setting mathjax_path variable to use the local mathjax javascript library +Patch-Name: use_local_mathjax.patch +--- + doc/source/conf.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: scipy/doc/source/conf.py +=================================================================== +--- scipy.orig/doc/source/conf.py 2022-06-13 17:46:20.658259519 +0200 ++++ scipy/doc/source/conf.py 2022-06-13 17:46:20.650259451 +0200 +@@ -224,6 +224,7 @@ + htmlhelp_basename = 'scipy' + + mathjax_path = "scipy-mathjax/MathJax.js?config=scipy-mathjax" ++mathjax_path='/usr/share/javascript/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML' + + + # ----------------------------------------------------------------------------- diff --git a/python-scipy-doc.doc-base b/python-scipy-doc.doc-base new file mode 100644 index 00000000..0490e435 --- /dev/null +++ b/python-scipy-doc.doc-base @@ -0,0 +1,14 @@ +Document: python-scipy-doc +Title: SciPy Manual +Author: The SciPy community +Abstract: This guide is intended as an introductory overview of SciPy + and explains how to install and make use of the most important + features of SciPy. + There is also a tutorial and an API reference manual which details + functions, modules, and objects included in SciPy, describing what + they are and what they do. +Section: Programming/Python + +Format: HTML +Index: /usr/share/doc/python-scipy-doc/html/index.html +Files: /usr/share/doc/python-scipy-doc/html/* diff --git a/python-scipy-doc.docs b/python-scipy-doc.docs new file mode 100644 index 00000000..8137b041 --- /dev/null +++ b/python-scipy-doc.docs @@ -0,0 +1 @@ +doc/build/html diff --git a/python-scipy-doc.lintian-overrides b/python-scipy-doc.lintian-overrides new file mode 100644 index 00000000..91bb3f73 --- /dev/null +++ b/python-scipy-doc.lintian-overrides @@ -0,0 +1 @@ +bogus-mail-host-in-debian-changelog Debian/i386 Build Daemon * diff --git a/python3-scipy.lintian-overrides b/python3-scipy.lintian-overrides new file mode 100644 index 00000000..91bb3f73 --- /dev/null +++ b/python3-scipy.lintian-overrides @@ -0,0 +1 @@ +bogus-mail-host-in-debian-changelog Debian/i386 Build Daemon * diff --git a/rules b/rules new file mode 100755 index 00000000..6ea0df40 --- /dev/null +++ b/rules @@ -0,0 +1,113 @@ +#!/usr/bin/make -f + +export PYBUILD_NAME=scipy + +include /usr/share/dpkg/architecture.mk + +unexport LDFLAGS +export FFLAGS="-fPIC" +export ATLAS=None +export PATH := $(CURDIR)/debian/extra_bin:$(PATH) +export SCIPY_USE_PYTHRAN=0 + +PY3VERS:= $(shell py3versions -v -s) +PY3_DEFAULT:= $(shell py3versions -dv) +TMPDIR := $(CURDIR)/build/tmp +BASE=$(shell pwd)/debian + +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + export NPY_NUM_BUILD_JOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +export SCIPY_USE_PYTHRAN = $(shell if dpkg-query -s python3-pythran >/dev/null 2>/dev/null; then echo 1; else echo 0; fi ) + +# stats/tests/test_continuous_basic.py::test_cont_basic[500-200-ncf-arg74] test fails with IntegrationWarning +# https://github.com/scipy/scipy/issues/14519 +SKIP_TEST_LIST += "test_cont_basic[500-200-ncf-arg74]" + +ifneq (,$(findstring $(DEB_HOST_ARCH), arm64)) + SKIP_TEST_LIST += test_maxiter_worsening[lgmres] +endif + +# linalg/tests/test_decomp.py started segfaulting on armel +ifneq (,$(findstring $(DEB_HOST_ARCH), armel)) + SKIP_TEST_LIST += test_decomp test_random_exact +endif + +# Bug#1017864 test_kolmogorov.py segfaults on i386 (including hurd) +SKIP_KOLMOGOROV_ARCH_LIST := i386 hurd-i386 +ifneq (,$(findstring $(space)$(DEB_HOST_ARCH)$(space), $(space)$(SKIP_KOLMOGOROV_ARCH_LIST)$(space))) + SKIP_TEST_LIST += TestSmirnovp +endif + +# integrate/_ivp/tests/test_ivp.py fail on mips64el +# see https://github.com/scipy/scipy/issues/16883 +ifneq (,$(findstring $(DEB_HOST_ARCH), mips64el)) + SKIP_TEST_LIST += test_first_step test_classes +endif + +ifneq (,$(findstring $(DEB_HOST_ARCH), mipsel)) + SKIP_TEST_LIST += test_NaN_warnings test_moments_warnings +endif + +ifneq (,$(findstring $(DEB_HOST_ARCH), hppa)) + SKIP_TEST_LIST += test_nodata test_cont_basic[500-200-semicircular-arg89] +endif + +# powerpc: failures in stats/tests/test_stats.py: overflow encountered in _hypergeom_* +ifneq (,$(findstring $(DEB_HOST_ARCH), powerpc)) + SKIP_TEST_LIST += test_hypergeom_cdf test_hypergeom_sf test_nch_hypergeom test_precision test_precise test_less_greater +endif + +ifneq (,$(findstring $(DEB_HOST_ARCH), s390x)) + SKIP_TEST_LIST += test_maxiter_worsening +endif + +%: + dh $@ --buildsystem=pybuild + +execute_after_dh_auto_clean: + rm -rf build .pybuild + -find $(CURDIR) -name __pycache__ -type d -exec rm -rf {} + + -rm -rf doc/source/fontList* + -rm -rf doc/source/reference/generated + -rm -rf doc/build + +execute_before_dh_auto_configure: + echo "Building scipy with SCIPY_USE_PYTHRAN=$(SCIPY_USE_PYTHRAN)" + +execute_before_dh_installdocs-indep: + (export MPLCONFIGDIR=. ; \ + PYLIBPATH=`pybuild --print build_dir -p$(PY3_DEFAULT) | awk '{print $$3}'`; \ + echo "building docs using PYLIBPATH=$$PYLIBPATH"; \ + PYTHONPATH=$$PYLIBPATH make -C doc html PYTHONPATH=$$PYLIBPATH PYVER=3) + +override_dh_auto_test: + echo "Build-time tests will be run after the installation dir is installed" + +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) +execute_after_dh_auto_install: + set -e; \ + SKIP_TESTS=""; \ + list_initialised=0; \ + for t in $(SKIP_TEST_LIST); do \ + if [ $${list_initialised} = 0 ]; then \ + SKIP_TESTS=$$t; \ + list_initialised=1; \ + else \ + SKIP_TESTS="$${SKIP_TESTS} or $$t"; \ + fi; \ + done; \ + if [ "x$${SKIP_TESTS}" != "x" ]; then \ + SKIP_TESTS="not ( $${SKIP_TESTS} )"; \ + fi; \ + echo "skipping tests: $${SKIP_TESTS}"; \ + for py in $(PY3VERS); do \ + PYLIBPATH=`pybuild --print build_dir -p$$py | awk '{print $$3}'`; \ + PYTHONPATH=$$PYLIBPATH python$$py \ + $(CURDIR)/runtests.py -n -- -k "$${SKIP_TESTS}"; \ + done +endif + +execute_after_dh_install: + dh_numpy3 diff --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 00000000..aed80725 --- /dev/null +++ b/source/lintian-overrides @@ -0,0 +1,2 @@ +obsolete-url-in-packaging https://code.google.com/archive/p/ampgo [debian/copyright] +source-contains-prebuilt-windows-binary [scipy/io/tests/data/fortran-si4-11x1x10.dat] diff --git a/tests/atlas b/tests/atlas new file mode 120000 index 00000000..6d65db32 --- /dev/null +++ b/tests/atlas @@ -0,0 +1 @@ +openblas \ No newline at end of file diff --git a/tests/blis b/tests/blis new file mode 120000 index 00000000..6d65db32 --- /dev/null +++ b/tests/blis @@ -0,0 +1 @@ +openblas \ No newline at end of file diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..cb0253ff --- /dev/null +++ b/tests/control @@ -0,0 +1,22 @@ +Tests: python3 +Depends: build-essential, python3-scipy, python3-pytest, python3-all, python3-all-dev, python3-pil + +# short test on all python versions including debug +Tests: python3-smoke +Depends: python3-scipy, python3-pytest, python3-all + +#needs root for update-alternatives, build-essential for libc6-dev (ctype libm.so) +Tests: openblas +Restrictions: needs-root +Depends: build-essential, python3-scipy, python3-pytest, python3, libopenblas-dev +Architecture: amd64 arm64 armhf i386 powerpc ppc64el ppc64 kfreebsd-i386 kfreebsd-amd64 mips64el riscv64 sparc64 s390x + +#needs root for update-alternatives, build-essential for libc6-dev (ctype libm.so) +Tests: atlas +Restrictions: needs-root +Depends: build-essential, python3-scipy, python3-pytest, python3, libatlas-base-dev + +#needs root for update-alternatives, build-essential for libc6-dev (ctype libm.so) +Tests: blis +Restrictions: needs-root +Depends: build-essential, python3-scipy, python3-pytest, python3, libblis-dev diff --git a/tests/openblas b/tests/openblas new file mode 100755 index 00000000..7cdc4cb0 --- /dev/null +++ b/tests/openblas @@ -0,0 +1,21 @@ +#!/bin/sh +set -efu +ma=$(dpkg-architecture -qDEB_HOST_MULTIARCH) +blaslib=$(update-alternatives --list libblas.so.3-$ma | grep -m1 $(basename $0)) +update-alternatives --set libblas.so.3-$ma $blaslib + +echo "=== testing "$(basename $0)" ===" + +# one python is enough +PYS=${PYS:-"$(py3versions -d 2>/dev/null)"} + +#test only modules that link against libblas +PYS=$PYS TESTPKG=odr debian/tests/python3 +PYS=$PYS TESTPKG=optimize debian/tests/python3 +PYS=$PYS TESTPKG=spatial debian/tests/python3 +PYS=$PYS TESTPKG=special debian/tests/python3 +PYS=$PYS TESTPKG=cluster debian/tests/python3 +PYS=$PYS TESTPKG=integrate debian/tests/python3 +PYS=$PYS TESTPKG=interpolate debian/tests/python3 +PYS=$PYS TESTPKG=sparse debian/tests/python3 +PYS=$PYS TESTPKG=linalg debian/tests/python3 diff --git a/tests/python3 b/tests/python3 new file mode 100755 index 00000000..aa16dbd2 --- /dev/null +++ b/tests/python3 @@ -0,0 +1,117 @@ +#!/bin/bash +set -efu + +PYS=${PYS:-"$(py3versions -s 2>/dev/null)"} +TESTMODE=${TESTMODE:-full} +TESTPKG=${TESTPKG:-} +export HOME=$AUTOPKGTEST_TMP +export TMPDIR=$AUTOPKGTEST_TMP + +SUBMODULE= +if [ "x${TESTPKG}" != "x" ]; then + SUBMODULE="-s ${TESTPKG}"; +fi + +MODE= +if [ "x${TESTMODE}" != "xfull" ]; then + MODE="-m full"; +fi + +# some tests are expected to fail +# so list tests to skip in array variable SKIP_TEST_LIST +declare -a SKIP_TEST_LIST + +# some arches fail some tests with specific BLAS implementations +# Bug#1003880: skip test_hermitian_modes with blis on i386 (sparse.linalg._eigen.arpack) +arch=$(dpkg-architecture -qDEB_HOST_ARCH) +ma=$(dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_ARCH_BITS=$(dpkg-architecture -q DEB_HOST_ARCH_BITS) +if [ "$arch" = "arm64" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q blis ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_atol[cgs]) +fi +if [ "$arch" = "i386" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q blis ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_hermitian_modes test_complex_nonsymmetric_modes test_standard_nonsymmetric_starting_vector test_general_nonsymmetric_starting_vector test_svd_linop test_complex) +fi +if [ "$arch" = "armhf" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q openblas ; then + # test_large_rank_deficient in scipy/optimize/tests/test_lsq_linear.py times out or segfaults with openblas on armhf + # and other TestTRF tests time out + # test_disp in optimize/tests/test_linprog.py times out with openblas on armhf + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_large_rank_deficient TestTRF test_disp test_m_eq_n_sparse test_magic_square2 test_numerical_jac test_with_bounds test_bvp test_solver_selection) +fi +if [ "$arch" = "armhf" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q atlas ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_aligned_mem) +fi +# segfaults in test_lsq_linear.py::TestBVLS +# see https://ci.debian.net/data/autopkgtest/testing/armhf/s/scipy/25114019/log.gz +if [ "$arch" = "armhf" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q blis ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_large_rank_deficient) +fi + +if [ "$arch" = "armel" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_aligned_mem test_decomp) +fi + +# Bug#1017864 test_kolmogorov.py segfaults on i386 (including hurd) +if [ "$arch" = "i386" ] || [ "$arch" = "hurd-i386" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} TestSmirnovp) +fi + +# integrate/_ivp/tests/test_ivp.py fail on mips64el +# see https://github.com/scipy/scipy/issues/16883 +if [ "$arch" = "mips64el" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_first_step test_classes) +fi + +if [ "$arch" = "ppc64el" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_cossin test_cossin_separate testInitialization) +fi + +if [ "$arch" = "s390x" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_aligned_mem) +fi + +if [ "$arch" = "ppc64el" ] || [ "$arch" = "arm64" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_svds_parameter_tol) +fi + +if [ "$arch" = "ppc64el" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q atlas ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_bug_6139 test_svd_v0 test_svd_random_state test_svd_random_state_2) +fi +if [ "$arch" = "s390x" ] && update-alternatives --query libblas.so.3-$ma | sed -n "/^Value:/p" | grep -q atlas ; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_bug_6139 test_solver_select) +fi + +# avoid segfaults and other failures on riscv64 +if [ "$arch" = "riscv64" ]; then + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_kmeans2_high_dim test_krandinit test_kmeans2_kpp_high_dim) + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_banded_ode_solvers test_singular_term test_vode test_zvode test_odeint_banded_jacobian test_odeint_banded_jac) + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_vector test_iterative_refinements_dense) + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_sine_weighted_finite test_sine_weighted_infinite test_cosine_weighted_infinite) + SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_scalar test_integrate_ppoly test_compare_dense_and_sparse) +fi + + +# stats/tests/test_continuous_basic.py::test_cont_basic[500-200-ncf-arg74] test fails with IntegrationWarning +# https://github.com/scipy/scipy/issues/14519 +SKIP_TEST_LIST=(${SKIP_TEST_LIST[@]} test_cont_basic[500-200-ncf-arg74]) + +SKIP_TESTS="" +list_initialised=0 +for t in ${SKIP_TEST_LIST[@]}; do + if [ ${list_initialised} = 0 ]; then + SKIP_TESTS=$t + list_initialised=1 + else + SKIP_TESTS="${SKIP_TESTS} or $t" + fi +done +if [ "x${SKIP_TESTS}" != "x" ]; then + SKIP_TESTS="not ( ${SKIP_TESTS} )" +fi +echo "skipping tests with SKIP_TEST_LIST=${SKIP_SKIP_TEST_LIST[@]}" + +for py in $PYS; do + echo "=== Testing: $py $TESTPKG ===" + $py runtests.py -n -v ${MODE} ${SUBMODULE} -- -k "${SKIP_TESTS}" 2>&1 + echo "=== Done: $py $TESTPKG ===" +done diff --git a/tests/python3-smoke b/tests/python3-smoke new file mode 100755 index 00000000..2184d577 --- /dev/null +++ b/tests/python3-smoke @@ -0,0 +1,18 @@ +#!/bin/sh +set -efu +echo "=== testing "$(basename $0)" ===" + +PYS=${PYS:-"$(py3versions -s 2>/dev/null)"} +TESTMODE=${TESTMODE:-full} +TESTPKG=${TESTPKG:-scipy} +export HOME=$AUTOPKGTEST_TMP +export TMPDIR=$AUTOPKGTEST_TMP + +cd "$AUTOPKGTEST_TMP" + +# test imports and a fast test +for py in $PYS; do + echo "=== Testing: $py $TESTPKG ===" + $py -c "import scipy.interpolate, scipy.stats, scipy.ndimage; scipy.interpolate.test()" 2>&1 + echo "=== Done: $py $TESTPKG ===" +done diff --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 00000000..63aa7b52 --- /dev/null +++ b/upstream/metadata @@ -0,0 +1,15 @@ +--- +Bug-Database: https://github.com/scipy/scipy/issues +Bug-Submit: https://github.com/scipy/scipy/issues/new +Repository: https://github.com/scipy/scipy.git +Repository-Browse: https://github.com/scipy/scipy +Registry: + - Name: conda:conda-forge + Entry: scipy + - Name: bio.tools + Entry: NA + Checked: 2021-08-01 + - Name: guix + Entry: python-scipy + - Name: SciCrunch + Entry: SCR_008058 diff --git a/watch b/watch new file mode 100644 index 00000000..a20438ef --- /dev/null +++ b/watch @@ -0,0 +1,4 @@ +version=4 +opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*@ARCHIVE_EXT@)%@PACKAGE@-$1%" \ + https://github.com/scipy/scipy/tags \ + (?:.*?/)?v?@ANY_VERSION@@ARCHIVE_EXT@ -- 2.30.2