tuibuilder_pel7x64builder0
5 years ago
5 changed files with 1149 additions and 0 deletions
@ -0,0 +1,156 @@
@@ -0,0 +1,156 @@
|
||||
diff --git a/numpy/core/tests/test_memmap.py b/numpy/core/tests/test_memmap.py |
||||
index ea9d061..a1fba95 100644 |
||||
--- a/numpy/core/tests/test_memmap.py |
||||
+++ b/numpy/core/tests/test_memmap.py |
||||
@@ -1,5 +1,5 @@ |
||||
import sys |
||||
-from tempfile import NamedTemporaryFile, mktemp |
||||
+from tempfile import NamedTemporaryFile |
||||
import os |
||||
|
||||
from numpy import memmap |
||||
@@ -31,12 +31,11 @@ class TestMemmap(TestCase): |
||||
assert_array_equal(self.data, newfp) |
||||
|
||||
def test_open_with_filename(self): |
||||
- tmpname = mktemp('','mmap') |
||||
- fp = memmap(tmpname, dtype=self.dtype, mode='w+', |
||||
- shape=self.shape) |
||||
- fp[:] = self.data[:] |
||||
- del fp |
||||
- os.unlink(tmpname) |
||||
+ with NamedTemporaryFile() as tmp: |
||||
+ fp = memmap(tmp.name, dtype=self.dtype, mode='w+', |
||||
+ shape=self.shape) |
||||
+ fp[:] = self.data[:] |
||||
+ del fp |
||||
|
||||
def test_attributes(self): |
||||
offset = 1 |
||||
@@ -48,17 +47,16 @@ class TestMemmap(TestCase): |
||||
del fp |
||||
|
||||
def test_filename(self): |
||||
- tmpname = mktemp('','mmap') |
||||
- fp = memmap(tmpname, dtype=self.dtype, mode='w+', |
||||
- shape=self.shape) |
||||
- abspath = os.path.abspath(tmpname) |
||||
- fp[:] = self.data[:] |
||||
- self.assertEqual(abspath, fp.filename) |
||||
- b = fp[:1] |
||||
- self.assertEqual(abspath, b.filename) |
||||
- del b |
||||
- del fp |
||||
- os.unlink(tmpname) |
||||
+ with NamedTemporaryFile() as tmp: |
||||
+ fp = memmap(tmp.name, dtype=self.dtype, mode='w+', |
||||
+ shape=self.shape) |
||||
+ abspath = os.path.abspath(tmp.name) |
||||
+ fp[:] = self.data[:] |
||||
+ self.assertEqual(abspath, fp.filename) |
||||
+ b = fp[:1] |
||||
+ self.assertEqual(abspath, b.filename) |
||||
+ del b |
||||
+ del fp |
||||
|
||||
def test_filename_fileobj(self): |
||||
fp = memmap(self.tmpfp, dtype=self.dtype, mode="w+", |
||||
diff --git a/numpy/core/tests/test_multiarray.py b/numpy/core/tests/test_multiarray.py |
||||
index db220ec..e845c07 100644 |
||||
--- a/numpy/core/tests/test_multiarray.py |
||||
+++ b/numpy/core/tests/test_multiarray.py |
||||
@@ -1587,12 +1587,11 @@ class TestIO(object): |
||||
self.x = rand(shape) + rand(shape).astype(np.complex)*1j |
||||
self.x[0,:,1] = [nan, inf, -inf, nan] |
||||
self.dtype = self.x.dtype |
||||
- self.filename = tempfile.mktemp() |
||||
+ self.file = tempfile.NamedTemporaryFile() |
||||
+ self.filename = self.file.name |
||||
|
||||
def tearDown(self): |
||||
- if os.path.isfile(self.filename): |
||||
- os.unlink(self.filename) |
||||
- #tmp_file.close() |
||||
+ self.file.close() |
||||
|
||||
def test_bool_fromstring(self): |
||||
v = np.array([True,False,True,False], dtype=np.bool_) |
||||
@@ -1620,7 +1619,6 @@ class TestIO(object): |
||||
y = np.fromfile(f, dtype=self.dtype) |
||||
f.close() |
||||
assert_array_equal(y, self.x.flat) |
||||
- os.unlink(self.filename) |
||||
|
||||
def test_roundtrip_filename(self): |
||||
self.x.tofile(self.filename) |
||||
@@ -1753,7 +1751,6 @@ class TestIO(object): |
||||
s = f.read() |
||||
f.close() |
||||
assert_equal(s, '1.51,2.0,3.51,4.0') |
||||
- os.unlink(self.filename) |
||||
|
||||
def test_tofile_format(self): |
||||
x = np.array([1.51, 2, 3.51, 4], dtype=float) |
||||
diff --git a/numpy/f2py/__init__.py b/numpy/f2py/__init__.py |
||||
index 220cb3d..d580332 100644 |
||||
--- a/numpy/f2py/__init__.py |
||||
+++ b/numpy/f2py/__init__.py |
||||
@@ -27,20 +27,20 @@ def compile(source, |
||||
from numpy.distutils.exec_command import exec_command |
||||
import tempfile |
||||
if source_fn is None: |
||||
- fname = os.path.join(tempfile.mktemp()+'.f') |
||||
+ f = tempfile.NamedTemporaryFile(suffix='.f') |
||||
else: |
||||
- fname = source_fn |
||||
- |
||||
- f = open(fname,'w') |
||||
- f.write(source) |
||||
- f.close() |
||||
- |
||||
- args = ' -c -m %s %s %s'%(modulename,fname,extra_args) |
||||
- c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' %(sys.executable,args) |
||||
- s,o = exec_command(c) |
||||
- if source_fn is None: |
||||
- try: os.remove(fname) |
||||
- except OSError: pass |
||||
+ f = open(source_fn, 'w') |
||||
+ |
||||
+ try: |
||||
+ f.write(source) |
||||
+ f.flush() |
||||
+ |
||||
+ args = ' -c -m %s %s %s'%(modulename, f.name, extra_args) |
||||
+ c = '%s -c "import numpy.f2py as f2py2e;f2py2e.main()" %s' % \ |
||||
+ (sys.executable, args) |
||||
+ s, o = exec_command(c) |
||||
+ finally: |
||||
+ f.close() |
||||
return s |
||||
|
||||
from numpy.testing import Tester |
||||
diff --git a/numpy/f2py/f2py2e.py b/numpy/f2py/f2py2e.py |
||||
index 4e6d258..b9b955a 100755 |
||||
--- a/numpy/f2py/f2py2e.py |
||||
+++ b/numpy/f2py/f2py2e.py |
||||
@@ -91,7 +91,7 @@ Options: |
||||
--lower is assumed with -h key, and --no-lower without -h key. |
||||
|
||||
--build-dir <dirname> All f2py generated files are created in <dirname>. |
||||
- Default is tempfile.mktemp(). |
||||
+ Default is tempfile.mkstemp(). |
||||
|
||||
--overwrite-signature Overwrite existing signature file. |
||||
|
||||
@@ -428,7 +428,7 @@ def run_compile(): |
||||
del sys.argv[i] |
||||
else: |
||||
remove_build_dir = 1 |
||||
- build_dir = os.path.join(tempfile.mktemp()) |
||||
+ build_dir = tempfile.mkdtemp() |
||||
|
||||
sysinfo_flags = filter(re.compile(r'[-][-]link[-]').match,sys.argv[1:]) |
||||
sys.argv = filter(lambda a,flags=sysinfo_flags:a not in flags,sys.argv) |
||||
-- |
||||
1.8.5.3 |
||||
|
@ -0,0 +1,278 @@
@@ -0,0 +1,278 @@
|
||||
From 34d4897596edd2c517ab57c68d55a55fde1bbcd8 Mon Sep 17 00:00:00 2001 |
||||
From: =?UTF-8?q?Nikola=20Forr=C3=B3?= <nforro@redhat.com> |
||||
Date: Wed, 4 Jan 2017 16:59:54 +0100 |
||||
Subject: [PATCH] Override LAPACK XERBLA |
||||
|
||||
Backported upstream commits: |
||||
374e0b4d2c6f44fdccccfefe0546b607e5291e64 |
||||
f0b2dd7d5151878f2b4b3ea20ff551b27243f27d |
||||
--- |
||||
numpy/core/blasdot/python_xerbla.c | 51 +++++++++++++++++++++++++++++++++++ |
||||
numpy/core/setup.py | 3 ++- |
||||
numpy/linalg/lapack_litemodule.c | 54 ++++++++++++++++++++++++++++++++++++++ |
||||
3 files changed, 107 insertions(+), 1 deletion(-) |
||||
create mode 100644 numpy/core/blasdot/python_xerbla.c |
||||
|
||||
diff --git a/numpy/core/blasdot/python_xerbla.c b/numpy/core/blasdot/python_xerbla.c |
||||
new file mode 100644 |
||||
index 0000000..bdf0b90 |
||||
--- /dev/null |
||||
+++ b/numpy/core/blasdot/python_xerbla.c |
||||
@@ -0,0 +1,51 @@ |
||||
+#include "Python.h" |
||||
+ |
||||
+/* |
||||
+ * From f2c.h, this should be safe unless fortran is set to use 64 |
||||
+ * bit integers. We don't seem to have any good way to detect that. |
||||
+ */ |
||||
+typedef int integer; |
||||
+ |
||||
+/* |
||||
+ From the original manpage: |
||||
+ -------------------------- |
||||
+ XERBLA is an error handler for the LAPACK routines. |
||||
+ It is called by an LAPACK routine if an input parameter has an invalid value. |
||||
+ A message is printed and execution stops. |
||||
+ |
||||
+ Instead of printing a message and stopping the execution, a |
||||
+ ValueError is raised with the message. |
||||
+ |
||||
+ Parameters: |
||||
+ ----------- |
||||
+ srname: Subroutine name to use in error message, maximum six characters. |
||||
+ Spaces at the end are skipped. |
||||
+ info: Number of the invalid parameter. |
||||
+*/ |
||||
+ |
||||
+int xerbla_(char *srname, integer *info) |
||||
+{ |
||||
+ static const char format[] = "On entry to %.*s" \ |
||||
+ " parameter number %d had an illegal value"; |
||||
+ char buf[sizeof(format) + 6 + 4]; /* 6 for name, 4 for param. num. */ |
||||
+ |
||||
+ int len = 0; /* length of subroutine name*/ |
||||
+#ifdef WITH_THREAD |
||||
+ PyGILState_STATE save; |
||||
+#endif |
||||
+ |
||||
+ while( len<6 && srname[len]!='\0' ) |
||||
+ len++; |
||||
+ while( len && srname[len-1]==' ' ) |
||||
+ len--; |
||||
+#ifdef WITH_THREAD |
||||
+ save = PyGILState_Ensure(); |
||||
+#endif |
||||
+ PyOS_snprintf(buf, sizeof(buf), format, len, srname, *info); |
||||
+ PyErr_SetString(PyExc_ValueError, buf); |
||||
+#ifdef WITH_THREAD |
||||
+ PyGILState_Release(save); |
||||
+#endif |
||||
+ |
||||
+ return 0; |
||||
+} |
||||
diff --git a/numpy/core/setup.py b/numpy/core/setup.py |
||||
index a1000ae..495e163 100644 |
||||
--- a/numpy/core/setup.py |
||||
+++ b/numpy/core/setup.py |
||||
@@ -899,12 +899,13 @@ def configuration(parent_package='',top_path=None): |
||||
if blas_info: |
||||
if ('NO_ATLAS_INFO',1) in blas_info.get('define_macros',[]): |
||||
return None # dotblas needs ATLAS, Fortran compiled blas will not be sufficient. |
||||
- return ext.depends[:1] |
||||
+ return ext.depends[:2] |
||||
return None # no extension module will be built |
||||
|
||||
config.add_extension('_dotblas', |
||||
sources = [get_dotblas_sources], |
||||
depends = [join('blasdot','_dotblas.c'), |
||||
+ join('blasdot', 'python_xerbla.c'), |
||||
join('blasdot','cblas.h'), |
||||
], |
||||
include_dirs = ['blasdot'], |
||||
diff --git a/numpy/linalg/lapack_litemodule.c b/numpy/linalg/lapack_litemodule.c |
||||
index cc62382..4f8cab9 100644 |
||||
--- a/numpy/linalg/lapack_litemodule.c |
||||
+++ b/numpy/linalg/lapack_litemodule.c |
||||
@@ -171,6 +171,9 @@ lapack_lite_dgeev(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
FNAME(dgeev)(&jobvl,&jobvr,&n,DDATA(a),&lda,DDATA(wr),DDATA(wi), |
||||
DDATA(vl),&ldvl,DDATA(vr),&ldvr,DDATA(work),&lwork, |
||||
&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:c,s:c,s:i,s:i,s:i,s:i,s:i,s:i}","dgeev_", |
||||
lapack_lite_status__,"jobvl",jobvl,"jobvr",jobvr, |
||||
@@ -254,6 +257,9 @@ lapack_lite_dsyevd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
lapack_lite_status__ = \ |
||||
FNAME(dsyevd)(&jobz,&uplo,&n,DDATA(a),&lda,DDATA(w),DDATA(work), |
||||
&lwork,IDATA(iwork),&liwork,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:c,s:c,s:i,s:i,s:i,s:i,s:i}","dsyevd_", |
||||
lapack_lite_status__,"jobz",jobz,"uplo",uplo, |
||||
@@ -341,6 +347,9 @@ lapack_lite_zheevd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
lapack_lite_status__ = \ |
||||
FNAME(zheevd)(&jobz,&uplo,&n,ZDATA(a),&lda,DDATA(w),ZDATA(work), |
||||
&lwork,DDATA(rwork),&lrwork,IDATA(iwork),&liwork,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:c,s:c,s:i,s:i,s:i,s:i,s:i,s:i}","zheevd_", |
||||
lapack_lite_status__,"jobz",jobz,"uplo",uplo,"n",n, |
||||
@@ -380,6 +389,9 @@ lapack_lite_dgelsd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
FNAME(dgelsd)(&m,&n,&nrhs,DDATA(a),&lda,DDATA(b),&ldb, |
||||
DDATA(s),&rcond,&rank,DDATA(work),&lwork, |
||||
IDATA(iwork),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i,s:d,s:i,s:i,s:i}","dgelsd_", |
||||
lapack_lite_status__,"m",m,"n",n,"nrhs",nrhs, |
||||
@@ -407,6 +419,9 @@ lapack_lite_dgesv(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(dgesv)(&n,&nrhs,DDATA(a),&lda,IDATA(ipiv),DDATA(b),&ldb,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i}","dgesv_", |
||||
lapack_lite_status__,"n",n,"nrhs",nrhs,"lda",lda, |
||||
@@ -446,6 +461,9 @@ lapack_lite_dgesdd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
FNAME(dgesdd)(&jobz,&m,&n,DDATA(a),&lda,DDATA(s),DDATA(u),&ldu, |
||||
DDATA(vt),&ldvt,DDATA(work),&lwork,IDATA(iwork), |
||||
&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
if (info == 0 && lwork == -1) { |
||||
/* We need to check the result because |
||||
@@ -496,6 +514,9 @@ lapack_lite_dgetrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(dgetrf)(&m,&n,DDATA(a),&lda,IDATA(ipiv),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i}","dgetrf_",lapack_lite_status__, |
||||
"m",m,"n",n,"lda",lda,"info",info); |
||||
@@ -516,6 +537,9 @@ lapack_lite_dpotrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(dpotrf)(&uplo,&n,DDATA(a),&lda,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i}","dpotrf_",lapack_lite_status__, |
||||
"n",n,"lda",lda,"info",info); |
||||
@@ -540,6 +564,9 @@ lapack_lite_dgeqrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
lapack_lite_status__ = \ |
||||
FNAME(dgeqrf)(&m, &n, DDATA(a), &lda, DDATA(tau), |
||||
DDATA(work), &lwork, &info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i}","dgeqrf_", |
||||
lapack_lite_status__,"m",m,"n",n,"lda",lda, |
||||
@@ -562,6 +589,9 @@ lapack_lite_dorgqr(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
TRY(check_object(work,NPY_DOUBLE,"work","NPY_DOUBLE","dorgqr")); |
||||
lapack_lite_status__ = \ |
||||
FNAME(dorgqr)(&m, &n, &k, DDATA(a), &lda, DDATA(tau), DDATA(work), &lwork, &info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i}","dorgqr_",lapack_lite_status__, |
||||
"info",info); |
||||
@@ -601,6 +631,9 @@ lapack_lite_zgeev(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
FNAME(zgeev)(&jobvl,&jobvr,&n,ZDATA(a),&lda,ZDATA(w),ZDATA(vl), |
||||
&ldvl,ZDATA(vr),&ldvr,ZDATA(work),&lwork, |
||||
DDATA(rwork),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:c,s:c,s:i,s:i,s:i,s:i,s:i,s:i}","zgeev_", |
||||
lapack_lite_status__,"jobvl",jobvl,"jobvr",jobvr, |
||||
@@ -641,6 +674,9 @@ lapack_lite_zgelsd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
lapack_lite_status__ = \ |
||||
FNAME(zgelsd)(&m,&n,&nrhs,ZDATA(a),&lda,ZDATA(b),&ldb,DDATA(s),&rcond, |
||||
&rank,ZDATA(work),&lwork,DDATA(rwork),IDATA(iwork),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i}","zgelsd_", |
||||
lapack_lite_status__,"m",m,"n",n,"nrhs",nrhs,"lda",lda, |
||||
@@ -667,6 +703,9 @@ lapack_lite_zgesv(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(zgesv)(&n,&nrhs,ZDATA(a),&lda,IDATA(ipiv),ZDATA(b),&ldb,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i}","zgesv_", |
||||
lapack_lite_status__,"n",n,"nrhs",nrhs,"lda",lda, |
||||
@@ -708,6 +747,9 @@ lapack_lite_zgesdd(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
FNAME(zgesdd)(&jobz,&m,&n,ZDATA(a),&lda,DDATA(s),ZDATA(u),&ldu, |
||||
ZDATA(vt),&ldvt,ZDATA(work),&lwork,DDATA(rwork), |
||||
IDATA(iwork),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:c,s:i,s:i,s:i,s:i,s:i,s:i,s:i}","zgesdd_", |
||||
lapack_lite_status__,"jobz",jobz,"m",m,"n",n, |
||||
@@ -732,6 +774,9 @@ lapack_lite_zgetrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(zgetrf)(&m,&n,ZDATA(a),&lda,IDATA(ipiv),&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i}","zgetrf_", |
||||
lapack_lite_status__,"m",m,"n",n,"lda",lda,"info",info); |
||||
@@ -751,6 +796,9 @@ lapack_lite_zpotrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
TRY(check_object(a,NPY_CDOUBLE,"a","NPY_CDOUBLE","zpotrf")); |
||||
lapack_lite_status__ = \ |
||||
FNAME(zpotrf)(&uplo,&n,ZDATA(a),&lda,&info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i}","zpotrf_", |
||||
lapack_lite_status__,"n",n,"lda",lda,"info",info); |
||||
@@ -774,6 +822,9 @@ lapack_lite_zgeqrf(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
|
||||
lapack_lite_status__ = \ |
||||
FNAME(zgeqrf)(&m, &n, ZDATA(a), &lda, ZDATA(tau), ZDATA(work), &lwork, &info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i,s:i,s:i,s:i,s:i}","zgeqrf_",lapack_lite_status__,"m",m,"n",n,"lda",lda,"lwork",lwork,"info",info); |
||||
} |
||||
@@ -797,6 +848,9 @@ lapack_lite_zungqr(PyObject *NPY_UNUSED(self), PyObject *args) |
||||
lapack_lite_status__ = \ |
||||
FNAME(zungqr)(&m, &n, &k, ZDATA(a), &lda, ZDATA(tau), ZDATA(work), |
||||
&lwork, &info); |
||||
+ if (PyErr_Occurred()) { |
||||
+ return NULL; |
||||
+ } |
||||
|
||||
return Py_BuildValue("{s:i,s:i}","zungqr_",lapack_lite_status__, |
||||
"info",info); |
||||
-- |
||||
2.7.4 |
||||
|
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
From 64f64b517153a6b3de48c5b911920239b3eb1e18 Mon Sep 17 00:00:00 2001 |
||||
From: "Bradley M. Froehle" <brad.froehle@gmail.com> |
||||
Date: Sun, 24 Feb 2013 21:31:28 -0800 |
||||
Subject: [PATCH] BUG: Choose a more unique PY_ARRAY_UNIQUE_SYMBOL in f2py. |
||||
|
||||
In a few exceptional cases where symbols are shared between different |
||||
Python modules the use of `PyArray_API` in f2py (fortranobject.h) |
||||
conflicts with the regular use of the same symbol in the multiarray |
||||
module. Generally the symptom of this conflicting use is a segfault |
||||
when importing a f2py'ed module. This occurs because the module init |
||||
code somehow overwrites the first element of `PyArray_API` with the |
||||
location of `PyArray_API`, causing a crash when |
||||
`PyArray_GetNDArrayCVersion` is called. |
||||
|
||||
Closes gh-2521. |
||||
--- |
||||
numpy/f2py/src/fortranobject.h | 2 +- |
||||
1 file changed, 1 insertion(+), 1 deletion(-) |
||||
|
||||
diff --git a/numpy/f2py/src/fortranobject.h b/numpy/f2py/src/fortranobject.h |
||||
index 283021a..07e810f 100644 |
||||
--- a/numpy/f2py/src/fortranobject.h |
||||
+++ b/numpy/f2py/src/fortranobject.h |
||||
@@ -9,7 +9,7 @@ extern "C" { |
||||
#ifdef FORTRANOBJECT_C |
||||
#define NO_IMPORT_ARRAY |
||||
#endif |
||||
-#define PY_ARRAY_UNIQUE_SYMBOL PyArray_API |
||||
+#define PY_ARRAY_UNIQUE_SYMBOL _npy_f2py_ARRAY_API |
||||
#include "numpy/arrayobject.h" |
||||
|
||||
/* |
||||
-- |
||||
2.7.4 |
||||
|
@ -0,0 +1,134 @@
@@ -0,0 +1,134 @@
|
||||
--- |
||||
numpy/core/include/numpy/npy_cpu.h | 3 +++ |
||||
numpy/core/include/numpy/npy_endian.h | 3 ++- |
||||
numpy/core/setup.py | 2 +- |
||||
numpy/core/setup_common.py | 4 ++++ |
||||
numpy/core/src/npymath/ieee754.c.src | 3 ++- |
||||
numpy/core/src/npymath/npy_math_private.h | 3 ++- |
||||
numpy/core/src/private/npy_fpmath.h | 5 ++++- |
||||
7 files changed, 18 insertions(+), 5 deletions(-) |
||||
|
||||
diff --git a/numpy/core/include/numpy/npy_cpu.h b/numpy/core/include/numpy/npy_cpu.h |
||||
index 9707a7a..321cc04 100644 |
||||
--- a/numpy/core/include/numpy/npy_cpu.h |
||||
+++ b/numpy/core/include/numpy/npy_cpu.h |
||||
@@ -5,6 +5,7 @@ |
||||
* NPY_CPU_AMD64 |
||||
* NPY_CPU_PPC |
||||
* NPY_CPU_PPC64 |
||||
+ * NPY_CPU_PPC64LE |
||||
* NPY_CPU_SPARC |
||||
* NPY_CPU_S390 |
||||
* NPY_CPU_IA64 |
||||
@@ -41,6 +42,8 @@ |
||||
* _ARCH_PPC is used by at least gcc on AIX |
||||
*/ |
||||
#define NPY_CPU_PPC |
||||
+#elif defined(__ppc64le__) |
||||
+ #define NPY_CPU_PPC64LE |
||||
#elif defined(__ppc64__) |
||||
#define NPY_CPU_PPC64 |
||||
#elif defined(__sparc__) || defined(__sparc) |
||||
diff --git a/numpy/core/include/numpy/npy_endian.h b/numpy/core/include/numpy/npy_endian.h |
||||
index 4e3349f..d8af8b3 100644 |
||||
--- a/numpy/core/include/numpy/npy_endian.h |
||||
+++ b/numpy/core/include/numpy/npy_endian.h |
||||
@@ -27,7 +27,8 @@ |
||||
|| defined(NPY_CPU_ARMEL) \ |
||||
|| defined(NPY_CPU_AARCH64) \ |
||||
|| defined(NPY_CPU_SH_LE) \ |
||||
- || defined(NPY_CPU_MIPSEL) |
||||
+ || defined(NPY_CPU_MIPSEL) \ |
||||
+ || defined(NPY_CPU_PPC64LE) |
||||
#define NPY_BYTE_ORDER NPY_LITTLE_ENDIAN |
||||
#elif defined(NPY_CPU_PPC) \ |
||||
|| defined(NPY_CPU_SPARC) \ |
||||
diff --git a/numpy/core/setup.py b/numpy/core/setup.py |
||||
index a1000ae..36cec26 100644 |
||||
--- a/numpy/core/setup.py |
||||
+++ b/numpy/core/setup.py |
||||
@@ -444,7 +444,7 @@ def configuration(parent_package='',top_path=None): |
||||
'INTEL_EXTENDED_16_BYTES_LE', |
||||
'IEEE_QUAD_LE', 'IEEE_QUAD_BE', |
||||
'IEEE_DOUBLE_LE', 'IEEE_DOUBLE_BE', |
||||
- 'DOUBLE_DOUBLE_BE']: |
||||
+ 'DOUBLE_DOUBLE_BE', 'DOUBLE_DOUBLE_LE']: |
||||
moredefs.append(('HAVE_LDOUBLE_%s' % rep, 1)) |
||||
else: |
||||
raise ValueError("Unrecognized long double format: %s" % rep) |
||||
diff --git a/numpy/core/setup_common.py b/numpy/core/setup_common.py |
||||
index 58876a8..3289afe 100644 |
||||
--- a/numpy/core/setup_common.py |
||||
+++ b/numpy/core/setup_common.py |
||||
@@ -221,6 +221,8 @@ _IEEE_QUAD_PREC_BE = ['300', '031', '326', '363', '105', '100', '000', '000', |
||||
_IEEE_QUAD_PREC_LE = _IEEE_QUAD_PREC_BE[::-1] |
||||
_DOUBLE_DOUBLE_BE = ['301', '235', '157', '064', '124', '000', '000', '000'] + \ |
||||
['000'] * 8 |
||||
+_DOUBLE_DOUBLE_LE = ['000', '000', '000', '124', '064', '157', '235', '301'] + \ |
||||
+ ['000'] * 8 |
||||
|
||||
def long_double_representation(lines): |
||||
"""Given a binary dump as given by GNU od -b, look for long double |
||||
@@ -258,6 +260,8 @@ def long_double_representation(lines): |
||||
return 'IEEE_QUAD_LE' |
||||
elif read[8:-8] == _DOUBLE_DOUBLE_BE: |
||||
return 'DOUBLE_DOUBLE_BE' |
||||
+ elif read[8:-8] == _DOUBLE_DOUBLE_LE: |
||||
+ return 'DOUBLE_DOUBLE_LE' |
||||
elif read[:16] == _BEFORE_SEQ: |
||||
if read[16:-8] == _IEEE_DOUBLE_LE: |
||||
return 'IEEE_DOUBLE_LE' |
||||
diff --git a/numpy/core/src/npymath/ieee754.c.src b/numpy/core/src/npymath/ieee754.c.src |
||||
index 90bbf5f..bccb3c8 100644 |
||||
--- a/numpy/core/src/npymath/ieee754.c.src |
||||
+++ b/numpy/core/src/npymath/ieee754.c.src |
||||
@@ -133,7 +133,8 @@ float _nextf(float x, int p) |
||||
return x; |
||||
} |
||||
|
||||
-#ifdef HAVE_LDOUBLE_DOUBLE_DOUBLE_BE |
||||
+#if defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) || \ |
||||
+ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE) |
||||
|
||||
/* |
||||
* FIXME: this is ugly and untested. The asm part only works with gcc, and we |
||||
diff --git a/numpy/core/src/npymath/npy_math_private.h b/numpy/core/src/npymath/npy_math_private.h |
||||
index 722d03f..b0ede48 100644 |
||||
--- a/numpy/core/src/npymath/npy_math_private.h |
||||
+++ b/numpy/core/src/npymath/npy_math_private.h |
||||
@@ -398,7 +398,8 @@ do { \ |
||||
typedef npy_uint32 ldouble_sign_t; |
||||
#endif |
||||
|
||||
-#ifndef HAVE_LDOUBLE_DOUBLE_DOUBLE_BE |
||||
+#if !defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) && \ |
||||
+ !defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE) |
||||
/* Get the sign bit of x. x should be of type IEEEl2bitsrep */ |
||||
#define GET_LDOUBLE_SIGN(x) \ |
||||
(((x).a[LDBL_SIGN_INDEX] & LDBL_SIGN_MASK) >> LDBL_SIGN_SHIFT) |
||||
diff --git a/numpy/core/src/private/npy_fpmath.h b/numpy/core/src/private/npy_fpmath.h |
||||
index 92338e4..f709d39 100644 |
||||
--- a/numpy/core/src/private/npy_fpmath.h |
||||
+++ b/numpy/core/src/private/npy_fpmath.h |
||||
@@ -29,6 +29,8 @@ |
||||
#define HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE |
||||
#elif defined(NPY_CPU_PPC) || defined(NPY_CPU_PPC64) |
||||
#define HAVE_LDOUBLE_IEEE_DOUBLE_16_BYTES_BE |
||||
+ #elif defined(NPY_CPU_PPC64LE) |
||||
+ #define HAVE_LDOUBLE_IEEE_DOUBLE_16_BYTES_LE |
||||
#endif |
||||
#endif |
||||
#endif |
||||
@@ -40,7 +42,8 @@ |
||||
defined(HAVE_LDOUBLE_IEEE_DOUBLE_16_BYTES_BE) || \ |
||||
defined(HAVE_LDOUBLE_INTEL_EXTENDED_16_BYTES_LE) || \ |
||||
defined(HAVE_LDOUBLE_INTEL_EXTENDED_12_BYTES_LE) || \ |
||||
- defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE)) |
||||
+ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_BE) || \ |
||||
+ defined(HAVE_LDOUBLE_DOUBLE_DOUBLE_LE)) |
||||
#error No long double representation defined |
||||
#endif |
||||
|
||||
-- |
||||
1.9.3 |
||||
|
@ -0,0 +1,546 @@
@@ -0,0 +1,546 @@
|
||||
%global with_python3 1 |
||||
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} |
||||
|
||||
#uncomment next line for a release candidate or a beta |
||||
#global relc rc1 |
||||
|
||||
Name: numpy |
||||
Version: 1.7.1 |
||||
Release: 13%{?dist} |
||||
Epoch: 1 |
||||
Summary: A fast multidimensional array facility for Python |
||||
|
||||
Group: Development/Languages |
||||
# Everything is BSD except for class SafeEval in numpy/lib/utils.py which is Python |
||||
License: BSD and Python |
||||
URL: http://www.numpy.org/ |
||||
Source0: http://downloads.sourceforge.net/numpy/%{name}-%{version}%{?relc}.tar.gz |
||||
|
||||
# Fix of CVE-2014-1858, CVE-2014-1859: #1062009 |
||||
# Modified version of 3 upstream commits, so they apply to current version: |
||||
# - 8296aa0b911c036c984e23665ee0f7ddca579b91 |
||||
# - 524b9eaa33ec67e34eb31a208e02bb934f778096 |
||||
# - 0bb46c1448b0d3f5453d5182a17ea7ac5854ee15 |
||||
Patch0: CVE-2014-1858-CVE-2014-1859.patch |
||||
# bz1125621 |
||||
Patch1: numpy-1.8.1.ppc64le.patch |
||||
# bz1167156 |
||||
Patch2: numpy-1.7.1.f2py.patch |
||||
# bz1179055 |
||||
Patch3: numpy-1.7.1-override-LAPACK-XERBLA.patch |
||||
|
||||
BuildRequires: python2-devel lapack-devel python-setuptools gcc-gfortran atlas-devel python-nose |
||||
Requires: python-nose |
||||
%if 0%{?with_python3} |
||||
BuildRequires: python3-devel |
||||
BuildRequires: python3-setuptools |
||||
BuildRequires: python3-nose |
||||
%endif |
||||
BuildRequires: Cython |
||||
|
||||
%description |
||||
NumPy is a general-purpose array-processing package designed to |
||||
efficiently manipulate large multi-dimensional arrays of arbitrary |
||||
records without sacrificing too much speed for small multi-dimensional |
||||
arrays. NumPy is built on the Numeric code base and adds features |
||||
introduced by numarray as well as an extended C-API and the ability to |
||||
create arrays of arbitrary type. |
||||
|
||||
There are also basic facilities for discrete fourier transform, |
||||
basic linear algebra and random number generation. Also included in |
||||
this package is a version of f2py that works properly with NumPy. |
||||
|
||||
%package f2py |
||||
Summary: f2py for numpy |
||||
Group: Development/Libraries |
||||
Requires: %{name} = %{epoch}:%{version}-%{release} |
||||
Requires: python-devel |
||||
Provides: f2py = %{version}-%{release} |
||||
Obsoletes: f2py <= 2.45.241_1927 |
||||
|
||||
%description f2py |
||||
This package includes a version of f2py that works properly with NumPy. |
||||
|
||||
%if 0%{?with_python3} |
||||
%package -n python3-numpy |
||||
Summary: A fast multidimensional array facility for Python |
||||
|
||||
Group: Development/Languages |
||||
License: BSD |
||||
%description -n python3-numpy |
||||
NumPy is a general-purpose array-processing package designed to |
||||
efficiently manipulate large multi-dimensional arrays of arbitrary |
||||
records without sacrificing too much speed for small multi-dimensional |
||||
arrays. NumPy is built on the Numeric code base and adds features |
||||
introduced by numarray as well as an extended C-API and the ability to |
||||
create arrays of arbitrary type. |
||||
|
||||
There are also basic facilities for discrete fourier transform, |
||||
basic linear algebra and random number generation. Also included in |
||||
this package is a version of f2py that works properly with NumPy. |
||||
|
||||
%package -n python3-numpy-f2py |
||||
Summary: f2py for numpy |
||||
Group: Development/Libraries |
||||
Requires: python3-numpy = %{epoch}:%{version}-%{release} |
||||
Requires: python3-devel |
||||
Provides: python3-f2py = %{version}-%{release} |
||||
Obsoletes: python3-f2py <= 2.45.241_1927 |
||||
|
||||
%description -n python3-numpy-f2py |
||||
This package includes a version of f2py that works properly with NumPy. |
||||
%endif # with_python3 |
||||
|
||||
%prep |
||||
%setup -q -n %{name}-%{version}%{?relc} |
||||
%patch0 -p1 |
||||
|
||||
%ifarch ppc64le |
||||
%patch1 -p1 |
||||
%endif |
||||
|
||||
%patch2 -p1 |
||||
%patch3 -p1 |
||||
|
||||
# workaround for rhbz#849713 |
||||
# http://mail.scipy.org/pipermail/numpy-discussion/2012-July/063530.html |
||||
rm numpy/distutils/command/__init__.py && touch numpy/distutils/command/__init__.py |
||||
|
||||
%if 0%{?with_python3} |
||||
rm -rf %{py3dir} |
||||
cp -a . %{py3dir} |
||||
%endif |
||||
|
||||
cat >> site.cfg <<EOF |
||||
[DEFAULT] |
||||
library_dirs = %{_libdir} |
||||
include_dirs = /usr/include |
||||
[atlas] |
||||
library_dirs = %{_libdir}/atlas |
||||
atlas_libs = tatlas |
||||
EOF |
||||
|
||||
|
||||
%build |
||||
%if 0%{?with_python3} |
||||
pushd %{py3dir} |
||||
env ATLAS=%{_libdir} FFTW=%{_libdir} BLAS=%{_libdir} \ |
||||
LAPACK=%{_libdir} CFLAGS="%{optflags}" \ |
||||
%{__python3} setup.py build |
||||
popd |
||||
%endif # with _python3 |
||||
|
||||
env ATLAS=%{_libdir} FFTW=%{_libdir} BLAS=%{_libdir} \ |
||||
LAPACK=%{_libdir} CFLAGS="%{optflags}" \ |
||||
%{__python} setup.py build |
||||
|
||||
%install |
||||
# first install python3 so the binaries are overwritten by the python2 ones |
||||
%if 0%{?with_python3} |
||||
pushd %{py3dir} |
||||
#%%{__python} setup.py install -O1 --skip-build --root %%{buildroot} |
||||
# skip-build currently broken, this works around it for now |
||||
env ATLAS=%{_libdir} FFTW=%{_libdir} BLAS=%{_libdir} \ |
||||
LAPACK=%{_libdir} CFLAGS="%{optflags}" \ |
||||
%{__python3} setup.py install --root %{buildroot} |
||||
rm -rf docs-f2py ; mv %{buildroot}%{python3_sitearch}/%{name}/f2py/docs docs-f2py |
||||
mv -f %{buildroot}%{python3_sitearch}/%{name}/f2py/f2py.1 f2py.1 |
||||
rm -rf doc ; mv -f %{buildroot}%{python3_sitearch}/%{name}/doc . |
||||
install -D -p -m 0644 f2py.1 %{buildroot}%{_mandir}/man1/f2py.1 |
||||
pushd %{buildroot}%{_bindir} &> /dev/null |
||||
popd &> /dev/null |
||||
|
||||
# Remove doc files. They should in in %%doc |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/COMPATIBILITY |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/DEV_README.txt |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/INSTALL.txt |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/LICENSE.txt |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/README.txt |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/THANKS.txt |
||||
rm -f %{buildroot}%{python3_sitearch}/%{name}/site.cfg.example |
||||
|
||||
popd |
||||
%endif # with_python3 |
||||
|
||||
#%%{__python} setup.py install -O1 --skip-build --root %%{buildroot} |
||||
# skip-build currently broken, this works around it for now |
||||
env ATLAS=%{_libdir} FFTW=%{_libdir} BLAS=%{_libdir} \ |
||||
LAPACK=%{_libdir} CFLAGS="%{optflags}" \ |
||||
%{__python} setup.py install --root %{buildroot} |
||||
rm -rf docs-f2py ; mv %{buildroot}%{python_sitearch}/%{name}/f2py/docs docs-f2py |
||||
mv -f %{buildroot}%{python_sitearch}/%{name}/f2py/f2py.1 f2py.1 |
||||
# remove sphinx docs, save dir for tests |
||||
rm -rf doc/* |
||||
install -D -p -m 0644 f2py.1 %{buildroot}%{_mandir}/man1/f2py.1 |
||||
pushd %{buildroot}%{_bindir} &> /dev/null |
||||
|
||||
# resolves rhbz#987032 |
||||
sed -i 's@#!/usr/bin/env python@#!/usr/bin/python@' f2py |
||||
|
||||
# symlink for anyone who was using f2py.numpy |
||||
ln -s f2py f2py.numpy |
||||
popd &> /dev/null |
||||
|
||||
#symlink for includes, BZ 185079 |
||||
mkdir -p %{buildroot}/usr/include |
||||
ln -s %{python_sitearch}/%{name}/core/include/numpy/ %{buildroot}/usr/include/numpy |
||||
|
||||
# Remove doc files. They should in in %%doc |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/COMPATIBILITY |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/DEV_README.txt |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/INSTALL.txt |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/LICENSE.txt |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/README.txt |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/THANKS.txt |
||||
rm -f %{buildroot}%{python_sitearch}/%{name}/site.cfg.example |
||||
|
||||
%check |
||||
pushd doc &> /dev/null |
||||
PYTHONPATH="%{buildroot}%{python_sitearch}" %{__python} -c "import pkg_resources, numpy ; numpy.test(verbose=3)" \ |
||||
%ifarch s390 s390x |
||||
|| : |
||||
%endif |
||||
# don't remove this comment |
||||
popd &> /dev/null |
||||
|
||||
%if 0%{?with_python3} |
||||
pushd doc &> /dev/null |
||||
# there is no python3-nose yet |
||||
PYTHONPATH="%{buildroot}%{python3_sitearch}" %{__python3} -c "import pkg_resources, numpy ; numpy.test()" \ |
||||
%ifarch s390 s390x |
||||
|| : |
||||
%endif |
||||
# don't remove this comment |
||||
popd &> /dev/null |
||||
|
||||
%endif # with_python3 |
||||
|
||||
|
||||
%files |
||||
%doc docs-f2py LICENSE.txt README.txt THANKS.txt DEV_README.txt COMPATIBILITY site.cfg.example |
||||
%dir %{python_sitearch}/%{name} |
||||
%{python_sitearch}/%{name}/*.py* |
||||
%{python_sitearch}/%{name}/core |
||||
%{python_sitearch}/%{name}/distutils |
||||
%{python_sitearch}/%{name}/doc |
||||
%{python_sitearch}/%{name}/fft |
||||
%{python_sitearch}/%{name}/lib |
||||
%{python_sitearch}/%{name}/linalg |
||||
%{python_sitearch}/%{name}/ma |
||||
%{python_sitearch}/%{name}/numarray |
||||
%{python_sitearch}/%{name}/oldnumeric |
||||
%{python_sitearch}/%{name}/random |
||||
%{python_sitearch}/%{name}/testing |
||||
%{python_sitearch}/%{name}/tests |
||||
%{python_sitearch}/%{name}/compat |
||||
%{python_sitearch}/%{name}/matrixlib |
||||
%{python_sitearch}/%{name}/polynomial |
||||
%{python_sitearch}/%{name}-*.egg-info |
||||
%{_includedir}/numpy |
||||
|
||||
%files f2py |
||||
%{_mandir}/man*/* |
||||
%{_bindir}/f2py |
||||
%{_bindir}/f2py.numpy |
||||
%{python_sitearch}/%{name}/f2py |
||||
|
||||
%if 0%{?with_python3} |
||||
%files -n python3-numpy |
||||
%doc docs-f2py doc/* LICENSE.txt README.txt THANKS.txt DEV_README.txt COMPATIBILITY site.cfg.example |
||||
%{python3_sitearch}/%{name}/__pycache__/* |
||||
%dir %{python3_sitearch}/%{name} |
||||
%{python3_sitearch}/%{name}/*.py* |
||||
%{python3_sitearch}/%{name}/core |
||||
%{python3_sitearch}/%{name}/distutils |
||||
%{python3_sitearch}/%{name}/fft |
||||
%{python3_sitearch}/%{name}/lib |
||||
%{python3_sitearch}/%{name}/linalg |
||||
%{python3_sitearch}/%{name}/ma |
||||
%{python3_sitearch}/%{name}/numarray |
||||
%{python3_sitearch}/%{name}/oldnumeric |
||||
%{python3_sitearch}/%{name}/random |
||||
%{python3_sitearch}/%{name}/testing |
||||
%{python3_sitearch}/%{name}/tests |
||||
%{python3_sitearch}/%{name}/compat |
||||
%{python3_sitearch}/%{name}/matrixlib |
||||
%{python3_sitearch}/%{name}/polynomial |
||||
%{python3_sitearch}/%{name}-*.egg-info |
||||
|
||||
%files -n python3-numpy-f2py |
||||
%{_bindir}/f2py3 |
||||
%{python3_sitearch}/%{name}/f2py |
||||
%endif # with_python3 |
||||
|
||||
|
||||
%changelog |
||||
* Tue Jan 03 2017 nforro@redhat.com - 1:1.7.1-13 |
||||
- resolves: #1179055 |
||||
override LAPACK XERBLA |
||||
|
||||
* Thu Dec 22 2016 nforro@redhat.com - 1:1.7.1-12 |
||||
- resolves: #1167156 |
||||
fix bug in f2py leading to segfault in modules with shared symbols |
||||
|
||||
* Thu Aug 07 2014 jchaloup <jchaloup@redhat.com> - 1:1.7.1-11 |
||||
- resolves: #1125621 |
||||
support for ppc64le, taken from private-rhel-7.0-ppc64le branch |
||||
|
||||
* Tue Mar 18 2014 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-10 |
||||
- fix changelog entry below |
||||
|
||||
* Mon Feb 10 2014 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-9 |
||||
- Fix CVE-2014-1858, CVE-2014-1859: #1062009 |
||||
|
||||
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1:1.7.1-8 |
||||
- Mass rebuild 2014-01-24 |
||||
|
||||
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1:1.7.1-7 |
||||
- Mass rebuild 2013-12-27 |
||||
|
||||
* Mon Nov 25 2013 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-6 |
||||
- keep numpy.doc in site_arch |
||||
|
||||
* Wed Sep 25 2013 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-5 |
||||
- rebuilt with atlas 3.10, rhbz#1009069 |
||||
|
||||
* Wed Aug 28 2013 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-4 |
||||
- URL Fix, rhbz#1001337 |
||||
|
||||
* Tue Jul 23 2013 Tomas Tomecek <ttomecek@redhat.com> - 1:1.7.1-3 |
||||
- Update License |
||||
- Fix rpmlint warnings |
||||
- Increase verbosity level of tests |
||||
- Disable python 3 build |
||||
- Fix rhbz#987032 (SCL related: wrong shebang) |
||||
|
||||
* Sun Jun 2 2013 Orion Poplawski <orion@nwra.com> - 1:1.7.1-2 |
||||
- Specfile cleanup (bug #969854) |
||||
|
||||
* Wed Apr 10 2013 Orion Poplawski <orion@nwra.com> - 1:1.7.1-1 |
||||
- Update to 1.7.1 |
||||
|
||||
* Sat Feb 9 2013 Orion Poplawski <orion@nwra.com> - 1:1.7.0-1 |
||||
- Update to 1.7.0 final |
||||
|
||||
* Sun Dec 30 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.5.rc1 |
||||
- Update to 1.7.0rc1 |
||||
|
||||
* Thu Sep 20 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.4.b2 |
||||
- Update to 1.7.0b2 |
||||
- Drop patches applied upstream |
||||
|
||||
* Wed Aug 22 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.3.b1 |
||||
- Add patch from github pull 371 to fix python 3.3 pickle issue |
||||
- Remove cython .c source regeneration - fails now |
||||
|
||||
* Wed Aug 22 2012 Orion Poplawski <orion@nwra.com> - 1:1.7.0-0.2.b1 |
||||
- add workaround for rhbz#849713 (fixes FTBFS) |
||||
|
||||
* Tue Aug 21 2012 Orion Poplawski <orion@cora.nwra.com> - 1:1.7.0-0.1.b1 |
||||
- Update to 1.7.0b1 |
||||
- Rebase python 3.3 patchs to current git master |
||||
- Drop patches applied upstream |
||||
|
||||
* Sun Aug 5 2012 David Malcolm <dmalcolm@redhat.com> - 1:1.6.2-5 |
||||
- rework patches for 3.3 to more directly reflect upstream's commits |
||||
- re-enable test suite on python 3 |
||||
- forcibly regenerate Cython .c source to avoid import issues on Python 3.3 |
||||
|
||||
* Sun Aug 5 2012 Thomas Spura <tomspur@fedoraproject.org> - 1:1.6.2-4 |
||||
- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3 |
||||
- needs unicode patch |
||||
|
||||
* Fri Aug 3 2012 David Malcolm <dmalcolm@redhat.com> - 1:1.6.2-3 |
||||
- remove rhel logic from with_python3 conditional |
||||
|
||||
* Fri Jul 20 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:1.6.2-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||
|
||||
* Sun May 20 2012 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.2-1 |
||||
- Update to 1.6.2 final |
||||
|
||||
* Sat May 12 2012 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.2rc1-0.1 |
||||
- Update to 1.6.2rc1 |
||||
|
||||
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:1.6.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||
|
||||
* Mon Nov 7 2011 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.1-1 |
||||
- Update to 1.6.1 |
||||
|
||||
* Fri Jun 17 2011 Jon Ciesla <limb@jcomserv.net> - 1:1.6.0-2 |
||||
- Bump and rebuild for BZ 712251. |
||||
|
||||
* Mon May 16 2011 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.0-1 |
||||
- Update to 1.6.0 final |
||||
|
||||
* Mon Apr 4 2011 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.0-0.2.b2 |
||||
- Update to 1.6.0b2 |
||||
- Drop import patch fixed upstream |
||||
|
||||
* Thu Mar 31 2011 Orion Poplawski <orion@cora.nwra.com> - 1:1.6.0-0.1.b1 |
||||
- Update to 1.6.0b1 |
||||
- Build python3 module with python3 |
||||
- Add patch from upstream to fix build time import error |
||||
|
||||
* Wed Mar 30 2011 Orion Poplawski <orion@cora.nwra.com> - 1:1.5.1-1 |
||||
- Update to 1.5.1 final |
||||
|
||||
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:1.5.1-0.4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||
|
||||
* Thu Jan 13 2011 Dan Horák <dan[at]danny.cz> - 1:1.5.1-0.3 |
||||
- fix the AttributeError during tests |
||||
- fix build on s390(x) |
||||
|
||||
* Wed Dec 29 2010 David Malcolm <dmalcolm@redhat.com> - 1:1.5.1-0.2 |
||||
- rebuild for newer python3 |
||||
|
||||
* Wed Oct 27 2010 Thomas Spura <tomspur@fedoraproject.org> - 1:1.5.1-0.1 |
||||
- update to 1.5.1rc1 |
||||
- add python3 subpackage |
||||
- some spec-cleanups |
||||
|
||||
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 1:1.4.1-6 |
||||
- actually add the patch this time |
||||
|
||||
* Thu Jul 22 2010 David Malcolm <dmalcolm@redhat.com> - 1:1.4.1-5 |
||||
- fix segfault within %%check on 2.7 (patch 2) |
||||
|
||||
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 1:1.4.1-4 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild |
||||
|
||||
* Sun Jul 18 2010 Dan Horák <dan[at]danny.cz> 1.4.1-3 |
||||
- ignore the "Ticket #1299 second test" failure on s390(x) |
||||
|
||||
* Thu Jun 24 2010 Jef Spaleta <jspaleta@fedoraprject.org> 1.4.1-2 |
||||
- source commit fix |
||||
|
||||
* Thu Jun 24 2010 Jef Spaleta <jspaleta@fedoraprject.org> 1.4.1-1 |
||||
- New upstream release. Include backported doublefree patch |
||||
|
||||
* Mon Apr 26 2010 Jon Ciesla <limb@jcomserv.net> 1.3.0-8 |
||||
- Moved distutils back to the main package, BZ 572820. |
||||
|
||||
* Thu Apr 08 2010 Jon Ciesla <limb@jcomserv.net> 1.3.0-7 |
||||
- Reverted to 1.3.0 after upstream pulled 1.4.0, BZ 579065. |
||||
|
||||
* Tue Mar 02 2010 Jon Ciesla <limb@jcomserv.net> 1.4.0-5 |
||||
- Linking /usr/include/numpy to .h files, BZ 185079. |
||||
|
||||
* Tue Feb 16 2010 Jon Ciesla <limb@jcomserv.net> 1.4.0-4 |
||||
- Re-enabling atlas BR, dropping lapack Requires. |
||||
|
||||
* Wed Feb 10 2010 Jon Ciesla <limb@jcomserv.net> 1.4.0-3 |
||||
- Since the previous didn't work, Requiring lapack. |
||||
|
||||
* Tue Feb 09 2010 Jon Ciesla <limb@jcomserv.net> 1.4.0-2 |
||||
- Temporarily dropping atlas BR to work around 562577. |
||||
|
||||
* Fri Jan 22 2010 Jon Ciesla <limb@jcomserv.net> 1.4.0-1 |
||||
- 1.4.0. |
||||
- Dropped ARM patch, ARM support added upstream. |
||||
|
||||
* Tue Nov 17 2009 Jitesh Shah <jiteshs@marvell.com> - 1.3.0-6.fa1 |
||||
- Add ARM support |
||||
|
||||
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.0-6 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||
|
||||
* Thu Jun 11 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-5 |
||||
- Fixed atlas BR, BZ 505376. |
||||
|
||||
* Fri Apr 17 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-4 |
||||
- EVR bump for pygame chainbuild. |
||||
|
||||
* Fri Apr 17 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-3 |
||||
- Moved linalg, fft back to main package. |
||||
|
||||
* Tue Apr 14 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-2 |
||||
- Split out f2py into subpackage, thanks Peter Robinson pbrobinson@gmail.com. |
||||
|
||||
* Tue Apr 07 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-1 |
||||
- Update to latest upstream. |
||||
- Fixed Source0 URL. |
||||
|
||||
* Thu Apr 02 2009 Jon Ciesla <limb@jcomserv.net> 1.3.0-0.rc1 |
||||
- Update to latest upstream. |
||||
|
||||
* Thu Mar 05 2009 Jon Ciesla <limb@jcomserv.net> 1.2.1-3 |
||||
- Require python-devel, BZ 488464. |
||||
|
||||
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.1-2 |
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||
|
||||
* Fri Dec 19 2008 Jon Ciesla <limb@jcomserv.net> 1.2.1-1 |
||||
- Update to 1.2.1. |
||||
|
||||
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 1.2.0-2 |
||||
- Rebuild for Python 2.6 |
||||
|
||||
* Tue Oct 07 2008 Jon Ciesla <limb@jcomserv.net> 1.2.0-1 |
||||
- New upstream release, added python-nose BR. BZ 465999. |
||||
- Using atlas blas, not blas-devel. BZ 461472. |
||||
|
||||
* Wed Aug 06 2008 Jon Ciesla <limb@jcomserv.net> 1.1.1-1 |
||||
- New upstream release |
||||
|
||||
* Thu May 29 2008 Jarod Wilson <jwilson@redhat.com> 1.1.0-1 |
||||
- New upstream release |
||||
|
||||
* Tue May 06 2008 Jarod Wilson <jwilson@redhat.com> 1.0.4-1 |
||||
- New upstream release |
||||
|
||||
* Mon Feb 11 2008 Jarod Wilson <jwilson@redhat.com> 1.0.3.1-2 |
||||
- Add python egg to %%files on f9+ |
||||
|
||||
* Wed Aug 22 2007 Jarod Wilson <jwilson@redhat.com> 1.0.3.1-1 |
||||
- New upstream release |
||||
|
||||
* Wed Jun 06 2007 Jarod Wilson <jwilson@redhat.com> 1.0.3-1 |
||||
- New upstream release |
||||
|
||||
* Mon May 14 2007 Jarod Wilson <jwilson@redhat.com> 1.0.2-2 |
||||
- Drop BR: atlas-devel, since it just provides binary-compat |
||||
blas and lapack libs. Atlas can still be optionally used |
||||
at runtime. (Note: this is all per the atlas maintainer). |
||||
|
||||
* Mon May 14 2007 Jarod Wilson <jwilson@redhat.com> 1.0.2-1 |
||||
- New upstream release |
||||
|
||||
* Tue Apr 17 2007 Jarod Wilson <jwilson@redhat.com> 1.0.1-4 |
||||
- Update gfortran patch to recognize latest gfortran f95 support |
||||
- Resolves rhbz#236444 |
||||
|
||||
* Fri Feb 23 2007 Jarod Wilson <jwilson@redhat.com> 1.0.1-3 |
||||
- Fix up cpuinfo bug (#229753). Upstream bug/change: |
||||
http://projects.scipy.org/scipy/scipy/ticket/349 |
||||
|
||||
* Thu Jan 04 2007 Jarod Wilson <jwilson@redhat.com> 1.0.1-2 |
||||
- Per discussion w/Jose Matos, Obsolete/Provide f2py, as the |
||||
stand-alone one is no longer supported/maintained upstream |
||||
|
||||
* Wed Dec 13 2006 Jarod Wilson <jwilson@redhat.com> 1.0.1-1 |
||||
- New upstream release |
||||
|
||||
* Tue Dec 12 2006 Jarod Wilson <jwilson@redhat.com> 1.0-2 |
||||
- Rebuild for python 2.5 |
||||
|
||||
* Wed Oct 25 2006 Jarod Wilson <jwilson@redhat.com> 1.0-1 |
||||
- New upstream release |
||||
|
||||
* Wed Sep 06 2006 Jarod Wilson <jwilson@redhat.com> 0.9.8-1 |
||||
- New upstream release |
||||
|
||||
* Wed Apr 26 2006 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 0.9.6-1 |
||||
- Upstream update |
||||
|
||||
* Thu Feb 16 2006 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 0.9.5-1 |
||||
- Upstream update |
||||
|
||||
* Mon Feb 13 2006 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 0.9.4-2 |
||||
- Rebuild for Fedora Extras 5 |
||||
|
||||
* Thu Feb 2 2006 Ignacio Vazquez-Abrams <ivazquez@ivazquez.net> 0.9.4-1 |
||||
- Initial RPM release |
||||
- Added gfortran patch from Neal Becker |
Loading…
Reference in new issue