import scipy-1.3.1-4.module+el8.2.0+5234+f98739b6

This commit is contained in:
CentOS Sources 2020-04-28 05:06:22 -04:00 committed by Andrew Lukoshko
commit e662b7ad32
6 changed files with 1366 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/scipy-1.3.1.tar.gz

1
.scipy.metadata Normal file
View File

@ -0,0 +1 @@
3c079c09ecb614d8056135edd1cc6da51d18df0a SOURCES/scipy-1.3.1.tar.gz

View File

@ -0,0 +1,28 @@
diff --git a/scipy/conftest.py b/scipy/conftest.py
index e5fac23..1a971e8 100644
--- a/scipy/conftest.py
+++ b/scipy/conftest.py
@@ -3,6 +3,7 @@ from __future__ import division, absolute_import, print_function
import os
import pytest
+import _pytest
import warnings
from distutils.version import LooseVersion
@@ -37,3 +38,15 @@ def check_fpu_mode(request):
warnings.warn("FPU mode changed from {0:#x} to {1:#x} during "
"the test".format(old_mode, new_mode),
category=FPUModeChangeWarning, stacklevel=0)
+
+
+ACCEPTABLE_FAILURE_RATE = int(os.environ.get('ACCEPTABLE_FAILURE_RATE', 0))
+
+
+@pytest.hookimpl()
+def pytest_sessionfinish(session, exitstatus):
+ if exitstatus != _pytest.main.EXIT_TESTSFAILED:
+ return
+ failure_rate = (100.0 * session.testsfailed) / session.testscollected
+ if failure_rate <= ACCEPTABLE_FAILURE_RATE:
+ session.exitstatus = 0

View File

@ -0,0 +1,140 @@
From d945dfa4063c5cd7169acd117c15f23ba68027ed Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Wed, 31 Jul 2019 23:31:22 +0300
Subject: [PATCH 1/2] BUG: spatial: use c++11 construct for getting start of
vector
gcc 9.1.1 on Fedora throws asserts and crashes at runtime on
`&x.front()` when `x` is empty, so use a different construct for getting
the beginning of the data block.
---
scipy/spatial/ckdtree.pyx | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/scipy/spatial/ckdtree.pyx b/scipy/spatial/ckdtree.pyx
index e2eea8c9097..884d49e1d34 100644
--- a/scipy/spatial/ckdtree.pyx
+++ b/scipy/spatial/ckdtree.pyx
@@ -190,7 +190,7 @@ cdef class coo_entries:
res_dtype = np.dtype(_dtype, align = True)
n = <np.intp_t> self.buf.size()
if NPY_LIKELY(n > 0):
- pr = &self.buf.front()
+ pr = self.buf.data()
uintptr = <np.uintp_t> (<void*> pr)
dtype = np.dtype(np.uint8)
self.__array_interface__ = dict(
@@ -213,7 +213,7 @@ cdef class coo_entries:
dict res_dict
n = <np.intp_t> self.buf.size()
if NPY_LIKELY(n > 0):
- pr = &self.buf.front()
+ pr = self.buf.data()
res_dict = dict()
for k in range(n):
i = pr[k].i
@@ -263,7 +263,7 @@ cdef class ordered_pairs:
np.intp_t n
n = <np.intp_t> self.buf.size()
if NPY_LIKELY(n > 0):
- pr = &self.buf.front()
+ pr = self.buf.data()
uintptr = <np.uintp_t> (<void*> pr)
dtype = np.dtype(np.intp)
self.__array_interface__ = dict(
@@ -284,7 +284,7 @@ cdef class ordered_pairs:
np.intp_t i, n
set results
results = set()
- pair = &self.buf.front()
+ pair = self.buf.data()
n = <np.intp_t> self.buf.size()
if sizeof(long) < sizeof(np.intp_t):
# Needed for Python 2.x on Win64
@@ -593,7 +593,7 @@ cdef class cKDTree:
cself = self.cself
# finalize the tree points, this calls _post_init_traverse
- cself.ctree = &cself.tree_buffer.front()
+ cself.ctree = cself.tree_buffer.data()
# set the size attribute after tree_buffer is built
cself.size = cself.tree_buffer.size()
@@ -971,7 +971,7 @@ cdef class cKDTree:
m = <np.intp_t> (vvres[i].size())
tmp = m * [None]
- cur = &vvres[i].front()
+ cur = vvres[i].data()
for j in range(m):
tmp[j] = cur[0]
cur += 1
@@ -1067,7 +1067,7 @@ cdef class cKDTree:
tmp = m * [None]
with nogil:
sort(vvres[i].begin(), vvres[i].end())
- cur = &vvres[i].front()
+ cur = vvres[i].data()
for j in range(m):
tmp[j] = cur[0]
cur += 1
@@ -1492,7 +1492,7 @@ cdef class cKDTree:
cdef ckdtree * cself = self.cself
size = cself.tree_buffer.size() * sizeof(ckdtreenode)
- cdef np.ndarray tree = np.asarray(<char[:size]> <char*> &cself.tree_buffer.front())
+ cdef np.ndarray tree = np.asarray(<char[:size]> <char*> cself.tree_buffer.data())
state = (tree.copy(), self.data.copy(), self.n, self.m, self.leafsize,
self.maxes, self.mins, self.indices.copy(),
@@ -1511,7 +1511,7 @@ cdef class cKDTree:
cself.tree_buffer = new vector[ckdtreenode]()
cself.tree_buffer.resize(tree.size // sizeof(ckdtreenode))
- mytree = np.asarray(<char[:tree.size]> <char*> &cself.tree_buffer.front())
+ mytree = np.asarray(<char[:tree.size]> <char*> cself.tree_buffer.data())
# set raw pointers
self._pre_init()
From ad0f91438f49bfe277e32d2689aefeb0c11c789f Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Wed, 31 Jul 2019 23:41:40 +0300
Subject: [PATCH 2/2] BLD: spatial: set c++ std flags for ckdtree
---
scipy/spatial/setup.py | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/scipy/spatial/setup.py b/scipy/spatial/setup.py
index d7e334876df..19d78593c5e 100644
--- a/scipy/spatial/setup.py
+++ b/scipy/spatial/setup.py
@@ -4,6 +4,13 @@
import glob
+def pre_build_hook(build_ext, ext):
+ from scipy._build_utils.compiler_helper import get_cxx_std_flag
+ std_flag = get_cxx_std_flag(build_ext._cxx_compiler)
+ if std_flag is not None:
+ ext.extra_compile_args.append(std_flag)
+
+
def configuration(parent_package='', top_path=None):
from numpy.distutils.misc_util import Configuration, get_numpy_include_dirs
from numpy.distutils.misc_util import get_info as get_misc_info
@@ -55,10 +62,12 @@ def configuration(parent_package='', top_path=None):
ckdtree_headers = [join('ckdtree', 'src', x) for x in ckdtree_headers]
ckdtree_dep = ['ckdtree.cxx'] + ckdtree_headers + ckdtree_src
- config.add_extension('ckdtree',
+ ext = config.add_extension('ckdtree',
sources=['ckdtree.cxx'] + ckdtree_src,
depends=ckdtree_dep,
include_dirs=inc_dirs + [join('ckdtree', 'src')])
+ ext._pre_build_hook = pre_build_hook
+
# _distance_wrap
config.add_extension('_distance_wrap',
sources=[join('src', 'distance_wrap.c')],

View File

@ -0,0 +1,589 @@
diff -ru scipy-1.2.1/scipy/odr/__odrpack.c scipy-1.2.1_patched/scipy/odr/__odrpack.c
--- scipy-1.2.1/scipy/odr/__odrpack.c 2019-01-28 04:57:51.000000000 +0100
+++ scipy-1.2.1_patched/scipy/odr/__odrpack.c 2019-06-06 16:11:32.947892754 +0200
@@ -9,6 +9,8 @@
*
*/
+#define PY_SSIZE_T_CLEAN
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
#include "odrpack.h"
@@ -44,7 +46,7 @@
double *fjacb, double *fjacd, int *istop)
{
PyObject *arg01, *arglist;
- PyObject *result;
+ PyObject *result = NULL;
PyArrayObject *result_array = NULL;
PyArrayObject *pyXplusD;
void *beta_dst;
@@ -57,14 +59,14 @@
dim2[0] = *m;
dim2[1] = *n;
pyXplusD = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_DOUBLE);
- memcpy(pyXplusD->data, (void *)xplusd, (*m) * (*n) * sizeof(double));
+ memcpy(PyArray_DATA(pyXplusD), (void *)xplusd, (*m) * (*n) * sizeof(double));
}
else
{
npy_intp dim1[1];
dim1[0] = *n;
pyXplusD = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- memcpy(pyXplusD->data, (void *)xplusd, (*n) * sizeof(double));
+ memcpy(PyArray_DATA(pyXplusD), (void *)xplusd, (*n) * sizeof(double));
}
PyTuple_SetItem(arg01, 0, odr_global.pyBeta);
@@ -84,7 +86,7 @@
Py_DECREF(arg01);
*istop = 0;
- beta_dst = ((PyArrayObject *) (odr_global.pyBeta))->data;
+ beta_dst = (PyArray_DATA((PyArrayObject *) odr_global.pyBeta));
if (beta != beta_dst) {
memcpy(beta_dst, (void *)beta, (*np) * sizeof(double));
}
@@ -121,7 +123,7 @@
"Result from function call is not a proper array of floats.");
}
- memcpy((void *)f, result_array->data, (*n) * (*nq) * sizeof(double));
+ memcpy((void *)f, PyArray_DATA(result_array), (*n) * (*nq) * sizeof(double));
Py_DECREF(result_array);
}
@@ -161,7 +163,7 @@
{
/* result_array should be rank-3 */
- if (result_array->nd != 3)
+ if (PyArray_NDIM(result_array) != 3)
{
Py_DECREF(result_array);
PYERR2(odr_error, "Beta Jacobian is not rank-3");
@@ -171,14 +173,14 @@
{
/* result_array should be rank-2 */
- if (result_array->nd != 2)
+ if (PyArray_NDIM(result_array) != 2)
{
Py_DECREF(result_array);
PYERR2(odr_error, "Beta Jacobian is not rank-2");
}
}
- memcpy((void *)fjacb, result_array->data,
+ memcpy((void *)fjacb, PyArray_DATA(result_array),
(*n) * (*nq) * (*np) * sizeof(double));
Py_DECREF(result_array);
@@ -220,7 +222,7 @@
{
/* result_array should be rank-3 */
- if (result_array->nd != 3)
+ if (PyArray_NDIM(result_array) != 3)
{
Py_DECREF(result_array);
PYERR2(odr_error, "xplusd Jacobian is not rank-3");
@@ -230,7 +232,7 @@
{
/* result_array should be rank-2 */
- if (result_array->nd != 2)
+ if (PyArray_NDIM(result_array) != 2)
{
Py_DECREF(result_array);
PYERR2(odr_error, "xplusd Jacobian is not rank-2");
@@ -240,14 +242,14 @@
{
/* result_array should be rank-1 */
- if (result_array->nd != 1)
+ if (PyArray_NDIM(result_array) != 1)
{
Py_DECREF(result_array);
PYERR2(odr_error, "xplusd Jacobian is not rank-1");
}
}
- memcpy((void *)fjacd, result_array->data,
+ memcpy((void *)fjacd, PyArray_DATA(result_array),
(*n) * (*nq) * (*m) * sizeof(double));
Py_DECREF(result_array);
}
@@ -291,7 +293,7 @@
return NULL;
}
- lwkmn = work->dimensions[0];
+ lwkmn = PyArray_DIMS(work)[0];
F_FUNC(dwinf,DWINF)(&n, &m, &np, &nq, &ldwe, &ld2we, &isodr,
&delta, &eps, &xplus, &fn, &sd, &vcv, &rvar, &wss, &wssde,
@@ -352,15 +354,15 @@
wrk6--;
wrk7--;
- dim1[0] = beta->dimensions[0];
+ dim1[0] = PyArray_DIMS(beta)[0];
sd_beta = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- dim2[0] = beta->dimensions[0];
- dim2[1] = beta->dimensions[0];
+ dim2[0] = PyArray_DIMS(beta)[0];
+ dim2[1] = PyArray_DIMS(beta)[0];
cov_beta = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_DOUBLE);
- memcpy(sd_beta->data, (void *)((double *)(work->data) + sd),
+ memcpy(PyArray_DATA(sd_beta), (void *)((double *)(PyArray_DATA(work)) + sd),
np * sizeof(double));
- memcpy(cov_beta->data, (void *)((double *)(work->data) + vcv),
+ memcpy(PyArray_DATA(cov_beta), (void *)((double *)(PyArray_DATA(work)) + vcv),
np * np * sizeof(double));
if (!full_output)
@@ -427,21 +429,21 @@
fnA = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_DOUBLE);
}
- memcpy(deltaA->data, (void *)((double *)(work->data) + delta),
+ memcpy(PyArray_DATA(deltaA), (void *)((double *)(PyArray_DATA(work)) + delta),
m * n * sizeof(double));
- memcpy(epsA->data, (void *)((double *)(work->data) + eps),
+ memcpy(PyArray_DATA(epsA), (void *)((double *)(PyArray_DATA(work)) + eps),
nq * n * sizeof(double));
- memcpy(xplusA->data, (void *)((double *)(work->data) + xplus),
+ memcpy(PyArray_DATA(xplusA), (void *)((double *)(PyArray_DATA(work)) + xplus),
m * n * sizeof(double));
- memcpy(fnA->data, (void *)((double *)(work->data) + fn),
+ memcpy(PyArray_DATA(fnA), (void *)((double *)(PyArray_DATA(work)) + fn),
nq * n * sizeof(double));
- res_var = *((double *)(work->data) + rvar);
- sum_square = *((double *)(work->data) + wss);
- sum_square_delta = *((double *)(work->data) + wssde);
- sum_square_eps = *((double *)(work->data) + wssep);
- inv_condnum = *((double *)(work->data) + rcond);
- rel_error = *((double *)(work->data) + eta);
+ res_var = *((double *)(PyArray_DATA(work)) + rvar);
+ sum_square = *((double *)(PyArray_DATA(work)) + wss);
+ sum_square_delta = *((double *)(PyArray_DATA(work)) + wssde);
+ sum_square_eps = *((double *)(PyArray_DATA(work)) + wssep);
+ inv_condnum = *((double *)(PyArray_DATA(work)) + rcond);
+ rel_error = *((double *)(PyArray_DATA(work)) + eta);
retobj =
Py_BuildValue
@@ -623,7 +625,7 @@
PYERR(PyExc_ValueError,
"y could not be made into a suitable array");
}
- n = y->dimensions[y->nd - 1]; /* pick the last dimension */
+ n = PyArray_DIMS(y)[PyArray_NDIM(y) - 1]; /* pick the last dimension */
if ((x =
(PyArrayObject *) PyArray_CopyFromObject(px, NPY_DOUBLE, 1,
2)) == NULL)
@@ -631,18 +633,18 @@
PYERR(PyExc_ValueError,
"x could not be made into a suitable array");
}
- if (n != x->dimensions[x->nd - 1])
+ if (n != PyArray_DIMS(x)[PyArray_NDIM(x) - 1])
{
PYERR(PyExc_ValueError,
"x and y don't have matching numbers of observations");
}
- if (y->nd == 1)
+ if (PyArray_NDIM(y) == 1)
{
nq = 1;
}
else
{
- nq = y->dimensions[0];
+ nq = PyArray_DIMS(y)[0];
}
ldx = ldy = n;
@@ -664,17 +666,17 @@
"x could not be made into a suitable array");
}
- n = x->dimensions[x->nd - 1];
+ n = PyArray_DIMS(x)[PyArray_NDIM(x) - 1];
ldx = n;
}
- if (x->nd == 1)
+ if (PyArray_NDIM(x) == 1)
{
m = 1;
}
else
{
- m = x->dimensions[0];
+ m = PyArray_DIMS(x)[0];
} /* x, y */
if ((beta =
@@ -684,14 +686,14 @@
PYERR(PyExc_ValueError,
"initbeta could not be made into a suitable array");
}
- np = beta->dimensions[0];
+ np = PyArray_DIMS(beta)[0];
if (pwe == NULL)
{
ldwe = ld2we = 1;
dim1[0] = n;
we = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- ((double *)(we->data))[0] = -1.0;
+ ((double *)(PyArray_DATA(we)))[0] = -1.0;
}
else if (PyNumber_Check(pwe) && !PyArray_Check(pwe))
{
@@ -711,11 +713,11 @@
we = (PyArrayObject *) PyArray_SimpleNew(3, dim3, NPY_DOUBLE);
if (implicit)
{
- ((double *)(we->data))[0] = val;
+ ((double *)(PyArray_DATA(we)))[0] = val;
}
else
{
- ((double *)(we->data))[0] = -val;
+ ((double *)(PyArray_DATA(we)))[0] = -val;
}
ldwe = ld2we = 1;
}
@@ -730,29 +732,29 @@
PYERR(PyExc_ValueError, "could not convert we to a suitable array");
}
- if (we->nd == 1 && nq == 1)
+ if (PyArray_NDIM(we) == 1 && nq == 1)
{
ldwe = n;
ld2we = 1;
}
- else if (we->nd == 1 && we->dimensions[0] == nq)
+ else if (PyArray_NDIM(we) == 1 && PyArray_DIMS(we)[0] == nq)
{
/* we is a rank-1 array with diagonal weightings to be broadcast
* to all observations */
ldwe = 1;
ld2we = 1;
}
- else if (we->nd == 3 && we->dimensions[0] == nq
- && we->dimensions[1] == nq && we->dimensions[2] == 1)
+ else if (PyArray_NDIM(we) == 3 && PyArray_DIMS(we)[0] == nq
+ && PyArray_DIMS(we)[1] == nq && PyArray_DIMS(we)[2] == 1)
{
/* we is a rank-3 array with the covariant weightings
to be broadcast to all observations */
ldwe = 1;
ld2we = nq;
}
- else if (we->nd == 2 && we->dimensions[0] == nq
- && we->dimensions[1] == nq)
+ else if (PyArray_NDIM(we) == 2 && PyArray_DIMS(we)[0] == nq
+ && PyArray_DIMS(we)[1] == nq)
{
/* we is a rank-2 array with the full covariant weightings
to be broadcast to all observations */
@@ -760,16 +762,16 @@
ld2we = nq;
}
- else if (we->nd == 2 && we->dimensions[0] == nq
- && we->dimensions[1] == n)
+ else if (PyArray_NDIM(we) == 2 && PyArray_DIMS(we)[0] == nq
+ && PyArray_DIMS(we)[1] == n)
{
/* we is a rank-2 array with the diagonal elements of the
covariant weightings for each observation */
ldwe = n;
ld2we = 1;
}
- else if (we->nd == 3 && we->dimensions[0] == nq
- && we->dimensions[1] == nq && we->dimensions[2] == n)
+ else if (PyArray_NDIM(we) == 3 && PyArray_DIMS(we)[0] == nq
+ && PyArray_DIMS(we)[1] == nq && PyArray_DIMS(we)[2] == n)
{
/* we is the full specification of the covariant weights
for each observation */
@@ -788,7 +790,7 @@
dim1[0] = m;
wd = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- ((double *)(wd->data))[0] = -1.0;
+ ((double *)(PyArray_DATA(wd)))[0] = -1.0;
}
else if (PyNumber_Check(pwd) && !PyArray_Check(pwd))
{
@@ -806,7 +808,7 @@
dim3[1] = 1;
dim3[2] = m;
wd = (PyArrayObject *) PyArray_SimpleNew(3, dim3, NPY_DOUBLE);
- ((double *)(wd->data))[0] = -val;
+ ((double *)(PyArray_DATA(wd)))[0] = -val;
ldwd = ld2wd = 1;
}
else if (PySequence_Check(pwd))
@@ -820,12 +822,12 @@
PYERR(PyExc_ValueError, "could not convert wd to a suitable array");
}
- if (wd->nd == 1 && m == 1)
+ if (PyArray_NDIM(wd) == 1 && m == 1)
{
ldwd = n;
ld2wd = 1;
}
- else if (wd->nd == 1 && wd->dimensions[0] == m)
+ else if (PyArray_NDIM(wd) == 1 && PyArray_DIMS(wd)[0] == m)
{
/* wd is a rank-1 array with diagonal weightings to be broadcast
* to all observations */
@@ -833,16 +835,16 @@
ld2wd = 1;
}
- else if (wd->nd == 3 && wd->dimensions[0] == m
- && wd->dimensions[1] == m && wd->dimensions[2] == 1)
+ else if (PyArray_NDIM(wd) == 3 && PyArray_DIMS(wd)[0] == m
+ && PyArray_DIMS(wd)[1] == m && PyArray_DIMS(wd)[2] == 1)
{
/* wd is a rank-3 array with the covariant wdightings
to be broadcast to all observations */
ldwd = 1;
ld2wd = m;
}
- else if (wd->nd == 2 && wd->dimensions[0] == m
- && wd->dimensions[1] == m)
+ else if (PyArray_NDIM(wd) == 2 && PyArray_DIMS(wd)[0] == m
+ && PyArray_DIMS(wd)[1] == m)
{
/* wd is a rank-2 array with the full covariant weightings
to be broadcast to all observations */
@@ -850,16 +852,16 @@
ld2wd = m;
}
- else if (wd->nd == 2 && wd->dimensions[0] == m
- && wd->dimensions[1] == n)
+ else if (PyArray_NDIM(wd) == 2 && PyArray_DIMS(wd)[0] == m
+ && PyArray_DIMS(wd)[1] == n)
{
/* wd is a rank-2 array with the diagonal elements of the
covariant weightings for each observation */
ldwd = n;
ld2wd = 1;
}
- else if (wd->nd == 3 && wd->dimensions[0] == m
- && wd->dimensions[1] == m && wd->dimensions[2] == n)
+ else if (PyArray_NDIM(wd) == 3 && PyArray_DIMS(wd)[0] == m
+ && PyArray_DIMS(wd)[1] == m && PyArray_DIMS(wd)[2] == n)
{
/* wd is the full specification of the covariant weights
for each observation */
@@ -878,7 +880,7 @@
{
dim1[0] = np;
ifixb = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_INT);
- *(int *)(ifixb->data) = -1; /* set first element negative */
+ *(int *)(PyArray_DATA(ifixb)) = -1; /* set first element negative */
}
else
{
@@ -892,7 +894,7 @@
"could not convert ifixb to a suitable array");
}
- if (ifixb->dimensions[0] != np)
+ if (PyArray_DIMS(ifixb)[0] != np)
{
PYERR(PyExc_ValueError,
"could not convert ifixb to a suitable array");
@@ -904,7 +906,7 @@
dim2[0] = m;
dim2[1] = 1;
ifixx = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_INT);
- *(int *)(ifixx->data) = -1; /* set first element negative */
+ *(int *)(PyArray_DATA(ifixx)) = -1; /* set first element negative */
ldifx = 1;
}
else
@@ -919,16 +921,16 @@
"could not convert ifixx to a suitable array");
}
- if (ifixx->nd == 1 && ifixx->dimensions[0] == m)
+ if (PyArray_NDIM(ifixx) == 1 && PyArray_DIMS(ifixx)[0] == m)
{
ldifx = 1;
}
- else if (ifixx->nd == 1 && ifixx->dimensions[0] == n && m == 1)
+ else if (PyArray_NDIM(ifixx) == 1 && PyArray_DIMS(ifixx)[0] == n && m == 1)
{
ldifx = n;
}
- else if (ifixx->nd == 2 && ifixx->dimensions[0] == m
- && ifixx->dimensions[1] == n)
+ else if (PyArray_NDIM(ifixx) == 2 && PyArray_DIMS(ifixx)[0] == m
+ && PyArray_DIMS(ifixx)[1] == n)
{
ldifx = n;
}
@@ -957,14 +959,14 @@
{
dim1[0] = np;
stpb = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- *(double *)(stpb->data) = 0.0;
+ *(double *)(PyArray_DATA(stpb)) = 0.0;
}
else /* pstpb is a sequence */
{
if ((stpb =
(PyArrayObject *) PyArray_CopyFromObject(pstpb, NPY_DOUBLE, 1,
1)) == NULL
- || stpb->dimensions[0] != np)
+ || PyArray_DIMS(stpb)[0] != np)
{
PYERR(PyExc_ValueError,
"could not convert stpb to a suitable array");
@@ -976,7 +978,7 @@
dim2[0] = 1;
dim2[1] = m;
stpd = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_DOUBLE);
- *(double *)(stpd->data) = 0.0;
+ *(double *)(PyArray_DATA(stpd)) = 0.0;
ldstpd = 1;
}
else
@@ -989,16 +991,16 @@
"could not convert stpb to a suitable array");
}
- if (stpd->nd == 1 && stpd->dimensions[0] == m)
+ if (PyArray_NDIM(stpd) == 1 && PyArray_DIMS(stpd)[0] == m)
{
ldstpd = 1;
}
- else if (stpd->nd == 1 && stpd->dimensions[0] == n && m == 1)
+ else if (PyArray_NDIM(stpd) == 1 && PyArray_DIMS(stpd)[0] == n && m == 1)
{
ldstpd = n;
}
- else if (stpd->nd == 2 && stpd->dimensions[0] == n &&
- stpd->dimensions[1] == m)
+ else if (PyArray_NDIM(stpd) == 2 && PyArray_DIMS(stpd)[0] == n &&
+ PyArray_DIMS(stpd)[1] == m)
{
ldstpd = n;
}
@@ -1008,14 +1010,14 @@
{
dim1[0] = np;
sclb = (PyArrayObject *) PyArray_SimpleNew(1, dim1, NPY_DOUBLE);
- *(double *)(sclb->data) = 0.0;
+ *(double *)(PyArray_DATA(sclb)) = 0.0;
}
else /* psclb is a sequence */
{
if ((sclb =
(PyArrayObject *) PyArray_CopyFromObject(psclb, NPY_DOUBLE, 1,
1)) == NULL
- || sclb->dimensions[0] != np)
+ || PyArray_DIMS(sclb)[0] != np)
{
PYERR(PyExc_ValueError,
"could not convert sclb to a suitable array");
@@ -1027,7 +1029,7 @@
dim2[0] = 1;
dim2[1] = n;
scld = (PyArrayObject *) PyArray_SimpleNew(2, dim2, NPY_DOUBLE);
- *(double *)(scld->data) = 0.0;
+ *(double *)(PyArray_DATA(scld)) = 0.0;
ldscld = 1;
}
else
@@ -1040,16 +1042,16 @@
"could not convert stpb to a suitable array");
}
- if (scld->nd == 1 && scld->dimensions[0] == m)
+ if (PyArray_NDIM(scld) == 1 && PyArray_DIMS(scld)[0] == m)
{
ldscld = 1;
}
- else if (scld->nd == 1 && scld->dimensions[0] == n && m == 1)
+ else if (PyArray_NDIM(scld) == 1 && PyArray_DIMS(scld)[0] == n && m == 1)
{
ldscld = n;
}
- else if (scld->nd == 2 && scld->dimensions[0] == n &&
- scld->dimensions[1] == m)
+ else if (PyArray_NDIM(scld) == 2 && PyArray_DIMS(scld)[0] == n &&
+ PyArray_DIMS(scld)[1] == m)
{
ldscld = n;
}
@@ -1110,9 +1112,9 @@
PYERR(PyExc_ValueError,
"could not convert work to a suitable array");
}
- if (work->dimensions[0] < lwork)
+ if (PyArray_DIMS(work)[0] < lwork)
{
- printf("%d %d\n", work->dimensions[0], lwork);
+ printf("%ld %d\n", PyArray_DIMS(work)[0], lwork);
PYERR(PyExc_ValueError, "work is too small");
}
}
@@ -1133,7 +1135,7 @@
"could not convert iwork to a suitable array");
}
- if (iwork->dimensions[0] < liwork)
+ if (PyArray_DIMS(iwork)[0] < liwork)
{
PYERR(PyExc_ValueError, "iwork is too small");
}
@@ -1170,19 +1172,18 @@
Py_INCREF(beta);
odr_global.extra_args = extra_args;
Py_XINCREF(extra_args);
-
- /* now call DODRC */
- F_FUNC(dodrc,DODRC)(fcn_callback, &n, &m, &np, &nq, (double *)(beta->data),
- (double *)(y->data), &ldy, (double *)(x->data), &ldx,
- (double *)(we->data), &ldwe, &ld2we,
- (double *)(wd->data), &ldwd, &ld2wd,
- (int *)(ifixb->data), (int *)(ifixx->data), &ldifx,
- &job, &ndigit, &taufac, &sstol, &partol, &maxit,
- &iprint, &lunerr, &lunrpt,
- (double *)(stpb->data), (double *)(stpd->data), &ldstpd,
- (double *)(sclb->data), (double *)(scld->data), &ldscld,
- (double *)(work->data), &lwork, (int *)(iwork->data), &liwork,
- &info);
+ /* now call DODRC */
+ F_FUNC(dodrc,DODRC)(fcn_callback, &n, &m, &np, &nq, (double *)(PyArray_DATA(beta)),
+ (double *)(PyArray_DATA(y)), &ldy, (double *)(PyArray_DATA(x)), &ldx,
+ (double *)(PyArray_DATA(we)), &ldwe, &ld2we,
+ (double *)(PyArray_DATA(wd)), &ldwd, &ld2wd,
+ (int *)(PyArray_DATA(ifixb)), (int *)(PyArray_DATA(ifixx)), &ldifx,
+ &job, &ndigit, &taufac, &sstol, &partol, &maxit,
+ &iprint, &lunerr, &lunrpt,
+ (double *)(PyArray_DATA(stpb)), (double *)(PyArray_DATA(stpd)), &ldstpd,
+ (double *)(PyArray_DATA(sclb)), (double *)(PyArray_DATA(scld)), &ldscld,
+ (double *)(PyArray_DATA(work)), &lwork, (int *)(PyArray_DATA(iwork)), &liwork,
+ &info);
result = gen_output(n, m, np, nq, ldwe, ld2we,
beta, work, iwork, isodr, info, full_output);

607
SPECS/scipy.spec Normal file
View File

@ -0,0 +1,607 @@
# without means enabled
%bcond_with doc
%bcond_with tests
# Set to pre-release version suffix if building pre-release, else %%{nil}
%global rcver %{nil}
Summary: Scientific Tools for Python
Name: scipy
Version: 1.3.1
Release: 4%{?dist}
# BSD -- whole package except:
# Boost -- scipy/special/cephes/scipy_iv.c
# Public Domain -- scipy/odr/__odrpack.c
License: BSD and Boost and Public Domain
Url: http://www.scipy.org/scipylib/index.html
Source0: https://github.com/scipy/scipy/releases/download/v%{version}/scipy-%{version}.tar.gz
# Previously we ignored the tests results, because they don't always pass
# Instead of ignoring the results entirely, we allow certain failure rate
# https://stackoverflow.com/a/47731333/1839451
Patch0: acceptable_failure_rate.patch
# The C API of PyArrayObject has changed in Python 3.8 and the
# structure fields accessed in __odrpack.c are now deprecated.
Patch1: numpy-deprecation-warnings.patch
# Bugfix of cKDTree
# PR: https://github.com/scipy/scipy/pull/10567
# Issue: https://github.com/scipy/scipy/issues/11021
Patch2: ckdtree_bugfix.patch
# Exclude i686 arch. Due to a modularity issue it's being added to the
# x86_64 compose of CRB, but we don't want to ship it at all.
# See: https://projects.engineering.redhat.com/browse/RCM-72605
ExcludeArch: i686
BuildRequires: fftw-devel, blas-devel, lapack-devel, suitesparse-devel
%ifarch %{openblas_arches}
BuildRequires: openblas-devel
%else
BuildRequires: atlas-devel
%endif
BuildRequires: gcc-gfortran, swig, gcc-c++
BuildRequires: qhull-devel
BuildRequires: /usr/bin/pathfix3.8.py
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: python%{python3_pkgversion}-numpy
BuildRequires: python%{python3_pkgversion}-numpy-f2py
BuildRequires: python%{python3_pkgversion}-setuptools
BuildRequires: python%{python3_pkgversion}-Cython
BuildRequires: python%{python3_pkgversion}-rpm-macros
%if %{with tests}
BuildRequires: python%{python3_pkgversion}-pytest
BuildRequires: python%{python3_pkgversion}-pytest-xdist
BuildRequires: python%{python3_pkgversion}-pytest-timeout
%endif
%if %{with doc}
BuildRequires: python%{python3_pkgversion}-sphinx
BuildRequires: python%{python3_pkgversion}-matplotlib
BuildRequires: python%{python3_pkgversion}-numpydoc
%endif
%global _description %{expand:
Scipy is open-source software for mathematics, science, and
engineering. The core library is NumPy which provides convenient and
fast N-dimensional array manipulation. The SciPy library is built to
work with NumPy arrays, and provides many user-friendly and efficient
numerical routines such as routines for numerical integration and
optimization. Together, they run on all popular operating systems, are
quick to install, and are free of charge. NumPy and SciPy are easy to
use, but powerful enough to be depended upon by some of the world's
leading scientists and engineers.}
%description %_description
%package -n python%{python3_pkgversion}-scipy
Summary: Scientific Tools for Python
Requires: python%{python3_pkgversion}-numpy, python%{python3_pkgversion}-numpy-f2py
%{?python_provide:%python_provide python%{python3_pkgversion}-scipy}
%description -n python%{python3_pkgversion}-scipy %_description
%if %{with doc}
%package -n python%{python3_pkgversion}-scipy-doc
Summary: Scientific Tools for Python - documentation
Requires: python%{python3_pkgversion}-scipy = %{version}-%{release}
%description -n python%{python3_pkgversion}-scipy-doc
HTML documentation for Scipy
%endif
%prep
%autosetup -p1 -n %{name}-%{version}%{?rcver}
cat > site.cfg << EOF
[amd]
library_dirs = %{_libdir}
include_dirs = /usr/include/suitesparse
amd_libs = amd
[umfpack]
library_dirs = %{_libdir}
include_dirs = /usr/include/suitesparse
umfpack_libs = umfpack
%ifarch %{openblas_arches}
[openblas]
libraries = openblasp
library_dirs = %{_libdir}
%endif
EOF
# Docs won't build unless the .dat files are specified here
sed -i 's/metadata = dict(/metadata = dict(package_data={"": ["*.dat"]},/' setup.py
# remove bundled numpydoc
rm doc/sphinxext -r
rm $(grep -rl '/\* Generated by Cython') PKG-INFO
%build
for PY in %{python3_version}; do
env CFLAGS="$RPM_OPT_FLAGS -lm" \
FFLAGS="$RPM_OPT_FLAGS -fPIC -cpp" \
LDFLAGS="$RPM_LD_FLAGS -shared" \
%ifarch %{openblas_arches}
OPENBLAS=%{_libdir} \
%else
ATLAS=%{_libdir}/atlas \
%endif
FFTW=%{_libdir} BLAS=%{_libdir} LAPACK=%{_libdir} \
%{_bindir}/python$PY setup.py config_fc \
--fcompiler=gnu95 --noarch \
build
%if %{with doc}
pushd doc
export PYTHONPATH=$(echo ../build/lib.linux-*-$PY/)
make html SPHINXBUILD=sphinx-build-$PY
rm -rf build/html/.buildinfo
mv build build-$PY
popd
%endif
done
%install
%py3_install
# Some files got ambiguous python shebangs, we fix them after everything else is done
pathfix3.8.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch}
%if %{with tests}
%check
# Skip all tests on s390x because they hangs unexpectedly and randomly
# and pytest-timeout has no effect. Note that the outcome of the tests
# was previously ignored anyway so by disabling the test for s390x we
# are not doing anything more dangerous.
%ifarch s390x
exit 0
%endif
%ifarch x86_64
export ACCEPTABLE_FAILURE_RATE=0
%else
# there are usually 10-21 test failing, so we allow 1% failure rate
export ACCEPTABLE_FAILURE_RATE=1
%endif
%ifarch ppc64le
# test_decomp segfaults on ppc64le
export k="not test_denormals and not test_decomp"
%else
# test_denormals tends to stuck
export k="not test_denormals"
%endif
# Do not create -PYTEST.pyc files
export PYTHONDONTWRITEBYTECODE=1
pushd %{buildroot}/%{python3_sitearch}
# TODO TestIQR.test_scale fails on Python 3.8+ due to some warnings, investigate
%{__python3} -m pytest --timeout=300 -k "$k and not (TestIQR and test_scale)" scipy --numprocesses=auto
# Remove test remnants
rm -rf gram{A,B}
popd
%endif
%files -n python%{python3_pkgversion}-scipy
%doc LICENSE.txt
%{python3_sitearch}/scipy/
%{python3_sitearch}/*.egg-info
%if %{with doc}
%files -n python%{python3_pkgversion}-scipy-doc
%license LICENSE.txt
%doc doc/build-%{python3_version}/html
%endif
%changelog
* Thu Dec 12 2019 Tomas Orsava <torsava@redhat.com> - 1.3.1-4
- Exclude unsupported i686 arch
* Tue Dec 03 2019 Lumír Balhar <lbalhar@redhat.com> - 1.3.1-3
- Specify LDFLAGS explicitly
- Force preprocessing of Fortran sources to make annobin record proper flags
- Resolves: rhbz#1778983
* Thu Nov 21 2019 Lumír Balhar <lbalhar@redhat.com> - 1.3.1-2
- Adjusted for Python 3.8 module in RHEL 8
* Fri Oct 18 2019 Miro Hrončok <mhroncok@redhat.com> - 1.3.1-1
- Update to 1.3.1 (#1674101)
- Drop Python 2 packages (not supported by SciPy >= 1.3)
- Backported upstream patch for cKDTree (fixes FTBFS)
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.2.1-8
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.2.1-7
- Rebuilt for Python 3.8
* Tue Jul 30 2019 Petr Viktorin <pviktori@redhat.com> - 1.2.1-6
- Remove build dependency on python2-pytest-xdist and python2-pytest-timeout
- Enable parallel tests in Python 3 %%check
- Use macros for Python interpreter in tests
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jun 10 2019 Marcel Plch <mplch@redhat.com> - 1.2.1-4
- Fix FTBFS with Py3.8 (#1606315)
* Thu May 16 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-3
- Build only against openblasp (bugz#1709161)
* Fri Apr 26 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-2
- Do not create *-PYTEST.pyc files
* Tue Apr 23 2019 Orion Poplawski <orion@nwra.com> - 1.2.1-1
- Update to 1.2.1
- Drop scipy2-doc
* Wed Feb 06 2019 Charalampos Stratakis <cstratak@redhat.com> - 1.2.0-1
- Update to 1.2.0
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Sat Jun 23 2018 Miro Hrončok <mhroncok@redhat.com> - 1.1.0-2
- Don't ignore the tests results but rather have a tolerance rate
- Skip test_decomp on ppc64le as it currently segfaults
* Fri Jun 22 2018 Miro Hrončok <mhroncok@redhat.com> - 1.1.0-1
- Update to 1.1.0 (#1560265, #1594355)
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 1.0.0-8
- Rebuilt for Python 3.7
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Fri Feb 02 2018 Petr Viktorin <pviktori@redhat.com> - 1.0.0-6
- Link with -lm to build with new stricter Fedora flags
https://bugzilla.redhat.com/show_bug.cgi?id=1541416
* Wed Jan 31 2018 Christian Dersch <lupinix@mailbox.org> - 1.0.0-5
- rebuilt for GCC 8.x (gfortran soname bump)
* Mon Dec 11 2017 Lumír Balhar <lbalhar@redhat.com> - 1.0.0-4
- Disable tests on s390x
* Mon Nov 20 2017 Lumír Balhar <lbalhar@redhat.com> - 1.0.0-3
- New subpackages with HTML documentation
* Tue Oct 31 2017 Christian Dersch <lupinix@mailbox.org> - 1.0.0-2
- Use openblas where available https://fedoraproject.org/wiki/Changes/OpenBLAS_as_default_BLAS
- Remove ppc64 hackery for OpenBLAS
- Don't run tests in parallel as pytest crashes
- Don't run test_denormals as it tends to stuck
* Thu Oct 26 2017 Thomas Spura <tomspur@fedoraproject.org> - 1.0.0-1
- update to 1.0.0 and use pytest instead of nose
- use timeout during parallel %%check
* Wed Oct 04 2017 Christian Dersch <lupinix@mailbox.org> - 0.19.1-5
- Use openblas where available (except ppc64), to use same as numpy (BZ 1472318)
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Jul 07 2017 Igor Gnatenko <ignatenko@redhat.com> - 0.19.1-2
- Rebuild due to bug in RPM (RHBZ #1468476)
* Tue Jun 27 2017 Christian Dersch <lupinix@mailbox.org> - 0.19.1-1
- new version
* Wed Jun 07 2017 Christian Dersch <lupinix@mailbox.org> - 0.19.0-1
- new version
* Tue Jan 31 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 0.18.0-3
- Rebuild for libgfortran.so.3
* Mon Dec 12 2016 Stratakis Charalampos <cstratak@redhat.com> - 0.18.0-2
- Rebuild for Python 3.6
* Tue Jul 26 2016 Than Ngo <than@redhat.com> - 0.18.0-1
- 0.18.0
- %%check: make non-fatal as temporary workaround for scipy build on arm
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.17.0-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Tue May 31 2016 Nils Philippsen <nils@redhat.com>
- fix source URL
* Mon Feb 15 2016 Orion Poplawski <orion@cora.nwra.com> - 0.17.0-1
- Update to 0.17.0
- Drop ctypes patch applied upstream
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sat Nov 21 2015 Kalev Lember <klember@redhat.com> - 0.16.1-6
- Add provides to satisfy scipy%%{_isa} requires in other packages
* Sun Nov 15 2015 Björn Esser <fedora@besser82.io> - 0.16.1-5
- Revert "Discard results of testsuite on %%{arm} for now"
* Sat Nov 14 2015 Björn Esser <besser82@fedoraproject.org> - 0.16.1-4
- Discard results of testsuite on %%{arm} for now
Segfaults on non-aligned memory test (expected for arm)
* Sat Nov 14 2015 Thomas Spura <tomspur@fedoraproject.org> - 0.16.1-3
- Add patch to fix ctypes test
- Move requires to correct python2 subpackage
- Add FFLAGS also in %%install
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
* Mon Oct 26 2015 Orion Poplawski <orion@cora.nwra.com> - 0.16.1-1
- Update to 0.16.1
* Wed Oct 14 2015 Thomas Spura <tomspur@fedoraproject.org> - 0.16.0-1
- Update to 0.16.0
- Use python_provide macro
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.15.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Tue Mar 31 2015 Orion Poplawski <orion@cora.nwra.com> - 0.15.1-1
- Update to 0.15.1
* Sun Jan 4 2015 Orion Poplawski <orion@cora.nwra.com> - 0.14.1-1
- Update to 0.14.1
* Wed Aug 20 2014 Kevin Fenzi <kevin@scrye.com> - 0.14.0-5
- Rebuild for rpm bug 1131892
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.14.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.14.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat May 10 2014 Orion Poplawski <orion@cora.nwra.com> - 0.14-2
- Rebuild with Python 3.4
* Tue May 6 2014 Orion Poplawski <orion@cora.nwra.com> - 0.14-1
- Update to 0.14
- Do not use system python-six (bug #1046817)
* Thu Feb 20 2014 Thomas Spura <tomspur@fedoraproject.org> - 0.13.3-2
- use python2 macros everywhere (Requested by Han Boetes)
* Tue Feb 4 2014 Thomas Spura <tomspur@fedoraproject.org> - 0.13.3-1
- Update to 0.13.3
* Mon Dec 9 2013 Orion Poplwski <orion@cora.nwra.com> - 0.13.2-1
- Update to 0.13.2
* Fri Dec 06 2013 Nils Philippsen <nils@redhat.com> - 0.13.1-2
- rebuild (suitesparse)
* Sun Nov 17 2013 Orion Poplwski <orion@cora.nwra.com> - 0.13.1-1
- Update to 0.13.1
* Wed Oct 23 2013 Tomas Tomecek <ttomecek@redhat.com> - 0.13.0-2
- Update to 0.13.0 final
* Tue Oct 15 2013 Orion Poplwski <orion@cora.nwra.com> - 0.13.0-0.4.rc1
- Update to 0.13.0rc1
* Tue Oct 01 2013 Tomas Tomecek <ttomecek@redhat.com> - 0.13.0-0.3.b1
- rebuilt with atlas 3.10
* Mon Sep 9 2013 Orion Poplwski <orion@cora.nwra.com> - 0.13.0-0.2.b1
- Unbundle python-six (bug #1005350)
* Thu Aug 29 2013 Orion Poplwski <orion@cora.nwra.com> - 0.13.0-0.1.b1
- Update to 0.13.0b1
- Drop patches applied upstream
- Fixup changelog and summary
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.12.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 30 2013 Tomas Tomecek <ttomecek@redhat.com> - 0.12.0-4
- Fix rpmlint warnings
- License update
- Add patch to use build_dir argument in build_extension
* Wed May 15 2013 Orion Poplawski <orion@cora.nwra.com> - 0.12.0-3
- Remove old ufsparse references, use suitesparse
- Spec cleanup
* Mon Apr 15 2013 Orion Poplawski <orion@cora.nwra.com> - 0.12.0-2
- Add patch to fix segfaul in test of sgeqrf
* Wed Apr 10 2013 Orion Poplawski <orion@cora.nwra.com> - 0.12.0-1
- Update to 0.12.0 final
- No longer remove weave from python3 build
* Sat Feb 16 2013 Orion Poplawski <orion@cora.nwra.com> - 0.12.0-0.1.b1
- Update to 0.12.0b1
- Drop upstreamed linalg patch
* Wed Feb 13 2013 Orion Poplawski <orion@cora.nwra.com> - 0.11.0-4
- Add patch from upstream to fix python3.3 issues in linalg routines
* Tue Feb 12 2013 Orion Poplawski <orion@cora.nwra.com> - 0.11.0-3
- Disable python3 tests for now
* Mon Oct 8 2012 Orion Poplawski <orion@cora.nwra.com> - 0.11.0-2
- Add requires python3-numpy, python3-f2py for python3-scipy (bug 863755)
* Sun Sep 30 2012 Orion Poplawski <orion@cora.nwra.com> - 0.11.0-1
- Update to 0.11.0 final
* Thu Aug 23 2012 Orion Poplawski <orion@cora.nwra.com> - 0.11.0-0.1.rc2
- Update to 0.11.0rc2
* Mon Aug 6 2012 Orion Poplawski <orion@cora.nwra.com> - 0.10.1-4
- Rebuild for python 3.3
* Fri Aug 3 2012 David Malcolm <dmalcolm@redhat.com> - 0.10.1-3
- remove rhel logic from with_python3 conditional
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.10.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Mar 16 2012 Orion Poplawski <orion@cora.nwra.com> - 0.10.1-1
- Update to 0.10.1
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.10.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Mon Nov 14 2011 Orion Poplawski <orion@cora.nwra.com> - 0.10.0-1
- Update to 0.10.0
* Sat Sep 3 2011 Thomas Spura <tomspur@fedoraproject.org> - 0.9.0-2
- little cosmetic changes
- filter provides in python_sitearch
* Fri Sep 02 2011 Andrew McNabb <amcnabb@mcnabbs.org>
- add python3 subpackage
* Fri Apr 1 2011 Orion Poplawski <orion@cora.nwra.com> - 0.9.0-1
- Update to 0.9.0
- Drop all stsci sources and patches, dropped from upstream
- Drop gcc and py27 patches fixed upstream
- Add %%check section to run tests
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sat Jul 31 2010 Toshio Kuratomi <toshio@fedoraproject.org> - 0.7.2-3
- Fix scipy build on python-2.7
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 0.7.2-2
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
* Thu Jul 1 2010 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.2-1
- New upstream release
* Sun Apr 11 2010 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.1-3
- Bump for rebuild against numpy 1.3
* Thu Apr 1 2010 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.1-2
- Bump for rebuild against numpy 1.4.0
* Thu Dec 10 2009 Jon Ciesla <limb@jcomserv.net> - 0.7.1-1
- Update to 0.7.1.
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Sun Jun 14 2009 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.0-4
- Fix for gcc34 weave blitz bug #505379
* Tue Apr 7 2009 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.0-3
- Add f2py requires to prepared for numpy packaging split
* Sun Mar 1 2009 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.0-2
- Patch for stsci image function syntax fix.
* Thu Feb 26 2009 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.0-1
- Update to final 0.7 release
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.0-0.3.b1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Mon Dec 15 2008 Deji Akingunola <dakingun@gmail.com> - 0.7.0-0.2.b1
- Rebuild for atlas-3.8.2
* Mon Dec 01 2008 Jef Spaleta <jspaleta@fedoraproject.org> - 0.7.0-0.1.b1
- Update to latest beta which lists python 2.6 support
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 0.6.0-8
- Rebuild for Python 2.6
* Fri Oct 03 2008 Jef Spaleta <jspaleta@fedoraproject.org> - 0.6.0-7
- fix the stsci fix
* Thu Oct 02 2008 Jef Spaleta <jspaleta@fedoraproject.org> - 0.6.0-6
- include missing setup files for stsci module
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 0.6.0-5
- Autorebuild for GCC 4.3
* Fri Jan 04 2008 Jef Spaleta <jspaleta@fedoraproject.org> - 0.6.0-4
- fix for egg-info file creation
* Wed Oct 03 2007 Jef Spaleta <jspaleta@gmail.com> - 0.6.0-3
- include_dirs changes for ufsparse change in development
* Tue Oct 02 2007 Jef Spaleta <jspaleta@gmail.com> - 0.6.0-2
- Fix licensing to match Fedora packaging guidance
- Remove unnecessary library deps
* Tue Sep 25 2007 Jarrod Millman <millman@berkeley.edu> - 0.6.0-1
- update to new upstream source
- update Summary, License, Url, and description
- added extra dependencies
- remove symlink since Lib has been renamed scipy
* Tue Aug 21 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2.1-1
- Update to new upstream source
* Tue Aug 21 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-3
- fix licensing tag and bump for buildid rebuild
* Wed Apr 18 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-2.2
- go back to using gfortran now that numpy is patched
* Sat Apr 14 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-2.1
- minor correction for f77 usage
* Sat Apr 14 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-2
- revert to f77 due to issue with numpy in development
* Sat Apr 14 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-1.1
- remove arch specific optimizations
* Wed Feb 21 2007 Jef Spaleta <jspaleta@gmail.com> - 0.5.2-1
- Update for new upstream release
* Mon Dec 11 2006 Jef Spaleta <jspaleta@gmail.com> - 0.5.1-5
- Bump for rebuild against python 2.5 in devel tree
* Sun Dec 3 2006 Jef Spaleta <jspaleta@gmail.com> - 0.5.1-4
- Minor adjustments to specfile for packaging guidelines.
- Changed buildrequires fftw version 3 from fftw2
* Sat Dec 2 2006 Jef Spaleta <jspaleta@gmail.com> - 0.5.1-2
- Updated spec for FE Packaging Guidelines and for upstream version 0.5.1
* Mon May 8 2006 Neal Becker <ndbecker2@gmail.com> - 0.4.8-4
- Add BuildRequires gcc-c++
- Add python-devel
- Add libstdc++
* Mon May 8 2006 Neal Becker <ndbecker2@gmail.com> - 0.4.8-3
- Add BuildRequires gcc-gfortran
* Sun May 7 2006 Neal Becker <ndbecker2@gmail.com> - 0.4.8-3
- Add BuildRequires numpy
* Wed May 3 2006 Neal Becker <ndbecker2@gmail.com> - 0.4.8-2
- Fix BuildRoot
- Add BuildRequires, Requires
- Test remove d1mach patch
- Fix defattr
- Add changelog
- Removed Prefix, Vendor
- Fix Source0