Merge master into staging-next

This commit is contained in:
Frederik Rietdijk
2019-10-24 08:27:04 +02:00
66 changed files with 496 additions and 300 deletions

View File

@@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "Logbook";
version = "1.5.2";
version = "1.5.3";
src = fetchPypi {
inherit pname version;
sha256 = "0mvsig6sk4dywpw5naah1npf6h621qzhg0sd427j5znr06a2ksqs";
sha256 = "1s1gyfw621vid7qqvhddq6c3z2895ci4lq3g0r1swvpml2nm9x36";
};
checkInputs = [ pytest ] ++ lib.optionals (!isPy3k) [ mock ];

View File

@@ -5,11 +5,11 @@
buildPythonPackage rec {
pname = "colored";
version = "1.3.93";
version = "1.4.0";
src = fetchPypi {
inherit pname version;
sha256 = "0xbhq9nd9xz3b6w0c4q33jfgnv8jid023v2fyhi7hsrz1scym5l2";
sha256 = "0wlsg7z406q31r5fpwkqfpyfpigazbmq9qm856wfbn861k2773zf";
};
# No proper test suite

View File

@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "cupy";
version = "6.3.0";
version = "6.4.0";
src = fetchPypi {
inherit pname version;
sha256 = "1q38riv63110ch170c1pyhq5jfbg8y0qmcdsqn8vb9sb79amvg93";
sha256 = "126waa1jiynq00glr1hq86sgwwmakq009crfsn8qqgrj4c4clw6a";
};
checkInputs = [

View File

@@ -7,13 +7,13 @@
buildPythonPackage rec {
pname = "django-extensions";
version = "2.1.9";
version = "2.2.3";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
sha256 = "08vggm6wrn5cbf8brfprif0rjrkqz06wddsw0ir1skkk8q2sp1b2";
sha256 = "19bln9z25dmz1waqcxivlwg20dlm033c7f4z3h3mkhzkbk928y71";
};
postPatch = ''

View File

@@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "Flask-JWT-Extended";
version = "3.23.0";
version = "3.24.0";
src = fetchPypi {
inherit pname version;
sha256 = "05nf94dp80i68gs61pf67qj1y6i56jgdxmibqmns5wz6z33fi7wj";
sha256 = "1znqjp780nrp94hjcrcx0945izzl3zsrqkmdac44d2fmlnbdp2by";
};
propagatedBuildInputs = [ dateutil flask pyjwt werkzeug ];

View File

@@ -15,10 +15,10 @@
buildPythonPackage rec {
pname = "imageio";
version = "2.5.0";
version = "2.6.1";
src = fetchPypi {
sha256 = "1bdcrr5190jvk0msw2lswj4pbdhrcggjpj8m6q2a2mrxzjnmmrj2";
sha256 = "1bk7pijmrspdfj9nnlbnw1yiww9w1kyjvlpzy9s5hj6zp4qv4kpl";
inherit pname version;
};

View File

@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "Keras";
version = "2.2.5";
version = "2.3.0";
src = fetchPypi {
inherit pname version;
sha256 = "0fb448b95643a708d25d2394183a2f3a84eefb55fb64917152a46826990113ea";
sha256 = "0m5kj6jd1jkxv3npr2s6bczp5m592iryl9ysl5gbil0wszqyrmm0";
};
checkInputs = [

View File

@@ -5,13 +5,13 @@
buildPythonPackage rec {
pname = "lark-parser";
version = "0.7.5";
version = "0.7.7";
src = fetchFromGitHub {
owner = "lark-parser";
repo = "lark";
rev = version;
sha256 = "1k9s62ddv6pghzp1yak2ld6sk92zm4sz1xqp8zkzyh3xqdsmfa0f";
sha256 = "1b0dvvqqasir8dfpqj4jch7wxxk43csbv0wa80fiqsdlymxxj2dj";
};
# tests of Nearley support require js2py

View File

@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "peewee";
version = "3.11.1";
version = "3.11.2";
# pypi release does not provide tests
src = fetchFromGitHub {
owner = "coleifer";
repo = pname;
rev = version;
sha256 = "0q84r9x99h9a3kqs3i12bgk8rz5my8vpjngg8yaqd2kzsb6gynp8";
sha256 = "097cafqgk46bf0innwm7xnmsfs6z37hv3alyvrfz6d0iy4scshm5";
};

View File

@@ -6,11 +6,11 @@
buildPythonPackage rec {
pname = "pex";
version = "1.6.11";
version = "1.6.12";
src = fetchPypi {
inherit pname version;
sha256 = "034170w0qh20qkfaha2rpnccm31f7snhb4r9cd079v4v2x2swybk";
sha256 = "13q83yba01hzm9mlk5y1klqirxdmsm2yx1yll5zdik9fd8hg0rf6";
};
nativeBuildInputs = [ setuptools ];

View File

@@ -3,13 +3,13 @@
buildPythonPackage rec {
pname = "PyGithub";
version = "1.43.8";
version = "1.44";
src = fetchFromGitHub {
owner = "PyGithub";
repo = "PyGithub";
rev = "v${version}";
sha256 = "1625v558xga5mwhl9jqmibywy5qafmg1vqrirqz6zfq1la1d22mw";
sha256 = "067iyarllgdp40bzjxskzrixvmz350yj1qf8wvbddka504bcbh9r";
};
propagatedBuildInputs = [ python-jose pyjwt requests deprecated httpretty ];

View File

@@ -1,7 +1,7 @@
{ buildPythonPackage, stdenv, lxml, click, fetchFromGitHub, pytest, isPy3k }:
buildPythonPackage rec {
version = "0.3.15";
version = "0.3.21";
pname = "pyaxmlparser";
# the PyPI tarball doesn't ship tests.
@@ -9,7 +9,7 @@ buildPythonPackage rec {
owner = "appknox";
repo = pname;
rev = "v${version}";
sha256 = "0p4x21rg8h7alrg2zk6rbgc3fj77fiyky4zzvziz2bp5jpx1pvzp";
sha256 = "1bphd2vl9akk78yqvvxcz36wmr47hp3nh6xyrdc8w1avy1aby1ij";
};
disabled = !isPy3k;

View File

@@ -1,18 +1,101 @@
{ stdenv, fetchurl, buildPythonPackage, pythonOlder,
cudaSupport ? false, cudatoolkit ? null, cudnn ? null,
fetchFromGitHub, lib, numpy, pyyaml, cffi, typing, cmake, hypothesis, numactl,
{ stdenv, fetchurl, fetchgit, buildPythonPackage, python, pythonOlder,
cudaSupport ? false, cudatoolkit ? null, cudnn ? null, nccl ? null, magma ? null,
mklSupport ? false, mkl ? null,
openMPISupport ? false, openmpi ? null,
buildNamedTensor ? false,
buildBinaries ? false,
cudaArchList ? null,
fetchFromGitHub, lib, numpy, pyyaml, cffi, click, typing, cmake, hypothesis, numactl,
linkFarm, symlinkJoin,
# ninja (https://ninja-build.org) must be available to run C++ extensions tests,
ninja,
# dependencies for torch.utils.tensorboard
tensorboardSupport ? true, pillow, six, future, tensorflow-tensorboard,
utillinux, which, isPy3k }:
assert cudnn == null || cudatoolkit != null;
assert !openMPISupport || openmpi != null;
assert !tensorboardSupport || tensorflow-tensorboard != null;
# assert that everything needed for cuda is present and that the correct cuda versions are used
assert !cudaSupport || cudatoolkit != null;
assert cudnn == null || cudatoolkit != null;
assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
in majorIs == "9" || majorIs == "10");
let
hasDependency = dep: pkg: lib.lists.any (inp: inp == dep) pkg.buildInputs;
matchesCudatoolkit = hasDependency cudatoolkit;
matchesMkl = hasDependency mkl;
in
# confirm that cudatoolkits are sync'd across dependencies
assert !(openMPISupport && cudaSupport) || matchesCudatoolkit openmpi;
assert !cudaSupport || matchesCudatoolkit magma;
# confirm that mkl is sync'd across dependencies
assert !mklSupport || mkl != null;
assert !(mklSupport && cudaSupport) || matchesMkl magma;
assert !mklSupport || (numpy.blasImplementation == "mkl" && numpy.blas == mkl);
let
cudatoolkit_joined = symlinkJoin {
name = "${cudatoolkit.name}-unsplit";
paths = [ cudatoolkit.out cudatoolkit.lib ];
# nccl is here purely for semantic grouping it could be moved to nativeBuildInputs
paths = [ cudatoolkit.out cudatoolkit.lib nccl.dev nccl.out ];
};
# Give an explicit list of supported architectures for the build, See:
# - pytorch bug report: https://github.com/pytorch/pytorch/issues/23573
# - pytorch-1.2.0 build on nixpks: https://github.com/NixOS/nixpkgs/pull/65041
#
# This list was selected by omitting the TORCH_CUDA_ARCH_LIST parameter,
# observing the fallback option (which selected all architectures known
# from cudatoolkit_10_0, pytorch-1.2, and python-3.6), and doing a binary
# searching to find offending architectures.
#
# NOTE: Because of sandboxing, this derivation can't auto-detect the hardware's
# cuda architecture, so there is also now a problem around new architectures
# not being supported until explicitly added to this derivation.
#
# FIXME: CMake is throwing the following warning on python-1.2:
#
# ```
# CMake Warning at cmake/public/utils.cmake:172 (message):
# In the future we will require one to explicitly pass TORCH_CUDA_ARCH_LIST
# to cmake instead of implicitly setting it as an env variable. This will
# become a FATAL_ERROR in future version of pytorch.
# ```
# If this is causing problems for your build, this derivation may have to strip
# away the standard `buildPythonPackage` and use the
# [*Adjust Build Options*](https://github.com/pytorch/pytorch/tree/v1.2.0#adjust-build-options-optional)
# instructions. This will also add more flexibility around configurations
# (allowing FBGEMM to be built in pytorch-1.1), and may future proof this
# derivation.
brokenArchs = [ "3.0" ]; # this variable is only used as documentation.
cuda9ArchList = [
"3.5"
"5.0"
"5.2"
"6.0"
"6.1"
"7.0"
"7.0+PTX" # I am getting a "undefined architecture compute_75" on cuda 9
# which leads me to believe this is the final cuda-9-compatible architecture.
];
cuda10ArchList = cuda9ArchList ++ [
"7.5"
"7.5+PTX" # < most recent architecture as of cudatoolkit_10_0 and pytorch-1.2.0
];
final_cudaArchList =
if !cudaSupport || cudaArchList != null
then cudaArchList
else
if lib.versions.major cudatoolkit.version == "9"
then cuda9ArchList
else cuda10ArchList; # the assert above removes any ambiguity here.
# Normally libcuda.so.1 is provided at runtime by nvidia-x11 via
# LD_LIBRARY_PATH=/run/opengl-driver/lib. We only use the stub
# libcuda.so from cudatoolkit for running tests, so that we dont have
@@ -25,28 +108,27 @@ let
"LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} ";
in buildPythonPackage rec {
version = "1.0.0";
version = "1.2.0";
pname = "pytorch";
disabled = !isPy3k;
outputs = [
"out" # output standard python package
"dev" # output libtorch only
];
src = fetchFromGitHub {
owner = "pytorch";
repo = "pytorch";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "076cpbig4sywn9vv674c0xdg832sdrd5pk1d0725pjkm436kpvlm";
sha256 = "1biyq2p48chakf2xw7hazzqmr5ps1nx475ql8vkmxjg5zaa071cz";
};
patches =
[ # Skips two tests that are only meant to run on multi GPUs
(fetchurl {
url = "https://github.com/pytorch/pytorch/commit/bfa666eb0deebac21b03486e26642fd70d66e478.patch";
sha256 = "1fgblcj02gjc0y62svwc5gnml879q3x2z7m69c9gax79dpr37s9i";
})
];
dontUseCmakeConfigure = true;
preConfigure = lib.optionalString cudaSupport ''
export TORCH_CUDA_ARCH_LIST="${lib.strings.concatStringsSep ";" final_cudaArchList}"
export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++
'' + lib.optionalString (cudaSupport && cudnn != null) ''
export CUDNN_INCLUDE_DIR=${cudnn}/include
@@ -61,7 +143,6 @@ in buildPythonPackage rec {
RP_NEW=$(join_by : ''${RP[@]:2})
patchelf --set-rpath \$ORIGIN:''${RP_NEW} "$1"
}
for f in $(find ''${out} -name 'libcaffe2*.so')
do
strip2 $f
@@ -74,38 +155,84 @@ in buildPythonPackage rec {
PYTORCH_BUILD_VERSION = version;
PYTORCH_BUILD_NUMBER = 0;
BUILD_NAMEDTENSOR = buildNamedTensor; # experimental feature
USE_SYSTEM_NCCL=true; # don't build pytorch's third_party NCCL
# Suppress a weird warning in mkl-dnn, part of ideep in pytorch
# (upstream seems to have fixed this in the wrong place?)
# https://github.com/intel/mkl-dnn/commit/8134d346cdb7fe1695a2aa55771071d455fae0bc
NIX_CFLAGS_COMPILE = lib.optionals (numpy.blasImplementation == "mkl") [ "-Wno-error=array-bounds" ];
# https://github.com/pytorch/pytorch/issues/22346
#
# Also of interest: pytorch ignores CXXFLAGS uses CFLAGS for both C and C++:
# https://github.com/pytorch/pytorch/blob/v1.2.0/setup.py#L17
NIX_CFLAGS_COMPILE = lib.optionals (numpy.blas == mkl) [ "-Wno-error=array-bounds" ];
nativeBuildInputs = [
cmake
utillinux
which
cmake
utillinux
which
ninja
] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
buildInputs = [
numpy.blas
] ++ lib.optionals cudaSupport [ cudnn ]
numpy.blas
] ++ lib.optionals cudaSupport [ cudnn magma nccl ]
++ lib.optionals stdenv.isLinux [ numactl ];
propagatedBuildInputs = [
cffi
click
numpy
pyyaml
] ++ lib.optional (pythonOlder "3.5") typing;
] ++ lib.optionals openMPISupport [ openmpi ]
++ lib.optional (pythonOlder "3.5") typing
++ lib.optionals tensorboardSupport [pillow six future tensorflow-tensorboard];
checkInputs = [ hypothesis ];
checkPhase = ''
${cudaStubEnv}python test/run_test.py --exclude dataloader sparse torch utils thd_distributed distributed cpp_extensions
checkInputs = [ hypothesis ninja ];
doCheck = false; # tests take a long time for channel release, so doCheck should be overridden only when developing
checkPhase = "${cudaStubEnv}python test/run_test.py"
+ " --exclude utils" # utils requires git, which is not allowed in the check phase
# Other tests which have been disabled in previous nix derivations of pytorch.
# --exclude dataloader sparse torch utils thd_distributed distributed cpp_extensions
;
postInstall = ''
mkdir $dev
cp -r $out/${python.sitePackages}/torch/lib $dev/lib
cp -r $out/${python.sitePackages}/torch/include $dev/include
'';
postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
for f in $(ls $dev/lib/*.dylib); do
install_name_tool -id $dev/lib/$(basename $f) $f || true
done
install_name_tool -change @rpath/libshm.dylib $dev/lib/libshm.dylib $dev/lib/libtorch_python.dylib
install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libtorch_python.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch_python.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch.dylib
install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_observers.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_observers.dylib
install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_detectron_ops.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_detectron_ops.dylib
install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libshm.dylib
install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libshm.dylib
'';
meta = {
description = "Open source, prototype-to-production deep learning platform";
homepage = https://pytorch.org/;
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ teh thoughtpolice ];
platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
maintainers = with lib.maintainers; [ teh thoughtpolice stites tscholak ]; # tscholak esp. for darwin-related builds
};
}

View File

@@ -6,14 +6,14 @@
buildPythonPackage rec {
pname = "rasterio";
version = "1.0.28";
version = "1.1.0";
# Pypi doesn't ship the tests, so we fetch directly from GitHub
src = fetchFromGitHub {
owner = "mapbox";
repo = "rasterio";
rev = version;
sha256 = "05rn2ijjv64a765gkpwcq3bb933gzp35zj4l9sk0agh19462myjx";
sha256 = "0xa9jazsgsf7is4dbf2bbnfga8q8nmqy0qq4i7jj3riiccwlm6xw";
};
checkInputs = [ boto3 pytest pytestcov packaging hypothesis ] ++ lib.optional (!isPy3k) mock;

View File

@@ -10,11 +10,11 @@
buildPythonPackage rec {
pname = "shodan";
version = "1.17.0";
version = "1.19.0";
src = fetchPypi {
inherit pname version;
sha256 = "1sh7a2dsal3kzcl4s9xbpl7hxhm9k55s5hiqdqqnafhvhnh0vmbz";
sha256 = "1i4zrzamvgy3g117a2x66gyi7pzh27slc2w9pqysc0ldfcibi2wx";
};
propagatedBuildInputs = [

View File

@@ -7,11 +7,11 @@
buildPythonPackage rec {
pname = "soco";
version = "0.17";
version = "0.18";
src = fetchPypi {
inherit pname version;
sha256 = "15zw6i5z5p8vsa3lp20rjizhv4lzz935r73im0xm6zsl71bsgvj8";
sha256 = "0bf55mqnz3l3ii26dvx33d35fv7jn7p5kmfwnr0xbpj38sxvhfr4";
};
postPatch = ''

View File

@@ -10,11 +10,11 @@
buildPythonPackage rec {
pname = "ssdeep";
version = "3.3";
version = "3.4";
src = fetchPypi {
inherit pname version;
sha256 = "255de1f034652b3ed21920221017e70e570b1644f9436fea120ae416175f4ef5";
sha256 = "0px8k4fjbkjb717bg2v7rjhm4iclrxzq7sh0hfqs55f4ddqi0m8v";
};
buildInputs = [ pkgs.ssdeep pytestrunner ];

View File

@@ -3,11 +3,11 @@
buildPythonPackage rec {
pname = "yamllint";
version = "1.17.0";
version = "1.18.0";
src = fetchPypi {
inherit pname version;
sha256 = "04xarlbh59f9ah53jxrcpqpzladyfxaw6cb2g8clw9aid0qzi9kh";
sha256 = "076hqf189ww95n9vcbkkn8an42nx79cy8pf2qnl251yjncsvnbfl";
};
checkInputs = [ nose ];