moving non-packages into a separate file
This commit is contained in:
parent
3d00848ace
commit
6c238d1d5f
|
@ -7802,50 +7802,13 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Special check phase for numpy and scipy, following the same set of steps:
|
numpy = let
|
||||||
# First "install" the package, then import what was installed, and call the
|
support = import ./python-support/numpy-scipy-support.nix {
|
||||||
# .test() function, which will run the test suite.
|
inherit python;
|
||||||
numpyScipyCheckPhase = python: pkgName: ''
|
atlas = atlasWithLapack;
|
||||||
runHook preCheck
|
pkgName = "numpy";
|
||||||
|
};
|
||||||
_python=${python}/bin/${python.executable}
|
in buildPythonPackage ( rec {
|
||||||
|
|
||||||
# We will "install" into a temp directory, so that we can run the numpy
|
|
||||||
# tests (see below).
|
|
||||||
install_dir="$TMPDIR/test_install"
|
|
||||||
install_lib="$install_dir/lib/${python.libPrefix}/site-packages"
|
|
||||||
mkdir -p $install_dir
|
|
||||||
$_python setup.py install \
|
|
||||||
--install-lib=$install_lib \
|
|
||||||
--old-and-unmanageable \
|
|
||||||
--prefix=$install_dir > /dev/null
|
|
||||||
|
|
||||||
# Create a directory in which to run tests (you get an error if you try to
|
|
||||||
# import the package when you're in the current directory).
|
|
||||||
mkdir $TMPDIR/run_tests
|
|
||||||
pushd $TMPDIR/run_tests > /dev/null
|
|
||||||
# Temporarily add the directory we installed in to the python path
|
|
||||||
# (not permanently, or this pythonpath will wind up getting exported),
|
|
||||||
# and run the test suite.
|
|
||||||
PYTHONPATH="$install_lib:$PYTHONPATH" $_python -c \
|
|
||||||
'import ${pkgName}; ${pkgName}.test("fast", verbose=10)'
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
runHook postCheck
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Special prebuild step for numpy and scipy. Creates a site.cfg telling
|
|
||||||
# the setup script where to find depended-on math libraries.
|
|
||||||
numpyScipyPrebuild = ''
|
|
||||||
echo "Creating site.cfg file..."
|
|
||||||
cat << EOF > site.cfg
|
|
||||||
[atlas]
|
|
||||||
include_dirs = ${pkgs.atlasWithLapack}/include
|
|
||||||
library_dirs = ${pkgs.atlasWithLapack}/lib
|
|
||||||
EOF
|
|
||||||
'';
|
|
||||||
|
|
||||||
numpy = buildPythonPackage ( rec {
|
|
||||||
name = "numpy-1.9.2";
|
name = "numpy-1.9.2";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
|
@ -7860,15 +7823,13 @@ let
|
||||||
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
|
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = self.numpyScipyPrebuild;
|
inherit (support) preBuild checkPhase;
|
||||||
|
|
||||||
setupPyBuildFlags = ["--fcompiler='gnu95'"];
|
setupPyBuildFlags = ["--fcompiler='gnu95'"];
|
||||||
|
|
||||||
buildInputs = [ pkgs.gfortran self.nose ];
|
buildInputs = [ pkgs.gfortran self.nose ];
|
||||||
propagatedBuildInputs = [ pkgs.atlas ];
|
propagatedBuildInputs = [ pkgs.atlas ];
|
||||||
|
|
||||||
checkPhase = self.numpyScipyCheckPhase python "numpy";
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Scientific tools for Python";
|
description = "Scientific tools for Python";
|
||||||
homepage = "http://numpy.scipy.org/";
|
homepage = "http://numpy.scipy.org/";
|
||||||
|
@ -11219,7 +11180,13 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
scipy = buildPythonPackage rec {
|
scipy = let
|
||||||
|
support = import ./python-support/numpy-scipy-support.nix {
|
||||||
|
inherit python;
|
||||||
|
atlas = atlasWithLapack;
|
||||||
|
pkgName = "numpy";
|
||||||
|
};
|
||||||
|
in buildPythonPackage rec {
|
||||||
name = "scipy-0.15.1";
|
name = "scipy-0.15.1";
|
||||||
|
|
||||||
src = pkgs.fetchurl {
|
src = pkgs.fetchurl {
|
||||||
|
@ -11230,17 +11197,14 @@ let
|
||||||
buildInputs = [ pkgs.gfortran self.nose ];
|
buildInputs = [ pkgs.gfortran self.nose ];
|
||||||
propagatedBuildInputs = [ self.numpy ];
|
propagatedBuildInputs = [ self.numpy ];
|
||||||
|
|
||||||
# TODO: add ATLAS=${pkgs.atlas}
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
|
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preBuild = self.numpyScipyPrebuild;
|
inherit (support) preBuild checkPhase;
|
||||||
|
|
||||||
setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
|
setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
|
||||||
|
|
||||||
checkPhase = self.numpyScipyCheckPhase python "scipy";
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
|
description = "SciPy (pronounced 'Sigh Pie') is open-source software for mathematics, science, and engineering. ";
|
||||||
homepage = http://www.scipy.org/;
|
homepage = http://www.scipy.org/;
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
{
|
||||||
|
# Python package expression
|
||||||
|
python,
|
||||||
|
# Name of package (e.g. numpy or scipy)
|
||||||
|
pkgName,
|
||||||
|
# Atlas math library
|
||||||
|
atlas
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
# First "install" the package, then import what was installed, and call the
|
||||||
|
# .test() function, which will run the test suite.
|
||||||
|
checkPhase = ''
|
||||||
|
runHook preCheck
|
||||||
|
|
||||||
|
_python=${python}/bin/${python.executable}
|
||||||
|
|
||||||
|
# We will "install" into a temp directory, so that we can run the numpy
|
||||||
|
# tests (see below).
|
||||||
|
install_dir="$TMPDIR/test_install"
|
||||||
|
install_lib="$install_dir/lib/${python.libPrefix}/site-packages"
|
||||||
|
mkdir -p $install_dir
|
||||||
|
$_python setup.py install \
|
||||||
|
--install-lib=$install_lib \
|
||||||
|
--old-and-unmanageable \
|
||||||
|
--prefix=$install_dir > /dev/null
|
||||||
|
|
||||||
|
# Create a directory in which to run tests (you get an error if you try to
|
||||||
|
# import the package when you're in the current directory).
|
||||||
|
mkdir $TMPDIR/run_tests
|
||||||
|
pushd $TMPDIR/run_tests > /dev/null
|
||||||
|
# Temporarily add the directory we installed in to the python path
|
||||||
|
# (not permanently, or this pythonpath will wind up getting exported),
|
||||||
|
# and run the test suite.
|
||||||
|
PYTHONPATH="$install_lib:$PYTHONPATH" $_python -c \
|
||||||
|
'import ${pkgName}; ${pkgName}.test("fast", verbose=10)'
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
runHook postCheck
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Creates a site.cfg telling the setup script where to find depended-on
|
||||||
|
# math libraries.
|
||||||
|
preBuild = ''
|
||||||
|
echo "Creating site.cfg file..."
|
||||||
|
cat << EOF > site.cfg
|
||||||
|
[atlas]
|
||||||
|
include_dirs = ${atlas}/include
|
||||||
|
library_dirs = ${atlas}/lib
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in New Issue