diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..79a24c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/numpy-1.7.1.tar.gz diff --git a/.numpy.metadata b/.numpy.metadata new file mode 100644 index 0000000..047bd69 --- /dev/null +++ b/.numpy.metadata @@ -0,0 +1 @@ +11d878214d11a25e05a24f6b27e2b838815a2588 SOURCES/numpy-1.7.1.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/CVE-2014-1858-CVE-2014-1859.patch b/SOURCES/CVE-2014-1858-CVE-2014-1859.patch new file mode 100644 index 0000000..f9b15a1 --- /dev/null +++ b/SOURCES/CVE-2014-1858-CVE-2014-1859.patch @@ -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 All f2py generated files are created in . +- 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 + diff --git a/SOURCES/numpy-1.8.1.ppc64le.patch b/SOURCES/numpy-1.8.1.ppc64le.patch new file mode 100644 index 0000000..8cc266e --- /dev/null +++ b/SOURCES/numpy-1.8.1.ppc64le.patch @@ -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 + diff --git a/SPECS/numpy.spec b/SPECS/numpy.spec new file mode 100644 index 0000000..3e89086 --- /dev/null +++ b/SPECS/numpy.spec @@ -0,0 +1,531 @@ +%global with_python3 0 +%{!?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: 11%{?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 + +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 + +# 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 < /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 +* Thu Aug 07 2014 jchaloup - 1:1.7.1-11 +- resolves: #1125621 + support for ppc64le, taken from private-rhel-7.0-ppc64le branch + +* Tue Mar 18 2014 Tomas Tomecek - 1:1.7.1-10 +- fix changelog entry below + +* Mon Feb 10 2014 Tomas Tomecek - 1:1.7.1-9 +- Fix CVE-2014-1858, CVE-2014-1859: #1062009 + +* Fri Jan 24 2014 Daniel Mach - 1:1.7.1-8 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 1:1.7.1-7 +- Mass rebuild 2013-12-27 + +* Mon Nov 25 2013 Tomas Tomecek - 1:1.7.1-6 +- keep numpy.doc in site_arch + +* Wed Sep 25 2013 Tomas Tomecek - 1:1.7.1-5 +- rebuilt with atlas 3.10, rhbz#1009069 + +* Wed Aug 28 2013 Tomas Tomecek - 1:1.7.1-4 +- URL Fix, rhbz#1001337 + +* Tue Jul 23 2013 Tomas Tomecek - 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 - 1:1.7.1-2 +- Specfile cleanup (bug #969854) + +* Wed Apr 10 2013 Orion Poplawski - 1:1.7.1-1 +- Update to 1.7.1 + +* Sat Feb 9 2013 Orion Poplawski - 1:1.7.0-1 +- Update to 1.7.0 final + +* Sun Dec 30 2012 Orion Poplawski - 1:1.7.0-0.5.rc1 +- Update to 1.7.0rc1 + +* Thu Sep 20 2012 Orion Poplawski - 1:1.7.0-0.4.b2 +- Update to 1.7.0b2 +- Drop patches applied upstream + +* Wed Aug 22 2012 Orion Poplawski - 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 - 1:1.7.0-0.2.b1 +- add workaround for rhbz#849713 (fixes FTBFS) + +* Tue Aug 21 2012 Orion Poplawski - 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 - 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 - 1:1.6.2-4 +- rebuild for https://fedoraproject.org/wiki/Features/Python_3.3 +- needs unicode patch + +* Fri Aug 3 2012 David Malcolm - 1:1.6.2-3 +- remove rhel logic from with_python3 conditional + +* Fri Jul 20 2012 Fedora Release Engineering - 1:1.6.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun May 20 2012 Orion Poplawski - 1:1.6.2-1 +- Update to 1.6.2 final + +* Sat May 12 2012 Orion Poplawski - 1:1.6.2rc1-0.1 +- Update to 1.6.2rc1 + +* Fri Jan 13 2012 Fedora Release Engineering - 1:1.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Nov 7 2011 Orion Poplawski - 1:1.6.1-1 +- Update to 1.6.1 + +* Fri Jun 17 2011 Jon Ciesla - 1:1.6.0-2 +- Bump and rebuild for BZ 712251. + +* Mon May 16 2011 Orion Poplawski - 1:1.6.0-1 +- Update to 1.6.0 final + +* Mon Apr 4 2011 Orion Poplawski - 1:1.6.0-0.2.b2 +- Update to 1.6.0b2 +- Drop import patch fixed upstream + +* Thu Mar 31 2011 Orion Poplawski - 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 - 1:1.5.1-1 +- Update to 1.5.1 final + +* Tue Feb 08 2011 Fedora Release Engineering - 1:1.5.1-0.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jan 13 2011 Dan Horák - 1:1.5.1-0.3 +- fix the AttributeError during tests +- fix build on s390(x) + +* Wed Dec 29 2010 David Malcolm - 1:1.5.1-0.2 +- rebuild for newer python3 + +* Wed Oct 27 2010 Thomas Spura - 1:1.5.1-0.1 +- update to 1.5.1rc1 +- add python3 subpackage +- some spec-cleanups + +* Thu Jul 22 2010 David Malcolm - 1:1.4.1-6 +- actually add the patch this time + +* Thu Jul 22 2010 David Malcolm - 1:1.4.1-5 +- fix segfault within %%check on 2.7 (patch 2) + +* Wed Jul 21 2010 David Malcolm - 1:1.4.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Sun Jul 18 2010 Dan Horák 1.4.1-3 +- ignore the "Ticket #1299 second test" failure on s390(x) + +* Thu Jun 24 2010 Jef Spaleta 1.4.1-2 +- source commit fix + +* Thu Jun 24 2010 Jef Spaleta 1.4.1-1 +- New upstream release. Include backported doublefree patch + +* Mon Apr 26 2010 Jon Ciesla 1.3.0-8 +- Moved distutils back to the main package, BZ 572820. + +* Thu Apr 08 2010 Jon Ciesla 1.3.0-7 +- Reverted to 1.3.0 after upstream pulled 1.4.0, BZ 579065. + +* Tue Mar 02 2010 Jon Ciesla 1.4.0-5 +- Linking /usr/include/numpy to .h files, BZ 185079. + +* Tue Feb 16 2010 Jon Ciesla 1.4.0-4 +- Re-enabling atlas BR, dropping lapack Requires. + +* Wed Feb 10 2010 Jon Ciesla 1.4.0-3 +- Since the previous didn't work, Requiring lapack. + +* Tue Feb 09 2010 Jon Ciesla 1.4.0-2 +- Temporarily dropping atlas BR to work around 562577. + +* Fri Jan 22 2010 Jon Ciesla 1.4.0-1 +- 1.4.0. +- Dropped ARM patch, ARM support added upstream. + +* Tue Nov 17 2009 Jitesh Shah - 1.3.0-6.fa1 +- Add ARM support + +* Sat Jul 25 2009 Fedora Release Engineering - 1.3.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jun 11 2009 Jon Ciesla 1.3.0-5 +- Fixed atlas BR, BZ 505376. + +* Fri Apr 17 2009 Jon Ciesla 1.3.0-4 +- EVR bump for pygame chainbuild. + +* Fri Apr 17 2009 Jon Ciesla 1.3.0-3 +- Moved linalg, fft back to main package. + +* Tue Apr 14 2009 Jon Ciesla 1.3.0-2 +- Split out f2py into subpackage, thanks Peter Robinson pbrobinson@gmail.com. + +* Tue Apr 07 2009 Jon Ciesla 1.3.0-1 +- Update to latest upstream. +- Fixed Source0 URL. + +* Thu Apr 02 2009 Jon Ciesla 1.3.0-0.rc1 +- Update to latest upstream. + +* Thu Mar 05 2009 Jon Ciesla 1.2.1-3 +- Require python-devel, BZ 488464. + +* Wed Feb 25 2009 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Dec 19 2008 Jon Ciesla 1.2.1-1 +- Update to 1.2.1. + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 1.2.0-2 +- Rebuild for Python 2.6 + +* Tue Oct 07 2008 Jon Ciesla 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 1.1.1-1 +- New upstream release + +* Thu May 29 2008 Jarod Wilson 1.1.0-1 +- New upstream release + +* Tue May 06 2008 Jarod Wilson 1.0.4-1 +- New upstream release + +* Mon Feb 11 2008 Jarod Wilson 1.0.3.1-2 +- Add python egg to %%files on f9+ + +* Wed Aug 22 2007 Jarod Wilson 1.0.3.1-1 +- New upstream release + +* Wed Jun 06 2007 Jarod Wilson 1.0.3-1 +- New upstream release + +* Mon May 14 2007 Jarod Wilson 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 1.0.2-1 +- New upstream release + +* Tue Apr 17 2007 Jarod Wilson 1.0.1-4 +- Update gfortran patch to recognize latest gfortran f95 support +- Resolves rhbz#236444 + +* Fri Feb 23 2007 Jarod Wilson 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 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 1.0.1-1 +- New upstream release + +* Tue Dec 12 2006 Jarod Wilson 1.0-2 +- Rebuild for python 2.5 + +* Wed Oct 25 2006 Jarod Wilson 1.0-1 +- New upstream release + +* Wed Sep 06 2006 Jarod Wilson 0.9.8-1 +- New upstream release + +* Wed Apr 26 2006 Ignacio Vazquez-Abrams 0.9.6-1 +- Upstream update + +* Thu Feb 16 2006 Ignacio Vazquez-Abrams 0.9.5-1 +- Upstream update + +* Mon Feb 13 2006 Ignacio Vazquez-Abrams 0.9.4-2 +- Rebuild for Fedora Extras 5 + +* Thu Feb 2 2006 Ignacio Vazquez-Abrams 0.9.4-1 +- Initial RPM release +- Added gfortran patch from Neal Becker