diff options
author | Frederik Rietdijk <fridh@fridh.nl> | 2017-05-16 09:22:07 +0200 |
---|---|---|
committer | Frederik Rietdijk <fridh@fridh.nl> | 2017-05-16 13:37:01 +0200 |
commit | c9b4a2f319914fe31eb8eee866ad47052824c697 (patch) | |
tree | 9ddd40445c6272e77983a4ab2899217bab26febc /pkgs/development/python-modules/numpy | |
parent | 9174bd253835527cf83aeb53c9bbd0aa937cc067 (diff) | |
download | nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar.gz nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar.bz2 nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar.lz nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar.xz nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.tar.zst nixlib-c9b4a2f319914fe31eb8eee866ad47052824c697.zip |
python.pkgs.numpy: move and get rid of multiple versions
Diffstat (limited to 'pkgs/development/python-modules/numpy')
-rw-r--r-- | pkgs/development/python-modules/numpy/default.nix | 61 | ||||
-rw-r--r-- | pkgs/development/python-modules/numpy/numpy-distutils-C++.patch | 23 |
2 files changed, 84 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix new file mode 100644 index 000000000000..d427a33f80f4 --- /dev/null +++ b/pkgs/development/python-modules/numpy/default.nix @@ -0,0 +1,61 @@ +{lib, fetchurl, python, buildPythonPackage, isPy27, isPyPy, gfortran, nose, blas}: + +buildPythonPackage rec { + pname = "numpy"; + version = "1.12.1"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://pypi/n/numpy/numpy-${version}.zip"; + sha256 = "a65266a4ad6ec8936a1bc85ce51f8600634a31a258b722c9274a80ff189d9542"; + }; + + disabled = isPyPy; + buildInputs = [ gfortran nose blas ]; + + patches = lib.optionals (python.hasDistutilsCxxPatch or false) [ + # See cpython 2.7 patches. + # numpy.distutils is used by cython during it's check phase + ./numpy-distutils-C++.patch + ]; + + preConfigure = '' + sed -i 's/-faltivec//' numpy/distutils/system_info.py + ''; + + preBuild = '' + echo "Creating site.cfg file..." + cat << EOF > site.cfg + [openblas] + include_dirs = ${blas}/include + library_dirs = ${blas}/lib + EOF + ''; + + checkPhase = '' + runHook preCheck + pushd dist + ${python.interpreter} -c 'import numpy; numpy.test("fast", verbose=10)' + popd + runHook postCheck + ''; + + postInstall = '' + ln -s $out/bin/f2py* $out/bin/f2py + ''; + + passthru = { + blas = blas; + }; + + # Disable two tests + # - test_f2py: f2py isn't yet on path. + # - test_large_file_support: takes a long time and can cause the machine to run out of disk space + NOSE_EXCLUDE="test_f2py,test_large_file_support"; + + meta = { + description = "Scientific tools for Python"; + homepage = "http://numpy.scipy.org/"; + maintainers = with lib.maintainers; [ fridh ]; + }; +} diff --git a/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch b/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch new file mode 100644 index 000000000000..4b2d5c640e64 --- /dev/null +++ b/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch @@ -0,0 +1,23 @@ +diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py +index a92ccd3..9630e91 100644 +--- a/numpy/distutils/unixccompiler.py ++++ b/numpy/distutils/unixccompiler.py +@@ -43,10 +43,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts + if opt not in llink_s: + self.linker_so = llink_s.split() + opt.split() + +- display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) + try: +- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + +- extra_postargs, display = display) ++ if self.detect_language(src) == 'c++': ++ display = '%s: %s' % (os.path.basename(self.compiler_so_cxx[0]), src) ++ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + ++ extra_postargs, display = display) ++ else: ++ display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) ++ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + ++ extra_postargs, display = display) + except DistutilsExecError: + msg = str(get_exception()) + raise CompileError(msg) |