summary refs log tree commit diff
path: root/pkgs/applications/science
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2019-08-25 18:55:46 +0200
committerRobin Gloster <mail@glob.in>2019-08-25 18:55:46 +0200
commit616b8343c4c384f651f51d8c9b8e96239e1113d0 (patch)
treec6894ea5e950e373bcf8c8e8948fb2a7d4716565 /pkgs/applications/science
parent45d6ccea3357c65135b985f2eebf88020ca6461e (diff)
parent48191315aa2e34643203dbfc5ae8bd84c1cafe54 (diff)
downloadnixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar.gz
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar.bz2
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar.lz
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar.xz
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.tar.zst
nixpkgs-616b8343c4c384f651f51d8c9b8e96239e1113d0.zip
Merge remote-tracking branch 'upstream/master' into gcc-8
Diffstat (limited to 'pkgs/applications/science')
-rw-r--r--pkgs/applications/science/astronomy/gildas/default.nix6
-rw-r--r--pkgs/applications/science/astronomy/openspace/default.nix29
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix15
-rw-r--r--pkgs/applications/science/biology/bedtools/default.nix8
-rw-r--r--pkgs/applications/science/biology/dcm2niix/default.nix7
-rw-r--r--pkgs/applications/science/biology/est-sfs/default.nix28
-rw-r--r--pkgs/applications/science/biology/hisat2/default.nix5
-rw-r--r--pkgs/applications/science/biology/itsx/default.nix2
-rw-r--r--pkgs/applications/science/biology/mosdepth/default.nix12
-rw-r--r--pkgs/applications/science/biology/niftyreg/default.nix2
-rw-r--r--pkgs/applications/science/biology/niftyseg/default.nix2
-rw-r--r--pkgs/applications/science/biology/octopus/default.nix30
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--pkgs/applications/science/biology/stacks/default.nix4
-rw-r--r--pkgs/applications/science/biology/strelka/default.nix7
-rw-r--r--pkgs/applications/science/biology/sumatools/default.nix3
-rw-r--r--pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/molden/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/octopus/default.nix27
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/default.nix2
-rw-r--r--pkgs/applications/science/electronics/bitscope/common.nix4
-rw-r--r--pkgs/applications/science/electronics/dsview/default.nix13
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle.nix8
-rw-r--r--pkgs/applications/science/electronics/pulseview/default.nix18
-rw-r--r--pkgs/applications/science/electronics/verilator/default.nix4
-rw-r--r--pkgs/applications/science/electronics/verilog/default.nix35
-rw-r--r--pkgs/applications/science/logic/clprover/clprover.nix2
-rw-r--r--pkgs/applications/science/logic/coq/default.nix2
-rw-r--r--pkgs/applications/science/logic/cryptominisat/default.nix2
-rw-r--r--pkgs/applications/science/logic/cryptoverif/default.nix4
-rw-r--r--pkgs/applications/science/logic/fast-downward/default.nix55
-rw-r--r--pkgs/applications/science/logic/gappa/default.nix6
-rw-r--r--pkgs/applications/science/logic/prover9/default.nix2
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix15
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix15
-rw-r--r--pkgs/applications/science/logic/vampire/default.nix11
-rw-r--r--pkgs/applications/science/logic/verifast/default.nix4
-rw-r--r--pkgs/applications/science/logic/why3/configure.patch11
-rw-r--r--pkgs/applications/science/logic/why3/default.nix33
-rw-r--r--pkgs/applications/science/logic/why3/with-provers.nix30
-rw-r--r--pkgs/applications/science/machine-learning/fasttext/default.nix6
-rw-r--r--pkgs/applications/science/machine-learning/sc2-headless/maps.nix2
-rw-r--r--pkgs/applications/science/math/R/default.nix8
-rw-r--r--pkgs/applications/science/math/caffe/default.nix22
-rw-r--r--pkgs/applications/science/math/caffe/python.patch2
-rw-r--r--pkgs/applications/science/math/calc/default.nix3
-rw-r--r--pkgs/applications/science/math/calculix/calculix.patch31
-rw-r--r--pkgs/applications/science/math/calculix/default.nix39
-rw-r--r--pkgs/applications/science/math/cplex/default.nix5
-rw-r--r--pkgs/applications/science/math/gap/default.nix5
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix16
-rw-r--r--pkgs/applications/science/math/gurobi/default.nix10
-rw-r--r--pkgs/applications/science/math/mathematica/11.nix150
-rw-r--r--pkgs/applications/science/math/mathematica/default.nix22
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix31
-rw-r--r--pkgs/applications/science/math/pari/gp2c.nix4
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/default.nix6
-rw-r--r--pkgs/applications/science/math/sage/dist-tests.nix17
-rw-r--r--pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch19
-rw-r--r--pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch26
-rw-r--r--pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch57
-rw-r--r--pkgs/applications/science/math/sage/patches/sympow-cache.patch21
-rw-r--r--pkgs/applications/science/math/sage/patches/threejs-offline.patch64
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix74
-rw-r--r--pkgs/applications/science/math/sage/sage-tests.nix6
-rw-r--r--pkgs/applications/science/math/sage/sage-with-env.nix7
-rw-r--r--pkgs/applications/science/math/sage/sage.nix4
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix6
-rw-r--r--pkgs/applications/science/math/sage/sagenb.nix1
-rw-r--r--pkgs/applications/science/math/scilab-bin/default.nix6
-rw-r--r--pkgs/applications/science/misc/motu-client/default.nix23
-rw-r--r--pkgs/applications/science/misc/openmvs/default.nix8
-rw-r--r--pkgs/applications/science/misc/root/5.nix4
-rw-r--r--pkgs/applications/science/misc/root/default.nix4
-rw-r--r--pkgs/applications/science/misc/simgrid/default.nix6
-rw-r--r--pkgs/applications/science/misc/tulip/default.nix4
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix6
-rw-r--r--pkgs/applications/science/physics/sacrifice/default.nix6
-rw-r--r--pkgs/applications/science/physics/sherpa/default.nix4
-rw-r--r--pkgs/applications/science/robotics/apmplanner2/default.nix26
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix2
-rw-r--r--pkgs/applications/science/robotics/sumorobot-manager/default.nix43
83 files changed, 933 insertions, 352 deletions
diff --git a/pkgs/applications/science/astronomy/gildas/default.nix b/pkgs/applications/science/astronomy/gildas/default.nix
index e5a9fca3337..9f65c63f7a6 100644
--- a/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/pkgs/applications/science/astronomy/gildas/default.nix
@@ -7,8 +7,8 @@ let
 in
 
 stdenv.mkDerivation rec {
-  srcVersion = "jun19b";
-  version = "20190601_b";
+  srcVersion = "jul19a";
+  version = "20190701_a";
   name = "gildas-${version}";
 
   src = fetchurl {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     # source code of the previous release to a different directory
     urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
       "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
-    sha256 = "363d191afdb1fda12ec19d6b9c3ab4189e7c3b036e78f7359d17671d846118ce";
+    sha256 = "97eaa0d0a0f53f0616462642a9bfaddb0305a8a0948e60531d8a524a13a370b6";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/astronomy/openspace/default.nix b/pkgs/applications/science/astronomy/openspace/default.nix
index ee3a71cf181..dc7c7c920a1 100644
--- a/pkgs/applications/science/astronomy/openspace/default.nix
+++ b/pkgs/applications/science/astronomy/openspace/default.nix
@@ -5,7 +5,7 @@
 stdenv.mkDerivation rec {
   version = "0.11.1";
   name    = "openspace-${version}";
-  
+
   src = fetchFromGitHub {
     owner  = "OpenSpace";
     repo   = "OpenSpace";
@@ -13,37 +13,37 @@ stdenv.mkDerivation rec {
     sha256 = "0msqixf30r0d41xmfmzkdfw6w9jkx2ph5clq8xiwrg1jc3z9q7nv";
     fetchSubmodules = true;
   };
-  
+
   buildInputs = [
     makeWrapper cmake
     curl boost gdal glew soil
     libX11 libXi libXxf86vm libXcursor libXrandr libXinerama
   ];
-      
+
   glmPlatformH = fetchurl {
     url    = "https://raw.githubusercontent.com/g-truc/glm/dd48b56e44d699a022c69155c8672caacafd9e8a/glm/simd/platform.h";
     sha256 = "0y91hlbgn5va7ijg5mz823gqkq9hqxl00lwmdwnf8q2g086rplzw";
   };
-  
+
   # See <https://github.com/g-truc/glm/issues/726>
   prePatch = ''
     cp ${glmPlatformH} ext/sgct/include/glm/simd/platform.h
     cp ${glmPlatformH} ext/ghoul/ext/glm/glm/simd/platform.h
   '';
-  
+
   patches = [
     # See <https://github.com/opensgct/sgct/issues/13>
     ./vrpn.patch
-    
+
     ./constexpr.patch
     ./config.patch
 
     # WARNING: This patch disables some slow torrents in a very dirty way.
-    ./assets.patch 
+    ./assets.patch
   ];
-  
+
   bundle = "$out/usr/share/openspace";
-  
+
   preConfigure = ''
     cmakeFlagsArray=(
       $cmakeFlagsArray
@@ -51,28 +51,28 @@ stdenv.mkDerivation rec {
       "-DCMAKE_INSTALL_PREFIX=${bundle}"
     )
   '';
-  
+
   preInstall = ''
     mkdir -p $out/bin
     mkdir -p ${bundle}
   '';
-  
+
   postInstall = ''
     cp ext/spice/libSpice.so       ${bundle}/lib
     cp ext/ghoul/ext/lua/libLua.so ${bundle}/lib
   '';
-  
+
   postFixup = ''
     for bin in ${bundle}/bin/*
     do
       rpath=$(patchelf --print-rpath $bin)
       patchelf --set-rpath $rpath:${bundle}/lib $bin
-      
+
       name=$(basename $bin)
       makeWrapper $bin $out/bin/$name --run "cd ${bundle}"
     done
   '';
-  
+
   meta = {
     description     = "Open-source astrovisualization project";
     longDescription = ''
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     homepage  = https://www.openspaceproject.com/;
     license   = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.linux;
+    broken = true; # fails to build
   };
 }
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index fb796341616..e3c66199f11 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -1,32 +1,27 @@
 { mkDerivation, lib, fetchFromGitHub
 , cmake, freetype, libpng, libGLU_combined, openssl, perl, libiconv
 , qtscript, qtserialport, qttools
-, qtmultimedia, qtlocation, makeWrapper, qtbase
+, qtmultimedia, qtlocation, qtbase, wrapQtAppsHook
 }:
 
 mkDerivation rec {
   name = "stellarium-${version}";
-  version = "0.19.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "1x9s9v9ann93nyqd8n8adwhx66xgq5vp0liyzl1h1ji6qk8jla3c";
+    sha256 = "0hf1wv2bb5j7ny2xh29mj9m4hjblhn02zylay8gl85w7xlqs7s5r";
   };
 
-  nativeBuildInputs = [ cmake perl ];
+  nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
 
   buildInputs = [
     freetype libpng libGLU_combined openssl libiconv qtscript qtserialport qttools
-    qtmultimedia qtlocation qtbase makeWrapper
+    qtmultimedia qtlocation qtbase
   ];
 
-  postInstall = ''
-    wrapProgram $out/bin/stellarium \
-      --prefix QT_PLUGIN_PATH : "${qtbase}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins"
-  '';
-
   meta = with lib; {
     description = "Free open-source planetarium";
     homepage = http://stellarium.org/;
diff --git a/pkgs/applications/science/biology/bedtools/default.nix b/pkgs/applications/science/biology/bedtools/default.nix
index 406f42e9ad7..2cdd7fda38e 100644
--- a/pkgs/applications/science/biology/bedtools/default.nix
+++ b/pkgs/applications/science/biology/bedtools/default.nix
@@ -1,17 +1,17 @@
-{stdenv, fetchFromGitHub, zlib, python}:
+{stdenv, fetchFromGitHub, zlib, python, bzip2, lzma}:
 
 stdenv.mkDerivation rec {
   name = "bedtools-${version}";
-  version = "2.27.1";
+  version = "2.28.0";
 
   src = fetchFromGitHub {
     owner = "arq5x";
     repo = "bedtools2";
     rev = "v${version}";
-    sha256 = "1pk68y052rm2m24yfmy82ms8p6kd6xcqxxgi7n0a1sbh89wllm6s";
+    sha256 = "1266bcn5hgbvysfi6nr4cqxlbxcx7vn7ng8kb0v3gz37qh2zxxw9";
   };
 
-  buildInputs = [ zlib python ];
+  buildInputs = [ zlib python bzip2 lzma ];
   cc = if stdenv.cc.isClang then "clang++" else "g++";
   buildPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cc} -j $NIX_BUILD_CORES";
   installPhase = "make prefix=$out SHELL=${stdenv.shell} CXX=${cc} install";
diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix
index 781ceb3df59..0e2b5d8b25f 100644
--- a/pkgs/applications/science/biology/dcm2niix/default.nix
+++ b/pkgs/applications/science/biology/dcm2niix/default.nix
@@ -2,21 +2,22 @@
 , fetchFromGitHub
 , cmake
 , libyamlcpp
+, git
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.20170130";
+  version = "1.0.20190410";
   name = "dcm2niix-${version}";
 
   src = fetchFromGitHub {
     owner = "rordenlab";
     repo = "dcm2niix";
     rev = "v${version}";
-    sha256 = "1f2nzd8flp1rfn725bi64z7aw3ccxyyygzarxijw6pvgl476i532";
+    sha256 = "1prwpvbi76xlpkhc4kadjhyyx0s71cs30hi6anknhfm6hdyd26ms";
   };
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake git ];
   buildInputs = [ libyamlcpp ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/science/biology/est-sfs/default.nix b/pkgs/applications/science/biology/est-sfs/default.nix
new file mode 100644
index 00000000000..dcc72523355
--- /dev/null
+++ b/pkgs/applications/science/biology/est-sfs/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, gsl }:
+
+stdenv.mkDerivation rec {
+  pname = "est-sfs";
+  version = "2.03";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/est-usfs/${pname}-release-${version}.tar.gz";
+    sha256 = "1hvamrgagz0xi89w8qafyd9mjrdpyika8zm22drddnjkp4sdj65n";
+  };
+
+  buildInputs = [ gsl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/doc/${pname}
+    cp est-sfs $out/bin
+    cp est-sfs-documentation.pdf $out/share/doc/${pname}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/projects/est-usfs;
+    description = "Estimate the unfolded site frequency spectrum and ancestral states";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/science/biology/hisat2/default.nix b/pkgs/applications/science/biology/hisat2/default.nix
index 9ccf54a8113..9d41fed0691 100644
--- a/pkgs/applications/science/biology/hisat2/default.nix
+++ b/pkgs/applications/science/biology/hisat2/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, which, python}:
+{stdenv, fetchurl, unzip, which, python, perl}:
 
 stdenv.mkDerivation rec {
   name = "hisat2-${version}";
@@ -9,7 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "10g73sdf6vqqfhhd92hliw7bbpkb8v4pp5012r5l21zws7p7d8l9";
   };
 
-  buildInputs = [ unzip  which python ];
+  nativeBuildInputs = [ unzip which ];
+  buildInputs = [ python perl ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/science/biology/itsx/default.nix b/pkgs/applications/science/biology/itsx/default.nix
index 804e71c1bfa..0c8c7313bf2 100644
--- a/pkgs/applications/science/biology/itsx/default.nix
+++ b/pkgs/applications/science/biology/itsx/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Improved software detection and extraction of ITS1 and ITS2 from ribosomal ITS sequences of fungi and other eukaryotes for use in environmental sequencing";
-    homepage = http://microbiology.se/software/itsx/;
+    homepage = https://microbiology.se/software/itsx/;
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/science/biology/mosdepth/default.nix b/pkgs/applications/science/biology/mosdepth/default.nix
index 3cd83a5cdd2..1bdb31616e4 100644
--- a/pkgs/applications/science/biology/mosdepth/default.nix
+++ b/pkgs/applications/science/biology/mosdepth/default.nix
@@ -4,26 +4,26 @@ let
   hts-nim = fetchFromGitHub {
     owner = "brentp";
     repo = "hts-nim";
-    rev = "v0.2.5";
-    sha256 = "1fma99rjqxgg9dihkd10hm1jjp5amsk5wsxnvq1lk4mcsjix5xqb";
+    rev = "v0.2.14";
+    sha256 = "0d1z4b6mrppmz3hgkxd4wcy79w68icvhi7q7n3m2k17n8f3xbdx3";
   };
 
   docopt = fetchFromGitHub {
     owner = "docopt";
     repo = "docopt.nim";
-    rev = "v0.6.5";
-    sha256 = "0yx79m4jkdcazwlky55nwf39zj5kdhymrrdrjq29mahiwx83x5zr";
+    rev = "v0.6.7";
+    sha256 = "1ga7ckg21fzwwvh26jp2phn2h3pvkn8g8sm13dxif33rp471bv37";
   };
 
 in stdenv.mkDerivation rec {
   name = "mosdepth-${version}";
-  version = "0.2.3";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "brentp";
     repo = "mosdepth";
     rev = "v${version}";
-    sha256 = "1b9frrwhcvay3alhn0d02jccc2qlbij1732hzq9nhwnr4kvsvxx7";
+    sha256 = "0i9pl9lsli3y84ygxanrr525gfg8fs9h481944cbzsmqmbldwvgk";
   };
 
   buildInputs = [ nim ];
diff --git a/pkgs/applications/science/biology/niftyreg/default.nix b/pkgs/applications/science/biology/niftyreg/default.nix
index 9f24046b3bf..9f1cb8db43d 100644
--- a/pkgs/applications/science/biology/niftyreg/default.nix
+++ b/pkgs/applications/science/biology/niftyreg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, zlib }:
+{ stdenv, fetchurl, cmake, zlib }:
 
 stdenv.mkDerivation rec {
   pname   = "niftyreg";
diff --git a/pkgs/applications/science/biology/niftyseg/default.nix b/pkgs/applications/science/biology/niftyseg/default.nix
index 671ee4b95c6..e7221855503 100644
--- a/pkgs/applications/science/biology/niftyseg/default.nix
+++ b/pkgs/applications/science/biology/niftyseg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, eigen, zlib }:
+{ stdenv, fetchurl, cmake, eigen, zlib }:
 
 stdenv.mkDerivation rec {
   pname   = "niftyseg";
diff --git a/pkgs/applications/science/biology/octopus/default.nix b/pkgs/applications/science/biology/octopus/default.nix
new file mode 100644
index 00000000000..0a2074a06e9
--- /dev/null
+++ b/pkgs/applications/science/biology/octopus/default.nix
@@ -0,0 +1,30 @@
+{stdenv, fetchFromGitHub, cmake, boost, gmp, htslib, zlib, lzma, pkg-config}:
+
+stdenv.mkDerivation rec {
+  pname = "octopus";
+  version = "0.6.3-beta";
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "luntergroup";
+    repo = "octopus";
+    rev = "v${version}";
+    sha256 = "042fycg8ppld7iajpzq2d8h8wr0nw43zbl57y125sfihryvr373n";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ boost gmp htslib zlib lzma ];
+
+  postInstall = ''
+    mkdir $out/bin
+    mv $out/octopus $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bayesian haplotype-based mutation calling";
+    license = licenses.mit;
+    homepage = "https://github.com/luntergroup/octopus";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 5fc222bb299..e6a5ab741d9 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "picard-tools-${version}";
-  version = "2.20.2";
+  version = "2.20.5";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "0qpc6pi3fmzv8rs5cmk3dd4clrkzbrngsl384b5g0y7471lhavbi";
+    sha256 = "107zlvp74ahpn652nfkipp80bbzf3fp812pi1ma42njk4wchah10";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/stacks/default.nix b/pkgs/applications/science/biology/stacks/default.nix
index d188ca02b18..e778c3bd52c 100644
--- a/pkgs/applications/science/biology/stacks/default.nix
+++ b/pkgs/applications/science/biology/stacks/default.nix
@@ -2,10 +2,10 @@
     
 stdenv.mkDerivation rec {
   pname = "stacks";
-  version = "2.4";
+  version = "2.41";
   src = fetchurl {
     url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
-    sha256 = "1ha1avkh6rqqvsy4k42336a2gj14y1jq19a2x8cjmiidi9l3s29h";
+    sha256 = "0q420rzjb05jfchcls3pysm4hxfgs6xj2jw246isx0il10g93gkq";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/applications/science/biology/strelka/default.nix b/pkgs/applications/science/biology/strelka/default.nix
index 1527f5d3dda..e7f5eab8bfa 100644
--- a/pkgs/applications/science/biology/strelka/default.nix
+++ b/pkgs/applications/science/biology/strelka/default.nix
@@ -2,16 +2,17 @@
 
 stdenv.mkDerivation rec {
   name = "strelka-${version}";
-  version = "2.9.5";
+  version = "2.9.10";
 
   src = fetchFromGitHub {
     owner = "Illumina";
     repo = "strelka";
     rev = "v${version}";
-    sha256 = "0x4a6nkx1jnyag9svghsdjz1fz6q7qx5pn77wphdfnk81f9yspf8";
+    sha256 = "1nykbmim1124xh22nrhrsn8xgjb3s2y7akrdapn9sl1gdych4ppf";
   };
 
-  buildInputs = [ cmake zlib python2 ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib python2 ];
 
   preConfigure = ''
     sed -i 's|/usr/bin/env python|${python2}/bin/python|' src/python/lib/makeRunScript.py
diff --git a/pkgs/applications/science/biology/sumatools/default.nix b/pkgs/applications/science/biology/sumatools/default.nix
index 6f7227d7a3e..f9042f30011 100644
--- a/pkgs/applications/science/biology/sumatools/default.nix
+++ b/pkgs/applications/science/biology/sumatools/default.nix
@@ -23,6 +23,7 @@ in rec {
       sha256 = "0hwkrxzfz7m5wdjvmrhkjg8kis378iaqr5n4nhdhkwwhn8x1jn5a";
     };
     makeFlags = "PREFIX=$(out)";
+    inherit meta;
   };
 
   # Sumatra
@@ -42,6 +43,7 @@ in rec {
       "LIBSUMAPATH=-L${sumalibs}"
       "PREFIX=$(out)"
     ];
+    inherit meta;
   };
 
   # Sumaclust
@@ -61,5 +63,6 @@ in rec {
       "LIBSUMAPATH=-L${sumalibs}"
       "PREFIX=$(out)"
     ];
+    inherit meta;
   };
 }
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index ee184943b7d..00231113d2c 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.29.42";
+  version = "14.29.49";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "0fpsicxc6aazmz45q1bgnjfwcdmxmzl9h24hpz2q1gdk9cz5aqnp";
+    sha256 = "19fyr4ldvbd5rbw19hslg9fpwc42wxmyx7r3z78k6dw653vb1ml5";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/molden/default.nix b/pkgs/applications/science/chemistry/molden/default.nix
index 274afd5fc3d..46a1d96d8d0 100644
--- a/pkgs/applications/science/chemistry/molden/default.nix
+++ b/pkgs/applications/science/chemistry/molden/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, which, gfortran, libGLU, xorg } :
 
 stdenv.mkDerivation rec {
-  version = "6.1";
+  version = "6.2";
   name = "molden-${version}";
 
   src = fetchurl {
     url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz";
-    sha256 = "0swbjnqlkwhy8lvjkbx8yklqj4zfphwdg6s3haawxi3dd65ij539";
+    sha256 = "01m5p7v5pz1fi77var50sp1bzlvdckwr6kn4wanvic2jmvgp9q5n";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index 4b580a6cf52..6dec5b3b11f 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -1,27 +1,26 @@
-{ stdenv, fetchurl, symlinkJoin, gfortran, perl, procps
-, libyaml, libxc, fftw, openblas, gsl, netcdf, arpack
+{ stdenv, fetchFromGitLab, symlinkJoin, gfortran, perl, procps
+, libyaml, libxc, fftw, openblas, gsl, netcdf, arpack, autoreconfHook
 }:
 
-let
-  version = "9.0";
-  fftwAll = symlinkJoin { name ="ftw-dev-out"; paths = [ fftw.dev fftw.out ]; };
+stdenv.mkDerivation rec {
+  pname = "octopus";
+  version = "9.1";
 
-in stdenv.mkDerivation {
-  name = "octopus-${version}";
-
-  src = fetchurl {
-    url = "http://www.tddft.org/programs/octopus/down.php?file=${version}/octopus-${version}.tar.gz";
-    sha256 = "0p1gjykjnzm4m93mgjsmnxd0n2j381jk5kn3a7gkzxanixp60ilm";
+  src = fetchFromGitLab {
+    owner = "octopus-code";
+    repo = "octopus";
+    rev = version;
+    sha256 = "1l5fqgllk7rij16q7a3la7qq6isy8a5n37vk400qcscw1v32s90h";
   };
 
-  nativeBuildInputs = [ perl procps fftw.dev ];
-  buildInputs = [ libyaml gfortran libxc openblas gsl fftw.out netcdf arpack ];
+  nativeBuildInputs = [ perl procps autoreconfHook ];
+  buildInputs = [ libyaml gfortran libxc openblas gsl fftw netcdf arpack ];
 
   configureFlags = [
     "--with-yaml-prefix=${libyaml}"
     "--with-blas=-lopenblas"
     "--with-lapack=-lopenblas"
-    "--with-fftw-prefix=${fftwAll}"
+    "--with-fftw-prefix=${fftw.dev}"
     "--with-gsl-prefix=${gsl}"
     "--with-libxc-prefix=${libxc}"
   ];
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index 70e79023c0f..bc6301e1fd4 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgs, fetchFromGitLab, cmake, gfortran, perl
+{ stdenv, fetchFromGitLab, cmake, gfortran, perl
 , openblas, hdf5-cpp, python3, texlive
 , armadillo, openmpi, globalarrays, openssh
 , makeWrapper
diff --git a/pkgs/applications/science/electronics/bitscope/common.nix b/pkgs/applications/science/electronics/bitscope/common.nix
index 64777b5a0ac..9101f1fdbe5 100644
--- a/pkgs/applications/science/electronics/bitscope/common.nix
+++ b/pkgs/applications/science/electronics/bitscope/common.nix
@@ -2,7 +2,7 @@
 , buildFHSUserEnv
 , cairo
 , dpkg
-, gdk_pixbuf
+, gdk-pixbuf
 , glib
 , gtk2-x11
 , makeWrapper
@@ -39,7 +39,7 @@ let
     libs = attrs.libs or [
       atk
       cairo
-      gdk_pixbuf
+      gdk-pixbuf
       glib
       gtk2-x11
       pango
diff --git a/pkgs/applications/science/electronics/dsview/default.nix b/pkgs/applications/science/electronics/dsview/default.nix
index be32f33a365..55e8a7b4ffe 100644
--- a/pkgs/applications/science/electronics/dsview/default.nix
+++ b/pkgs/applications/science/electronics/dsview/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, pkgconfig, cmake, autoreconfHook,
-glib, libzip, boost, fftw, qtbase,
-libusb, makeWrapper, libsigrok4dsl, libsigrokdecode4dsl
+{ stdenv, fetchFromGitHub, pkgconfig, cmake,
+libzip, boost, fftw, qtbase,
+libusb, wrapQtAppsHook, libsigrok4dsl, libsigrokdecode4dsl
 }:
 
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     ./install.patch
   ];
 
-  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
 
   buildInputs = [
    boost fftw qtbase libusb libzip libsigrokdecode4dsl libsigrok4dsl
@@ -32,11 +32,6 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  postFixup = ''
-    wrapProgram $out/bin/DSView --suffix QT_PLUGIN_PATH : \
-      ${qtbase.bin}/${qtbase.qtPluginPrefix}
-  '';
-
   meta = with stdenv.lib; {
     description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
     homepage = https://www.dreamsourcelab.com/;
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 286dbc07f3d..ba1b9e174be 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, makeDesktopItem, patchelf
+{ stdenv, fetchurl, makeDesktopItem
 , libXrender, libXrandr, libXcursor, libX11, libXext, libXi, libxcb
-, cups , libGL, glib, nss, nspr, expat, alsaLib
+ , libGL, glib, nss, nspr, expat, alsaLib
 , qtbase, qtdeclarative, qtsvg, qtlocation, qtwebchannel, qtwebengine
 }:
 
@@ -13,11 +13,11 @@ let
   in
   stdenv.mkDerivation rec {
     name = "eagle-${version}";
-    version = "9.3.2";
+    version = "9.4.2";
 
     src = fetchurl {
       url = "https://eagle-updates.circuits.io/downloads/${builtins.replaceStrings ["."] ["_"] version}/Autodesk_EAGLE_${version}_English_Linux_64bit.tar.gz";
-      sha256 = "0xrrd2d86gxrkbqvssbg8zki40hk05h48w73b0hv7wnc7wg1msir";
+      sha256 = "0lrwrvqcb91mcggmicvwjrngccsdy0f06l7a8nfgp9ckn4d9vmg2";
     };
 
     desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/science/electronics/pulseview/default.nix b/pkgs/applications/science/electronics/pulseview/default.nix
index c91443bf64a..ae9afd95518 100644
--- a/pkgs/applications/science/electronics/pulseview/default.nix
+++ b/pkgs/applications/science/electronics/pulseview/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchurl, pkgconfig, cmake, glib, boost, libsigrok
+{ mkDerivation, lib, fetchurl, pkgconfig, cmake, glib, boost, libsigrok
 , libsigrokdecode, libserialport, libzip, udev, libusb1, libftdi1, glibmm
 , pcre, librevisa, python3, qtbase, qtsvg
 }:
 
-stdenv.mkDerivation rec {
-  name = "pulseview-0.4.1";
+mkDerivation rec {
+  pname = "pulseview";
+  version = "0.4.1";
 
   src = fetchurl {
-    url = "https://sigrok.org/download/source/pulseview/${name}.tar.gz";
+    url = "https://sigrok.org/download/source/pulseview/${pname}-${version}.tar.gz";
     sha256 = "0bvgmkgz37n2bi9niskpl05hf7rsj1lj972fbrgnlz25s4ywxrwy";
   };
 
@@ -15,16 +16,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib boost libsigrok libsigrokdecode libserialport libzip udev libusb1 libftdi1 glibmm
-    pcre librevisa python3 qtbase qtsvg
+    pcre librevisa python3
+    qtbase qtsvg
   ];
 
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Qt-based LA/scope/MSO GUI for sigrok (a signal analysis software suite)";
     homepage = https://sigrok.org/;
     license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/applications/science/electronics/verilator/default.nix b/pkgs/applications/science/electronics/verilator/default.nix
index 36a504e86fa..b531563c5c1 100644
--- a/pkgs/applications/science/electronics/verilator/default.nix
+++ b/pkgs/applications/science/electronics/verilator/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "verilator-${version}";
-  version = "4.014";
+  version = "4.016";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${name}.tgz";
-    sha256 = "1srk9a03hbq8rdp4mma817aiq61c2hbrs66qv25zj3dfnfqigxgd";
+    sha256 = "18fqm6pgscy504ql27i150fdsd2j91hw5qsnpymws3pvqj2qz2ij";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/electronics/verilog/default.nix b/pkgs/applications/science/electronics/verilog/default.nix
index 83352df18e6..f850a1bf94d 100644
--- a/pkgs/applications/science/electronics/verilog/default.nix
+++ b/pkgs/applications/science/electronics/verilog/default.nix
@@ -1,31 +1,40 @@
-{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison }:
+{ stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses
+, bzip2, zlib
+}:
 
 stdenv.mkDerivation rec {
-  name = "iverilog-${version}";
-  version = "2019.03.27";
+  pname = "iverilog";
+  version = "unstable-2019-08-01";
 
   src = fetchFromGitHub {
     owner  = "steveicarus";
-    repo   = "iverilog";
-    rev    = "a9388a895eb85a9d7f2924b89f839f94e1b6d7c4";
-    sha256 = "01d48sy3pzg9x1xpczqrsii2ckrvgnrfj720wiz22jdn90nirhhr";
+    repo = pname;
+    rev    = "c383d2048c0bd15f5db083f14736400546fb6215";
+    sha256 = "1zs0gyhws0qa315magz3w5m45v97knczdgbf2zn4d7bdb7cv417c";
   };
 
   enableParallelBuilding = true;
 
-  patchPhase = ''
+  prePatch = ''
+    substituteInPlace configure.in \
+      --replace "AC_CHECK_LIB(termcap, tputs)" "AC_CHECK_LIB(termcap, tputs)"
+  '';
+
+  preConfigure = ''
     chmod +x $PWD/autoconf.sh
     $PWD/autoconf.sh
   '';
 
-  buildInputs = [ autoconf gperf flex bison ];
+  nativeBuildInputs = [ autoconf gperf flex bison ];
+
+  buildInputs = [ readline ncurses bzip2 zlib ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Icarus Verilog compiler";
     repositories.git = https://github.com/steveicarus/iverilog.git;
-    homepage = http://www.icarus.com;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = with stdenv.lib.maintainers; [winden];
-    platforms = with stdenv.lib.platforms; linux;
+    homepage = "http://iverilog.icarus.com/";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ winden ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/logic/clprover/clprover.nix b/pkgs/applications/science/logic/clprover/clprover.nix
index b6ebce68193..ae57724e4f8 100644
--- a/pkgs/applications/science/logic/clprover/clprover.nix
+++ b/pkgs/applications/science/logic/clprover/clprover.nix
@@ -1,4 +1,4 @@
-{ stdenv, pkgs, fetchzip }:
+{ stdenv, fetchzip }:
 
 stdenv.mkDerivation rec {
   name = "clprover-${version}";
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 2373ae43e76..10fe722d7e9 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -28,7 +28,7 @@ let
    "8.8.2" = "1lip3xja924dm6qblisk1bk0x8ai24s5xxqxphbdxj6djglj68fd";
    "8.9.0" = "1dkgdjc4n1m15m1p724hhi5cyxpqbjw6rxc5na6fl3v4qjjfnizh";
    "8.9.1" = "1xrq6mkhpq994bncmnijf8jwmwn961kkpl4mwwlv7j3dgnysrcv2";
-   "8.10+beta1" = "19wf39i0ap2vakglgdlqxpjd3l1h5w7dp460w8y7nc1y06b2153h";
+   "8.10+beta2" = "0jk7pwydhd17ab7ii69zvi4sgrr630q2lsxhckaj3sz55cpjlhal";
   }."${version}";
   coq-version = stdenv.lib.versions.majorMinor version;
   versionAtLeast = stdenv.lib.versionAtLeast coq-version;
diff --git a/pkgs/applications/science/logic/cryptominisat/default.nix b/pkgs/applications/science/logic/cryptominisat/default.nix
index c6b7b918eac..c9516a135c0 100644
--- a/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, python3, xxd, boost }:
+{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost }:
 
 stdenv.mkDerivation rec {
   name = "cryptominisat-${version}";
diff --git a/pkgs/applications/science/logic/cryptoverif/default.nix b/pkgs/applications/science/logic/cryptoverif/default.nix
index cd8a3747bea..09801f54e7e 100644
--- a/pkgs/applications/science/logic/cryptoverif/default.nix
+++ b/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "cryptoverif-${version}";
-  version = "2.01";
+  version = "2.01pl1";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
-    sha256 = "122pryci8rsdzv9qszw11g3izh78r2lvd1raahv2j7qmvgi76nab";
+    sha256 = "1bkmrv3wsy8mwhrxd3z3br9zgv37c2w6443rm4s9jl0aphcgnbiw";
   };
 
   buildInputs = [ ocaml ];
diff --git a/pkgs/applications/science/logic/fast-downward/default.nix b/pkgs/applications/science/logic/fast-downward/default.nix
new file mode 100644
index 00000000000..21ce6be3e6c
--- /dev/null
+++ b/pkgs/applications/science/logic/fast-downward/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }:
+
+stdenv.mkDerivation rec {
+  name = "fast-downward-2019-05-13";
+
+  src = fetchhg {
+    url = "http://hg.fast-downward.org/";
+    rev = "090f5df5d84a";
+    sha256 = "14pcjz0jfzx5269axg66iq8js7lm2w3cnqrrhhwmz833prjp945g";
+  };
+
+  nativeBuildInputs = [ cmake which ];
+  buildInputs = [ python3 python3.pkgs.wrapPython osi ];
+
+  cmakeFlags =
+    lib.optional osi.withCplex [ "-DDOWNWARD_CPLEX_ROOT=${cplex}/cplex" ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    cd src
+    # Needed because the package tries to be too smart.
+    export CC="$(which $CC)"
+    export CXX="$(which $CXX)"
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/downward $out/libexec/fast-downward/downward
+    cp -r ../translate $out/libexec/fast-downward/
+    install -Dm755 ../../fast-downward.py $out/bin/fast-downward
+    mkdir -p $out/${python3.sitePackages}
+    cp -r ../../driver $out/${python3.sitePackages}
+
+    wrapPythonProgramsIn $out/bin "$out $pythonPath"
+    wrapPythonProgramsIn $out/libexec/fast-downward/translate "$out $pythonPath"
+    # Because fast-downward calls `python translate.py` we need to return wrapped scripts back.
+    for i in $out/libexec/fast-downward/translate/.*-wrapped; do
+      name="$(basename "$i")"
+      name1="''${name#.}"
+      name2="''${name1%-wrapped}"
+      dir="$(dirname "$i")"
+      dest="$dir/$name2"
+      echo "Moving $i to $dest"
+      mv "$i" "$dest"
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A domain-independent planning system";
+    homepage = "http://www.fast-downward.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/applications/science/logic/gappa/default.nix b/pkgs/applications/science/logic/gappa/default.nix
index 71114d2f9e1..7522eb4790e 100644
--- a/pkgs/applications/science/logic/gappa/default.nix
+++ b/pkgs/applications/science/logic/gappa/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, gmp, mpfr, boost }:
 
 stdenv.mkDerivation {
-  name = "gappa-1.2";
+  name = "gappa-1.3.5";
 
   src = fetchurl {
-    url = https://gforge.inria.fr/frs/download.php/file/34787/gappa-1.2.0.tar.gz;
-    sha256 = "03hfzmaf5jm54sjpbks20q7qixpmagrfbnyyc276vgmiyslk4dkh";
+    url = https://gforge.inria.fr/frs/download.php/file/38044/gappa-1.3.5.tar.gz;
+    sha256 = "0q1wdiwqj6fsbifaayb1zkp20bz8a1my81sqjsail577jmzwi07w";
   };
 
   buildInputs = [ gmp mpfr boost.dev ];
diff --git a/pkgs/applications/science/logic/prover9/default.nix b/pkgs/applications/science/logic/prover9/default.nix
index f96532b7038..a4538e1070a 100644
--- a/pkgs/applications/science/logic/prover9/default.nix
+++ b/pkgs/applications/science/logic/prover9/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = http://www.cs.unm.edu/~mccune/mace4/;
+    homepage = https://www.cs.unm.edu/~mccune/mace4/;
     license = "GPL";
     description = "Automated theorem prover for first-order and equational logic";
     longDescription = ''
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index 8ba77159693..58674a4cacf 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, yosys, bash, python3 }:
 
 stdenv.mkDerivation rec {
-  name = "symbiyosys-${version}";
-  version = "2019.04.18";
+  pname = "symbiyosys";
+  version = "2019.08.13";
 
   src = fetchFromGitHub {
     owner  = "yosyshq";
     repo   = "symbiyosys";
-    rev    = "b1de59032ef3de35e56fa420a914c2f14d2495e4";
-    sha256 = "0zci1n062csswl5xxjh9fwq09p9clv95ckag3yywxq06hnqzx0r7";
+    rev    = "9cb542ac7a310b3dfa626349db53bed6236b670c";
+    sha256 = "0c7nz740738ybk33zzlfl00cq86n31wvra8pqqkpl4ygxnwca1d6";
   };
 
   buildInputs = [ python3 yosys ];
@@ -26,15 +26,12 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/bin/sby \
       --replace "##yosys-sys-path##" \
                 "sys.path += [p + \"/share/yosys/python3/\" for p in [\"$out\", \"${yosys}\"]]"
-    substituteInPlace $out/share/yosys/python3/sby_core.py \
-      --replace "/bin/bash" \
-                "${bash}/bin/bash"
   '';
   meta = {
     description = "Tooling for Yosys-based verification flows";
     homepage    = https://symbiyosys.readthedocs.io/;
     license     = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
-    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice emily ];
+    platforms   = stdenv.lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index f1116a27c0b..7d39aae6e3c 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -1,9 +1,9 @@
 { lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
-, jre, swt, gtk, libXtst, glib
+, gtk, libXtst, glib, zlib
 }:
 
 let
-  version = "1.5.7";
+  version = "1.6.0";
   arch = "x86_64";
 
   desktopItem = makeDesktopItem rec {
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
   name = "tla-toolbox-${version}";
   src = fetchzip {
     url = "https://tla.msr-inria.inria.fr/tlatoolbox/products/TLAToolbox-${version}-linux.gtk.${arch}.zip";
-    sha256 = "0lg9sizpw5mkcnwwvmgqigkizjyz2lf1wrg48h7mg7wcv3macy4q";
+    sha256 = "1mgx4p5qykf9q0p4cp6kcpc7fx8g5f2w1g40kdgas24hqwrgs3cm";
   };
 
   buildInputs = [ makeWrapper  ];
@@ -34,17 +34,20 @@ in stdenv.mkDerivation {
   installPhase = ''
     mkdir -p "$out/bin"
     cp -r "$src" "$out/toolbox"
-    chmod +w "$out/toolbox" "$out/toolbox/toolbox"
+    chmod -R +w "$out/toolbox"
 
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       "$out/toolbox/toolbox"
 
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      "$(find "$out/toolbox" -name java)"
+
     makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
       --run "set -x; cd $out/toolbox" \
       --add-flags "-data ~/.tla-toolbox" \
-      --prefix PATH : "${jre}/bin" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ swt gtk libXtst glib ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk libXtst glib zlib ]}"
 
     echo -e "\nCreating TLA Toolbox icons..."
     pushd "$src"
diff --git a/pkgs/applications/science/logic/vampire/default.nix b/pkgs/applications/science/logic/vampire/default.nix
index 08ab243fb96..42963fe5f9c 100644
--- a/pkgs/applications/science/logic/vampire/default.nix
+++ b/pkgs/applications/science/logic/vampire/default.nix
@@ -1,19 +1,16 @@
-{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib, git }:
+{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "4.2.2";
-  name = "vampire-${version}";
+  pname = "vampire";
+  version = "4.4";
 
   src = fetchFromGitHub {
     owner = "vprover";
     repo = "vampire";
     rev = version;
-    sha256 = "03dqjxr3cwz4h6sn9074kc6b6wjz12kpsvsi0mq2w0j5l9f8d80y";
-    #fetchSubmodules = true;
-    #leaveDotGit = true;
+    sha256 = "0v2fdfnk7l5xr5c4y54r25g1nbp4vi85zv29nbklh3r7aws3w9q1";
   };
 
-  nativeBuildInputs = [ git ];
   buildInputs = [ z3 zlib ];
 
   makeFlags = [ "vampire_z3_rel" "CC:=$(CC)" "CXX:=$(CXX)" ];
diff --git a/pkgs/applications/science/logic/verifast/default.nix b/pkgs/applications/science/logic/verifast/default.nix
index 22eb5d07f1c..360f75cc6f0 100644
--- a/pkgs/applications/science/logic/verifast/default.nix
+++ b/pkgs/applications/science/logic/verifast/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, gtk2, gdk_pixbuf, atk, pango, glib, cairo, freetype
+{ stdenv, fetchurl, gtk2, gdk-pixbuf, atk, pango, glib, cairo, freetype
 , fontconfig, libxml2, gnome2 }:
 
 let
 
   libPath = stdenv.lib.makeLibraryPath
-    [ stdenv.cc.libc stdenv.cc.cc gtk2 gdk_pixbuf atk pango glib cairo
+    [ stdenv.cc.libc stdenv.cc.cc gtk2 gdk-pixbuf atk pango glib cairo
       freetype fontconfig libxml2 gnome2.gtksourceview
     ] + ":${stdenv.cc.cc.lib}/lib64:$out/libexec";
 
diff --git a/pkgs/applications/science/logic/why3/configure.patch b/pkgs/applications/science/logic/why3/configure.patch
new file mode 100644
index 00000000000..3eebf3cf165
--- /dev/null
+++ b/pkgs/applications/science/logic/why3/configure.patch
@@ -0,0 +1,11 @@
+diff --git a/configure b/configure
+--- a/configure
++++ b/configure
+@@ -4029,7 +4029,6 @@ fi
+ 
+ if test "$USEOCAMLFIND" = yes; then
+    OCAMLFINDLIB=$(ocamlfind printconf stdlib)
+-   OCAMLFIND=$(which ocamlfind)
+    if test "$OCAMLFINDLIB" != "$OCAMLLIB"; then
+    USEOCAMLFIND=no;
+    echo "but your ocamlfind is not compatible with your ocamlc:"
diff --git a/pkgs/applications/science/logic/why3/default.nix b/pkgs/applications/science/logic/why3/default.nix
index a3b369ad54a..bd538dc6c75 100644
--- a/pkgs/applications/science/logic/why3/default.nix
+++ b/pkgs/applications/science/logic/why3/default.nix
@@ -1,4 +1,5 @@
-{ fetchurl, stdenv, ocamlPackages, coq }:
+{ callPackage, fetchurl, stdenv
+, ocamlPackages, coqPackages, rubber, hevea, emacs }:
 
 stdenv.mkDerivation rec {
   name    = "why3-${version}";
@@ -9,14 +10,34 @@ stdenv.mkDerivation rec {
     sha256 = "0xz001jhi71ja8vqrjz27v63bidrzj4qvg1yqarq6p4dmpxhk348";
   };
 
-  buildInputs = (with ocamlPackages; [
-      ocaml findlib num lablgtk ocamlgraph zarith menhir ]) ++
-    stdenv.lib.optionals (ocamlPackages.ocaml == coq.ocamlPackages.ocaml ) [
-      coq ocamlPackages.camlp5
-    ];
+  buildInputs = with ocamlPackages; [
+    ocaml findlib ocamlgraph zarith menhir
+    # Compressed Sessions
+    # Emacs compilation of why3.el
+    emacs
+    # Documentation
+    rubber hevea
+    # GUI
+    lablgtk
+    # WebIDE
+    js_of_ocaml js_of_ocaml-ppx
+    # Coq Support
+    coqPackages.coq coqPackages.flocq ocamlPackages.camlp5
+  ];
+
+  propagatedBuildInputs = with ocamlPackages; [ camlzip num ];
+
+  enableParallelBuilding = true;
+
+  # Remove unnecessary call to which
+  patches = [ ./configure.patch ];
+
+  configureFlags = [ "--enable-verbose-make" ];
 
   installTargets = [ "install" "install-lib" ];
 
+  passthru.withProvers = callPackage ./with-provers.nix {};
+
   meta = with stdenv.lib; {
     description = "A platform for deductive program verification";
     homepage    = "http://why3.lri.fr/";
diff --git a/pkgs/applications/science/logic/why3/with-provers.nix b/pkgs/applications/science/logic/why3/with-provers.nix
new file mode 100644
index 00000000000..3528dbd3a64
--- /dev/null
+++ b/pkgs/applications/science/logic/why3/with-provers.nix
@@ -0,0 +1,30 @@
+{ stdenv, makeWrapper, runCommand, symlinkJoin, why3 }:
+provers:
+let configAwkScript = runCommand "why3-conf.awk" { inherit provers; }
+    ''
+      for p in $provers; do
+        for b in $p/bin/*; do
+          BASENAME=$(basename $b)
+          echo "/^command =/{ gsub(\"$BASENAME\", \"$b\") }" >> $out
+        done
+      done
+      echo '{ print }' >> $out
+    '';
+in stdenv.mkDerivation {
+  name = "${why3.name}-with-provers";
+
+  phases = [ "buildPhase" "installPhase" ];
+
+  buildInputs = [ why3 makeWrapper ] ++ provers;
+
+  buildPhase = ''
+      mkdir -p $out/share/why3/
+      why3 config --detect-provers -C $out/share/why3/why3.conf
+      awk -i inplace -f ${configAwkScript} $out/share/why3/why3.conf
+  '';
+
+  installPhase = ''
+      mkdir -p $out/bin
+      makeWrapper ${why3}/bin/why3 $out/bin/why3 --add-flags "--extra-config $out/share/why3/why3.conf"
+  '';
+}
diff --git a/pkgs/applications/science/machine-learning/fasttext/default.nix b/pkgs/applications/science/machine-learning/fasttext/default.nix
index 0ae9a74d0d0..0de54572862 100644
--- a/pkgs/applications/science/machine-learning/fasttext/default.nix
+++ b/pkgs/applications/science/machine-learning/fasttext/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fasttext";
-  version = "0.2.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "facebookresearch";
     repo = "fastText";
-    rev = version;
-    sha256 = "1fcrz648r2s80bf7vc0l371xillz5jk3ldaiv9jb7wnsyri831b4";
+    rev = "v${version}";
+    sha256 = "1cbzz98qn8aypp4r5kwwwc9wiq5bwzv51kcsb15xjfs9lz8h3rii";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/machine-learning/sc2-headless/maps.nix b/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
index b4ff9fc1821..6eec10e958c 100644
--- a/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
+++ b/pkgs/applications/science/machine-learning/sc2-headless/maps.nix
@@ -1,4 +1,4 @@
-{ fetchzip, unzip
+{ fetchzip
 }:
 let
   fetchzip' = args: (fetchzip args).overrideAttrs (old: { UNZIP = "-j -P iagreetotheeula"; });
diff --git a/pkgs/applications/science/math/R/default.nix b/pkgs/applications/science/math/R/default.nix
index ed107765b46..a791f9a5772 100644
--- a/pkgs/applications/science/math/R/default.nix
+++ b/pkgs/applications/science/math/R/default.nix
@@ -8,11 +8,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "R-3.6.0";
+  name = "R-3.6.1";
 
   src = fetchurl {
     url = "https://cran.r-project.org/src/base/R-3/${name}.tar.gz";
-    sha256 = "02bmylmzrm9sdidirmwy233lghmd2346z725ca71ari68lzarz1n";
+    sha256 = "128kifbq0w25y8aq77w289ddax5i5w2djcfsqgffrb3i7syrxajv";
   };
 
   dontUseImakeConfigure = true;
@@ -27,10 +27,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./no-usr-local-search-paths.patch
-    (fetchpatch {
-      url = "https://github.com/wch/r-source/commit/aeb75e12863019be06fe6c762ab705bf5ed8b38c.patch";
-      sha256 = "03xv1g1yw1dbhx4paw6pn6hkawj8sny86km3748l1vnasbham82g";
-      })
   ];
 
   prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 9ee56041ed3..e8171bcb256 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -1,9 +1,9 @@
-{ config, stdenv, lib, runCommand
+{ config, stdenv, lib
 , fetchFromGitHub
 , fetchurl
 , cmake
 , boost
-, google-gflags
+, gflags
 , glog
 , hdf5-cpp
 , opencv3
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   cmakeFlags =
     # It's important that caffe is passed the major and minor version only because that's what
     # boost_python expects
-    [ (if pythonSupport then "-Dpython_version=3${python.pythonVersion}" else "-DBUILD_python=OFF")
+    [ (if pythonSupport then "-Dpython_version=${python.pythonVersion}" else "-DBUILD_python=OFF")
       "-DBLAS=open"
     ] ++ (if cudaSupport then [
            "-DCUDA_ARCH_NAME=All"
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
       ++ ["-DUSE_LEVELDB=${toggle leveldbSupport}"]
       ++ ["-DUSE_LMDB=${toggle lmdbSupport}"];
 
-  buildInputs = [ boost google-gflags glog protobuf hdf5-cpp opencv3 openblas ]
+  buildInputs = [ boost gflags glog protobuf hdf5-cpp opencv3 openblas ]
                 ++ lib.optional cudaSupport cudatoolkit
                 ++ lib.optional cudnnSupport cudnn
                 ++ lib.optional lmdbSupport lmdb
@@ -73,9 +73,17 @@ stdenv.mkDerivation rec {
                 ++ lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreVideo ]
                 ;
 
-  propagatedBuildInputs = lib.optional pythonSupport python.pkgs.protobuf;
-
-  outputs = [ "bin" "out"];
+  propagatedBuildInputs = lib.optionals pythonSupport (
+    # requirements.txt
+    let pp = python.pkgs; in ([
+      pp.numpy pp.scipy pp.scikitimage pp.h5py
+      pp.matplotlib pp.ipython pp.networkx pp.nose
+      pp.pandas pp.dateutil pp.protobuf pp.gflags
+      pp.pyyaml pp.pillow pp.six
+    ] ++ lib.optional leveldbSupport pp.leveldb)
+  );
+
+  outputs = [ "bin" "out" ];
   propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle
 
   patches = [
diff --git a/pkgs/applications/science/math/caffe/python.patch b/pkgs/applications/science/math/caffe/python.patch
index b1bed6c174b..dac5071aa08 100644
--- a/pkgs/applications/science/math/caffe/python.patch
+++ b/pkgs/applications/science/math/caffe/python.patch
@@ -64,7 +64,7 @@ index 4a5bac47..be026d43 100644
 -  if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND Boost_PYTHON_FOUND)
 +  find_package(NumPy 1.7.1)
 +  find_package(Boost 1.46 REQUIRED COMPONENTS python@major@@minor@)
-+  if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND BOOST_PYTHON@major@@minor@_FOUND)
++  if(PYTHONLIBS_FOUND AND NUMPY_FOUND AND Boost_PYTHON@major@@minor@_FOUND)
      set(HAVE_PYTHON TRUE)
      if(BUILD_python_layer)
        list(APPEND Caffe_DEFINITIONS PRIVATE -DWITH_PYTHON_LAYER)
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index 24cddfb9a1c..348c1e75086 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     substituteInPlace Makefile \
-      --replace 'all: check_include' 'all:' \
       --replace '-install_name ''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcalc''${LIB_EXT_VERSION}' \
       --replace '-install_name ''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}' '-install_name ''${T}''${LIBDIR}/libcustcalc''${LIB_EXT_VERSION}'
   '';
@@ -25,7 +24,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "T=$(out)"
-    "INCDIR=${lib.getDev stdenv.cc.libc}/include"
+    "INCDIR="
     "BINDIR=/bin"
     "LIBDIR=/lib"
     "CALC_SHAREDIR=/share/calc"
diff --git a/pkgs/applications/science/math/calculix/calculix.patch b/pkgs/applications/science/math/calculix/calculix.patch
new file mode 100644
index 00000000000..311421f2ef5
--- /dev/null
+++ b/pkgs/applications/science/math/calculix/calculix.patch
@@ -0,0 +1,31 @@
+diff --git a/ccx_2.15/src/Makefile b/ccx_2.15/src/Makefile
+index 9cab2fc..6e977b8 100755
+--- a/ccx_2.15/src/Makefile
++++ b/ccx_2.15/src/Makefile
+@@ -1,6 +1,6 @@
+ 
+ CFLAGS = -Wall -O3  -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT
+-FFLAGS = -Wall -O3 
++FFLAGS = -Wall -O3
+ 
+ CC=cc
+ FC=gfortran
+@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o)
+ OCCXC = $(SCCXC:.c=.o)
+ OCCXMAIN = $(SCCXMAIN:.c=.o)
+ 
+-DIR=../../../SPOOLES.2.2
++LIBS = -lpthread -lm -lc -lspooles -larpack -lopenblas
+ 
+-LIBS = \
+-       $(DIR)/spooles.a \
+-	../../../ARPACK/libarpack_INTEL.a \
+-       -lpthread -lm -lc
+-
+-ccx_2.15: $(OCCXMAIN) ccx_2.15.a  $(LIBS)
+-	./date.pl; $(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
++ccx_2.15: $(OCCXMAIN) ccx_2.15.a
++	$(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
+ 
+ ccx_2.15.a: $(OCCXF) $(OCCXC)
+ 	ar vr $@ $?
diff --git a/pkgs/applications/science/math/calculix/default.nix b/pkgs/applications/science/math/calculix/default.nix
new file mode 100644
index 00000000000..24d5f99ec32
--- /dev/null
+++ b/pkgs/applications/science/math/calculix/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, gfortran, arpack, spooles, openblas }:
+
+stdenv.mkDerivation rec {
+  pname = "calculix";
+  version = "2.15";
+
+  src = fetchurl {
+    url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
+    sha256 = "0d4axfxgm3ag4p2vx9rjcky7c122k99a2nhv1jv53brm35rblzdw";
+  };
+
+  nativeBuildInputs = [ gfortran ];
+
+  buildInputs = [ arpack spooles openblas ];
+
+  NIX_CFLAGS_COMPILE = [
+    "-I${spooles}/include/spooles"
+  ];
+
+  patches = [
+    ./calculix.patch
+  ];
+
+  postPatch = ''
+    cd ccx*/src
+  '';
+
+  installPhase = ''
+    install -Dm0755 ccx_${version} $out/bin/ccx
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.calculix.de/";
+    description = "Three-dimensional structural finite element program";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/math/cplex/default.nix b/pkgs/applications/science/math/cplex/default.nix
index dc0e9ea1aa5..a14839d3ecc 100644
--- a/pkgs/applications/science/math/cplex/default.nix
+++ b/pkgs/applications/science/math/cplex/default.nix
@@ -71,6 +71,11 @@ stdenv.mkDerivation rec {
       fi
     done
   '';
+
+  passthru = {
+    libArch = "x86-64_linux";
+    libSuffix = "${version}0";
+  };
   
   meta = with stdenv.lib; {
     description = "Optimization solver for mathematical programming";
diff --git a/pkgs/applications/science/math/gap/default.nix b/pkgs/applications/science/math/gap/default.nix
index 6beb87e9f02..7eb10d1f952 100644
--- a/pkgs/applications/science/math/gap/default.nix
+++ b/pkgs/applications/science/math/gap/default.nix
@@ -45,7 +45,6 @@ let
     "sophus-*"
     "tomlib-*"
   ];
-  standardPackages = requiredPackages ++ autoloadedPackages;
   keepAll = keepAllPackages || (packageSet == "full");
   packagesToKeep = requiredPackages ++ lib.optionals (packageSet == "standard") autoloadedPackages;
 
@@ -62,11 +61,11 @@ in
 stdenv.mkDerivation rec {
   pname = "gap";
   # https://www.gap-system.org/Releases/
-  version = "4.10.1";
+  version = "4.10.2";
 
   src = fetchurl {
     url = "https://www.gap-system.org/pub/gap/gap-${lib.versions.major version}.${lib.versions.minor version}/tar.bz2/gap-${version}.tar.bz2";
-    sha256 = "136s0zvhcw41fshj5zgsrjcy2kd58cdh2m3ddp5rdizi4rx54f10";
+    sha256 = "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94";
   };
 
   # remove all non-essential packages (which take up a lot of space)
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 80b2764cdc0..1d96c0039ad 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -1,28 +1,26 @@
 { stdenv, fetchurl, cmake, openblasCompat, gfortran, gmm, fltk, libjpeg
-, zlib, libGLU_combined, libGLU, xorg }:
+, zlib, libGLU_combined, libGLU, xorg, opencascade-occt }:
 
-let version = "4.3.0"; in
-
-stdenv.mkDerivation {
-  name = "gmsh-${version}";
+stdenv.mkDerivation rec {
+  pname = "gmsh";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0ab4p2dilk4rfw1qc817rmy56qkhxaajpnqdnvahbhcbf3skd8jl";
+    sha256 = "1p7hibmsgv961lfkzdxlgcvmcb0q155m2sp60r97cjsfzhw68g45";
   };
 
   buildInputs = [ openblasCompat gmm fltk libjpeg zlib libGLU_combined
     libGLU xorg.libXrender xorg.libXcursor xorg.libXfixes xorg.libXext
     xorg.libXft xorg.libXinerama xorg.libX11 xorg.libSM xorg.libICE
+    opencascade-occt
   ];
 
   nativeBuildInputs = [ cmake gfortran ];
 
-  enableParallelBuilding = true;
-
   meta = {
     description = "A three-dimensional finite element mesh generator";
-    homepage = http://gmsh.info/;
+    homepage = "http://gmsh.info/";
     platforms = [ "x86_64-linux" ];
     license = stdenv.lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/applications/science/math/gurobi/default.nix b/pkgs/applications/science/math/gurobi/default.nix
index be14d141128..ee9bdcc6f1b 100644
--- a/pkgs/applications/science/math/gurobi/default.nix
+++ b/pkgs/applications/science/math/gurobi/default.nix
@@ -1,8 +1,10 @@
-{ stdenv, fetchurl, autoPatchelfHook, python }:
+{ stdenv, lib, fetchurl, autoPatchelfHook, python }:
 
-stdenv.mkDerivation rec {
+let
+  majorVersion = "8.1";
+in stdenv.mkDerivation rec {
   name = "gurobi-${version}";
-  version = "8.1.0";
+  version = "${majorVersion}.0";
 
   src = with stdenv.lib; fetchurl {
     url = "http://packages.gurobi.com/${versions.majorMinor version}/gurobi${version}_linux64.tar.gz";
@@ -44,6 +46,8 @@ stdenv.mkDerivation rec {
     ln -s $out/lib/gurobi-javadoc.jar $out/share/java/
   '';
 
+  passthru.libSuffix = lib.replaceStrings ["."] [""] majorVersion;
+
   meta = with stdenv.lib; {
     description = "Optimization solver for mathematical programming";
     homepage = https://www.gurobi.com;
diff --git a/pkgs/applications/science/math/mathematica/11.nix b/pkgs/applications/science/math/mathematica/11.nix
new file mode 100644
index 00000000000..521cb70099b
--- /dev/null
+++ b/pkgs/applications/science/math/mathematica/11.nix
@@ -0,0 +1,150 @@
+{ stdenv
+, coreutils
+, patchelf
+, requireFile
+, callPackage
+, alsaLib
+, dbus
+, fontconfig
+, freetype
+, gcc
+, glib
+, ncurses
+, opencv
+, openssl
+, unixODBC
+, xkeyboard_config
+, xorg
+, zlib
+, libxml2
+, libuuid
+, lang ? "en"
+, libGL
+, libGLU
+}:
+
+let
+  l10n =
+    import ./l10ns.nix {
+      lib = stdenv.lib;
+      inherit requireFile lang;
+      majorVersion = "11";
+    };
+in
+stdenv.mkDerivation rec {
+  inherit (l10n) version name src;
+
+  buildInputs = [
+    coreutils
+    patchelf
+    alsaLib
+    coreutils
+    dbus
+    fontconfig
+    freetype
+    gcc.cc
+    gcc.libc
+    glib
+    ncurses
+    opencv
+    openssl
+    unixODBC
+    xkeyboard_config
+    libxml2
+    libuuid
+    zlib
+    libGL
+    libGLU
+  ] ++ (with xorg; [
+    libX11
+    libXext
+    libXtst
+    libXi
+    libXmu
+    libXrender
+    libxcb
+    libXcursor
+    libXfixes
+    libXrandr
+    libICE
+    libSM
+  ]);
+
+  ldpath = stdenv.lib.makeLibraryPath buildInputs
+    + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
+      (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
+
+  phases = "unpackPhase installPhase fixupPhase";
+
+  unpackPhase = ''
+    echo "=== Extracting makeself archive ==="
+    # find offset from file
+    offset=$(${stdenv.shell} -c "$(grep -axm1 -e 'offset=.*' $src); echo \$offset" $src)
+    dd if="$src" ibs=$offset skip=1 | tar -xf -
+    cd Unix
+  '';
+
+  installPhase = ''
+    cd Installer
+    # don't restrict PATH, that has already been done
+    sed -i -e 's/^PATH=/# PATH=/' MathInstaller
+    sed -i -e 's/\/bin\/bash/\/bin\/sh/' MathInstaller
+
+    echo "=== Running MathInstaller ==="
+    ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent
+
+    # Fix library paths
+    cd $out/libexec/Mathematica/Executables
+    for path in mathematica MathKernel Mathematica WolframKernel wolfram math; do
+      sed -i -e 's#export LD_LIBRARY_PATH$#export LD_LIBRARY_PATH=${zlib}/lib:\''${LD_LIBRARY_PATH}#' $path
+    done
+
+    # Fix xkeyboard config path for Qt
+    for path in mathematica Mathematica; do
+      line=$(grep -n QT_PLUGIN_PATH $path | sed 's/:.*//')
+      sed -i -e "$line iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path
+    done
+  '';
+
+  preFixup = ''
+    echo "=== PatchElfing away ==="
+    # This code should be a bit forgiving of errors, unfortunately
+    set +e
+    find $out/libexec/Mathematica/SystemFiles -type f -perm -0100 | while read f; do
+      type=$(readelf -h "$f" 2>/dev/null | grep 'Type:' | sed -e 's/ *Type: *\([A-Z]*\) (.*/\1/')
+      if [ -z "$type" ]; then
+        :
+      elif [ "$type" == "EXEC" ]; then
+        echo "patching $f executable <<"
+        patchelf --shrink-rpath "$f"
+        patchelf \
+	  --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+          "$f" \
+          && patchelf --shrink-rpath "$f" \
+          || echo unable to patch ... ignoring 1>&2
+      elif [ "$type" == "DYN" ]; then
+        echo "patching $f library <<"
+        patchelf \
+          --set-rpath "$(patchelf --print-rpath "$f"):${ldpath}" \
+          "$f" \
+          && patchelf --shrink-rpath "$f" \
+          || echo unable to patch ... ignoring 1>&2
+      else
+        echo "not patching $f <<: unknown elf type"
+      fi
+    done
+  '';
+
+  # all binaries are already stripped
+  dontStrip = true;
+
+  # we did this in prefixup already
+  dontPatchELF = true;
+
+  meta = {
+    description = "Wolfram Mathematica computational software system";
+    homepage = http://www.wolfram.com/mathematica/;
+    license = stdenv.lib.licenses.unfree;
+  };
+}
diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix
index 165a5660557..ca9a87abe13 100644
--- a/pkgs/applications/science/math/mathematica/default.nix
+++ b/pkgs/applications/science/math/mathematica/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , coreutils
 , patchelf
+, requireFile
 , callPackage
 , alsaLib
 , dbus
@@ -24,10 +25,10 @@
 
 let
   l10n =
-    with stdenv.lib;
-    with callPackage ./l10ns.nix {};
-    flip (findFirst (l: l.lang == lang)) l10ns
-      (throw "Language '${lang}' not supported");
+    import ./l10ns.nix {
+      lib = stdenv.lib;
+      inherit requireFile lang;
+    };
 in
 stdenv.mkDerivation rec {
   inherit (l10n) version name src;
@@ -72,8 +73,6 @@ stdenv.mkDerivation rec {
     + stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux")
       (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs);
 
-  phases = "unpackPhase installPhase fixupPhase";
-
   unpackPhase = ''
     echo "=== Extracting makeself archive ==="
     # find offset from file
@@ -99,8 +98,7 @@ stdenv.mkDerivation rec {
 
     # Fix xkeyboard config path for Qt
     for path in mathematica Mathematica; do
-      line=$(grep -n QT_PLUGIN_PATH $path | sed 's/:.*//')
-      sed -i -e "$line iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path
+      sed -i -e "2iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path
     done
   '';
 
@@ -134,15 +132,19 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  dontBuild = true;
+
   # all binaries are already stripped
   dontStrip = true;
 
   # we did this in prefixup already
   dontPatchELF = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Wolfram Mathematica computational software system";
     homepage = http://www.wolfram.com/mathematica/;
-    license = stdenv.lib.licenses.unfree;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ herberteuler ];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/science/math/mathematica/l10ns.nix b/pkgs/applications/science/math/mathematica/l10ns.nix
index 065360a112d..51fb489be7e 100644
--- a/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -1,10 +1,19 @@
-{ lib, requireFile }:
+{ lib
+, requireFile
+, lang
+, majorVersion ? null
+}:
 
-with lib;
-{
-  l10ns = flip map
+let allVersions = with lib; flip map
+  # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
+      version = "12.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
+    }
+    {
       version = "11.3.0";
       lang = "en";
       language = "English";
@@ -30,4 +39,16 @@ with lib;
       inherit sha256;
     };
   });
-}
+minVersion =
+  with lib;
+  if majorVersion == null
+  then elemAt (builtins.splitVersion (elemAt allVersions 0).version) 0
+  else majorVersion;
+maxVersion = toString (1 + builtins.fromJSON minVersion);
+in
+with lib;
+findFirst (l: (l.lang == lang
+               && l.version >= minVersion
+               && l.version < maxVersion))
+          (throw "Version ${minVersion} in language ${lang} not supported")
+          allVersions
diff --git a/pkgs/applications/science/math/pari/gp2c.nix b/pkgs/applications/science/math/pari/gp2c.nix
index 4915e42025b..86bd2e84367 100644
--- a/pkgs/applications/science/math/pari/gp2c.nix
+++ b/pkgs/applications/science/math/pari/gp2c.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
 
   name = "gp2c-${version}";
-  version = "0.0.11pl1";
+  version = "0.0.11pl2";
 
   src = fetchurl {
     url = "https://pari.math.u-bordeaux.fr/pub/pari/GP2C/${name}.tar.gz";
-    sha256 = "1c6f6vmncw032kfzrfyr8bynw6yd3faxpy2285r009fmr0zxfs5s";
+    sha256 = "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g";
   };
 
   buildInputs = [ pari perl ];
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index 4da3a3f3d7b..b4d82b9583c 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "1yhhfqcxi1b7dfrl8qh16l9iwgzvw1p0hhl7nnjpxhdwxz880sv0";
+    sha256 = "1z2d32dcvdd66114j3km58xfk80hc5rd0zrh2fgz1azv8r4cqq1b";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 92ec32d5cc5..caf51c3da25 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -7,7 +7,7 @@
 # is always preferred, see `sage-src.nix` for that.
 
 let
-  inherit (pkgs) fetchurl symlinkJoin callPackage nodePackages;
+  inherit (pkgs) symlinkJoin callPackage nodePackages;
 
   # https://trac.sagemath.org/ticket/15980 for tracking of python3 support
   python = pkgs.python2.override {
@@ -33,7 +33,7 @@ let
       # `sagelib`, i.e. all of sage except some wrappers and runtime dependencies
       sagelib = self.callPackage ./sagelib.nix {
         inherit flint ecl arb;
-        inherit sage-src pynac singular;
+        inherit sage-src env-locations pynac singular;
         linbox = pkgs.linbox.override { withSage = true; };
         pkg-config = pkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig
       };
@@ -130,7 +130,7 @@ let
   singular = pkgs.singular.override { inherit flint; };
 
   # https://trac.sagemath.org/ticket/26625
-  maxima-ecl = pkgs.maxima-ecl-5_41;
+  maxima-ecl = pkgs.maxima-ecl;
 
   # *not* to confuse with the python package "pynac"
   pynac = pkgs.pynac.override { inherit singular flint; };
diff --git a/pkgs/applications/science/math/sage/dist-tests.nix b/pkgs/applications/science/math/sage/dist-tests.nix
new file mode 100644
index 00000000000..24a86a8f37a
--- /dev/null
+++ b/pkgs/applications/science/math/sage/dist-tests.nix
@@ -0,0 +1,17 @@
+# Lists past failures and files associated with it. The intention is to build
+# up a subset of a testsuite that catches 95% of failures that are relevant for
+# distributions while only taking ~5m to run. This in turn makes it more
+# reasonable to re-test sage on dependency changes and makes it easier for
+# users to override the sage derivation.
+# This is an experiment for now. If it turns out that there really is a small
+# subset of files responsible for the vast majority of packaging tests, we can
+# think about moving this upstream.
+[
+	"src/sage/env.py" # [1]
+	"src/sage/misc/persist.pyx" # [1]
+	"src/sage/misc/inline_fortran.py" # [1]
+	"src/sage/repl/ipython_extension.py" # [1]
+]
+
+# Numbered list of past failures to annotate files with
+# [1] PYTHONPATH related issue https://github.com/NixOS/nixpkgs/commit/ec7f569211091282410050e89e68832d4fe60528
diff --git a/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
new file mode 100644
index 00000000000..e687281ad1a
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/configurationpy-error-verbose.patch
@@ -0,0 +1,19 @@
+diff --git a/src/sage/repl/configuration.py b/src/sage/repl/configuration.py
+index 67d7d2accf..18279581e2 100644
+--- a/src/sage/repl/configuration.py
++++ b/src/sage/repl/configuration.py
+@@ -9,10 +9,11 @@ the IPython simple prompt is being used::
+     sage: cmd = 'print([sys.stdin.isatty(), sys.stdout.isatty()])'
+     sage: import pexpect
+     sage: output = pexpect.run(
+-    ....:     'bash -c \'echo "{0}" | sage\''.format(cmd),
++    ....:     'bash -c \'export SAGE_BANNER=no; echo "{0}" | sage\''.format(cmd),
+     ....: ).decode('utf-8', 'surrogateescape')
+-    sage: 'sage: [False, True]' in output
+-    True
++    sage: print(output)
++    sage...[False, True]
++    sage...Exiting Sage ...
+ """
+ 
+ #*****************************************************************************
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch b/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch
deleted file mode 100644
index 9e3f0f5ae88..00000000000
--- a/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/src/sage/misc/package.py b/src/sage/misc/package.py
-index 3bca15d53b..7cf04ff8d1 100644
---- a/src/sage/misc/package.py
-+++ b/src/sage/misc/package.py
-@@ -478,16 +478,16 @@ def package_manifest(package):
- 
-     EXAMPLES::
- 
--        sage: from sage.misc.package import package_manifest
--        sage: sagetex_manifest = package_manifest('sagetex')
--        sage: sagetex_manifest['package_name'] == 'sagetex'
-+        sage: from sage.misc.package import package_manifest # optional - buildsystem
-+        sage: sagetex_manifest = package_manifest('sagetex') # optional - buildsystem
-+        sage: sagetex_manifest['package_name'] == 'sagetex' # optional - buildsystem
-         True
--        sage: 'files' in sagetex_manifest
-+        sage: 'files' in sagetex_manifest # optional - buildsystem
-         True
- 
-     Test a nonexistent package::
- 
--        sage: package_manifest('dummy-package')
-+        sage: package_manifest('dummy-package') # optional - buildsystem
-         Traceback (most recent call last):
-         ...
-         KeyError: 'dummy-package'
diff --git a/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
new file mode 100644
index 00000000000..933344aa559
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/sphinx-docbuild-subprocesses.patch
@@ -0,0 +1,57 @@
+diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
+index 0f2700168a..60f71357d2 100644
+--- a/src/sage_setup/docbuild/__init__.py
++++ b/src/sage_setup/docbuild/__init__.py
+@@ -86,26 +86,6 @@ def builder_helper(type):
+     """
+     Returns a function which builds the documentation for
+     output type ``type``.
+-
+-    TESTS:
+-
+-    Check that :trac:`25161` has been resolved::
+-
+-        sage: from sage_setup.docbuild import DocBuilder, setup_parser
+-        sage: DocBuilder._options = setup_parser().parse_args([])[0] # builder_helper needs _options to be set
+-
+-        sage: import sage_setup.docbuild.sphinxbuild
+-        sage: def raiseBaseException():
+-        ....:     raise BaseException("abort pool operation")
+-        sage: original_runsphinx, sage_setup.docbuild.sphinxbuild.runsphinx = sage_setup.docbuild.sphinxbuild.runsphinx, raiseBaseException
+-
+-        sage: from sage_setup.docbuild import builder_helper, build_many, build_ref_doc
+-        sage: helper = builder_helper("html")
+-        sage: try:
+-        ....:     build_many(build_ref_doc, [("docname", "en", "html", {})])
+-        ....: except Exception as E:
+-        ....:     "Non-exception during docbuild: abort pool operation" in str(E)
+-        True
+     """
+     def f(self, *args, **kwds):
+         output_dir = self._output_dir(type)
+@@ -127,10 +107,9 @@ def builder_helper(type):
+         logger.debug(build_command)
+ 
+         # Run Sphinx with Sage's special logger
+-        sys.argv = ["sphinx-build"] + build_command.split()
+-        from .sphinxbuild import runsphinx
++        args = "python -um sage_setup.docbuild.sphinxbuild -N".split() + build_command.split()
+         try:
+-            runsphinx()
++            subprocess.check_call(args)
+         except Exception:
+             if ABORT_ON_ERROR:
+                 raise
+diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py
+index 9a2fba79bc..77c8ed3592 100644
+--- a/src/sage_setup/docbuild/sphinxbuild.py
++++ b/src/sage_setup/docbuild/sphinxbuild.py
+@@ -318,3 +318,8 @@ def runsphinx():
+         sys.stderr = saved_stderr
+         sys.stdout.flush()
+         sys.stderr.flush()
++
++if __name__ == '__main__':
++    import sys
++    sys.argv[0] = "sphinx-build"
++    runsphinx()
diff --git a/pkgs/applications/science/math/sage/patches/sympow-cache.patch b/pkgs/applications/science/math/sage/patches/sympow-cache.patch
new file mode 100644
index 00000000000..20020d610f8
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/sympow-cache.patch
@@ -0,0 +1,21 @@
+diff --git a/src/sage/lfunctions/sympow.py b/src/sage/lfunctions/sympow.py
+index 1640ac4f6a..03578be7b8 100644
+--- a/src/sage/lfunctions/sympow.py
++++ b/src/sage/lfunctions/sympow.py
+@@ -50,6 +50,7 @@ from __future__ import print_function, absolute_import
+ 
+ import os
+ 
++from sage.env import DOT_SAGE
+ from sage.structure.sage_object import SageObject
+ from sage.misc.all import pager, verbose
+ import sage.rings.all
+@@ -76,7 +77,7 @@ class Sympow(SageObject):
+         """
+         Used to call sympow with given args
+         """
+-        cmd = 'sympow %s'%args
++        cmd = 'env SYMPOW_CACHEDIR="%s/sympow///" sympow %s' % (DOT_SAGE, args)
+         v = os.popen(cmd).read().strip()
+         verbose(v, level=2)
+         return v
diff --git a/pkgs/applications/science/math/sage/patches/threejs-offline.patch b/pkgs/applications/science/math/sage/patches/threejs-offline.patch
new file mode 100644
index 00000000000..62b2f114bd6
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/threejs-offline.patch
@@ -0,0 +1,64 @@
+diff --git a/build/pkgs/threejs/spkg-src b/build/pkgs/threejs/spkg-src
+index 91780d813c..254b850a24 100755
+--- a/build/pkgs/threejs/spkg-src
++++ b/build/pkgs/threejs/spkg-src
+@@ -20,9 +20,17 @@ URL3="https://raw.githubusercontent.com/mrdoob/three.js/${GIT_VERSION}/LICENSE"
+ echo "Downloading $URL3"
+ curl -OL "$URL3"
+ 
++# Set up directory structure
++
++mkdir build
++mv three.min.js build
++
++mkdir -p examples/js/controls
++mv OrbitControls.js examples/js/controls
++
+ # Package
+-tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" 'three.min.js' 'OrbitControls.js' 'LICENSE'
+-rm -rf 'three.min.js' 'OrbitControls.js' 'LICENSE'
++tar czf "$SAGE_ROOT/upstream/threejs-${GIT_VERSION}.tar.gz" build examples 'LICENSE'
++rm -rf 'build' 'examples' 'LICENSE'
+ 
+ # Update package info
+ echo "${GIT_VERSION}" > 'package-version.txt'
+diff --git a/src/sage/repl/rich_output/backend_ipython.py b/src/sage/repl/rich_output/backend_ipython.py
+index 7c27d48a21..8bf4861a35 100644
+--- a/src/sage/repl/rich_output/backend_ipython.py
++++ b/src/sage/repl/rich_output/backend_ipython.py
+@@ -411,10 +411,15 @@ class BackendIPythonCommandline(BackendIPython):
+             sage: backend.threejs_offline_scripts()
+             '...<script ...</script>...'
+         """
+-        from sage.env import SAGE_SHARE
++        from sage.env import THREEJS_DIR
+ 
+-        scripts = [os.path.join(SAGE_SHARE, 'threejs', script)
+-                   for script in ['three.min.js', 'OrbitControls.js']]
++        scripts = [
++            os.path.join(THREEJS_DIR, script)
++            for script in [
++                'build/three.min.js',
++                'examples/js/controls/OrbitControls.js',
++            ]
++        ]
+ 
+         if sys.platform == 'cygwin':
+             import cygwin
+@@ -594,13 +599,13 @@ class BackendIPythonNotebook(BackendIPython):
+             sage: from sage.repl.rich_output.backend_ipython import BackendIPythonNotebook
+             sage: backend = BackendIPythonNotebook()
+             sage: backend.threejs_offline_scripts()
+-            '...<script src="/nbextensions/threejs/three.min...<\\/script>...'
++            '...<script src="/nbextensions/threejs/build/three.min...<\\/script>...'
+         """
+         from sage.repl.rich_output import get_display_manager
+         CDN_scripts = get_display_manager().threejs_scripts(online=True)
+         return """
+-<script src="/nbextensions/threejs/three.min.js"></script>
+-<script src="/nbextensions/threejs/OrbitControls.js"></script>
++<script src="/nbextensions/threejs/build/three.min.js"></script>
++<script src="/nbextensions/threejs/examples/js/controls/OrbitControls.js"></script>
+ <script>
+   if ( !window.THREE ) document.write('{}');
+ </script>
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 56d8082d2f5..57d6c852be8 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,14 +10,14 @@
 # all get the same sources with the same patches applied.
 
 stdenv.mkDerivation rec {
-  version = "8.7";
+  version = "8.8";
   pname = "sage-src";
 
   src = fetchFromGitHub {
     owner = "sagemath";
     repo = "sage";
     rev = version;
-    sha256 = "05vvrd6syh0hlmrk6kzjrwd0hpmvxp8vr8p3mkjb0jh5p2kjdd27";
+    sha256 = "0jm7zdkz8wfgrmf6620jfr8kgvprrz3qfl8gzx6rl5z5cm734b6x";
   };
 
   # Patches needed because of particularities of nix or the way this is packaged.
@@ -45,42 +45,26 @@ stdenv.mkDerivation rec {
     # Fixes a potential race condition which can lead to transient doctest failures.
     ./patches/fix-ecl-race.patch
 
-    # Parallelize docubuild using subprocesses, fixing an isolation issue. See
-    # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
-    (fetchpatch {
-      name = "sphinx-docbuild-subprocesses.patch";
-      url = "https://salsa.debian.org/science-team/sagemath/raw/8a215b17e6f791ddfae6df8ce6d01dfb89acb434/debian/patches/df-subprocess-sphinx.patch";
-      sha256 = "07p9i0fwjgapmfvmi436yn6v60p8pvmxqjc93wsssqgh5kd8qw3n";
-      stripLen = 1;
-    })
-
-    # Part of the build system. Should become unnecessary with sage 8.8.
-    # Upstream discussion here: https://trac.sagemath.org/ticket/27124#comment:33
-    ./patches/do-not-test-package-manifests.patch
-
     # Not necessary since library location is set explicitly
     # https://trac.sagemath.org/ticket/27660#ticket
     ./patches/do-not-test-find-library.patch
 
-    # https://trac.sagemath.org/ticket/27697#ticket
-    (fetchpatch {
-      name = "pplpy-doc-location-configurable.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?h=c4d966e7cb0c7b87c55d52dc6f46518433a2a0a2";
-      sha256 = "0pqbbsx8mriwny422s9mp3z5d095cnam32sm62q4mxk8g8jb9vm9";
-    })
+
+    # https://trac.sagemath.org/ticket/28007
+    ./patches/threejs-offline.patch
+
+    # Parallelize docubuild using subprocesses, fixing an isolation issue. See
+    # https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
+    ./patches/sphinx-docbuild-subprocesses.patch
   ];
 
   # Since sage unfortunately does not release bugfix releases, packagers must
   # fix those bugs themselves. This is for critical bugfixes, where "critical"
   # == "causes (transient) doctest failures / somebody complained".
   bugfixPatches = [
-    # Transient doctest failure in src/sage/modular/abvar/torsion_subgroup.py
-    # https://trac.sagemath.org/ticket/27477
-    (fetchpatch {
-      name = "sig_on_in_matrix_sparce.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id2=10407524b18659e14e184114b61c043fb816f3c2&id=c9b0cc9d0b8748ab85e568f8f57f316c5e8cbe54";
-      sha256 = "0wgp7yvn9sm1ynlhcr4l0hzmvr2n28llg4xc01p6k1zz4im64c17";
-    })
+    # To help debug the transient error in
+    # https://trac.sagemath.org/ticket/23087 when it next occurs.
+    ./patches/configurationpy-error-verbose.patch
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
@@ -113,35 +97,6 @@ stdenv.mkDerivation rec {
       stripLen = 1;
     })
 
-    # https://trac.sagemath.org/ticket/26451
-    (fetchSageDiff {
-      name = "sphinx-1.8.patch";
-      base = "8.7";
-      rev = "737afd8f314bd1e16feaec562bb4b5efa2effa8b";
-      sha256 = "0n56ss88ds662bp49j23z5c2i6hsn3jynxw13wv76hyl0h7l1hjh";
-    })
-
-    # https://trac.sagemath.org/ticket/27653
-    (fetchpatch {
-      name = "sympy-1.4.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?h=3277ba76d0ba7174608a31a0c6623e9210c63e3d";
-      sha256 = "09avaanwmdgqv14mmllbgw9z2scf4lc0y0kzdhlriiq8ss9j8iir";
-    })
-
-    # https://trac.sagemath.org/ticket/27094
-    (fetchpatch {
-      name = "gap-4.10.1.patch";
-      url = "https://git.sagemath.org/sage.git/patch?id=d3483110474591ea6cc8e3210cd884f3e0018b3e";
-      sha256 = "028i6h8l8npwzx5z0ax0rcywl85gc83qw1jf93zf523msdfcsk0n";
-    })
-
-    # https://trac.sagemath.org/ticket/27738
-    (fetchpatch {
-      name = "R-3.6.0.patch";
-      url = "https://git.sagemath.org/sage.git/patch/?h=8b7dbd0805d02d0e8674a272e161ceb24a637966";
-      sha256 = "1c81f13z1w62s06yvp43gz6vkp8mxcs289n6l4gj9xj10slimzff";
-    })
-
     # https://trac.sagemath.org/ticket/26932
     (fetchSageDiff {
       name = "givaro-4.1.0_fflas-ffpack-2.4.0_linbox-1.6.0.patch";
@@ -149,6 +104,11 @@ stdenv.mkDerivation rec {
       rev = "c11d9cfa23ff9f77681a8f12742f68143eed4504";
       sha256 = "0xzra7mbgqvahk9v45bjwir2mqz73hrhhy314jq5nxrb35ysdxyi";
     })
+
+    # After updating smypow to (https://trac.sagemath.org/ticket/3360) we can
+    # now set the cache dir to be withing the .sage directory. This is not
+    # strictly necessary, but keeps us from littering in the user's HOME.
+    ./patches/sympow-cache.patch
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sage-tests.nix b/pkgs/applications/science/math/sage/sage-tests.nix
index 12433e12fe9..0cd5b5d976a 100644
--- a/pkgs/applications/science/math/sage/sage-tests.nix
+++ b/pkgs/applications/science/math/sage/sage-tests.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     sage-with-env
   ];
 
-  unpackPhase = "#do nothing";
+  dontUnpack = true;
   configurePhase = "#do nothing";
   buildPhase = "#do nothing";
 
@@ -51,6 +51,10 @@ stdenv.mkDerivation rec {
     export HOME="$TMPDIR/sage-home"
     mkdir -p "$HOME"
 
+    # avoid running out of memory with many threads in subprocesses, see
+    # https://github.com/NixOS/nixpkgs/pull/65802
+    export GLIBC_TUNABLES=glibc.malloc.arena_max=4
+
     echo "Running sage tests with arguments ${timeSpecifier} ${patienceSpecifier} ${testArgs}"
     "sage" -t --nthreads "$NIX_BUILD_CORES" --optional=sage ${timeSpecifier} ${patienceSpecifier} ${testArgs}
   '';
diff --git a/pkgs/applications/science/math/sage/sage-with-env.nix b/pkgs/applications/science/math/sage/sage-with-env.nix
index 5bb7eda47d5..e4b1aeae016 100644
--- a/pkgs/applications/science/math/sage/sage-with-env.nix
+++ b/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -99,6 +99,13 @@ stdenv.mkDerivation rec {
     for pkg in ${lib.concatStringsSep " " input_names}; do
       touch "installed/$pkg"
     done
+
+    # threejs version is in format 0.<version>.minor, but sage currently still
+    # relies on installed_packages for the online version of threejs to work
+    # and expects the format r<version>. This is a hotfix for now.
+    # upstream: https://trac.sagemath.org/ticket/26434
+    rm "installed/threejs"*
+    touch "installed/threejs-r${lib.versions.minor three.version}"
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix
index 541b9cb36dc..f6dc21d0018 100644
--- a/pkgs/applications/science/math/sage/sage.nix
+++ b/pkgs/applications/science/math/sage/sage.nix
@@ -11,7 +11,7 @@
 # A wrapper that makes sure sage finds its docs (if they were build) and the
 # jupyter kernel spec.
 
-let 
+let
   # generate kernel spec + default kernels
   kernel-specs = jupyter-kernel.create {
     definitions = jupyter-kernel.default // {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     sage-tests
   ];
 
-  unpackPhase = "#do nothing";
+  dontUnpack = true;
   configurePhase = "#do nothing";
   buildPhase = "#do nothing";
 
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index d745532d5d7..1040d6d4ba1 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -1,4 +1,5 @@
 { sage-src
+, env-locations
 , perl
 , buildPythonPackage
 , arb
@@ -125,8 +126,11 @@ buildPythonPackage rec {
     export SAGE_ROOT="$PWD"
     export SAGE_LOCAL="$SAGE_ROOT"
     export SAGE_SHARE="$SAGE_LOCAL/share"
-    export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
 
+    # set locations of dependencies (needed for nbextensions like threejs)
+    . ${env-locations}/sage-env-locations
+
+    export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
     export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH"
 
     export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
diff --git a/pkgs/applications/science/math/sage/sagenb.nix b/pkgs/applications/science/math/sage/sagenb.nix
index 32335b45202..03b5b7a3bbf 100644
--- a/pkgs/applications/science/math/sage/sagenb.nix
+++ b/pkgs/applications/science/math/sage/sagenb.nix
@@ -1,5 +1,4 @@
 { stdenv
-, fetchpatch
 , python
 , buildPythonPackage
 , fetchFromGitHub
diff --git a/pkgs/applications/science/math/scilab-bin/default.nix b/pkgs/applications/science/math/scilab-bin/default.nix
index c3a74d14bc0..21ce53e70c5 100644
--- a/pkgs/applications/science/math/scilab-bin/default.nix
+++ b/pkgs/applications/science/math/scilab-bin/default.nix
@@ -3,9 +3,7 @@
 let
   name = "scilab-bin-${ver}";
 
-  ver = "6.0.1";
-
-  majorVer = builtins.elemAt (lib.splitString "." ver) 0;
+  ver = "6.0.2";
 
   badArch = throw "${name} requires i686-linux or x86_64-linux";
 
@@ -26,7 +24,7 @@ stdenv.mkDerivation rec {
       if stdenv.hostPlatform.system == "i686-linux" then
         "0fgjc2ak3b2qi6yin3fy50qwk2bcj0zbz1h4lyyic9n1n1qcliib"
       else if stdenv.hostPlatform.system == "x86_64-linux" then
-        "1scswlznc14vyzg0gqa1q9gcpwx05kz1sbn563463mzkdp7nd35d"
+        "05clcdgry90drirl3swbxn5q36fmgknnhs6h5pr7mmrzfr6r818w"
       else
         badArch;
   };
diff --git a/pkgs/applications/science/misc/motu-client/default.nix b/pkgs/applications/science/misc/motu-client/default.nix
deleted file mode 100644
index d4367ef7e2d..00000000000
--- a/pkgs/applications/science/misc/motu-client/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ python27Packages, fetchurl, lib } :
-python27Packages.buildPythonApplication rec {
-  pname = "motu-client";
-  version = "1.5.00";
-
-  src = fetchurl {
-    url = "https://github.com/quiet-oceans/motuclient-setuptools/archive/${version}.tar.gz";
-    sha256 = "1iqsws3wa2gpb36ms21xmaxfi83i8p8cdya4cxpn4r47c8mz74x8";
-  };
-
-  meta = with lib; {
-    homepage = https://github.com/quiet-oceans/motuclient-setuptools;
-    description = "CLI to query oceanographic data to Motu servers";
-    longDescription = ''
-      Access data from (motu)[https://sourceforge.net/projects/cls-motu/] servers.
-      This is a refactored fork of the original release in order to simplify integration,
-      deployment and packaging. Upstream code can be found at
-      https://sourceforge.net/projects/cls-motu/ .
-    '';
-    license = licenses.lgpl3Plus;
-    maintainers = [ maintainers.lsix ];
-  };
-}
diff --git a/pkgs/applications/science/misc/openmvs/default.nix b/pkgs/applications/science/misc/openmvs/default.nix
index f44d07d36db..43d57feab71 100644
--- a/pkgs/applications/science/misc/openmvs/default.nix
+++ b/pkgs/applications/science/misc/openmvs/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, cmake
 , eigen, opencv, ceres-solver, cgal, boost, vcg
-, gmp, mpfr, glog, google-gflags, libjpeg_turbo }:
+, gmp, mpfr, glog, gflags, libjpeg_turbo }:
 
 stdenv.mkDerivation rec {
   name = "openmvs-unstable-2018-05-26";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "12dgkwwfdp24581y3i41gsd1k9hq0aw917q0ja5s0if4qbmc8pni";
   };
 
-  buildInputs = [ eigen opencv ceres-solver cgal boost vcg gmp mpfr glog google-gflags libjpeg_turbo ];
+  buildInputs = [ eigen opencv ceres-solver cgal boost vcg gmp mpfr glog gflags libjpeg_turbo ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
       "-DCERES_DIR=${ceres-solver}/lib/cmake/Ceres/"
     )
   '';
-  
+
   postFixup = ''
     rp=$(patchelf --print-rpath $out/bin/DensifyPointCloud)
     patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/DensifyPointCloud
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     rp=$(patchelf --print-rpath $out/bin/TextureMesh)
     patchelf --set-rpath $rp:$out/lib/OpenMVS $out/bin/TextureMesh
   '';
-  
+
   cmakeDir = "./";
 
   dontUseCmakeBuildDir = true;
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index 871f5ece9cf..0199373b082 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
 , libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lzma, gsl_1
-, Cocoa, OpenGL, cf-private, noSplash ? false }:
+, Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   name = "root-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ]
     ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
-    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL cf-private ]
+    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
 
   patches = [
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 8b9573ce4e8..2ec1ded68a2 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, cmake, pcre, pkgconfig, python2
 , libX11, libXpm, libXft, libXext, libGLU_combined, zlib, libxml2, lz4, lzma, gsl, xxHash
-, Cocoa, OpenGL, cf-private, noSplash ? false }:
+, Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   name = "root-${version}";
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl xxHash ]
     ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU_combined ]
-    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL cf-private ]
+    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
 
   patches = [
diff --git a/pkgs/applications/science/misc/simgrid/default.nix b/pkgs/applications/science/misc/simgrid/default.nix
index 554ef695a4a..d6e3f05e0e1 100644
--- a/pkgs/applications/science/misc/simgrid/default.nix
+++ b/pkgs/applications/science/misc/simgrid/default.nix
@@ -18,14 +18,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "simgrid";
-  version = "3.22.2";
+  version = "3.23";
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "02zzivp3k7n2yvlr79p9kapzxpxq9x4x7jf2vrkpkwnssv4f9b4p";
+    sha256 = "068xg5ps4j4v2sqqyl4vf83nfazp54gsy84gvlw52h94c4mj4xmp";
   };
 
   nativeBuildInputs = [ cmake perl python3 boost valgrind ]
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = https://simgrid.org/;
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ mickours ];
+    maintainers = with maintainers; [ mickours mpoquet ];
     platforms = ["x86_64-linux"];
   };
 }
diff --git a/pkgs/applications/science/misc/tulip/default.nix b/pkgs/applications/science/misc/tulip/default.nix
index 7db2e6a12c2..1f644ad0f20 100644
--- a/pkgs/applications/science/misc/tulip/default.nix
+++ b/pkgs/applications/science/misc/tulip/default.nix
@@ -1,13 +1,13 @@
 { fetchurl, stdenv, libxml2, freetype, libGLU_combined, glew, qt4
 , cmake, makeWrapper, libjpeg, python }:
 
-let version = "5.1.0"; in
+let version = "5.2.1"; in
 stdenv.mkDerivation rec {
   name = "tulip-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/auber/${name}_src.tar.gz";
-    sha256 = "1i70y8b39gkpxfalr9844pa3l4bnnyw5y7ngxdqibil96k2b9q9h";
+    sha256 = "0bqmqy6sri87a8xv5xf7ffaq5zin4hiaa13g0l64b84i7yckfwky";
   };
 
   buildInputs = [ libxml2 freetype glew libGLU_combined qt4 libjpeg python ];
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index 7583f8c0010..d00b59307c5 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -8,11 +8,11 @@
 
 
 stdenv.mkDerivation {
-  name = "gromacs-2019.2";
+  name = "gromacs-2019.3";
 
   src = fetchurl {
-    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.2.tar.gz";
-    sha256 = "0zlzzg27yzfbmmgy2wqmgq82nslqy02gprjvm9xwcswjf705rgxw";
+    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2019.3.tar.gz";
+    sha256 = "0wvm6lj4hbasl2qkjcpicqjh7abxji4196dd2hmwlyivpycaa4a2";
   };
 
   buildInputs = [cmake fftw]
diff --git a/pkgs/applications/science/physics/sacrifice/default.nix b/pkgs/applications/science/physics/sacrifice/default.nix
index 64b88dcc3d4..d43a05f1c61 100644
--- a/pkgs/applications/science/physics/sacrifice/default.nix
+++ b/pkgs/applications/science/physics/sacrifice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, hepmc, lhapdf, pythia, makeWrapper }:
+{ stdenv, fetchurl, boost, hepmc2, lhapdf, pythia, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "sacrifice-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "10bvpq63kmszy1habydwncm0j1dgvam0fkrmvkgbkvf804dcjp6g";
   };
 
-  buildInputs = [ boost hepmc lhapdf pythia ];
+  buildInputs = [ boost hepmc2 lhapdf pythia ];
   nativeBuildInputs = [ makeWrapper ];
 
   patches = [
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
-    "--with-HepMC=${hepmc}"
+    "--with-HepMC=${hepmc2}"
     "--with-pythia=${pythia}"
   ];
 
diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix
index 7cb3e8881ca..1d61c612563 100644
--- a/pkgs/applications/science/physics/sherpa/default.nix
+++ b/pkgs/applications/science/physics/sherpa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gfortran, hepmc, fastjet, lhapdf, rivet, sqlite }:
+{ stdenv, fetchurl, gfortran, hepmc2, fastjet, lhapdf, rivet, sqlite }:
 
 stdenv.mkDerivation rec {
   name = "sherpa-${version}";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-sqlite3=${sqlite.dev}"
-    "--enable-hepmc2=${hepmc}"
+    "--enable-hepmc2=${hepmc2}"
     "--enable-fastjet=${fastjet}"
     "--enable-lhapdf=${lhapdf}"
     "--enable-rivet=${rivet}"
diff --git a/pkgs/applications/science/robotics/apmplanner2/default.nix b/pkgs/applications/science/robotics/apmplanner2/default.nix
index 69f355c7b84..ecbf0c703f1 100644
--- a/pkgs/applications/science/robotics/apmplanner2/default.nix
+++ b/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchFromGitHub, qmake
+{ lib, mkDerivation, fetchFromGitHub, fetchpatch, qmake
 , qtbase, qtscript, qtwebkit, qtserialport, qtsvg, qtdeclarative, qtquickcontrols2
 , alsaLib, libsndfile, flite, openssl, udev, SDL2
 }:
 
-stdenv.mkDerivation rec {
-  name = "apmplanner2-${version}";
-  # TODO revert Qt511 to Qt5 in pkgs/top-level/all-packages.nix on next release
+mkDerivation rec {
+  pname = "apmplanner2";
   version = "2.0.27-rc1";
+
   src = fetchFromGitHub {
     owner = "ArduPilot";
     repo = "apm_planner";
@@ -14,11 +14,19 @@ stdenv.mkDerivation rec {
     sha256 = "1k0786mjzi49nb6yw4chh9l4dmkf9gybpxg9zqkr5yg019nyzcvd";
   };
 
-  qtInputs = [
+  patches = [
+    # can be dropped after 2.0.27-rc1
+    (fetchpatch {
+      url = "https://github.com/ArduPilot/apm_planner/commit/299ff23b5e9910de04edfc06b6893bb06b47a57b.patch";
+      sha256 = "16rc81iwqp2i46g6bm9lbvcjfsk83999r9h8w1pz0mys7rsilvqy";
+    })
+  ];
+
+  buildInputs = [
+    alsaLib libsndfile flite openssl udev SDL2
     qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
   ];
 
-  buildInputs = [ alsaLib libsndfile flite openssl udev SDL2 ] ++ qtInputs;
   nativeBuildInputs = [ qmake ];
 
   qmakeFlags = [ "apm_planner.pro" ];
@@ -29,7 +37,7 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/share/applications/apmplanner2.desktop \
                       --replace /usr $out
   '';
-  
+
   enableParallelBuilding = true;
 
   meta = {
@@ -39,7 +47,7 @@ stdenv.mkDerivation rec {
       Includes support for the APM and PX4 based controllers.
     '';
     homepage = http://ardupilot.org/planner2/;
-    license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.wucke13 ];
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ wucke13 ];
   };
 }
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 2cedb7aeca4..6449e966959 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, runtimeShell, makeDesktopItem, makeWrapper, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
+{stdenv, fetchurl, unzip, makeDesktopItem, nwjs, wrapGAppsHook, gsettings-desktop-schemas, gtk3 }:
 
 let
   strippedName = "betaflight-configurator";
diff --git a/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/pkgs/applications/science/robotics/sumorobot-manager/default.nix
new file mode 100644
index 00000000000..68b91dafb73
--- /dev/null
+++ b/pkgs/applications/science/robotics/sumorobot-manager/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }:
+ 
+stdenv.mkDerivation rec {
+  pname = "sumorobot-manager";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "robokoding";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr";
+  };
+
+  buildInputs = [ python3 ];
+  pythonPath = [
+    pyqt5 pyserial
+  ];
+
+  nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ];
+
+  buildPhase = "true";
+
+  installPhase = ''
+    mkdir -p $out/opt/sumorobot-manager
+    cp -r main.py lib res $out/opt/sumorobot-manager
+    chmod -R 644 $out/opt/sumorobot-manager/lib/*
+    mkdir $out/bin
+    makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
+      --run "cd $out/opt/sumorobot-manager"
+  '';
+
+  preFixup = ''
+    patchShebangs $out/opt/sumorobot-manager/main.py
+    wrapPythonProgramsIn "$out/opt" "$pythonPath"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Desktop App for managing SumoRobots";
+    homepage = "https://www.robokoding.com/kits/sumorobot/sumomanager/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}