import sources
This commit is contained in:
commit
af8f306d48
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/scipy-1.3.1.tar.gz
|
28
acceptable_failure_rate.patch
Normal file
28
acceptable_failure_rate.patch
Normal 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
|
140
ckdtree_bugfix.patch
Normal file
140
ckdtree_bugfix.patch
Normal 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')],
|
589
numpy-deprecation-warnings.patch
Normal file
589
numpy-deprecation-warnings.patch
Normal 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
scipy.spec
Normal file
607
scipy.spec
Normal 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
|
Loading…
Reference in New Issue
Block a user