summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-23 09:42:34 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-23 09:45:25 -0400
commitc641a74bd6aa88a0906f036fddb37eddd432a525 (patch)
tree051a9634e0ed7485c44a126eb2c8edf0cb8d3eec /pkgs
parent7ee4dc3b1348ff81852c1ac2f410c48e4df271d2 (diff)
parentbbcaf78350d87c4657b1a2451132535467a454eb (diff)
downloadnixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar.gz
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar.bz2
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar.lz
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar.xz
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.tar.zst
nixpkgs-c641a74bd6aa88a0906f036fddb37eddd432a525.zip
Merge remote-tracking branch 'upstream/master' into ios-mini-staging
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/altcoins/parity-ui/default.nix4
-rw-r--r--pkgs/applications/audio/qsynth/default.nix6
-rw-r--r--pkgs/applications/audio/vimpc/default.nix4
-rw-r--r--pkgs/applications/editors/atom/beta.nix52
-rw-r--r--pkgs/applications/editors/atom/default.nix110
-rw-r--r--pkgs/applications/editors/kakoune/default.nix7
-rw-r--r--pkgs/applications/misc/1password/default.nix51
-rw-r--r--pkgs/applications/misc/hello/default.nix8
-rw-r--r--pkgs/applications/misc/redshift/default.nix4
-rw-r--r--pkgs/applications/misc/udiskie/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix25
-rw-r--r--pkgs/applications/science/logic/proverif/default.nix8
-rw-r--r--pkgs/applications/science/math/form/default.nix22
-rw-r--r--pkgs/applications/video/simplescreenrecorder/default.nix4
-rw-r--r--pkgs/data/misc/hackage/default.nix4
-rw-r--r--pkgs/development/compilers/dmd/default.nix21
-rw-r--r--pkgs/development/compilers/ghc/7.10.3.nix16
-rw-r--r--pkgs/development/compilers/ghc/8.0.2.nix22
-rw-r--r--pkgs/development/compilers/ghc/8.2.2.nix24
-rw-r--r--pkgs/development/compilers/ghc/8.4.2.nix36
-rw-r--r--pkgs/development/compilers/ghc/backport-dylib-command-size-limit.patch24
-rw-r--r--pkgs/development/compilers/ghc/head.nix28
-rw-r--r--pkgs/development/compilers/ispc/default.nix2
-rw-r--r--pkgs/development/compilers/ldc/default.nix24
-rw-r--r--pkgs/development/compilers/llvm/3.7/default.nix16
-rw-r--r--pkgs/development/compilers/llvm/3.8/default.nix18
-rw-r--r--pkgs/development/compilers/llvm/3.9/default.nix18
-rw-r--r--pkgs/development/compilers/llvm/4/default.nix16
-rw-r--r--pkgs/development/compilers/llvm/5/default.nix16
-rw-r--r--pkgs/development/compilers/llvm/6/default.nix16
-rw-r--r--pkgs/development/compilers/vala/default.nix39
-rw-r--r--pkgs/development/coq-modules/iris/default.nix30
-rw-r--r--pkgs/development/coq-modules/tlc/default.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml1
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix72
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix856
-rw-r--r--pkgs/development/haskell-modules/lib.nix9
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix4
-rw-r--r--pkgs/development/haskell-modules/patches/lambdabot-core-ghc-8.4.x-fix.patch15
-rw-r--r--pkgs/development/interpreters/spidermonkey/38.nix8
-rw-r--r--pkgs/development/libraries/enet/default.nix2
-rw-r--r--pkgs/development/libraries/folly/default.nix4
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix4
-rw-r--r--pkgs/development/libraries/nvidia-texture-tools/default.nix2
-rw-r--r--pkgs/development/libraries/oracle-instantclient/default.nix64
-rw-r--r--pkgs/development/libraries/sfml/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/imagelib/default.nix26
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix36
-rw-r--r--pkgs/development/python-modules/docker/default.nix4
-rw-r--r--pkgs/development/python-modules/pyairvisual/default.nix30
-rw-r--r--pkgs/development/python-modules/pyhomematic/default.nix14
-rw-r--r--pkgs/development/python-modules/pyogg/default.nix39
-rw-r--r--pkgs/development/python-modules/timeout-decorator/default.nix16
-rw-r--r--pkgs/development/tools/ammonite/default.nix14
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix2
-rw-r--r--pkgs/development/tools/bloaty/default.nix16
-rw-r--r--pkgs/development/tools/build-managers/apache-maven/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix5
-rw-r--r--pkgs/development/tools/dtools/default.nix4
-rw-r--r--pkgs/development/tools/vagrant/Gemfile.lock24
-rw-r--r--pkgs/development/tools/vagrant/default.nix4
-rw-r--r--pkgs/development/tools/vagrant/gemset.nix52
-rw-r--r--pkgs/games/freeciv/default.nix5
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix10
-rw-r--r--pkgs/misc/emulators/retroarch/wrapper.nix2
-rw-r--r--pkgs/os-specific/darwin/cctools/port.nix34
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix6
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix6
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py35
-rw-r--r--pkgs/servers/mail/postfix/default.nix4
-rw-r--r--pkgs/servers/nosql/eventstore/default.nix4
-rw-r--r--pkgs/servers/slimserver/default.nix11
-rw-r--r--pkgs/servers/sql/postgresql/pg_repack/default.nix4
-rw-r--r--pkgs/shells/zsh/zsh-autosuggestions/default.nix4
-rw-r--r--pkgs/tools/graphics/s2png/default.nix24
-rw-r--r--pkgs/tools/misc/autojump/default.nix109
-rw-r--r--pkgs/tools/misc/calamares/default.nix4
-rw-r--r--pkgs/tools/misc/debootstrap/default.nix4
-rw-r--r--pkgs/tools/misc/gams/default.nix50
-rw-r--r--pkgs/tools/misc/partition-manager/default.nix26
-rw-r--r--pkgs/tools/misc/thefuck/default.nix4
-rw-r--r--pkgs/tools/misc/tmux/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix4
-rw-r--r--pkgs/tools/networking/wireguard-go/default.nix8
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix40
-rw-r--r--pkgs/tools/package-management/cargo-tree/default.nix24
-rw-r--r--pkgs/tools/package-management/nix-du/default.nix30
-rw-r--r--pkgs/tools/package-management/nixops/unstable.nix6
-rw-r--r--pkgs/top-level/all-packages.nix111
-rw-r--r--pkgs/top-level/coq-packages.nix1
-rw-r--r--pkgs/top-level/darwin-packages.nix1
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix14
-rw-r--r--pkgs/top-level/python-packages.nix20
100 files changed, 1713 insertions, 964 deletions
diff --git a/pkgs/applications/altcoins/parity-ui/default.nix b/pkgs/applications/altcoins/parity-ui/default.nix
index 56a95b6d596..316c1fa3701 100644
--- a/pkgs/applications/altcoins/parity-ui/default.nix
+++ b/pkgs/applications/altcoins/parity-ui/default.nix
@@ -6,11 +6,11 @@ uiEnv = pkgs.callPackage ./env.nix { };
 
 in stdenv.mkDerivation rec {
   name = "parity-ui-${version}";
-  version = "0.1.1";
+  version = "0.2.1";
 
   src = fetchurl {
     url = "https://github.com/parity-js/shell/releases/download/v${version}/parity-ui_${version}_amd64.deb";
-    sha256 = "1jym6q63m5f4xm06dxiiabhbqnr0hysf2d3swysncs5hg6w00lh3";
+    sha256 = "08gh438mqxj2h8i9hv826bx040wmkmdgsda5grj0k81459vds31l";
     name = "${name}.deb";
   };
 
diff --git a/pkgs/applications/audio/qsynth/default.nix b/pkgs/applications/audio/qsynth/default.nix
index 71f41f87009..f98547ed46f 100644
--- a/pkgs/applications/audio/qsynth/default.nix
+++ b/pkgs/applications/audio/qsynth/default.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation  rec {
   name = "qsynth-${version}";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${name}.tar.gz";
-    sha256 = "1sr6vrz8z9r99j9xcix86lgcqldragb2ajmq1bnhr58d99sda584";
+    sha256 = "0kpk1rnhbifbvm4xvw8i0d4ksk78pf505qvg08k89kqkg32494ap";
   };
 
   # cmake is looking for qsynth.desktop.in and fails if it doesn't find it
-  # seems like a bug and can presumable go in the next version after 0.5.0
+  # seems like a bug and can presumable go in the next version after 0.5.1
   postPatch = ''
     mv src/qsynth.desktop src/qsynth.desktop.in
   '';
diff --git a/pkgs/applications/audio/vimpc/default.nix b/pkgs/applications/audio/vimpc/default.nix
index 37ccbb1425f..96a6081c4d8 100644
--- a/pkgs/applications/audio/vimpc/default.nix
+++ b/pkgs/applications/audio/vimpc/default.nix
@@ -8,9 +8,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "boysetsfrog";
     repo = "vimpc";
-    # Using commit-hash as there is not tag available
-    # https://github.com/boysetsfrog/vimpc/issues/70
-    rev = "63556da6b94ab27d7e3f542399f5e0975a5812ba";
+    rev = "v${version}";
     sha256 = "1495a702df4nja8mlxq98mkbic2zv88sjiinimf9qddrfb38jxk6";
   };
 
diff --git a/pkgs/applications/editors/atom/beta.nix b/pkgs/applications/editors/atom/beta.nix
deleted file mode 100644
index 0734da173e5..00000000000
--- a/pkgs/applications/editors/atom/beta.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}:
-
-stdenv.mkDerivation rec {
-  name = "atom-beta-${version}";
-  version = "1.24.0-beta3";
-
-  src = fetchurl {
-    url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
-    sha256 = "02nnjjwlkxafi2fbi4gz276nqkmi92kf3q414vw1k3kc8q5zvxrs";
-    name = "${name}.deb";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildCommand = ''
-    mkdir -p $out/usr/
-    ar p $src data.tar.xz | tar -C $out -xJ ./usr
-    substituteInPlace $out/usr/share/applications/atom-beta.desktop \
-      --replace /usr/share/atom-beta $out/bin
-    mv $out/usr/* $out/
-    rm -r $out/share/lintian
-    rm -r $out/usr/
-    sed -i "s/'atom-beta'/'.atom-beta-wrapped'/" $out/bin/atom-beta
-    wrapProgram $out/bin/atom-beta \
-      --prefix "PATH" : "${gvfs}/bin"
-
-    fixupPhase
-
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}:$out/share/atom-beta" \
-      $out/share/atom-beta/atom
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}" \
-      $out/share/atom-beta/resources/app/apm/bin/node
-
-    #rm -f $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git
-    #ln -s ${pkgs.git}/bin/git $out/share/atom-beta/resources/app/node_modules/dugite/git/bin/git
-
-    find $out/share/atom-beta -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom-beta" {} \;
-
-    paxmark m $out/share/atom-beta/atom
-    paxmark m $out/share/atom-beta/resources/app/apm/bin/node
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A hackable text editor for the 21st Century";
-    homepage = https://atom.io/;
-    license = licenses.mit;
-    maintainers = [ maintainers.offline maintainers.nequissimus ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 225ec6a9456..7a88d761a34 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -1,53 +1,69 @@
 { stdenv, pkgs, fetchurl, lib, makeWrapper, gvfs, atomEnv}:
 
-stdenv.mkDerivation rec {
-  name = "atom-${version}";
-  version = "1.27.0";
-
-  src = fetchurl {
-    url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
-    sha256 = "1r37s6ndxyib644v7nlgha1pkcnz7kxpmlkhh41l5jp4dpc6iik6";
-    name = "${name}.deb";
+let
+  common = pname: {version, sha256}: stdenv.mkDerivation rec {
+    name = "${pname}-${version}";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
+      name = "${name}.deb";
+      inherit sha256;
+    };
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildCommand = ''
+      mkdir -p $out/usr/
+      ar p $src data.tar.xz | tar -C $out -xJ ./usr
+      substituteInPlace $out/usr/share/applications/${pname}.desktop \
+        --replace /usr/share/${pname} $out/bin
+      mv $out/usr/* $out/
+      rm -r $out/share/lintian
+      rm -r $out/usr/
+      # sed -i "s/'${pname}'/'.${pname}-wrapped'/" $out/bin/${pname}
+      wrapProgram $out/bin/${pname} \
+        --prefix "PATH" : "${gvfs}/bin"
+
+      fixupPhase
+
+      share=$out/share/${pname}
+
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${atomEnv.libPath}:$share" \
+        $share/atom
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${atomEnv.libPath}" \
+        $share/resources/app/apm/bin/node
+
+      dugite=$share/resources/app.asar.unpacked/node_modules/dugite
+      rm -f $dugite/git/bin/git
+      ln -s ${pkgs.git}/bin/git $dugite/git/bin/git
+      rm -f $dugite/git/libexec/git-core/git
+      ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
+
+      find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
+
+      paxmark m $share/atom
+      paxmark m $share/resources/app/apm/bin/node
+    '';
+
+    meta = with stdenv.lib; {
+      description = "A hackable text editor for the 21st Century";
+      homepage = https://atom.io/;
+      license = licenses.mit;
+      maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
+      platforms = [ "x86_64-linux" ];
+    };
+  };
+in stdenv.lib.mapAttrs common {
+  atom = {
+    version = "1.27.1";
+    sha256 = "08slv8s90wz2jcdrcqh2d815wfbrkwcdx9c3qbx8cml04hz8p2gx";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  buildCommand = ''
-    mkdir -p $out/usr/
-    ar p $src data.tar.xz | tar -C $out -xJ ./usr
-    substituteInPlace $out/usr/share/applications/atom.desktop \
-      --replace /usr/share/atom $out/bin
-    mv $out/usr/* $out/
-    rm -r $out/share/lintian
-    rm -r $out/usr/
-    wrapProgram $out/bin/atom \
-      --prefix "PATH" : "${gvfs}/bin"
-
-    fixupPhase
-
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}:$out/share/atom" \
-      $out/share/atom/atom
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}" \
-      $out/share/atom/resources/app/apm/bin/node
-
-    rm -f $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git
-    ln -s ${pkgs.git}/bin/git $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/bin/git
-    rm -f $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
-    ln -s ${pkgs.git}/bin/git $out/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
-
-    find $out/share/atom -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$out/share/atom" {} \;
-
-    paxmark m $out/share/atom/atom
-    paxmark m $out/share/atom/resources/app/apm/bin/node
-  '';
-
-  meta = with stdenv.lib; {
-    description = "A hackable text editor for the 21st Century";
-    homepage = https://atom.io/;
-    license = licenses.mit;
-    maintainers = with maintainers; [ offline nequissimus synthetica ysndr ];
-    platforms = [ "x86_64-linux" ];
+  atom-beta = {
+    version = "1.28.0-beta1";
+    sha256 = "1mkxq2a7sylj9jx1bs2v1pmgrwc10cgh810qic1lncq9jzpaik0n";
   };
 }
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index 868dfaf3d12..8ef1e549906 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -4,15 +4,16 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "kakoune-unstable-${version}";
-  version = "2018-03-22";
+  version = "2018-05-21";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
-    rev = "f8e297acef1be0657b779fea5256f606a6c6a3a3";
-    sha256 = "14xmw3lkwzppm9bns55nmyb1lfihzhdyisf6xjqlszdj4mcf94jl";
+    rev = "878d2a4bdb674a5e7703a66e530520f48efba641";
+    sha256 = "0pwy6ilsb62s1792gjyvhvq8shj60l8lx26b58zvpfb54an4s6rk";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
+  makeFlags = [ "debug=no" ];
 
   postPatch = ''
     export PREFIX=$out
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index b0b6111b334..60391eee692 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,33 +2,46 @@
 
 stdenv.mkDerivation rec {
   name = "1password-${version}";
-  version = "0.4";
-  src = if stdenv.system == "i686-linux" then fetchzip {
-    url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
-    sha256 = "0mhlqvd3az50gnfil0xlq10855v3bg7yb05j6ndg4h2c551jrq41";
-    stripRoot = false;
-  } else fetchzip {
-    url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
-    sha256 = "15cv8xi4slid9jicdmc5xx2r9ag63wcx1mn7hcgzxbxbhyrvwhyf";
-    stripRoot = false;
-  };
+  version = "0.4.1";
+  src =
+    if stdenv.system == "i686-linux" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_386_v${version}.zip";
+        sha256 = "0mv2m6rm6bdpca8vhyx213bg4kh06jl2sx8q7mnrp22c3f0yzh7f";
+        stripRoot = false;
+      }
+    else if stdenv.system == "x86_64-linux" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_linux_amd64_v${version}.zip";
+        sha256 = "016h5jcy6jic8j3mvlnpcig9jxs22vj71gh6rrap2q950bzi6fi1";
+        stripRoot = false;
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchzip {
+        url = "https://cache.agilebits.com/dist/1P/op/pkg/v0.4.1/op_darwin_amd64_v${version}.zip";
+        sha256 = "1l0bi0f6gd4q19wn3v409gj64wp51mr0xpb09da1fl33rl5fpszb";
+        stripRoot = false;
+      }
+    else throw "Architecture not supported";
 
   nativeBuildInputs = [ makeWrapper ];
   installPhase = ''
-    mkdir -p $out/bin
-    install -D op $out/share/1password/op
-
-    # https://github.com/NixOS/patchelf/issues/66#issuecomment-267743051
-    makeWrapper $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/op \
-      --argv0 op \
-      --add-flags $out/share/1password/op
+    install -D op $out/bin/op
+  '';
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      $out/bin/op
   '';
 
   meta = with stdenv.lib; {
     description = "1Password command-line tool";
-    homepage    = "https://blog.agilebits.com/2017/09/06/announcing-the-1password-command-line-tool-public-beta/";
+    homepage    = [
+      "https://blog.agilebits.com/2017/09/06/announcing-the-1password-command-line-tool-public-beta/"
+      "https://app-updates.agilebits.com/product_history/CLI"
+    ];
     maintainers = with maintainers; [ joelburget ];
     license     = licenses.unfree;
-    platforms   = [ "i686-linux" "x86_64-linux" ];
+    platforms   = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/applications/misc/hello/default.nix b/pkgs/applications/misc/hello/default.nix
index 8a31c591b29..c94f78317f4 100644
--- a/pkgs/applications/misc/hello/default.nix
+++ b/pkgs/applications/misc/hello/default.nix
@@ -10,15 +10,15 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A program that produces a familiar, friendly greeting";
     longDescription = ''
       GNU Hello is a program that prints "Hello, world!" when you run it.
       It is fully customizable.
     '';
     homepage = http://www.gnu.org/software/hello/manual/;
-    license = stdenv.lib.licenses.gpl3Plus;
-    maintainers = [ stdenv.lib.maintainers.eelco ];
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.eelco ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index dc31da671e9..dcc8300550f 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   name = "redshift-${version}";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchFromGitHub {
     owner = "jonls";
     repo = "redshift";
     rev = "v${version}";
-    sha256 = "0jfi4wqklqw2rm0r2xwalyzir88zkdvqj0z5id0l5v20vsrfiiyj";
+    sha256 = "12cb4gaqkybp4bkkns8pam378izr2mwhr2iy04wkprs2v92j7bz6";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/udiskie/default.nix b/pkgs/applications/misc/udiskie/default.nix
index ea79e29ff02..f3dc92605f3 100644
--- a/pkgs/applications/misc/udiskie/default.nix
+++ b/pkgs/applications/misc/udiskie/default.nix
@@ -5,18 +5,17 @@
 , docopt
 , pygobject3
 , pyyaml
-, ...
 }:
 
 buildPythonApplication rec {
   name = "udiskie-${version}";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "coldfix";
     repo = "udiskie";
     rev = version;
-    sha256 = "1yv1faq81n3vspf3jprcs5v21l2fchy3m3pc7lk8jb0xqlnh60x4";
+    sha256 = "0r3m8y6ppkl8p1lhr89sfk9v2la1zn0rbmr6hy860j7b22yvnkrn";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
new file mode 100644
index 00000000000..b1dcfb809b5
--- /dev/null
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub, ... }:
+
+let version = "0.16.0"; in
+
+buildGoPackage {
+  name = "helmfile-${version}";
+
+  src = fetchFromGitHub {
+    owner = "roboll";
+    repo = "helmfile";
+    rev = "v${version}";
+    sha256 = "12gxlan89h0r83aaacshh58nd1pi26gx5gkna0ksll9wsfvraj4d";
+  };
+
+  goPackagePath = "github.com/roboll/helmfile";
+
+  meta = {
+    description = "Deploy Kubernetes Helm charts";
+    homepage = https://github.com/roboll/helmfile;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ pneumaticat ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 5879c0e8397..38b7e485259 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -104,8 +104,8 @@ in rec {
   terraform_0_10-full = terraform_0_10.withPlugins lib.attrValues;
 
   terraform_0_11 = pluggable (generic {
-    version = "0.11.6";
-    sha256 = "17kd3ln1i40qb8fll5918rvgackzf1ibmr7li1p9vky4ki3iwr0l";
+    version = "0.11.7";
+    sha256 = "0q5gl8yn1f8fas1v68lz081k88gbmlk7f2xqlwqmh01qpqjxd42q";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
   });
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 6801edb9767..09ead9b3de6 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     };
 
     meta = with stdenv.lib; {
-        description = "All-in-one voice and text chat for gamers that’s free, secure, and works on both your desktop and phone";
+        description = "All-in-one cross-platform voice and text chat for gamers";
         homepage = https://discordapp.com/;
         downloadPage = "https://github.com/crmarsh/discord-linux-bugs";
         license = licenses.unfree;
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
new file mode 100644
index 00000000000..8990aeee8ec
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchgit, pidgin, glib, libxml2 }:
+
+stdenv.mkDerivation rec {
+  name = "purple-xmpp-upload-2017-12-31";
+
+  src = fetchgit {
+    url = "https://github.com/Junker/purple-xmpp-http-upload";
+    rev = "178096cbfc9df165c2dc1677666439969d212b37";
+    sha256 = "12l9rqlgb4i50xxrfnvwz9sqfk0d3c0m6l09mnvfixqi8illyvlp";
+  };
+
+  buildInputs = [ pidgin glib libxml2 ];
+
+  installPhase = ''
+    install -Dm644 -t $out/lib/purple-2 jabber_http_file_upload.so
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Junker/purple-xmpp-http-upload;
+    description = "HTTP File Upload plugin for libpurple (XMPP Protocol XEP-0363)";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ emmanuelrosa ];
+  };
+}
diff --git a/pkgs/applications/science/logic/proverif/default.nix b/pkgs/applications/science/logic/proverif/default.nix
index 6fe45e653dc..c70ee610199 100644
--- a/pkgs/applications/science/logic/proverif/default.nix
+++ b/pkgs/applications/science/logic/proverif/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, ocaml }:
+{ stdenv, fetchurl, ocamlPackages }:
 
 stdenv.mkDerivation rec {
   name = "proverif-${version}";
-  version = "1.97pl1";
+  version = "2.00";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
-    sha256 = "1b0ji68crdli40a4z62gdq6fnygj3z2j63iaq4jki7wfc3nn3vgq";
+    sha256 = "0vjphj85ch9q39vc7sd6n4vxy5bplp017vlshk989yhfwb00r37y";
   };
 
-  buildInputs = [ ocaml ];
+  buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
 
   buildPhase = "./build";
   installPhase = ''
diff --git a/pkgs/applications/science/math/form/default.nix b/pkgs/applications/science/math/form/default.nix
new file mode 100644
index 00000000000..88f2367e334
--- /dev/null
+++ b/pkgs/applications/science/math/form/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, gmp, zlib }:
+
+stdenv.mkDerivation rec {
+  version = "4.2.0";
+  name = "form-${version}";
+
+  # This tarball is released by author, it is not downloaded from tag, so can't use fetchFromGitHub
+  src = fetchurl {
+    url = "https://github.com/vermaseren/form/releases/download/v4.2.0/form-4.2.0.tar.gz";
+    sha256 = "19528aphn4hvm151lyyhd7wz0bp2s3rla8jv6s7d8jwfp5ljzysm";
+  };
+
+  buildInputs = [ gmp zlib ];
+
+  meta = with stdenv.lib; {
+    description = "The FORM project for symbolic manipulation of very big expressions";
+    homepage = https://www.nikhef.nl/~form/;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.veprbl ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/video/simplescreenrecorder/default.nix b/pkgs/applications/video/simplescreenrecorder/default.nix
index d1f6f8b6ad1..b456d8ee9a6 100644
--- a/pkgs/applications/video/simplescreenrecorder/default.nix
+++ b/pkgs/applications/video/simplescreenrecorder/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   name = "simplescreenrecorder-${version}";
-  version = "0.3.10";
+  version = "0.3.11";
 
   src = fetchurl {
     url = "https://github.com/MaartenBaert/ssr/archive/${version}.tar.gz";
-    sha256 = "02rl9yyx3hlz9fqvgzv7ipmvx2qahj7ws5wx2m7zs3lssq3qag3g";
+    sha256 = "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal";
   };
 
   cmakeFlags = [ "-DWITH_QT5=TRUE" ];
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 46ce08fe8cf..e2f14a059c2 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/7988bc2977184737900cc54b2dda27af6921f5ee.tar.gz";
-  sha256 = "1zagnnab5z3zymniw5rrdahlxrfpnyf30iysa1lylgwlscnzfv0l";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/810aa8e3848857c1158ded74a52159220119d188.tar.gz";
+  sha256 = "1s4x3ipn2san4rvfagmczdn70rhygpwwdmz0pqvy7q4rmgxy9x1i";
 }
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 6522b12b131..b391b6eb845 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub, overrideCC, gcc5
 , makeWrapper, unzip, which
 , curl, tzdata, gdb, darwin
-, callPackage
+, callPackage, targetPackages
 , bootstrapVersion ? false
-, version ? "2.079.0"
-, dmdSha256 ? "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y"
-, druntimeSha256 ? "183pqygj5w4105czs5kswyjn9mrcybx3wmkynz3in0m3ylzzjmvl"
-, phobosSha256 ? "0y9i86ggmf41ww2xk2bsrlsv9b1blj5dbyan6q6r6xp8dmgrd79w"
+, version ? "2.079.1"
+, dmdSha256 ? "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj"
+, druntimeSha256 ? "18r8gwvb54ar80j5155wx0qbqq4w56hqmbf6wap20xwijg2rw90g"
+, phobosSha256 ? "1x5v1ln51nr8x2vyki864160bakdyq0acmvbfv7jcipaj2w3m9bb"
 }:
 
 let
@@ -143,6 +143,9 @@ let
     + stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
       substituteInPlace ${dmdPath}/root/port.c \
         --replace "#include <bits/mathdef.h>" "#include <complex.h>"
+
+      substituteInPlace ${dmdPath}/root/port.c \
+        --replace "#include <bits/nan.h>" "#include <math.h>"
     ''
 
     + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
@@ -198,6 +201,8 @@ let
     
     extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}";
 
+    dontStrip = true;
+
     installPhase = ''
         cd dmd
         mkdir $out
@@ -222,13 +227,13 @@ let
         cp -r etc $out/include/d2
 
         wrapProgram $out/bin/dmd \
-            --prefix PATH ":" "${stdenv.cc}/bin" \
-            --set-default CC "$CC"
+            --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
+            --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
 
         cd $out/bin
         tee dmd.conf << EOF
         [Environment]
-        DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
+        DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!targetPackages.stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
         EOF
     '';
 
diff --git a/pkgs/development/compilers/ghc/7.10.3.nix b/pkgs/development/compilers/ghc/7.10.3.nix
index 7d2f3791632..e4bf23c6e9e 100644
--- a/pkgs/development/compilers/ghc/7.10.3.nix
+++ b/pkgs/development/compilers/ghc/7.10.3.nix
@@ -24,10 +24,6 @@
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? true
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
 }:
 
 assert !enableIntegerSimple -> gmp != null;
@@ -46,14 +42,11 @@ let
   };
 
   buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
   '' + stdenv.lib.optionalString enableIntegerSimple ''
     INTEGER_LIBRARY = integer-simple
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    BuildFlavour = perf-cross
     Stage1Only = YES
     HADDOCK_DOCS = NO
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@@ -75,6 +68,7 @@ let
   targetCC = builtins.head toolsForTarget;
 
 in
+
 stdenv.mkDerivation rec {
   version = "7.10.3";
   name = "${targetPrefix}ghc-${version}";
@@ -93,8 +87,6 @@ stdenv.mkDerivation rec {
     ./relocation.patch
   ];
 
-  postPatch = "patchShebangs .";
-
   # GHC is a bit confused on its cross terminology.
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
@@ -111,7 +103,6 @@ stdenv.mkDerivation rec {
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@@ -144,8 +135,7 @@ stdenv.mkDerivation rec {
   crossConfig = true;
 
   nativeBuildInputs = [
-    perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42
-    ghc hscolour
+    ghc perl libxml2 libxslt docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_42 hscolour
   ];
 
   # For building runtime libs
diff --git a/pkgs/development/compilers/ghc/8.0.2.nix b/pkgs/development/compilers/ghc/8.0.2.nix
index 02cf40e2c66..4017a01e702 100644
--- a/pkgs/development/compilers/ghc/8.0.2.nix
+++ b/pkgs/development/compilers/ghc/8.0.2.nix
@@ -23,10 +23,6 @@
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? true
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
 }:
 
 assert !enableIntegerSimple -> gmp != null;
@@ -40,14 +36,11 @@ let
     "${targetPlatform.config}-";
 
   buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
   '' + stdenv.lib.optionalString enableIntegerSimple ''
     INTEGER_LIBRARY = integer-simple
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    BuildFlavour = perf-cross
     Stage1Only = YES
     HADDOCK_DOCS = NO
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
@@ -91,9 +84,8 @@ stdenv.mkDerivation rec {
       extraPrefix = "libraries/Cabal/";
     })
   ] ++ stdenv.lib.optional stdenv.isLinux ./ghc-no-madv-free.patch
-    ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch;
-
-  postPatch = "patchShebangs .";
+    ++ stdenv.lib.optional stdenv.isDarwin ./ghc-8.0.2-no-cpp-warnings.patch
+    ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
 
   # GHC is a bit confused on its cross terminology.
   preConfigure = ''
@@ -111,7 +103,6 @@ stdenv.mkDerivation rec {
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
-
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
@@ -143,10 +134,7 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   crossConfig = true;
 
-  nativeBuildInputs = [
-    perl sphinx
-    ghc hscolour
-  ];
+  nativeBuildInputs = [ ghc perl hscolour sphinx ];
 
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
@@ -166,7 +154,7 @@ stdenv.mkDerivation rec {
   # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
   # treat that as a unary `{x,y,z,..}` repetition.
   postInstall = ''
-    paxmark m $out/lib/${name}/bin/*
+    paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
 
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
diff --git a/pkgs/development/compilers/ghc/8.2.2.nix b/pkgs/development/compilers/ghc/8.2.2.nix
index f6608305fb0..dcc2852a341 100644
--- a/pkgs/development/compilers/ghc/8.2.2.nix
+++ b/pkgs/development/compilers/ghc/8.2.2.nix
@@ -23,11 +23,10 @@
 
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
-  enableShared ? true
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
+  enableShared ?
+    !(targetPlatform.isDarwin
+      # On iOS, dynamic linking is not supported
+      && (targetPlatform.isAarch64 || targetPlatform.isAarch32))
 , # Whether to backport https://phabricator.haskell.org/D4388 for
   # deterministic profiling symbol names, at the cost of a slightly
   # non-standard GHC API
@@ -45,14 +44,11 @@ let
     "${targetPlatform.config}-";
 
   buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
   '' + stdenv.lib.optionalString enableIntegerSimple ''
     INTEGER_LIBRARY = integer-simple
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    BuildFlavour = perf-cross
     Stage1Only = YES
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
@@ -99,7 +95,8 @@ stdenv.mkDerivation rec {
     (fetchpatch { # Backport of https://phabricator.haskell.org/D4388 for more determinism
       url = "https://github.com/shlevy/ghc/commit/fec1b8d3555c447c0d8da0e96b659be67c8bb4bc.patch";
       sha256 = "1lyysz6hfd1njcigpm8xppbnkadqfs0kvrp7s8vqgb38pjswj5hg";
-    });
+    })
+    ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
 
   postPatch = "patchShebangs .";
 
@@ -156,10 +153,7 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   crossConfig = true;
 
-  nativeBuildInputs = [
-    autoconf autoreconfHook automake perl python3 sphinx
-    ghc alex happy hscolour
-  ];
+  nativeBuildInputs = [ alex autoconf autoreconfHook automake ghc happy hscolour perl python3 sphinx ];
 
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
@@ -181,7 +175,7 @@ stdenv.mkDerivation rec {
   # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
   # treat that as a unary `{x,y,z,..}` repetition.
   postInstall = ''
-    paxmark m $out/lib/${name}/bin/*
+    paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
 
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
diff --git a/pkgs/development/compilers/ghc/8.4.2.nix b/pkgs/development/compilers/ghc/8.4.2.nix
index 6615c0282e6..5d8adafa9a7 100644
--- a/pkgs/development/compilers/ghc/8.4.2.nix
+++ b/pkgs/development/compilers/ghc/8.4.2.nix
@@ -3,7 +3,7 @@
 
 # build-tools
 , bootPkgs, alex, happy
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4
+, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3
 
 , libffi, libiconv ? null, ncurses
 
@@ -15,21 +15,16 @@
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? false, gmp ? null
+  enableIntegerSimple ? false, gmp ? null, m4
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? targetPlatform != hostPlatform
 
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
-  enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt
+  enableShared ? !targetPlatform.useAndroidPrebuilt
 
-, # Whetherto build terminfo.
-  enableTerminfo ? !targetPlatform.isWindows
-
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
+, version ? "8.4.2"
 }:
 
 assert !enableIntegerSimple -> gmp != null;
@@ -43,14 +38,11 @@ let
     "${targetPlatform.config}-";
 
   buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
   '' + stdenv.lib.optionalString enableIntegerSimple ''
     INTEGER_LIBRARY = integer-simple
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    BuildFlavour = perf-cross
     Stage1Only = YES
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
@@ -63,9 +55,9 @@ let
   '';
 
   # Splicer will pull out correct variations
-  libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
+  libDeps = platform: [ ncurses ]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
-    ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+    ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
 
   toolsForTarget =
     if hostPlatform == buildPlatform then
@@ -77,7 +69,7 @@ let
 
 in
 stdenv.mkDerivation rec {
-  version = "8.4.2";
+  inherit version;
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
@@ -94,7 +86,8 @@ stdenv.mkDerivation rec {
     sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
     extraPrefix = "utils/hsc2hs/";
     stripLen = 1;
-  })];
+  })]
+    ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch;
 
   postPatch = "patchShebangs .";
 
@@ -133,7 +126,7 @@ stdenv.mkDerivation rec {
     "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
   ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
     "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
     "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
     "--enable-bootstrap-with-devel-snapshot"
@@ -151,10 +144,7 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   crossConfig = true;
 
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3
-    ghc alex happy
-  ];
+  nativeBuildInputs = [ ghc perl autoconf automake m4 happy alex python3 ];
 
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
@@ -176,7 +166,7 @@ stdenv.mkDerivation rec {
   # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
   # treat that as a unary `{x,y,z,..}` repetition.
   postInstall = ''
-    paxmark m $out/lib/${name}/bin/*
+    paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
 
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
diff --git a/pkgs/development/compilers/ghc/backport-dylib-command-size-limit.patch b/pkgs/development/compilers/ghc/backport-dylib-command-size-limit.patch
new file mode 100644
index 00000000000..d0d94717d9c
--- /dev/null
+++ b/pkgs/development/compilers/ghc/backport-dylib-command-size-limit.patch
@@ -0,0 +1,24 @@
+diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
+index acd0d61..3e83c15 100644
+--- a/compiler/main/DriverPipeline.hs
++++ b/compiler/main/DriverPipeline.hs
+@@ -1916,6 +1916,7 @@ linkBinary' staticLink dflags o_files dep_packages = do
+                       ++ pkg_framework_opts
+                       ++ debug_opts
+                       ++ thread_opts
++                      ++ (if (platformOS platform `elem` [OSDarwin]) then [ "-Wl,-dead_strip_dylibs" ] else [])
+                     ))
+ 
+ exeFileName :: Bool -> DynFlags -> FilePath
+diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
+index 1ab5b13..2ebbf51 100644
+--- a/compiler/main/SysTools.hs
++++ b/compiler/main/SysTools.hs
+@@ -1737,6 +1737,7 @@ linkDynLib dflags0 o_files dep_packages
+                  ++ map Option pkg_lib_path_opts
+                  ++ map Option pkg_link_opts
+                  ++ map Option pkg_framework_opts
++                 ++ [ Option "-Wl,-dead_strip_dylibs" ]
+               )
+         OSiOS -> throwGhcExceptionIO (ProgramError "dynamic libraries are not supported on iOS target")
+         _ -> do
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index ede25c7679a..7e1c73d166a 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -3,7 +3,7 @@
 
 # build-tools
 , bootPkgs, alex, happy
-, autoconf, automake, coreutils, fetchgit, perl, python3, m4
+, autoconf, automake, coreutils, fetchgit, perl, python3
 
 , libffi, libiconv ? null, ncurses
 
@@ -22,15 +22,9 @@
 
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
-  enableShared ? !targetPlatform.isWindows && !targetPlatform.useAndroidPrebuilt
-
-, # Whetherto build terminfo.
-  enableTerminfo ? !targetPlatform.isWindows
+  enableShared ? !targetPlatform.useAndroidPrebuilt
 
 , version ? "8.5.20180118"
-, # What flavour to build. An empty string indicates no
-  # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross"
 }:
 
 assert !enableIntegerSimple -> gmp != null;
@@ -44,14 +38,11 @@ let
     "${targetPlatform.config}-";
 
   buildMK = ''
-    BuildFlavour = ${ghcFlavour}
-    ifneq \"\$(BuildFlavour)\" \"\"
-    include mk/flavours/\$(BuildFlavour).mk
-    endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
   '' + stdenv.lib.optionalString enableIntegerSimple ''
     INTEGER_LIBRARY = integer-simple
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    BuildFlavour = perf-cross
     Stage1Only = YES
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
@@ -64,9 +55,9 @@ let
   '';
 
   # Splicer will pull out correct variations
-  libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ]
+  libDeps = platform: [ ncurses ]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
-    ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+    ++ stdenv.lib.optional (platform.libc != "glibc") libiconv;
 
   toolsForTarget =
     if hostPlatform == buildPlatform then
@@ -132,7 +123,7 @@ stdenv.mkDerivation rec {
     "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
   ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [
     "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib"
-  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+  ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc") [
     "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
     "--enable-bootstrap-with-devel-snapshot"
@@ -150,10 +141,7 @@ stdenv.mkDerivation rec {
   # masss-rebuild.
   crossConfig = true;
 
-  nativeBuildInputs = [
-    perl autoconf automake m4 python3
-    ghc alex happy
-  ];
+  nativeBuildInputs = [ ghc perl autoconf automake happy alex python3 ];
 
   # For building runtime libs
   depsBuildTarget = toolsForTarget;
@@ -175,7 +163,7 @@ stdenv.mkDerivation rec {
   # zsh and other shells are smart about `{ghc}` but bash isn't, and doesn't
   # treat that as a unary `{x,y,z,..}` repetition.
   postInstall = ''
-    paxmark m $out/lib/${name}/bin/*
+    paxmark m $out/lib/${name}/bin/${if targetPlatform != hostPlatform then "ghc" else "{ghc,haddock}"}
 
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
diff --git a/pkgs/development/compilers/ispc/default.nix b/pkgs/development/compilers/ispc/default.nix
index 62fa578cef6..0fe9c8d3765 100644
--- a/pkgs/development/compilers/ispc/default.nix
+++ b/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages, clangWrapSelf,
+{stdenv, fetchFromGitHub, bash, which, m4, python, bison, flex, llvmPackages,
 testedTargets ? ["sse2" "host"] # the default test target is sse4, but that is not supported by all Hydra agents
 }:
 
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index 1fd839180c5..48301a8f287 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata
 , python, libconfig, lit, gdb, unzip, darwin, bash
-, callPackage
+, callPackage, makeWrapper, targetPackages
 , bootstrapVersion ? false
 , version ? "1.8.0"
 , ldcSha256 ? "0zswjlibj8zcdj06nn09jjhbd99chsa5f4kps8xifzgrpgsa28g4"
@@ -124,7 +124,7 @@ let
             --replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
     '';
 
-    nativeBuildInputs = [ cmake llvm bootstrapLdc python lit gdb unzip ]
+    nativeBuildInputs = [ cmake makeWrapper llvm bootstrapLdc python lit gdb unzip ]
 
     ++ stdenv.lib.optional (bootstrapVersion) [
       libconfig
@@ -135,7 +135,7 @@ let
     ]);
 
 
-    buildInputs = [ curl tzdata stdenv.cc ];
+    buildInputs = [ curl tzdata ];
 
     preConfigure = ''
       cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
@@ -158,14 +158,20 @@ let
     doCheck = true;
 
     checkPhase = ''
-	# Build and run LDC D unittests.
-	ctest --output-on-failure -R "ldc2-unittest"
-	# Run LIT testsuite.
-	ctest -V -R "lit-tests"
-	# Run DMD testsuite.
-	DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
+      # Build and run LDC D unittests.
+      ctest --output-on-failure -R "ldc2-unittest"
+      # Run LIT testsuite.
+      ctest -V -R "lit-tests"
+      # Run DMD testsuite.
+      DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
     '';
 
+    postInstall = ''
+      wrapProgram $out/bin/ldc2 \
+          --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
+          --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
+     '';
+
     meta = with stdenv.lib; {
       description = "The LLVM-based D compiler";
       homepage = https://github.com/ldc-developers/ldc;
diff --git a/pkgs/development/compilers/llvm/3.7/default.nix b/pkgs/development/compilers/llvm/3.7/default.nix
index 5cac04c044d..8f73645afc0 100644
--- a/pkgs/development/compilers/llvm/3.7/default.nix
+++ b/pkgs/development/compilers/llvm/3.7/default.nix
@@ -1,5 +1,7 @@
 { newScope, stdenv, libstdcxxHook, cmake, libxml2, python2, isl, fetchurl
-, overrideCC, wrapCC, ccWrapperFun, darwin
+, overrideCC, wrapCCWith, darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
 }:
 
 let
@@ -27,18 +29,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -48,7 +46,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lldb = callPackage ./lldb.nix {};
diff --git a/pkgs/development/compilers/llvm/3.8/default.nix b/pkgs/development/compilers/llvm/3.8/default.nix
index 9e37f93dbdd..a5f3b775951 100644
--- a/pkgs/development/compilers/llvm/3.8/default.nix
+++ b/pkgs/development/compilers/llvm/3.8/default.nix
@@ -1,4 +1,8 @@
-{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }:
+{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
+}:
+
 let
   callPackage = newScope (self // { inherit stdenv isl version fetch; });
 
@@ -26,18 +30,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -47,7 +47,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lldb = callPackage ./lldb.nix {};
diff --git a/pkgs/development/compilers/llvm/3.9/default.nix b/pkgs/development/compilers/llvm/3.9/default.nix
index a675bcceb1c..4b69996473d 100644
--- a/pkgs/development/compilers/llvm/3.9/default.nix
+++ b/pkgs/development/compilers/llvm/3.9/default.nix
@@ -1,4 +1,8 @@
-{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun, darwin }:
+{ newScope, stdenv, libstdcxxHook, isl, fetchurl, overrideCC, wrapCCWith, darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
+}:
+
 let
   callPackage = newScope (self // { inherit stdenv isl version fetch; });
 
@@ -26,18 +30,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -47,7 +47,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lldb = callPackage ./lldb.nix {};
diff --git a/pkgs/development/compilers/llvm/4/default.nix b/pkgs/development/compilers/llvm/4/default.nix
index 562f9e3457d..594397bdbbc 100644
--- a/pkgs/development/compilers/llvm/4/default.nix
+++ b/pkgs/development/compilers/llvm/4/default.nix
@@ -1,6 +1,8 @@
 { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
-, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
+, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
 , darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
 }:
 
 let
@@ -40,18 +42,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -61,7 +59,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lld = callPackage ./lld.nix {};
diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix
index 13e1d2308f8..1f7619f7a37 100644
--- a/pkgs/development/compilers/llvm/5/default.nix
+++ b/pkgs/development/compilers/llvm/5/default.nix
@@ -1,6 +1,8 @@
 { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
-, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
+, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
 , darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
 }:
 
 let
@@ -40,18 +42,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -61,7 +59,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lld = callPackage ./lld.nix {};
diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix
index cfa9e9e15fc..be26a38e32e 100644
--- a/pkgs/development/compilers/llvm/6/default.nix
+++ b/pkgs/development/compilers/llvm/6/default.nix
@@ -1,6 +1,8 @@
 { lowPrio, newScope, stdenv, targetPlatform, cmake, libstdcxxHook
-, libxml2, python2, isl, fetchurl, overrideCC, wrapCC, ccWrapperFun
+, libxml2, python2, isl, fetchurl, overrideCC, wrapCCWith
 , darwin
+, buildLlvmPackages # ourself, but from the previous stage, for cross
+, targetLlvmPackages # ourself, but from the next stage, for cross
 }:
 
 let
@@ -40,18 +42,14 @@ let
 
     clang = if stdenv.cc.isGNU then self.libstdcxxClang else self.libcxxClang;
 
-    libstdcxxClang = ccWrapperFun {
+    libstdcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
       extraPackages = [ libstdcxxHook ];
     };
 
-    libcxxClang = ccWrapperFun {
+    libcxxClang = wrapCCWith {
       cc = self.clang-unwrapped;
-      /* FIXME is this right? */
-      inherit (stdenv.cc) bintools libc nativeTools nativeLibc;
-      extraPackages = [ self.libcxx self.libcxxabi ];
+      extraPackages = [ targetLlvmPackages.libcxx targetLlvmPackages.libcxxabi ];
     };
 
     stdenv = stdenv.override (drv: {
@@ -61,7 +59,7 @@ let
 
     libcxxStdenv = stdenv.override (drv: {
       allowedRequisites = null;
-      cc = self.libcxxClang;
+      cc = buildLlvmPackages.libcxxClang;
     });
 
     lld = callPackage ./lld.nix {};
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index f36bea42e2a..f3dc2487027 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, flex, bison, libxslt, autoconf, graphviz
+{ stdenv, lib, fetchurl, pkgconfig, flex, bison, libxslt, autoconf, graphviz
 , glib, libiconv, libintl, libtool, expat
 }:
 
 let
   generic = { major, minor, sha256, extraNativeBuildInputs ? [], extraBuildInputs ? [] }:
-  stdenv.mkDerivation rec {
+  let
+    atLeast = lib.versionAtLeast "${major}.${minor}";
+  in stdenv.mkDerivation rec {
     name = "vala-${major}.${minor}";
 
     src = fetchurl {
@@ -14,9 +16,15 @@ let
 
     outputs = [ "out" "devdoc" ];
 
-    nativeBuildInputs = [ pkgconfig flex bison libxslt ] ++ extraNativeBuildInputs;
+    nativeBuildInputs = [
+      pkgconfig flex bison libxslt
+    ] ++ lib.optional (stdenv.isDarwin && (atLeast "0.38")) expat
+      ++ extraNativeBuildInputs;
 
-    buildInputs = [ glib libiconv libintl ] ++ extraBuildInputs;
+    buildInputs = [
+      glib libiconv libintl
+    ] ++ lib.optional (atLeast "0.38") graphviz
+      ++ extraBuildInputs;
 
     meta = with stdenv.lib; {
       description = "Compiler for GObject type system";
@@ -29,12 +37,6 @@ let
 
 in rec {
 
-  vala_0_23 = generic {
-    major   = "0.23";
-    minor   = "3";
-    sha256  = "101xjbc818g4849n9a80c2aai13zakj7mpnd7470xnkvz5jwqq96";
-  };
-
   vala_0_26 = generic {
     major   = "0.26";
     minor   = "2";
@@ -61,24 +63,21 @@ in rec {
 
   vala_0_36 = generic {
     major   = "0.36";
-    minor   = "12";
-    sha256  = "1nvw721piwdh15bipg0sdll9kvgpz0y9i5fpszlc7y9w64yis25l";
+    minor   = "13";
+    sha256  = "0gxz7yisd9vh5d2889p60knaifz5zndgj98zkdfkkaykdfdq4m9k";
   };
 
   vala_0_38 = generic {
     major   = "0.38";
-    minor   = "4";
-    sha256  = "1sg5gaq3jhgr9vzh2ypiw475167k150wmyglymr7wwqppmikmcrc";
-    extraNativeBuildInputs = [ autoconf ] ++ stdenv.lib.optionals stdenv.isDarwin [ libtool expat ];
-    extraBuildInputs = [ graphviz ];
+    minor   = "9";
+    sha256  = "1dh1qacfsc1nr6hxwhn9lqmhnq39rv8gxbapdmj1v65zs96j3fn3";
+    extraNativeBuildInputs = [ autoconf ] ++ lib.optional stdenv.isDarwin libtool;
   };
 
   vala_0_40 = generic {
     major   = "0.40";
-    minor   = "0";
-    sha256  = "0wcfljl55a9qvslfcc4sf76wdpwgn83n96b7fgb7r49ib35qz20m";
-    extraNativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ expat ];
-    extraBuildInputs = [ graphviz ];
+    minor   = "6";
+    sha256  = "1qjbwhifwwqbdg5zilvnwm4n76g8p7jwqs3fa0biw3rylzqm193d";
   };
 
   vala = vala_0_38;
diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix
new file mode 100644
index 00000000000..134ea45493d
--- /dev/null
+++ b/pkgs/development/coq-modules/iris/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchzip, coq, ssreflect, stdpp }:
+
+stdenv.mkDerivation rec {
+  version = "3.1.0";
+  name = "coq${coq.coq-version}-iris-${version}";
+  src = fetchzip {
+    url = "https://gitlab.mpi-sws.org/FP/iris-coq/-/archive/iris-${version}/iris-coq-iris-${version}.tar.gz";
+    sha256 = "0ipdb061jj205avxifshxkpyxxqykigmlxk2n5nvxj62gs3rl5j1";
+  };
+
+  buildInputs = [ coq ];
+  propagatedBuildInputs = [ ssreflect stdpp ];
+
+  enableParallelBuilding = true;
+
+  installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
+
+  meta = {
+    homepage = "https://gitlab.mpi-sws.org/FP/iris-coq";
+    description = "The Coq development of the Iris Project";
+    inherit (coq.meta) platforms;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+  };
+
+  passthru = {
+    compatibleCoqVersions = v: stdenv.lib.versionAtLeast v "8.6";
+  };
+
+}
diff --git a/pkgs/development/coq-modules/tlc/default.nix b/pkgs/development/coq-modules/tlc/default.nix
index 4748a0dd238..5a236f59129 100644
--- a/pkgs/development/coq-modules/tlc/default.nix
+++ b/pkgs/development/coq-modules/tlc/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, coq }:
 
 stdenv.mkDerivation rec {
-  version = "20171206";
+  version = "20180316";
   name = "coq${coq.coq-version}-tlc-${version}";
 
   src = fetchurl {
     url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
-    sha256 = "1wc44qb5zmarafp56gdrbka8gllipqna9cj0a6d99jzb361xg4mf";
+    sha256 = "0y8h0x9dfn9dm60j1jkxr9i8lbfqd3ff626wrc9v49qxhi50szqq";
   };
 
   buildInputs = [ coq ];
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
index 83d97c64b48..0adaa5f274c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
@@ -448,4 +448,6 @@ self: super: {
     sha256 = "1bpsqq80h6nxm04wddgcgyzn0fjfsmhccmqb211jqswv5209znx8";
   });
 
+  lambdabot-core = appendPatch super.lambdabot-core ./patches/lambdabot-core-ghc-8.4.x-fix.patch;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 41831058181..8b2b98b1729 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2418,6 +2418,7 @@ extra-packages:
   - haddock-library == 1.2.*            # required for haddock-api-2.16.x
   - haddock-library == 1.4.3            # required for haddock-api-2.17.x
   - haddock-library == 1.4.4            # required for haddock-api-2.18.x
+  - haddock-library == 1.5.*            # required for stylish-cabal-0.4.0.1
   - happy <1.19.6                       # newer versions break Agda
   - haskell-gi-overloading == 0.0       # gi-* packages use this dependency to disable overloading support
   - haskell-src-exts == 1.19.*          # required by hindent and structured-haskell-mode
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 2f1eb1ad97a..469b249010f 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -128,7 +128,7 @@ self: super: builtins.intersectAttrs super {
 
   # Prevents needing to add security_tool as a build tool to all of x509-system's
   # dependencies.
-  x509-system = if pkgs.stdenv.targetPlatform.isDarwin && !pkgs.stdenv.cc.nativeLibc
+  x509-system = if pkgs.stdenv.isDarwin && !pkgs.stdenv.cc.nativeLibc
     then let inherit (pkgs.darwin) security_tool;
       in pkgs.lib.overrideDerivation (addBuildDepend super.x509-system security_tool) (drv: {
         postPatch = (drv.postPatch or "") + ''
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 99c85ac688a..3ab77c42cbb 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -19,7 +19,6 @@ in
 , buildTarget ? ""
 , buildTools ? [], libraryToolDepends ? [], executableToolDepends ? [], testToolDepends ? [], benchmarkToolDepends ? []
 , configureFlags ? []
-, buildFlags ? []
 , description ? ""
 , doCheck ? !isCross && (stdenv.lib.versionOlder "7.4" ghc.version)
 , doBenchmark ? false
@@ -32,7 +31,7 @@ in
 , enableSharedExecutables ? false
 , enableSharedLibraries ? ((ghc.isGhcjs or false) || stdenv.lib.versionOlder "7.7" ghc.version)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
-, enableStaticLibraries ? !hostPlatform.isWindows
+, enableStaticLibraries ? true
 , enableHsc2hsViaAsm ? hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"
 , extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
 , homepage ? "http://hackage.haskell.org/package/${pname}"
@@ -69,10 +68,6 @@ in
 
 assert editedCabalFile != null -> revision != null;
 
-# --enable-static does not work on windows. This is a bug in GHC.
-# --enable-static will pass -staticlib to ghc, which only works for mach-o and elf.
-assert hostPlatform.isWindows -> enableStaticLibraries == false;
-
 let
 
   inherit (stdenv.lib) optional optionals optionalString versionOlder versionAtLeast
@@ -131,8 +126,6 @@ let
   crossCabalFlagsString =
     stdenv.lib.optionalString isCross (" " + stdenv.lib.concatStringsSep " " crossCabalFlags);
 
-  buildFlagsString = optionalString (buildFlags != []) (" " + concatStringsSep " " buildFlags);
-
   defaultConfigureFlags = [
     "--verbose" "--prefix=$out" "--libdir=\\$prefix/lib/\\$compiler" "--libsubdir=\\$pkgid"
     (optionalString enableSeparateDataOutput "--datadir=$data/share/${ghc.name}")
@@ -176,22 +169,18 @@ let
                         optionals doCheck testPkgconfigDepends ++ optionals doBenchmark benchmarkPkgconfigDepends;
 
   nativeBuildInputs = [ ghc nativeGhc removeReferencesTo ] ++ optional (allPkgconfigDepends != []) pkgconfig ++
-                      setupHaskellDepends ++
                       buildTools ++ libraryToolDepends ++ executableToolDepends;
   propagatedBuildInputs = buildDepends ++ libraryHaskellDepends ++ executableHaskellDepends;
-  otherBuildInputs = extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++
+  otherBuildInputs = setupHaskellDepends ++ extraLibraries ++ librarySystemDepends ++ executableSystemDepends ++
                      optionals (allPkgconfigDepends != []) allPkgconfigDepends ++
                      optionals doCheck (testDepends ++ testHaskellDepends ++ testSystemDepends ++ testToolDepends) ++
                      optionals doBenchmark (benchmarkDepends ++ benchmarkHaskellDepends ++ benchmarkSystemDepends ++ benchmarkToolDepends);
-
   allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
 
   haskellBuildInputs = stdenv.lib.filter isHaskellPkg allBuildInputs;
   systemBuildInputs = stdenv.lib.filter isSystemPkg allBuildInputs;
 
-  # When not cross compiling, also include Setup.hs dependencies.
-  ghcEnv = ghc.withPackages (p:
-    haskellBuildInputs ++ stdenv.lib.optional (!isCross) setupHaskellDepends);
+  ghcEnv = ghc.withPackages (p: haskellBuildInputs);
 
   setupCommand = "./Setup";
 
@@ -201,22 +190,6 @@ let
 
   nativeGhcCommand = "${nativeGhc.targetPrefix}ghc";
 
-  buildPkgDb = ghcName: ''
-    if [ -d "$p/lib/${ghcName}/package.conf.d" ]; then
-      cp -f "$p/lib/${ghcName}/package.conf.d/"*.conf $packageConfDir/
-      continue
-    fi
-    if [ -d "$p/include" ]; then
-      configureFlags+=" --extra-include-dirs=$p/include"
-    fi
-    if [ -d "$p/lib" ]; then
-      configureFlags+=" --extra-lib-dirs=$p/lib"
-    fi
-    if [[ -d "$p/Library/Frameworks" ]]; then
-      configureFlags+=" --extra-framework-dirs=$p/Library/Frameworks"
-    fi
-  '';
-
 in
 
 assert allPkgconfigDepends != [] -> pkgconfig != null;
@@ -257,37 +230,30 @@ stdenv.mkDerivation ({
     echo "Build with ${ghc}."
     ${optionalString (hasActiveLibrary && hyperlinkSource) "export PATH=${hscolour}/bin:$PATH"}
 
-  '' + (optionalString (setupHaskellDepends != []) ''
-    setupPackageConfDir="$TMPDIR/setup-package.conf.d"
-    mkdir -p $setupPackageConfDir
-  '') + ''
     packageConfDir="$TMPDIR/package.conf.d"
     mkdir -p $packageConfDir
 
     setupCompileFlags="${concatStringsSep " " setupCompileFlags}"
     configureFlags="${concatStringsSep " " defaultConfigureFlags} $configureFlags"
-  ''
-  # We build the Setup.hs on the *build* machine, and as such should only add
-  # dependencies for the build machine.
-  #
-  # pkgs* arrays defined in stdenv/setup.hs
-  + (optionalString (setupHaskellDepends != []) ''
-    for p in "''${pkgsBuildBuild[@]}" "''${pkgsBuildHost[@]}" "''${pkgsBuildTarget[@]}"; do
-      ${buildPkgDb nativeGhc.name}
-    done
-    ${nativeGhcCommand}-pkg --${nativePackageDbFlag}="$setupPackageConfDir" recache
-  '')
 
-    # For normal components
-  + ''
+    # host.*Pkgs defined in stdenv/setup.hs
     for p in "''${pkgsHostHost[@]}" "''${pkgsHostTarget[@]}"; do
-      ${buildPkgDb ghc.name}
+      if [ -d "$p/lib/${ghc.name}/package.conf.d" ]; then
+        cp -f "$p/lib/${ghc.name}/package.conf.d/"*.conf $packageConfDir/
+        continue
+      fi
+      if [ -d "$p/include" ]; then
+        configureFlags+=" --extra-include-dirs=$p/include"
+      fi
+      if [ -d "$p/lib" ]; then
+        configureFlags+=" --extra-lib-dirs=$p/lib"
+      fi
     done
   ''
   # only use the links hack if we're actually building dylibs. otherwise, the
   # "dynamic-library-dirs" point to nonexistent paths, and the ln command becomes
   # "ln -s $out/lib/links", which tries to recreate the links dir and fails
-  + (optionalString (stdenv.isDarwin && (enableSharedLibraries || enableSharedExecutables)) ''
+  + (optionalString (stdenv.isDarwin && enableSharedLibraries) ''
     # Work around a limit in the macOS Sierra linker on the number of paths
     # referenced by any one dynamic library:
     #
@@ -316,11 +282,7 @@ stdenv.mkDerivation ({
     done
 
     echo setupCompileFlags: $setupCompileFlags
-    ${optionalString (setupHaskellDepends != [])
-       ''
-       echo GHC_PACKAGE_PATH="$setupPackageConfDir:"
-       GHC_PACKAGE_PATH="$setupPackageConfDir:" ''
-    }${nativeGhcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
+    ${nativeGhcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
 
     runHook postCompileBuildDriver
   '';
@@ -348,7 +310,7 @@ stdenv.mkDerivation ({
 
   buildPhase = ''
     runHook preBuild
-    ${setupCommand} build ${buildTarget}${crossCabalFlagsString}${buildFlagsString}
+    ${setupCommand} build ${buildTarget}${crossCabalFlagsString}
     runHook postBuild
   '';
 
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index b6f5c57c73c..8820a54d08f 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -9359,6 +9359,19 @@ self: {
        license = stdenv.lib.licenses.lgpl3;
      }) {};
 
+  "HasBigDecimal" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck }:
+     mkDerivation {
+       pname = "HasBigDecimal";
+       version = "0.1.1";
+       sha256 = "0ddyngd1mrx9s11nm7sh0nh76zi1zi7yjzmqk7xbpv6ijqka050a";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       homepage = "https://github.com/thma/HasBigDecimal#readme";
+       description = "A library for arbitrary precision decimal numbers";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "HasCacBDD" = callPackage
     ({ mkDerivation, base, Cabal, CacBDD, directory, process
      , QuickCheck
@@ -11033,6 +11046,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "JuicyPixels-scale-dct_0_1_2" = callPackage
+    ({ mkDerivation, base, base-compat, carray, fft, JuicyPixels, time
+     }:
+     mkDerivation {
+       pname = "JuicyPixels-scale-dct";
+       version = "0.1.2";
+       sha256 = "04rhrmjnh12hh2nz04k245avgdcwqfyjnsbpcrz8j9328j41nf7p";
+       libraryHaskellDepends = [
+         base base-compat carray fft JuicyPixels
+       ];
+       testHaskellDepends = [
+         base base-compat carray fft JuicyPixels time
+       ];
+       homepage = "https://github.com/phadej/JuicyPixels-scale-dct#readme";
+       description = "Scale JuicyPixels images with DCT";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "JuicyPixels-stbir" = callPackage
     ({ mkDerivation, base, c2hs, data-default-class, JuicyPixels
      , vector
@@ -27733,8 +27765,8 @@ self: {
      }:
      mkDerivation {
        pname = "animate";
-       version = "0.6.1";
-       sha256 = "1mjjng8mr8r6gly822nah3ps4phgydfnyggyz43n5bhdr17f37f9";
+       version = "0.7.0";
+       sha256 = "1xkp7zpbls02didfks9980989riixpklm31m7by3gsxq7mmyd6gn";
        libraryHaskellDepends = [
          aeson base bytestring containers text vector yaml
        ];
@@ -27795,8 +27827,8 @@ self: {
     ({ mkDerivation, aeson, animate, base, sdl2, sdl2-image }:
      mkDerivation {
        pname = "animate-sdl2";
-       version = "0.1.0";
-       sha256 = "1wzwhhv6x098y3pkpssxx7y1cb69z1bb2gsa2r8prg729y664648";
+       version = "0.1.1";
+       sha256 = "0wpx0jv2zyphhxi84bw4h1bw6apbazcadfxzzj90ddc3cb5lhv9n";
        libraryHaskellDepends = [ aeson animate base sdl2 sdl2-image ];
        homepage = "https://github.com/jxv/animate-sdl2#readme";
        description = "sdl2 + animate auxiliary library";
@@ -31164,8 +31196,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-format";
-       version = "0.2.0.26";
-       sha256 = "14s8bic1kvsigmi5nmjdca6pkh223axygr74nmygjbvwmryfxcxn";
+       version = "0.2.0.27";
+       sha256 = "11ln9nkdn5f8fklpddhypf02nkp8ya47kpfg4dbw86wk3h37862z";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
@@ -31180,30 +31212,31 @@ self: {
 
   "ats-pkg" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring, bzlib
-     , Cabal, cli-setup, composition-prelude, containers, dependency
-     , dhall, directory, file-embed, filemanip, hashable, http-client
-     , http-client-tls, lens, lzma, mtl, optparse-applicative
-     , parallel-io, process, shake, shake-ats, shake-ext, tar, temporary
-     , text, unix, zip-archive, zlib
+     , Cabal, cli-setup, composition-prelude, containers, cpphs
+     , dependency, dhall, directory, file-embed, filemanip, hashable
+     , http-client, http-client-tls, lzma, microlens, microlens-th, mtl
+     , optparse-applicative, parallel-io, process, shake, shake-ats
+     , shake-ext, tar, temporary, text, unix, zip-archive, zlib
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "2.10.1.5";
-       sha256 = "14y4mpk6hkqvw8jh49idj9gx2wxcy2ppz00abny6fsbw6iff4xrs";
+       version = "2.10.1.8";
+       sha256 = "1i6dm3w5qw5xbhlzlazbp6klr31j4qajyqdwdq5r38scascdhjbq";
        revision = "1";
-       editedCabalFile = "0ff0nslsi5b4g8gp63x6js3c026ajgfamd8pg2k1aygwx8x3zqk9";
+       editedCabalFile = "1j2dyw224gspfi7s1c316ip196c8kxx1vzpxxkkbx18bw9s72fa6";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
        libraryHaskellDepends = [
          ansi-wl-pprint base binary bytestring bzlib Cabal
          composition-prelude containers dependency dhall directory
-         file-embed filemanip hashable http-client http-client-tls lens lzma
-         mtl parallel-io process shake shake-ats shake-ext tar text unix
-         zip-archive zlib
+         file-embed filemanip hashable http-client http-client-tls lzma
+         microlens microlens-th mtl parallel-io process shake shake-ats
+         shake-ext tar text unix zip-archive zlib
        ];
+       libraryToolDepends = [ cpphs ];
        executableHaskellDepends = [
-         base composition-prelude directory lens optparse-applicative
+         base composition-prelude directory microlens optparse-applicative
          parallel-io shake shake-ats temporary text
        ];
        homepage = "https://github.com/vmchale/atspkg#readme";
@@ -35981,6 +36014,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "binary-tagged_0_1_5" = callPackage
+    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
+     , binary, binary-orphans, bytestring, containers, criterion
+     , deepseq, generics-sop, hashable, nats, quickcheck-instances
+     , scientific, semigroups, SHA, tagged, tasty, tasty-quickcheck
+     , text, time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "binary-tagged";
+       version = "0.1.5";
+       sha256 = "1s05hrak9mg8klid5jsdqh1i7d1zyzkpdbdc969g2s9h06lk7dyl";
+       libraryHaskellDepends = [
+         aeson array base base16-bytestring binary bytestring containers
+         generics-sop hashable scientific SHA tagged text time
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson array base base16-bytestring bifunctors binary binary-orphans
+         bytestring containers generics-sop hashable quickcheck-instances
+         scientific SHA tagged tasty tasty-quickcheck text time
+         unordered-containers vector
+       ];
+       benchmarkHaskellDepends = [
+         aeson array base base16-bytestring binary binary-orphans bytestring
+         containers criterion deepseq generics-sop hashable nats scientific
+         semigroups SHA tagged text time unordered-containers vector
+       ];
+       homepage = "https://github.com/phadej/binary-tagged#readme";
+       description = "Tagged binary serialisation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "binary-tree" = callPackage
     ({ mkDerivation, base, ChasingBottoms, checkers, criterion, deepseq
      , doctest, ghc-prim, HUnit, QuickCheck, random, test-framework
@@ -36123,6 +36189,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bindings-DSL_1_0_25" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "bindings-DSL";
+       version = "1.0.25";
+       sha256 = "0kqrd78nspl3lk4a0fqn47d8dirjg3b24dkvkigcrlb81hw35pk3";
+       libraryHaskellDepends = [ base ];
+       homepage = "https://github.com/jwiegley/bindings-dsl/wiki";
+       description = "FFI domain specific language, on top of hsc2hs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "bindings-EsounD" = callPackage
     ({ mkDerivation, base, bindings-audiofile, bindings-DSL, esound }:
      mkDerivation {
@@ -36731,10 +36810,10 @@ self: {
     ({ mkDerivation, base, bindings-DSL }:
      mkDerivation {
        pname = "bindings-posix";
-       version = "1.2.6";
-       sha256 = "1yza3qbf0f5gfpg79pb6xfpw37zg191nmxa4r6h9x4xb5na0rzff";
+       version = "1.2.7";
+       sha256 = "02bcb40jpwylcl48g48r2yd3j7pmij94975r3dcnmyk76kyp3fc3";
        libraryHaskellDepends = [ base bindings-DSL ];
-       description = "Low level bindings to posix";
+       description = "Project bindings-* raw interface to Posix";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -37707,8 +37786,8 @@ self: {
      }:
      mkDerivation {
        pname = "bits-extra";
-       version = "0.0.1.0";
-       sha256 = "0slxzlc81nbzzd7513i9crwqlpxxvpfz9haq5hr9qp533pr4cyz4";
+       version = "0.0.1.1";
+       sha256 = "0fsih4vrlq9l7851341n5qj1bp014f8rn7fhqf28803l6m3nrn1l";
        libraryHaskellDepends = [ base ghc-prim vector ];
        testHaskellDepends = [
          base ghc-prim hedgehog hspec hw-hedgehog hw-hspec-hedgehog
@@ -41394,8 +41473,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-encodings";
-       version = "0.1.0.1";
-       sha256 = "09lx8d92dhd4gicz8pbpj19k2iaig1yl4lksqpxiqgxzybwqn0rc";
+       version = "0.2.0.1";
+       sha256 = "0qjqbffp4fa7a95mfsgzhibqblxrxl4qa8kb0yhyb8c1r47r5nn7";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        testHaskellDepends = [ base bytestring hedgehog ];
        benchmarkHaskellDepends = [ base bytestring gauge text ];
@@ -44877,13 +44956,16 @@ self: {
      }) {};
 
   "cautious-file" = callPackage
-    ({ mkDerivation, base, bytestring, directory, filepath, unix }:
+    ({ mkDerivation, base, bytestring, Cabal, directory, filepath
+     , process, unix
+     }:
      mkDerivation {
        pname = "cautious-file";
        version = "1.0.2";
        sha256 = "1sw5ngwrarq1lsd4c6v2wdmgbhkkq6kpybb62r8ccm11ddgn3yiq";
-       revision = "1";
-       editedCabalFile = "14yqf1wljrham5k4i4189h2pdlwgj3v59ff4p346fivdzh234666";
+       revision = "2";
+       editedCabalFile = "02ysmm577c4z0s3mqrpdpmzvs18y834ic90iwi5czcnj02zvg22s";
+       setupHaskellDepends = [ base Cabal process ];
        libraryHaskellDepends = [
          base bytestring directory filepath unix
        ];
@@ -49419,6 +49501,8 @@ self: {
        pname = "codeworld-api";
        version = "0.2.2.1";
        sha256 = "0vb3v8d4jdzk14zs1jv4m5f2wa32bpxsfa0zr4f3w6z77as136sx";
+       revision = "2";
+       editedCabalFile = "0glp45kr9v8c9pxbaaq6cwm6i5rhglw2npk16kab80dgsfdb1pj9";
        libraryHaskellDepends = [
          base blank-canvas cereal cereal-text containers hashable mtl random
          random-shuffle text time
@@ -50872,24 +50956,40 @@ self: {
      }) {};
 
   "componentm" = callPackage
-    ({ mkDerivation, base, containers, deepseq, exceptions
+    ({ mkDerivation, base, containers, deepseq, exceptions, pretty-show
      , prettyprinter, rio, tasty, tasty-hunit, teardown
      }:
      mkDerivation {
        pname = "componentm";
-       version = "0.0.0.1";
-       sha256 = "1r2z9jbb0ka2i0lxbrb30p1x0zbwdcxid5k53mkzg82d5v2f08k9";
+       version = "0.0.0.2";
+       sha256 = "19xnav3xiw5v8sdmw6a90wdhxxkjlkvpkwrf0pjsxlisgn93vqpg";
        libraryHaskellDepends = [
-         base containers deepseq exceptions prettyprinter rio teardown
+         base containers deepseq exceptions pretty-show prettyprinter rio
+         teardown
        ];
        testHaskellDepends = [
-         base containers prettyprinter rio tasty tasty-hunit teardown
+         base containers pretty-show prettyprinter rio tasty tasty-hunit
+         teardown
        ];
        homepage = "https://github.com/roman/Haskell-componentm#readme";
        description = "Monad for allocation and cleanup of application resources";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "componentm-devel" = callPackage
+    ({ mkDerivation, base, componentm, foreign-store, rio, teardown }:
+     mkDerivation {
+       pname = "componentm-devel";
+       version = "0.0.0.2";
+       sha256 = "02jvv2f5akl47jg66xwcgj0s5wif0wckp2d0y6x4imr6kcy31mrd";
+       libraryHaskellDepends = [
+         base componentm foreign-store rio teardown
+       ];
+       homepage = "https://github.com/roman/Haskell-componentm#readme";
+       description = "Easy REPL driven development using ComponentM";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "composable-associations" = callPackage
     ({ mkDerivation, base, lens, tasty, tasty-hunit }:
      mkDerivation {
@@ -56400,6 +56500,8 @@ self: {
        pname = "cryptonite-conduit";
        version = "0.2.2";
        sha256 = "1bldcmda4xh52mw1wfrjljv8crhw3al7v7kv1j0vidvr7ymnjpbh";
+       revision = "1";
+       editedCabalFile = "1hh2nzfz4qpxgivfilgk4ll416lph8b2fdkzpzrmqfjglivydfmz";
        libraryHaskellDepends = [
          base bytestring conduit conduit-extra cryptonite exceptions memory
          resourcet transformers
@@ -61991,15 +62093,15 @@ self: {
 
   "dependency" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, binary, containers, cpphs
-     , criterion, deepseq, hspec, lens, recursion-schemes, transformers
+     , criterion, deepseq, hspec, micro-recursion-schemes, microlens
      }:
      mkDerivation {
        pname = "dependency";
-       version = "1.0.0.0";
-       sha256 = "08n38sqcnljja235cv4xlvfmir7cbcmb53rayc81nl3km292hr8i";
+       version = "1.1.0.0";
+       sha256 = "1874zvkv5vkx9s6864kmpihq7514hywzb2a1zhqn3f6qf27bnj9c";
        libraryHaskellDepends = [
-         ansi-wl-pprint base binary containers deepseq lens
-         recursion-schemes transformers
+         ansi-wl-pprint base binary containers deepseq
+         micro-recursion-schemes microlens
        ];
        libraryToolDepends = [ cpphs ];
        testHaskellDepends = [ base containers hspec ];
@@ -62414,6 +62516,41 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "descript-lang" = callPackage
+    ({ mkDerivation, aeson, array, autoexporter, base, bifunctors
+     , bytestring, containers, data-default, directory, exceptions
+     , filepath, fsnotify, hashtables, haskell-lsp, hslogger, hspec
+     , HUnit, lens, megaparsec, mtl, network-uri, optparse-applicative
+     , QuickCheck, rainbow, stm, text, transformers
+     , unordered-containers, vector, yaml, yi-rope
+     }:
+     mkDerivation {
+       pname = "descript-lang";
+       version = "0.2.0.0";
+       sha256 = "0gar05gz7xvz74c9573h6zgv8rflwclzr3aw21cnyy1wpkqlbsnl";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array autoexporter base bifunctors bytestring containers filepath
+         hashtables megaparsec stm text transformers
+       ];
+       executableHaskellDepends = [
+         aeson array autoexporter base bifunctors bytestring containers
+         data-default exceptions filepath fsnotify hashtables haskell-lsp
+         hslogger lens megaparsec mtl network-uri optparse-applicative
+         rainbow stm text transformers unordered-containers vector yi-rope
+       ];
+       testHaskellDepends = [
+         array autoexporter base bifunctors bytestring containers directory
+         filepath hashtables hspec HUnit megaparsec QuickCheck stm text
+         transformers yaml
+       ];
+       homepage = "https://bitbucket.org/jakobeha/descript-lang/src/master/README.md";
+       description = "Library, interpreter, and CLI for Descript programming language";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "descriptive" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, containers, hspec, HUnit
      , mtl, scientific, text, transformers, vector
@@ -62661,10 +62798,10 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall_1_13_1" = callPackage
+  "dhall_1_14_0" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, case-insensitive
      , containers, contravariant, cryptonite, deepseq, directory
-     , exceptions, filepath, formatting, haskeline, http-client
+     , doctest, exceptions, filepath, formatting, haskeline, http-client
      , http-client-tls, insert-ordered-containers, lens-family-core
      , megaparsec, memory, mtl, optparse-applicative, parsers
      , prettyprinter, prettyprinter-ansi-terminal, repline, scientific
@@ -62673,8 +62810,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.13.1";
-       sha256 = "1mjhxkdpw7blcdci6cmm3x2c9ascp7djc8c77dblfpzyqa3sqxf0";
+       version = "1.14.0";
+       sha256 = "0dm823rr4gkx1m7f0v9wvqlkhn1mmmml854p4zsi2j6ai4l885gl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62690,7 +62827,7 @@ self: {
          prettyprinter prettyprinter-ansi-terminal repline text
        ];
        testHaskellDepends = [
-         base deepseq insert-ordered-containers prettyprinter tasty
+         base deepseq doctest insert-ordered-containers prettyprinter tasty
          tasty-hunit text vector
        ];
        description = "A configuration language guaranteed to terminate";
@@ -62705,10 +62842,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.12";
-       sha256 = "1q9bwcdxyn2f7zp6r67k3kxqydj54shf0v0liyps7g7c9fixzrij";
-       revision = "1";
-       editedCabalFile = "12qklhw4jk2i1qiq9wyv23d6bl3yyqyjwf8dda649clby2my0hrc";
+       version = "1.0.13";
+       sha256 = "04f9ksw36kqb1g41211hcfcgg21pxkdszsznpa1vh09dcmlv6i7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62762,23 +62897,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_1_0" = callPackage
+  "dhall-json_1_2_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, dhall
-     , optparse-generic, text, unordered-containers, yaml
+     , insert-ordered-containers, optparse-applicative, text
+     , unordered-containers, yaml
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.1.0";
-       sha256 = "13fan1zdgj8zdv1br5vj57iqbfb5grllk8a2xkz6yyfk8kylmrc7";
-       revision = "1";
-       editedCabalFile = "0k8q44hfhd95k7i92g1zvsw9ys1ak6vl663r2v7pf6k1zl70cyhs";
+       version = "1.2.0";
+       sha256 = "0ks8ycgysimj1jqabzdrrsdcqkp3bi5f0zhwgmilsprx88dxrddz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base dhall text unordered-containers
+         aeson base dhall insert-ordered-containers optparse-applicative
+         text unordered-containers
        ];
        executableHaskellDepends = [
-         aeson aeson-pretty base bytestring dhall optparse-generic text yaml
+         aeson aeson-pretty base bytestring dhall optparse-applicative text
+         yaml
        ];
        description = "Compile Dhall to JSON or YAML";
        license = stdenv.lib.licenses.bsd3;
@@ -62811,8 +62947,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.3";
-       sha256 = "0dpkg84qzviasadgif30ivbg6k7azqq9ki8grd3g93zbrdxgv4fj";
+       version = "1.1.4";
+       sha256 = "1yhnpmvisizl5vm37sns8sn0ff496aqr2i76v3c2034cjd9v0mdb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62831,8 +62967,8 @@ self: {
     ({ mkDerivation, base, dhall, optparse-generic, text }:
      mkDerivation {
        pname = "dhall-text";
-       version = "1.0.9";
-       sha256 = "0jh2nm26i5gdicsxzvx54rmx7x1g5mpjiwd7c5wfj6pmrpcp606r";
+       version = "1.0.10";
+       sha256 = "07cxc3m2pqg5lk0d03i20ch6bsq779sg3ci4yy1fkai8vs513yjq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base dhall optparse-generic text ];
@@ -63208,8 +63344,8 @@ self: {
        pname = "diagrams-gtk";
        version = "1.4";
        sha256 = "1sga2wwkircjgryd4pn9i0wvvcnh3qnhpxas32crpdq939idwsxn";
-       revision = "1";
-       editedCabalFile = "0afpcbgkc897gp0hpqi5frwbzln1qapf36p93v9zxl05my6nj04i";
+       revision = "2";
+       editedCabalFile = "0hblrqvwk1pbssaci97v36r71kpm7kkcghh5ijmq52lmjfq72jqm";
        libraryHaskellDepends = [
          base cairo diagrams-cairo diagrams-lib gtk
        ];
@@ -63840,6 +63976,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "difference-monoid" = callPackage
+    ({ mkDerivation, adjunctions, base, comonad, containers, deepseq
+     , distributive, doctest, groups, hedgehog, hedgehog-checkers
+     , QuickCheck, semigroupoids
+     }:
+     mkDerivation {
+       pname = "difference-monoid";
+       version = "0.1.0.0";
+       sha256 = "1i99hcxb07142227x4f0p2giayvzpr49ynx6apys178bgi99ih3k";
+       libraryHaskellDepends = [
+         adjunctions base comonad deepseq distributive groups semigroupoids
+       ];
+       testHaskellDepends = [
+         adjunctions base comonad containers deepseq distributive doctest
+         groups hedgehog hedgehog-checkers QuickCheck semigroupoids
+       ];
+       homepage = "https://github.com/oisdk/difference-monoid#readme";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "difftodo" = callPackage
     ({ mkDerivation, base, bytestring, diff-parse, highlighter2
      , optparse-applicative, pretty-show, process, protolude, tasty
@@ -65917,7 +66073,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dns_3_0_3" = callPackage
+  "dns_3_0_4" = callPackage
     ({ mkDerivation, async, attoparsec, auto-update, base
      , base64-bytestring, binary, bytestring, containers, cryptonite
      , doctest, hspec, iproute, mtl, network, psqueues, QuickCheck, safe
@@ -65925,8 +66081,8 @@ self: {
      }:
      mkDerivation {
        pname = "dns";
-       version = "3.0.3";
-       sha256 = "0m7xgf5vgh3xj5yrv8hyvhx3lligx1xrnq22a9b6s2prbywyllfv";
+       version = "3.0.4";
+       sha256 = "1aa4zb9zkk244rndimrq8maxj9qrmz3rb13v9n8jblmp6ssk6d3v";
        libraryHaskellDepends = [
          async attoparsec auto-update base base64-bytestring binary
          bytestring containers cryptonite iproute mtl network psqueues safe
@@ -67587,6 +67743,8 @@ self: {
        pname = "dual-tree";
        version = "0.2.2";
        sha256 = "1sx9p9yr06z7bi7pshjpswizs6bkmfzcpw8xlasriniry86df4kl";
+       revision = "1";
+       editedCabalFile = "1hkjhij3s2a82b0sd898511lr6iphk3myk1l0hpl42ai32sf606q";
        libraryHaskellDepends = [
          base monoid-extras newtype-generics semigroups
        ];
@@ -71737,8 +71895,8 @@ self: {
      }:
      mkDerivation {
        pname = "etc";
-       version = "0.4.0.0";
-       sha256 = "0zyyayk9b6jzksxd14k08594ms5szgcpa63nlw3vnni1q1c2x1v4";
+       version = "0.4.0.1";
+       sha256 = "0vpc3816vsxs985h076wxyr3z9q759399xapnhiv1m428sksw6zs";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base hashable rio text typed-process unliftio
@@ -74241,8 +74399,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-arithmetic";
-       version = "0.6.0.5";
-       sha256 = "138qdgwqc3qnafi0kf5nkva3nvcfn71b1ch2xrwgxkna5kniqjrh";
+       version = "0.6.0.6";
+       sha256 = "1vw652sps7dx11anqrrjw2fz039m7bkcfmk61px9g3yn0wvjlm02";
        libraryHaskellDepends = [ base composition-prelude gmpint ];
        testHaskellDepends = [ arithmoi base combinat hspec QuickCheck ];
        benchmarkHaskellDepends = [ arithmoi base combinat criterion ];
@@ -78547,6 +78705,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "forma_1_0_0" = callPackage
+    ({ mkDerivation, aeson, base, containers, hspec, mtl, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "forma";
+       version = "1.0.0";
+       sha256 = "11rqwlqsjw5r674zqv9lmafqhlb339afifa2376a6cgbxm7j2msd";
+       libraryHaskellDepends = [
+         aeson base containers mtl text unordered-containers
+       ];
+       testHaskellDepends = [ aeson base containers hspec mtl text ];
+       homepage = "https://github.com/mrkkrp/forma";
+       description = "Parse and validate forms in JSON format";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "formal" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, containers
      , directory, file-embed, HTTP, indents, interpolatedstring-perl6
@@ -84548,6 +84724,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ghc-trace-events" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, text }:
+     mkDerivation {
+       pname = "ghc-trace-events";
+       version = "0.0.0";
+       sha256 = "00lq6bcl78drqlzj39avf9k2x2q4d2fdac3rrxrxicsdwry6brkk";
+       libraryHaskellDepends = [ base bytestring text ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       homepage = "https://github.com/maoe/ghc-trace-events";
+       description = "Faster replacements for traceEvent and traceEventMarker";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ghc-typelits-extra" = callPackage
     ({ mkDerivation, base, ghc, ghc-prim, ghc-tcplugins-extra
      , ghc-typelits-knownnat, ghc-typelits-natnormalise, integer-gmp
@@ -90896,8 +91085,8 @@ self: {
      }:
      mkDerivation {
        pname = "grammatical-parsers";
-       version = "0.3";
-       sha256 = "1dqmjg40h4gm6921yq84sx8x5sdbzhnv8xl7m2ylb872ddbzfwg3";
+       version = "0.3.1";
+       sha256 = "12lrzzpv48j34y6lwyiq7hg3mahynwj934rsfjmyamy5m5ya0170";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -90915,7 +91104,7 @@ self: {
          text
        ];
        homepage = "https://github.com/blamario/grampa/tree/master/grammatical-parsers";
-       description = "parsers that can combine into grammars";
+       description = "parsers that combine into grammars";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -92630,8 +92819,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk-sni-tray";
-       version = "0.1.3.0";
-       sha256 = "197a0wfbg6xzyka2ydbmbs6g6mghlp1ncchbmrb6gzn3b85iggq6";
+       version = "0.1.3.1";
+       sha256 = "1wsq7d47px11c64k38nqxms408yd4il35ai8r53p76qnd04s8saw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -92655,8 +92844,8 @@ self: {
     ({ mkDerivation, base, gi-gdk, gi-gtk, text, transformers }:
      mkDerivation {
        pname = "gtk-strut";
-       version = "0.1.2.0";
-       sha256 = "1v73qca2qdkpvfal2ndmwrxyj1qwgxgmammkbf88azs7wcxcf7y6";
+       version = "0.1.2.1";
+       sha256 = "1m5vvyiyn4v6a8jhizcm8dyi20q2nag9ycm0c2hdxfhsl7fxbx31";
        libraryHaskellDepends = [ base gi-gdk gi-gtk text transformers ];
        homepage = "https://github.com/IvanMalison/gtk-strut#readme";
        description = "Libary for creating strut windows with gi-gtk";
@@ -92899,8 +93088,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtkglext";
-       version = "0.13.1.1";
-       sha256 = "15v40f21xlg5r2zidh77cfiq6ink1dxljbl59mf5sqyq5pjbdw3h";
+       version = "0.13.2.0";
+       sha256 = "14rid23m5qa5g0fkc07cac5j8arkbz3cc23wkva7b46xnyfs10ra";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [ base glib gtk pango ];
@@ -94745,8 +94934,8 @@ self: {
     ({ mkDerivation, base, filepath, haddock-api, hspec }:
      mkDerivation {
        pname = "haddock";
-       version = "2.19.0.1";
-       sha256 = "1g1j9j0hf2yhyyh0gwz6bzbvfvliqz9x8a8hnkmwghm7w3xa6sb7";
+       version = "2.20.0";
+       sha256 = "0jfgd9n0gcbg9i2ifra5cnj0xh2nc5j65ns3b280482r65vnph9w";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base haddock-api ];
@@ -94830,10 +95019,8 @@ self: {
      }:
      mkDerivation {
        pname = "haddock-api";
-       version = "2.19.0.1";
-       sha256 = "0c6i7sljp7myz25d90gyw68a90i5jcrkajkxcciikp2hjirfaas3";
-       revision = "1";
-       editedCabalFile = "0lfvhpiy8zr117wn9s9nc5va83rb0jz1h14ggm88565xr6qbwmjx";
+       version = "2.20.0";
+       sha256 = "02f6038djjbx2vshd5digk4rm16fl33m080s7v01nn5bzfak9g7j";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base bytestring Cabal containers deepseq directory filepath
@@ -94970,6 +95157,30 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "haddock-library_1_6_0" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, containers, deepseq
+     , directory, filepath, hspec, hspec-discover, optparse-applicative
+     , QuickCheck, transformers, tree-diff
+     }:
+     mkDerivation {
+       pname = "haddock-library";
+       version = "1.6.0";
+       sha256 = "0h7721zw6kbm1vcr0kp69avfy3qfd9zsgmh24gy909kxgdp0k7v0";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq transformers
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring containers deepseq directory filepath
+         hspec optparse-applicative QuickCheck transformers tree-diff
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       homepage = "http://www.haskell.org/haddock/";
+       description = "Library exposing some functionality of Haddock";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haddock-test" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, filepath
      , process, syb, xhtml, xml
@@ -97873,6 +98084,8 @@ self: {
        pname = "hashable-time";
        version = "0.2.0.1";
        sha256 = "0k932nyd08l3xxbh2g3n76py2f4kd9yw4s5a065vjz0xp6wjnxdm";
+       revision = "1";
+       editedCabalFile = "0rv40xkg3gj8jnqsry1gq3f5s5la6d5arg8fzkirnwdpcgha1as6";
        libraryHaskellDepends = [ base hashable time ];
        description = "Hashable instances for Data.Time";
        license = stdenv.lib.licenses.bsd3;
@@ -103158,8 +103371,8 @@ self: {
      }:
      mkDerivation {
        pname = "hdocs";
-       version = "0.5.2.1";
-       sha256 = "1b8qrkfryyj8fg07vzl4cq4rwsbhlaqm5l477ld4mmgcgk4infi8";
+       version = "0.5.3.0";
+       sha256 = "0gkv4xy7jr2ic22gn5fpj3vd6avgd1xqblv96gg1m0fhfsj92y5h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -103615,6 +103828,33 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hedis_0_10_2" = callPackage
+    ({ mkDerivation, async, base, bytestring, bytestring-lexing
+     , deepseq, doctest, errors, HTTP, HUnit, mtl, network, network-uri
+     , resource-pool, scanner, slave-thread, stm, test-framework
+     , test-framework-hunit, text, time, tls, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "hedis";
+       version = "0.10.2";
+       sha256 = "05bnma4ssdg4zx39xrwx14xys47zdxxkk9iyi8d29p1vb90vv68w";
+       libraryHaskellDepends = [
+         async base bytestring bytestring-lexing deepseq errors HTTP mtl
+         network network-uri resource-pool scanner stm text time tls
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         async base bytestring doctest HUnit mtl slave-thread stm
+         test-framework test-framework-hunit text time
+       ];
+       benchmarkHaskellDepends = [ base mtl time ];
+       homepage = "https://github.com/informatikr/hedis";
+       description = "Client library for the Redis datastore: supports full command set, pipelining";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hedis-config" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hedis, scientific, text
      , time
@@ -110940,8 +111180,8 @@ self: {
      }:
      mkDerivation {
        pname = "hprotoc";
-       version = "2.4.9";
-       sha256 = "1bfar7biksa9ha6vzrh4z2lz048mf1zz261ih6mbl9q6kvyr27w4";
+       version = "2.4.10";
+       sha256 = "14zihg4gb42kr68y73mzb7a9ryc2yi4h50n3a4v8idw17f3fdhlz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -114238,15 +114478,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hspec-golden-aeson_0_6_0_0" = callPackage
+  "hspec-golden-aeson_0_7_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, directory
      , filepath, hspec, hspec-core, QuickCheck, quickcheck-arbitrary-adt
      , random, silently, transformers
      }:
      mkDerivation {
        pname = "hspec-golden-aeson";
-       version = "0.6.0.0";
-       sha256 = "0918b4y0lkz66hyhydqkd0yxna37vqqqc0pgjg4vn1h860xj0rv0";
+       version = "0.7.0.0";
+       sha256 = "18jc992dhln1v5sfg8yjfsm2i5c7c38ph3bxrjxgc9bl7fzcsk0i";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring directory filepath hspec
          QuickCheck quickcheck-arbitrary-adt random transformers
@@ -119806,8 +120046,8 @@ self: {
      }:
      mkDerivation {
        pname = "iCalendar";
-       version = "0.4.0.3";
-       sha256 = "0dbs9s68fpx67ngjnd1p8c9n421bzn6a034dr6i3bhg2cn0s01mw";
+       version = "0.4.0.4";
+       sha256 = "1hgji4riaqjpsqi2c7i1md9p8ig4sfigmldllnpkwbbhwhzmnsq5";
        libraryHaskellDepends = [
          base base64-bytestring bytestring case-insensitive containers
          data-default mime mtl network network-uri old-locale parsec text
@@ -121293,23 +121533,24 @@ self: {
 
   "implicit" = callPackage
     ({ mkDerivation, base, blaze-builder, blaze-markup, blaze-svg
-     , bytestring, containers, criterion, deepseq, directory, download
-     , filepath, hspec, JuicyPixels, monads-tf, mtl, NumInstances
-     , optparse-applicative, parallel, parsec, random, silently
-     , snap-core, snap-server, storable-endian, text, transformers
-     , unordered-containers, vector-space
+     , bytestring, bytestring-builder, containers, criterion, deepseq
+     , directory, filepath, hspec, JuicyPixels, monads-tf, mtl
+     , NumInstances, optparse-applicative, parallel, parsec, random
+     , silently, snap-core, snap-server, storable-endian, text
+     , transformers, unordered-containers, vector-space
      }:
      mkDerivation {
        pname = "implicit";
-       version = "0.1.0";
-       sha256 = "16yhclgph95a698qbs6l9c16k950bh1zzy8spwgfjh7ilpn0s4pk";
+       version = "0.2.0";
+       sha256 = "1lj206x2s7sdjg6yllhp809d7k84xa6ky70859jyw4m6bry4xyaw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base blaze-builder blaze-markup blaze-svg bytestring containers
-         criterion deepseq directory download filepath JuicyPixels monads-tf
-         NumInstances parallel parsec silently snap-core snap-server
-         storable-endian text transformers unordered-containers vector-space
+         base blaze-builder blaze-markup blaze-svg bytestring
+         bytestring-builder containers criterion deepseq directory filepath
+         hspec JuicyPixels monads-tf NumInstances parallel parsec silently
+         snap-core snap-server storable-endian text transformers
+         unordered-containers vector-space
        ];
        executableHaskellDepends = [
          base blaze-builder blaze-markup blaze-svg bytestring containers
@@ -122746,8 +122987,8 @@ self: {
      }:
      mkDerivation {
        pname = "int-multimap";
-       version = "0.3";
-       sha256 = "1hsd55hg52mb6vimk5813l0s72spvy9njrhzz6dc6jddh65v58lv";
+       version = "0.3.1";
+       sha256 = "0sl3xzlw0mzyq1h28mqklm41q9pknsf1qmd74a5syn24m01dknnv";
        libraryHaskellDepends = [
          base containers hashable unordered-containers
        ];
@@ -129325,6 +129566,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "kleene" = callPackage
+    ({ mkDerivation, base, base-compat-batteries, containers, lattices
+     , MemoTrie, QuickCheck, range-set-list, regex-applicative
+     , step-function, text, transformers
+     }:
+     mkDerivation {
+       pname = "kleene";
+       version = "0";
+       sha256 = "00hbrmsm19azxxql14y6k7h7z8k4azlmy4y0gimyqbx4nb7swln6";
+       libraryHaskellDepends = [
+         base base-compat-batteries containers lattices MemoTrie QuickCheck
+         range-set-list regex-applicative step-function text transformers
+       ];
+       homepage = "https://github.com/phadej/kleene";
+       description = "Kleene algebra";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "kmeans" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -138666,15 +138925,15 @@ self: {
      }) {};
 
   "lucid-extras" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, directory, lucid
-     , text
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, directory
+     , lucid, text
      }:
      mkDerivation {
        pname = "lucid-extras";
-       version = "0.1.0.0";
-       sha256 = "0akpsh79lpdx7in1ffzz2l36i4gnvfn290cjz0pdr0y8bs0bv9dr";
+       version = "0.1.0.1";
+       sha256 = "0wyb5pqhphfckmzpnl0xp6fy8fmnwqjqim3h3f3sdjqkqdly5iaw";
        libraryHaskellDepends = [
-         base blaze-builder bytestring lucid text
+         aeson base blaze-builder bytestring lucid text
        ];
        testHaskellDepends = [ base directory lucid ];
        homepage = "https://github.com/diffusionkinetics/open/lucid-extras";
@@ -142339,9 +142598,11 @@ self: {
        pname = "meldable-heap";
        version = "2.0.3";
        sha256 = "1p75zjlls38sd1lma7w95mpmb9kdff19s2as6pz1ki1g20nnxdk3";
+       revision = "1";
+       editedCabalFile = "1igir17mnzrmvbcp5n93x1zqjbc44dv0gl4z7szvi7nqh47h72k7";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base ];
-       homepage = "http://code.google.com/p/priority-queues/";
+       homepage = "https://github.com/jbapple/priority-queues";
        description = "Asymptotically optimal, Coq-verified meldable heaps, AKA priority queues";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -146326,8 +146587,8 @@ self: {
     ({ mkDerivation, base, mtl, stm }:
      mkDerivation {
        pname = "monadIO";
-       version = "0.10.1.4";
-       sha256 = "08158j978h69knbnzxkzv856sjhhw24h5lh7d8hx2lyhzbpnfarl";
+       version = "0.11.0.0";
+       sha256 = "11pbg83fw5vdlny5w9afmzdhn3ryg1av429gbsk8w6wl8zqhd4n9";
        libraryHaskellDepends = [ base mtl stm ];
        description = "Overloading of concurrency variables";
        license = stdenv.lib.licenses.bsd3;
@@ -147384,17 +147645,22 @@ self: {
      }) {};
 
   "motor" = callPackage
-    ({ mkDerivation, base, CTRex, indexed, indexed-extras, reflection
-     , template-haskell
+    ({ mkDerivation, base, indexed, indexed-extras, reflection
+     , row-types, template-haskell
      }:
      mkDerivation {
        pname = "motor";
-       version = "0.2.0.0";
-       sha256 = "0py79plg65d1h49zm8jz6hbzg57lq0psv8k5m5w23dwrgn9jr4x1";
+       version = "0.3.0";
+       sha256 = "0yx0gwdqny8p5nggigk5w57cyf2qjdjb5ypppwd84qjm663na9bh";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base CTRex indexed indexed-extras reflection template-haskell
+         base indexed indexed-extras reflection row-types template-haskell
        ];
-       testHaskellDepends = [ base CTRex indexed indexed-extras ];
+       executableHaskellDepends = [
+         base indexed indexed-extras row-types
+       ];
+       testHaskellDepends = [ base indexed indexed-extras row-types ];
        description = "Type-safe effectful state machines in Haskell";
        license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -147406,8 +147672,8 @@ self: {
      }:
      mkDerivation {
        pname = "motor-diagrams";
-       version = "0.2.0.0";
-       sha256 = "094in9l2sngxg4p2ijfi97dqs6v7rk1a4h7fcbi269qmh9sfck43";
+       version = "0.3.0";
+       sha256 = "1rvlb3gvnzdqzwrg3nm21vw6j33c4aqp6npsz8cdbh24ijc46jbr";
        libraryHaskellDepends = [
          base motor motor-reflection template-haskell text
        ];
@@ -147420,16 +147686,16 @@ self: {
      }) {};
 
   "motor-reflection" = callPackage
-    ({ mkDerivation, base, CTRex, hspec, hspec-discover, indexed, motor
-     , template-haskell, text
+    ({ mkDerivation, base, hspec, hspec-discover, indexed, motor
+     , row-types, template-haskell, text
      }:
      mkDerivation {
        pname = "motor-reflection";
-       version = "0.2.0.0";
-       sha256 = "0qycmskhvh3n3pa4xib72irzka8hn93bqv4ayrykhnp4k0fbbndd";
+       version = "0.3.0";
+       sha256 = "1mac2ywknribmzs79dpjigk45nzrwsx7as0zi1zaqrq2vy45xl8y";
        libraryHaskellDepends = [ base motor template-haskell text ];
        testHaskellDepends = [
-         base CTRex hspec hspec-discover indexed motor
+         base hspec hspec-discover indexed motor row-types
        ];
        description = "Reflect on Motor FSM typeclasses to obtain runtime representations";
        license = stdenv.lib.licenses.mpl20;
@@ -150315,26 +150581,26 @@ self: {
      }) {};
 
   "nanovg" = callPackage
-    ({ mkDerivation, base, bytestring, c2hs, containers, GLEW, hspec
-     , inline-c, libGL, libGLU, QuickCheck, text, vector
+    ({ mkDerivation, base, bytestring, c2hs, containers, GLEW, glew
+     , hspec, inline-c, libGL, libGLU, QuickCheck, text, vector
      }:
      mkDerivation {
        pname = "nanovg";
-       version = "0.5.2.0";
-       sha256 = "0p8g3235srd23vpy2yvw68sxdx4mb31m09yvm8im3rbhfwi1vqr2";
-       revision = "1";
-       editedCabalFile = "0ls8wyr1gk1qcd3vzyi0a1i8jxy9b6x3973fy0h1icda7f62r0mb";
+       version = "0.6.0.0";
+       sha256 = "15nljmlcgj1pw9ydy3a9nmk6zpgfp3p71arw04b1krx2y9r2fnp3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring containers text vector ];
        librarySystemDepends = [ GLEW libGL libGLU ];
+       libraryPkgconfigDepends = [ glew ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base containers hspec inline-c QuickCheck ];
        homepage = "https://github.com/cocreature/nanovg-hs";
        description = "Haskell bindings for nanovg";
        license = stdenv.lib.licenses.isc;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {GLEW = null; inherit (pkgs) libGL; inherit (pkgs) libGLU;};
+     }) {GLEW = null; inherit (pkgs) glew; inherit (pkgs) libGL; 
+         inherit (pkgs) libGLU;};
 
   "nanq" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
@@ -154598,8 +154864,8 @@ self: {
      }:
      mkDerivation {
        pname = "numhask-prelude";
-       version = "0.0.4.0";
-       sha256 = "11kwszs98c00bcjr318rm7yfc0h304s6vnrmh97mp4xp4bk7fqq1";
+       version = "0.0.4.1";
+       sha256 = "1sj7l62cgk68b1d2lfxd944yxw43l6a3qr335x21jjhgdaffwg3x";
        libraryHaskellDepends = [
          base numhask protolude QuickCheck tasty tasty-quickcheck
        ];
@@ -155037,8 +155303,8 @@ self: {
      }:
      mkDerivation {
        pname = "obdd";
-       version = "0.8.1";
-       sha256 = "04cfbqsy65kvs9iyx8crpz54l0jmndvz2smn83k0ybpj3ahs4kj2";
+       version = "0.8.2";
+       sha256 = "17cs06cxxmjknb1mc691n5k70yqplasqc97dpr6vx71aj1wzwzhw";
        libraryHaskellDepends = [
          array base containers ersatz mtl process-extras random text
        ];
@@ -156510,8 +156776,8 @@ self: {
      }:
      mkDerivation {
        pname = "openpgp-Crypto";
-       version = "0.5";
-       sha256 = "0gsdzfg378j7s2kpryg43ajxcdk8s5szk0yq48qfvnlsbgrxz07r";
+       version = "0.6";
+       sha256 = "0143ln5pr3d0kg28838ipir3j6x6r6j9rc4f5dmvsb2ffl464zxm";
        libraryHaskellDepends = [
          base binary bytestring Crypto openpgp utf8-string
        ];
@@ -167915,8 +168181,8 @@ self: {
      }:
      mkDerivation {
        pname = "potoki-hasql";
-       version = "1.3";
-       sha256 = "0n8ysdcg8p40idbbnyrmhjyh1hxhg7nrv5yf03fb0cvx5mwdgh11";
+       version = "1.4";
+       sha256 = "1ahdmc98pkfvbj8z1ds6xfzrj77wqbagfkn9jfzsz14z2m2rw8b2";
        libraryHaskellDepends = [
          base bytestring hasql potoki potoki-core profunctors text vector
        ];
@@ -170929,6 +171195,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers_2_4_10" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , directory, filepath, mtl, parsec, syb, utf8-string
+     }:
+     mkDerivation {
+       pname = "protocol-buffers";
+       version = "2.4.10";
+       sha256 = "0rr7yla1gl199hk2zn7jr1p0nq166mi4dm43ild27y6bvrdc2kvk";
+       libraryHaskellDepends = [
+         array base binary bytestring containers directory filepath mtl
+         parsec syb utf8-string
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Parse Google Protocol Buffer specifications";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor" = callPackage
     ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
      mkDerivation {
@@ -170944,6 +171228,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers-descriptor_2_4_10" = callPackage
+    ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
+     mkDerivation {
+       pname = "protocol-buffers-descriptor";
+       version = "2.4.10";
+       sha256 = "1w4n0yqf5xhbs5yi0xj8ak268chngklc7sif2s3bjr0dwk7fi5d0";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers protocol-buffers
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor-fork" = callPackage
     ({ mkDerivation, base, bytestring, containers
      , protocol-buffers-fork
@@ -171813,57 +172113,54 @@ self: {
      , ansi-wl-pprint, base, base-compat, blaze-html, bower-json, boxes
      , bytestring, cheapskate, clock, containers, data-ordlist, deepseq
      , directory, dlist, edit-distance, file-embed, filepath, fsnotify
-     , gitrev, Glob, haskeline, hspec, hspec-discover, http-client
-     , http-types, HUnit, language-javascript, lens, lifted-base
-     , monad-control, monad-logger, mtl, network, optparse-applicative
-     , parallel, parsec, pattern-arrows, pipes, pipes-http, process
-     , protolude, regex-tdfa, safe, scientific, semigroups, silently
-     , sourcemap, spdx, split, stm, stringsearch, syb, text, time
-     , transformers, transformers-base, transformers-compat
-     , unordered-containers, utf8-string, vector, wai, wai-websockets
-     , warp, websockets
+     , gitrev, Glob, haskeline, hspec, hspec-discover, http-types, HUnit
+     , language-javascript, lens, lifted-base, monad-control
+     , monad-logger, mtl, network, optparse-applicative, parallel
+     , parsec, pattern-arrows, process, protolude, regex-tdfa, safe
+     , scientific, semigroups, sourcemap, spdx, split, stm, stringsearch
+     , syb, tasty, tasty-hspec, text, time, transformers
+     , transformers-base, transformers-compat, unordered-containers
+     , utf8-string, vector, wai, wai-websockets, warp, websockets
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.11.7";
-       sha256 = "1q6nzxchmwdqrx3bxx0k1h8a62iihz9kcfwybzhb9x13p9nbx9np";
+       version = "0.12.0";
+       sha256 = "0lkrlry4rr1l1c5ncy7wlbv1ll6n0dkw7j1gjpxn3706gan921rb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-better-errors ansi-terminal base base-compat blaze-html
          bower-json boxes bytestring cheapskate clock containers
          data-ordlist deepseq directory dlist edit-distance file-embed
-         filepath fsnotify Glob haskeline http-client http-types
-         language-javascript lens lifted-base monad-control monad-logger mtl
-         parallel parsec pattern-arrows pipes pipes-http process protolude
-         regex-tdfa safe scientific semigroups sourcemap spdx split stm
-         stringsearch syb text time transformers transformers-base
-         transformers-compat unordered-containers utf8-string vector
+         filepath fsnotify Glob haskeline language-javascript lens
+         lifted-base monad-control monad-logger mtl parallel parsec
+         pattern-arrows process protolude regex-tdfa safe scientific
+         semigroups sourcemap spdx split stm stringsearch syb text time
+         transformers transformers-base transformers-compat
+         unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
          aeson aeson-better-errors ansi-terminal ansi-wl-pprint base
          base-compat blaze-html bower-json boxes bytestring cheapskate clock
          containers data-ordlist deepseq directory dlist edit-distance
-         file-embed filepath fsnotify gitrev Glob haskeline http-client
-         http-types language-javascript lens lifted-base monad-control
-         monad-logger mtl network optparse-applicative parallel parsec
-         pattern-arrows pipes pipes-http process protolude regex-tdfa safe
-         scientific semigroups sourcemap spdx split stm stringsearch syb
-         text time transformers transformers-base transformers-compat
-         unordered-containers utf8-string vector wai wai-websockets warp
-         websockets
+         file-embed filepath fsnotify gitrev Glob haskeline http-types
+         language-javascript lens lifted-base monad-control monad-logger mtl
+         network optparse-applicative parallel parsec pattern-arrows process
+         protolude regex-tdfa safe scientific semigroups sourcemap spdx
+         split stm stringsearch syb text time transformers transformers-base
+         transformers-compat unordered-containers utf8-string vector wai
+         wai-websockets warp websockets
        ];
        testHaskellDepends = [
          aeson aeson-better-errors ansi-terminal base base-compat blaze-html
          bower-json boxes bytestring cheapskate clock containers
          data-ordlist deepseq directory dlist edit-distance file-embed
-         filepath fsnotify Glob haskeline hspec hspec-discover http-client
-         http-types HUnit language-javascript lens lifted-base monad-control
-         monad-logger mtl parallel parsec pattern-arrows pipes pipes-http
-         process protolude regex-tdfa safe scientific semigroups silently
-         sourcemap spdx split stm stringsearch syb text time transformers
-         transformers-base transformers-compat unordered-containers
-         utf8-string vector
+         filepath fsnotify Glob haskeline hspec hspec-discover HUnit
+         language-javascript lens lifted-base monad-control monad-logger mtl
+         parallel parsec pattern-arrows process protolude regex-tdfa safe
+         scientific semigroups sourcemap spdx split stm stringsearch syb
+         tasty tasty-hspec text time transformers transformers-base
+         transformers-compat unordered-containers utf8-string vector
        ];
        doCheck = false;
        homepage = "http://www.purescript.org/";
@@ -174295,6 +174592,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rainbow_0_30_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, lens-simple, process, QuickCheck
+     , text
+     }:
+     mkDerivation {
+       pname = "rainbow";
+       version = "0.30.0.2";
+       sha256 = "1isy1xfgsp25x0254gmqkakc185g87wil3n19w5s1rn3bfq1w0my";
+       libraryHaskellDepends = [
+         base bytestring lens-simple process text
+       ];
+       testHaskellDepends = [
+         base bytestring lens-simple process QuickCheck text
+       ];
+       homepage = "https://www.github.com/massysett/rainbow";
+       description = "Print text to terminal with colors and effects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rainbow-tests" = callPackage
     ({ mkDerivation, barecheck, base, QuickCheck, rainbow, terminfo
      , text
@@ -174918,14 +175235,14 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "range-set-list_0_1_2_1" = callPackage
+  "range-set-list_0_1_3" = callPackage
     ({ mkDerivation, base, containers, deepseq, hashable, tasty
      , tasty-quickcheck
      }:
      mkDerivation {
        pname = "range-set-list";
-       version = "0.1.2.1";
-       sha256 = "06f8z9rmk2phmds9wv95y2xvjhfx8dr9jbqlv4ybv8m21283x0kw";
+       version = "0.1.3";
+       sha256 = "1pwnriv5r093qvqzzg9s868613nf92d3h8qmqaqc5qq95hykj6z5";
        libraryHaskellDepends = [ base containers deepseq hashable ];
        testHaskellDepends = [
          base containers deepseq hashable tasty tasty-quickcheck
@@ -175717,8 +176034,8 @@ self: {
      }:
      mkDerivation {
        pname = "rdf4h";
-       version = "3.0.3";
-       sha256 = "0lidqww0d8ckm4iipjx4gq32jspxidz0g009m5xrf8x6qsl26sx0";
+       version = "3.0.4";
+       sha256 = "0jci2d6n157y22ypsjb7kf4pknd53jjh2xj0i6qjsdh13qpwb7xq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -185248,8 +185565,8 @@ self: {
     ({ mkDerivation, base, sdl2 }:
      mkDerivation {
        pname = "sdl2-fps";
-       version = "0.0.1";
-       sha256 = "0ci8p6qgs9nmpbypvk75ybz5kh36iiqaz4xl4lr2dbaq0y2d6iri";
+       version = "0.0.2";
+       sha256 = "0lid8c2fdy43i9qjjn60mzn6mrcfnn1jflmbwfl93gc6ab5fwz63";
        libraryHaskellDepends = [ base sdl2 ];
        homepage = "https://github.com/jxv/sdl2-fps#readme";
        description = "Run of the mill, frames per second timer implementation";
@@ -190714,8 +191031,8 @@ self: {
      }:
      mkDerivation {
        pname = "show-please";
-       version = "0.5.4";
-       sha256 = "0rb6mpbr1qz80zgs4r92ckp28afzlcz9l988y20xhfrvq3bikzkx";
+       version = "0.5.5";
+       sha256 = "00l2bm9507bcyafzyl6dh4ppvz34h4w7vglyd1gxr9piz2z708hx";
        libraryHaskellDepends = [
          base mtl parsec template-haskell th-orphans time
        ];
@@ -191449,7 +191766,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "simple-log_0_9_4" = callPackage
+  "simple-log_0_9_5" = callPackage
     ({ mkDerivation, async, base, base-unicode-symbols, containers
      , data-default, deepseq, directory, exceptions, filepath, hformat
      , hspec, microlens, microlens-platform, mmorph, mtl, SafeSemaphore
@@ -191457,8 +191774,8 @@ self: {
      }:
      mkDerivation {
        pname = "simple-log";
-       version = "0.9.4";
-       sha256 = "0chp90h9112sxa7ds0ldzdp59i6b1vy7chkqcb6d5mb9faq6vjqi";
+       version = "0.9.5";
+       sha256 = "042mnsc2mfxdsf49knszk732mj5ryd9309h9ysyzb6z0y9wnp736";
        libraryHaskellDepends = [
          async base base-unicode-symbols containers data-default deepseq
          directory exceptions filepath hformat microlens microlens-platform
@@ -191923,14 +192240,16 @@ self: {
      }) {};
 
   "simpleconfig" = callPackage
-    ({ mkDerivation, base, containers, generic-deriving, lens, text }:
+    ({ mkDerivation, base, containers, either, generic-deriving, hspec
+     , lens, text
+     }:
      mkDerivation {
        pname = "simpleconfig";
-       version = "0.0.9";
-       sha256 = "1xk8kxdnw118gzwh3i58iy0bdqi80f8li3bjydaqfn073106nf87";
-       libraryHaskellDepends = [ base containers lens ];
+       version = "0.0.10";
+       sha256 = "0yrhgzwc138svs8p8pmlb1nbglhij3zi7228y32j9axzwmsszpg6";
+       libraryHaskellDepends = [ base containers either lens ];
        testHaskellDepends = [
-         base containers generic-deriving lens text
+         base containers either generic-deriving hspec lens text
        ];
        homepage = "https://github.com/koterpillar/simpleconfig#readme";
        description = "Short description of your package";
@@ -199452,17 +199771,19 @@ self: {
      }) {};
 
   "step-function" = callPackage
-    ({ mkDerivation, base, Cabal, cabal-test-quickcheck, QuickCheck }:
+    ({ mkDerivation, base, base-compat-batteries, containers, deepseq
+     , QuickCheck
+     }:
      mkDerivation {
        pname = "step-function";
-       version = "0.1.1.2";
-       sha256 = "1lsa84mc752lghpjszhwhky9hnpihy7wivdm0r6yl70k721s3ifk";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base Cabal cabal-test-quickcheck QuickCheck
+       version = "0.2";
+       sha256 = "1mg7zqqs32zdh1x1738kk0yydyksbhx3y3x8n31f7byk5fvzqq6j";
+       libraryHaskellDepends = [
+         base base-compat-batteries containers deepseq QuickCheck
        ];
+       testHaskellDepends = [ base QuickCheck ];
        homepage = "https://github.com/jonpetterbergman/step-function";
-       description = "Step functions, staircase functions or piecewise constant functions";
+       description = "Staircase functions or piecewise constant functions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -204617,32 +204938,30 @@ self: {
     ({ mkDerivation, alsa-mixer, base, cairo, ConfigFile, containers
      , dbus, dbus-hslogger, directory, dyre, either, enclosed-exceptions
      , filepath, gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gdkx11, gi-glib
-     , gi-gtk, glib, gtk-sni-tray, gtk-strut, gtk-traymanager, gtk3
-     , haskell-gi, haskell-gi-base, hslogger, HStringTemplate, HTTP, mtl
-     , multimap, network, network-uri, old-locale, optparse-applicative
-     , parsec, process, rate-limit, regex-compat, safe, split
-     , status-notifier-item, stm, text, time, time-locale-compat
-     , time-units, transformers, transformers-base, tuple, unix
-     , utf8-string, X11, xdg-basedir, xml, xml-helpers, xmonad
-     , xmonad-contrib
+     , gi-gtk, gi-gtk-hs, glib, gtk-sni-tray, gtk-strut, gtk-traymanager
+     , gtk3, haskell-gi, haskell-gi-base, hslogger, HStringTemplate
+     , HTTP, multimap, network, network-uri, old-locale
+     , optparse-applicative, parsec, process, rate-limit, regex-compat
+     , safe, split, status-notifier-item, stm, template-haskell, text
+     , time, time-locale-compat, time-units, transformers
+     , transformers-base, tuple, unix, utf8-string, X11, xdg-basedir
+     , xml, xml-helpers, xmonad, xmonad-contrib
      }:
      mkDerivation {
        pname = "taffybar";
-       version = "2.0.0";
-       sha256 = "1s3nqvsivi4wgi6hi7b3f83r75sl5qp0hsqr0cdwd7s8fqai3wia";
-       revision = "1";
-       editedCabalFile = "1sqgzjv0nhp5nmzn4qh80ghq38p5q7c8nvm1v1wh1dx2j7lkjnzc";
+       version = "2.1.0";
+       sha256 = "1a32wpxjyimn08pmbwwx7crn97hg9wmlva5f0blkw4cwv090jhh8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          alsa-mixer base cairo ConfigFile containers dbus dbus-hslogger
          directory dyre either enclosed-exceptions filepath gi-cairo gi-gdk
-         gi-gdkpixbuf gi-gdkx11 gi-glib gi-gtk glib gtk-sni-tray gtk-strut
-         gtk-traymanager gtk3 haskell-gi haskell-gi-base hslogger
-         HStringTemplate HTTP mtl multimap network network-uri old-locale
-         parsec process rate-limit regex-compat safe split
-         status-notifier-item stm text time time-locale-compat time-units
+         gi-gdkpixbuf gi-gdkx11 gi-glib gi-gtk gi-gtk-hs glib gtk-sni-tray
+         gtk-strut gtk-traymanager gtk3 haskell-gi haskell-gi-base hslogger
+         HStringTemplate HTTP multimap network network-uri old-locale parsec
+         process rate-limit regex-compat safe split status-notifier-item stm
+         template-haskell text time time-locale-compat time-units
          transformers transformers-base tuple unix utf8-string X11
          xdg-basedir xml xml-helpers xmonad xmonad-contrib
        ];
@@ -205810,6 +206129,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.1.4";
        sha256 = "17f4rcga0qnynf1h047chwm5nicmik79lw04kiwpw48ahwc0zkp3";
+       revision = "2";
+       editedCabalFile = "1ijz75l5jhyxjk6hjrhbsw4470dxfdnwdwn9q3akxbmk095hpzjl";
        libraryHaskellDepends = [
          base hspec hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -208153,15 +208474,15 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
-  "texmath_0_11" = callPackage
+  "texmath_0_11_0_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , mtl, pandoc-types, parsec, process, split, syb, temporary, text
      , utf8-string, xml
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.11";
-       sha256 = "1sssa9ld13bhs4b6cpv5mwf18bjajr8fgw32g4wp2smgv9p2jv9f";
+       version = "0.11.0.1";
+       sha256 = "11dc09hfnyfsz20ch2c867w0zdgjkzq41506lm61i3dk87ngdisf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -208758,6 +209079,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "text-region_0_3_1_0" = callPackage
+    ({ mkDerivation, aeson, base, base-unicode-symbols, bytestring
+     , groups, hspec, lens, text
+     }:
+     mkDerivation {
+       pname = "text-region";
+       version = "0.3.1.0";
+       sha256 = "1zy5zb7xg1343hlkwawnbca7f6gal9028ps1kp83fg2vmq1aqk57";
+       libraryHaskellDepends = [
+         aeson base base-unicode-symbols bytestring groups lens text
+       ];
+       testHaskellDepends = [ base base-unicode-symbols hspec lens text ];
+       homepage = "https://github.com/mvoidex/text-region";
+       description = "Marking text regions";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "text-register-machine" = callPackage
     ({ mkDerivation, base, containers, mtl, vector }:
      mkDerivation {
@@ -218947,6 +219286,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "uri-bytestring_0_3_2_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat, blaze-builder
+     , bytestring, containers, criterion, deepseq, deepseq-generics
+     , generics-sop, HUnit, network-uri, QuickCheck
+     , quickcheck-instances, semigroups, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, th-lift-instances
+     , transformers
+     }:
+     mkDerivation {
+       pname = "uri-bytestring";
+       version = "0.3.2.0";
+       sha256 = "1q04j5ybvk37zk2m0bkjwyhblz0ymdj0cn4rvsvdca1ikn5xdv5c";
+       libraryHaskellDepends = [
+         attoparsec base blaze-builder bytestring containers
+         template-haskell th-lift-instances
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat blaze-builder bytestring containers
+         generics-sop HUnit QuickCheck quickcheck-instances semigroups tasty
+         tasty-hunit tasty-quickcheck transformers
+       ];
+       benchmarkHaskellDepends = [
+         base blaze-builder bytestring criterion deepseq deepseq-generics
+         network-uri
+       ];
+       homepage = "https://github.com/Soostone/uri-bytestring";
+       description = "Haskell URI parsing as ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "uri-bytestring-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
      mkDerivation {
@@ -223904,6 +224274,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "wai-middleware-travisci" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , cryptonite, http-types, text, transformers, vault, wai
+     }:
+     mkDerivation {
+       pname = "wai-middleware-travisci";
+       version = "0.1.0";
+       sha256 = "0a58mlgimr6137aiwcdxjk15zy3y58dds4zxffd3vvn0lkzg5jdv";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring cryptonite http-types text
+         transformers vault wai
+       ];
+       homepage = "https://github.com/mitchellwrosen/wai-middleware-travisci";
+       description = "WAI middleware for authenticating webhook payloads from Travis CI";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wai-middleware-verbs" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, hashable, http-types
      , mmorph, monad-control, monad-control-aligned, monad-logger, mtl
@@ -229519,8 +229906,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmlbf";
-       version = "0.4";
-       sha256 = "1f63ibvv7ywly7paam238y4bjhvg7jmn87368dnv5lsz28mq432m";
+       version = "0.4.1";
+       sha256 = "0xfw9z1l3ja4qq0lj9i2n81fdh43ggprsy8rm71pcdacnpl056hq";
        libraryHaskellDepends = [
          base bytestring containers text transformers unordered-containers
        ];
@@ -229902,8 +230289,8 @@ self: {
      }:
      mkDerivation {
        pname = "xmonad-vanessa";
-       version = "0.1.1.8";
-       sha256 = "17w7hj4bgz1xkirj9dwgkbif4vpqvjnp5g2dvjna7qg5rw2hk3zj";
+       version = "0.2.0.1";
+       sha256 = "1rha8aw6pq9pdxznmr1i3q6jh1a7i88kr6arcnihhd21qp6vxz17";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -230438,17 +230825,19 @@ self: {
      , data-default, directory, exceptions, fast-logger, monad-control
      , monad-logger, mtl, persistent, persistent-sqlite, random
      , resource-pool, resourcet, string-conversions, text, time
-     , transformers, unordered-containers, wai-logger, yaml
+     , transformers, unliftio-core, unordered-containers, wai-logger
+     , yaml
      }:
      mkDerivation {
        pname = "yam-app";
-       version = "0.1.11";
-       sha256 = "0qbc7s5l030yilq8zlq5hszk6hgqjxp6yablap1ykm2211wipbq3";
+       version = "0.2.0";
+       sha256 = "1fr3q4dih2vzby3jmb13zmi6cmmlp26gymx45pqb2g5fsg2nmp94";
        libraryHaskellDepends = [
          aeson base conduit containers ctrie data-default directory
          exceptions fast-logger monad-control monad-logger mtl persistent
          persistent-sqlite random resource-pool resourcet string-conversions
-         text time transformers unordered-containers wai-logger yaml
+         text time transformers unliftio-core unordered-containers
+         wai-logger yaml
        ];
        homepage = "https://github.com/leptonyu/yam/tree/master/yam-app#readme";
        description = "Yam App";
@@ -230460,8 +230849,8 @@ self: {
     ({ mkDerivation, base, cron, yam-app }:
      mkDerivation {
        pname = "yam-job";
-       version = "0.1.11";
-       sha256 = "0hs46q1xwwx44f4zxhs4245cdnr9g4r2a67cm191n1wd86sfhrpc";
+       version = "0.2.0";
+       sha256 = "0c6frqjf3xhd5bksaz6rvd6qbqbj15y441476dgj2asm2yd64895";
        libraryHaskellDepends = [ base cron yam-app ];
        homepage = "https://github.com/leptonyu/yam/tree/master/yam-job#readme";
        license = stdenv.lib.licenses.bsd3;
@@ -230475,8 +230864,8 @@ self: {
      }:
      mkDerivation {
        pname = "yam-servant";
-       version = "0.1.11";
-       sha256 = "0z1my2jgcbvdx4v5zh66yw99vnck5rbi54s6adbp26v4szc8j40s";
+       version = "0.2.0";
+       sha256 = "0y1isi6c0pv87hygbbb2xfh4373bij1cig2hrpcq4ivyab0273xb";
        libraryHaskellDepends = [
          aeson base http-types lens servant servant-server servant-swagger
          servant-swagger-ui swagger2 text wai wai-extra warp yam-app yam-job
@@ -230501,14 +230890,15 @@ self: {
      }) {};
 
   "yam-transaction-postgresql" = callPackage
-    ({ mkDerivation, base, containers, persistent-postgresql, yam-app
+    ({ mkDerivation, base, containers, persistent-postgresql
+     , unliftio-core, yam-app
      }:
      mkDerivation {
        pname = "yam-transaction-postgresql";
-       version = "0.1.11";
-       sha256 = "1li9vmnnj9xw1j60gmjym9rxlljjic9w7bkxip22yhb6qnmidpc9";
+       version = "0.2.0";
+       sha256 = "1nm2bs285ldxv3zqsihha1wl1p46i8gd7w5nk2nnk60qilzhsc9s";
        libraryHaskellDepends = [
-         base containers persistent-postgresql yam-app
+         base containers persistent-postgresql unliftio-core yam-app
        ];
        homepage = "https://github.com/leptonyu/yam/tree/master/yam-transaction-postgresql#readme";
        license = stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index fedb0fa8de8..55e45bd6559 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -131,8 +131,6 @@ rec {
    */
   appendConfigureFlag = drv: x: overrideCabal drv (drv: { configureFlags = (drv.configureFlags or []) ++ [x]; });
 
-  appendBuildFlag = drv: x: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ [x]; });
-  appendBuildFlags = drv: xs: overrideCabal drv (drv: { buildFlags = (drv.buildFlags or []) ++ xs; });
   /* removeConfigureFlag drv x is a Haskell package like drv, but with
      all cabal configure arguments that are equal to x removed.
 
@@ -299,8 +297,11 @@ rec {
   # This is useful to build environments for developing on that
   # package.
   getHaskellBuildInputs = p:
-    (p.override { mkDerivation = extractBuildInputs p.compiler;
-                }).haskellBuildInputs;
+    (overrideCabal p (args: {
+      passthru = (args.passthru or {}) // {
+        _getHaskellBuildInputs = extractBuildInputs p.compiler args;
+      };
+    }))._getHaskellBuildInputs;
 
   # Under normal evaluation, simply return the original package. Under
   # nix-shell evaluation, return a nix-shell optimized environment.
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index bbc3d856ff2..d20a86b0064 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -38,7 +38,7 @@ let
   inherit (stdenv) buildPlatform hostPlatform;
 
   inherit (stdenv.lib) fix' extends makeOverridable;
-  inherit (haskellLib) overrideCabal;
+  inherit (haskellLib) overrideCabal getHaskellBuildInputs;
 
   mkDerivationImpl = pkgs.callPackage ./generic-builder.nix {
     inherit stdenv;
@@ -238,7 +238,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // {
     shellFor = { packages, withHoogle ? false, ... } @ args:
       let
         selected = packages self;
-        packageInputs = builtins.map (p: p.override { mkDerivation = haskellLib.extractBuildInputs p.compiler; }) selected;
+        packageInputs = builtins.map getHaskellBuildInputs selected;
         haskellInputs =
           builtins.filter
             (input: pkgs.lib.all (p: input.outPath != p.outPath) selected)
diff --git a/pkgs/development/haskell-modules/patches/lambdabot-core-ghc-8.4.x-fix.patch b/pkgs/development/haskell-modules/patches/lambdabot-core-ghc-8.4.x-fix.patch
new file mode 100644
index 00000000000..9b7b7cfb8f9
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/lambdabot-core-ghc-8.4.x-fix.patch
@@ -0,0 +1,15 @@
+index 60e134c..246d8ca 100644
+--- lambdabot-core/src/Lambdabot/Config.hs
++++ lambdabot-core/src/Lambdabot/Config.hs
+@@ -29,9 +29,9 @@ import Data.Typeable
+ import Data.Generics (everywhere, mkT)
+ import Language.Haskell.TH
+ 
+-data Config t where Config :: (Typeable1 k, GCompare k) => !(k t) -> t -> (t -> t -> t) -> Config t
++data Config t where Config :: (Typeable k, GCompare k) => !(k t) -> t -> (t -> t -> t) -> Config t
+ 
+-cast1 :: (Typeable1 f, Typeable1 g) => f a -> Maybe (g a)
++cast1 :: (Typeable f, Typeable g) => f a -> Maybe (g a)
+ cast1 = fmap runIdentity . gcast1 . Identity
+ 
+ instance GEq Config where
diff --git a/pkgs/development/interpreters/spidermonkey/38.nix b/pkgs/development/interpreters/spidermonkey/38.nix
index f8fefd204e5..133679495a5 100644
--- a/pkgs/development/interpreters/spidermonkey/38.nix
+++ b/pkgs/development/interpreters/spidermonkey/38.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, pkgconfig, gnused_422, perl, python2, zip, libffi, readline, icu, zlib, nspr }:
+{ stdenv, fetchurl, pkgconfig, gnused_422, perl, python2, zip, libffi, readline, icu, zlib, nspr
+, libobjc }:
 
 stdenv.mkDerivation rec {
   version = "38.2.1.rc0";
@@ -13,7 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "0p4bmbpgkfsj54xschcny0a118jdrdgg0q29rwxigg3lh5slr681";
   };
 
-  buildInputs = [ libffi readline icu zlib nspr ];
+  buildInputs = [ libffi readline icu zlib nspr ]
+               ++ stdenv.lib.optional stdenv.isDarwin libobjc;
   nativeBuildInputs = [ pkgconfig perl python2 zip gnused_422 ];
 
   postUnpack = "sourceRoot=\${sourceRoot}/js/src";
@@ -57,6 +59,6 @@ stdenv.mkDerivation rec {
     # TODO: MPL/GPL/LGPL tri-license.
 
     maintainers = [ maintainers.abbradar ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/enet/default.nix b/pkgs/development/libraries/enet/default.nix
index 4c3d67b8f31..292fba1ace0 100644
--- a/pkgs/development/libraries/enet/default.nix
+++ b/pkgs/development/libraries/enet/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "Simple and robust network communication layer on top of UDP";
     license = stdenv.lib.licenses.mit;
     maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 17c6f75a59d..36da31e8908 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "folly-${version}";
-  version = "2018.04.23.00";
+  version = "2018.05.21.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "0wfp4pxi71bi3bz3h5jxsvdd5wa8q6wqdgsx0jvyvaiiy7v884sv";
+    sha256 = "0x8qa0g0rj4bmy5cra7f0ch0srq34d8d04f1c59q93xd6ggkr52w";
   };
 
   nativeBuildInputs = [ autoreconfHook python pkgconfig ];
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index d534cd59bd8..68bffd4032d 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -17,11 +17,11 @@ let inherit (stdenv.lib) optional; in
 
 stdenv.mkDerivation rec {
   name = "nghttp2-${version}";
-  version = "1.24.0";
+  version = "1.32.0";
 
   src = fetchurl {
     url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
-    sha256 = "18ys6p39yvm9wjjzhhlw35c9m8f5gf4dk9jbshibj19q4js1pnv9";
+    sha256 = "0jlndbp4bnyvdg8b59pznrzz0bvwb9nmag7zgcflg51lm1pq2q06";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ];
diff --git a/pkgs/development/libraries/nvidia-texture-tools/default.nix b/pkgs/development/libraries/nvidia-texture-tools/default.nix
index 034fbf34385..77167361ff2 100644
--- a/pkgs/development/libraries/nvidia-texture-tools/default.nix
+++ b/pkgs/development/libraries/nvidia-texture-tools/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     description = "A set of cuda-enabled texture tools and compressors";
     homepage = https://github.com/castano/nvidia-texture-tools;
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/oracle-instantclient/default.nix b/pkgs/development/libraries/oracle-instantclient/default.nix
index 6ed3e584fa3..7e0f2e1cf90 100644
--- a/pkgs/development/libraries/oracle-instantclient/default.nix
+++ b/pkgs/development/libraries/oracle-instantclient/default.nix
@@ -1,9 +1,7 @@
-{ stdenv, requireFile, glibc, patchelf, rpmextract, libaio, makeWrapper, odbcSupport ? false, unixODBC }:
+{ stdenv, requireFile, autoPatchelfHook, rpmextract, libaio, makeWrapper, odbcSupport ? false, unixODBC }:
 
 assert odbcSupport -> unixODBC != null;
 
-with stdenv.lib;
-
 let
     baseVersion = "12.2";
     requireSource = version: rel: part: hash: (requireFile rec {
@@ -27,56 +25,27 @@ in stdenv.mkDerivation rec {
   version = "${baseVersion}.0.1.0";
   name = "oracle-instantclient-${version}";
 
-  srcBase = (requireSource version "1" "basic" "43c4bfa938af741ae0f9964a656f36a0700849f5780a2887c8e9f1be14fe8b66");
-  srcDevel = (requireSource version "1" "devel" "4c7ad8d977f9f908e47c5e71ce56c2a40c7dc83cec8a5c106b9ff06d45bb3442");
-  srcSqlplus = (requireSource version "1" "sqlplus" "303e82820a10f78e401e2b07d4eebf98b25029454d79f06c46e5f9a302ce5552");
-  srcOdbc = optionalString odbcSupport (requireSource version "2" "odbc" "e870c84d2d4be6f77c0760083b82b7ffbb15a4bf5c93c4e6c84f36d6ed4dfdf1");
+  buildInputs = [ libaio stdenv.cc.cc.lib ] ++ stdenv.lib.optional odbcSupport unixODBC;
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper rpmextract ];
 
-  buildInputs = [ glibc ] ++
-    optional odbcSupport unixODBC;
+  srcs = [
+    (requireSource version "1" "basic" "43c4bfa938af741ae0f9964a656f36a0700849f5780a2887c8e9f1be14fe8b66")
+    (requireSource version "1" "devel" "4c7ad8d977f9f908e47c5e71ce56c2a40c7dc83cec8a5c106b9ff06d45bb3442")
+    (requireSource version "1" "sqlplus" "303e82820a10f78e401e2b07d4eebf98b25029454d79f06c46e5f9a302ce5552")
+  ] ++ stdenv.lib.optional odbcSupport (requireSource version "2" "odbc" "e870c84d2d4be6f77c0760083b82b7ffbb15a4bf5c93c4e6c84f36d6ed4dfdf1");
 
-  nativeBuildInputs = [ rpmextract patchelf makeWrapper ];
+  unpackCmd = "rpmextract $curSrc";
 
-  buildCommand = ''
-    mkdir -p "${name}"
-    cd "${name}"
-    ${rpmextract}/bin/rpmextract "${srcBase}"
-    ${rpmextract}/bin/rpmextract "${srcDevel}"
-    ${rpmextract}/bin/rpmextract "${srcSqlplus}"
-    '' + optionalString odbcSupport ''${rpmextract}/bin/rpmextract ${srcOdbc}
-    '' + ''
+  installPhase = ''
     mkdir -p "$out/"{bin,include,lib,"share/${name}/demo/"}
-    mv "usr/share/oracle/${baseVersion}/client64/demo/"* "$out/share/${name}/demo/"
-    mv "usr/include/oracle/${baseVersion}/client64/"* "$out/include/"
-    mv "usr/lib/oracle/${baseVersion}/client64/lib/"* "$out/lib/"
-    mv "usr/lib/oracle/${baseVersion}/client64/bin/"* "$out/bin/"
-    ln -s "$out/bin/sqlplus" "$out/bin/sqlplus64"
-
-    for lib in $out/lib/lib*.so; do
-      test -f $lib || continue
-      chmod +x $lib
-      patchelf --force-rpath --set-rpath "$out/lib:${libaio}/lib" \
-               $lib
-    done
 
-    for lib in $out/lib/libsqora*; do
-      test -f $lib || continue
-      chmod +x $lib
-      patchelf --force-rpath --set-rpath "$out/lib:${unixODBC}/lib" \
-               $lib
-    done
-
-    for exe in $out/bin/{adrci,genezi,sqlplus}; do
-      patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-               --force-rpath --set-rpath "$out/lib:${libaio}/lib" \
-               $exe
-      wrapProgram $exe --prefix LD_LIBRARY_PATH ":" $out/lib
-    done
+    install -Dm755 lib/oracle/${baseVersion}/client64/bin/* $out/bin
+    ln -s $out/bin/sqlplus $out/bin/sqlplus64
+    install -Dm644 lib/oracle/${baseVersion}/client64/lib/* $out/lib
+    install -Dm644 include/oracle/${baseVersion}/client64/* $out/include
+    install -Dm644 share/oracle/${baseVersion}/client64/demo/* $out/share/${name}/demo
   '';
 
-  dontStrip = true;
-  dontPatchELF = true;
-
   meta = with stdenv.lib; {
     description = "Oracle instant client libraries and sqlplus CLI";
     longDescription = ''
@@ -86,6 +55,7 @@ in stdenv.mkDerivation rec {
     '';
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ pesterhazy ];
+    maintainers = with maintainers; [ pesterhazy flokli ];
+    hydraPlatforms = [];
   };
 }
diff --git a/pkgs/development/libraries/sfml/default.nix b/pkgs/development/libraries/sfml/default.nix
index f52b7905c6e..03a801a3240 100644
--- a/pkgs/development/libraries/sfml/default.nix
+++ b/pkgs/development/libraries/sfml/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, libX11, freetype, libjpeg, openal, flac, libvorbis
 , glew, libXrandr, libXrender, udev, xcbutilimage
+, IOKit, Foundation, AppKit, OpenAL
 }:
 
 let
@@ -13,9 +14,13 @@ stdenv.mkDerivation rec {
     sha256 = "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab";
   };
   buildInputs = [ cmake libX11 freetype libjpeg openal flac libvorbis glew
-                  libXrandr libXrender udev xcbutilimage
-                ];
-  cmakeFlags = [ "-DSFML_INSTALL_PKGCONFIG_FILES=yes" ];
+                  libXrandr libXrender xcbutilimage
+                ] ++ stdenv.lib.optional stdenv.isLinux udev
+                  ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit Foundation AppKit OpenAL ];
+  cmakeFlags = [ "-DSFML_INSTALL_PKGCONFIG_FILES=yes"
+                 "-DSFML_MISC_INSTALL_PREFIX=share/SFML"
+                 "-DSFML_BUILD_FRAMEWORKS=no"
+                 "-DSFML_USE_SYSTEM_DEPS=yes" ];
   meta = with stdenv.lib; {
     homepage = http://www.sfml-dev.org/;
     description = "Simple and fast multimedia library";
@@ -26,6 +31,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.zlib;
     maintainers = [ maintainers.astsmtl ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/ocaml-modules/imagelib/default.nix b/pkgs/development/ocaml-modules/imagelib/default.nix
new file mode 100644
index 00000000000..77b18f0ce3a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/imagelib/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, which, ocaml, findlib, ocamlbuild, decompress }:
+
+stdenv.mkDerivation rec {
+  version = "20171028";
+  name = "ocaml${ocaml.version}-imagelib-${version}";
+  src = fetchFromGitHub {
+    owner = "rlepigre";
+    repo = "ocaml-imagelib";
+    rev = "ocaml-imagelib_${version}";
+    sha256 = "1frkrgcrv4ybdmqcfxpfsywx0hm1arxgxp32n8kzky6qip1g0zxf";
+  };
+
+  buildInputs = [ which ocaml findlib ocamlbuild ];
+
+  propagatedBuildInputs = [ decompress ];
+
+  createFindlibDestdir = true;
+
+  meta = {
+    description = "Image formats such as PNG and PPM in OCaml";
+    license = stdenv.lib.licenses.lgpl3;
+    maintainers = [ stdenv.lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+    inherit (ocaml.meta) platforms;
+  };
+}
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
new file mode 100644
index 00000000000..d5ab50dc904
--- /dev/null
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder
+, cryptography
+, bcrypt, gssapi, libnacl, libsodium, nettle, pyopenssl }:
+
+buildPythonPackage rec {
+  pname = "asyncssh";
+  version = "1.13.0";
+  disabled = pythonOlder "3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n75z4dvhzymd4n610dpwlq7wl8cyz1gxx9m7iq92pzhss5vgpfd";
+  };
+
+  propagatedBuildInputs = [ 
+    bcrypt
+    cryptography
+    gssapi
+    libnacl
+    libsodium
+    nettle
+    pyopenssl
+  ];
+
+  # Disables windows specific test (specifically the GSSAPI wrapper for Windows)
+  postPatch = ''
+    rm ./tests/sspi_stub.py
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework";
+    homepage = https://pypi.python.org/pypi/asyncssh;
+    license = licenses.epl10;
+    maintainers = with maintainers; [ worldofpeace ];
+  };
+}
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index c290c6bd177..2ae56b7dc5a 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -3,12 +3,12 @@
 , ipaddress, backports_ssl_match_hostname, docker_pycreds
 }:
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.0";
   pname = "docker";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d698c3dc4df66c988de5df21a62cdc3450de2fa8523772779e5e23799c41f43";
+    sha256 = "dc5cc0971a0d36fe94c5ce89bd4adb6c892713500af7b0818708229c3199911a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyairvisual/default.nix b/pkgs/development/python-modules/pyairvisual/default.nix
new file mode 100644
index 00000000000..010c2805d2b
--- /dev/null
+++ b/pkgs/development/python-modules/pyairvisual/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, requests
+, requests-mock, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pyairvisual";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "bachya";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ng6k07n91k5l68zk3hl4fywb33admp84wqdm20qmmw9yc9c64fd";
+  };
+
+  checkInputs = [ pytest requests-mock ];
+  propagatedBuildInputs = [ requests ];
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  disabled = !isPy3k;
+
+  meta = with lib; {
+    description = "A thin Python wrapper for the AirVisual API";
+    license = licenses.mit;
+    homepage = https://github.com/bachya/pyairvisual;
+  };
+}
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index 0967659a641..ea364c09b80 100644
--- a/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/pkgs/development/python-modules/pyhomematic/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi }:
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.42";
+  version = "0.1.43";
 
   disabled = !isPy3k;
 
-  # PyPI tarball does not include tests/ directory
-  src = fetchFromGitHub {
-    owner = "danielperna84";
-    repo = pname;
-    rev = version;
-    sha256 = "0h7bq66q22kzj1xwhxmr7knibsmb4csjwq3jr19fyl9sxxmgqwqy";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b6f4f5c8ddca15e0a1df367bafdffb2f08f1e42f17c78b9470573287e5b20bc";
   };
 
+  # PyPI tarball does not include tests/ directory
   # Unreliable timing: https://github.com/danielperna84/pyhomematic/issues/126
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pyogg/default.nix b/pkgs/development/python-modules/pyogg/default.nix
new file mode 100644
index 00000000000..08fc8712795
--- /dev/null
+++ b/pkgs/development/python-modules/pyogg/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchPypi, buildPythonPackage, fetchurl, libvorbis, flac, libogg, libopus, opusfile }:
+
+buildPythonPackage rec {
+    pname = "PyOgg";
+    version = "0.6.2a1";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "1mjh5zx7mfy246lya1qc42j4q4pz6v5zbd8blnfib9ncswcb1v6l";
+    };
+
+    buildInputs = [ libvorbis flac libogg libopus ];
+    propagatedBuidInputs = [ libvorbis flac libogg libopus opusfile ];
+    # There are no tests in this package.
+    doCheck = false;
+    postPatch = ''
+      substituteInPlace pyogg/vorbis.py --replace \
+        'libvorbisfile = ExternalLibrary.load("vorbisfile")' "libvorbisfile = ctypes.CDLL('${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/vorbis.py --replace \
+        'libvorbisenc = ExternalLibrary.load("vorbisenc")' "libvorbisenc = ctypes.CDLL('${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/vorbis.py --replace \
+        'libvorbis = ExternalLibrary.load("vorbis")' "libvorbis = ctypes.CDLL('${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/flac.py --replace \
+        'libflac = ExternalLibrary.load("flac")' "libflac = ctypes.CDLL('${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/ogg.py --replace \
+        'libogg = ExternalLibrary.load("ogg")' "libogg = ctypes.CDLL('${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/opus.py --replace \
+        'libopus = ExternalLibrary.load("opus")' "libopus = ctypes.CDLL('${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}')"
+      substituteInPlace pyogg/opus.py --replace \
+        'libopusfile = ExternalLibrary.load("opusfile")' "libopusfile = ctypes.CDLL('${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}')"
+    '';
+
+  meta = {
+    description = "Xiph.org's Ogg Vorbis, Opus and FLAC for Python";
+    homepage = https://github.com/Zuzu-Typ/PyOgg;
+    license = lib.licenses.publicDomain;
+    maintainers = with lib.maintainers; [ pmiddend ];
+  };
+}
diff --git a/pkgs/development/python-modules/timeout-decorator/default.nix b/pkgs/development/python-modules/timeout-decorator/default.nix
new file mode 100644
index 00000000000..342531ab976
--- /dev/null
+++ b/pkgs/development/python-modules/timeout-decorator/default.nix
@@ -0,0 +1,16 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+buildPythonPackage rec {
+  pname = "timeout-decorator";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1bckwbi5078z3x9lyf8vl9dhx10nymwwnp46c98wm5m02x5j37g4";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Timeout decorator";
+    license = licenses.mit;
+    homepage = https://github.com/pnpnpn/timeout-decorator;
+  };
+}
diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix
index beebd8ada9b..f139e296d35 100644
--- a/pkgs/development/tools/ammonite/default.nix
+++ b/pkgs/development/tools/ammonite/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, lib, fetchurl, makeWrapper, jre
+{ stdenv, lib, fetchurl, makeWrapper, jre, gnused
 , disableRemoteLogging ? true
 }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "ammonite-${version}";
-  version = "1.1.0";
+  version = "1.1.2";
   scalaVersion = "2.12";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
-    sha256 = "0dx5w1ffnqazsyp6zxrmfcn7yhkkd81h7njwbqqv1pbchj5znj6l";
+    sha256 = "1balr7ya7xlyq32jwb0w9c4klnw13mdn2c5azkwngq5cp29yrfrc";
   };
 
   propagatedBuildInputs = [ jre ] ;
-  buildInputs = [ makeWrapper ] ;
+  buildInputs = [ makeWrapper gnused ] ;
 
   phases = "installPhase";
 
@@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp ${src} $out/bin/amm
     chmod +x $out/bin/amm
-    wrapProgram $out/bin/amm \
-      ${optionalString disableRemoteLogging "--add-flags --no-remote-logging"} \
-      --prefix PATH ":" ${jre}/bin ;
+    ${gnused}/bin/sed -i '0,/java/{s|java|${jre}/bin/java|}' $out/bin/amm
+  '' + optionalString (disableRemoteLogging) ''
+    ${gnused}/bin/sed -i '0,/ammonite.Main/{s|ammonite.Main|ammonite.Main --no-remote-logging|}' $out/bin/amm
   '';
 
   meta = {
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 5f7b389cc2b..5ddb03d318f 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     description = "unix-like reverse engineering framework and commandline tools";
     homepage = http://radare.org/;
     license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = with stdenv.lib.maintainers; [raskin makefu];
+    maintainers = with stdenv.lib.maintainers; [raskin makefu mic92];
     platforms = with stdenv.lib.platforms; linux;
     inherit version;
   };
diff --git a/pkgs/development/tools/bloaty/default.nix b/pkgs/development/tools/bloaty/default.nix
index 0dbe1aa78c5..9b18bcb2561 100644
--- a/pkgs/development/tools/bloaty/default.nix
+++ b/pkgs/development/tools/bloaty/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, binutils, cmake, fetchFromGitHub }:
+{ stdenv, binutils, cmake, zlib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2017-10-05";
+  version = "2018-05-22";
   name = "bloaty-${version}";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
-    rev = "e47b21b01ceecf001e1965e9da249d48d86a1749";
-    sha256 = "1il3z49hi0b07agjwr5fg1wzysfxsamfv1snvlp33vrlyl1m7cbm";
+    rev = "054788b091ccfd43b05b9817062139145096d440";
+    sha256 = "0pmv66137ipzsjjdz004n61pz3aipjhh3b0w0y1406clqpwkvpjm";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
 
-  enableParallelBuilding = true;
+  buildInputs = [ zlib ];
 
-  preConfigure = ''
-    substituteInPlace src/bloaty.cc \
-      --replace "c++filt" \
-                "${binutils.bintools}/bin/c++filt"
-  '';
+  enableParallelBuilding = true;
 
   doCheck = true;
 
diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix
index 79648c16f5e..19ca5b9c078 100644
--- a/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -2,7 +2,7 @@
 
 assert jdk != null;
 
-let version = "3.5.2"; in
+let version = "3.5.3"; in
 stdenv.mkDerivation rec {
   name = "apache-maven-${version}";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://apache/maven/maven-3/${version}/binaries/${name}-bin.tar.gz";
-    sha256 = "1zza5kjf69hnx41gy3yhvsk1kz259nig5njcmzjbsr8a75p1yyvh";
+    sha256 = "0244mpziz4rw35x2cahsqlxpnygvi6qpll16g4kx87db7wvmcadm";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 28894850bbd..52e29acc9d8 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -4,7 +4,7 @@ let
 
   dubBuild = stdenv.mkDerivation rec {
     name = "dubBuild-${version}";
-    version = "1.8.0";
+    version = "1.8.1";
 
     enableParallelBuilding = true;
 
@@ -12,7 +12,7 @@ let
       owner = "dlang";
       repo = "dub";
       rev = "v${version}";
-      sha256 = "0788d375sc6xdak9x6xclkkz243lb7di68yxfvl4v0n178mi22bk";
+      sha256 = "16r7x4jsfv5fjssvs6mwj8ymr6fjpvbkjhpr4f4368sjr5iyfad6";
     };
 
     postUnpack = ''
@@ -75,6 +75,7 @@ let
       # file under ../etc relative to the dub location.
       cp ${dubBuild}/bin/dub bin/
       export DUB=$NIX_BUILD_TOP/source/bin/dub
+      export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
       export DC=${dmd.out}/bin/dmd
       export HOME=$TMP
       ./test/run-unittest.sh
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index d5f691b0cac..bc29fe2cbcf 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "dtools-${version}";
-  version = "2.079.0";
+  version = "2.079.1";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y";
+      sha256 = "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj";
       name = "dmd";
     })
     (fetchFromGitHub {
diff --git a/pkgs/development/tools/vagrant/Gemfile.lock b/pkgs/development/tools/vagrant/Gemfile.lock
index 2c63b57443a..8991bd9eb54 100644
--- a/pkgs/development/tools/vagrant/Gemfile.lock
+++ b/pkgs/development/tools/vagrant/Gemfile.lock
@@ -1,6 +1,6 @@
 GIT
-  remote: https://github.com/mitchellh/vagrant-spec.git
-  revision: 7ac8b4191de578e345b29acaf62ecc72c8e73be1
+  remote: https://github.com/hashicorp/vagrant-spec.git
+  revision: 9413ab298407114528766efefd1fb1ff24589636
   specs:
     vagrant-spec (0.0.1)
       childprocess (~> 0.6.0)
@@ -11,7 +11,7 @@ GIT
 PATH
   remote: .
   specs:
-    vagrant (2.0.2)
+    vagrant (2.1.1)
       childprocess (~> 0.6.0)
       erubis (~> 2.7.0)
       hashicorp-checkpoint (~> 0.1.5)
@@ -25,6 +25,8 @@ PATH
       rest-client (>= 1.6.0, < 3.0)
       ruby_dep (<= 1.3.1)
       wdm (~> 0.1.0)
+      win32-file (~> 0.8.1)
+      win32-file-security (~> 1.0.10)
       winrm (~> 2.1)
       winrm-elevated (~> 1.1)
       winrm-fs (~> 1.0)
@@ -40,11 +42,13 @@ GEM
     crack (0.4.3)
       safe_yaml (~> 1.0.0)
     diff-lcs (1.3)
-    domain_name (0.5.20170404)
+    domain_name (0.5.20180417)
       unf (>= 0.0.5, < 1.0.0)
     erubis (2.7.0)
     fake_ftp (0.1.1)
-    ffi (1.9.18)
+    ffi (1.9.23)
+    ffi-win32-extensions (1.0.3)
+      ffi
     gssapi (1.2.0)
       ffi (>= 1.0.1)
     gyoku (1.3.1)
@@ -115,6 +119,16 @@ GEM
       addressable (>= 2.3.6)
       crack (>= 0.3.2)
       hashdiff
+    win32-file (0.8.1)
+      ffi
+      ffi-win32-extensions
+      win32-file-stat (>= 1.4.0)
+    win32-file-security (1.0.10)
+      ffi
+      ffi-win32-extensions
+    win32-file-stat (1.5.5)
+      ffi
+      ffi-win32-extensions
     winrm (2.2.3)
       builder (>= 2.1.2)
       erubis (~> 2.7)
diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix
index 3b055d38d03..42ff463e1cc 100644
--- a/pkgs/development/tools/vagrant/default.nix
+++ b/pkgs/development/tools/vagrant/default.nix
@@ -1,9 +1,9 @@
 { lib, fetchurl, buildRubyGem, bundlerEnv, ruby, libarchive }:
 
 let
-  version = "2.0.2";
+  version = "2.1.1";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "1sjfwgy2y6q5s1drd8h8xgz2a0sv1l3kx9jilgc02hlcdz070iir";
+  sha256 = "0kgsb33f3wh6x4450x74wri6z78ky92sfrv7ba7h7zmxsadb6m4b";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix
index 5d3d2693d01..867927cdc24 100644
--- a/pkgs/development/tools/vagrant/gemset.nix
+++ b/pkgs/development/tools/vagrant/gemset.nix
@@ -46,10 +46,10 @@
     dependencies = ["unf"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12hs8yijhak7p2hf1xkh98g0mnp5phq3mrrhywzaxpwz1gw5r3kf";
+      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
       type = "gem";
     };
-    version = "0.5.20170404";
+    version = "0.5.20180417";
   };
   erubis = {
     source = {
@@ -70,10 +70,19 @@
   ffi = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0";
+      sha256 = "0zw6pbyvmj8wafdc7l5h7w20zkp1vbr2805ql5d941g2b20pk4zr";
       type = "gem";
     };
-    version = "1.9.18";
+    version = "1.9.23";
+  };
+  ffi-win32-extensions = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ywkkbr3bpi2ais2jr8yrsqwwrm48jg262anmdkcb9if95vajx7l";
+      type = "gem";
+    };
+    version = "1.0.3";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -397,16 +406,16 @@
     version = "0.0.7.5";
   };
   vagrant = {
-    dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "winrm" "winrm-elevated" "winrm-fs"];
+    dependencies = ["childprocess" "erubis" "hashicorp-checkpoint" "i18n" "listen" "log4r" "net-scp" "net-sftp" "net-ssh" "rb-kqueue" "rest-client" "ruby_dep" "wdm" "win32-file" "win32-file-security" "winrm" "winrm-elevated" "winrm-fs"];
   };
   vagrant-spec = {
     dependencies = ["childprocess" "log4r" "rspec" "thor"];
     source = {
       fetchSubmodules = false;
-      rev = "7ac8b4191de578e345b29acaf62ecc72c8e73be1";
-      sha256 = "0qybgxdnndx7xfmhyjcj46b2mv78d98yk30d68ppmfnmm3jx590h";
+      rev = "9413ab298407114528766efefd1fb1ff24589636";
+      sha256 = "1z77m3p6x82hipa7y4i71zafy0rdfajw2vhqdxczjmrlwp0pvisl";
       type = "git";
-      url = "https://github.com/mitchellh/vagrant-spec.git";
+      url = "https://github.com/hashicorp/vagrant-spec.git";
     };
     version = "0.0.1";
   };
@@ -427,6 +436,33 @@
     };
     version = "2.3.2";
   };
+  win32-file = {
+    dependencies = ["ffi" "ffi-win32-extensions" "win32-file-stat"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mjylzv4bbnxyjqf7hnd9ghcs5xr2sv8chnmkqdi2cc6pya2xax0";
+      type = "gem";
+    };
+    version = "0.8.1";
+  };
+  win32-file-security = {
+    dependencies = ["ffi" "ffi-win32-extensions"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lpq821a1hrxmm0ki5c34wijzhn77g4ny76v698ixwg853y2ir9r";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  win32-file-stat = {
+    dependencies = ["ffi" "ffi-win32-extensions"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lc3yajcb8xxabvj9qian938k60ixydvs3ixl5fldi0nlvnvk468";
+      type = "gem";
+    };
+    version = "1.5.5";
+  };
   winrm = {
     dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rubyntlm"];
     source = {
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index b0bead7bbf9..a1c1aa9b671 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -8,14 +8,11 @@
 let
   inherit (stdenv.lib) optional optionals;
 
-  sdlName = if sdlClient then "-sdl" else "";
-  gtkName = if gtkClient then "-gtk" else "";
-
   name = "freeciv";
   version = "2.5.11";
 in
 stdenv.mkDerivation {
-  name = "${name}${sdlName}${gtkName}-${version}";
+  name = "${name}-${version}";
   inherit version;
 
   src = fetchurl {
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index d6b3b6a9870..8c965e471e5 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -22,9 +22,9 @@ let
       COREDIR="$out/lib/retroarch/cores"
       mkdir -p $out/bin
       mkdir -p $COREDIR
-      mv ${d2u core}_libretro.so $COREDIR/.
+      mv ${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR/.
       makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
-        --add-flags "-L $COREDIR/${d2u core}_libretro.so $@"
+        --add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
     '';
 
     enableParallelBuilding = true;
@@ -39,7 +39,7 @@ let
       homepage = https://www.libretro.com/;
       inherit license;
       maintainers = with maintainers; [ edwtjo hrdinka MP2E ];
-      platforms = platforms.linux;
+      platforms = platforms.unix;
     };
   } // a);
 
@@ -178,7 +178,7 @@ in with stdenv.lib.licenses;
     buildPhase = ''
       cd svn-current/trunk \
       && make -f makefile.libretro \
-      && mv fbalpha2012_libretro.so fba_libretro.so
+      && mv fbalpha2012_libretro${stdenv.hostPlatform.extensions.sharedLibrary} fba_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
     '';
   };
 
@@ -412,7 +412,7 @@ in with stdenv.lib.licenses;
   }).override {
     buildPhase = ''
       make -f Makefile.libretro
-      mv snes9x2010_libretro.so snes9x_next_libretro.so
+      mv snes9x2010_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x_next_libretro${stdenv.hostPlatform.extensions.sharedLibrary}
     '';
   };
 
diff --git a/pkgs/misc/emulators/retroarch/wrapper.nix b/pkgs/misc/emulators/retroarch/wrapper.nix
index 71b26b4af6f..f85d85f8621 100644
--- a/pkgs/misc/emulators/retroarch/wrapper.nix
+++ b/pkgs/misc/emulators/retroarch/wrapper.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     mkdir -p $out/lib
     $(for coreDir in $cores
     do
-      $(ln -s $coreDir/*.so $out/lib/.)
+      $(ln -s $coreDir/* $out/lib/.)
     done)
 
     ln -s -t $out ${retroarch}/share
diff --git a/pkgs/os-specific/darwin/cctools/port.nix b/pkgs/os-specific/darwin/cctools/port.nix
index 24f21b498aa..0c908197acb 100644
--- a/pkgs/os-specific/darwin/cctools/port.nix
+++ b/pkgs/os-specific/darwin/cctools/port.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, makeWrapper, autoconf, automake, libtool_2, autoreconfHook
-, llvm, libcxx, libcxxabi, clang, libuuid
-, libobjc ? null, maloader ? null, xctoolchain ? null
+, libcxx, libcxxabi, libuuid
+, libobjc ? null, maloader ? null
 , hostPlatform, targetPlatform
 , enableDumpNormalizedLibArgs ? false
 }:
@@ -22,7 +22,7 @@ let
 in
 
 # Non-Darwin alternatives
-assert (!hostPlatform.isDarwin) -> (maloader != null && xctoolchain != null);
+assert (!hostPlatform.isDarwin) -> maloader != null;
 
 assert enableDumpNormalizedLibArgs -> (!useOld);
 
@@ -57,8 +57,6 @@ let
       autoreconfHook
     ];
     buildInputs = [ libuuid ] ++
-      # Only need llvm and clang if the stdenv isn't already clang-based (TODO: just make a stdenv.cc.isClang)
-      stdenv.lib.optionals (!stdenv.isDarwin) [ llvm clang ] ++
       stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ];
 
     patches = [
@@ -80,9 +78,6 @@ let
 
     # TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
     configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
-    configureFlags = stdenv.lib.optionals (!stdenv.isDarwin) [
-      "CXXFLAGS=-I${libcxx}/include/c++/v1"
-    ];
 
     postPatch = ''
       sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp
@@ -110,8 +105,6 @@ let
       EOF
 
       cd cctools
-    '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
-      sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' autogen.sh
     '';
 
     # TODO: this builds an ld without support for LLVM's LTO. We need to teach it, but that's rather
@@ -126,21 +119,12 @@ let
       popd
     '';
 
-    postInstall =
-      if hostPlatform.isDarwin
-      then ''
-        cat >$out/bin/dsymutil << EOF
-        #!${stdenv.shell}
-        EOF
-        chmod +x $out/bin/dsymutil
-      ''
-      else ''
-        for tool in dyldinfo dwarfdump dsymutil; do
-          ${makeWrapper}/bin/makeWrapper "${maloader}/bin/ld-mac" "$out/bin/${targetPlatform.config}-$tool" \
-            --add-flags "${xctoolchain}/bin/$tool"
-          ln -s "$out/bin/${targetPlatform.config}-$tool" "$out/bin/$tool"
-        done
-      '';
+    postInstall = ''
+      cat >$out/bin/dsymutil << EOF
+      #!${stdenv.shell}
+      EOF
+      chmod +x $out/bin/dsymutil
+    '';
 
     passthru = {
       inherit targetPrefix;
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index fa4d604b400..8ae082ba9d4 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -62,6 +62,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libnl openssl sqlite ];
 
+  outputs = [ "out" "man" ];
+
   extraConfig = ''
     CONFIG_DRIVER_WIRED=y
     CONFIG_LIBNL32=y
@@ -103,6 +105,10 @@ stdenv.mkDerivation rec {
   '';
 
   preInstall = "mkdir -p $out/bin";
+  postInstall = ''
+    install -vD hostapd.8 -t $man/share/man/man8
+    install -vD hostapd_cli.1 -t $man/share/man/man1
+  '';
 
   meta = {
     homepage = http://hostap.epitest.fi;
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index ae31edcaaed..acb159a4acc 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -5,9 +5,7 @@ assert stdenv.lib.versionAtLeast kernel.version "3.10";
 
 stdenv.mkDerivation rec {
   name = "wireguard-${version}";
-  version = "0.0.20180514";
-
-  inherit (wireguard-tools) src;
+  inherit (wireguard-tools) src version;
 
   preConfigure = ''
     cd src
@@ -28,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage     = https://www.wireguard.com/;
     downloadPage = https://git.zx2c4.com/WireGuard/refs/;
-    description  = " Tools for the WireGuard secure network tunnel";
+    description  = "Kernel module for the WireGuard secure network tunnel";
     maintainers  = with maintainers; [ ericsagnes mic92 zx2c4 ];
     license      = licenses.gpl2;
     platforms    = platforms.linux;
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 8d6c6cfaeaf..54983a1d9f7 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -167,7 +167,7 @@
     "lutron_caseta" = ps: with ps; [  ];
     "matrix" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [  ];
-    "media_extractor" = ps: with ps; [  ];
+    "media_extractor" = ps: with ps; [ youtube-dl-light ];
     "media_player.anthemav" = ps: with ps; [  ];
     "media_player.aquostv" = ps: with ps; [  ];
     "media_player.blackbird" = ps: with ps; [  ];
@@ -276,7 +276,7 @@
     "satel_integra" = ps: with ps; [  ];
     "scene.hunterdouglas_powerview" = ps: with ps; [  ];
     "scsgate" = ps: with ps; [  ];
-    "sensor.airvisual" = ps: with ps; [  ];
+    "sensor.airvisual" = ps: with ps; [ pyairvisual ];
     "sensor.alpha_vantage" = ps: with ps; [  ];
     "sensor.bbox" = ps: with ps; [  ];
     "sensor.bh1750" = ps: with ps; [  ];
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 46e7acee178..5beeaccf088 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -25,6 +25,13 @@ GENERAL_PREFIX = '# homeassistant.'
 COMPONENT_PREFIX = GENERAL_PREFIX + 'components.'
 PKG_SET = 'python3Packages'
 
+# If some requirements are matched by multiple python packages,
+# the following can be used to choose one of them
+PKG_PREFERENCES = {
+    # Use python3Packages.youtube-dl-light instead of python3Packages.youtube-dl
+    'youtube-dl': 'youtube-dl-light'
+}
+
 def get_version():
     with open(os.path.dirname(sys.argv[0]) + '/default.nix') as f:
         m = re.search('hassVersion = "([\\d\\.]+)";', f.read())
@@ -59,7 +66,7 @@ output = subprocess.check_output(['nix-env', '-f', os.path.dirname(sys.argv[0])
 packages = json.loads(output)
 
 def name_to_attr_path(req):
-    attr_paths = []
+    attr_paths = set()
     names = [req]
     # E.g. python-mpd2 is actually called python3.6-mpd2
     # instead of python-3.6-python-mpd2 inside Nixpkgs
@@ -71,11 +78,18 @@ def name_to_attr_path(req):
         pattern = re.compile('^python\\d\\.\\d-{}-\\d'.format(name), re.I)
         for attr_path, package in packages.items():
             if pattern.match(package['name']):
-                attr_paths.append(attr_path)
+                attr_paths.add(attr_path)
+    if len(attr_paths) > 1:
+        for to_replace, replacement in PKG_PREFERENCES.items():
+            try:
+                attr_paths.remove(PKG_SET + '.' + to_replace)
+                attr_paths.add(PKG_SET + '.' + replacement)
+            except KeyError:
+                pass
     # Let's hope there's only one derivation with a matching name
     assert(len(attr_paths) <= 1)
-    if attr_paths:
-        return attr_paths[0]
+    if len(attr_paths) == 1:
+        return attr_paths.pop()
     else:
         return None
 
@@ -86,14 +100,11 @@ build_inputs = {}
 for component, reqs in OrderedDict(sorted(requirements.items())).items():
     attr_paths = []
     for req in reqs:
-        try:
-            name = req.split('==')[0]
-            attr_path = name_to_attr_path(name)
-            if attr_path is not None:
-                # Add attribute path without "python3Packages." prefix
-                attr_paths.append(attr_path[len(PKG_SET + '.'):])
-        except RequirementParseError:
-            continue
+        name = req.split('==')[0]
+        attr_path = name_to_attr_path(name)
+        if attr_path is not None:
+            # Add attribute path without "python3Packages." prefix
+            attr_paths.append(attr_path[len(PKG_SET + '.'):])
     else:
         build_inputs[component] = attr_paths
 
diff --git a/pkgs/servers/mail/postfix/default.nix b/pkgs/servers/mail/postfix/default.nix
index a5168ebd4df..41dfebab790 100644
--- a/pkgs/servers/mail/postfix/default.nix
+++ b/pkgs/servers/mail/postfix/default.nix
@@ -25,11 +25,11 @@ in stdenv.mkDerivation rec {
 
   name = "postfix-${version}";
 
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${name}.tar.gz";
-    sha256 = "0fggpbsc9jkrbaw9hy0zw9h32plmfvcv0x860pbih0g346byhhkr";
+    sha256 = "0fvymsklp32njsv0ngc1f45j01kcy61r5in99g5palibwkd19xal";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/nosql/eventstore/default.nix b/pkgs/servers/nosql/eventstore/default.nix
index 3ec00dfa16e..f97a3a5c184 100644
--- a/pkgs/servers/nosql/eventstore/default.nix
+++ b/pkgs/servers/nosql/eventstore/default.nix
@@ -5,12 +5,12 @@
 
 stdenv.mkDerivation rec {
   name = "EventStore-${version}";
-  version = "4.1.0";
+  version = "4.1.1";
   src = fetchFromGitHub {
     owner  = "EventStore";
     repo   = "EventStore";
     rev    = "oss-v${version}";
-    sha256 = "0mvjz327kfg157fwvy8xkkf5h0g3v373pfwr70cslsy96n45jp10";
+    sha256 = "1069ncb9ps1wi71yw1fzkfd9rfsavccw8xj3a3miwd9x72w8636f";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/slimserver/default.nix b/pkgs/servers/slimserver/default.nix
index f79e53b64cf..c9bf8393afc 100644
--- a/pkgs/servers/slimserver/default.nix
+++ b/pkgs/servers/slimserver/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPerlPackage, fetchurl
-, perl, perlPackages, fetchpatch }:
+{ stdenv, buildPerlPackage, fetchurl, fetchpatch, makeWrapper
+, perl, perlPackages, flac, faad2, sox, lame, monkeysAudio, wavpack }:
 
 buildPerlPackage rec {
   name = "slimserver-${version}";
@@ -16,6 +16,7 @@ buildPerlPackage rec {
   } ) ];
 
   buildInputs = [
+    makeWrapper
     perl
     perlPackages.AnyEvent
     perlPackages.AudioScan
@@ -75,17 +76,19 @@ buildPerlPackage rec {
 
   preConfigurePhase = "";
 
-  buildPhase = "
+  buildPhase = ''
     mv lib tmp
     mkdir -p lib/perl5/site_perl
     mv CPAN_used/* lib/perl5/site_perl
     cp -rf tmp/* lib/perl5/site_perl
-  ";
+  '';
 
   doCheck = false;
 
   installPhase = ''
     cp -r . $out
+    wrapProgram $out/slimserver.pl \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ lame flac faad2 sox monkeysAudio wavpack ]}"
   '';
 
   outputs = [ "out" ];
diff --git a/pkgs/servers/sql/postgresql/pg_repack/default.nix b/pkgs/servers/sql/postgresql/pg_repack/default.nix
index 50c9c68bb5f..1b7cd08b082 100644
--- a/pkgs/servers/sql/postgresql/pg_repack/default.nix
+++ b/pkgs/servers/sql/postgresql/pg_repack/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
     name = "pg_repack-${version}";
-    version = "1.4.2";
+    version = "1.4.3";
 
     buildInputs = [ postgresql openssl zlib readline ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       owner  = "reorg";
       repo   = "pg_repack";
       rev    = "refs/tags/ver_${version}";
-      sha256 = "1yv5x7dgiv1miazbngkrkdbc2zpwklj6nlligghjvv83bcl8969q";
+      sha256 = "1mmd22nfaxjwnbl3i95f3ivmjvfqwdflgaczlg3129dbpwg265xr";
     };
 
     installPhase = ''
diff --git a/pkgs/shells/zsh/zsh-autosuggestions/default.nix b/pkgs/shells/zsh/zsh-autosuggestions/default.nix
index 906301110e9..02e25cfdde6 100644
--- a/pkgs/shells/zsh/zsh-autosuggestions/default.nix
+++ b/pkgs/shells/zsh/zsh-autosuggestions/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "zsh-autosuggestions-${version}";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = "zsh-autosuggestions";
     rev = "v${version}";
-    sha256 = "1yvbhfaaqzhmjmwjh75i1p4mrqp3ksw74bp8lrll81c6zf8bmvig";
+    sha256 = "117m4jk3lgh98k699v00pg554qblpr4pbfvgs0qrgygfx1n1bpl4";
   };
 
   buildInputs = [ zsh ];
diff --git a/pkgs/tools/graphics/s2png/default.nix b/pkgs/tools/graphics/s2png/default.nix
new file mode 100644
index 00000000000..fd538eec573
--- /dev/null
+++ b/pkgs/tools/graphics/s2png/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, diffutils, gd, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "s2png-${version}";
+  version = "0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "dbohdan";
+    repo = "s2png";
+    rev = "v${version}";
+    sha256 = "0y3crfm0jqprgxamlly713cka2x1bp6z63p1lw9wh4wc37kpira6";
+  };
+
+  buildInputs = [ diffutils gd pkgconfig ];
+  installFlags = [ "prefix=" "DESTDIR=$(out)" ];
+
+  meta = {
+    homepage = https://github.com/dbohdan/s2png/;
+    description = "Store any data in PNG images";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ stdenv.lib.maintainers.dbohdan ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/autojump/default.nix b/pkgs/tools/misc/autojump/default.nix
index 4d3376108b7..5f86dbadfa3 100644
--- a/pkgs/tools/misc/autojump/default.nix
+++ b/pkgs/tools/misc/autojump/default.nix
@@ -1,64 +1,53 @@
-{ fetchurl, stdenv, python, bash }:
+{ stdenv, fetchFromGitHub, python, bash }:
 
-let
+stdenv.mkDerivation rec {
+  name = "autojump-${version}";
   version = "22.5.1";
-in
-  stdenv.mkDerivation rec {
-    name = "autojump-${version}";
 
-    src = fetchurl {
-      url = "http://github.com/joelthelion/autojump/archive/release-v${version}.tar.gz";
-      name = "autojump-${version}.tar.gz";
-      sha256 = "17z9j9936x0nizwrzf664bngh60x5qbvrrf1s5qdzd0f2gdanpvn";
-    };
-
-    buildInputs = [ python bash ];
-    dontBuild = true;
-
-    installPhase = ''
-      python ./install.py -d $out -p ""
-      chmod +x $out/etc/profile.d/*
-
-      mkdir -p "$out/etc/bash_completion.d"
-      cp -v $out/share/autojump/autojump.bash "$out/etc/bash_completion.d"
-
-      mkdir -p $out/share/fish/vendor_completions.d/
-      cp -v $out/share/autojump/autojump.fish "$out/share/fish/vendor_completions.d/autojump.fish"
-
-      cat <<SCRIPT > $out/bin/autojump-share
-      #!/bin/sh
-      # Run this script to find the autojump shared folder where all the shell
-      # integration scripts are living.
-      echo $out/share/autojump
-      SCRIPT
-      chmod +x $out/bin/autojump-share
+  src = fetchFromGitHub {
+    owner = "wting";
+    repo = "autojump";
+    rev = "release-v${version}";
+    sha256 = "1l1278g3k1qfrz41pkpjdhsabassb9si2d1bfbcmvbv5h3wmlqk9";
+  };
+
+  buildInputs = [ python bash ];
+  dontBuild = true;
+
+  installPhase = ''
+    python ./install.py -d "$out" -p "" -z "$out/share/zsh/site-functions/"
+
+    chmod +x "$out/etc/profile.d/autojump.sh"
+    install -Dt "$out/share/bash-completion/completions/" -m444 "$out/share/autojump/autojump.bash"
+    install -Dt "$out/share/fish/vendor_conf.d/" -m444 "$out/share/autojump/autojump.fish"
+    install -Dt "$out/share/zsh/site-functions/" -m444 "$out/share/autojump/autojump.zsh"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A `cd' command that learns";
+    longDescription = ''
+      One of the most used shell commands is “cd”.  A quick survey
+      among my friends revealed that between 10 and 20% of all
+      commands they type are actually cd commands! Unfortunately,
+      jumping from one part of your system to another with cd
+      requires to enter almost the full path, which isn’t very
+      practical and requires a lot of keystrokes.
+
+      Autojump is a faster way to navigate your filesystem.  It
+      works by maintaining a database of the directories you use the
+      most from the command line.  The jstat command shows you the
+      current contents of the database.  You need to work a little
+      bit before the database becomes usable.  Once your database
+      is reasonably complete, you can “jump” to a directory by
+      typing "j dirspec", where dirspec is a few characters of the
+      directory you want to jump to.  It will jump to the most used
+      directory whose name matches the pattern given in dirspec.
+
+      Autojump supports tab-completion.
     '';
-
-    meta = {
-      description = "A `cd' command that learns";
-      longDescription = ''
-        One of the most used shell commands is “cd”.  A quick survey
-        among my friends revealed that between 10 and 20% of all
-        commands they type are actually cd commands! Unfortunately,
-        jumping from one part of your system to another with cd
-        requires to enter almost the full path, which isn’t very
-        practical and requires a lot of keystrokes.
-
-        Autojump is a faster way to navigate your filesystem.  It
-        works by maintaining a database of the directories you use the
-        most from the command line.  The jstat command shows you the
-        current contents of the database.  You need to work a little
-        bit before the database becomes usable.  Once your database
-        is reasonably complete, you can “jump” to a directory by
-        typing "j dirspec", where dirspec is a few characters of the
-        directory you want to jump to.  It will jump to the most used
-        directory whose name matches the pattern given in dirspec.
-
-        Autojump supports tab-completion.
-      '';
-      homepage = http://wiki.github.com/joelthelion/autojump;
-      license = stdenv.lib.licenses.gpl3;
-      platforms = stdenv.lib.platforms.all;
-      maintainers = [ stdenv.lib.maintainers.domenkozar ];
-    };
-  }
+    homepage = http://wiki.github.com/wting/autojump;
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ domenkozar yurrriq ];
+  };
+}
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index f66cc60c926..5dba7744d7b 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -7,12 +7,12 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "calamares";
-  version = "3.1.12";
+  version = "3.2.0";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "0k59wnch2gmbsr5dh5swbjp4rkf5c1ml0n4sxf196wdasraismc6";
+    sha256 = "1i5q3hffjqi1id9kv8sixhddxd90d5qqmbc7gf5vf9m3c54pln64";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/debootstrap/default.nix b/pkgs/tools/misc/debootstrap/default.nix
index 22bf8340156..d12038a707d 100644
--- a/pkgs/tools/misc/debootstrap/default.nix
+++ b/pkgs/tools/misc/debootstrap/default.nix
@@ -4,13 +4,13 @@
 # There is also cdebootstrap now. Is that easier to maintain?
 stdenv.mkDerivation rec {
   name = "debootstrap-${version}";
-  version = "1.0.99";
+  version = "1.0.100";
 
   src = fetchurl {
     # git clone git://git.debian.org/d-i/debootstrap.git
     # I'd like to use the source. However it's lacking the lanny script ? (still true?)
     url = "mirror://debian/pool/main/d/debootstrap/debootstrap_${version}.tar.gz";
-    sha256 = "1plw53zghiykddj77s5jk10ncx82cgrkk798p909yydhcghnvcsb";
+    sha256 = "0jmwf26sq4bkdz6wi0dcjsrfkg8c8k3xdhi11xp6cdrw6qpw82ws";
   };
 
   buildInputs = [ dpkg gettext gawk perl ];
diff --git a/pkgs/tools/misc/gams/default.nix b/pkgs/tools/misc/gams/default.nix
new file mode 100644
index 00000000000..613fdc0f455
--- /dev/null
+++ b/pkgs/tools/misc/gams/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, unzip, lib, file, licenseFile, optgamsFile}:
+
+assert licenseFile != null;
+
+stdenv.mkDerivation rec {
+  version = "25.0.2";
+  name = "gams-${version}";
+  src = fetchurl {
+    url = "https://d37drm4t2jghv5.cloudfront.net/distributions/${version}/linux/linux_x64_64_sfx.exe";
+    sha256 = "4f95389579f33ff7c2586838a2c19021aa0746279555cbb51aa6e0efd09bd297";
+  };
+  unpackCmd = "unzip $src";
+  buildInputs = [ unzip file ];
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p "$out/bin" "$out/share/gams"
+    cp -a * "$out/share/gams"
+
+    cp ${licenseFile} $out/share/gamslice.txt
+  '' + stdenv.lib.optionalString (optgamsFile != null) ''
+    cp ${optgamsFile} $out/share/optgams.def
+    ln -s $out/share/gams/optgams.def $out/bin/optgams.def
+  '';
+
+  postFixup = ''
+    for f in $out/share/gams/*; do
+      if [[ -x $f ]] && [[ -f $f ]] && [[ ! $f =~ .*\.so$ ]]; then
+        if patchelf \
+          --set-rpath "$out/share/gams" \
+          --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $f; then
+          ln -s $f $out/bin/$(basename $f)
+        fi
+      fi
+    done
+  '';
+
+  meta = with stdenv.lib;{
+    description = "General Algebraic Modeling System";
+    longDescription = ''
+      The General Algebraic Modeling System is a high-level modeling system for mathematical optimization.
+      GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems.
+    '';
+    homepage = https://www.gams.com/;
+    license = licenses.unfree;
+    maintainers = [ maintainers.Scriptkiddi ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/pkgs/tools/misc/partition-manager/default.nix b/pkgs/tools/misc/partition-manager/default.nix
index a1c1eccdd88..4599309b238 100644
--- a/pkgs/tools/misc/partition-manager/default.nix
+++ b/pkgs/tools/misc/partition-manager/default.nix
@@ -1,26 +1,36 @@
 { mkDerivation, fetchurl, lib
 , extra-cmake-modules, kdoctools, wrapGAppsHook
 , kconfig, kcrash, kinit, kpmcore
-, eject, libatasmart }:
+, eject, libatasmart , utillinux, makeWrapper, qtbase
+}:
 
 let
   pname = "partitionmanager";
 in mkDerivation rec {
   name = "${pname}-${version}";
-  version = "3.0.1";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
-    sha256 = "08sb9xa7dvvgha3k2xm1srl339przxpxd2y5bh1lnx6k1x7dk410";
+    sha256 = "0jhggb4xksb0k0mj752n6pz0xmccnbzlp984xydqbz3hkigra1si";
   };
 
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook makeWrapper ];
+
+  # refer to kpmcore for the use of eject
+  buildInputs = [ eject libatasmart utillinux ];
+  propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/partitionmanager" --prefix QT_PLUGIN_PATH : "${kpmcore}/lib/qt-5.${lib.versions.minor qtbase.version}/plugins"
+  '';
+
   meta = with lib; {
     description = "KDE Partition Manager";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ peterhoeg ];
+    homepage = https://www.kde.org/applications/system/kdepartitionmanager/;
+    maintainers = with maintainers; [ peterhoeg ma27 ];
   };
-  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
-  # refer to kpmcore for the use of eject
-  buildInputs = [ eject libatasmart ];
-  propagatedBuildInputs = [ kconfig kcrash kinit kpmcore ];
 }
diff --git a/pkgs/tools/misc/thefuck/default.nix b/pkgs/tools/misc/thefuck/default.nix
index 7befd344a4d..1ccfc528e8f 100644
--- a/pkgs/tools/misc/thefuck/default.nix
+++ b/pkgs/tools/misc/thefuck/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "thefuck";
-  version = "3.26";
+  version = "3.27";
 
   src = fetchFromGitHub {
     owner = "nvbn";
     repo = "${pname}";
     rev = version;
-    sha256 = "0iyihbp94z38xajy8yfbn3ky7irnam1zwyswg34cw4kkfgggrwhz";
+    sha256 = "1lsg0g9lnpj2nidggm16b7jm4xzhg0dgy81crfzny62hah1zk0pj";
   };
 
   propagatedBuildInputs = [ colorama decorator psutil pyte six ];
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 61370ff890b..fcec511b7ef 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -13,7 +13,7 @@ in
 
 stdenv.mkDerivation rec {
   name = "tmux-${version}";
-  version = "2.6";
+  version = "2.7";
 
   outputs = [ "out" "man" ];
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "tmux";
     repo = "tmux";
     rev = version;
-    sha256 = "0605y0nwfmf0mnq075vk80897c2cvhxxvxinqq7hvrpjf2ph5mww";
+    sha256 = "1yr4l8ckd67c3id4vrbpha91xxpdfpw0cpbr3v81lam0m7k4rgba";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index b639397388b..7e503f326fd 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, targetPlatform, fetchurl, buildPythonApplication
+{ stdenv, targetPlatform, fetchurl, buildPythonPackage
 , zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
 # Pandoc is required to build the package's man page. Release tarballs contain a
 # formatted man page already, though, it will still be installed. We keep the
@@ -13,7 +13,7 @@
 , makeWrapper }:
 
 with stdenv.lib;
-buildPythonApplication rec {
+buildPythonPackage rec {
 
   pname = "youtube-dl";
   version = "2018.05.18";
diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix
index e27b241e755..37220acf8cf 100644
--- a/pkgs/tools/networking/wireguard-go/default.nix
+++ b/pkgs/tools/networking/wireguard-go/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   name = "wireguard-go-${version}";
-  version = "0.0.20180514";
+  version = "0.0.20180519";
 
   goPackagePath = "wireguard-go";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-go/snapshot/wireguard-go-${version}.tar.xz";
-    sha256 = "1i1w4vj8w353b92nfhs92k0f7fifrwi067qfmgckdk0kk76nv2id";
+    sha256 = "0b3wpc0ccf24567fjafv1sjs3yqq1xjam3gpfp37avxqy9789nb7";
   };
 
   goDeps = ./deps.nix;
@@ -22,7 +22,7 @@ buildGoPackage rec {
     description = "Userspace Go implementation of WireGuard";
     homepage = https://git.zx2c4.com/wireguard-go/about/;
     license = licenses.gpl2;
-    maintainers = with maintainers; [ kirelagin ];
-    platforms = with platforms; linux ++ darwin ++ windows;
+    maintainers = with maintainers; [ kirelagin zx2c4 ];
+    platforms = platforms.darwin;
   };
 }
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index c9e48d61c35..c43e7548364 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -1,46 +1,44 @@
-{ stdenv, lib, fetchzip, libmnl, useSystemd ? stdenv.isLinux }:
+{ stdenv, fetchzip, libmnl ? null, makeWrapper ? null, wireguard-go ? null }:
 
-let
-  inherit (lib) optional optionalString;
-in
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "wireguard-tools-${version}";
   version = "0.0.20180519";
 
   src = fetchzip {
-    url    = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
+    url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
     sha256 = "0pd04ia0wcm0f6di4gx5kflccc5j35d72j38l8jqpj8vinl6l070";
   };
 
-  preConfigure = "cd src";
+  sourceRoot = "source/src/tools";
 
-  buildInputs = optional stdenv.isLinux libmnl;
-
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ (optional stdenv.isDarwin makeWrapper) ];
+  buildInputs = [ (optional stdenv.isLinux libmnl) ];
 
   makeFlags = [
-    "WITH_BASHCOMPLETION=yes"
-    "WITH_WGQUICK=yes"
-    "WITH_SYSTEMDUNITS=${if useSystemd then "yes" else "no"}"
     "DESTDIR=$(out)"
     "PREFIX=/"
-    "-C" "tools"
+    "WITH_BASHCOMPLETION=yes"
+    "WITH_SYSTEMDUNITS=yes"
+    "WITH_WGQUICK=yes"
   ];
 
-  buildPhase = "make tools";
-
-  postInstall = optionalString useSystemd ''
+  postFixup = ''
     substituteInPlace $out/lib/systemd/system/wg-quick@.service \
       --replace /usr/bin $out/bin
+  '' + optionalString stdenv.isDarwin ''
+    for f in $out/bin/*; do
+      wrapProgram $f --prefix PATH : ${wireguard-go}/bin
+    done
   '';
 
   meta = with stdenv.lib; {
-    homepage     = https://www.wireguard.com/;
+    description = "Tools for the WireGuard secure network tunnel";
     downloadPage = https://git.zx2c4.com/WireGuard/refs/;
-    description  = " Tools for the WireGuard secure network tunnel";
-    maintainers  = with maintainers; [ ericsagnes mic92 zx2c4 ];
-    license      = licenses.gpl2;
-    platforms    = platforms.unix;
+    homepage = https://www.wireguard.com/;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ericsagnes mic92 zx2c4 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-tree/default.nix b/pkgs/tools/package-management/cargo-tree/default.nix
new file mode 100644
index 00000000000..a9c1a1a33b3
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-tree/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, pkgconfig, cmake, curl, libiconv, darwin }:
+rustPlatform.buildRustPackage rec {
+  name = "cargo-tree-${version}";
+  version = "0.18.0";
+
+  src = fetchFromGitHub {
+    owner = "sfackler";
+    repo = "cargo-tree";
+    rev = "v${version}";
+
+    sha256 = "0lq14w11a4zl0rvv7rsd79k51dwk3w78fbsi6klkqknad02qmx3r";
+  };
+
+  cargoSha256 = "0zi4qbadlx4l6zhb0f892ic3mdmyjjjzrirks18pl6qrn3dgny1x";
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ curl ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
+
+  meta = with lib; {
+    description = "A cargo subcommand that visualizes a crate's dependency graph in a tree-like format";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ jD91mZM2 ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix-du/default.nix b/pkgs/tools/package-management/nix-du/default.nix
new file mode 100644
index 00000000000..2e68666b7fa
--- /dev/null
+++ b/pkgs/tools/package-management/nix-du/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, rustPlatform, nix, boost, graphviz }:
+rustPlatform.buildRustPackage rec {
+  name = "nix-du-${version}";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "symphorien";
+    repo = "nix-du";
+    rev = "v${version}";
+    sha256 = "0kxacn5qw21pp4zl6wr9wyb2mm2nlnp6mla3m5p9dm7vrm1fd1x9";
+  };
+  cargoSha256 = "04c48lzi7hny3nq4ffdpvsr4dxbi32faka163fp1yc9953zdw9az";
+
+  doCheck = !stdenv.isDarwin;
+  checkInputs = [ graphviz ];
+  nativeBuildInputs = [] ++ stdenv.lib.optionals doCheck checkInputs;
+
+  buildInputs = [
+    boost
+    nix
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A tool to determine which gc-roots take space in your nix store";
+    homepage = https://github.com/symphorien/nix-du;
+    license = licenses.lgpl3;
+    maintainers = [ maintainers.symphorien ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/package-management/nixops/unstable.nix b/pkgs/tools/package-management/nixops/unstable.nix
index 8eaf20dc772..88493d33dd1 100644
--- a/pkgs/tools/package-management/nixops/unstable.nix
+++ b/pkgs/tools/package-management/nixops/unstable.nix
@@ -5,9 +5,9 @@
 # Then copy the URL to the tarball.
 
 callPackage ./generic.nix (rec {
-  version = "1.6pre2276_9203440";
+  version = "1.6.1pre2622_f10999a";
   src = fetchurl {
-    url = "https://hydra.nixos.org/build/64518294/download/2/nixops-${version}.tar.bz2";
-    sha256 = "1cl0869nl67fr5xk0jl9cvqbmma7d4vz5xbg56jpl7casrr3i51x";
+    url = "https://hydra.nixos.org/build/73716350/download/2/nixops-${version}.tar.bz2";
+    sha256 = "08886b6vxhjc3cp0ikxp920zap7wp6r92763fp785rvxrmb00rbd";
   };
 })
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c19e956e7a7..8764741b21b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -646,6 +646,11 @@ with pkgs;
 
   genymotion = callPackage ../development/mobile/genymotion { };
 
+  gams = callPackage ../tools/misc/gams {
+    licenseFile = config.gams.licenseFile or null;
+    optgamsFile = config.gams.optgamsFile or null;
+  };
+
   git-fire = callPackage ../tools/misc/git-fire { };
 
   gitless = callPackage ../applications/version-management/gitless/default.nix { };
@@ -1390,6 +1395,8 @@ with pkgs;
 
   parallel-rust = callPackage ../tools/misc/parallel-rust { };
 
+  s2png = callPackage ../tools/graphics/s2png { };
+
   socklog = callPackage ../tools/system/socklog { };
 
   staccato = callPackage ../tools/text/staccato { };
@@ -3436,7 +3443,7 @@ with pkgs;
 
   nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
 
-  nodejs = hiPrio nodejs-6_x;
+  nodejs = hiPrio nodejs-8_x;
 
   nodejs-slim = nodejs-slim-6_x;
 
@@ -6054,18 +6061,6 @@ with pkgs;
 
   clang-analyzer = callPackage ../development/tools/analysis/clang-analyzer { };
 
-  clangSelf = clangWrapSelf llvmPackagesSelf.clang;
-
-  clangWrapSelf = build: ccWrapperFun {
-    cc = build;
-    isClang = true;
-    inherit stdenvNoCC;
-    inherit (targetPackages.stdenv.cc) bintools libc;
-    extraPackages = [ libcxx libcxxabi ];
-    nativeTools = false;
-    nativeLibc = false;
-  };
-
   #Use this instead of stdenv to build with clang
   clangStdenv = if stdenv.cc.isClang then stdenv else lowPrio llvmPackages.stdenv;
   clang-sierraHack-stdenv = overrideCC stdenv clang-sierraHack;
@@ -6702,10 +6697,6 @@ with pkgs;
 
   llvmPackages = recurseIntoAttrs llvmPackages_5;
 
-  llvmPackagesSelf = llvmPackages_34.override {
-    stdenv = libcxxStdenv;
-  };
-
   llvmPackages_34 = callPackage ../development/compilers/llvm/3.4 ({
     isl = isl_0_12;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
@@ -6720,30 +6711,40 @@ with pkgs;
 
   llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_37;
+    targetLlvmPackages = targetPackages.llvmPackages_37;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
     stdenv = overrideCC stdenv gcc6;
   });
 
   llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_38;
+    targetLlvmPackages = targetPackages.llvmPackages_38;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
     stdenv = overrideCC stdenv gcc6;
   });
 
   llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_39;
+    targetLlvmPackages = targetPackages.llvmPackages_39;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
     stdenv = overrideCC stdenv gcc6;
   });
 
   llvmPackages_4 = callPackage ../development/compilers/llvm/4 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_4;
+    targetLlvmPackages = targetPackages.llvmPackages_4;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
     stdenv = overrideCC stdenv gcc6;
   });
 
   llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_5;
+    targetLlvmPackages = targetPackages.llvmPackages_5;
   } // stdenv.lib.optionalAttrs stdenv.isDarwin {
     cmake = cmake.override {
       isBootstrap = true;
@@ -6757,6 +6758,8 @@ with pkgs;
 
   llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({
     inherit (stdenvAdapters) overrideCC;
+    buildLlvmPackages = buildPackages.llvmPackages_6;
+    targetLlvmPackages = targetPackages.llvmPackages_6;
   } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) {
     stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4'
   });
@@ -6914,6 +6917,7 @@ with pkgs;
 
   cargo-edit = callPackage ../tools/package-management/cargo-edit { };
   cargo-release = callPackage ../tools/package-management/cargo-release { };
+  cargo-tree = callPackage ../tools/package-management/cargo-tree { };
 
   cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
 
@@ -7009,42 +7013,46 @@ with pkgs;
 
   wla-dx = callPackage ../development/compilers/wla-dx { };
 
-  wrapCCWith = { name ? "", cc, bintools, libc, extraBuildCommands ? "" }:
-      ccWrapperFun rec {
+  wrapCCWith =
+    { cc
+    , # This should be the only bintools runtime dep with this sort of logic. The
+      # Others should instead delegate to the next stage's choice with
+      # `targetPackages.stdenv.cc.bintools`. This one is different just to
+      # provide the default choice, avoiding infinite recursion.
+      bintools ? if targetPlatform.isDarwin then darwin.binutils else binutils
+    , libc ? bintools.libc
+    , ...
+    } @ extraArgs:
+      callPackage ../build-support/cc-wrapper (let self = {
     nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
     nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
     nativePrefix = stdenv.cc.nativePrefix or "";
-    noLibc = !nativeLibc && (libc == null);
+    noLibc = !self.nativeLibc && (self.libc == null);
 
     isGNU = cc.isGNU or false;
     isClang = cc.isClang or false;
 
-    inherit name cc bintools libc extraBuildCommands;
-  };
-
-  ccWrapperFun = callPackage ../build-support/cc-wrapper;
-  bintoolsWrapperFun = callPackage ../build-support/bintools-wrapper;
+    inherit cc bintools libc;
+  } // extraArgs; in self);
 
   wrapCC = cc: wrapCCWith {
-    name = lib.optionalString (targetPlatform != hostPlatform) "gcc-cross-wrapper";
     inherit cc;
-    # This should be the only bintools runtime dep with this sort of logic. The
-    # Others should instead delegate to the next stage's choice with
-    # `targetPackages.stdenv.cc.bintools`. This one is different just to
-    # provide the default choice, avoiding infinite recursion.
-    bintools = if targetPlatform.isDarwin then darwin.binutils else binutils;
-    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
   };
 
-  wrapBintoolsWith = { bintools, libc, extraBuildCommands ? "" }: bintoolsWrapperFun {
+  wrapBintoolsWith =
+    { bintools
+    , libc ? if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc
+    , ...
+    } @ extraArgs:
+      callPackage ../build-support/bintools-wrapper (let self = {
     nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
     nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
     nativePrefix = stdenv.cc.nativePrefix or "";
 
-    noLibc = (libc == null);
+    noLibc = (self.libc == null);
 
-    inherit bintools libc extraBuildCommands;
-  };
+    inherit bintools libc;
+  } // extraArgs; in self);
 
   # prolog
   yap = callPackage ../development/compilers/yap { };
@@ -7445,7 +7453,9 @@ with pkgs;
   spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
   spidermonkey_17 = callPackage ../development/interpreters/spidermonkey/17.nix { };
   spidermonkey_31 = callPackage ../development/interpreters/spidermonkey/31.nix { };
-  spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix { };
+  spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix {
+    inherit (darwin) libobjc;
+  };
   spidermonkey_52 = callPackage ../development/interpreters/spidermonkey/52.nix { };
   spidermonkey = spidermonkey_31;
 
@@ -7648,11 +7658,9 @@ with pkgs;
     noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
   };
   binutils = wrapBintoolsWith {
-    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
     bintools = binutils-unwrapped;
   };
   binutils_nogold = lowPrio (wrapBintoolsWith {
-    libc = if targetPlatform != hostPlatform then libcCross else stdenv.cc.libc;
     bintools = binutils-unwrapped.override {
       gold = false;
     };
@@ -11564,7 +11572,9 @@ with pkgs;
 
   simpleitk = callPackage ../development/libraries/simpleitk { lua = lua51Packages.lua; };
 
-  sfml = callPackage ../development/libraries/sfml { };
+  sfml = callPackage ../development/libraries/sfml {
+    inherit (darwin.apple_sdk.frameworks) IOKit Foundation AppKit OpenAL;
+  };
   csfml = callPackage ../development/libraries/csfml { };
 
   shapelib = callPackage ../development/libraries/shapelib { };
@@ -14906,8 +14916,9 @@ with pkgs;
     gconf = gnome2.GConf;
   };
 
-  atom = callPackage ../applications/editors/atom { };
-  atom-beta = callPackage ../applications/editors/atom/beta.nix { };
+  atomPackages = callPackage ../applications/editors/atom { };
+
+  inherit (atomPackages) atom atom-beta;
 
   aseprite = callPackage ../applications/editors/aseprite { };
   aseprite-unfree = aseprite.override { unfree = true; };
@@ -15084,7 +15095,6 @@ with pkgs;
   bombono = callPackage ../applications/video/bombono {};
 
   bomi = libsForQt5.callPackage ../applications/video/bomi {
-    youtube-dl = pythonPackages.youtube-dl;
     pulseSupport = config.pulseaudio or true;
     ffmpeg = ffmpeg_2;
   };
@@ -17040,7 +17050,6 @@ with pkgs;
 
   mpv = callPackage ../applications/video/mpv rec {
     inherit (luaPackages) luasocket;
-    youtube-dl = pythonPackages.youtube-dl;
     waylandSupport     = stdenv.isLinux;
     alsaSupport        = !stdenv.isDarwin;
     pulseSupport       = !stdenv.isDarwin;
@@ -17466,6 +17475,8 @@ with pkgs;
 
   purple-vk-plugin = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-vk-plugin { };
 
+  purple-xmpp-http-upload = callPackage ../applications/networking/instant-messengers/pidgin-plugins/purple-xmpp-http-upload { };
+
   telegram-purple = callPackage ../applications/networking/instant-messengers/pidgin-plugins/telegram-purple { };
 
   toxprpl = callPackage ../applications/networking/instant-messengers/pidgin-plugins/tox-prpl {
@@ -18963,7 +18974,9 @@ with pkgs;
 
   yoshimi = callPackage ../applications/audio/yoshimi { };
 
-  inherit (pythonPackages) youtube-dl;
+  youtube-dl = with pythonPackages; toPythonApplication youtube-dl;
+
+  youtube-dl-light = with pythonPackages; toPythonApplication youtube-dl-light;
 
   youtube-viewer = perlPackages.WWWYoutubeViewer;
 
@@ -19214,7 +19227,7 @@ with pkgs;
 
   freeciv = callPackage ../games/freeciv { };
 
-  freeciv_gtk = callPackage ../games/freeciv {
+  freeciv_gtk = freeciv.override {
     gtkClient = true;
     sdlClient = false;
   };
@@ -20452,6 +20465,8 @@ with pkgs;
     texinfo = texinfo4;
   };
 
+  form = callPackage ../applications/science/math/form { };
+
   fricas = callPackage ../applications/science/math/fricas { };
 
   gap = callPackage ../applications/science/math/gap { };
@@ -20820,6 +20835,8 @@ with pkgs;
 
   helm = callPackage ../applications/audio/helm { };
 
+  helmfile = callPackage ../applications/networking/cluster/helmfile { };
+
   heptio-ark = callPackage ../applications/networking/cluster/heptio-ark { };
 
   hplip = callPackage ../misc/drivers/hplip { };
@@ -20908,6 +20925,8 @@ with pkgs;
   nix-deploy = haskell.lib.justStaticExecutables haskellPackages.nix-deploy;
   nix-diff = haskell.lib.justStaticExecutables haskellPackages.nix-diff;
 
+  nix-du = callPackage ../tools/package-management/nix-du { };
+
   nix-info = callPackage ../tools/nix/info { };
   nix-info-tested = callPackage ../tools/nix/info { doCheck = true; };
 
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 519d1cb9ed4..2bc5671e987 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -29,6 +29,7 @@ let
       heq = callPackage ../development/coq-modules/heq {};
       HoTT = callPackage ../development/coq-modules/HoTT {};
       interval = callPackage ../development/coq-modules/interval {};
+      iris = callPackage ../development/coq-modules/iris {};
       math-classes = callPackage ../development/coq-modules/math-classes { };
       mathcomp = callPackage ../development/coq-modules/mathcomp { };
       metalib = callPackage ../development/coq-modules/metalib { };
diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix
index d2d41792c46..907ec0c7592 100644
--- a/pkgs/top-level/darwin-packages.nix
+++ b/pkgs/top-level/darwin-packages.nix
@@ -29,7 +29,6 @@ in
     inherit (darwin) libobjc maloader;
     stdenv = if stdenv.isDarwin then stdenv else pkgs.libcxxStdenv;
     libcxxabi = pkgs.libcxxabi;
-    xctoolchain = darwin.xcode.toolchain;
   };
 
   cf-private = callPackage ../os-specific/darwin/cf-private {
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index e46888992f7..7bbb56c7b64 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -269,6 +269,8 @@ let
 
     higlo = callPackage ../development/ocaml-modules/higlo { };
 
+    imagelib = callPackage ../development/ocaml-modules/imagelib { };
+
     inotify = callPackage ../development/ocaml-modules/inotify { };
 
     integers = callPackage ../development/ocaml-modules/integers { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 8956f980668..6f4b0649a12 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -12060,6 +12060,20 @@ let self = _self // overrides; _self = with self; {
      };
   };
 
+  ParsePlainConfig = buildPerlPackage rec {
+    name = "Parse-PlainConfig-3.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/${name}.tar.gz";
+      sha256 = "6b78a8552398b0d2d7063505c93b3cfed0432c5b2cf6e00b8e51febf411c1efa";
+    };
+    propagatedBuildInputs = [ ClassEHierarchy Paranoid ];
+    meta = {
+      description = "Parser/Generator of human-readable conf files";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.limeytexan ];
+    };
+  };
+
   ParsePMFile = buildPerlPackage rec {
      name = "Parse-PMFile-0.41";
      src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 204a49e63b4..b695372fe96 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -319,6 +319,8 @@ in {
 
   pyaes = callPackage ../development/python-modules/pyaes { };
 
+  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+
   pyamf = callPackage ../development/python-modules/pyamf { };
 
   pyarrow = callPackage ../development/python-modules/pyarrow {
@@ -545,6 +547,8 @@ in {
 
   asyncio = callPackage ../development/python-modules/asyncio {};
 
+  asyncssh = callPackage ../development/python-modules/asyncssh { };
+
   python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
   funcsigs = callPackage ../development/python-modules/funcsigs { };
@@ -13034,15 +13038,7 @@ in {
     };
   };
 
-  timeout-decorator = buildPythonPackage rec {
-    name    = "timeout-decorator-${version}";
-    version = "0.3.2";
-
-    src = pkgs.fetchurl {
-      url    = "http://pypi.python.org/packages/source/t/timeout-decorator/${name}.tar.gz";
-      sha256 = "1x9l8bwdk72if2d5h5mi4lcaidbsmyh0iz114cfyyj1rzz5rxqaf";
-    };
-  };
+  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
 
   pid = buildPythonPackage rec {
     name = "pid-${version}";
@@ -16356,8 +16352,8 @@ EOF
     };
   };
 
-  # For backwards compatibility. Please use nixpkgs.udiskie instead.
-  udiskie = toPythonModule (pkgs.udiskie.override { pythonPackages = self; });
+  # added 2018-05-23, can be removed once 18.09 is branched off
+  udiskie = throw "pythonPackages.udiskie has been replaced by udiskie";
 
   # Should be bumped along with EFL!
   pythonefl = buildPythonPackage rec {
@@ -18196,6 +18192,8 @@ EOF
   prometheus_client = callPackage ../development/python-modules/prometheus_client { };
 
   pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+
+  pyogg = callPackage ../development/python-modules/pyogg { };
 });
 
 in fix' (extends overrides packages)