2019-12-11 13:31:22 +01:00
|
|
|
{ pkgs ? import <nixpkgs> {}
|
|
|
|
, lib ? pkgs.lib
|
|
|
|
, stdenv ? pkgs.stdenv
|
2019-06-27 16:44:42 +01:00
|
|
|
}:
|
2019-06-24 12:31:59 +01:00
|
|
|
|
2019-06-22 22:42:29 +01:00
|
|
|
let
|
2019-06-24 12:31:59 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
addSetupTools = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.setuptools_scm
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-29 18:41:22 +01:00
|
|
|
getAttrDefault = attribute: set: default:
|
|
|
|
if builtins.hasAttr attribute set
|
|
|
|
then builtins.getAttr attribute set
|
|
|
|
else default;
|
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
in
|
|
|
|
{
|
2019-06-29 18:41:22 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
asciimatics = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.setuptools_scm
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
av = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [
|
|
|
|
pkgs.pkgconfig
|
|
|
|
];
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
bcrypt = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.libffi ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
cffi = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.libffi ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
cftime = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.cython
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
2019-11-19 22:42:43 +00:00
|
|
|
|
2019-10-15 17:56:18 +01:00
|
|
|
configparser = addSetupTools;
|
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
cbor2 = addSetupTools;
|
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
cryptography = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.openssl ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
django = (
|
|
|
|
self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
propagatedNativeBuildInputs = (getAttrDefault "propagatedNativeBuildInputs" old [])
|
|
|
|
++ [ pkgs.gettext ];
|
|
|
|
}
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
django-bakery = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
configurePhase = ''
|
|
|
|
if ! test -e LICENSE; then
|
|
|
|
touch LICENSE
|
|
|
|
fi
|
|
|
|
'' + (getAttrDefault "configurePhase" old "");
|
|
|
|
}
|
|
|
|
);
|
2019-06-27 16:44:42 +01:00
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
# Environment markers are not always included (depending on how a dep was defined)
|
|
|
|
enum34 = self: super: drv: if self.pythonAtLeast "3.4" then null else drv;
|
2019-10-16 11:04:24 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
grandalf = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.py --replace "setup_requires=['pytest-runner',]," "setup_requires=[]," || true
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
2019-06-22 22:42:29 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
horovod = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [ pkgs.openmpi ];
|
|
|
|
}
|
|
|
|
);
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
hypothesis = addSetupTools;
|
2019-06-22 22:42:29 +01:00
|
|
|
|
2019-11-21 10:48:43 +01:00
|
|
|
importlib-metadata = addSetupTools;
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
inflect = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.setuptools_scm
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
2019-06-17 16:27:16 +01:00
|
|
|
|
2019-06-24 12:31:59 +01:00
|
|
|
jsonschema = addSetupTools;
|
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
keyring = addSetupTools;
|
2019-06-24 16:23:02 +01:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
lap = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
|
|
self.numpy
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
llvmlite = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
|
|
|
|
|
|
|
|
# Disable static linking
|
|
|
|
# https://github.com/numba/llvmlite/issues/93
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace ffi/Makefile.linux --replace "-static-libstdc++" ""
|
|
|
|
|
|
|
|
substituteInPlace llvmlite/tests/test_binding.py --replace "test_linux" "nope"
|
|
|
|
'';
|
|
|
|
|
|
|
|
# Set directory containing llvm-config binary
|
|
|
|
preConfigure = ''
|
|
|
|
export LLVM_CONFIG=${pkgs.llvm}/bin/llvm-config
|
|
|
|
'';
|
|
|
|
|
|
|
|
__impureHostDeps = pkgs.stdenv.lib.optionals pkgs.stdenv.isDarwin [ "/usr/lib/libm.dylib" ];
|
|
|
|
|
2019-12-10 10:21:22 +01:00
|
|
|
passthru = old.passthru // { llvm = pkgs.llvm; };
|
2019-12-11 13:31:22 +01:00
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
lockfile = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [ self.pbr ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
lxml = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = with pkgs; old.nativeBuildInputs ++ [ pkgconfig libxml2.dev libxslt.dev ];
|
|
|
|
buildInputs = with pkgs; old.buildInputs ++ [ libxml2 libxslt ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
markupsafe = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
src = old.src.override { pname = builtins.replaceStrings [ "markupsafe" ] [ "MarkupSafe" ] old.pname; };
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
matplotlib = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${pkgs.libcxx}/include/c++/v1";
|
|
|
|
|
|
|
|
XDG_RUNTIME_DIR = "/tmp";
|
|
|
|
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [
|
|
|
|
pkgs.pkgconfig
|
|
|
|
];
|
|
|
|
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
|
|
pkgs.libpng
|
|
|
|
pkgs.freetype
|
|
|
|
];
|
|
|
|
|
|
|
|
inherit (super.matplotlib) patches;
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
mccabe = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.py --replace "setup_requires=['pytest-runner']," "setup_requires=[]," || true
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
netcdf4 = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.cython
|
|
|
|
];
|
|
|
|
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
|
|
pkgs.zlib
|
|
|
|
pkgs.netcdf
|
|
|
|
pkgs.hdf5
|
|
|
|
pkgs.curl
|
|
|
|
pkgs.libjpeg
|
|
|
|
];
|
|
|
|
|
|
|
|
# Variables used to configure the build process
|
|
|
|
USE_NCCONFIG = "0";
|
|
|
|
HDF5_DIR = lib.getDev pkgs.hdf5;
|
|
|
|
NETCDF4_DIR = pkgs.netcdf;
|
|
|
|
CURL_DIR = pkgs.curl.dev;
|
|
|
|
JPEG_DIR = pkgs.libjpeg.dev;
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
numpy = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: let
|
|
|
|
blas = pkgs.openblasCompat;
|
|
|
|
blasImplementation = lib.nameFromURL blas.name "-";
|
|
|
|
cfg = pkgs.writeTextFile {
|
|
|
|
name = "site.cfg";
|
|
|
|
text = (
|
|
|
|
lib.generators.toINI {} {
|
|
|
|
${blasImplementation} = {
|
|
|
|
include_dirs = "${blas}/include";
|
|
|
|
library_dirs = "${blas}/lib";
|
|
|
|
} // lib.optionalAttrs (blasImplementation == "mkl") {
|
|
|
|
mkl_libs = "mkl_rt";
|
|
|
|
lapack_libs = "";
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
|
|
|
|
buildInputs = old.buildInputs ++ [ blas ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
preBuild = ''
|
|
|
|
ln -s ${cfg} site.cfg
|
|
|
|
'';
|
2019-12-10 10:21:22 +01:00
|
|
|
passthru = old.passthru // {
|
2019-12-11 13:31:22 +01:00
|
|
|
blas = blas;
|
|
|
|
inherit blasImplementation cfg;
|
2019-11-29 11:24:53 +01:00
|
|
|
};
|
2019-12-11 13:31:22 +01:00
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
pillow = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = [ pkgs.pkgconfig ] ++ old.nativeBuildInputs;
|
|
|
|
buildInputs = with pkgs; [ freetype libjpeg zlib libtiff libwebp tcl lcms2 ] ++ old.buildInputs;
|
|
|
|
}
|
|
|
|
);
|
2019-11-29 11:24:53 +01:00
|
|
|
|
|
|
|
pluggy = addSetupTools;
|
2019-11-28 02:24:33 +00:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
psycopg2 = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
|
|
|
|
}
|
|
|
|
);
|
2019-11-28 02:24:33 +00:00
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
psycopg2-binary = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
|
|
|
|
}
|
|
|
|
);
|
2019-11-29 11:24:53 +01:00
|
|
|
|
|
|
|
py = addSetupTools;
|
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
pyarrow = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.cython
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
pycairo = self: super: drv: (
|
|
|
|
drv.overridePythonAttrs (
|
|
|
|
_: {
|
|
|
|
format = "other";
|
|
|
|
}
|
|
|
|
)
|
|
|
|
).overrideAttrs (
|
|
|
|
old: {
|
|
|
|
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [
|
|
|
|
pkgs.meson
|
|
|
|
pkgs.ninja
|
|
|
|
pkgs.pkgconfig
|
|
|
|
];
|
|
|
|
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
|
|
pkgs.cairo
|
|
|
|
pkgs.xlibsWrapper
|
|
|
|
];
|
|
|
|
|
|
|
|
mesonFlags = [ "-Dpython=${if self.isPy3k then "python3" else "python"}" ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
pycocotools = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.cython
|
|
|
|
self.numpy
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
pygobject = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.pkgconfig ];
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.glib pkgs.gobject-introspection ];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
pyopenssl = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.openssl ];
|
|
|
|
}
|
|
|
|
);
|
2019-11-29 11:24:53 +01:00
|
|
|
|
|
|
|
pytest = addSetupTools;
|
|
|
|
|
|
|
|
pytest-mock = addSetupTools;
|
|
|
|
|
|
|
|
python-dateutil = addSetupTools;
|
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
python-prctl = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [
|
|
|
|
self.setuptools_scm
|
|
|
|
pkgs.libcap
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
scaleapi = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace setup.py --replace "install_requires = ['requests>=2.4.2', 'enum34']" "install_requires = ['requests>=2.4.2']" || true
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
scipy = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.gfortran ];
|
|
|
|
setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
buildInputs = old.buildInputs ++ [ self.numpy.blas ];
|
|
|
|
preConfigure = ''
|
|
|
|
sed -i '0,/from numpy.distutils.core/s//import setuptools;from numpy.distutils.core/' setup.py
|
|
|
|
export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
|
|
|
|
'';
|
|
|
|
preBuild = ''
|
|
|
|
ln -s ${self.numpy.cfg} site.cfg
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
shapely = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
buildInputs = old.buildInputs ++ [ pkgs.geos self.cython ];
|
|
|
|
inherit (super.shapely) patches GEOS_LIBRARY_PATH;
|
|
|
|
}
|
|
|
|
);
|
2019-11-28 16:21:27 +01:00
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
six = addSetupTools;
|
|
|
|
|
2019-12-11 13:31:22 +01:00
|
|
|
urwidtrees = self: super: drv: drv.overrideAttrs (
|
|
|
|
old: {
|
|
|
|
propagatedBuildInputs = old.propagatedBuildInputs ++ [
|
|
|
|
self.urwid
|
|
|
|
];
|
|
|
|
}
|
|
|
|
);
|
2019-11-28 16:21:27 +01:00
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
# Break setuptools infinite recursion because of non-bootstrapped pip
|
2019-12-11 13:31:22 +01:00
|
|
|
wheel = self: super: drv: super.wheel.overridePythonAttrs (
|
|
|
|
_: {
|
|
|
|
inherit (drv) pname name version src;
|
|
|
|
}
|
|
|
|
);
|
2019-11-28 16:21:27 +01:00
|
|
|
|
2019-11-29 11:24:53 +01:00
|
|
|
zipp = addSetupTools;
|
2019-06-17 16:27:16 +01:00
|
|
|
}
|