about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/coding-conventions.xml29
-rw-r--r--doc/cross-compilation.xml2
-rw-r--r--doc/languages-frameworks/ruby.xml11
-rw-r--r--doc/stdenv.xml43
-rw-r--r--nixos/doc/manual/configuration/modularity.xml19
-rw-r--r--nixos/doc/manual/development/running-nixos-tests-interactively.xml2
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.xml2
-rw-r--r--nixos/doc/manual/release-notes/rl-1903.xml10
-rw-r--r--nixos/lib/testing.nix2
-rwxr-xr-xnixos/maintainers/scripts/gce/create-gce.sh4
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image.nix4
-rw-r--r--nixos/modules/programs/sway-beta.nix2
-rw-r--r--nixos/modules/services/cluster/kubernetes/default.nix8
-rw-r--r--nixos/modules/services/databases/postgresql.nix3
-rw-r--r--nixos/modules/services/networking/ntpd.nix38
-rw-r--r--nixos/modules/services/x11/urxvtd.nix30
-rw-r--r--nixos/modules/system/boot/systemd-nspawn.nix2
-rw-r--r--nixos/modules/virtualisation/container-config.nix8
-rw-r--r--nixos/modules/virtualisation/google-compute-config.nix262
-rw-r--r--nixos/modules/virtualisation/google-compute-image.nix360
-rw-r--r--nixos/tests/gitlab.nix4
-rw-r--r--pkgs/applications/audio/avldrums-lv2/default.nix4
-rw-r--r--pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix6
-rw-r--r--pkgs/applications/audio/renoise/default.nix15
-rw-r--r--pkgs/applications/audio/x42-plugins/default.nix6
-rw-r--r--pkgs/applications/editors/android-studio/default.nix12
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix4
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix28
-rw-r--r--pkgs/applications/graphics/tesseract/4.x.nix10
-rw-r--r--pkgs/applications/kde/dolphin.nix4
-rw-r--r--pkgs/applications/misc/aminal/default.nix75
-rw-r--r--pkgs/applications/misc/autospotting/default.nix30
-rw-r--r--pkgs/applications/misc/autospotting/deps.nix75
-rw-r--r--pkgs/applications/misc/slic3r/prusa3d.nix8
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix3
-rw-r--r--pkgs/applications/networking/browsers/lynx/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubetail/default.nix5
-rw-r--r--pkgs/applications/networking/cluster/stern/default.nix27
-rw-r--r--pkgs/applications/networking/instant-messengers/dino/default.nix8
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/neomutt/default.nix8
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix5
-rw-r--r--pkgs/applications/office/marp/default.nix21
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix9
-rw-r--r--pkgs/applications/science/electronics/librepcb/default.nix6
-rw-r--r--pkgs/applications/science/logic/z3/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/default.nix1
-rw-r--r--pkgs/applications/science/math/sage/sage-tests.nix2
-rw-r--r--pkgs/applications/science/physics/quantomatic/default.nix31
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-reparent/default.nix33
-rw-r--r--pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch27
-rw-r--r--pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch11
-rw-r--r--pkgs/applications/version-management/gitlab/data.json32
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix34
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile (renamed from pkgs/applications/version-management/gitaly/Gemfile)17
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock (renamed from pkgs/applications/version-management/gitaly/Gemfile.lock)127
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix (renamed from pkgs/applications/version-management/gitaly/default.nix)4
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix (renamed from pkgs/applications/version-management/gitaly/gemset.nix)268
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix (renamed from pkgs/applications/version-management/gitlab-shell/default.nix)4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch45
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix (renamed from pkgs/applications/version-management/gitlab-workhorse/default.nix)8
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch (renamed from pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch)0
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py234
-rw-r--r--pkgs/applications/virtualization/open-vm-tools/default.nix4
-rw-r--r--pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c2
-rw-r--r--pkgs/build-support/emacs/melpa.nix29
-rw-r--r--pkgs/build-support/emacs/trivial.nix13
-rw-r--r--pkgs/build-support/setup-hooks/auto-patchelf.sh67
-rw-r--r--pkgs/build-support/writers/default.nix239
-rw-r--r--pkgs/build-support/writers/test.nix149
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-keyring/default.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix13
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml111
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1546
-rw-r--r--pkgs/development/haskell-modules/patches/fgl-monad-fail.patch61
-rw-r--r--pkgs/development/interpreters/php/default.nix51
-rw-r--r--pkgs/development/interpreters/php/fix-paths-php7.patch33
-rw-r--r--pkgs/development/interpreters/php/php71-darwin-isfinite.patch60
-rw-r--r--pkgs/development/interpreters/php/php72-darwin-isfinite.patch62
-rw-r--r--pkgs/development/libraries/aravis/default.nix89
-rw-r--r--pkgs/development/libraries/gmime/3.nix4
-rw-r--r--pkgs/development/libraries/grpc/default.nix6
-rw-r--r--pkgs/development/libraries/nlopt/default.nix9
-rw-r--r--pkgs/development/libraries/spdlog/default.nix10
-rw-r--r--pkgs/development/perl-modules/catalyst-fix-chunked-encoding.patch23
-rw-r--r--pkgs/development/python-modules/affine/default.nix22
-rw-r--r--pkgs/development/python-modules/astunparse/default.nix21
-rw-r--r--pkgs/development/python-modules/async_generator/default.nix5
-rw-r--r--pkgs/development/python-modules/bugzilla/default.nix2
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix46
-rw-r--r--pkgs/development/python-modules/configshell/default.nix21
-rw-r--r--pkgs/development/python-modules/fs-s3fs/default.nix23
-rw-r--r--pkgs/development/python-modules/gentools/default.nix31
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix4
-rw-r--r--pkgs/development/python-modules/hopcroftkarp/default.nix24
-rw-r--r--pkgs/development/python-modules/manuel/default.nix7
-rw-r--r--pkgs/development/python-modules/matchpy/default.nix33
-rw-r--r--pkgs/development/python-modules/multiset/default.nix27
-rw-r--r--pkgs/development/python-modules/nbval/default.nix41
-rw-r--r--pkgs/development/python-modules/netaddr/default.nix5
-rw-r--r--pkgs/development/python-modules/perf/default.nix43
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix11
-rw-r--r--pkgs/development/python-modules/pyepsg/default.nix23
-rw-r--r--pkgs/development/python-modules/pyftpdlib/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix5
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix25
-rw-r--r--pkgs/development/python-modules/pyupdate/default.nix28
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix29
-rw-r--r--pkgs/development/python-modules/rope/default.nix8
-rw-r--r--pkgs/development/python-modules/rpy2/default.nix53
-rw-r--r--pkgs/development/python-modules/rpy2/r-libs-site.patch20
-rw-r--r--pkgs/development/python-modules/rtslib/default.nix21
-rw-r--r--pkgs/development/python-modules/snug/default.nix37
-rw-r--r--pkgs/development/python-modules/snuggs/default.nix29
-rw-r--r--pkgs/development/python-modules/sure/default.nix13
-rw-r--r--pkgs/development/python-modules/uarray/default.nix44
-rw-r--r--pkgs/development/r-modules/wrapper.nix3
-rw-r--r--pkgs/development/ruby-modules/bundix/default.nix4
-rw-r--r--pkgs/development/ruby-modules/bundler-app/default.nix1
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix18
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/rake/Gemfile.lock4
-rw-r--r--pkgs/development/tools/build-managers/rake/gemset.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix8
-rw-r--r--pkgs/development/tools/database/sqlcheck/default.nix26
-rw-r--r--pkgs/development/tools/database/sqlite-web/default.nix25
-rw-r--r--pkgs/development/tools/gauge/default.nix4
-rw-r--r--pkgs/development/tools/kube-prompt/default.nix4
-rw-r--r--pkgs/development/tools/kube-prompt/deps.nix4
-rw-r--r--pkgs/development/tools/kubicorn/default.nix26
-rw-r--r--pkgs/development/tools/kustomize/default.nix8
-rw-r--r--pkgs/development/tools/scss-lint/Gemfile2
-rw-r--r--pkgs/development/tools/scss-lint/Gemfile.lock25
-rw-r--r--pkgs/development/tools/scss-lint/default.nix15
-rw-r--r--pkgs/development/tools/scss-lint/gemset.nix62
-rw-r--r--pkgs/development/tools/xcpretty/Gemfile2
-rw-r--r--pkgs/development/tools/xcpretty/Gemfile.lock15
-rw-r--r--pkgs/development/tools/xcpretty/default.nix27
-rw-r--r--pkgs/development/tools/xcpretty/gemset.nix19
-rw-r--r--pkgs/games/boohu/default.nix4
-rw-r--r--pkgs/games/hyperrogue/default.nix6
-rw-r--r--pkgs/misc/cups/drivers/estudio/default.nix2
-rw-r--r--pkgs/misc/vscode-extensions/cpptools/default.nix9
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/sssd/default.nix19
-rw-r--r--pkgs/os-specific/linux/targetcli/default.nix22
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/echoip/default.nix30
-rw-r--r--pkgs/servers/echoip/deps.nix74
-rw-r--r--pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/default.nix9
-rw-r--r--pkgs/servers/traefik/default.nix4
-rw-r--r--pkgs/test/default.nix2
-rw-r--r--pkgs/tools/admin/pulumi/default.nix39
-rw-r--r--pkgs/tools/audio/beets/alternatives-plugin.nix13
-rw-r--r--pkgs/tools/audio/beets/default.nix9
-rw-r--r--pkgs/tools/backup/wal-g/default.nix10
-rw-r--r--pkgs/tools/misc/nbench/default.nix31
-rw-r--r--pkgs/tools/networking/p2p/bittornado/default.nix26
-rw-r--r--pkgs/tools/security/mkpasswd/default.nix2
-rw-r--r--pkgs/tools/system/efivar/default.nix3
-rw-r--r--pkgs/tools/text/gist/default.nix16
-rw-r--r--pkgs/top-level/all-packages.nix48
-rw-r--r--pkgs/top-level/perl-packages.nix143
-rw-r--r--pkgs/top-level/python-packages.nix36
177 files changed, 4251 insertions, 2079 deletions
diff --git a/doc/coding-conventions.xml b/doc/coding-conventions.xml
index 2d2018c72d25..a8a4557b461c 100644
--- a/doc/coding-conventions.xml
+++ b/doc/coding-conventions.xml
@@ -56,25 +56,30 @@ foo { arg = ...; }
      or list elements should be aligned:
 <programlisting>
 # A long list.
-list =
-  [ elem1
-    elem2
-    elem3
-  ];
+list = [
+  elem1
+  elem2
+  elem3
+];
 
 # A long attribute set.
-attrs =
-  { attr1 = short_expr;
-    attr2 =
-      if true then big_expr else big_expr;
-  };
-
-# Alternatively:
 attrs = {
   attr1 = short_expr;
   attr2 =
     if true then big_expr else big_expr;
 };
+
+# Combined
+listOfAttrs = [
+  {
+    attr1 = 3;
+    attr2 = "fff";
+  }
+  {
+    attr1 = 5;
+    attr2 = "ggg";
+  }
+];
 </programlisting>
     </para>
    </listitem>
diff --git a/doc/cross-compilation.xml b/doc/cross-compilation.xml
index a41240570c6d..40cf11304eae 100644
--- a/doc/cross-compilation.xml
+++ b/doc/cross-compilation.xml
@@ -385,7 +385,7 @@ nix-build &lt;nixpkgs&gt; --arg crossSystem '(import &lt;nixpkgs/lib&gt;).system
     Eventually we would like to make these platform examples an unnecessary
     convenience so that
 <programlisting>
-nix-build &lt;nixpkgs&gt; --arg crossSystem.config '&lt;arch&gt;-&lt;os&gt;-&lt;vendor&gt;-&lt;abi&gt;' -A whatever</programlisting>
+nix-build &lt;nixpkgs&gt; --arg crossSystem '{ config = "&lt;arch&gt;-&lt;os&gt;-&lt;vendor&gt;-&lt;abi&gt;"; }' -A whatever</programlisting>
     works in the vast majority of cases. The problem today is dependencies on
     other sorts of configuration which aren't given proper defaults. We rely on
     the examples to crudely to set those configuration parameters in some
diff --git a/doc/languages-frameworks/ruby.xml b/doc/languages-frameworks/ruby.xml
index c52a72a3df4a..df4e5acb22cb 100644
--- a/doc/languages-frameworks/ruby.xml
+++ b/doc/languages-frameworks/ruby.xml
@@ -51,6 +51,17 @@ bundlerEnv rec {
  </para>
 
  <para>
+  Updating Ruby packages can then be done like this:
+ </para>
+
+<screen>
+<![CDATA[$ cd pkgs/servers/monitoring/sensu
+$ nix-shell -p bundler --run 'bundle lock --update'
+$ nix-shell -p bundix --run 'bundix'
+]]>
+</screen>
+
+ <para>
   For tools written in Ruby - i.e. where the desire is to install a package and
   then execute e.g. <command>rake</command> at the command line, there is an
   alternative builder called <literal>bundlerApp</literal>. Set up the
diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index 208b5e9cf302..4c19b2867b5a 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -2428,12 +2428,31 @@ addEnvHooks "$hostOffset" myBashFunction
       <para>
        This is a special setup hook which helps in packaging proprietary
        software in that it automatically tries to find missing shared library
-       dependencies of ELF files. All packages within the
-       <envar>runtimeDependencies</envar> environment variable are
-       unconditionally added to executables, which is useful for programs that
-       use <citerefentry>
-       <refentrytitle>dlopen</refentrytitle>
-       <manvolnum>3</manvolnum> </citerefentry> to load libraries at runtime.
+       dependencies of ELF files based on the given
+       <varname>buildInputs</varname> and <varname>nativeBuildInputs</varname>.
+      </para>
+      <para>
+       You can also specify a <envar>runtimeDependencies</envar> environment
+       variable which lists dependencies that are unconditionally added to all
+       executables.
+      </para>
+      <para>
+       This is useful for programs that use <citerefentry>
+        <refentrytitle>dlopen</refentrytitle>
+        <manvolnum>3</manvolnum>
+       </citerefentry> to load libraries at runtime.
+      </para>
+      <para>
+        In certain situations you may want to run the main command
+        (<command>autoPatchelf</command>) of the setup hook on a file or a set
+        of directories instead of unconditionally patching all outputs. This
+        can be done by setting the <envar>dontAutoPatchelf</envar> environment
+        variable to a non-empty value.
+      </para>
+      <para>
+        The <command>autoPatchelf</command> command also recognizes a
+        <parameter class="command">--no-recurse</parameter> command line flag,
+        which prevents it from recursing into subdirectories.
       </para>
      </listitem>
     </varlistentry>
@@ -2455,7 +2474,17 @@ addEnvHooks "$hostOffset" myBashFunction
        use the cntr exec subcommand. Note that <command>cntr</command> also
        needs to be executed on the machine that is doing the build, which might
        be not the case when remote builders are enabled.
-       <command>cntr</command> is only supported on linux based platforms.
+       <command>cntr</command> is only supported on Linux-based platforms. To
+       use it first add <literal>cntr</literal> to your
+       <literal>environment.systemPackages</literal> on NixOS or alternatively to
+       the root user on non-NixOS systems. Then in the package that is supposed
+       to be inspected, add <literal>breakpointHook</literal> to
+       <literal>nativeBuildInputs</literal>.
+<programlisting>
+         nativeBuildInputs = [ breakpointHook ];
+       </programlisting>
+       When a build failure happens there will be an instruction printed that
+       shows how to attach with <literal>cntr</literal> to the build sandbox.
       </para>
      </listitem>
     </varlistentry>
diff --git a/nixos/doc/manual/configuration/modularity.xml b/nixos/doc/manual/configuration/modularity.xml
index 298ffd661f67..cda36eba25c1 100644
--- a/nixos/doc/manual/configuration/modularity.xml
+++ b/nixos/doc/manual/configuration/modularity.xml
@@ -127,4 +127,23 @@ nix-repl> map (x: x.hostName) config.<xref linkend="opt-services.httpd.virtualHo
 [ "example.org" "example.gov" ]
 </screen>
  </para>
+
+ <para>
+   While abstracting your configuration, you may find it useful to generate
+   modules using code, instead of writing files. The example
+   below would have the same effect as importing a file which sets those
+   options.
+   <screen>
+     { config, pkgs, ... }:
+
+     let netConfig = { hostName }: {
+       networking.hostName = hostName;
+       networking.useDHCP = false;
+    };
+
+    in
+
+    { imports = [ (netConfig "nixos.localdomain") ]; }
+  </screen>
+</para>
 </section>
diff --git a/nixos/doc/manual/development/running-nixos-tests-interactively.xml b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
index b25d3dcb9116..c15ad448317f 100644
--- a/nixos/doc/manual/development/running-nixos-tests-interactively.xml
+++ b/nixos/doc/manual/development/running-nixos-tests-interactively.xml
@@ -19,7 +19,7 @@ starting VDE switch for network 1
 &gt; startAll
 &gt; testScript
 &gt; $machine->succeed("touch /tmp/foo")
-&gt; print($machine->succeed("pwd"), "\n") # Show stdout of command
+&gt; print($machine->succeed("pwd")) # Show stdout of command
 </screen>
   The function <command>testScript</command> executes the entire test script
   and drops you back into the test driver command line upon its completion.
diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml
index 983f8f9cbe3e..4a2615c9407b 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -108,7 +108,7 @@ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualis
 <programlisting>
 $machine->start;
 $machine->waitForUnit("default.target");
-die unless $machine->succeed("uname") =~ /Linux/;
+$machine->succeed("uname") =~ /Linux/ or die;
 </programlisting>
   The first line is actually unnecessary; machines are implicitly started when
   you first execute an action on them (such as <literal>waitForUnit</literal>
diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml
index 49f475913d8a..cedd5fc21c6d 100644
--- a/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixos/doc/manual/release-notes/rl-1903.xml
@@ -113,6 +113,16 @@
    </listitem>
    <listitem>
     <para>
+      The <literal>ntp</literal> module now has sane default restrictions.
+      If you're relying on the previous defaults, which permitted all queries
+      and commands from all firewall-permitted sources, you can set
+      <varname>services.ntp.restrictDefault</varname> and
+      <varname>services.ntp.restrictSource</varname> to
+      <literal>[]</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Package <varname>rabbitmq_server</varname> is renamed to
      <varname>rabbitmq-server</varname>.
     </para>
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 690f7dfd5fac..0bb3fd53e853 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -1,5 +1,5 @@
 { system
-, pkgs
+, pkgs ? import ../.. { inherit system config; }
   # Use a minimal kernel?
 , minimal ? false
   # Ignored
diff --git a/nixos/maintainers/scripts/gce/create-gce.sh b/nixos/maintainers/scripts/gce/create-gce.sh
index 0fd26d34d07f..48748a59d298 100755
--- a/nixos/maintainers/scripts/gce/create-gce.sh
+++ b/nixos/maintainers/scripts/gce/create-gce.sh
@@ -7,9 +7,9 @@ BUCKET_NAME="${BUCKET_NAME:-nixos-cloud-images}"
 TIMESTAMP="$(date +%Y%m%d%H%M)"
 export TIMESTAMP
 
-nix-build '<nixpkgs/nixos>' \
+nix-build '<nixpkgs/nixos/lib/eval-config.nix>' \
    -A config.system.build.googleComputeImage \
-   --arg configuration "{ imports = [ <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix> ]; }" \
+   --arg modules "[ <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix> ]" \
    --argstr system x86_64-linux \
    -o gce \
    -j 10
diff --git a/nixos/modules/installer/cd-dvd/sd-image.nix b/nixos/modules/installer/cd-dvd/sd-image.nix
index b6e1d11c2b54..69746a8e9799 100644
--- a/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -134,7 +134,9 @@ in
         ${config.sdImage.populateBootCommands}
 
         # Copy the populated /boot into the SD image
-        (cd boot; mcopy -bpsvm -i ../bootpart.img ./* ::)
+        (cd boot; mcopy -psvm -i ../bootpart.img ./* ::)
+        # Verify the FAT partition before copying it.
+        fsck.vfat -vn bootpart.img
         dd conv=notrunc if=bootpart.img of=$img seek=$START count=$SECTORS
       '';
     }) {};
diff --git a/nixos/modules/programs/sway-beta.nix b/nixos/modules/programs/sway-beta.nix
index e651ea4cca33..8447f94ca254 100644
--- a/nixos/modules/programs/sway-beta.nix
+++ b/nixos/modules/programs/sway-beta.nix
@@ -8,7 +8,7 @@ let
 
   swayWrapped = pkgs.writeShellScriptBin "sway" ''
     ${cfg.extraSessionCommands}
-    exec ${pkgs.dbus.dbus-launch} --exit-with-session ${swayPackage}/bin/sway
+    exec ${pkgs.dbus.dbus-launch} --exit-with-session ${swayPackage}/bin/sway "$@"
   '';
   swayJoined = pkgs.symlinkJoin {
     name = "sway-joined";
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index e63d91eb9aca..6f3c45b29bf2 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -784,7 +784,7 @@ in {
     clusterCidr = mkOption {
       description = "Kubernetes controller manager and proxy CIDR Range for Pods in cluster.";
       default = "10.1.0.0/16";
-      type = types.str;
+      type = types.nullOr types.str;
     };
 
     flannel.enable = mkOption {
@@ -1018,9 +1018,9 @@ in {
             ${if (cfg.controllerManager.rootCaFile!=null)
               then "--root-ca-file=${cfg.controllerManager.rootCaFile}"
               else "--root-ca-file=/var/run/kubernetes/apiserver.crt"} \
-            ${optionalString (cfg.clusterCidr!=null)
-              "--cluster-cidr=${cfg.clusterCidr}"} \
-            --allocate-node-cidrs=true \
+            ${if (cfg.clusterCidr!=null)
+              then "--cluster-cidr=${cfg.clusterCidr} --allocate-node-cidrs=true"
+              else "--allocate-node-cidrs=false"} \
             ${optionalString (cfg.controllerManager.featureGates != [])
               "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.controllerManager.featureGates}"} \
             ${optionalString cfg.verbose "--v=6"} \
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index f592be0e768b..aeab445a9983 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -238,6 +238,9 @@ in
             User = "postgres";
             Group = "postgres";
             PermissionsStartOnly = true;
+            Type = if lib.versionAtLeast cfg.package.version "9.6"
+                   then "notify"
+                   else "simple";
 
             # Shut down Postgres using SIGINT ("Fast Shutdown mode").  See
             # http://www.postgresql.org/docs/current/static/server-shutdown.html
diff --git a/nixos/modules/services/networking/ntpd.nix b/nixos/modules/services/networking/ntpd.nix
index 32174100b0f7..588d1c6edb07 100644
--- a/nixos/modules/services/networking/ntpd.nix
+++ b/nixos/modules/services/networking/ntpd.nix
@@ -15,6 +15,10 @@ let
   configFile = pkgs.writeText "ntp.conf" ''
     driftfile ${stateDir}/ntp.drift
 
+    restrict default ${toString cfg.restrictDefault}
+    restrict -6 default ${toString cfg.restrictDefault}
+    restrict source ${toString cfg.restrictSource}
+
     restrict 127.0.0.1
     restrict -6 ::1
 
@@ -36,9 +40,38 @@ in
       enable = mkOption {
         default = false;
         description = ''
-          Whether to synchronise your machine's time using the NTP
-          protocol.
+          Whether to synchronise your machine's time using ntpd, as a peer in
+          the NTP network.
+          </para>
+          <para>
+          Disables <literal>systemd.timesyncd</literal> if enabled.
+        '';
+      };
+
+      restrictDefault = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          The restriction flags to be set by default.
+          </para>
+          <para>
+          The default flags prevent external hosts from using ntpd as a DDoS
+          reflector, setting system time, and querying OS/ntpd version. As
+          recommended in section 6.5.1.1.3, answer "No" of
+          http://support.ntp.org/bin/view/Support/AccessRestrictions
+        '';
+        default = [ "limited" "kod" "nomodify" "notrap" "noquery" "nopeer" ];
+      };
+
+      restrictSource = mkOption {
+        type = types.listOf types.str;
+        description = ''
+          The restriction flags to be set on source.
+          </para>
+          <para>
+          The default flags allow peers to be added by ntpd from configured
+          pool(s), but not by other means.
         '';
+        default = [ "limited" "kod" "nomodify" "notrap" "noquery" ];
       };
 
       servers = mkOption {
@@ -51,6 +84,7 @@ in
       extraFlags = mkOption {
         type = types.listOf types.str;
         description = "Extra flags passed to the ntpd command.";
+        example = literalExample ''[ "--interface=eth0" ]'';
         default = [];
       };
 
diff --git a/nixos/modules/services/x11/urxvtd.nix b/nixos/modules/services/x11/urxvtd.nix
index f2ce089ce19a..5531d7f153c2 100644
--- a/nixos/modules/services/x11/urxvtd.nix
+++ b/nixos/modules/services/x11/urxvtd.nix
@@ -18,27 +18,17 @@ in {
   };
 
   config = mkIf cfg.enable {
-    systemd.user = {
-      sockets.urxvtd = {
-        description = "socket for urxvtd, the urxvt terminal daemon";
-        wantedBy = [ "graphical-session.target" ];
-        partOf = [ "graphical-session.target" ];
-        socketConfig = {
-          ListenStream = "%t/urxvtd-socket";
-        };
+    systemd.user.services.urxvtd = {
+      description = "urxvt terminal daemon";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      path = [ pkgs.xsel ];
+      serviceConfig = {
+        ExecStart = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtd -o";
+        Environment = "RXVT_SOCKET=%t/urxvtd-socket";
+        Restart = "on-failure";
+        RestartSec = "5s";
       };
-
-      services.urxvtd = {
-        description = "urxvt terminal daemon";
-        path = [ pkgs.xsel ];
-        serviceConfig = {
-          ExecStart = "${pkgs.rxvt_unicode-with-plugins}/bin/urxvtd -o";
-          Environment = "RXVT_SOCKET=%t/urxvtd-socket";
-          Restart = "on-failure";
-          RestartSec = "5s";
-        };
-      };
-
     };
 
     environment.systemPackages = [ pkgs.rxvt_unicode-with-plugins ];
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index 4f538ccdbbe1..649453418b53 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -112,7 +112,7 @@ in {
 
       environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
 
-      systemd.targets."multi-user".wants = [ "machines.target "];
+      systemd.targets."multi-user".wants = [ "machines.target" ];
   };
 
 }
diff --git a/nixos/modules/virtualisation/container-config.nix b/nixos/modules/virtualisation/container-config.nix
index 561db7cabcfb..78c59d98a5eb 100644
--- a/nixos/modules/virtualisation/container-config.nix
+++ b/nixos/modules/virtualisation/container-config.nix
@@ -22,12 +22,8 @@ with lib;
     # Not supported in systemd-nspawn containers.
     security.audit.enable = false;
 
-    # Make sure that root user in container will talk to host nix-daemon
-    environment.etc."profile".text = ''
-    export NIX_REMOTE=daemon
-    '';
-
-
+    # Use the host's nix-daemon.
+    environment.variables.NIX_REMOTE = "daemon";
 
   };
 
diff --git a/nixos/modules/virtualisation/google-compute-config.nix b/nixos/modules/virtualisation/google-compute-config.nix
index 8f20100bc1b1..1f8485b274fc 100644
--- a/nixos/modules/virtualisation/google-compute-config.nix
+++ b/nixos/modules/virtualisation/google-compute-config.nix
@@ -1,5 +1,261 @@
-{ ... }:
-
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  gce = pkgs.google-compute-engine;
+  cfg = config.virtualisation.googleComputeImage;
+in
 {
-  imports = [ <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix> ];
+  imports = [
+    ../profiles/headless.nix
+    ../profiles/qemu-guest.nix
+  ];
+
+
+  fileSystems."/" = {
+    device = "/dev/disk/by-label/nixos";
+    autoResize = true;
+  };
+
+  boot.growPartition = true;
+  boot.kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
+  boot.initrd.kernelModules = [ "virtio_scsi" ];
+  boot.kernelModules = [ "virtio_pci" "virtio_net" ];
+
+  # Generate a GRUB menu.  Amazon's pv-grub uses this to boot our kernel/initrd.
+  boot.loader.grub.device = "/dev/sda";
+  boot.loader.timeout = 0;
+
+  # Don't put old configurations in the GRUB menu.  The user has no
+  # way to select them anyway.
+  boot.loader.grub.configurationLimit = 0;
+
+  # Allow root logins only using the SSH key that the user specified
+  # at instance creation time.
+  services.openssh.enable = true;
+  services.openssh.permitRootLogin = "prohibit-password";
+  services.openssh.passwordAuthentication = mkDefault false;
+
+  # Use GCE udev rules for dynamic disk volumes
+  services.udev.packages = [ gce ];
+
+  # Force getting the hostname from Google Compute.
+  networking.hostName = mkDefault "";
+
+  # Always include cryptsetup so that NixOps can use it.
+  environment.systemPackages = [ pkgs.cryptsetup ];
+
+  # Make sure GCE image does not replace host key that NixOps sets
+  environment.etc."default/instance_configs.cfg".text = lib.mkDefault ''
+    [InstanceSetup]
+    set_host_keys = false
+  '';
+
+  # Rely on GCP's firewall instead
+  networking.firewall.enable = mkDefault false;
+
+  # Configure default metadata hostnames
+  networking.extraHosts = ''
+    169.254.169.254 metadata.google.internal metadata
+  '';
+
+  networking.timeServers = [ "metadata.google.internal" ];
+
+  networking.usePredictableInterfaceNames = false;
+
+  # GC has 1460 MTU
+  networking.interfaces.eth0.mtu = 1460;
+
+  # allow the google-accounts-daemon to manage users
+  users.mutableUsers = true;
+  # and allow users to sudo without password
+  security.sudo.enable = true;
+  security.sudo.extraConfig = ''
+  %google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
+  '';
+
+  # NOTE: google-accounts tries to write to /etc/sudoers.d but the folder doesn't exist
+  # FIXME: not such file or directory on dynamic SSH provisioning
+  systemd.services.google-accounts-daemon = {
+    description = "Google Compute Engine Accounts Daemon";
+    # This daemon creates dynamic users
+    enable = config.users.mutableUsers;
+    after = [
+      "network.target"
+      "google-instance-setup.service"
+      "google-network-setup.service"
+    ];
+    requires = ["network.target"];
+    wantedBy = ["multi-user.target"];
+    path = with pkgs; [ shadow ];
+    serviceConfig = {
+      Type = "simple";
+      ExecStart = "${gce}/bin/google_accounts_daemon --debug";
+    };
+  };
+
+  systemd.services.google-clock-skew-daemon = {
+    description = "Google Compute Engine Clock Skew Daemon";
+    after = [
+      "network.target"
+      "google-instance-setup.service"
+      "google-network-setup.service"
+    ];
+    requires = ["network.target"];
+    wantedBy = ["multi-user.target"];
+    serviceConfig = {
+      Type = "simple";
+      ExecStart = "${gce}/bin/google_clock_skew_daemon --debug";
+    };
+  };
+
+  systemd.services.google-instance-setup = {
+    description = "Google Compute Engine Instance Setup";
+    after = ["local-fs.target" "network-online.target" "network.target" "rsyslog.service"];
+    before = ["sshd.service"];
+    wants = ["local-fs.target" "network-online.target" "network.target"];
+    wantedBy = [ "sshd.service" "multi-user.target" ];
+    path = with pkgs; [ ethtool openssh ];
+    serviceConfig = {
+      ExecStart = "${gce}/bin/google_instance_setup --debug";
+      Type = "oneshot";
+    };
+  };
+
+  systemd.services.google-network-daemon = {
+    description = "Google Compute Engine Network Daemon";
+    after = ["local-fs.target" "network-online.target" "network.target" "rsyslog.service" "google-instance-setup.service"];
+    wants = ["local-fs.target" "network-online.target" "network.target"];
+    requires = ["network.target"];
+    partOf = ["network.target"];
+    wantedBy = [ "multi-user.target" ];
+    path = with pkgs; [ iproute ];
+    serviceConfig = {
+      ExecStart = "${gce}/bin/google_network_daemon --debug";
+    };
+  };
+
+  systemd.services.google-shutdown-scripts = {
+    description = "Google Compute Engine Shutdown Scripts";
+    after = [
+      "local-fs.target"
+      "network-online.target"
+      "network.target"
+      "rsyslog.service"
+      "systemd-resolved.service"
+      "google-instance-setup.service"
+      "google-network-daemon.service"
+    ];
+    wants = [ "local-fs.target" "network-online.target" "network.target"];
+    wantedBy = [ "multi-user.target" ];
+    serviceConfig = {
+      ExecStart = "${pkgs.coreutils}/bin/true";
+      ExecStop = "${gce}/bin/google_metadata_script_runner --debug --script-type shutdown";
+      Type = "oneshot";
+      RemainAfterExit = true;
+      TimeoutStopSec = "infinity";
+    };
+  };
+
+  systemd.services.google-startup-scripts = {
+    description = "Google Compute Engine Startup Scripts";
+    after = [
+      "local-fs.target"
+      "network-online.target"
+      "network.target"
+      "rsyslog.service"
+      "google-instance-setup.service"
+      "google-network-daemon.service"
+    ];
+    wants = ["local-fs.target" "network-online.target" "network.target"];
+    wantedBy = [ "multi-user.target" ];
+    serviceConfig = {
+      ExecStart = "${gce}/bin/google_metadata_script_runner --debug --script-type startup";
+      KillMode = "process";
+      Type = "oneshot";
+    };
+  };
+
+
+  # Settings taken from https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google_config/sysctl/11-gce-network-security.conf
+  boot.kernel.sysctl = {
+    # Turn on SYN-flood protections.  Starting with 2.6.26, there is no loss
+    # of TCP functionality/features under normal conditions.  When flood
+    # protections kick in under high unanswered-SYN load, the system
+    # should remain more stable, with a trade off of some loss of TCP
+    # functionality/features (e.g. TCP Window scaling).
+    "net.ipv4.tcp_syncookies" = mkDefault "1";
+
+    # ignores source-routed packets
+    "net.ipv4.conf.all.accept_source_route" = mkDefault "0";
+
+    # ignores source-routed packets
+    "net.ipv4.conf.default.accept_source_route" = mkDefault "0";
+
+    # ignores ICMP redirects
+    "net.ipv4.conf.all.accept_redirects" = mkDefault "0";
+
+    # ignores ICMP redirects
+    "net.ipv4.conf.default.accept_redirects" = mkDefault "0";
+
+    # ignores ICMP redirects from non-GW hosts
+    "net.ipv4.conf.all.secure_redirects" = mkDefault "1";
+
+    # ignores ICMP redirects from non-GW hosts
+    "net.ipv4.conf.default.secure_redirects" = mkDefault "1";
+
+    # don't allow traffic between networks or act as a router
+    "net.ipv4.ip_forward" = mkDefault "0";
+
+    # don't allow traffic between networks or act as a router
+    "net.ipv4.conf.all.send_redirects" = mkDefault "0";
+
+    # don't allow traffic between networks or act as a router
+    "net.ipv4.conf.default.send_redirects" = mkDefault "0";
+
+    # reverse path filtering - IP spoofing protection
+    "net.ipv4.conf.all.rp_filter" = mkDefault "1";
+
+    # reverse path filtering - IP spoofing protection
+    "net.ipv4.conf.default.rp_filter" = mkDefault "1";
+
+    # ignores ICMP broadcasts to avoid participating in Smurf attacks
+    "net.ipv4.icmp_echo_ignore_broadcasts" = mkDefault "1";
+
+    # ignores bad ICMP errors
+    "net.ipv4.icmp_ignore_bogus_error_responses" = mkDefault "1";
+
+    # logs spoofed, source-routed, and redirect packets
+    "net.ipv4.conf.all.log_martians" = mkDefault "1";
+
+    # log spoofed, source-routed, and redirect packets
+    "net.ipv4.conf.default.log_martians" = mkDefault "1";
+
+    # implements RFC 1337 fix
+    "net.ipv4.tcp_rfc1337" = mkDefault "1";
+
+    # randomizes addresses of mmap base, heap, stack and VDSO page
+    "kernel.randomize_va_space" = mkDefault "2";
+
+    # Reboot the machine soon after a kernel panic.
+    "kernel.panic" = mkDefault "10";
+
+    ## Not part of the original config
+
+    # provides protection from ToCToU races
+    "fs.protected_hardlinks" = mkDefault "1";
+
+    # provides protection from ToCToU races
+    "fs.protected_symlinks" = mkDefault "1";
+
+    # makes locating kernel addresses more difficult
+    "kernel.kptr_restrict" = mkDefault "1";
+
+    # set ptrace protections
+    "kernel.yama.ptrace_scope" = mkOverride 500 "1";
+
+    # set perf only available to root
+    "kernel.perf_event_paranoid" = mkDefault "2";
+
+  };
+
 }
diff --git a/nixos/modules/virtualisation/google-compute-image.nix b/nixos/modules/virtualisation/google-compute-image.nix
index f9ebe7696523..0d2d25d30752 100644
--- a/nixos/modules/virtualisation/google-compute-image.nix
+++ b/nixos/modules/virtualisation/google-compute-image.nix
@@ -2,334 +2,60 @@
 
 with lib;
 let
-  diskSize = 1536; # MB
-  gce = pkgs.google-compute-engine;
+  cfg = config.virtualisation.googleComputeImage;
+  defaultConfigFile = pkgs.writeText "configuration.nix" ''
+    { ... }:
+    {
+      imports = [
+        <nixpkgs/nixos/modules/virtualisation/google-compute-image.nix>
+      ];
+    }
+  '';
 in
 {
-  imports = [ ../profiles/headless.nix ../profiles/qemu-guest.nix ];
-
-  system.build.googleComputeImage = import ../../lib/make-disk-image.nix {
-    name = "google-compute-image";
-    postVM = ''
-      PATH=$PATH:${pkgs.stdenv.lib.makeBinPath [ pkgs.gnutar pkgs.gzip ]}
-      pushd $out
-      mv $diskImage disk.raw
-      tar -Szcf nixos-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.raw.tar.gz disk.raw
-      rm $out/disk.raw
-      popd
-    '';
-    configFile = <nixpkgs/nixos/modules/virtualisation/google-compute-config.nix>;
-    format = "raw";
-    inherit diskSize;
-    inherit config lib pkgs;
-  };
-
-  fileSystems."/" = {
-    device = "/dev/disk/by-label/nixos";
-    autoResize = true;
-  };
-
-  boot.growPartition = true;
-  boot.kernelParams = [ "console=ttyS0" "panic=1" "boot.panic_on_fail" ];
-  boot.initrd.kernelModules = [ "virtio_scsi" ];
-  boot.kernelModules = [ "virtio_pci" "virtio_net" ];
-
-  # Generate a GRUB menu.  Amazon's pv-grub uses this to boot our kernel/initrd.
-  boot.loader.grub.device = "/dev/sda";
-  boot.loader.timeout = 0;
-
-  # Don't put old configurations in the GRUB menu.  The user has no
-  # way to select them anyway.
-  boot.loader.grub.configurationLimit = 0;
-
-  # Allow root logins only using the SSH key that the user specified
-  # at instance creation time.
-  services.openssh.enable = true;
-  services.openssh.permitRootLogin = "prohibit-password";
-  services.openssh.passwordAuthentication = mkDefault false;
-
-  # Use GCE udev rules for dynamic disk volumes
-  services.udev.packages = [ gce ];
-
-  # Force getting the hostname from Google Compute.
-  networking.hostName = mkDefault "";
-
-  # Always include cryptsetup so that NixOps can use it.
-  environment.systemPackages = [ pkgs.cryptsetup ];
-
-  # Make sure GCE image does not replace host key that NixOps sets
-  environment.etc."default/instance_configs.cfg".text = lib.mkDefault ''
-    [InstanceSetup]
-    set_host_keys = false
-  '';
-
-  # Rely on GCP's firewall instead
-  networking.firewall.enable = mkDefault false;
-
-  # Configure default metadata hostnames
-  networking.extraHosts = ''
-    169.254.169.254 metadata.google.internal metadata
-  '';
-
-  networking.timeServers = [ "metadata.google.internal" ];
-
-  networking.usePredictableInterfaceNames = false;
-
-  # GC has 1460 MTU
-  networking.interfaces.eth0.mtu = 1460;
-
-  # allow the google-accounts-daemon to manage users
-  users.mutableUsers = true;
-  # and allow users to sudo without password
-  security.sudo.enable = true;
-  security.sudo.extraConfig = ''
-  %google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
-  '';
-
-  # NOTE: google-accounts tries to write to /etc/sudoers.d but the folder doesn't exist
-  # FIXME: not such file or directory on dynamic SSH provisioning
-  systemd.services.google-accounts-daemon = {
-    description = "Google Compute Engine Accounts Daemon";
-    # This daemon creates dynamic users
-    enable = config.users.mutableUsers;
-    after = [
-      "network.target"
-      "google-instance-setup.service"
-      "google-network-setup.service"
-    ];
-    requires = ["network.target"];
-    wantedBy = ["multi-user.target"];
-    path = with pkgs; [ shadow ];
-    serviceConfig = {
-      Type = "simple";
-      ExecStart = "${gce}/bin/google_accounts_daemon --debug";
-    };
-  };
-
-  systemd.services.google-clock-skew-daemon = {
-    description = "Google Compute Engine Clock Skew Daemon";
-    after = [
-      "network.target"
-      "google-instance-setup.service"
-      "google-network-setup.service"
-    ];
-    requires = ["network.target"];
-    wantedBy = ["multi-user.target"];
-    serviceConfig = {
-      Type = "simple";
-      ExecStart = "${gce}/bin/google_clock_skew_daemon --debug";
-    };
-  };
-
-  systemd.services.google-instance-setup = {
-    description = "Google Compute Engine Instance Setup";
-    after = ["local-fs.target" "network-online.target" "network.target" "rsyslog.service"];
-    before = ["sshd.service"];
-    wants = ["local-fs.target" "network-online.target" "network.target"];
-    wantedBy = [ "sshd.service" "multi-user.target" ];
-    path = with pkgs; [ ethtool openssh ];
-    serviceConfig = {
-      ExecStart = "${gce}/bin/google_instance_setup --debug";
-      Type = "oneshot";
-    };
-  };
 
-  systemd.services.google-network-daemon = {
-    description = "Google Compute Engine Network Daemon";
-    after = ["local-fs.target" "network-online.target" "network.target" "rsyslog.service" "google-instance-setup.service"];
-    wants = ["local-fs.target" "network-online.target" "network.target"];
-    requires = ["network.target"];
-    partOf = ["network.target"];
-    wantedBy = [ "multi-user.target" ];
-    path = with pkgs; [ iproute ];
-    serviceConfig = {
-      ExecStart = "${gce}/bin/google_network_daemon --debug";
-    };
-  };
+  imports = [ ./google-compute-config.nix ];
 
-  systemd.services.google-shutdown-scripts = {
-    description = "Google Compute Engine Shutdown Scripts";
-    after = [
-      "local-fs.target"
-      "network-online.target"
-      "network.target"
-      "rsyslog.service"
-      "systemd-resolved.service"
-      "google-instance-setup.service"
-      "google-network-daemon.service"
-    ];
-    wants = [ "local-fs.target" "network-online.target" "network.target"];
-    wantedBy = [ "multi-user.target" ];
-    serviceConfig = {
-      ExecStart = "${pkgs.coreutils}/bin/true";
-      ExecStop = "${gce}/bin/google_metadata_script_runner --debug --script-type shutdown";
-      Type = "oneshot";
-      RemainAfterExit = true;
-      TimeoutStopSec = "infinity";
+  options = {
+    virtualisation.googleComputeImage.diskSize = mkOption {
+      type = with types; int;
+      default = 1536;
+      description = ''
+        Size of disk image. Unit is MB.
+      '';
     };
-  };
 
-  systemd.services.google-startup-scripts = {
-    description = "Google Compute Engine Startup Scripts";
-    after = [
-      "local-fs.target"
-      "network-online.target"
-      "network.target"
-      "rsyslog.service"
-      "google-instance-setup.service"
-      "google-network-daemon.service"
-    ];
-    wants = ["local-fs.target" "network-online.target" "network.target"];
-    wantedBy = [ "multi-user.target" ];
-    serviceConfig = {
-      ExecStart = "${gce}/bin/google_metadata_script_runner --debug --script-type startup";
-      KillMode = "process";
-      Type = "oneshot";
+    virtualisation.googleComputeImage.configFile = mkOption {
+      type = with types; nullOr str;
+      default = null;
+      description = ''
+        A path to a configuration file which will be placed at `/etc/nixos/configuration.nix`
+        and be used when switching to a new configuration.
+        If set to `null`, a default configuration is used, where the only import is
+        `<nixpkgs/nixos/modules/virtualisation/google-compute-image.nix>`.
+      '';
     };
   };
 
-  # TODO: remove this
-  systemd.services.fetch-ssh-keys =
-    { description = "Fetch host keys and authorized_keys for root user";
-
-      wantedBy = [ "sshd.service" ];
-      before = [ "sshd.service" ];
-      after = [ "network-online.target" ];
-      wants = [ "network-online.target" ];
-
-      script = let wget = "${pkgs.wget}/bin/wget --retry-connrefused -t 15 --waitretry=10 --header='Metadata-Flavor: Google'";
-                   mktemp = "mktemp --tmpdir=/run"; in
-        ''
-          # When dealing with cryptographic keys, we want to keep things private.
-          umask 077
-          # Don't download the SSH key if it has already been downloaded
-          echo "Obtaining SSH keys..."
-          mkdir -m 0700 -p /root/.ssh
-          AUTH_KEYS=$(${mktemp})
-          ${wget} -O $AUTH_KEYS http://metadata.google.internal/computeMetadata/v1/instance/attributes/sshKeys
-          if [ -s $AUTH_KEYS ]; then
-
-            # Read in key one by one, split in case Google decided
-            # to append metadata (it does sometimes) and add to
-            # authorized_keys if not already present.
-            touch /root/.ssh/authorized_keys
-            NEW_KEYS=$(${mktemp})
-            # Yes this is a nix escape of two single quotes.
-            while IFS=''' read -r line || [[ -n "$line" ]]; do
-              keyLine=$(echo -n "$line" | cut -d ':' -f2)
-              IFS=' ' read -r -a array <<< "$keyLine"
-              if [ ''${#array[@]} -ge 3 ]; then
-                echo ''${array[@]:0:3} >> $NEW_KEYS
-                echo "Added ''${array[@]:2} to authorized_keys"
-              fi
-            done < $AUTH_KEYS
-            mv $NEW_KEYS /root/.ssh/authorized_keys
-            chmod 600 /root/.ssh/authorized_keys
-            rm -f $KEY_PUB
-          else
-            echo "Downloading http://metadata.google.internal/computeMetadata/v1/project/attributes/sshKeys failed."
-            false
-          fi
-          rm -f $AUTH_KEYS
-          SSH_HOST_KEYS_DIR=$(${mktemp} -d)
-          ${wget} -O $SSH_HOST_KEYS_DIR/ssh_host_ed25519_key http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh_host_ed25519_key
-          ${wget} -O $SSH_HOST_KEYS_DIR/ssh_host_ed25519_key.pub http://metadata.google.internal/computeMetadata/v1/instance/attributes/ssh_host_ed25519_key_pub
-          if [ -s $SSH_HOST_KEYS_DIR/ssh_host_ed25519_key -a -s $SSH_HOST_KEYS_DIR/ssh_host_ed25519_key.pub ]; then
-              mv -f $SSH_HOST_KEYS_DIR/ssh_host_ed25519_key* /etc/ssh/
-              chmod 600 /etc/ssh/ssh_host_ed25519_key
-              chmod 644 /etc/ssh/ssh_host_ed25519_key.pub
-          else
-              echo "Setup of ssh host keys from http://metadata.google.internal/computeMetadata/v1/instance/attributes/ failed."
-              false
-          fi
-          rm -rf $SSH_HOST_KEYS_DIR
-        '';
-      serviceConfig.Type = "oneshot";
-      serviceConfig.RemainAfterExit = true;
-      serviceConfig.StandardError = "journal+console";
-      serviceConfig.StandardOutput = "journal+console";
+  #### implementation
+  config = {
+
+    system.build.googleComputeImage = import ../../lib/make-disk-image.nix {
+      name = "google-compute-image";
+      postVM = ''
+        PATH=$PATH:${with pkgs; stdenv.lib.makeBinPath [ gnutar gzip ]}
+        pushd $out
+        mv $diskImage disk.raw
+        tar -Szcf nixos-image-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.raw.tar.gz disk.raw
+        rm $out/disk.raw
+        popd
+      '';
+      format = "raw";
+      configFile = if isNull cfg.configFile then defaultConfigFile else cfg.configFile;
+      inherit (cfg) diskSize;
+      inherit config lib pkgs;
     };
 
-  # Settings taken from https://github.com/GoogleCloudPlatform/compute-image-packages/blob/master/google_config/sysctl/11-gce-network-security.conf
-  boot.kernel.sysctl = {
-    # Turn on SYN-flood protections.  Starting with 2.6.26, there is no loss
-    # of TCP functionality/features under normal conditions.  When flood
-    # protections kick in under high unanswered-SYN load, the system
-    # should remain more stable, with a trade off of some loss of TCP
-    # functionality/features (e.g. TCP Window scaling).
-    "net.ipv4.tcp_syncookies" = mkDefault "1";
-
-    # ignores source-routed packets
-    "net.ipv4.conf.all.accept_source_route" = mkDefault "0";
-
-    # ignores source-routed packets
-    "net.ipv4.conf.default.accept_source_route" = mkDefault "0";
-
-    # ignores ICMP redirects
-    "net.ipv4.conf.all.accept_redirects" = mkDefault "0";
-
-    # ignores ICMP redirects
-    "net.ipv4.conf.default.accept_redirects" = mkDefault "0";
-
-    # ignores ICMP redirects from non-GW hosts
-    "net.ipv4.conf.all.secure_redirects" = mkDefault "1";
-
-    # ignores ICMP redirects from non-GW hosts
-    "net.ipv4.conf.default.secure_redirects" = mkDefault "1";
-
-    # don't allow traffic between networks or act as a router
-    "net.ipv4.ip_forward" = mkDefault "0";
-
-    # don't allow traffic between networks or act as a router
-    "net.ipv4.conf.all.send_redirects" = mkDefault "0";
-
-    # don't allow traffic between networks or act as a router
-    "net.ipv4.conf.default.send_redirects" = mkDefault "0";
-
-    # reverse path filtering - IP spoofing protection
-    "net.ipv4.conf.all.rp_filter" = mkDefault "1";
-
-    # reverse path filtering - IP spoofing protection
-    "net.ipv4.conf.default.rp_filter" = mkDefault "1";
-
-    # ignores ICMP broadcasts to avoid participating in Smurf attacks
-    "net.ipv4.icmp_echo_ignore_broadcasts" = mkDefault "1";
-
-    # ignores bad ICMP errors
-    "net.ipv4.icmp_ignore_bogus_error_responses" = mkDefault "1";
-
-    # logs spoofed, source-routed, and redirect packets
-    "net.ipv4.conf.all.log_martians" = mkDefault "1";
-
-    # log spoofed, source-routed, and redirect packets
-    "net.ipv4.conf.default.log_martians" = mkDefault "1";
-
-    # implements RFC 1337 fix
-    "net.ipv4.tcp_rfc1337" = mkDefault "1";
-
-    # randomizes addresses of mmap base, heap, stack and VDSO page
-    "kernel.randomize_va_space" = mkDefault "2";
-
-    # Reboot the machine soon after a kernel panic.
-    "kernel.panic" = mkDefault "10";
-
-    ## Not part of the original config
-
-    # provides protection from ToCToU races
-    "fs.protected_hardlinks" = mkDefault "1";
-
-    # provides protection from ToCToU races
-    "fs.protected_symlinks" = mkDefault "1";
-
-    # makes locating kernel addresses more difficult
-    "kernel.kptr_restrict" = mkDefault "1";
-
-    # set ptrace protections
-    "kernel.yama.ptrace_scope" = mkOverride 500 "1";
-
-    # set perf only available to root
-    "kernel.perf_event_paranoid" = mkDefault "2";
-
   };
 
 }
diff --git a/nixos/tests/gitlab.nix b/nixos/tests/gitlab.nix
index 661caa8aa832..269da8aa215f 100644
--- a/nixos/tests/gitlab.nix
+++ b/nixos/tests/gitlab.nix
@@ -16,6 +16,7 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
 
       services.nginx = {
         enable = true;
+        recommendedProxySettings = true;
         virtualHosts = {
           "localhost" = {
             locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
@@ -75,7 +76,8 @@ import ./make-test.nix ({ pkgs, lib, ...} : with lib; {
     $gitlab->waitForUnit("gitlab.service");
     $gitlab->waitForUnit("gitlab-sidekiq.service");
     $gitlab->waitForFile("/var/gitlab/state/tmp/sockets/gitlab.socket");
-    $gitlab->waitUntilSucceeds("curl -sSf http://localhost/users/sign_in");
+    $gitlab->waitUntilSucceeds("curl -sSf http://gitlab/users/sign_in");
+    $gitlab->succeed("curl -isSf http://gitlab  | grep -i location | grep -q http://gitlab/users/sign_in");
     $gitlab->succeed("${pkgs.sudo}/bin/sudo -u gitlab -H gitlab-rake gitlab:check 1>&2")
   '';
 })
diff --git a/pkgs/applications/audio/avldrums-lv2/default.nix b/pkgs/applications/audio/avldrums-lv2/default.nix
index 40fb0c6d9e15..75b6d8e27580 100644
--- a/pkgs/applications/audio/avldrums-lv2/default.nix
+++ b/pkgs/applications/audio/avldrums-lv2/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "avldrums.lv2";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "x42";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0w51gdshq2i5bix2x5l3g3gnycy84nlzf5sj0jkrw0zrnbk6ghwg";
+    sha256 = "0yhq3n5bahhqpj40mvlkxcjsdsw63jsbz20pl77bx2qj30w25i2j";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/dragonfly-reverb/default.nix b/pkgs/applications/audio/dragonfly-reverb/default.nix
index fbe987e09cbe..1710931aa229 100644
--- a/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
-    rev = "0.9.4";
-    sha256 = "0lc45jybjwg4wrcz4s9lvzpvqawgj825rkqhz2xxvalfbvjazi53";
+    rev = "1.0.0";
+    sha256 = "05m4hd8lg0a7iiia6cbiw5qmc4p8vbkxp2qh7ywaabawiwa9r24x";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index 847e67ebd8ee..c3f45caf5311 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.31.1";
+  version = "3.31.2";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "1djxkgjvfzijvlq3gill1p20l0q64dbv9wd55whbir1l7y8wdga5";
+    sha256 = "0639ib5nicrabckjd17wdmhl8n3822gc2p1bn0xv8mq70paspar6";
   };
 
   propagatedBuildInputs = [
@@ -17,7 +17,7 @@ pythonPackages.buildPythonApplication rec {
     pylast
     spotipy
     raven
-    tornado
+    tornado_4
   ]);
 
   postPatch = "sed -i /tornado/d setup.py";
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index c3474b60348e..081c4ab41acb 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib,
-  mpg123, makeWrapper, releasePath ? null }:
+{ stdenv, fetchurl, libX11, libXext, libXcursor, libXrandr, libjack2, alsaLib
+, mpg123, releasePath ? null }:
 
 with stdenv.lib;
 
@@ -36,8 +36,7 @@ stdenv.mkDerivation rec {
         releasePath
     else throw "Platform is not supported by Renoise";
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ libX11 libXext libXcursor libXrandr alsaLib libjack2 ];
+  buildInputs = [ alsaLib libjack2 libX11 libXcursor libXext libXrandr ];
 
   installPhase = ''
     cp -r Resources $out
@@ -56,9 +55,13 @@ stdenv.mkDerivation rec {
 
     mkdir $out/bin
     ln -s $out/renoise $out/bin/renoise
+  '';
 
-    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) --set-rpath $out/lib $out/renoise
-    wrapProgram "$out/renoise" --prefix LD_LIBRARY_PATH : "${mpg123}/lib"
+  postFixup = ''
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      --set-rpath ${mpg123}/lib:$out/lib \
+      $out/renoise
   '';
 
   meta = {
diff --git a/pkgs/applications/audio/x42-plugins/default.nix b/pkgs/applications/audio/x42-plugins/default.nix
index 7c57b884c8eb..e6041dc9b1c5 100644
--- a/pkgs/applications/audio/x42-plugins/default.nix
+++ b/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
 , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
 
 stdenv.mkDerivation rec {
-  version = "20180812";
+  version = "20181103";
   name = "x42-plugins-${version}";
 
   src = fetchurl {
     url = "https://gareus.org/misc/x42-plugins/${name}.tar.xz";
-    sha256 = "0gzwzxpa2k2w9c6j3pspwi9slfyd57wb192d6yqcg92pfmnxy9dz";
+    sha256 = "085d6qjj7nl22f0xamqdrnfxwi8zrfwgkwm1svm73bjkdv270438";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
       homepage = https://github.com/x42/x42-plugins;
       maintainers = with maintainers; [ magnetophon ];
       license = licenses.gpl2;
-      platforms = platforms.linux;
+      platforms = [ "i686-linux" "x86_64-linux" ];
     };
 }
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 00444e1c2c7a..b849f1fa62d5 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -13,14 +13,14 @@ let
     sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r";
   };
   betaVersion = {
-    version = "3.3.0.16"; # "Android Studio 3.3 Beta 4"
-    build = "182.5114240";
-    sha256Hash = "12gzwnlvc1w5lywpdckdgwxy2yrhf0m0fvaljdsis2arw0x9qdh2";
+    version = "3.3.0.17"; # "Android Studio 3.3 RC 1"
+    build = "182.5138683";
+    sha256Hash = "0apc566l4gwkwvfgj50d4qxm2gw26rxdlyr8kj3kfcra9a33c2b7";
   };
   latestVersion = { # canary & dev
-    version = "3.4.0.3"; # "Android Studio 3.4 Canary 4"
-    build = "183.5129585";
-    sha256Hash = "10y09sy0h4yp39dwpp8x7kjvw8r7hvk0qllbbaqj76j33xa85793";
+    version = "3.4.0.4"; # "Android Studio 3.4 Canary 5"
+    build = "183.5141831";
+    sha256Hash = "0xfk5vyjk3pdb44jp43vb5394486z2qgzrdhjzbf1ncbhvaf0aji";
   };
 in rec {
   # Old alias
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index cbc30588434a..9595bfe4d8ba 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -555,12 +555,12 @@ rec {
 
   spotbugs = buildEclipseUpdateSite rec {
     name = "spotbugs-${version}";
-    version = "3.1.8";
+    version = "3.1.9";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://github.com/spotbugs/spotbugs/releases/download/${version}/eclipsePlugin.zip";
-      sha256 = "0086shivxx745f69226f59xcv7l9xliwyr9kxm6zyn753c888js3";
+      sha256 = "0m68jbyaiz0rm4qq3nnwnvgndzv2c6ay6i29kh0p0vdbanggq3xz";
     };
 
     meta = with stdenv.lib; {
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 50922982e0cf..3d905a83c8e7 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -276,12 +276,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2018.2.4"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "0aan23ggs314bvpsldsv9m4pdmnlgdcjac9x6hv1j145a1pp439i"; /* updated by script */
+      sha256 = "0hd44flxqnnxg390mkf4ppjs2nxv0nwdc7a2i65f69bp5h61x783"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand Release";
@@ -289,12 +289,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2018.2.6"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "02hpbyivji9vnik7p04zrja1rhhl49r0365g0i6sa1rrwd1fhvwf"; /* updated by script */
+      sha256 = "01ccz5ksbv8xh8mnk3zxqpia8zgayy8bcgmbwqibrykz47y6r7yy"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA Release";
@@ -302,12 +302,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2018.2.6"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
-      sha256 = "0x0ylcbj8spvzmwxrw3p4c64ad27iz58lwj4yb8a6vwh6p22gflk"; /* updated by script */
+      sha256 = "16z0pqmxjn5dl42rbz7mx8gi13xs3220pzkdsdkh1k1ny9caqzvj"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA Release";
@@ -328,12 +328,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2018.2.5"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0zfnhrkv4y90a3myq13406vzivg234l69x0c5d7vyv6ys7dmq5fm"; /* updated by script */
+      sha256 = "0kgrh3w4lpk7qkp5gss24in1nqahdfllvf97qz6r77zn9n5k1wq7"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm Release";
@@ -341,12 +341,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2018.2.5"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0yfq25kmzzd15x83zdbrq9j62c32maklzhsk1rzymabyb56blh5c"; /* updated by script */
+      sha256 = "0q4scwnqy0h725g9z5hd145c3n10iaj04z790s4lixg1c63h3y8q"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm Release";
@@ -367,12 +367,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2018.2.4"; /* updated by script */
+    version = "2018.2.5"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0dk3ch749ai5kyg9q8819ckrqw2jk4f656iqrkkpab9fjqfjylka"; /* updated by script */
+      sha256 = "0b01fnifk5iawyf2zi7r5ffz8dxlh18g2ilrkc5746vmnsp0jxq4"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine 2018.2";
@@ -380,12 +380,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2018.2.6"; /* updated by script */
+    version = "2018.3"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "1snx59b6d0szd1a07agpqxlprhy2mc9jvbnxcck5hfwxl3ic7x5g"; /* updated by script */
+      sha256 = "0msvgdjbdipc4g8j705d1jya2mjmx4wwhb23nch3znh7grryr75s"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm Release";
diff --git a/pkgs/applications/graphics/tesseract/4.x.nix b/pkgs/applications/graphics/tesseract/4.x.nix
index 156c911b9b86..2ebca09b831f 100644
--- a/pkgs/applications/graphics/tesseract/4.x.nix
+++ b/pkgs/applications/graphics/tesseract/4.x.nix
@@ -7,20 +7,20 @@
 
 stdenv.mkDerivation rec {
   name = "tesseract-${version}";
-  version = "4.00.00alpha-git-20170410";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "tesseract-ocr";
     repo = "tesseract";
-    rev = "36a995bdc92eb2dd8bc5a63205708944a3f990a1";
-    sha256 = "0xz3krvap8sdm27v1dyb34lcdmx11wzvxyszpppfsfmjgkvg19bq";
+    rev = version;
+    sha256 = "1b5fi2vibc4kk9b30kkk4ais4bw8fbbv24bzr5709194hb81cav8";
   };
 
   tessdata = fetchFromGitHub {
     owner = "tesseract-ocr";
     repo = "tessdata";
-    rev = "8bf2e7ad08db9ca174ae2b0b3a7498c9f1f71d40";
-    sha256 = "0idwkv4qsmmqhrxcgyhy32yldl3vk054m7dkv4fjswfnalgsx794";
+    rev = version;
+    sha256 = "1chw1ya5zf8aaj2ixr9x013x7vwwwjjmx6f2ag0d6i14lypygy28";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook autoconf-archive ];
diff --git a/pkgs/applications/kde/dolphin.nix b/pkgs/applications/kde/dolphin.nix
index dcc797743035..241bb71983a0 100644
--- a/pkgs/applications/kde/dolphin.nix
+++ b/pkgs/applications/kde/dolphin.nix
@@ -4,7 +4,8 @@
   baloo, baloo-widgets, kactivities, kbookmarks, kcmutils,
   kcompletion, kconfig, kcoreaddons, kdelibs4support, kdbusaddons,
   kfilemetadata, ki18n, kiconthemes, kinit, kio, knewstuff, knotifications,
-  kparts, ktexteditor, kwindowsystem, phonon, solid
+  kparts, ktexteditor, kwindowsystem, phonon, solid,
+  wayland, qtwayland
 }:
 
 mkDerivation {
@@ -19,6 +20,7 @@ mkDerivation {
     kcoreaddons kdelibs4support kdbusaddons kfilemetadata ki18n kiconthemes
     kinit kio knewstuff knotifications kparts ktexteditor kwindowsystem
     phonon solid
+    wayland qtwayland
   ];
   outputs = [ "out" "dev" ];
   # We need the RPATH for linking, because the `libkdeinit5_dolphin.so` links
diff --git a/pkgs/applications/misc/aminal/default.nix b/pkgs/applications/misc/aminal/default.nix
new file mode 100644
index 000000000000..ebf78be7a08b
--- /dev/null
+++ b/pkgs/applications/misc/aminal/default.nix
@@ -0,0 +1,75 @@
+{ buildGoPackage
+, Carbon
+, Cocoa
+, Kernel
+, cf-private
+, fetchFromGitHub
+, lib
+, mesa_glu
+, stdenv
+, xorg
+}:
+
+buildGoPackage rec {
+  name = "aminal-${version}";
+  version = "0.7.4";
+
+  goPackagePath = "github.com/liamg/aminal";
+
+  buildInputs =
+    lib.optionals stdenv.isLinux [
+      mesa_glu
+      xorg.libX11
+      xorg.libXcursor
+      xorg.libXi
+      xorg.libXinerama
+      xorg.libXrandr
+      xorg.libXxf86vm
+    ] ++ lib.optionals stdenv.isDarwin [
+      Carbon
+      Cocoa
+      Kernel
+      cf-private  /* Needed for NSDefaultRunLoopMode */
+    ];
+
+  src = fetchFromGitHub {
+    owner = "liamg";
+    repo = "aminal";
+    rev = "v${version}";
+    sha256 = "0wnzxjlv98pi3gy4hp3d19pwpa4kf1h5rqy03s9bcqdbpb1v1b7v";
+  };
+
+  preBuild = ''
+    buildFlagsArray=("-ldflags=-X ${goPackagePath}/version.Version=${version}")
+  '';
+
+  meta = with lib; {
+    description = "Golang terminal emulator from scratch";
+    longDescription = ''
+      Aminal is a modern terminal emulator for Mac/Linux implemented in Golang
+      and utilising OpenGL.
+
+      The project is experimental at the moment, so you probably won't want to
+      rely on Aminal as your main terminal for a while.
+
+      Features:
+      - Unicode support
+      - OpenGL rendering
+      - Customisation options
+      - True colour support
+      - Support for common ANSI escape sequences a la xterm
+      - Scrollback buffer
+      - Clipboard access
+      - Clickable URLs
+      - Multi platform support (Windows coming soon...)
+      - Sixel support
+      - Hints/overlays
+      - Built-in patched fonts for powerline
+      - Retina display support
+    '';
+    homepage = https://github.com/liamg/aminal;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/applications/misc/autospotting/default.nix b/pkgs/applications/misc/autospotting/default.nix
new file mode 100644
index 000000000000..2f38307ca1e5
--- /dev/null
+++ b/pkgs/applications/misc/autospotting/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "autospotting-${version}";
+  version = "unstable-2018-11-17";
+  goPackagePath = "github.com/AutoSpotting/AutoSpotting";
+
+  src = fetchFromGitHub {
+    owner = "AutoSpotting";
+    repo = "AutoSpotting";
+    rev = "122ab8f292a2f718dd85e79ec22acd455122907e";
+    sha256 = "0p48lgig9kblxvgq1kggczkn4qdbx6ciq9c8x0179i80vl4jf7v6";
+  };
+
+  goDeps = ./deps.nix;
+
+  # patching path where repository used to exist
+  postPatch = ''
+    sed -i "s+github.com/cristim/autospotting/core+github.com/AutoSpotting/AutoSpotting/core+" autospotting.go
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/AutoSpotting/AutoSpotting;
+    description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes";
+    license = licenses.free;
+    maintainers = [ maintainers.costrouc ];
+    platforms = platforms.linux;
+  };
+
+}
diff --git a/pkgs/applications/misc/autospotting/deps.nix b/pkgs/applications/misc/autospotting/deps.nix
new file mode 100644
index 000000000000..ea744ed6648f
--- /dev/null
+++ b/pkgs/applications/misc/autospotting/deps.nix
@@ -0,0 +1,75 @@
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/aws/aws-lambda-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-lambda-go";
+      rev =  "2d482ef09017ae953b1e8d5a6ddac5b696663a3c";
+      sha256 = "06v2yfvn4sn116lds0526a8mfrsng4vafrdjf1dhpalqarrbdvmz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/aws/aws-sdk-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/aws/aws-sdk-go";
+      rev =  "9333060a8d957db41bff1c80603a802aa674fad8";
+      sha256 = "0fnypw6zm6k70fzhm5a8g69ag64rxbrrpdk7l3rkfqd99slyg5kz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cristim/ec2-instances-info";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cristim/ec2-instances-info";
+      rev =  "73c042a5558cd6d8b61fb82502d6f7aec334e9ed";
+      sha256 = "1xajrkxqqz5wlbi9w2wdhnk115rbmqxyga29f8v9psq8hzwgi0rg";
+    };
+  }
+  {
+    goPackagePath  = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev =  "d8f796af33cc11cb798c1aaeb27a4ebc5099927d";
+      sha256 = "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-ini/ini";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-ini/ini";
+      rev =  "5cf292cae48347c2490ac1a58fe36735fb78df7e";
+      sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmespath/go-jmespath";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmespath/go-jmespath";
+      rev =  "0b12d6b5";
+      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
+    };
+  }
+  {
+    goPackagePath  = "github.com/namsral/flag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namsral/flag";
+      rev =  "67f268f20922975c067ed799e4be6bacf152208c";
+      sha256 = "1lmxq3z276zrsggpfq9b7yklzzxdyib49zr8sznb1lcqlvxqsr47";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+]
\ No newline at end of file
diff --git a/pkgs/applications/misc/slic3r/prusa3d.nix b/pkgs/applications/misc/slic3r/prusa3d.nix
index cc9133257a0c..2f5486a0f4bc 100644
--- a/pkgs/applications/misc/slic3r/prusa3d.nix
+++ b/pkgs/applications/misc/slic3r/prusa3d.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
+{ stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
   boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU,
   glew, eigen, curl, gtest, nlopt, pcre, xorg }:
 let
@@ -98,6 +98,10 @@ stdenv.mkDerivation rec {
     # seems to be the easiest way.
     sed -i "s|\''${PERL_VENDORARCH}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
     sed -i "s|\''${PERL_VENDORLIB}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
+  '' + lib.optionalString (lib.versionOlder "2.5" nlopt.version) ''
+    # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
+    # now seems to be integrated into the main lib.
+    sed -i 's|nlopt_cxx|nlopt|g' xs/src/libnest2d/cmake_modules/FindNLopt.cmake
   '';
 
   postInstall = ''
@@ -114,7 +118,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "prusa3d";
     repo = "Slic3r";
-    sha256 = "0068wwsjwmnxql7653vy3labcyslzf17kr8xdr4lg2jplm022hvy";
+    sha256 = "0crjrll8cjpkllval6abrqzvzp8g3rnb4vmwi5vivw0jvdv3w5y7";
     rev = "version_${version}";
   };
 
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index d764a5388535..ed524b331dd9 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -75,10 +75,11 @@ let rpath = lib.makeLibraryPath [
 in stdenv.mkDerivation rec {
     pname = "brave";
     version = "0.56.12";
+    version = "0.56.15";
 
     src = fetchurl {
         url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-        sha256 = "1pvablwchpsm1fdhfp9kr2912yv4812r8prv5fn799qpflzxvyai";
+        sha256 = "1d18fgnxcgl95bhkgfqjyv4p81q6fciqibd3ss4vwh1ljjy1fv76";
     };
 
     dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/lynx/default.nix b/pkgs/applications/networking/browsers/lynx/default.nix
index 6097c0e95f0d..cb44e79839b0 100644
--- a/pkgs/applications/networking/browsers/lynx/default.nix
+++ b/pkgs/applications/networking/browsers/lynx/default.nix
@@ -8,14 +8,14 @@ assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation rec {
   name = "lynx-${version}";
-  version = "2.8.9dev.17";
+  version = "2.8.9rel.1";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.invisible-island.net/lynx/tarballs/lynx${version}.tar.bz2"
       "https://invisible-mirror.net/archives/lynx/tarballs/lynx${version}.tar.bz2"
     ];
-    sha256 = "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54";
+    sha256 = "15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 33172b9af701..89dd6775719a 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -13,11 +13,11 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "vivaldi";
-  version = "2.1.1337.47-1";
+  version = "2.1.1337.51-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb";
-    sha256 = "0i4dd5fgipplfq9jylm23jc9vn0qzf03ph1v85qh252hw5fgnyj2";
+    sha256 = "08x6abyz65vx4ycj8ys8sib9z1adb8ybmnrqjck69b30kbz78rj2";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/cluster/kubetail/default.nix b/pkgs/applications/networking/cluster/kubetail/default.nix
index 38892cdf0396..b2cf486b6123 100644
--- a/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -12,7 +12,10 @@ stdenv.mkDerivation rec {
   };
 
   installPhase = ''
-    install -Dm755 kubetail $out/bin/kubetail
+    install -Dm755 kubetail                 "$out/bin/kubetail"
+    install -Dm755 completion/kubetail.bash "$out/share/bash-completion/completions/kubetail"
+    install -Dm755 completion/kubetail.fish "$out/share/fish/vendor_completions.d/kubetail.fish"
+    install -Dm755 completion/kubetail.zsh  "$out/share/zsh/site-functions/_kubetail"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/cluster/stern/default.nix b/pkgs/applications/networking/cluster/stern/default.nix
index c5e4ac9d0ba3..bb0f3229ea5e 100644
--- a/pkgs/applications/networking/cluster/stern/default.nix
+++ b/pkgs/applications/networking/cluster/stern/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ stdenv, lib, buildPackages, buildGoPackage, fetchFromGitHub }:
+
+let isCrossBuild = stdenv.hostPlatform != stdenv.buildPlatform; in
 
 buildGoPackage rec {
   name = "stern-${version}";
@@ -15,11 +17,20 @@ buildGoPackage rec {
 
   goDeps = ./deps.nix;
 
-   meta = with lib; {
-      description      = "Multi pod and container log tailing for Kubernetes";
-      homepage         = "https://github.com/wercker/stern";
-      license          = licenses.asl20;
-      maintainers      = with maintainers; [ mbode ];
-      platforms        = platforms.unix;
-    };
+  postInstall =
+    let stern = if isCrossBuild then buildPackages.stern else "$bin"; in
+    ''
+      mkdir -p $bin/share/bash-completion/completions
+      ${stern}/bin/stern --completion bash > $bin/share/bash-completion/completions/stern
+      mkdir -p $bin/share/zsh/site-functions
+      ${stern}/bin/stern --completion zsh > $bin/share/zsh/site-functions/_stern
+    '';
+
+  meta = with lib; {
+    description      = "Multi pod and container log tailing for Kubernetes";
+    homepage         = "https://github.com/wercker/stern";
+    license          = licenses.asl20;
+    maintainers      = with maintainers; [ mbode ];
+    platforms        = platforms.unix;
+  };
 }
diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index 7fe68163ab96..2c5d7005ef8c 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -10,16 +10,17 @@
 , dbus
 , gpgme
 , pcre
+, qrencode
  }:
 
 stdenv.mkDerivation rec {
-  name = "dino-unstable-2018-09-21";
+  name = "dino-unstable-2018-11-27";
 
   src = fetchFromGitHub {
     owner = "dino";
     repo = "dino";
-    rev = "6b7ef800f54e781a618425236ba8d4ed2f2fef9c";
-    sha256 = "1si815b6y06lridj88hws0dgq54w9jfam9sqbrq3cfcvmhc38ysk";
+    rev = "141db9e40a3a81cfa3ad3587dc47f69c541d0fde";
+    sha256 = "006r1x7drlz39jjxlfdnxgrnambw9amhl9jcgf6p1dx71h1x8221";
     fetchSubmodules = true;
   };
 
@@ -32,6 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    qrencode
     gobjectIntrospection
     glib-networking
     glib
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index d9b86b31bf2b..2f7f3c5836af 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -56,11 +56,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "signal-desktop-${version}";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "0l5q55k5dp7hbvw3dnjsz39blbsahx6nh9ln4c69752zg473yv4v";
+    sha256 = "1gak6nhv5gk37iv1bfmjx6wf0p1vcln5y29i6fkzmvcrp3j2cmfh";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index f2c097a43752..cb0b8c8f5b79 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = optional smimeSupport (fetchpatch {
-    url    = "https://sources.debian.net/src/mutt/1.7.2-1/debian/patches/misc/smime.rc.patch";
-    sha256 = "0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73";
+    url = "https://salsa.debian.org/mutt-team/mutt/raw/debian/1.10.1-2/debian/patches/misc/smime.rc.patch";
+    sha256 = "1rl27qqwl4nw321ll5jcvfmkmz4fkvcsh5vihjcrhzzyf6vz8wmj";
   });
 
   buildInputs =
diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index f082c241a64c..a8c322b42b83 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
 , ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mime-types }:
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap
+}:
 
 let
   muttWrapper = writeScript "mutt" ''
@@ -28,7 +29,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     cyrus_sasl gss gpgme kerberos libidn ncurses
     notmuch openssl perl lmdb
-    mime-types
+    mailcap
   ];
 
   nativeBuildInputs = [
@@ -47,10 +48,11 @@ in stdenv.mkDerivation rec {
         --replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd
     done
 
+
     # allow neomutt to map attachments to their proper mime.types if specified wrongly
     # and use a far more comprehensive list than the one shipped with neomutt
     substituteInPlace sendlib.c \
-      --replace /etc/mime.types ${mime-types}/etc/mime.types
+      --replace /etc/mime.types ${mailcap}/etc/mime.types
 
     # The string conversion tests all fail with the first version of neomutt
     # that has tests (20180223) as well as 20180716 so we disable them for now.
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 34712a522feb..af01b89dc764 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -2,15 +2,16 @@
 
 buildGoPackage rec {
   name = "rclone-${version}";
-  version = "1.44";
+  version = "1.45";
 
   goPackagePath = "github.com/ncw/rclone";
+  subPackages = [ "." ];
 
   src = fetchFromGitHub {
     owner = "ncw";
     repo = "rclone";
     rev = "v${version}";
-    sha256 = "0kpx9r4kksscsvia7r79z9h8ghph25ay9dgpqrnp599fq1bqky61";
+    sha256 = "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26";
   };
 
   outputs = [ "bin" "out" "man" ];
diff --git a/pkgs/applications/office/marp/default.nix b/pkgs/applications/office/marp/default.nix
index 6ff0cf1dfd05..cdda46d4837f 100644
--- a/pkgs/applications/office/marp/default.nix
+++ b/pkgs/applications/office/marp/default.nix
@@ -1,24 +1,29 @@
-{ stdenv, fetchurl, atomEnv, libXScrnSaver }:
+{ stdenv, fetchurl, atomEnv, libXScrnSaver, gtk2 }:
 
 stdenv.mkDerivation rec {
   name = "marp-${version}";
-  version = "0.0.13";
+  version = "0.0.14";
 
   src = fetchurl {
     url = "https://github.com/yhatt/marp/releases/download/v${version}/${version}-Marp-linux-x64.tar.gz";
-    sha256 = "1120mbw4mf7v4qfmss3121gkgp5pn31alk9cssxbrmdcsdkaq5ld";
+    sha256 = "0nklzxwdx5llzfwz1hl2jpp2kwz78w4y63h5l00fh6fv6zisw6j4";
   };
-  sourceRoot = ".";
+
+  unpackPhase = ''
+    mkdir {locales,resources}
+    tar --delay-directory-restore -xf $src
+    chmod u+x {locales,resources}
+  '';
 
   installPhase = ''
-      mkdir -p $out/lib/marp $out/bin
-      cp -r ./* $out/lib/marp
-      ln -s $out/lib/marp/Marp $out/bin
+    mkdir -p $out/lib/marp $out/bin
+    cp -r ./* $out/lib/marp
+    ln -s $out/lib/marp/Marp $out/bin
   '';
 
   postFixup = ''
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libXScrnSaver ]}:$out/lib/marp" \
+      --set-rpath "${atomEnv.libPath}:${stdenv.lib.makeLibraryPath [ libXScrnSaver gtk2 ]}:$out/lib/marp" \
       $out/bin/Marp
   '';
 
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index e825d1e8454f..9c7de486573a 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,14 +2,15 @@
 
 stdenv.mkDerivation rec {
   name = "picard-tools-${version}";
-  version = "2.18.14";
+  version = "2.18.17";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "0xc5mqifav2j4zbln04q07wjlzpwp3w0y5iv5bkp4v5486cp2ha9";
+    sha256 = "0ks7ymrjfya5h77hp0bqyipzdri0kf97c8wks32nvwkj821687zm";
   };
 
-  buildInputs = [ jre makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
 
   phases = [ "installPhase" ];
 
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Tools for high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.";
+    description = "Tools for high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF";
     license = licenses.mit;
     homepage = https://broadinstitute.github.io/picard/;
     maintainers = with maintainers; [ jbedo ];
diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix
index c0831847b720..bc6e5e33ea24 100644
--- a/pkgs/applications/science/electronics/librepcb/default.nix
+++ b/pkgs/applications/science/electronics/librepcb/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "librepcb-${version}";
-  version = "20181031";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "LibrePCB";
     repo = "LibrePCB";
     fetchSubmodules = true;
-    rev = "3cf8dba9fa88e5b392d639c9fdbcf3a44664170a";
-    sha256 = "0kr4mii5w3kj3kqvhgq7zjxjrq44scx8ky0x77gyqmwvwfwk7nmx";
+    rev = "d7458d3b3e126499902e1a66a0ef889f516a7c97";
+    sha256 = "19wh0398fzzpd65nh4mmc4jllkrgcrwxvxdby0gb5wh1sqyaqac4";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index 29fc94a71dac..28a7e783ff3f 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "z3-${version}";
-  version = "4.8.1";
+  version = "4.8.3";
 
   src = fetchFromGitHub {
     owner  = "Z3Prover";
     repo   = "z3";
     rev    = name;
-    sha256 = "1vr57bwx40sd5riijyrhy70i2wnv9xrdihf6y5zdz56yq88rl48f";
+    sha256 = "0p5gdmhd32x6zwmx7j5cgwh4jyfxa9yapym95nlmyfaqzak92qar";
   };
 
   buildInputs = [ python fixDarwinDylibNames ];
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index 832b2f110565..46e60a2b81e4 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -129,6 +129,7 @@ let
     # https://trac.sagemath.org/ticket/25674
     R = pkgs.R.overrideAttrs (attrs: rec {
       name = "R-3.4.4";
+      doCheck = false;
       src = fetchurl {
         url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
         sha256 = "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk";
diff --git a/pkgs/applications/science/math/sage/sage-tests.nix b/pkgs/applications/science/math/sage/sage-tests.nix
index feccf75a7acb..1f400db18fcb 100644
--- a/pkgs/applications/science/math/sage/sage-tests.nix
+++ b/pkgs/applications/science/math/sage/sage-tests.nix
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
     mkdir -p "$HOME"
 
     # "--long" tests are in the order of 1h, without "--long" its 1/2h
-    "sage" -t --nthreads "$NIX_BUILD_CORES" --optional=sage ${patienceSpecifier} ${testArgs}
+    "sage" -t --timeout=0 --nthreads "$NIX_BUILD_CORES" --optional=sage ${patienceSpecifier} ${testArgs}
   '';
 }
diff --git a/pkgs/applications/science/physics/quantomatic/default.nix b/pkgs/applications/science/physics/quantomatic/default.nix
new file mode 100644
index 000000000000..ad86ff61471c
--- /dev/null
+++ b/pkgs/applications/science/physics/quantomatic/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  name = "quantomatic-${version}";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "https://github.com/Quantomatic/quantomatic/releases/download/v${version}/Quantomatic-v${version}.jar";
+    sha256 = "04dd5p73a7plb4l4x2balam8j7mxs8df06rjkalxycrr1id52q4r";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ jre ];
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/libexec/quantomatic
+    cp $src $out/libexec/quantomatic/quantomatic.jar
+    mkdir -p $out/bin
+    makeWrapper ${jre}/bin/java $out/bin/quantomatic --add-flags "-jar $out/libexec/quantomatic/quantomatic.jar"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A piece of software for reasoning about monoidal theories; in particular, quantum information processing";
+    license = licenses.gpl3;
+    homepage = https://quantomatic.github.io/;
+    maintainers = with maintainers; [ nickhu ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix
index c99ae18ff527..21cdd87ddcf7 100644
--- a/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/default.nix
@@ -94,6 +94,8 @@ let
 
   git-remote-hg = callPackage ./git-remote-hg { };
 
+  git-reparent = callPackage ./git-reparent { };
+
   git-secret = callPackage ./git-secret { };
 
   git-secrets = callPackage ./git-secrets { };
diff --git a/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix b/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
new file mode 100644
index 000000000000..03435ec834ab
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-reparent/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, makeWrapper, git, gnused }:
+
+stdenv.mkDerivation rec {
+  name = "git-reparent-${version}";
+  version = "unstable-2017-09-03";
+
+  src = fetchFromGitHub {
+    owner  = "MarkLodato";
+    repo   = "git-reparent";
+    rev    = "a99554a32524a86421659d0f61af2a6c784b7715";
+    sha256 = "0v0yxydpw6r4awy0hb7sbnh520zsk86ibzh1xjf3983yhsvkfk5v";
+  };
+
+  buildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -m755 -Dt $out/bin git-reparent
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/git-reparent --prefix PATH : "${stdenv.lib.makeBinPath [ git gnused ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Git command to recommit HEAD with a new set of parents";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch
deleted file mode 100644
index 38181399eec8..000000000000
--- a/pkgs/applications/version-management/gitlab-shell/remove-hardcoded-locations.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/go/internal/config/config.go b/go/internal/config/config.go
-index c57b4de..88cfc95 100644
---- a/go/internal/config/config.go
-+++ b/go/internal/config/config.go
-@@ -27,7 +27,7 @@ func New() (*Config, error) {
- 	}
- 	cfg.RootDir = dir
- 
--	configBytes, err := ioutil.ReadFile(path.Join(cfg.RootDir, configFile))
-+	configBytes, err := ioutil.ReadFile("/run/gitlab/shell-config.yml")
- 	if err != nil {
- 		return nil, err
- 	}
-diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
-index 1452f95..2b40327 100644
---- a/lib/gitlab_shell.rb
-+++ b/lib/gitlab_shell.rb
-@@ -180,7 +180,8 @@ class GitlabShell
-     end
- 
-     # We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
--    Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
-+    # Except we don't, because we're already in the right directory on nixos!
-+    Kernel.exec(env, *args, unsetenv_others: true)
-   end
- 
-   def api
diff --git a/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch b/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch
deleted file mode 100644
index da6dc5493ac5..000000000000
--- a/pkgs/applications/version-management/gitlab-workhorse/deterministic-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile	2018-10-08 12:45:15.206269937 +0200
-+++ b/Makefile	2018-10-08 12:45:24.435366307 +0200
-@@ -6,7 +6,7 @@
- BIN_BUILD_DIR := $(TARGET_DIR)/bin
- PKG_BUILD_DIR := $(TARGET_DIR)/src/$(PKG)
- COVERAGE_DIR := $(TARGET_DIR)/cover
--VERSION := $(shell git describe)-$(shell date -u +%Y%m%d.%H%M%S)
-+VERSION := 6.1.1
- GOBUILD := go build -ldflags "-X main.Version=$(VERSION)"
- EXE_ALL := gitlab-zip-cat gitlab-zip-metadata gitlab-workhorse
- INSTALL := install
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
new file mode 100644
index 000000000000..e2be6fb2a908
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -0,0 +1,32 @@
+{
+  "ce": {
+    "version": "11.5.0",
+    "repo_hash": "0cjkkap3n9g9zahrxk99a330ahyb6cvx97dsnrxcdsn0cbrsxsrb",
+    "deb_hash": "0kn7mg1lk4gvc3x76z4rbh0j03b0wk6x1p5938wx8sc50k0bgrcp",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_11.5.0-ce.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ce",
+    "rev": "v11.5.0",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "0.129.0",
+      "GITLAB_PAGES_VERSION": "1.3.0",
+      "GITLAB_SHELL_VERSION": "8.4.1",
+      "GITLAB_WORKHORSE_VERSION": "7.1.0"
+    }
+  },
+  "ee": {
+    "version": "11.5.0",
+    "repo_hash": "1s2jr7vhbpklpcfjxgxnmq0zq14hh2aa6akdsb7ld7fj5lmzp00z",
+    "deb_hash": "108mgmlf947h200qrwg71ilhq5ihr4awxns6lqs2wa90ph9yq25c",
+    "deb_url": "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_11.5.0-ee.0_amd64.deb/download.deb",
+    "owner": "gitlab-org",
+    "repo": "gitlab-ee",
+    "rev": "v11.5.0-ee",
+    "passthru": {
+      "GITALY_SERVER_VERSION": "0.129.0",
+      "GITLAB_PAGES_VERSION": "1.3.0",
+      "GITLAB_SHELL_VERSION": "8.4.1",
+      "GITLAB_WORKHORSE_VERSION": "7.1.0"
+    }
+  }
+}
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index c1c4d20feacb..2ffe1141b5a0 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -11,32 +11,22 @@ let
     groups = [ "default" "unicorn" "ed25519" "metrics" ];
   };
 
-  version = "11.4.4";
+  flavour = if gitlabEnterprise then "ee" else "ce";
+  data = (builtins.fromJSON (builtins.readFile ./data.json)).${flavour};
 
-  sources = if gitlabEnterprise then {
-    gitlabDeb = fetchurl {
-      url = "https://packages.gitlab.com/gitlab/gitlab-ee/packages/debian/stretch/gitlab-ee_${version}-ee.0_amd64.deb/download.deb";
-      sha256 = "15lpcdjcw6lpmzlhqnpd6pgaxh7wvx2mldjd1vqr414r4bcnhgy4";
-    };
+  version = data.version;
+  sources = {
     gitlab = fetchFromGitLab {
-      owner = "gitlab-org";
-      repo = "gitlab-ee";
-      rev = "v${version}-ee";
-      sha256 = "046hchr7q4jnx3j4yxg3rdixfzlva35al3ci26pf9vxrbbl5y8cg";
+      owner = data.owner;
+      repo = data.repo;
+      rev = data.rev;
+      sha256 = data.repo_hash;
     };
-  } else {
     gitlabDeb = fetchurl {
-      url = "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce_${version}-ce.0_amd64.deb/download.deb";
-      sha256 = "02p7azyjgb984bk491q6f4zk1mikbcd38rif08kl07bjjzzkir81";
-    };
-    gitlab = fetchFromGitLab {
-      owner = "gitlab-org";
-      repo = "gitlab-ce";
-      rev = "v${version}";
-      sha256 = "1hq9iyp0xrxwmncn61ja3pdj9h2hmdy1l63d1ic3r1dyacybaf2g";
+      url = data.deb_url;
+      sha256 = data.deb_hash;
     };
   };
-
 in
 
 stdenv.mkDerivation rec {
@@ -101,6 +91,10 @@ stdenv.mkDerivation rec {
   passthru = {
     inherit rubyEnv;
     ruby = rubyEnv.wrappedRuby;
+    GITALY_SERVER_VERSION = data.passthru.GITALY_SERVER_VERSION;
+    GITLAB_PAGES_VERSION = data.passthru.GITLAB_PAGES_VERSION;
+    GITLAB_SHELL_VERSION = data.passthru.GITLAB_SHELL_VERSION;
+    GITLAB_WORKHORSE_VERSION = data.passthru.GITLAB_WORKHORSE_VERSION;
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 2b752992fecd..016f80284da9 100644
--- a/pkgs/applications/version-management/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,14 +1,17 @@
 source 'https://rubygems.org'
 
-gem 'rugged', '~> 0.27.4'
+# Require bundler >= 1.16.5 to avoid this bug: https://github.com/bundler/bundler/issues/6537
+gem 'bundler', '>= 1.16.5'
+
+gem 'rugged', '~> 0.27'
 gem 'github-linguist', '~> 6.1', require: 'linguist'
 gem 'gitlab-markup', '~> 1.6.4'
-gem 'gitaly-proto', '~> 0.116.0', require: 'gitaly'
+gem 'gitaly-proto', '~> 0.123.0', require: 'gitaly'
 gem 'activesupport', '~> 5.0.2'
 gem 'rdoc', '~> 4.2'
 gem 'gitlab-gollum-lib', '~> 4.2', require: false
 gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4', require: false
-gem 'grpc', '~> 1.11.0'
+gem 'grpc', '~> 1.15.0'
 gem 'sentry-raven', '~> 2.7.2', require: false
 gem 'faraday', '~> 0.12'
 
@@ -16,10 +19,12 @@ gem 'faraday', '~> 0.12'
 # This version needs to be in sync with GitLab CE/EE
 gem 'licensee', '~> 8.9.0'
 
-# Locked until https://github.com/google/protobuf/issues/4210 is closed
-gem 'google-protobuf', '= 3.5.1'
+gem 'google-protobuf', '~> 3.6'
 
 group :development, :test do
-  gem 'gitlab-styles', '~> 2.0.0', require: false
+  gem 'rubocop', '~> 0.50', require: false
   gem 'rspec', require: false
+  gem 'rspec-parameterized', require: false
+  gem 'timecop', require: false
+  gem 'factory_bot', require: false
 end
diff --git a/pkgs/applications/version-management/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index d76ba86c398a..0340853524b0 100644
--- a/pkgs/applications/version-management/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -1,26 +1,37 @@
 GEM
   remote: https://rubygems.org/
   specs:
+    abstract_type (0.0.7)
     activesupport (5.0.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (~> 0.7)
       minitest (~> 5.1)
       tzinfo (~> 1.1)
-    addressable (2.5.2)
-      public_suffix (>= 2.0.2, < 4.0)
-    ast (2.3.0)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
+    ast (2.4.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
     charlock_holmes (0.7.6)
+    coderay (1.1.2)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
     concurrent-ruby (1.0.5)
     crass (1.0.4)
+    debug_inspector (0.0.3)
     diff-lcs (1.3)
+    equalizer (0.0.11)
     escape_utils (1.2.1)
-    faraday (0.12.2)
+    factory_bot (4.11.1)
+      activesupport (>= 3.0.0)
+    faraday (0.15.3)
       multipart-post (>= 1.2, < 3)
     gemojione (3.3.0)
       json
-    gitaly-proto (0.116.0)
-      google-protobuf (~> 3.1)
-      grpc (~> 1.10)
+    gitaly-proto (0.123.0)
+      grpc (~> 1.0)
     github-linguist (6.2.0)
       charlock_holmes (~> 0.7.6)
       escape_utils (~> 1.2.0)
@@ -44,60 +55,44 @@ GEM
       mime-types (>= 1.16)
       posix-spawn (~> 0.3)
     gitlab-markup (1.6.4)
-    gitlab-styles (2.0.0)
-      rubocop (~> 0.49)
-      rubocop-gitlab-security (~> 0.1.0)
-      rubocop-rspec (~> 1.15)
     gollum-grit_adapter (1.0.1)
       gitlab-grit (~> 2.7, >= 2.7.1)
-    google-protobuf (3.5.1)
-    googleapis-common-protos-types (1.0.1)
+    google-protobuf (3.6.1)
+    googleapis-common-protos-types (1.0.2)
       google-protobuf (~> 3.0)
-    googleauth (0.6.2)
-      faraday (~> 0.12)
-      jwt (>= 1.4, < 3.0)
-      logging (~> 2.0)
-      memoist (~> 0.12)
-      multi_json (~> 1.11)
-      os (~> 0.9)
-      signet (~> 0.7)
-    grpc (1.11.0)
+    grpc (1.15.0)
       google-protobuf (~> 3.1)
       googleapis-common-protos-types (~> 1.0.0)
-      googleauth (>= 0.5.1, < 0.7)
     i18n (0.8.1)
+    ice_nine (0.11.2)
     json (2.1.0)
-    jwt (2.1.0)
     licensee (8.9.2)
       rugged (~> 0.24)
-    little-plugger (1.1.4)
-    logging (2.2.2)
-      little-plugger (~> 1.1)
-      multi_json (~> 1.10)
-    memoist (0.16.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
     mime-types (3.2.2)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2018.0812)
     mini_portile2 (2.3.0)
     minitest (5.9.1)
-    multi_json (1.13.1)
     multipart-post (2.0.0)
     nokogiri (1.8.4)
       mini_portile2 (~> 2.3.0)
     nokogumbo (1.5.0)
       nokogiri
-    os (0.9.6)
-    parallel (1.12.0)
-    parser (2.4.0.0)
-      ast (~> 2.2)
+    parallel (1.12.1)
+    parser (2.5.1.2)
+      ast (~> 2.4.0)
     posix-spawn (0.3.13)
-    powerpack (0.1.1)
-    public_suffix (3.0.2)
-    rainbow (2.2.2)
-      rake
-    rake (12.1.0)
+    powerpack (0.1.2)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    rainbow (3.0.0)
     rdoc (4.3.0)
-    rouge (3.2.1)
+    rouge (3.3.0)
     rspec (3.7.0)
       rspec-core (~> 3.7.0)
       rspec-expectations (~> 3.7.0)
@@ -110,56 +105,66 @@ GEM
     rspec-mocks (3.7.0)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.7.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
     rspec-support (3.7.1)
-    rubocop (0.50.0)
+    rubocop (0.54.0)
       parallel (~> 1.10)
-      parser (>= 2.3.3.1, < 3.0)
+      parser (>= 2.5)
       powerpack (~> 0.1)
-      rainbow (>= 2.2.2, < 3.0)
+      rainbow (>= 2.2.2, < 4.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
-    rubocop-gitlab-security (0.1.0)
-      rubocop (>= 0.47.1)
-    rubocop-rspec (1.17.0)
-      rubocop (>= 0.50.0)
-    ruby-progressbar (1.8.3)
-    rugged (0.27.4)
+    ruby-progressbar (1.10.0)
+    rugged (0.27.5)
     sanitize (4.6.6)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
       nokogumbo (~> 1.4)
     sentry-raven (2.7.2)
       faraday (>= 0.7.6, < 1.0)
-    signet (0.8.1)
-      addressable (~> 2.3)
-      faraday (~> 0.9)
-      jwt (>= 1.5, < 3.0)
-      multi_json (~> 1.10)
     stringex (2.8.4)
     thread_safe (0.3.6)
+    timecop (0.9.1)
     tzinfo (1.2.2)
       thread_safe (~> 0.1)
-    unicode-display_width (1.3.0)
+    unicode-display_width (1.4.0)
+    unparser (0.2.8)
+      abstract_type (~> 0.0.7)
+      adamantium (~> 0.2.0)
+      concord (~> 0.1.5)
+      diff-lcs (~> 1.3)
+      equalizer (~> 0.0.9)
+      parser (>= 2.3.1.2, < 2.6)
+      procto (~> 0.0.2)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
   activesupport (~> 5.0.2)
+  bundler (>= 1.16.5)
+  factory_bot
   faraday (~> 0.12)
-  gitaly-proto (~> 0.116.0)
+  gitaly-proto (~> 0.123.0)
   github-linguist (~> 6.1)
   gitlab-gollum-lib (~> 4.2)
   gitlab-gollum-rugged_adapter (~> 0.4.4)
   gitlab-markup (~> 1.6.4)
-  gitlab-styles (~> 2.0.0)
-  google-protobuf (= 3.5.1)
-  grpc (~> 1.11.0)
+  google-protobuf (~> 3.6)
+  grpc (~> 1.15.0)
   licensee (~> 8.9.0)
   rdoc (~> 4.2)
   rspec
-  rugged (~> 0.27.4)
+  rspec-parameterized
+  rubocop (~> 0.50)
+  rugged (~> 0.27)
   sentry-raven (~> 2.7.2)
+  timecop
 
 BUNDLED WITH
-   1.16.4
+   1.17.1
diff --git a/pkgs/applications/version-management/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 88bd0b9f10db..951dbf0bf25a 100644
--- a/pkgs/applications/version-management/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -7,14 +7,14 @@ let
     gemdir = ./.;
   };
 in buildGoPackage rec {
-  version = "0.125.1";
+  version = "0.129.0";
   name = "gitaly-${version}";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "0vbxjqjs1r5c350r67812andasby5zk25xlaqp201lmlvamiv0ni";
+    sha256 = "0lidqa0w0vy87p5xfmqrfvbyzvl9wj2p918qs2f5rc7shzm38rn6";
   };
 
   goPackagePath = "gitlab.com/gitlab-org/gitaly";
diff --git a/pkgs/applications/version-management/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 0717555b3829..9bf5601bf634 100644
--- a/pkgs/applications/version-management/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -1,4 +1,12 @@
 {
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
     source = {
@@ -8,22 +16,31 @@
     };
     version = "5.0.6";
   };
-  addressable = {
-    dependencies = ["public_suffix"];
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
       type = "gem";
     };
-    version = "2.5.2";
+    version = "0.2.0";
   };
   ast = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pp82blr5fakdk27d1d21xq9zchzb6vmyb1zcsl520s3ygvprn8m";
+      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
   };
   charlock_holmes = {
     source = {
@@ -33,6 +50,23 @@
     };
     version = "0.7.6";
   };
+  coderay = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
   concurrent-ruby = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -49,6 +83,14 @@
     };
     version = "1.0.4";
   };
+  debug_inspector = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
   diff-lcs = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -57,6 +99,14 @@
     };
     version = "1.3";
   };
+  equalizer = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
   escape_utils = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -65,14 +115,23 @@
     };
     version = "1.2.1";
   };
+  factory_bot = {
+    dependencies = ["activesupport"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13q1b7imb591068plg4ashgsqgzarvfjz6xxn3jk6klzikz5zhg1";
+      type = "gem";
+    };
+    version = "4.11.1";
+  };
   faraday = {
     dependencies = ["multipart-post"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "157c4cmb5g1b3ny6k9qf9z57rfijl54fcq3hnqqf6g31g1m096b2";
+      sha256 = "16hwxc8v0z6gkanckjhx0ffgqmzpc4ywz4dfhxpjlz2mbz8d5m52";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.15.3";
   };
   gemojione = {
     dependencies = ["json"];
@@ -84,13 +143,13 @@
     version = "3.3.0";
   };
   gitaly-proto = {
-    dependencies = ["google-protobuf" "grpc"];
+    dependencies = ["grpc"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15946776v5v8c2jisknjm82s4q3b3q9x2xygjf4bkk4m45n766w1";
+      sha256 = "16b9sdaimhcda401z2s7apf0nz6y0lxs74xhkwlz4jzf6ms44mgg";
       type = "gem";
     };
-    version = "0.116.0";
+    version = "0.123.0";
   };
   github-linguist = {
     dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
@@ -144,15 +203,6 @@
     };
     version = "1.6.4";
   };
-  gitlab-styles = {
-    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-rspec"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1k8xrkjx8rcny8p0gsp18wskvn1qbw4rfgdp1f6x0p4xp6dlhjf4";
-      type = "gem";
-    };
-    version = "2.0.0";
-  };
   gollum-grit_adapter = {
     dependencies = ["gitlab-grit"];
     source = {
@@ -165,37 +215,28 @@
   google-protobuf = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8ijd9wdrkqwsb6nasrsv7f9i5im2nyax7f7jlb5y9vh8nl98qi";
+      sha256 = "134d3ini9ymdwxpz445m28ss9x0m6vcpijcdkzvgk4n538wdmppf";
       type = "gem";
     };
-    version = "3.5.1";
+    version = "3.6.1";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yf10s7w8wpa49hc86z7z2fkn9yz7j2njz0n8xmqb24ji090z4ck";
+      sha256 = "01ds7g01pxqm3mg283xjzy0lhhvvhvzw3m7gf7szd1r7la4wf0qq";
       type = "gem";
     };
-    version = "1.0.1";
-  };
-  googleauth = {
-    dependencies = ["faraday" "jwt" "logging" "memoist" "multi_json" "os" "signet"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "08z4zfj9cwry13y8c2w5p4xylyslxxjq4wahd95bk1ddl5pknd4f";
-      type = "gem";
-    };
-    version = "0.6.2";
+    version = "1.0.2";
   };
   grpc = {
-    dependencies = ["google-protobuf" "googleapis-common-protos-types" "googleauth"];
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1is4czi3i7y6zyxzyrpsma1z91axmc0jz2ngr6ckixqd3629npkz";
+      sha256 = "0m2wspnm1cfkmhlbp7yqv5bb4vsfh246cm0aavxra67aw4l8plhb";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.15.0";
   };
   i18n = {
     source = {
@@ -205,18 +246,18 @@
     };
     version = "0.8.1";
   };
-  json = {
+  ice_nine = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      sha256 = "1nv35qg1rps9fsis28hz2cq2fx1i96795f91q4nmkm934xynll2x";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "0.11.2";
   };
-  jwt = {
+  json = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w0kaqrbl71cq9sbnixc20x5lqah3hs2i93xmhlfdg2y3by7yzky";
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
       type = "gem";
     };
     version = "2.1.0";
@@ -230,30 +271,14 @@
     };
     version = "8.9.2";
   };
-  little-plugger = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym";
-      type = "gem";
-    };
-    version = "1.1.4";
-  };
-  logging = {
-    dependencies = ["little-plugger" "multi_json"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
-      type = "gem";
-    };
-    version = "2.2.2";
-  };
-  memoist = {
+  memoizable = {
+    dependencies = ["thread_safe"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pq8fhqh8w25qcw9v3vzfb0i6jp0k3949ahxc3wrwz2791dpbgbh";
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
       type = "gem";
     };
-    version = "0.16.0";
+    version = "0.4.2";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -288,14 +313,6 @@
     };
     version = "5.9.1";
   };
-  multi_json = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
-      type = "gem";
-    };
-    version = "1.13.1";
-  };
   multipart-post = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -322,30 +339,22 @@
     };
     version = "1.5.0";
   };
-  os = {
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1llv8w3g2jwggdxr5a5cjkrnbbfnvai3vxacxxc0fy84xmz3hymz";
-      type = "gem";
-    };
-    version = "0.9.6";
-  };
   parallel = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qv2yj4sxr36ga6xdxvbq9h05hn10bwcbkqv6j6q1fiixhsdnnzd";
+      sha256 = "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.12.1";
   };
   parser = {
     dependencies = ["ast"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "130rfk8a2ws2fyq52hmi1n0xakylw39wv4x1qhai4z17x2b0k9cq";
+      sha256 = "1zp89zg7iypncszxsjp8kiccrpbdf728jl449g6cnfkz990fyb5k";
       type = "gem";
     };
-    version = "2.4.0.0";
+    version = "2.5.1.2";
   };
   posix-spawn = {
     source = {
@@ -358,35 +367,35 @@
   powerpack = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fnn3fli5wkzyjl4ryh0k90316shqjfnhydmc7f8lqpi0q21va43";
+      sha256 = "1r51d67wd467rpdfl6x43y84vwm8f5ql9l9m85ak1s2sp3nc5hyv";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.2";
   };
-  public_suffix = {
+  proc_to_ast = {
+    dependencies = ["coderay" "parser" "unparser"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5h1dh1i3gwc01jbg01rly2g6a1qwhynb1s8a30ic507z1nh09s";
+      sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "0.1.0";
   };
-  rainbow = {
-    dependencies = ["rake"];
+  procto = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w";
+      sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "0.0.3";
   };
-  rake = {
+  rainbow = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mfqgpp3m69s5v1rd51lfh5qpjwyia5p4rg337pw8c8wzm6pgfsw";
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
       type = "gem";
     };
-    version = "12.1.0";
+    version = "3.0.0";
   };
   rdoc = {
     source = {
@@ -399,10 +408,10 @@
   rouge = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h79gn2wmn1wix2d27lgiaimccyj8gvizrllyym500pir408x62f";
+      sha256 = "1digsi2s8wyzx8vsqcxasw205lg6s7izx8jypl8rrpjwshmv83ql";
       type = "gem";
     };
-    version = "3.2.1";
+    version = "3.3.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -440,56 +449,47 @@
     };
     version = "3.7.0";
   };
-  rspec-support = {
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
       type = "gem";
     };
-    version = "3.7.1";
+    version = "0.4.0";
   };
-  rubocop = {
-    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1hpd7zcv4y9y750wj630abvmcjwv39dsrj1fjff60ik7gfri0xlz";
-      type = "gem";
-    };
-    version = "0.50.0";
-  };
-  rubocop-gitlab-security = {
-    dependencies = ["rubocop"];
+  rspec-support = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aw9qmyc6xj6fi0jxp8m4apk358rd91z492ragn6jp4rghkqj5cy";
+      sha256 = "1nl30xb6jmcl0awhqp6jycl01wdssblifwy921phfml70rd9flj1";
       type = "gem";
     };
-    version = "0.1.0";
+    version = "3.7.1";
   };
-  rubocop-rspec = {
-    dependencies = ["rubocop"];
+  rubocop = {
+    dependencies = ["parallel" "parser" "powerpack" "rainbow" "ruby-progressbar" "unicode-display_width"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hf48ng67yswvshmv4cyysj1rs1z3fnvlycr50jdcgwlynpyxkhs";
+      sha256 = "106y99lq0fg62k3vk1w5wwb4vq16pnh4l61skc82xck627z0h8is";
       type = "gem";
     };
-    version = "1.17.0";
+    version = "0.54.0";
   };
   ruby-progressbar = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "029kv0q3kfq53rjyak4ypn7196l8z4hflfmv4p5787n78z7baiqf";
+      sha256 = "1cv2ym3rl09svw8940ny67bav7b2db4ms39i4raaqzkf59jmhglk";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.10.0";
   };
   rugged = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y6k5yrfmhc1v4albbpa3xzl28vk5lric3si8ada28sp9mmk2x72";
+      sha256 = "1jv4nw9hvlxp8hhhlllrfcznki82i50fp1sj65zsjllfl2bvz8x6";
       type = "gem";
     };
-    version = "0.27.4";
+    version = "0.27.5";
   };
   sanitize = {
     dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -509,15 +509,6 @@
     };
     version = "2.7.2";
   };
-  signet = {
-    dependencies = ["addressable" "faraday" "jwt" "multi_json"];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0js81lxqirdza8gf2f6avh11fny49ygmxfi1qx7jp8l9wrhznbkv";
-      type = "gem";
-    };
-    version = "0.8.1";
-  };
   stringex = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -534,6 +525,14 @@
     };
     version = "0.3.6";
   };
+  timecop = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d7mm786180v4kzvn1f77rhfppsg5n0sq2bdx63x9nv114zm8jrp";
+      type = "gem";
+    };
+    version = "0.9.1";
+  };
   tzinfo = {
     dependencies = ["thread_safe"];
     source = {
@@ -546,9 +545,18 @@
   unicode-display_width = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12pi0gwqdnbx1lv5136v3vyr0img9wr0kxcn4wn54ipq4y41zxq8";
+      sha256 = "0040bsdpcmvp8w31lqi2s9s4p4h031zv52401qidmh25cgyh4a57";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rh1649846ac17av30x0b0v9l45v0x1j2y1i8m1a7xdd0v4sld0z";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "0.2.8";
   };
 }
\ No newline at end of file
diff --git a/pkgs/applications/version-management/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 69c4b9a255e3..c9f21047e5b6 100644
--- a/pkgs/applications/version-management/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -1,14 +1,14 @@
 { stdenv, ruby, bundler, fetchFromGitLab, go }:
 
 stdenv.mkDerivation rec {
-  version = "8.3.3";
+  version = "8.4.1";
   name = "gitlab-shell-${version}";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "1qapw0yvlw1nxjik7jpbbbl3yx299sfvdx67zsd5ai7bhk1gd8xl";
+    sha256 = "00jzrpdfqgrba2qi5ngc0g07p7gmip7my563hw542gg8l88d27xq";
   };
 
   buildInputs = [ ruby bundler go ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
new file mode 100644
index 000000000000..6d29f5f9e6c5
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/remove-hardcoded-locations.patch
@@ -0,0 +1,45 @@
+diff --git a/go/internal/config/config.go b/go/internal/config/config.go
+index 435cb29..078c1df 100644
+--- a/go/internal/config/config.go
++++ b/go/internal/config/config.go
+@@ -2,7 +2,6 @@ package config
+ 
+ import (
+ 	"io/ioutil"
+-	"os"
+ 	"path"
+ 
+ 	yaml "gopkg.in/yaml.v2"
+@@ -26,16 +25,13 @@ type Config struct {
+ }
+ 
+ func New() (*Config, error) {
+-	dir, err := os.Getwd()
+-	if err != nil {
+-		return nil, err
+-	}
++	dir := "/run/gitlab"
+ 
+ 	return NewFromDir(dir)
+ }
+ 
+ func NewFromDir(dir string) (*Config, error) {
+-	return newFromFile(path.Join(dir, configFile))
++	return newFromFile(path.Join(dir, "shell-config.yml"))
+ }
+ 
+ func newFromFile(filename string) (*Config, error) {
+diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
+index 57c70f5..700569b 100644
+--- a/lib/gitlab_shell.rb
++++ b/lib/gitlab_shell.rb
+@@ -187,7 +187,8 @@ class GitlabShell # rubocop:disable Metrics/ClassLength
+ 
+     args = [executable, gitaly_address, json_args]
+     # We use 'chdir: ROOT_PATH' to let the next executable know where config.yml is.
+-    Kernel.exec(env, *args, unsetenv_others: true, chdir: ROOT_PATH)
++    # Except we don't, because we're already in the right directory on nixos!
++    Kernel.exec(env, *args, unsetenv_others: true)
+   end
+ 
+   def api
diff --git a/pkgs/applications/version-management/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 3fab965bf547..e77dbc323a3c 100644
--- a/pkgs/applications/version-management/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -3,18 +3,18 @@
 stdenv.mkDerivation rec {
   name = "gitlab-workhorse-${version}";
 
-  version = "7.0.0";
+  version = "7.1.0";
 
-  srcs = fetchFromGitLab {
+  src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-workhorse";
     rev = "v${version}";
-    sha256 = "1mmfb7h5sbva2kv9h9cxfg7dyksxrwwikq7jwggfawqaadzwm677";
+    sha256 = "1jq28z2kf58wnbv8jkwfx2bm8ki22hpm9ssdy2ymza22gq0zx00g";
   };
 
   buildInputs = [ git go ];
 
-  patches = [ ./remove-hardcoded-paths.patch ./deterministic-build.patch ];
+  patches = [ ./remove-hardcoded-paths.patch ];
 
   makeFlags = [ "PREFIX=$(out)" "VERSION=${version}" ];
 
diff --git a/pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch b/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch
index d8313ecb433a..d8313ecb433a 100644
--- a/pkgs/applications/version-management/gitlab-workhorse/remove-hardcoded-paths.patch
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/remove-hardcoded-paths.patch
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
new file mode 100755
index 000000000000..765f984fba5c
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -0,0 +1,234 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p bundix common-updater-scripts nix nix-prefetch-git python3 python3Packages.requests python3Packages.lxml python3Packages.click python3Packages.click-log
+
+import click
+import click_log
+import os
+import re
+import logging
+import subprocess
+import json
+import pathlib
+from typing import Iterable
+
+import requests
+from xml.etree import ElementTree
+
+logger = logging.getLogger(__name__)
+
+
+class GitLabRepo:
+    def __init__(self, owner: str, repo: str):
+        self.owner = owner
+        self.repo = repo
+
+    @property
+    def url(self):
+        return f"https://gitlab.com/{self.owner}/{self.repo}"
+
+    @property
+    def tags(self) -> Iterable[str]:
+        r = requests.get(self.url + "/tags?format=atom", stream=True)
+
+        tree = ElementTree.fromstring(r.content)
+        return sorted((e.text for e in tree.findall(
+            '{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title')), reverse=True)
+
+    def get_git_hash(self, rev: str):
+        out = subprocess.check_output(['nix-prefetch-git', self.url, rev])
+        j = json.loads(out)
+        return j['sha256']
+
+    def get_deb_url(self, flavour: str, version: str, arch: str = 'amd64') -> str:
+        """
+        gitlab builds debian packages, which we currently need as we don't build the frontend on our own
+        this returns the url of a given flavour, version and arch
+        :param flavour: 'ce' or 'ee'
+        :param version: a version, without 'v' prefix and '-ee' suffix
+        :param arch: amd64
+        :return: url of the debian package
+        """
+        if self.owner != "gitlab-org" or self.repo not in ['gitlab-ce', 'gitlab-ee']:
+            raise Exception(f"don't know how to get deb_url for {self.url}")
+        return f"https://packages.gitlab.com/gitlab/gitlab-{flavour}/packages" + \
+               f"/debian/stretch/gitlab-{flavour}_{version}-{flavour}.0_{arch}.deb/download.deb"
+
+    def get_deb_hash(self, flavour: str, version: str) -> str:
+        out = subprocess.check_output(['nix-prefetch-url', self.get_deb_url(flavour, version)])
+        return out.decode('utf-8').strip()
+
+    @staticmethod
+    def rev2version(tag: str) -> str:
+        """
+        normalize a tag to a version number.
+        This obviously isn't very smart if we don't pass something that looks like a tag
+        :param tag: the tag to normalize
+        :return: a normalized version number
+        """
+        # strip v prefix
+        version = re.sub(r"^v", '', tag)
+        # strip -ee suffix
+        return re.sub(r"-ee$", '', version)
+
+    def get_file(self, filepath, rev):
+        """
+        returns file contents at a given rev
+        :param filepath: the path to the file, relative to the repo root
+        :param rev: the rev to fetch at
+        :return:
+        """
+        return requests.get(self.url + f"/raw/{rev}/{filepath}").text
+
+    def get_data(self, rev, flavour):
+        version = self.rev2version(rev)
+
+        passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
+                                                               'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
+        return dict(version=self.rev2version(rev),
+                    repo_hash=self.get_git_hash(rev),
+                    deb_hash=self.get_deb_hash(flavour, version),
+                    deb_url=self.get_deb_url(flavour, version),
+                    owner=self.owner,
+                    repo=self.repo,
+                    rev=rev,
+                    passthru=passthru)
+
+
+def _flavour2gitlabrepo(flavour: str):
+    if flavour not in ['ce', 'ee']:
+        raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
+
+    owner = 'gitlab-org'
+    repo = 'gitlab-' + flavour
+
+    return GitLabRepo(owner, repo)
+
+
+def _update_data_json(filename: str, repo: GitLabRepo, rev: str, flavour: str):
+    flavour_data = repo.get_data(rev, flavour)
+
+    if not os.path.exists(filename):
+        with open(filename, 'w') as f:
+            json.dump({flavour: flavour_data}, f, indent=2)
+    else:
+        with open(filename, 'r+') as f:
+            data = json.load(f)
+            data[flavour] = flavour_data
+            f.seek(0)
+            json.dump(data, f, indent=2)
+
+
+def _get_data_json():
+    data_file_path = pathlib.Path(__file__).parent / 'data.json'
+    with open(data_file_path, 'r') as f:
+        return json.load(f)
+
+
+def _call_update_source_version(pkg, version):
+    """calls update-source-version from nixpkgs root dir"""
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['update-source-version', pkg, version], cwd=nixpkgs_path)
+
+
+@click_log.simple_verbosity_option(logger)
+@click.group()
+def cli():
+    pass
+
+
+@cli.command('update-data')
+@click.option('--rev', default='latest', help='The rev to use, \'latest\' points to the latest (stable) tag')
+@click.argument('flavour')
+def update_data(rev: str, flavour: str):
+    """Update data.nix for a selected flavour"""
+    r = _flavour2gitlabrepo(flavour)
+
+    if rev == 'latest':
+        # filter out pre and re releases
+        rev = next(filter(lambda x: not ('rc' in x or x.endswith('pre')), r.tags))
+    logger.debug(f"Using rev {rev}")
+
+    version = r.rev2version(rev)
+    logger.debug(f"Using version {version}")
+
+    data_file_path = pathlib.Path(__file__).parent / 'data.json'
+
+    _update_data_json(filename=data_file_path.as_posix(),
+                      repo=r,
+                      rev=rev,
+                      flavour=flavour)
+
+
+@cli.command('update-rubyenv')
+@click.argument('flavour')
+def update_rubyenv(flavour):
+    """Update rubyEnv-${flavour}"""
+    if flavour not in ['ce', 'ee']:
+        raise Exception(f"unknown gitlab flavour: {flavour}, needs to be ce or ee")
+
+    r = _flavour2gitlabrepo(flavour)
+    rubyenv_dir = pathlib.Path(__file__).parent / f"rubyEnv-{flavour}"
+
+    # load rev from data.json
+    data = _get_data_json()
+    rev = data[flavour]['rev']
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(fn, rev))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+
+@cli.command('update-gitaly')
+def update_gitaly():
+    """Update gitaly"""
+    data = _get_data_json()
+    gitaly_server_version = data['ce']['passthru']['GITALY_SERVER_VERSION']
+    r = GitLabRepo('gitlab-org', 'gitaly')
+    rubyenv_dir = pathlib.Path(__file__).parent / 'gitaly'
+
+    for fn in ['Gemfile.lock', 'Gemfile']:
+        with open(rubyenv_dir / fn, 'w') as f:
+            f.write(r.get_file(f"ruby/{fn}", f"v{gitaly_server_version}"))
+
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+    # currently broken, as `gitaly.meta.position` returns
+    # pkgs/development/go-modules/generic/default.nix
+    # so update-source-version doesn't know where to update hashes
+    # _call_update_source_version('gitaly', gitaly_server_version)
+    gitaly_hash = r.get_git_hash(f"v{gitaly_server_version}")
+    click.echo(f"Please update gitaly/default.nix to version {gitaly_server_version} and hash {gitaly_hash}")
+
+
+
+@cli.command('update-gitlab-shell')
+def update_gitlab_shell():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_shell_version = data['ce']['passthru']['GITLAB_SHELL_VERSION']
+    _call_update_source_version('gitlab-shell', gitlab_shell_version)
+
+
+@cli.command('update-gitlab-workhorse')
+def update_gitlab_workhorse():
+    """Update gitlab-shell"""
+    data = _get_data_json()
+    gitlab_workhorse_version = data['ce']['passthru']['GITLAB_WORKHORSE_VERSION']
+    _call_update_source_version('gitlab-workhorse', gitlab_workhorse_version)
+
+
+@cli.command('update-all')
+@click.pass_context
+def update_all(ctx):
+    """Update gitlab ce and ee data.nix and rubyenvs to the latest stable release"""
+    for flavour in ['ce', 'ee']:
+        ctx.invoke(update_data, rev='latest', flavour=flavour)
+        ctx.invoke(update_rubyenv, flavour=flavour)
+    ctx.invoke(update_gitaly)
+    ctx.invoke(update_gitlab_shell)
+    ctx.invoke(update_gitlab_workhorse)
+
+
+if __name__ == '__main__':
+    cli()
diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 49df39040db3..a43e1733f063 100644
--- a/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   name = "open-vm-tools-${version}";
-  version = "10.3.0";
+  version = "10.3.5";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "0arx4yd8c5qszfgw8rqyi65j37r46dxibmzqqxb096isxhxjymw6";
+    sha256 = "10x24gkqcg9lnfxghq92nr76h40s5v3xrv0ymi9c7aqrqry404z7";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
diff --git a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
index 7e49e9e78d78..0e9e36bc3014 100644
--- a/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
+++ b/pkgs/build-support/build-fhs-userenv/chrootenv/chrootenv.c
@@ -19,7 +19,7 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-const gchar *bind_blacklist[] = {"bin", "etc", "host", "usr", NULL};
+const gchar *bind_blacklist[] = {"bin", "etc", "host", "usr", "lib", "lib64", "lib32", "sbin", NULL};
 
 void bind_mount(const gchar *source, const gchar *target) {
   fail_if(g_mkdir(target, 0755));
diff --git a/pkgs/build-support/emacs/melpa.nix b/pkgs/build-support/emacs/melpa.nix
index 2ee99ce973ef..96e61bbf90e5 100644
--- a/pkgs/build-support/emacs/melpa.nix
+++ b/pkgs/build-support/emacs/melpa.nix
@@ -35,11 +35,11 @@ import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
     then pname
     else ename;
 
-  melpa = fetchFromGitHub {
+  packageBuild = fetchFromGitHub {
     owner = "melpa";
-    repo = "melpa";
-    rev = "7103313a7c31bb1ebb71419e365cd2e279ee4609";
-    sha256 = "0m10f83ix0mzjk0vjd4kkb1m1p4b8ha0ll2yjsgk9bqjd7fwapqb";
+    repo = "package-build";
+    rev = "0a22c3fbbf661822ec1791739953b937a12fa623";
+    sha256 = "0dpy5p34il600sc8ic5jdgb3glya9si3lrvhxab0swks8fdydjgs";
   };
 
   elpa2nix = ./elpa2nix.el;
@@ -51,7 +51,7 @@ import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
       cp "$recipe" "$NIX_BUILD_TOP/recipes/$ename"
     fi
 
-    ln -s "$melpa/package-build" "$NIX_BUILD_TOP/package-build"
+    ln -s "$packageBuild" "$NIX_BUILD_TOP/package-build"
 
     mkdir -p "$NIX_BUILD_TOP/packages"
   '';
@@ -61,19 +61,18 @@ import ./generic.nix { inherit lib stdenv emacs texinfo; } ({
     ln -s "$NIX_BUILD_TOP/$sourceRoot" "$NIX_BUILD_TOP/working/$ename"
   '';
 
-  buildPhase =
-    ''
-      runHook preBuild
+  buildPhase = ''
+    runHook preBuild
 
-      cd "$NIX_BUILD_TOP"
+    cd "$NIX_BUILD_TOP"
 
-      emacs --batch -Q \
-          -L "$melpa/package-build" \
-          -l "$melpa2nix" \
-          -f melpa2nix-build-package \
-          $ename $version
+    emacs --batch -Q \
+        -L "$NIX_BUILD_TOP/package-build" \
+        -l "$melpa2nix" \
+        -f melpa2nix-build-package \
+        $ename $version
 
-      runHook postBuild
+    runHook postBuild
     '';
 
   installPhase = ''
diff --git a/pkgs/build-support/emacs/trivial.nix b/pkgs/build-support/emacs/trivial.nix
index 98463c56ba96..396c971b2f01 100644
--- a/pkgs/build-support/emacs/trivial.nix
+++ b/pkgs/build-support/emacs/trivial.nix
@@ -7,27 +7,22 @@ with lib;
 args:
 
 import ./generic.nix envargs ({
-  #preConfigure = ''
-  #  export LISPDIR=$out/share/emacs/site-lisp
-  #  export VERSION_SPECIFIC_LISPDIR=$out/share/emacs/site-lisp
-  #'';
-
   buildPhase = ''
-    eval "$preBuild"
+    runHook preBuild
 
     emacs -L . --batch -f batch-byte-compile *.el
 
-    eval "$postBuild"
+    runHook postBuild
   '';
 
   installPhase = ''
-    eval "$preInstall"
+    runHook preInstall
 
     LISPDIR=$out/share/emacs/site-lisp
     install -d $LISPDIR
     install *.el *.elc $LISPDIR
 
-    eval "$postInstall"
+    runHook postInstall
   '';
 }
 
diff --git a/pkgs/build-support/setup-hooks/auto-patchelf.sh b/pkgs/build-support/setup-hooks/auto-patchelf.sh
index d1ae317ff9a4..5bedd1a9f9ca 100644
--- a/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -147,15 +147,56 @@ autoPatchelfFile() {
     fi
 }
 
+# Can be used to manually add additional directories with shared object files
+# to be included for the next autoPatchelf invocation.
+addAutoPatchelfSearchPath() {
+    local -a findOpts=()
+
+    # XXX: Somewhat similar to the one in the autoPatchelf function, maybe make
+    #      it DRY someday...
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --) shift; break;;
+            --no-recurse) shift; findOpts+=("-maxdepth" 1);;
+            --*)
+                echo "addAutoPatchelfSearchPath: ERROR: Invalid command line" \
+                     "argument: $1" >&2
+                return 1;;
+            *) break;;
+        esac
+    done
+
+    cachedDependencies+=(
+        $(find "$@" "${findOpts[@]}" \! -type d \
+               \( -name '*.so' -o -name '*.so.*' \))
+    )
+}
+
 autoPatchelf() {
+    local norecurse=
+
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --) shift; break;;
+            --no-recurse) shift; norecurse=1;;
+            --*)
+                echo "autoPatchelf: ERROR: Invalid command line" \
+                     "argument: $1" >&2
+                return 1;;
+            *) break;;
+        esac
+    done
+
+    if [ $# -eq 0 ]; then
+        echo "autoPatchelf: No paths to patch specified." >&2
+        return 1
+    fi
+
     echo "automatically fixing dependencies for ELF files" >&2
 
     # Add all shared objects of the current output path to the start of
     # cachedDependencies so that it's choosen first in findDependency.
-    cachedDependencies+=(
-        $(find "$prefix" \! -type d \( -name '*.so' -o -name '*.so.*' \))
-    )
-    local elffile
+    addAutoPatchelfSearchPath ${norecurse:+--no-recurse} -- "$@"
 
     # Here we actually have a subshell, which also means that
     # $cachedDependencies is final at this point, so whenever we want to run
@@ -164,12 +205,15 @@ autoPatchelf() {
     # outside of this function.
     while IFS= read -r -d $'\0' file; do
       isELF "$file" || continue
+      segmentHeaders="$(LANG=C readelf -l "$file")"
+      # Skip if the ELF file doesn't have segment headers (eg. object files).
+      echo "$segmentHeaders" | grep -q '^Program Headers:' || continue
       if isExecutable "$file"; then
           # Skip if the executable is statically linked.
-          LANG=C readelf -l "$file" | grep -q "^ *INTERP\\>" || continue
+          echo "$segmentHeaders" | grep -q "^ *INTERP\\>" || continue
       fi
       autoPatchelfFile "$file"
-    done < <(find "$prefix" -type f -print0)
+    done < <(find "$@" ${norecurse:+-maxdepth 1} -type f -print0)
 }
 
 # XXX: This should ultimately use fixupOutputHooks but we currently don't have
@@ -180,6 +224,11 @@ autoPatchelf() {
 # So what we do here is basically run in postFixup and emulate the same
 # behaviour as fixupOutputHooks because the setup hook for patchelf is run in
 # fixupOutput and the postFixup hook runs later.
-postFixupHooks+=(
-    'for output in $outputs; do prefix="${!output}" autoPatchelf; done'
-)
+postFixupHooks+=('
+    if [ -z "$dontAutoPatchelf" ]; then
+        autoPatchelf -- $(for output in $outputs; do
+            [ -e "${!output}" ] || continue
+            echo "${!output}"
+        done)
+    fi
+')
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
new file mode 100644
index 000000000000..8aa3e52f5e8b
--- /dev/null
+++ b/pkgs/build-support/writers/default.nix
@@ -0,0 +1,239 @@
+{ pkgs, lib }:
+
+with lib;
+rec {
+  # Base implementation for non-compiled executables.
+  # Takes an interpreter, for example `${pkgs.bash}/bin/bash`
+  #
+  # Examples:
+  #   writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; }
+  #   makeScriptWriter { interpreter = "${pkgs.dash}/bin/dash"; } "hello" "echo hello world"
+  makeScriptWriter = { interpreter, check ? "" }: name: text:
+    assert lib.or (types.path.check name) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" name != null);
+
+    pkgs.writeTextFile {
+      name = last (builtins.split "/" name);
+      executable = true;
+      destination = if types.path.check name then name else "";
+      text = ''
+        #! ${interpreter}
+        ${text}
+        '';
+      checkPhase = check;
+    };
+
+  # Like writeScript but the first line is a shebang to bash
+  #
+  # Example:
+  #   writeBash "example" ''
+  #     echo hello world
+  #   ''
+  writeBash = makeScriptWriter {
+    interpreter = "${pkgs.bash}/bin/bash";
+  };
+
+  # Like writeScriptBIn but the first line is a shebang to bash
+  writeBashBin = name:
+    writeBash "/bin/${name}";
+
+  # writeC writes an executable c package called `name` to `destination` using `libraries`.
+  #
+  #  Examples:
+  #    writeC "hello-world-ncurses" { libraries = [ pkgs.ncurses ]; } ''
+  #      #include <ncurses.h>
+  #      int main() {
+  #        initscr();
+  #        printw("Hello World !!!");
+  #        refresh(); endwin();
+  #        return 0;
+  #      }
+  #    ''
+  writeC = name: {
+    libraries ? [],
+  }: text: pkgs.runCommand name {
+    inherit text;
+    buildInputs = [ pkgs.pkgconfig ] ++ libraries;
+    passAsFile = [ "text" ];
+  } ''
+    PATH=${makeBinPath [
+      pkgs.binutils-unwrapped
+      pkgs.coreutils
+      pkgs.gcc
+      pkgs.pkgconfig
+    ]}
+    mkdir -p "$(dirname "$out")"
+    gcc \
+        ${optionalString (libraries != [])
+          "$(pkg-config --cflags --libs ${
+            concatMapStringsSep " " (lib: escapeShellArg (builtins.parseDrvName lib.name).name) (libraries)
+          })"
+        } \
+        -O \
+        -o "$out" \
+        -Wall \
+        -x c \
+        "$textPath"
+    strip --strip-unneeded "$out"
+  '';
+
+  # writeCBin takes the same arguments as writeC but outputs a directory (like writeScriptBin)
+  writeCBin = name: spec: text:
+    pkgs.runCommand name {
+    } ''
+      mkdir -p $out/bin
+      ln -s ${writeC name spec text} $out/bin/${name}
+    '';
+
+  # Like writeScript but the first line is a shebang to dash
+  #
+  # Example:
+  #   writeDash "example" ''
+  #     echo hello world
+  #   ''
+  writeDash = makeScriptWriter {
+    interpreter = "${pkgs.dash}/bin/dash";
+  };
+
+  # Like writeScriptBin but the first line is a shebang to dash
+  writeDashBin = name:
+    writeDash "/bin/${name}";
+
+  # writeHaskell takes a name, an attrset with libraries and haskell version (both optional)
+  # and some haskell source code and returns an executable.
+  #
+  # Example:
+  #   writeHaskell "missiles" { libraries = [ pkgs.haskellPackages.acme-missiles ]; } ''
+  #     Import Acme.Missiles
+  #
+  #     main = launchMissiles
+  #   '';
+  writeHaskell = name: {
+    libraries ? [],
+    ghc ? pkgs.ghc
+  }: text: pkgs.runCommand name {
+    inherit text;
+    passAsFile = [ "text" ];
+  } ''
+    cp $textPath ${name}.hs
+    ${ghc.withPackages (_: libraries )}/bin/ghc ${name}.hs
+    cp ${name} $out
+  '';
+
+  # writeHaskellBin takes the same arguments as writeHaskell but outputs a directory (like writeScriptBin)
+  writeHaskellBin = name: spec: text:
+    pkgs.runCommand name {
+    } ''
+      mkdir -p $out/bin
+      ln -s ${writeHaskell name spec text} $out/bin/${name}
+    '';
+
+  # writeJS takes a name an attributeset with libraries and some JavaScript sourcecode and
+  # returns an executable
+  #
+  # Example:
+  #   writeJS "example" { libraries = [ pkgs.nodePackages.uglify-js ]; } ''
+  #     var UglifyJS = require("uglify-js");
+  #     var code = "function add(first, second) { return first + second; }";
+  #     var result = UglifyJS.minify(code);
+  #     console.log(result.code);
+  #   ''
+  writeJS = name: { libraries ? [] }: text:
+  let
+    node-env = pkgs.buildEnv {
+      name = "node";
+      paths = libraries;
+      pathsToLink = [
+        "/lib/node_modules"
+      ];
+    };
+  in writeDash name ''
+    export NODE_PATH=${node-env}/lib/node_modules
+    exec ${pkgs.nodejs}/bin/node ${pkgs.writeText "js" text}
+  '';
+
+  # writeJSBin takes the same arguments as writeJS but outputs a directory (like writeScriptBin)
+  writeJSBin = name:
+    writeJS "/bin/${name}";
+
+  # writePerl takes a name an attributeset with libraries and some perl sourcecode and
+  # returns an executable
+  #
+  # Example:
+  #   writePerl "example" { libraries = [ pkgs.perlPackages.boolean ]; } ''
+  #     use boolean;
+  #     print "Howdy!\n" if true;
+  #   ''
+  writePerl = name: { libraries ? [] }:
+  let
+    perl-env = pkgs.buildEnv {
+      name = "perl-environment";
+      paths = libraries;
+      pathsToLink = [
+        "/lib/perl5/site_perl"
+      ];
+    };
+  in
+  makeScriptWriter {
+    interpreter = "${pkgs.perl}/bin/perl -I ${perl-env}/lib/perl5/site_perl";
+  } name;
+
+  # writePerlBin takes the same arguments as writePerl but outputs a directory (like writeScriptBin)
+  writePerlBin = name:
+    writePerl "/bin/${name}";
+
+  # writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
+  # returns an executable
+  #
+  # Example:
+  # writePython2 "test_python2" { libraries = [ pkgs.python2Packages.enum ]; } ''
+  #   from enum import Enum
+  #
+  #   class Test(Enum):
+  #       a = "success"
+  #
+  #   print Test.a
+  # ''
+  writePython2 = name: { libraries ? [], flakeIgnore ? [] }:
+  let
+    py = pkgs.python2.withPackages (ps: libraries);
+    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
+  in
+  makeScriptWriter {
+    interpreter = "${py}/bin/python";
+    check = writeDash "python2check.sh" ''
+      exec ${pkgs.python2Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
+    '';
+  } name;
+
+  # writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
+  writePython2Bin = name:
+    writePython2 "/bin/${name}";
+
+  # writePython3 takes a name an attributeset with libraries and some python3 sourcecode and
+  # returns an executable
+  #
+  # Example:
+  # writePython3 "test_python3" { libraries = [ pkgs.python3Packages.pyyaml ]; } ''
+  #   import yaml
+  #
+  #   y = yaml.load("""
+  #     - test: success
+  #   """)
+  #   print(y[0]['test'])
+  # ''
+  writePython3 = name: { libraries ? [], flakeIgnore ? [] }:
+  let
+    py = pkgs.python3.withPackages (ps: libraries);
+    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
+  in
+  makeScriptWriter {
+    interpreter = "${py}/bin/python";
+    check = writeDash "python3check.sh" ''
+      exec ${pkgs.python3Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
+    '';
+  } name;
+
+  # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
+  writePython3Bin = name:
+    writePython3 "/bin/${name}";
+}
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
new file mode 100644
index 000000000000..68b7b27e6130
--- /dev/null
+++ b/pkgs/build-support/writers/test.nix
@@ -0,0 +1,149 @@
+{ stdenv, lib, runCommand, haskellPackages, nodePackages, perlPackages, python2Packages, python3Packages, writers}:
+with writers;
+let
+
+  bin = {
+    bash = writeBashBin "test_writers" ''
+     if [[ "test" == "test" ]]; then echo "success"; fi
+    '';
+
+    c = writeCBin "test_writers" { libraries = [ ]; } ''
+      #include <stdio.h>
+      int main() {
+        printf("success\n");
+        return 0;
+      }
+    '';
+
+    dash = writeDashBin "test_writers" ''
+     test '~' = '~' && echo 'success'
+    '';
+
+    haskell = writeHaskellBin "test_writers" { libraries = [ haskellPackages.acme-default ]; } ''
+      import Data.Default
+
+      int :: Int
+      int = def
+
+      main :: IO ()
+      main = case int of
+        18871 -> putStrLn $ id "success"
+        _ -> print "fail"
+    '';
+
+    js = writeJSBin "test_writers" { libraries = [ nodePackages.semver ]; } ''
+      var semver = require('semver');
+
+      if (semver.valid('1.2.3')) {
+        console.log('success')
+      } else {
+        console.log('fail')
+      }
+    '';
+
+    perl = writePerlBin "test_writers" { libraries = [ perlPackages.boolean ]; } ''
+      use boolean;
+      print "success\n" if true;
+    '';
+
+    python2 = writePython2Bin "test_writers" { libraries = [ python2Packages.enum ]; } ''
+      from enum import Enum
+
+      class Test(Enum):
+          a = "success"
+
+      print Test.a
+    '';
+
+    python3 = writePython3Bin "test_writers" { libraries = [ python3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
+  };
+
+  simple = {
+    bash = writeBash "test_bash" ''
+     if [[ "test" == "test" ]]; then echo "success"; fi
+    '';
+
+    c = writeC "test_c" { libraries = [ ]; } ''
+      #include <stdio.h>
+      int main() {
+        printf("success\n");
+        return 0;
+      }
+    '';
+
+    dash = writeDash "test_dash" ''
+     test '~' = '~' && echo 'success'
+    '';
+
+    haskell = writeHaskell "test_haskell" { libraries = [ haskellPackages.acme-default ]; } ''
+      import Data.Default
+
+      int :: Int
+      int = def
+
+      main :: IO ()
+      main = case int of
+        18871 -> putStrLn $ id "success"
+        _ -> print "fail"
+    '';
+
+    js = writeJS "test_js" { libraries = [ nodePackages.semver ]; } ''
+      var semver = require('semver');
+
+      if (semver.valid('1.2.3')) {
+        console.log('success')
+      } else {
+        console.log('fail')
+      }
+    '';
+
+    perl = writePerl "test_perl" { libraries = [ perlPackages.boolean ]; } ''
+      use boolean;
+      print "success\n" if true;
+    '';
+
+    python2 = writePython2 "test_python2" { libraries = [ python2Packages.enum ]; } ''
+      from enum import Enum
+
+      class Test(Enum):
+          a = "success"
+
+      print Test.a
+    '';
+
+    python3 = writePython3 "test_python3" { libraries = [ python3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
+  };
+
+  writeTest = expectedValue: test:
+    writeDash "test-writers" ''
+      if test "$(${test})" != "${expectedValue}"; then
+        echo 'test ${test} failed'
+        exit 1
+      fi
+    '';
+
+in runCommand "test-writers" {
+  passthru = { inherit writeTest bin simple; };
+  meta.platforms = stdenv.lib.platforms.all;
+} ''
+  ${lib.concatMapStringsSep "\n" (test: writeTest "success" "${test}/bin/test_writers") (lib.attrValues bin)}
+  ${lib.concatMapStringsSep "\n" (test: writeTest "success" "${test}") (lib.attrValues simple)}
+
+  echo 'nix-writers successfully tested' >&2
+  touch $out
+''
+
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index 9d9c874319cb..1e3e98cba732 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     patchShebangs build
   '';
 
-  doCheck = true;
+  doCheck = !stdenv.isi686; # https://github.com/NixOS/nixpkgs/issues/51121
   # In 3.20.1, tests do not support Python 3
   checkInputs = [ dbus python2 ];
 
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 5f56dc3a9b69..50901b7d1dac 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -33,7 +33,7 @@ self: super: {
   unbuildable = throw "package depends on meta package 'unbuildable'";
 
   # Use the latest version of the Cabal library.
-  cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_2_4_0_1; });
+  cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_2_4_1_0; });
 
   # The test suite depends on old versions of tasty and QuickCheck.
   hackage-security = dontCheck super.hackage-security;
@@ -1185,4 +1185,7 @@ self: super: {
   # });
   libnix = dontCheck super.libnix;
 
+  # https://github.com/jmillikin/chell/issues/1
+  chell = super.chell.override { patience = self.patience_0_1_1; };
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
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 226b437d58b1..83cb831345c1 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
@@ -62,10 +62,10 @@ self: super: {
   # that have it as an actual library dependency. The explicit overrides are
   # more verbose but friendlier for Hydra.
   stack = (doJailbreak super.stack).override {
-    Cabal = self.Cabal_2_4_0_1;
-    hpack = self.hpack_0_31_1.override { Cabal = self.Cabal_2_4_0_1; };
+    Cabal = self.Cabal_2_4_1_0;
+    hpack = self.hpack_0_31_1.override { Cabal = self.Cabal_2_4_1_0; };
     yaml = self.yaml_0_11_0_0;
-    hackage-security = self.hackage-security.override { Cabal = self.Cabal_2_4_0_1; };
+    hackage-security = self.hackage-security.override { Cabal = self.Cabal_2_4_1_0; };
   };
   hpack_0_31_1 = super.hpack_0_31_1.override {
     yaml = self.yaml_0_11_0_0;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index 79cd85a7a9d6..d61915c5abde 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -46,10 +46,11 @@ self: super: {
 
   # LTS-12.x versions do not compile.
   base-orphans = self.base-orphans_0_8;
-  brick = self.brick_0_41_4;
+  brick = self.brick_0_41_5;
   cassava-megaparsec = doJailbreak super.cassava-megaparsec;
   config-ini = doJailbreak super.config-ini;   # https://github.com/aisamanra/config-ini/issues/18
   contravariant = self.contravariant_1_5;
+  fgl = self.fgl_5_7_0_1;
   free = self.free_5_1;
   haddock-library = dontCheck super.haddock-library_1_7_0;
   HaTeX = doJailbreak super.HaTeX;
@@ -67,6 +68,9 @@ self: super: {
   JuicyPixels = self.JuicyPixels_3_3_2;
   lens = self.lens_4_17;
   megaparsec = dontCheck (doJailbreak super.megaparsec);
+  pandoc = self.pandoc_2_5;
+  pandoc-citeproc = self.pandoc-citeproc_0_15;
+  pandoc-citeproc_0_15 = doJailbreak super.pandoc-citeproc_0_15;
   patience = markBrokenVersion "0.1.1" super.patience;
   polyparse = self.polyparse_1_12_1;
   primitive = self.primitive_0_6_4_0;
@@ -81,10 +85,6 @@ self: super: {
   # https://github.com/tibbe/unordered-containers/issues/214
   unordered-containers = dontCheck super.unordered-containers;
 
-  # https://github.com/haskell/fgl/issues/79
-  # https://github.com/haskell/fgl/issues/81
-  fgl = appendPatch (overrideCabal super.fgl (drv: { editedCabalFile = null; })) ./patches/fgl-monad-fail.patch;
-
   # Test suite does not compile.
   cereal = dontCheck super.cereal;
   data-clist = doJailbreak super.data-clist;  # won't cope with QuickCheck 2.12.x
@@ -99,9 +99,6 @@ self: super: {
   # https://github.com/jgm/skylighting/issues/55
   skylighting-core = dontCheck super.skylighting-core;
 
-  # https://github.com/jgm/pandoc/issues/4974
-  pandoc = doJailbreak super.pandoc_2_4;
-
   # Break out of "yaml >=0.10.4.0 && <0.11".
   stack = doJailbreak super.stack;
 
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 8ac91d65973f..82ecd05b266c 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -45,7 +45,7 @@ default-package-overrides:
   - base-compat-batteries ==0.10.1
   # Newer versions don't work in LTS-12.x
   - cassava-megaparsec < 2
-  # LTS Haskell 12.19
+  # LTS Haskell 12.20
   - abstract-deque ==0.3
   - abstract-deque-tests ==0.3
   - abstract-par ==0.3.3
@@ -56,7 +56,7 @@ default-package-overrides:
   - ad ==4.3.5
   - adjunctions ==4.4
   - adler32 ==0.1.2.0
-  - aern2-mp ==0.1.2.0
+  - aern2-mp ==0.1.3.1
   - aern2-real ==0.1.1.0
   - aeson ==1.3.1.1
   - aeson-attoparsec ==0.0.0
@@ -419,7 +419,7 @@ default-package-overrides:
   - colour ==2.3.4
   - combinatorial ==0.1.0.1
   - comfort-graph ==0.0.3.1
-  - commutative ==0.0.1.4
+  - commutative ==0.0.2
   - comonad ==5.0.4
   - compactmap ==0.1.4.2.1
   - compensated ==0.7.2
@@ -435,7 +435,7 @@ default-package-overrides:
   - concise ==0.1.0.1
   - concurrency ==1.6.1.0
   - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.7
+  - concurrent-output ==1.10.9
   - concurrent-split ==0.0.1.1
   - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
@@ -476,6 +476,7 @@ default-package-overrides:
   - cpuinfo ==0.1.0.1
   - cql ==4.0.1
   - cql-io ==1.0.1.1
+  - crackNum ==2.3
   - credential-store ==0.1.2
   - criterion ==1.4.1.0
   - criterion-measurement ==0.1.1.0
@@ -486,7 +487,7 @@ default-package-overrides:
   - crypto-cipher-tests ==0.0.11
   - crypto-cipher-types ==0.0.9
   - cryptocompare ==0.1.1
-  - crypto-enigma ==0.0.2.14
+  - crypto-enigma ==0.0.3.1
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
   - cryptohash-md5 ==0.11.100.1
@@ -554,7 +555,7 @@ default-package-overrides:
   - data-textual ==0.3.0.2
   - data-tree-print ==0.1.0.2
   - dataurl ==0.1.0.0
-  - DAV ==1.3.2
+  - DAV ==1.3.3
   - dawg-ord ==0.5.1.0
   - dbcleaner ==0.1.3
   - dbus ==1.0.1
@@ -576,7 +577,7 @@ default-package-overrides:
   - dhall ==1.15.1
   - dhall-bash ==1.0.15
   - dhall-json ==1.2.3
-  - dhall-text ==1.0.13
+  - dhall-text ==1.0.14
   - di ==1.0.1
   - diagrams ==1.4
   - diagrams-builder ==0.8.0.3
@@ -650,7 +651,7 @@ default-package-overrides:
   - either ==5.0.1
   - either-unwrap ==1.1
   - ekg ==0.4.0.15
-  - ekg-core ==0.1.1.4
+  - ekg-core ==0.1.1.6
   - ekg-json ==0.1.0.6
   - ekg-statsd ==0.2.4.0
   - ekg-wai ==0.1.0.3
@@ -722,7 +723,7 @@ default-package-overrides:
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.6
   - fgl ==5.6.0.0
-  - filecache ==0.4.0
+  - filecache ==0.4.1
   - file-embed ==0.0.10.1
   - file-embed-lzma ==0
   - filelock ==0.1.1.2
@@ -747,6 +748,7 @@ default-package-overrides:
   - flat-mcmc ==1.5.0
   - flay ==0.4
   - flexible-defaults ==0.0.2
+  - FloatingHex ==0.4
   - floatshow ==0.2.4
   - flow ==1.0.17
   - fmlist ==0.9.2
@@ -878,7 +880,7 @@ default-package-overrides:
   - graph-wrapper ==0.2.5.1
   - gravatar ==0.8.0
   - graylog ==0.1.0.1
-  - greskell ==0.2.1.1
+  - greskell ==0.2.2.0
   - greskell-core ==0.1.2.4
   - greskell-websocket ==0.1.1.2
   - groom ==0.1.2.1
@@ -926,7 +928,7 @@ default-package-overrides:
   - haskell-src ==1.0.3.0
   - haskell-src-exts ==1.20.3
   - haskell-src-exts-simple ==1.20.0.0
-  - haskell-src-exts-util ==0.2.3
+  - haskell-src-exts-util ==0.2.4
   - haskell-src-meta ==0.8.0.3
   - haskell-tools-ast ==1.1.0.2
   - haskell-tools-backend-ghc ==1.1.0.2
@@ -958,7 +960,7 @@ default-package-overrides:
   - hebrew-time ==0.1.1
   - hedgehog ==0.6.1
   - hedgehog-corpus ==0.1.0
-  - hedis ==0.10.4
+  - hedis ==0.10.8
   - here ==1.2.13
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.2
@@ -968,6 +970,7 @@ default-package-overrides:
   - hexpat ==0.20.13
   - hexstring ==0.11.1
   - hfsevents ==0.1.6
+  - hgmp ==0.1.1
   - hidapi ==0.1.5
   - hidden-char ==0.1.0.2
   - hierarchical-clustering ==0.4.6
@@ -1002,7 +1005,8 @@ default-package-overrides:
   - HPDF ==1.4.10
   - hpqtypes ==1.5.3.0
   - hprotoc ==2.4.11
-  - hquantlib ==0.0.4.0
+  - hquantlib ==0.0.5.0
+  - hquantlib-time ==0.0.4.1
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
   - hruby ==0.3.6
@@ -1012,8 +1016,8 @@ default-package-overrides:
   - hsdns ==1.7.1
   - hsebaysdk ==0.4.0.0
   - hsemail ==2
-  - hset ==2.2.0
   - HSet ==0.0.1
+  - hset ==2.2.0
   - hsexif ==0.6.1.6
   - hs-functors ==0.1.3.0
   - hs-GeoIP ==0.3
@@ -1048,7 +1052,7 @@ default-package-overrides:
   - HSvm ==0.1.0.3.22
   - hsx-jmacro ==7.3.8.1
   - hsyslog ==5.0.1
-  - hsyslog-udp ==0.2.3
+  - hsyslog-udp ==0.2.4
   - htaglib ==1.2.0
   - HTF ==0.13.2.5
   - html ==1.0.1.2
@@ -1060,7 +1064,7 @@ default-package-overrides:
   - HTTP ==4000.3.12
   - http2 ==1.6.4
   - http-api-data ==0.3.8.1
-  - http-client ==0.5.13.1
+  - http-client ==0.5.14
   - http-client-openssl ==0.2.2.0
   - http-client-tls ==0.3.5.3
   - http-common ==0.8.2.0
@@ -1079,7 +1083,7 @@ default-package-overrides:
   - hvect ==0.4.0.0
   - hvega ==0.1.0.3
   - hw-balancedparens ==0.2.0.2
-  - hw-bits ==0.7.0.3
+  - hw-bits ==0.7.0.4
   - hw-conduit ==0.2.0.5
   - hw-diagnostics ==0.0.0.5
   - hweblib ==0.6.3
@@ -1093,7 +1097,7 @@ default-package-overrides:
   - hw-mquery ==0.1.0.1
   - hworker ==0.1.0.1
   - hw-parser ==0.0.0.3
-  - hw-prim ==0.6.2.19
+  - hw-prim ==0.6.2.20
   - hw-rankselect ==0.10.0.3
   - hw-rankselect-base ==0.3.2.1
   - hw-string-parse ==0.0.0.4
@@ -1132,7 +1136,7 @@ default-package-overrides:
   - indents ==0.5.0.0
   - indexed-list-literals ==0.2.1.2
   - inflections ==0.4.0.3
-  - influxdb ==1.6.0.9
+  - influxdb ==1.6.1
   - ini ==0.3.6
   - inline-c ==0.6.1.0
   - inline-java ==0.8.4
@@ -1188,7 +1192,7 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json ==0.9.2
-  - json-feed ==1.0.4
+  - json-feed ==1.0.5
   - json-rpc-client ==0.2.5.0
   - json-rpc-generic ==0.2.1.5
   - json-rpc-server ==0.2.6.0
@@ -1215,7 +1219,7 @@ default-package-overrides:
   - kraken ==0.1.0
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==1.0.6
+  - lackey ==1.0.7
   - LambdaHack ==0.8.3.0
   - lame ==0.1.1
   - language-c ==0.8.2
@@ -1288,6 +1292,7 @@ default-package-overrides:
   - logging-facade-syslog ==1
   - logict ==0.6.0.2
   - log-postgres ==0.7.0.2
+  - long-double ==0.1
   - loop ==0.3.0
   - lrucache ==1.2.0.0
   - lrucaching ==0.3.3
@@ -1311,7 +1316,7 @@ default-package-overrides:
   - markdown-unlit ==0.5.0
   - markov-chain ==0.0.3.4
   - marvin-interpolate ==1.1.2
-  - massiv ==0.2.3.0
+  - massiv ==0.2.4.0
   - massiv-io ==0.1.4.0
   - mathexpr ==0.3.0.0
   - math-functions ==0.2.1.0
@@ -1423,7 +1428,7 @@ default-package-overrides:
   - mwc-probability ==2.0.4
   - mwc-probability-transition ==0.4
   - mwc-random ==0.13.6.0
-  - mysql ==0.1.5
+  - mysql ==0.1.6
   - mysql-haskell ==0.8.3.0
   - mysql-haskell-nem ==0.1.0.0
   - mysql-haskell-openssl ==0.8.3.0
@@ -1577,9 +1582,9 @@ default-package-overrides:
   - pgp-wordlist ==0.1.0.2
   - pg-transact ==0.1.0.1
   - phantom-state ==0.2.1.2
-  - picosat ==0.1.4
+  - picosat ==0.1.5
   - pid1 ==0.1.2.0
-  - pinboard ==0.9.12.10
+  - pinboard ==0.9.12.11
   - pipes ==4.3.9
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
@@ -1613,11 +1618,11 @@ default-package-overrides:
   - polyparse ==1.12
   - pooled-io ==0.0.2.2
   - portable-lines ==0.1
-  - postgresql-binary ==0.12.1.1
+  - postgresql-binary ==0.12.1.2
   - postgresql-libpq ==0.9.4.2
   - postgresql-schema ==0.1.14
   - postgresql-simple ==0.5.4.0
-  - postgresql-simple-migration ==0.1.12.0
+  - postgresql-simple-migration ==0.1.13.0
   - postgresql-simple-queue ==1.0.1
   - postgresql-simple-url ==0.2.1.0
   - postgresql-transactional ==1.1.1
@@ -1678,7 +1683,7 @@ default-package-overrides:
   - pure-zlib ==0.6.4
   - pushbullet-types ==0.4.1.0
   - qm-interpolated-string ==0.3.0.0
-  - qnap-decrypt ==0.3.2
+  - qnap-decrypt ==0.3.3
   - QuasiText ==0.1.2.6
   - quickbench ==1.0
   - QuickCheck ==2.11.3
@@ -1706,7 +1711,7 @@ default-package-overrides:
   - rank2classes ==1.1.0.1
   - Rasterific ==0.7.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.6
+  - ratel ==1.0.7
   - ratel-wai ==1.0.4
   - ratio-int ==0.1.2
   - rattletrap ==4.1.2
@@ -1771,7 +1776,9 @@ default-package-overrides:
   - rio-orphans ==0.1.1.0
   - rng-utils ==0.3.0
   - roles ==0.2.0.0
+  - rosezipper ==0.2
   - rot13 ==0.2.0.1
+  - rounded ==0.1.0.1
   - RSA ==2.3.0
   - rss-conduit ==0.4.2.2
   - runmemo ==1.0.0.1
@@ -1794,6 +1801,7 @@ default-package-overrides:
   - sandman ==0.2.0.1
   - say ==0.1.0.1
   - sbp ==2.3.17
+  - sbv ==7.12
   - SCalendar ==1.1.0
   - scalendar ==1.2.0
   - scalpel ==0.5.1
@@ -1867,7 +1875,7 @@ default-package-overrides:
   - sexp-grammar ==2.0.1
   - SHA ==1.6.4.4
   - shake-language-c ==0.12.0
-  - shakespeare ==2.0.19
+  - shakespeare ==2.0.20
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
   - shelltestrunner ==1.9
@@ -2147,8 +2155,8 @@ default-package-overrides:
   - type-operators ==0.1.0.4
   - type-spec ==0.3.0.1
   - typography-geometry ==1.0.0.1
-  - tz ==0.1.3.1
-  - tzdata ==0.1.20180501.0
+  - tz ==0.1.3.2
+  - tzdata ==0.1.20181026.0
   - uglymemo ==0.1.0.1
   - unbounded-delays ==0.1.1.0
   - unbound-generics ==0.3.4
@@ -2347,7 +2355,7 @@ default-package-overrides:
   - yesod-alerts ==0.1.2.0
   - yesod-auth ==1.6.5
   - yesod-auth-fb ==1.9.1
-  - yesod-auth-hashdb ==1.7
+  - yesod-auth-hashdb ==1.7.1
   - yesod-bin ==1.6.0.3
   - yesod-core ==1.6.8.1
   - yesod-csp ==0.2.4.0
@@ -2455,6 +2463,7 @@ extra-packages:
   - yesod-persistent < 1.5              # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-static ^>= 1.5                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-test ^>= 1.5                  # pre-lts-11.x versions neeed by git-annex 6.20180227
+  - patience ^>= 0.1                    # required by chell-0.4.x
 
 package-maintainers:
   peti:
@@ -3008,6 +3017,7 @@ dont-distribute-packages:
   azure-servicebus:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   azurify:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   b-tree:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  b9:                                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   babylon:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   backdropper:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   backtracking-exceptions:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3070,6 +3080,7 @@ dont-distribute-packages:
   bench-show:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   BenchmarkHistory:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   benchpress:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bencodex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bencoding:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   berkeleydb:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   BerkeleyDBXML:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3492,6 +3503,7 @@ dont-distribute-packages:
   chuchu:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   chunks:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   chunky:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  church:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cielo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cil:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   cinvoke:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3582,6 +3594,7 @@ dont-distribute-packages:
   CMQ:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   cmv:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   cnc-spec-compiler:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  co-log-sys:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   co-log:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   Coadjute:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   coalpit:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3784,6 +3797,7 @@ dont-distribute-packages:
   cplusplus-th:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   cprng-aes-effect:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   cpuperf:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cpython:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cql-io:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   cqrs-core:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cqrs-example:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4146,6 +4160,9 @@ dont-distribute-packages:
   doctest-discover-configurator:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   doctest-driver-gen:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   DocTest:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  docusign-base:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  docusign-client:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  docusign-example:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   docvim:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   doi:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   DOM:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4253,6 +4270,7 @@ dont-distribute-packages:
   effects:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   effin:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   egison-quote:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  egison-tutorial:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ehaskell:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ehs:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   eibd-client-simple:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4408,6 +4426,7 @@ dont-distribute-packages:
   extemp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   extended-categories:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   extensible-data:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  extensible-effects-concurrent:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Extra:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   extract-dependencies:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   extractelf:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4561,6 +4580,7 @@ dont-distribute-packages:
   flower:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   flowlocks-framework:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   flowsim:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fltkhs-fluid-examples:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fluent-logger-conduit:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fluent-logger:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   fluidsynth:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4679,6 +4699,7 @@ dont-distribute-packages:
   functor-infix:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   functor:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   functorm:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  funflow-nix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   funflow:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Fungi:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   funion:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4735,6 +4756,7 @@ dont-distribute-packages:
   generic-accessors:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-binary:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-church:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  generic-data-surgery:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-data:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-enum:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-lens-labels:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4760,6 +4782,7 @@ dont-distribute-packages:
   GenSmsPdu:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   gentlemark:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   GenussFold:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  genvalidity-hspec-optics:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   geo-resolver:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   GeocoderOpenCage:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   geodetic:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4882,6 +4905,7 @@ dont-distribute-packages:
   gloss-banana:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gloss-devil:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gloss-examples:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gloss-export:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gloss-game:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   gloss-juicy:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gloss-sodium:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5134,6 +5158,7 @@ dont-distribute-packages:
   grpc-etcd-client:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   gruff-examples:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   gruff:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gscholar-rss:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gsl-random-fu:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   gsl-random:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   gstorable:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5400,6 +5425,8 @@ dont-distribute-packages:
   haskell-tools-ast-fromghc:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-tools-ast-gen:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-tools-ast-trf:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskell-tools-cli:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskell-tools-daemon:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-tor:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-type-exts:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-typescript:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5471,6 +5498,7 @@ dont-distribute-packages:
   hasktorch:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskus-binary:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskus-system-build:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskus-utils-variant:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskus-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   haslo:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasloGUI:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6258,6 +6286,7 @@ dont-distribute-packages:
   imperative-edsl-vhdl:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   imperative-edsl:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ImperativeHaskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  impl:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   implicit-logging:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   implicit-params:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   importify:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6380,6 +6409,7 @@ dont-distribute-packages:
   JackMiniMix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   jackminimix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   jacobi-roots:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  jaeger-flamegraph:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   jail:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   jalaali:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   jalla:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6566,6 +6596,7 @@ dont-distribute-packages:
   lambda2js:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdaBase:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdabot-utils:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambdabot-zulip:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacms-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacms-media:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacube-bullet:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7228,6 +7259,7 @@ dont-distribute-packages:
   multipass:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   multipath:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   multiplate-simplified:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  multipool-persistent-postgresql:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   multirec-alt-deriver:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   multirec-binary:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   multirec:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7296,6 +7328,7 @@ dont-distribute-packages:
   nanomsg:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanoparsec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   NanoProlog:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nanovg-simple:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanovg:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanq:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   Naperian:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7454,6 +7487,7 @@ dont-distribute-packages:
   nymphaea:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   o-clock:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   oanda-rest-api:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  oauth2-jwt-bearer:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   oauthenticated:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   obd:                                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   obdd:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7501,6 +7535,7 @@ dont-distribute-packages:
   open-typerep:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenAFP-Utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenAFP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  openapi-petstore:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   opench-meteo:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenCL:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenCLRaw:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7744,6 +7779,7 @@ dont-distribute-packages:
   picoparsec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   picosat:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pictikz:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pier-core:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pier:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   piet:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   pinchot:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7818,6 +7854,7 @@ dont-distribute-packages:
   pointless-lenses:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   pointless-rewrite:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pokemon-go-protobuf-types:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  poker-eval:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pokitdok:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   polar-configfile:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   polar-shader:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8571,6 +8608,7 @@ dont-distribute-packages:
   servant-auth-token:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-checked-exceptions:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-conduit:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-csharp:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-db-postgresql:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-db:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8584,8 +8622,11 @@ dont-distribute-packages:
   servant-iCalendar:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-jquery:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-js:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-machines:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-matrix-param:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-multipart:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-nix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-pipes:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-pool:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-postgresql:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-proto-lens:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8646,6 +8687,7 @@ dont-distribute-packages:
   shake-extras:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   shake-minify:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   shake-pack:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  shake-path:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   shake-persist:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   shaker:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   shakespeare-babel:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9099,6 +9141,7 @@ dont-distribute-packages:
   supermonad:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   supero:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   supervisor:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  supervisors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   supplemented:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   surjective:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   sv-cassava:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9276,6 +9319,7 @@ dont-distribute-packages:
   texbuilder:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-all:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-and-plots:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  text-ansi:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-builder:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-containers:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-format-heavy:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9793,6 +9837,7 @@ dont-distribute-packages:
   wai-request-spec:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-responsible:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-router:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  wai-routing:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-secure-cookies:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-session-alt:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-session-mysql:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index d72e84922e8c..c6e9204372bf 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -763,6 +763,7 @@ self: {
        '';
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ abbradar ];
      }) {inherit (pkgs) emacs;};
 
@@ -2013,6 +2014,7 @@ self: {
        libraryHaskellDepends = [ base mtl ];
        description = "Delimited continuations and dynamically scoped variables";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "CC-delcont-alt" = callPackage
@@ -2477,7 +2479,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "Cabal_2_4_0_1" = callPackage
+  "Cabal_2_4_1_0" = callPackage
     ({ mkDerivation, array, base, base-compat, base-orphans, binary
      , bytestring, containers, deepseq, Diff, directory, filepath
      , integer-logarithms, mtl, optparse-applicative, parsec, pretty
@@ -2487,8 +2489,10 @@ self: {
      }:
      mkDerivation {
        pname = "Cabal";
-       version = "2.4.0.1";
-       sha256 = "161l9lgayzpb3wrp9bcp8k0a3rq5dpyiyrxjb87dhximi2mc16rv";
+       version = "2.4.1.0";
+       sha256 = "151mrrd9sskghvlwmj32da5gafwqj6sv9xz9fmp84b7vm4nr0skk";
+       revision = "1";
+       editedCabalFile = "1dvs2i0kfk8rji9wbrv7y0iydbif9jzg4c7rmaa6lxg8hp7mij2n";
        setupHaskellDepends = [ mtl parsec ];
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -3428,6 +3432,7 @@ self: {
        ];
        description = "Collects together existing Haskell cryptographic functions into a package";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "CurryDB" = callPackage
@@ -3495,35 +3500,6 @@ self: {
      }:
      mkDerivation {
        pname = "DAV";
-       version = "1.3.2";
-       sha256 = "0sai0b7bxwif5czmmdik5dx318drx18inid87wfrxckrflsi8cv1";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring case-insensitive containers data-default exceptions
-         http-client http-client-tls http-types lens mtl transformers
-         transformers-base transformers-compat utf8-string xml-conduit
-         xml-hamlet
-       ];
-       executableHaskellDepends = [
-         base bytestring case-insensitive containers data-default exceptions
-         haskeline http-client http-client-tls http-types lens mtl network
-         network-uri optparse-applicative transformers transformers-base
-         transformers-compat utf8-string xml-conduit xml-hamlet
-       ];
-       description = "RFC 4918 WebDAV support";
-       license = stdenv.lib.licenses.gpl3;
-     }) {};
-
-  "DAV_1_3_3" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , data-default, exceptions, haskeline, http-client, http-client-tls
-     , http-types, lens, mtl, network, network-uri, optparse-applicative
-     , transformers, transformers-base, transformers-compat, utf8-string
-     , xml-conduit, xml-hamlet
-     }:
-     mkDerivation {
-       pname = "DAV";
        version = "1.3.3";
        sha256 = "149rdrbjx59a2rbx2r6fzhmyl3f35a2gbh4sarbpffv0pmirrx14";
        isLibrary = true;
@@ -3542,7 +3518,6 @@ self: {
        ];
        description = "RFC 4918 WebDAV support";
        license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "DBFunctor" = callPackage
@@ -6190,8 +6165,8 @@ self: {
      }:
      mkDerivation {
        pname = "GLUtil";
-       version = "0.10.2";
-       sha256 = "05x733nk3dbla4y6p7b1nx4pv3b0wm6idhsm7p30z2f968k3hyv9";
+       version = "0.10.3";
+       sha256 = "09zcb0ijm20nmynqsl585nhn1qaldkp3c8v3y28gn2cj606m8cqr";
        libraryHaskellDepends = [
          array base bytestring containers directory filepath hpp JuicyPixels
          linear OpenGL OpenGLRaw transformers vector
@@ -7242,8 +7217,8 @@ self: {
     ({ mkDerivation, base, containers, mtl, QuickCheck, random }:
      mkDerivation {
        pname = "HCL";
-       version = "1.4";
-       sha256 = "0dzfnvdc1nm4f7q759xnq1lavi90axc7b6jd39sl898jbjg8wrrl";
+       version = "1.5.1";
+       sha256 = "1l9ychhml91zvr6zdrzyd8pvlbycyrdjvn95vgdyal0p5r7b3plf";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -9592,6 +9567,7 @@ self: {
        ];
        description = "A Haskell binding for Chipmunk";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "Hipmunk-Utils" = callPackage
@@ -10412,6 +10388,7 @@ self: {
        ];
        description = "Multiline strings, interpolation and templating";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "Interpolation-maxs" = callPackage
@@ -10423,6 +10400,7 @@ self: {
        libraryHaskellDepends = [ base syb template-haskell ];
        description = "Multiline strings, interpolation and templating";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "IntervalMap" = callPackage
@@ -10750,6 +10728,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "JuicyPixels-blp_0_1_1_0" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring, directory
+     , filepath, hashable, JuicyPixels, optparse-simple, text-show
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "JuicyPixels-blp";
+       version = "0.1.1.0";
+       sha256 = "0vccx98n9bjnz2clpww4gqns7mc2cmzgpzmj2mx6mwhgb12rwbvx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring hashable JuicyPixels text-show
+         vector
+       ];
+       executableHaskellDepends = [
+         base bytestring directory filepath JuicyPixels optparse-simple
+         text-show unordered-containers
+       ];
+       description = "BLP format decoder/encoder over JuicyPixels library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "JuicyPixels-canvas" = callPackage
     ({ mkDerivation, base, containers, JuicyPixels }:
      mkDerivation {
@@ -13145,6 +13147,7 @@ self: {
        ];
        description = "High-level abstraction over 9P protocol";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "NewBinary" = callPackage
@@ -16854,6 +16857,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Prototypical type checker for Type Theory with Sized Natural Numbers";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "SizeCompare" = callPackage
@@ -17444,7 +17448,7 @@ self: {
        version = "4.0.0.0";
        sha256 = "1sskndywpm1gi4bs4i1gah73jk49inlscg4jzcqhq0phb8f886xk";
        libraryHaskellDepends = [ base mtl ];
-       license = stdenv.lib.licenses.unfree;
+       license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
@@ -18671,6 +18675,7 @@ self: {
        testToolDepends = [ c2hs ];
        description = "ViennaRNA v2 bindings";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ViennaRNA-extras" = callPackage
@@ -19045,8 +19050,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.8.1.0";
-       sha256 = "0953ql8gblkbjqc652bd96nrn1m5i00j2p82h4q6l92j4h8dimpv";
+       version = "2.8.2.0";
+       sha256 = "1yi1mynxdy05hmq5hzqr9vyjgbr2k0dqjpma0mlk2vqli3nhvw5m";
        description = "A binding to Windows Win32 API";
        license = stdenv.lib.licenses.bsd3;
        platforms = stdenv.lib.platforms.none;
@@ -21114,6 +21119,7 @@ self: {
        libraryHaskellDepends = [ acme-dont base ];
        description = "Safe versions of some infamous haskell functions such as fromJust";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "acme-schoenfinkel" = callPackage
@@ -21589,26 +21595,6 @@ self: {
      }) {};
 
   "aern2-mp" = callPackage
-    ({ mkDerivation, base, convertible, hmpfr, hspec, integer-gmp
-     , integer-logarithms, lens, mixed-types-num, QuickCheck, regex-tdfa
-     , template-haskell
-     }:
-     mkDerivation {
-       pname = "aern2-mp";
-       version = "0.1.2.0";
-       sha256 = "131wymnajhji593zydnyddyc6cwg0y3nqgvibq8l9h23v4m67rlx";
-       revision = "1";
-       editedCabalFile = "09b92kf60m4v0xn2nm9h8wkg8wr7dc1na5c9mg2lk3kplf60sfvk";
-       libraryHaskellDepends = [
-         base convertible hmpfr hspec integer-gmp integer-logarithms lens
-         mixed-types-num QuickCheck regex-tdfa template-haskell
-       ];
-       testHaskellDepends = [ base hspec QuickCheck ];
-       description = "Multi-precision floats via MPFR";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "aern2-mp_0_1_3_1" = callPackage
     ({ mkDerivation, base, convertible, hspec, integer-logarithms, lens
      , mixed-types-num, QuickCheck, regex-tdfa, rounded
      , template-haskell
@@ -21624,7 +21610,6 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Multi-precision ball (interval) arithmetic";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aern2-real" = callPackage
@@ -27151,8 +27136,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-athena";
-       version = "6.1.3";
-       sha256 = "00n1yj3qjlcbqjb1288h74nmlhk2851mmpkrlni48ja6hy3pnacc";
+       version = "6.1.5";
+       sha256 = "0p78yxdnfzz6jw7az6xfh6sjcnf9d8sl512cmhdcws78p7f2rhlx";
        libraryHaskellDepends = [
          amazonka amazonka-athena amazonka-core base lens resourcet text
          unliftio-core
@@ -27168,8 +27153,8 @@ self: {
     ({ mkDerivation, aeson, antiope-s3, avro, base, bytestring, text }:
      mkDerivation {
        pname = "antiope-contract";
-       version = "6.1.3";
-       sha256 = "0jazg8jh0wcv5gzz2sxhb5z3s50fz6x83siih9xs456kzsickh9a";
+       version = "6.1.5";
+       sha256 = "1ikd0sn3z901hyad55ngzs99b0v9bs5vkry5965w22smljdg3rqh";
        libraryHaskellDepends = [
          aeson antiope-s3 avro base bytestring text
        ];
@@ -27179,20 +27164,22 @@ self: {
 
   "antiope-core" = callPackage
     ({ mkDerivation, amazonka, amazonka-core, base, bytestring
-     , generic-lens, http-client, lens, monad-logger, mtl, resourcet
-     , transformers, unliftio-core
+     , exceptions, generic-lens, http-client, http-types, lens
+     , monad-logger, mtl, resourcet, text, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "antiope-core";
-       version = "6.1.3";
-       sha256 = "1qnbha6n0ax9gffa14dwgdklc8ilnxnccs60cfjfw8wjjfqm1wdc";
+       version = "6.1.5";
+       sha256 = "06c8wd4gjlrz1sdk7qpd1l8n29a3jkipy749j3414x7b5fqxbzi7";
        libraryHaskellDepends = [
-         amazonka amazonka-core base bytestring generic-lens http-client
-         lens monad-logger mtl resourcet transformers unliftio-core
+         amazonka amazonka-core base bytestring exceptions generic-lens
+         http-client http-types lens monad-logger mtl resourcet text
+         transformers unliftio-core
        ];
        testHaskellDepends = [
-         amazonka amazonka-core base bytestring generic-lens http-client
-         lens monad-logger mtl resourcet transformers unliftio-core
+         amazonka amazonka-core base bytestring exceptions generic-lens
+         http-client http-types lens monad-logger mtl resourcet text
+         transformers unliftio-core
        ];
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -27205,8 +27192,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-dynamodb";
-       version = "6.1.3";
-       sha256 = "0l8arxlxy9bb5gqfn7jp4gcfzr3c2ncbcchk635g58ac0chzgaw4";
+       version = "6.1.5";
+       sha256 = "181ygxvf29acianvnryv1kbn5g69axkagqa54429ja8jfxiblrqq";
        libraryHaskellDepends = [
          amazonka amazonka-core amazonka-dynamodb antiope-core base
          generic-lens lens text unliftio-core unordered-containers
@@ -27226,8 +27213,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-messages";
-       version = "6.1.3";
-       sha256 = "0bk98ziv0ivwhbwd99pw54pf2788cva9bnqvv871wzxhqgd2vhx8";
+       version = "6.1.5";
+       sha256 = "09ysy9r38d216vzq0nm1zfl4fqz8mrqa39c2ivy7pqm4xldsqary";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-s3 amazonka-sqs antiope-s3
          base generic-lens lens lens-aeson monad-loops network-uri text
@@ -27251,8 +27238,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-s3";
-       version = "6.1.3";
-       sha256 = "167yc57r53yzfvyiz4z8kha820xfpwfa3mcb4kndlb650qa016ax";
+       version = "6.1.5";
+       sha256 = "0b2mildkgd271c8hwg6b3jf8xgli5bmd4dx9c0ac8ihyn28xr0m8";
        libraryHaskellDepends = [
          amazonka amazonka-core amazonka-s3 antiope-core attoparsec base
          bytestring conduit conduit-extra exceptions generic-lens http-types
@@ -27274,8 +27261,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sns";
-       version = "6.1.3";
-       sha256 = "1knxyvzr566qwaa6167w64v8rlnr89350cca46vcs50rcr7hdjpj";
+       version = "6.1.5";
+       sha256 = "07kg0b0iyik0axnycph3irp73cv614qcny3z3rib1rpvbknz9iwh";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-sns base generic-lens lens
          text unliftio-core
@@ -27295,8 +27282,8 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sqs";
-       version = "6.1.3";
-       sha256 = "0xzcmjaniqprs2qachjiqzm4cxhgw4l6w7vg7sfp0b0l3m4kz4hh";
+       version = "6.1.5";
+       sha256 = "097vxkz54k4ijqqzb8lijr90hvnyyhqm7sqn5qxam3wy355w3z5c";
        libraryHaskellDepends = [
          aeson amazonka amazonka-core amazonka-s3 amazonka-sqs
          antiope-messages antiope-s3 base generic-lens lens lens-aeson
@@ -27351,6 +27338,30 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "antlr-haskell" = callPackage
+    ({ mkDerivation, base, call-stack, containers, deepseq, hashable
+     , haskell-src-meta, HUnit, mtl, QuickCheck, template-haskell
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, th-lift, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "antlr-haskell";
+       version = "0.1.0.0";
+       sha256 = "057mr0vw299hjjxlcpmwpbpwn6snzdvr73gmwxhh1gqgbh9g4bx4";
+       libraryHaskellDepends = [
+         base containers deepseq hashable haskell-src-meta mtl
+         template-haskell text th-lift transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base call-stack containers deepseq hashable haskell-src-meta HUnit
+         mtl QuickCheck template-haskell test-framework test-framework-hunit
+         test-framework-quickcheck2 text th-lift transformers
+         unordered-containers
+       ];
+       description = "A Haskell implementation of the ANTLR top-down parser generator";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "antlrc" = callPackage
     ({ mkDerivation, antlr3c, base, bytestring, c2hs, enumerator
      , haskell98, regex-posix
@@ -29221,7 +29232,7 @@ self: {
        editedCabalFile = "09hmx0x4fz80kby7w1n9rc7sibbmpsvl4i3rc3h91hs53ban4yd4";
        libraryHaskellDepends = [ aeson base bytestring containers text ];
        description = "Basic types and instances for Valve's Artifact Card-set API";
-       license = stdenv.lib.licenses.agpl3;
+       license = stdenv.lib.licenses.agpl3Plus;
      }) {};
 
   "arx" = callPackage
@@ -31633,27 +31644,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "avro_0_4_0_0" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, binary
-     , bytestring, containers, data-binary-ieee754, directory, entropy
-     , extra, fail, hashable, hspec, lens, lens-aeson, mtl, pure-zlib
-     , QuickCheck, scientific, semigroups, tagged, template-haskell
-     , text, transformers, unordered-containers, vector
+  "avro_0_4_1_0" = callPackage
+    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
+     , binary, bytestring, containers, data-binary-ieee754, directory
+     , entropy, extra, fail, hashable, hspec, lens, lens-aeson, mtl
+     , pure-zlib, QuickCheck, scientific, semigroups, tagged
+     , template-haskell, text, transformers, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "avro";
-       version = "0.4.0.0";
-       sha256 = "1cly3x4lmibcjm5sz68s2fncakpx2cfvyimv4ck1mm5v94yfp8pi";
+       version = "0.4.1.0";
+       sha256 = "0dndnk8wk1ir59m19qsb3jrza8xy2w3w3fqv52hyqz1w5ca906n6";
        libraryHaskellDepends = [
-         aeson array base base16-bytestring binary bytestring containers
-         data-binary-ieee754 entropy fail hashable mtl pure-zlib scientific
-         semigroups tagged template-haskell text unordered-containers vector
+         aeson array base base16-bytestring bifunctors binary bytestring
+         containers data-binary-ieee754 entropy fail hashable mtl pure-zlib
+         scientific semigroups tagged template-haskell text
+         unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson array base base16-bytestring binary bytestring containers
-         directory entropy extra fail hashable hspec lens lens-aeson mtl
-         pure-zlib QuickCheck scientific semigroups tagged template-haskell
-         text transformers unordered-containers vector
+         aeson array base base16-bytestring bifunctors binary bytestring
+         containers directory entropy extra fail hashable hspec lens
+         lens-aeson mtl pure-zlib QuickCheck scientific semigroups tagged
+         template-haskell text transformers unordered-containers vector
        ];
        description = "Avro serialization support for Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -32614,6 +32627,7 @@ self: {
        ];
        description = "A tool and library for building virtual machine images";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "babl" = callPackage
@@ -32747,6 +32761,7 @@ self: {
        executableHaskellDepends = [ base gd X11 ];
        description = "braindead utility to compose Xinerama backgrounds";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bag" = callPackage
@@ -33418,6 +33433,7 @@ self: {
        ];
        description = "Parsing and serialization for Base58 addresses (Bitcoin and Ripple)";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base58string" = callPackage
@@ -33501,6 +33517,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Base64 implementation for String's";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base91" = callPackage
@@ -34450,7 +34467,8 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bencodex reader/writer for Haskell";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bencoding" = callPackage
@@ -34724,7 +34742,7 @@ self: {
          process protolude text time typed-process vector vty
        ];
        description = "Simple terminal GUI for local hoogle";
-       license = stdenv.lib.licenses.bsd3;
+       license = "(BSD-3-Clause OR Apache-2.0)";
      }) {};
 
   "bibdb" = callPackage
@@ -39421,7 +39439,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "brick_0_41_4" = callPackage
+  "brick_0_41_5" = callPackage
     ({ mkDerivation, base, config-ini, containers, contravariant
      , data-clist, deepseq, dlist, microlens, microlens-mtl
      , microlens-th, QuickCheck, stm, template-haskell, text
@@ -39429,8 +39447,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.41.4";
-       sha256 = "1mmdzirpqfwg03dng09i91nkzvv7765flj7xaw79grwwx6xchpnq";
+       version = "0.41.5";
+       sha256 = "0r7r44h81jpv2h9wqwkh9i5hmdkr296cvmvyha6qr89298npz1cb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -39872,6 +39890,8 @@ self: {
        pname = "bson";
        version = "0.3.2.6";
        sha256 = "106fdxzwpkp5vrnfsrjjwy8dn9rgmxrp79ji7xaxv8dgb9hw73bk";
+       revision = "1";
+       editedCabalFile = "0d9s7v330fckrxzdgmbdj7bapb1pgla8yf0mq5zhw27shxy5m3dx";
        libraryHaskellDepends = [
          base binary bytestring cryptohash data-binary-ieee754 mtl network
          text time
@@ -39931,6 +39951,7 @@ self: {
        ];
        description = "Mapping between BSON and algebraic data types";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bspack" = callPackage
@@ -40966,6 +40987,7 @@ self: {
        ];
        description = "A type-class to convert values from ByteString";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytestring-handle" = callPackage
@@ -41858,10 +41880,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-install";
-       version = "2.4.0.0";
-       sha256 = "1xmyl0x8wqfrnray6ky5wy0g0samv4264fbdlzxhqsvk9dbfja8k";
-       revision = "2";
-       editedCabalFile = "1xil5pim6j1ckqj61zz6l7xpfxxr3rkw2hvpws2f7pr9shk645dl";
+       version = "2.4.1.0";
+       sha256 = "1b91rcs00wr5mf55c6xl8hrxmymlq72w71qm5r0q4j869asv5g39";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath process ];
@@ -42387,8 +42407,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.11.1";
-       sha256 = "16ghy26lzf756197xdm8i3lg5qd8bgzjv80llbkpayibh55rkq72";
+       version = "2.12";
+       sha256 = "0zm85ax4wcdkcyljm2nq40j2yi514x44wr4k75r5qjpsrpsg473v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -42701,6 +42721,43 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "cachix_0_1_3" = callPackage
+    ({ mkDerivation, async, base, base16-bytestring, base64-bytestring
+     , bifunctors, bytestring, cachix-api, conduit, conduit-extra
+     , cookie, cryptonite, data-default, dhall, directory, ed25519
+     , filepath, fsnotify, here, hspec, hspec-discover, http-client
+     , http-client-tls, http-conduit, http-types, lzma-conduit
+     , megaparsec, memory, mmorph, optparse-applicative, process
+     , protolude, resourcet, retry, safe-exceptions, servant
+     , servant-auth, servant-auth-client, servant-client
+     , servant-client-core, servant-streaming-client, streaming, text
+     , unix, uri-bytestring, versions
+     }:
+     mkDerivation {
+       pname = "cachix";
+       version = "0.1.3";
+       sha256 = "0vhgkdrrj8wmnzqsjwyrhflwprnizjibgjwcwn5771mjv38amyx0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base base16-bytestring base64-bytestring bifunctors
+         bytestring cachix-api conduit conduit-extra cookie cryptonite
+         data-default dhall directory ed25519 filepath fsnotify here
+         http-client http-client-tls http-conduit http-types lzma-conduit
+         megaparsec memory mmorph optparse-applicative process protolude
+         resourcet retry safe-exceptions servant servant-auth
+         servant-auth-client servant-client servant-client-core
+         servant-streaming-client streaming text unix uri-bytestring
+         versions
+       ];
+       executableHaskellDepends = [ base cachix-api ];
+       executableToolDepends = [ hspec-discover ];
+       testHaskellDepends = [ base cachix-api here hspec protolude ];
+       description = "Command line client for Nix binary cache hosting https://cachix.org";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cachix-api" = callPackage
     ({ mkDerivation, aeson, amazonka, base, base16-bytestring
      , bytestring, conduit, cookie, cryptonite, hspec, hspec-discover
@@ -42741,6 +42798,41 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "cachix-api_0_1_0_3" = callPackage
+    ({ mkDerivation, aeson, amazonka, base, base16-bytestring
+     , bytestring, conduit, cookie, cryptonite, hspec, hspec-discover
+     , http-api-data, http-media, lens, memory, protolude, servant
+     , servant-auth, servant-auth-server, servant-auth-swagger
+     , servant-streaming, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, transformers
+     }:
+     mkDerivation {
+       pname = "cachix-api";
+       version = "0.1.0.3";
+       sha256 = "00j5m3pqnlwwvbj4669lpng6awsn5xzz67c6qq5dmc5q7ii2vzdf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson amazonka base base16-bytestring bytestring conduit cookie
+         cryptonite http-api-data http-media lens memory servant
+         servant-auth servant-auth-server servant-auth-swagger
+         servant-streaming servant-swagger servant-swagger-ui-core
+         string-conv swagger2 text transformers
+       ];
+       executableHaskellDepends = [ aeson base ];
+       testHaskellDepends = [
+         aeson amazonka base base16-bytestring bytestring conduit cookie
+         cryptonite hspec http-api-data http-media lens memory protolude
+         servant servant-auth servant-auth-server servant-auth-swagger
+         servant-streaming servant-swagger servant-swagger-ui-core
+         string-conv swagger2 text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Servant HTTP API specification for https://cachix.org";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cacophony" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, base16-bytestring
      , bytestring, criterion, cryptonite, deepseq, directory, exceptions
@@ -46363,6 +46455,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Automatically convert Generic instances to and from church representations";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "church-list" = callPackage
@@ -48558,6 +48651,7 @@ self: {
        ];
        description = "CMA-ES wrapper in Haskell";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cmark" = callPackage
@@ -48944,6 +49038,7 @@ self: {
        ];
        description = "Syslog implementation on top of 'co-log-core'";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "coalpit" = callPackage
@@ -50088,6 +50183,7 @@ self: {
        testHaskellDepends = [ base QuickCheck text ];
        description = "CSV Parser & Producer";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "command" = callPackage
@@ -50192,24 +50288,6 @@ self: {
 
   "commutative" = callPackage
     ({ mkDerivation, base, QuickCheck, quickcheck-instances, random
-     , semigroups, tasty, tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "commutative";
-       version = "0.0.1.4";
-       sha256 = "1ky9axa5vs12w4m8wzlnw1cf3m9ndq239534rxfknm3k5h0ldrqd";
-       libraryHaskellDepends = [ base random semigroups ];
-       testHaskellDepends = [
-         base QuickCheck quickcheck-instances random semigroups tasty
-         tasty-hunit tasty-quickcheck
-       ];
-       description = "Commutative binary operations";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "commutative_0_0_2" = callPackage
-    ({ mkDerivation, base, QuickCheck, quickcheck-instances, random
      , semigroups, tasty, tasty-hunit, tasty-quickcheck, vector
      }:
      mkDerivation {
@@ -50307,8 +50385,8 @@ self: {
        pname = "compact";
        version = "0.1.0.1";
        sha256 = "0lynnbvsyr07driy7lm9llrhvmk9wprjdbfc34svzfwldghk71gf";
-       revision = "1";
-       editedCabalFile = "0bdp226gx3gr1hg68xydxhkfr0h469ay60h0s1ywar19y3m8dn1p";
+       revision = "2";
+       editedCabalFile = "1sy8szbmbhn13s54bq04ni234kk05najm3xm0sh6r9qnvg7pcjd7";
        libraryHaskellDepends = [ base binary bytestring ghc-compact ];
        testHaskellDepends = [ base directory ];
        description = "Non-GC'd, contiguous storage for immutable data structures";
@@ -50893,12 +50971,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "composition-prelude_2_0_1_0" = callPackage
+  "composition-prelude_2_0_2_1" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "composition-prelude";
-       version = "2.0.1.0";
-       sha256 = "027fzappyma8hqqkqka21af937h57fdaq8ni73skxa03pcflwqmc";
+       version = "2.0.2.1";
+       sha256 = "0vxgy13k0ca3bi7rh9wc1pdrlpdjbm6va95djmmysdw8a9yyp9wi";
        libraryHaskellDepends = [ base ];
        description = "Higher-order function combinators";
        license = stdenv.lib.licenses.bsd3;
@@ -51467,22 +51545,6 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.7";
-       sha256 = "0w5x81n9ljs8l2b8ypy2naazvrv16qqlm1lfzvsksnii2nm1al30";
-       libraryHaskellDepends = [
-         ansi-terminal async base directory exceptions process stm
-         terminal-size text transformers unix
-       ];
-       description = "Ungarble output from several threads or commands";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "concurrent-output_1_10_9" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, directory, exceptions
-     , process, stm, terminal-size, text, transformers, unix
-     }:
-     mkDerivation {
-       pname = "concurrent-output";
        version = "1.10.9";
        sha256 = "0mwf155w89nbbkjln7hhbn8k3f8p0ylcvgrg31cm7ijpx4499i4c";
        libraryHaskellDepends = [
@@ -51491,7 +51553,6 @@ self: {
        ];
        description = "Ungarble output from several threads or commands";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrent-rpc" = callPackage
@@ -54654,6 +54715,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings for libpython";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {python34 = null;};
 
   "cql" = callPackage
@@ -54675,6 +54737,7 @@ self: {
        ];
        description = "Cassandra CQL binary protocol";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cql-io" = callPackage
@@ -55735,14 +55798,19 @@ self: {
      }) {};
 
   "crypto-enigma" = callPackage
-    ({ mkDerivation, base, containers, HUnit, MissingH, mtl, QuickCheck
-     , split
+    ({ mkDerivation, ansi-terminal, base, containers, HUnit, mtl
+     , optparse-applicative, QuickCheck, split, text
      }:
      mkDerivation {
        pname = "crypto-enigma";
-       version = "0.0.2.14";
-       sha256 = "12gvgpi7hichjq9ya77hm9q1x49qc1024zmr6pb1mv57nwwx599p";
-       libraryHaskellDepends = [ base containers MissingH mtl split ];
+       version = "0.0.3.1";
+       sha256 = "0iadzyp44ylzwq65jqvln1cmlnsvpwvy0cvpn8xfdqd1x0qil8i2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers mtl split text ];
+       executableHaskellDepends = [
+         ansi-terminal base containers mtl optparse-applicative split text
+       ];
        testHaskellDepends = [ base HUnit QuickCheck ];
        description = "An Enigma machine simulator with display";
        license = stdenv.lib.licenses.bsd3;
@@ -57091,6 +57159,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "bindings to libcurl, the multiprotocol file transfer library";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "currencies" = callPackage
@@ -57117,6 +57186,7 @@ self: {
        ];
        description = "Types representing standard and non-standard currencies";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "currency-codes" = callPackage
@@ -60301,7 +60371,7 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
-  "dbus_1_1_0" = callPackage
+  "dbus_1_1_1" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, containers
      , criterion, deepseq, directory, exceptions, extra, filepath, lens
      , network, parsec, process, QuickCheck, random, resourcet, split
@@ -60310,8 +60380,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.1.0";
-       sha256 = "0r0q69ml5nl45lgiwv3g2zggz8cychysxmplbyks8n50qa7h414j";
+       version = "1.1.1";
+       sha256 = "094js8lba0hr8421s968fil625n2gmzw3ryglz1dm8lx5wnlvwsz";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -60896,6 +60966,7 @@ self: {
        libraryHaskellDepends = [ base directory filepath HSH ];
        description = "Utilities to work with debian binary packages";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "debian-build" = callPackage
@@ -61797,6 +61868,7 @@ self: {
        libraryHaskellDepends = [ base containers dependent-sum ];
        description = "Dependent finite maps (partial dependent products)";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dependent-monoidal-map" = callPackage
@@ -62628,12 +62700,12 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall_1_19_0" = callPackage
+  "dhall_1_19_1" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, case-insensitive
      , cborg, containers, contravariant, criterion, cryptonite, deepseq
-     , Diff, directory, doctest, exceptions, filepath, haskeline
-     , http-client, http-client-tls, lens-family-core, megaparsec
-     , memory, mockery, mtl, optparse-applicative, parsers
+     , Diff, directory, doctest, dotgen, exceptions, filepath, haskeline
+     , http-client, http-client-tls, http-types, lens-family-core
+     , megaparsec, memory, mockery, mtl, optparse-applicative, parsers
      , prettyprinter, prettyprinter-ansi-terminal, QuickCheck
      , quickcheck-instances, repline, scientific, serialise, tasty
      , tasty-hunit, tasty-quickcheck, template-haskell, text
@@ -62641,15 +62713,15 @@ self: {
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.19.0";
-       sha256 = "1sz24w3vl0jffdv392kxdp01z823cbssk8w687v7gg27sdliq4gz";
+       version = "1.19.1";
+       sha256 = "14fjfwsirf8l7wirv590ix01liyd0xbhqy4h7pjblyy62m22mlzq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal base bytestring case-insensitive cborg containers
-         contravariant cryptonite Diff directory exceptions filepath
-         haskeline http-client http-client-tls lens-family-core megaparsec
-         memory mtl optparse-applicative parsers prettyprinter
+         contravariant cryptonite Diff directory dotgen exceptions filepath
+         haskeline http-client http-client-tls http-types lens-family-core
+         megaparsec memory mtl optparse-applicative parsers prettyprinter
          prettyprinter-ansi-terminal repline scientific serialise
          template-haskell text transformers unordered-containers uri-encode
          vector
@@ -62826,21 +62898,6 @@ self: {
     ({ mkDerivation, base, dhall, optparse-applicative, text }:
      mkDerivation {
        pname = "dhall-text";
-       version = "1.0.13";
-       sha256 = "09bwhc2wrwliwrvd565wr0rgdxmi0g4i9691b8nb32nybb20l1ah";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         base dhall optparse-applicative text
-       ];
-       description = "Template text using Dhall";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "dhall-text_1_0_14" = callPackage
-    ({ mkDerivation, base, dhall, optparse-applicative, text }:
-     mkDerivation {
-       pname = "dhall-text";
        version = "1.0.14";
        sha256 = "1485p4fazh3qcbb9khj1pk4f2gh6p6927sabh6miswczdn78z6sy";
        isLibrary = false;
@@ -62850,7 +62907,6 @@ self: {
        ];
        description = "Template text using Dhall";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dhall-to-cabal" = callPackage
@@ -63769,6 +63825,7 @@ self: {
        testHaskellDepends = [ base Diff ];
        description = "A diff algorithm based on recursive longest common substrings";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "diff-parse" = callPackage
@@ -63940,6 +63997,7 @@ self: {
        testHaskellDepends = [ array base bytestring digest QuickCheck ];
        description = "Pure hash functions for bytestrings";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "digestive-bootstrap" = callPackage
@@ -66445,24 +66503,42 @@ self: {
        ];
        description = "Low-level bindings to the DocuSign API";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "docusign-base-minimal" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, data-default, http-media
+     , lens, servant, servant-client, text
+     }:
+     mkDerivation {
+       pname = "docusign-base-minimal";
+       version = "0.0.1";
+       sha256 = "0ifzfjganr9yznm4gxkk204g3ld1mrz4v9yp47w9wh5gmzzarxv5";
+       libraryHaskellDepends = [
+         aeson base bytestring data-default http-media lens servant
+         servant-client text
+       ];
+       description = "Low-level bindings to the DocuSign API (only what is necessary for docusign-client)";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "docusign-client" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , data-default, docusign-base, exceptions, http-client
+     , data-default, docusign-base-minimal, exceptions, http-client
      , http-client-tls, http-types, servant-client, text, uuid
      }:
      mkDerivation {
        pname = "docusign-client";
-       version = "0.0.1";
-       sha256 = "1vyb7n08vqjmc18adbs6ck01q5440a0r99ahb566v427mr9hcydg";
+       version = "0.0.2";
+       sha256 = "14dpb1wdi6372b129hi85ksj2klxdvwnq758742akrrhaaz3lisx";
        libraryHaskellDepends = [
-         aeson base base64-bytestring bytestring data-default docusign-base
-         exceptions http-client http-client-tls http-types servant-client
-         text uuid
+         aeson base base64-bytestring bytestring data-default
+         docusign-base-minimal exceptions http-client http-client-tls
+         http-types servant-client text uuid
        ];
        description = "Client bindings for the DocuSign API";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "docusign-example" = callPackage
@@ -66481,6 +66557,7 @@ self: {
        ];
        description = "DocuSign examples";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "docvim" = callPackage
@@ -68492,14 +68569,11 @@ self: {
      }) {};
 
   "easyrender" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, mtl, superdoc
-     , zlib
-     }:
+    ({ mkDerivation, base, bytestring, containers, mtl, zlib }:
      mkDerivation {
        pname = "easyrender";
-       version = "0.1.1.3";
-       sha256 = "105s3d5yz7qz9cv5jq005kzd7jfdn2fccnc4s1xgkszk46y83qbx";
-       setupHaskellDepends = [ base Cabal superdoc ];
+       version = "0.1.1.4";
+       sha256 = "0vj9j41706lalxc2sankpnxrn3mg650wfd4rl6yw32pns6bdq86f";
        libraryHaskellDepends = [ base bytestring containers mtl zlib ];
        description = "User-friendly creation of EPS, PostScript, and PDF files";
        license = stdenv.lib.licenses.gpl3;
@@ -68787,6 +68861,7 @@ self: {
        ];
        description = "Templating language with similar syntax and features to Liquid or Jinja2";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "edenmodules" = callPackage
@@ -69217,6 +69292,7 @@ self: {
        ];
        description = "A tutorial program for the Egison programming language";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "egyptian-fractions" = callPackage
@@ -69452,24 +69528,6 @@ self: {
      }:
      mkDerivation {
        pname = "ekg-core";
-       version = "0.1.1.4";
-       sha256 = "0dz9iv6viya7b5nx9gxj9g0d1k155pvb7i59azf9272wl369mn36";
-       revision = "3";
-       editedCabalFile = "1s3545x9w01rrwzchb4f91ck0n6dc7gf0zwkryqx1b2c95ni5qa8";
-       libraryHaskellDepends = [
-         base containers ghc-prim text unordered-containers
-       ];
-       benchmarkHaskellDepends = [ base ];
-       description = "Tracking of system metrics";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ekg-core_0_1_1_6" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "ekg-core";
        version = "0.1.1.6";
        sha256 = "0hjprlx99k7mgs2zn06yckir71dvz90xs24g2r990r97mmwxva36";
        libraryHaskellDepends = [
@@ -69478,7 +69536,6 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Tracking of system metrics";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ekg-elastic" = callPackage
@@ -69720,6 +69777,7 @@ self: {
        libraryHaskellDepends = [ base elerea SDL ];
        description = "Elerea FRP wrapper for SDL";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "elevator" = callPackage
@@ -69902,6 +69960,7 @@ self: {
        ];
        description = "A library to generate Elm types from Haskell source";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "elm-export-persistent" = callPackage
@@ -73409,6 +73468,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Compression and decompression in the exomizer format";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "exp-cache" = callPackage
@@ -73541,20 +73601,20 @@ self: {
 
   "expiring-containers" = callPackage
     ({ mkDerivation, base, containers, hashable, int-multimap
-     , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck, time
-     , timestamp, unordered-containers
+     , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck, time, timestamp, unordered-containers
      }:
      mkDerivation {
        pname = "expiring-containers";
-       version = "0.2.1";
-       sha256 = "0v8vk0lmvl4a1dm7vvwi9wx1pqyrphxbiwj11fxpr2k1ybycjw54";
+       version = "0.2.2.1";
+       sha256 = "0zicnfwamm6yx91pb92qjzv0n25cwdz4krymnvpn5vyhh96k3kwh";
        libraryHaskellDepends = [
          base containers hashable int-multimap time timestamp
          unordered-containers
        ];
        testHaskellDepends = [
-         base containers hashable int-multimap quickcheck-instances tasty
-         tasty-hunit tasty-quickcheck time timestamp unordered-containers
+         int-multimap QuickCheck quickcheck-instances rerebase tasty
+         tasty-hunit tasty-quickcheck timestamp
        ];
        description = "Expiring containers";
        license = stdenv.lib.licenses.mit;
@@ -73945,6 +74005,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Message passing concurrency as extensible-effect";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extensible-exceptions" = callPackage
@@ -75869,6 +75930,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fgl_5_7_0_1" = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, hspec
+     , microbench, QuickCheck, transformers
+     }:
+     mkDerivation {
+       pname = "fgl";
+       version = "5.7.0.1";
+       sha256 = "04793yh778ck3kz1z2svnfdwwls2kisbnky4lzvf4zjfgpv7mkpz";
+       libraryHaskellDepends = [
+         array base containers deepseq transformers
+       ];
+       testHaskellDepends = [ base containers hspec QuickCheck ];
+       benchmarkHaskellDepends = [ base deepseq microbench ];
+       description = "Martin Erwig's Functional Graph Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fgl-arbitrary" = callPackage
     ({ mkDerivation, base, containers, fgl, hspec, QuickCheck }:
      mkDerivation {
@@ -76178,25 +76257,6 @@ self: {
      }:
      mkDerivation {
        pname = "filecache";
-       version = "0.4.0";
-       sha256 = "0x2ffqx6wfv6n3k3396463f771zs9ps1rcw8ga3qw4vm5sv8s26d";
-       libraryHaskellDepends = [
-         base containers directory exceptions filepath fsnotify mtl stm
-         strict-base-types time
-       ];
-       testHaskellDepends = [
-         base containers directory filepath hspec stm temporary
-       ];
-       description = "A cache system associating values to files";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "filecache_0_4_1" = callPackage
-    ({ mkDerivation, base, containers, directory, exceptions, filepath
-     , fsnotify, hspec, mtl, stm, strict-base-types, temporary, time
-     }:
-     mkDerivation {
-       pname = "filecache";
        version = "0.4.1";
        sha256 = "17fbjdy2cicrd956317jj7fir0bd621c4zb5sb4991ph7jsah0n5";
        libraryHaskellDepends = [
@@ -76208,7 +76268,6 @@ self: {
        ];
        description = "A cache system associating values to files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "filediff" = callPackage
@@ -77724,6 +77783,7 @@ self: {
        ];
        description = "Wrapper for flock(2)";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "flow" = callPackage
@@ -77971,6 +78031,7 @@ self: {
        executableHaskellDepends = [ base bytestring fltkhs ];
        description = "Fltkhs Fluid Examples";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fltkhs-hello-world" = callPackage
@@ -78574,8 +78635,8 @@ self: {
      }:
      mkDerivation {
        pname = "follow-file";
-       version = "0.0.2";
-       sha256 = "0661fp7gf5gyb4w06qm7lfaclzp0zk96gkhcx3pallckfr3214hk";
+       version = "0.0.3";
+       sha256 = "0nxvw17ndjrg34mc2a0bcyprcng52f6mn3l7mhx2fc11njdf2b93";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -78584,9 +78645,10 @@ self: {
        ];
        executableHaskellDepends = [
          attoparsec attoparsec-path base bytestring conduit
-         conduit-combinators directory hinotify path text
+         conduit-combinators directory exceptions hinotify monad-control mtl
+         path text unix utf8-string
        ];
-       description = "Be notified when a file gets appended, solely with what was added";
+       description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files.";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -80190,6 +80252,7 @@ self: {
        ];
        description = "Fresco binding for Haskell";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fresh" = callPackage
@@ -80923,6 +80986,27 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
+  "funcons-intgen" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath
+     , funcons-tools, funcons-values, gll, iml-tools, mtl, pretty
+     , regex-applicative, split, text, uu-cco
+     }:
+     mkDerivation {
+       pname = "funcons-intgen";
+       version = "0.2.0.1";
+       sha256 = "12g6lizcxhvk26k3qp1k3v9dz9pz9xx004jpmipqm291r9nyiya9";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base containers directory filepath funcons-tools funcons-values gll
+         iml-tools mtl pretty regex-applicative split text uu-cco
+       ];
+       description = "Generate Funcons interpreters from CBS description files";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {iml-tools = null;};
+
   "funcons-lambda-cbv-mp" = callPackage
     ({ mkDerivation, base, containers, funcons-tools, gll, text }:
      mkDerivation {
@@ -81226,6 +81310,7 @@ self: {
        ];
        description = "Utility functions for using funflow with nix";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "funion" = callPackage
@@ -81511,14 +81596,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "fuzzyset_0_1_0_7" = callPackage
+  "fuzzyset_0_1_0_8" = callPackage
     ({ mkDerivation, base, base-unicode-symbols, data-default, hspec
      , ieee754, lens, text, text-metrics, unordered-containers, vector
      }:
      mkDerivation {
        pname = "fuzzyset";
-       version = "0.1.0.7";
-       sha256 = "1smkvbz22dfx1d99dcb0p1j4bnkw1jd553ca6zkqhk0yqvhm2w4q";
+       version = "0.1.0.8";
+       sha256 = "096izffsa3fgdi8qiz7n6l2fl2rbiq6kv5h1xljmq0nkaig5m5wv";
        libraryHaskellDepends = [
          base base-unicode-symbols data-default lens text text-metrics
          unordered-containers vector
@@ -82563,6 +82648,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "generic-data-surgery" = callPackage
+    ({ mkDerivation, base, first-class-families, generic-data, tasty
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "generic-data-surgery";
+       version = "0.1.0.0";
+       sha256 = "1ady7wkg6bs8iadahz33gn7pas2176wg2fsphxs4nq7fi2c566a4";
+       libraryHaskellDepends = [ base first-class-families generic-data ];
+       testHaskellDepends = [ base generic-data tasty tasty-hunit ];
+       description = "Surgery for generic data types";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-deepseq" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -82642,6 +82742,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "generic-lens_1_1_0_0" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, doctest, HUnit
+     , inspection-testing, lens, profunctors, QuickCheck, tagged
+     }:
+     mkDerivation {
+       pname = "generic-lens";
+       version = "1.1.0.0";
+       sha256 = "1frng5vgk4pkaw8wqqj6ch9p5fk88rbw1mmxzs0cp13wpxnr9wpc";
+       libraryHaskellDepends = [ base profunctors tagged ];
+       testHaskellDepends = [
+         base doctest HUnit inspection-testing lens profunctors
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq lens QuickCheck
+       ];
+       description = "Generically derive traversals, lenses and prisms";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-lens-labels" = callPackage
     ({ mkDerivation, base, generic-lens }:
      mkDerivation {
@@ -83461,6 +83581,7 @@ self: {
        ];
        description = "Standard spec's for optics";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-mergeless" = callPackage
@@ -84416,6 +84537,7 @@ self: {
        libraryHaskellDepends = [ base concurrent-extra deepseq ghci ];
        description = "Library for hot-swapping shared objects in GHC";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-imported-from" = callPackage
@@ -87181,6 +87303,7 @@ self: {
        ];
        description = "Type definitions for objects used by the GitHub v3 API";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "github-utils" = callPackage
@@ -88268,6 +88391,7 @@ self: {
        testHaskellDepends = [ base directory filepath gloss JuicyPixels ];
        description = "Export Gloss pictures to png, bmp, tga, tiff, gif and juicy-pixels-image";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "gloss-game" = callPackage
@@ -92003,27 +92127,6 @@ self: {
 
   "greskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
-     , greskell-core, hint, hspec, semigroups, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "greskell";
-       version = "0.2.1.1";
-       sha256 = "0nplscs0gv9isb1z2i8qh50yssvd7kkd669j53491hjw53rwy1cs";
-       libraryHaskellDepends = [
-         aeson base greskell-core semigroups text transformers
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover greskell-core hint
-         hspec text unordered-containers
-       ];
-       description = "Haskell binding for Gremlin graph query language";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell_0_2_2_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
      , exceptions, greskell-core, hint, hspec, semigroups, text
      , transformers, unordered-containers, vector
      }:
@@ -92041,7 +92144,6 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
@@ -92636,6 +92738,7 @@ self: {
        ];
        description = "scrapes google scholar, provides RSS feed";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "gsl-random" = callPackage
@@ -93028,6 +93131,7 @@ self: {
        libraryHaskellDepends = [ base glib ];
        description = "A type class for cast functions of Gtk2hs: glib package";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "gtk2hs-cast-gnomevfs" = callPackage
@@ -95787,8 +95891,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-dhall";
-       version = "0.2.2.1";
-       sha256 = "03s1fs95mhaxwq79gf2qjlbzjfkimd3kkiksjmp42j8zxn0y9sbf";
+       version = "0.2.2.2";
+       sha256 = "0w2vhma28904mg7bymk0qd3gzwirbjkjkw862jxg2zzcnsg8m04i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98466,6 +98570,8 @@ self: {
        pname = "haskell-awk";
        version = "1.1.1";
        sha256 = "0s6vzfsqh2wwsp98l8zpg6cvh7jwz5wha44idz3yavhmy6z08zgd";
+       revision = "1";
+       editedCabalFile = "1rrplmf2n4vkwisi367gi4a6yyh0ri2sdjqmdix7xyvfdad7m9cb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98981,8 +99087,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-igraph";
-       version = "0.7.0";
-       sha256 = "139qicfqg2m6jl3r7lbs2wcp1bvra3rp0vgb7ghafj2k70i0vddv";
+       version = "0.7.1";
+       sha256 = "16sx8sx3dky6zlwhnf3fyrkcqzwrnf94hd1wfj087bgb36hxsavp";
        libraryHaskellDepends = [
          base bytestring cereal colour conduit containers data-ordlist hxt
          primitive singletons split
@@ -99708,22 +99814,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-src-exts-util";
-       version = "0.2.3";
-       sha256 = "1803718paq89f8pdck4mb88hv2k1ah9lxzq0lgjgwi9n88ryycz8";
-       libraryHaskellDepends = [
-         base containers data-default haskell-src-exts semigroups
-         transformers uniplate
-       ];
-       description = "Helper functions for working with haskell-src-exts trees";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haskell-src-exts-util_0_2_4" = callPackage
-    ({ mkDerivation, base, containers, data-default, haskell-src-exts
-     , semigroups, transformers, uniplate
-     }:
-     mkDerivation {
-       pname = "haskell-src-exts-util";
        version = "0.2.4";
        sha256 = "1xbf28aisqizy3a0sy42p3rwib2s7jaqi6dcr6lp4b1j54xazf5y";
        libraryHaskellDepends = [
@@ -99732,7 +99822,6 @@ self: {
        ];
        description = "Helper functions for working with haskell-src-exts trees";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-src-meta" = callPackage
@@ -99958,6 +100047,7 @@ self: {
        ];
        description = "Command-line frontend for Haskell-tools Refact";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-tools-daemon" = callPackage
@@ -99991,6 +100081,7 @@ self: {
        ];
        description = "Background process for Haskell-tools that editors can connect to";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-tools-debug" = callPackage
@@ -101717,6 +101808,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-quickcheck ];
        description = "Variant and EADT";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskyapi" = callPackage
@@ -102980,6 +103072,7 @@ self: {
        ];
        description = "Third-party extensions to hbro";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hburg" = callPackage
@@ -104039,31 +104132,6 @@ self: {
   "hedis" = 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.4";
-       sha256 = "1xsa6wgakmjhwz9s9fybbwsx6gxy6630bqyrai0sb4vmd9lnbxfx";
-       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 ];
-       description = "Client library for the Redis datastore: supports full command set, pipelining";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hedis_0_10_8" = callPackage
-    ({ mkDerivation, async, base, bytestring, bytestring-lexing
-     , deepseq, doctest, errors, HTTP, HUnit, mtl, network, network-uri
      , resource-pool, scanner, stm, test-framework, test-framework-hunit
      , text, time, tls, unordered-containers, vector
      }:
@@ -104083,7 +104151,6 @@ self: {
        benchmarkHaskellDepends = [ base mtl time ];
        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
@@ -107992,6 +108059,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) libsass;};
 
+  "hlibsass_0_1_8_0" = callPackage
+    ({ mkDerivation, base, Cabal, directory, hspec, libsass }:
+     mkDerivation {
+       pname = "hlibsass";
+       version = "0.1.8.0";
+       sha256 = "1ssgvr0jvl79k1vckp5nq2zw6mx8l4xasydymzjwmhg0fl99mpi6";
+       configureFlags = [ "-fexternalLibsass" ];
+       setupHaskellDepends = [ base Cabal directory ];
+       libraryHaskellDepends = [ base ];
+       librarySystemDepends = [ libsass ];
+       testHaskellDepends = [ base hspec ];
+       description = "Low-level bindings to Libsass";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) libsass;};
+
   "hlint" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, directory, extra, filepath
@@ -108893,7 +108976,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base ];
-       license = stdenv.lib.licenses.unfree;
+       license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
@@ -110662,8 +110745,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpack-dhall";
-       version = "0.5.0";
-       sha256 = "0nqvcs9ch2knlllb0r0j0aqwab7h3yxh5iay377gyq8xc0m4l8w6";
+       version = "0.5.1";
+       sha256 = "0rgdk1jiczl4rwa66irbfcif4rvkrcyzk29lmpwr2kkqjz0zi7kk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -111266,6 +111349,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Haskell bindings for libpuz";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hpygments" = callPackage
@@ -111318,38 +111402,6 @@ self: {
 
   "hquantlib" = callPackage
     ({ mkDerivation, base, containers, hmatrix, hmatrix-gsl
-     , hmatrix-special, HUnit, mersenne-random-pure64, parallel
-     , QuickCheck, random, statistics, test-framework
-     , test-framework-hunit, test-framework-quickcheck2, time, vector
-     , vector-algorithms
-     }:
-     mkDerivation {
-       pname = "hquantlib";
-       version = "0.0.4.0";
-       sha256 = "0x24qkbpclir0ik52hyxw3ahnqk1nqscxpx1ahnxs4w1bv7bkcmp";
-       revision = "2";
-       editedCabalFile = "1wx32kkv1as3rras5b1y3v77abx0sqsam6ssa5s7vm83pncx38y4";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers hmatrix hmatrix-gsl hmatrix-special
-         mersenne-random-pure64 parallel random statistics time vector
-         vector-algorithms
-       ];
-       executableHaskellDepends = [
-         base containers mersenne-random-pure64 parallel time
-       ];
-       testHaskellDepends = [
-         base HUnit QuickCheck test-framework test-framework-hunit
-         test-framework-quickcheck2
-       ];
-       description = "HQuantLib is a port of essencial parts of QuantLib to Haskell";
-       license = "LGPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "hquantlib_0_0_5_0" = callPackage
-    ({ mkDerivation, base, containers, hmatrix, hmatrix-gsl
      , hmatrix-special, hquantlib-time, HUnit, mersenne-random-pure64
      , parallel, QuickCheck, random, statistics, test-framework
      , test-framework-hunit, test-framework-quickcheck2, time, vector
@@ -112303,8 +112355,8 @@ self: {
     ({ mkDerivation, base, HUnit, lens }:
      mkDerivation {
        pname = "hsPID";
-       version = "0.1.1";
-       sha256 = "0wdafvzgnmgm365x9qwdcwzxcdmm71fllwqqcifx8dy88254qgik";
+       version = "0.1.2";
+       sha256 = "0zyh2xbnpcfi1r93xxrki0qg0cgmc1g6wwx4hy1kn88fr9wqrgkv";
        libraryHaskellDepends = [ base lens ];
        testHaskellDepends = [ base HUnit lens ];
        description = "PID control loop";
@@ -112389,6 +112441,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hsass_0_8_0" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, filepath
+     , hlibsass, hspec, hspec-discover, monad-loops, temporary, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "hsass";
+       version = "0.8.0";
+       sha256 = "1bnjvj6dpmcbpkbi4g5m5hvr0w5rmd7y5zkiwbqc8n9y4l2dkd5g";
+       libraryHaskellDepends = [
+         base bytestring data-default-class filepath hlibsass monad-loops
+         transformers
+       ];
+       testHaskellDepends = [
+         base bytestring data-default-class hspec hspec-discover temporary
+         text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Integrating Sass into Haskell applications";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hsay" = callPackage
     ({ mkDerivation, base, Hclip, HTTP, process, unix }:
      mkDerivation {
@@ -115910,22 +115985,6 @@ self: {
      }:
      mkDerivation {
        pname = "hsyslog-udp";
-       version = "0.2.3";
-       sha256 = "1gmnyiqd7abh7b4vk9y24s9r0jgfvqd8jqpz9f1p97yidzic8gzh";
-       libraryHaskellDepends = [
-         base bytestring hsyslog network text time unix
-       ];
-       testHaskellDepends = [ base hspec time ];
-       description = "Log to syslog over a network via UDP";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hsyslog-udp_0_2_4" = callPackage
-    ({ mkDerivation, base, bytestring, hspec, hsyslog, network, text
-     , time, unix
-     }:
-     mkDerivation {
-       pname = "hsyslog-udp";
        version = "0.2.4";
        sha256 = "1xahxchr1il9naf8kdwdbh1sy5vv4afqkcxfy4993nsk5j7zs586";
        libraryHaskellDepends = [
@@ -115934,7 +115993,6 @@ self: {
        testHaskellDepends = [ base hspec time ];
        description = "Log to syslog over a network via UDP";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hszephyr" = callPackage
@@ -116559,6 +116617,7 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Functions for working with HTTP Accept headers";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-api-data" = callPackage
@@ -116638,33 +116697,6 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.5.13.1";
-       sha256 = "0szwbgvkkdz56lgi91armkagmb7nnfwbpp4j7cm9zhmffv3ba8g1";
-       libraryHaskellDepends = [
-         array base blaze-builder bytestring case-insensitive containers
-         cookie deepseq exceptions filepath ghc-prim http-types memory
-         mime-types network network-uri random stm streaming-commons text
-         time transformers
-       ];
-       testHaskellDepends = [
-         async base blaze-builder bytestring case-insensitive containers
-         deepseq directory hspec http-types monad-control network
-         network-uri streaming-commons text time transformers zlib
-       ];
-       doCheck = false;
-       description = "An HTTP client engine";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "http-client_0_5_14" = callPackage
-    ({ mkDerivation, array, async, base, blaze-builder, bytestring
-     , case-insensitive, containers, cookie, deepseq, directory
-     , exceptions, filepath, ghc-prim, hspec, http-types, memory
-     , mime-types, monad-control, network, network-uri, random, stm
-     , streaming-commons, text, time, transformers, zlib
-     }:
-     mkDerivation {
-       pname = "http-client";
        version = "0.5.14";
        sha256 = "0irnvrxlsr9f7ybvzbpv24zbq3lhxjzh6bavjnl527020jbl0l4f";
        libraryHaskellDepends = [
@@ -116681,7 +116713,6 @@ self: {
        doCheck = false;
        description = "An HTTP client engine";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-client-auth" = callPackage
@@ -116966,7 +116997,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "http-conduit_2_3_3" = callPackage
+  "http-conduit_2_3_4" = callPackage
     ({ mkDerivation, aeson, base, blaze-builder, bytestring
      , case-insensitive, conduit, conduit-extra, connection, cookie
      , data-default-class, hspec, http-client, http-client-tls
@@ -116976,8 +117007,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-conduit";
-       version = "2.3.3";
-       sha256 = "1kqj9pzgw970y488yqm3xj90sfbm6gxyhzgn23mwq4i7nv5z1vc5";
+       version = "2.3.4";
+       sha256 = "03si9ymgnv1252q3wyj8cblbzx56shcvmi1hx51p90a2aiqbhj15";
        libraryHaskellDepends = [
          aeson base bytestring conduit conduit-extra http-client
          http-client-tls http-types mtl resourcet transformers unliftio-core
@@ -118372,6 +118403,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hw-aeson" = callPackage
+    ({ mkDerivation, aeson, base, hedgehog, hspec, text }:
+     mkDerivation {
+       pname = "hw-aeson";
+       version = "0.1.0.0";
+       sha256 = "0k9yzf8dfgqawyjgkk4s27ps3mcmxj3k6xqgrixym1vqzasjsp0d";
+       libraryHaskellDepends = [ aeson base text ];
+       testHaskellDepends = [ aeson base hedgehog hspec ];
+       description = "Convenience functions for Aeson";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hw-balancedparens" = callPackage
     ({ mkDerivation, base, criterion, hspec, hw-bits, hw-excess
      , hw-prim, hw-rankselect-base, QuickCheck, vector
@@ -118394,25 +118437,6 @@ self: {
      }) {};
 
   "hw-bits" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, hspec, hw-int
-     , hw-prim, hw-string-parse, QuickCheck, safe, vector
-     }:
-     mkDerivation {
-       pname = "hw-bits";
-       version = "0.7.0.3";
-       sha256 = "1z6h8ljws92jdchzbkv7siig859b21ck04xnp2fka2j8p97d437w";
-       libraryHaskellDepends = [
-         base bytestring hw-int hw-prim hw-string-parse safe vector
-       ];
-       testHaskellDepends = [
-         base bytestring hspec hw-prim QuickCheck vector
-       ];
-       benchmarkHaskellDepends = [ base criterion hw-prim vector ];
-       description = "Bit manipulation";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-bits_0_7_0_4" = callPackage
     ({ mkDerivation, base, bytestring, criterion, hedgehog, hspec
      , hw-hspec-hedgehog, hw-int, hw-prim, hw-string-parse, QuickCheck
      , safe, vector
@@ -118431,7 +118455,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion hw-prim vector ];
        description = "Bit manipulation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hw-conduit" = callPackage
@@ -118493,8 +118516,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-dsv";
-       version = "0.3.1";
-       sha256 = "1fdc0hrcv1ypnkbfjazw0x4yzlsnrbfzddk0xvsqadhd3rl62slk";
+       version = "0.3.2";
+       sha256 = "14xkyvqggax9vx46kvsg3w0h7pnsfsbwbd5jbr95p5nw8yrsa8pg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -118934,8 +118957,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-prim";
-       version = "0.6.2.19";
-       sha256 = "06d124i6y1kai14yfpwbys3fvpqxf7wrvyhhlihqdvpqfksll1dv";
+       version = "0.6.2.20";
+       sha256 = "05azmns8nvdpfhd0fi71slsgn8irghyx25rynipc44ff407c1maa";
        libraryHaskellDepends = [
          base bytestring mmap semigroups transformers vector
        ];
@@ -118950,15 +118973,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hw-prim_0_6_2_20" = callPackage
+  "hw-prim_0_6_2_22" = callPackage
     ({ mkDerivation, base, bytestring, criterion, directory, exceptions
      , hedgehog, hspec, hw-hspec-hedgehog, mmap, QuickCheck, semigroups
      , transformers, vector
      }:
      mkDerivation {
        pname = "hw-prim";
-       version = "0.6.2.20";
-       sha256 = "05azmns8nvdpfhd0fi71slsgn8irghyx25rynipc44ff407c1maa";
+       version = "0.6.2.22";
+       sha256 = "16dfajzylki7g7p8q2a79dvx3xymxkrpckajdks9k3q4rxsc6k0i";
        libraryHaskellDepends = [
          base bytestring mmap semigroups transformers vector
        ];
@@ -119530,6 +119553,7 @@ self: {
        libraryHaskellDepends = [ base bytestring curl hxt parsec ];
        description = "LibCurl interface for HXT";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hxt-expat" = callPackage
@@ -119541,6 +119565,7 @@ self: {
        libraryHaskellDepends = [ base bytestring hexpat hxt ];
        description = "Expat parser for HXT";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hxt-extras" = callPackage
@@ -119647,6 +119672,7 @@ self: {
        ];
        description = "TagSoup parser for HXT";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hxt-unicode" = callPackage
@@ -119672,6 +119698,7 @@ self: {
        ];
        description = "The XPath modules for HXT";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hxt-xslt" = callPackage
@@ -119687,6 +119714,7 @@ self: {
        ];
        description = "The XSLT modules for HXT";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hxthelper" = callPackage
@@ -120343,7 +120371,7 @@ self: {
          base binary bytestring hedgehog protolude text
        ];
        description = "Modules for parsing, generating and manipulating AB1 files";
-       license = stdenv.lib.licenses.bsd3;
+       license = "(BSD-3-Clause OR Apache-2.0)";
      }) {};
 
   "hzaif" = callPackage
@@ -121897,15 +121925,16 @@ self: {
      }) {};
 
   "impl" = callPackage
-    ({ mkDerivation, base, named, template-haskell }:
+    ({ mkDerivation, base, containers, named, template-haskell }:
      mkDerivation {
        pname = "impl";
-       version = "0.1.0.0";
-       sha256 = "00l50mrl7g3jzixlj3z2kar61vzb152lnn485b7zdsz4vgqxs1sx";
-       libraryHaskellDepends = [ base named template-haskell ];
+       version = "0.2.0.0";
+       sha256 = "00fyb41abz9k52ninlavnldm2vz20wbhdrdq5r2s7ir1karv551g";
+       libraryHaskellDepends = [ base containers named template-haskell ];
        doHaddock = false;
        description = "Framework for defaulting superclasses";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "implicit" = callPackage
@@ -122701,30 +122730,6 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.6.0.9";
-       sha256 = "0xs2bbqgaj6zmk6wrfm21q516qa2x7qfcvfazkkvyv49vvk9i7is";
-       isLibrary = true;
-       isExecutable = true;
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring clock containers foldl http-client
-         http-types lens network optional-args scientific tagged text time
-         unordered-containers vector
-       ];
-       testHaskellDepends = [ base doctest QuickCheck template-haskell ];
-       description = "Haskell client library for InfluxDB";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "influxdb_1_6_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
-     , cabal-doctest, clock, containers, doctest, foldl, http-client
-     , http-types, lens, network, optional-args, QuickCheck, scientific
-     , tagged, template-haskell, text, time, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "influxdb";
        version = "1.6.1";
        sha256 = "1hfyp284lpvgy0rqn7rjr7c8z0ah8h0vl3xhfrff8x1z1511n2dp";
        isLibrary = true;
@@ -122738,7 +122743,6 @@ self: {
        testHaskellDepends = [ base doctest QuickCheck template-haskell ];
        description = "Haskell client library for InfluxDB";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "informative" = callPackage
@@ -125956,6 +125960,7 @@ self: {
        doHaddock = false;
        description = "Generate flamegraphs from Jaeger .json dumps.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "jail" = callPackage
@@ -127294,25 +127299,6 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "1.0.4";
-       sha256 = "07xj9h2zdiyvrib93d99xi179nbzir96yylwkxajpfckfgyi4xmp";
-       libraryHaskellDepends = [
-         aeson base bytestring mime-types network-uri tagsoup text time
-       ];
-       testHaskellDepends = [
-         aeson base bytestring filepath hspec mime-types network-uri tagsoup
-         text time
-       ];
-       description = "JSON Feed";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "json-feed_1_0_5" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
-     , mime-types, network-uri, tagsoup, text, time
-     }:
-     mkDerivation {
-       pname = "json-feed";
        version = "1.0.5";
        sha256 = "17y8hnqp4ahg7cx6fwfd4y65pz16py1avhfkn4fcfjs06xv465qs";
        libraryHaskellDepends = [
@@ -127324,7 +127310,6 @@ self: {
        ];
        description = "JSON Feed";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "json-fu" = callPackage
@@ -130434,25 +130419,12 @@ self: {
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "1.0.6";
-       sha256 = "1z8ipsf78l57jbkcyhjfwbgvj5gmna46x1jvcrin01rpg8xy97q4";
-       libraryHaskellDepends = [ base servant servant-foreign text ];
-       testHaskellDepends = [ base hspec servant servant-foreign text ];
-       description = "Generate Ruby clients from Servant APIs";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "lackey_1_0_7" = callPackage
-    ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
-     mkDerivation {
-       pname = "lackey";
        version = "1.0.7";
        sha256 = "0n90m4dsqfp4x4bckwxasg2cmjrzxp2szrlqf43pmp2dsc8g0646";
        libraryHaskellDepends = [ base servant servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lacroix" = callPackage
@@ -130929,6 +130901,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit text ];
        description = "Lambdabot for Zulip Chat";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lambdacat" = callPackage
@@ -133103,6 +133076,7 @@ self: {
        libraryHaskellDepends = [ array base vector ];
        description = "L-BFGS optimization";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lca" = callPackage
@@ -134106,6 +134080,7 @@ self: {
        ];
        description = "Van Laarhoven lens templates";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "level-monad" = callPackage
@@ -140028,25 +140003,25 @@ self: {
   "madlang" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, binary, Cabal, cli-setup
      , composition-prelude, containers, criterion, directory, file-embed
-     , hspec, hspec-megaparsec, http-client, http-client-tls, megaparsec
-     , MonadRandom, mtl, optparse-applicative, random-shuffle, recursion
-     , tar, template-haskell, text, th-lift-instances, titlecase
-     , zip-archive, zlib
+     , filepath, hspec, hspec-megaparsec, http-client, http-client-tls
+     , megaparsec, MonadRandom, mtl, optparse-applicative
+     , random-shuffle, recursion, tar, template-haskell, text
+     , th-lift-instances, titlecase, zip-archive, zlib
      }:
      mkDerivation {
        pname = "madlang";
-       version = "4.0.2.13";
-       sha256 = "10a7q64dm9vw2a3qzvixlg0632l5h8j6xj9ga3w430fxch618f26";
+       version = "4.0.2.14";
+       sha256 = "1fpqs3cyb0iwld53gljkzsz7xhwamkd4g2irk7j3z6pxvn36bhin";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cli-setup ];
        libraryHaskellDepends = [
          ansi-wl-pprint base binary composition-prelude containers directory
-         file-embed megaparsec MonadRandom mtl random-shuffle recursion
-         template-haskell text th-lift-instances titlecase
+         file-embed filepath megaparsec MonadRandom mtl random-shuffle
+         recursion template-haskell text th-lift-instances titlecase
        ];
        executableHaskellDepends = [
-         base directory http-client http-client-tls megaparsec
+         base directory filepath http-client http-client-tls megaparsec
          optparse-applicative tar text zip-archive zlib
        ];
        testHaskellDepends = [ base hspec hspec-megaparsec text ];
@@ -141603,27 +141578,6 @@ self: {
      }:
      mkDerivation {
        pname = "massiv";
-       version = "0.2.3.0";
-       sha256 = "1wrfzlika7w82nxmmj192cbrhm769yhmichk1lpylldzvv9j0wl5";
-       libraryHaskellDepends = [
-         base bytestring data-default-class deepseq ghc-prim primitive
-         vector
-       ];
-       testHaskellDepends = [
-         base bytestring data-default deepseq hspec QuickCheck
-         safe-exceptions vector
-       ];
-       description = "Massiv (Массив) is an Array Library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "massiv_0_2_4_0" = callPackage
-    ({ mkDerivation, base, bytestring, data-default, data-default-class
-     , deepseq, ghc-prim, hspec, primitive, QuickCheck, safe-exceptions
-     , vector
-     }:
-     mkDerivation {
-       pname = "massiv";
        version = "0.2.4.0";
        sha256 = "1zk8jkd4rng80spwha6xcmvszwjx2h8gd5xfa39zncdikd94l2hk";
        libraryHaskellDepends = [
@@ -141636,7 +141590,6 @@ self: {
        ];
        description = "Massiv (Массив) is an Array Library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "massiv-io" = callPackage
@@ -143589,6 +143542,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "metamorphisms: ana . cata or understanding folds and unfolds";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "metaplug" = callPackage
@@ -144623,6 +144577,7 @@ self: {
        ];
        description = "MIME implementation for String's";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mime-types" = callPackage
@@ -144667,6 +144622,7 @@ self: {
        executableHaskellDepends = [ base directory mtl random ];
        description = "Minesweeper simulation using neural networks";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "minesweeper" = callPackage
@@ -144749,6 +144705,7 @@ self: {
        ];
        description = "Minimal ini like configuration library with a few extras";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "minimorph" = callPackage
@@ -147159,8 +147116,8 @@ self: {
     ({ mkDerivation, base, monad-control, mtl, transformers-base }:
      mkDerivation {
        pname = "monadoid";
-       version = "0.0.2";
-       sha256 = "0xy89vhndmsrg0cz93ril79zrffb6fnj75vd3ivfrnsn0kxykhi6";
+       version = "0.0.3";
+       sha256 = "073ma6429m92z1pdglxvb02d6f17wdnh90mnscrjwdvzb406w0cy";
        libraryHaskellDepends = [
          base monad-control mtl transformers-base
        ];
@@ -149086,8 +149043,8 @@ self: {
      }:
      mkDerivation {
        pname = "multilinear";
-       version = "0.4.0.0";
-       sha256 = "1xiv3a9q2wfkgqy6xmz7qg0wdzgakbf4y5y5vxi85cz13lm2iny2";
+       version = "0.5.0.0";
+       sha256 = "03j34gcacd5va2ldd1hmchnfrymsh0l60kp2m4q39gfgzpicm62g";
        libraryHaskellDepends = [
          base containers deepseq parallel vector
        ];
@@ -149107,10 +149064,8 @@ self: {
      }:
      mkDerivation {
        pname = "multilinear-io";
-       version = "0.4.0.0";
-       sha256 = "1zmhakpfmrcr0ikw4idd5k0iq5l7mm3idy329kwn5a2zcap7cmri";
-       revision = "1";
-       editedCabalFile = "1q7jzirjvc97xscx55pk01q1gqd0lb4g4ax2my45k8741mxclh3d";
+       version = "0.5.0.0";
+       sha256 = "1lvizs4lbjy8ki9v5ikmc23fmxkk9w5d3nh4v0iljwyz5cgds05c";
        libraryHaskellDepends = [
          aeson base bytestring cassava cereal cereal-vector conduit either
          multilinear transformers vector zlib
@@ -149295,6 +149250,7 @@ self: {
        ];
        description = "Read and write appropriately from both master and replicated postgresql instances";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "multirec" = callPackage
@@ -150414,21 +150370,6 @@ self: {
      }:
      mkDerivation {
        pname = "mysql";
-       version = "0.1.5";
-       sha256 = "0x9hdwg94s0baw7jn7ba2mk0rr7qpf1hyf88pm6gv4vdgz86gcs9";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [ base bytestring containers ];
-       librarySystemDepends = [ mysql ];
-       testHaskellDepends = [ base bytestring hspec ];
-       description = "A low-level MySQL client library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) mysql;};
-
-  "mysql_0_1_6" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, hspec, mysql
-     }:
-     mkDerivation {
-       pname = "mysql";
        version = "0.1.6";
        sha256 = "1vlr4z3ng8sibb7g8363xlhff3811z8b5nmm0ljai6r5r5hrym4y";
        setupHaskellDepends = [ base Cabal ];
@@ -150437,7 +150378,6 @@ self: {
        testHaskellDepends = [ base bytestring hspec ];
        description = "A low-level MySQL client library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) mysql;};
 
   "mysql-effect" = callPackage
@@ -150671,6 +150611,7 @@ self: {
        executableHaskellDepends = [ base HSH mtl process ];
        description = "Utility to call iwconfig";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "n-tuple" = callPackage
@@ -150874,8 +150815,8 @@ self: {
        pname = "named";
        version = "0.2.0.0";
        sha256 = "17ldvxypf099wj5phzh2aymzfwmyiyzhz24h1aj2s21nrys5n6n0";
-       revision = "1";
-       editedCabalFile = "0rnzxqlpxsfyvmc2i53iqspw03w2liflpy0zrc84pn6kw4v822j3";
+       revision = "2";
+       editedCabalFile = "0h9d74h6g685g1g0ylqf7kws1ancdy3q6fi39vinf5alkqa7kxwd";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Named parameters (keyword arguments) for Haskell";
@@ -151161,6 +151102,7 @@ self: {
        ];
        description = "Simple interface to rendering with NanoVG";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "nanq" = callPackage
@@ -152852,6 +152794,7 @@ self: {
        ];
        description = "Send metrics to Ganglia, Graphite, and statsd";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "network-minihttp" = callPackage
@@ -152883,6 +152826,7 @@ self: {
        libraryHaskellDepends = [ base binary bytestring network unix ];
        description = "Recvmsg and sendmsg bindings";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "network-msgpack-rpc" = callPackage
@@ -153684,8 +153628,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "1.6.0";
-       sha256 = "0svl195w8prf45g0pda1j6hngxpb18vdpc15cybxrzp2x689dxll";
+       version = "1.6.1";
+       sha256 = "1nzhfarz42b6arqndynp4zp4sq87g8ya9xh3zpyhsw8a3wz5idr0";
        libraryHaskellDepends = [
          async base binary bytestring deepseq monad-loops template-haskell
          unix
@@ -153700,8 +153644,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools";
-       version = "0.3.0.0";
-       sha256 = "0dnkw5vvvdkcqqga9i4pvclvr3bh6wywdg0r60l8vwdcpi820dkl";
+       version = "0.3.1.0";
+       sha256 = "1rdlyznj61a392n6m8p7g2g96alxcmcrw9n6izrdb0lkw21cls89";
        libraryHaskellDepends = [
          aeson base binary bytestring ngx-export safe template-haskell
        ];
@@ -154512,6 +154456,7 @@ self: {
        testHaskellDepends = [ base doctest Glob hspec QuickCheck text ];
        description = "Non empty Data.Text type";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "non-empty-zipper" = callPackage
@@ -154760,6 +154705,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Useful utility functions that only depend on base";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "notcpp" = callPackage
@@ -155802,6 +155748,7 @@ self: {
        ];
        description = "OAuth2 jwt-bearer client flow as per rfc7523";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "oauthenticated" = callPackage
@@ -156855,6 +156802,40 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "open-adt" = callPackage
+    ({ mkDerivation, base, constraints, recursion-schemes, row-types
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "open-adt";
+       version = "1.0";
+       sha256 = "1v9gb06cifykapx2kjbi8kmkbvs625ydciv7g77ngnmaijzfsm4a";
+       libraryHaskellDepends = [
+         base constraints recursion-schemes row-types template-haskell
+       ];
+       description = "Open algebraic data types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "open-adt-tutorial" = callPackage
+    ({ mkDerivation, base, constraints, deriving-compat, open-adt
+     , recursion-schemes, row-types, template-haskell
+     }:
+     mkDerivation {
+       pname = "open-adt-tutorial";
+       version = "1.0";
+       sha256 = "19sgj0k0axlv15jlr945hh4j6wq8aqhafmj5m7njd5qp7yrbw66w";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base constraints deriving-compat open-adt recursion-schemes
+         row-types template-haskell
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Open algebraic data type examples";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "open-browser" = callPackage
     ({ mkDerivation, base, process }:
      mkDerivation {
@@ -157003,6 +156984,7 @@ self: {
        ];
        description = "Auto-generated openapi-petstore API Client";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "opench-meteo" = callPackage
@@ -159106,6 +159088,33 @@ self: {
        libraryHaskellDepends = [ base text ];
        description = "Colorization of text for command-line output";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "pairing" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, cryptonite, memory
+     , protolude, QuickCheck, random, tasty, tasty-discover, tasty-hunit
+     , tasty-quickcheck, wl-pprint-text
+     }:
+     mkDerivation {
+       pname = "pairing";
+       version = "0.1.1";
+       sha256 = "15230s384z6hg29fc9l06qsk0657c1z00x0pijgxr9w8lbis56qg";
+       libraryHaskellDepends = [
+         base bytestring cryptonite memory protolude QuickCheck random
+         wl-pprint-text
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite memory protolude QuickCheck random tasty
+         tasty-discover tasty-hunit tasty-quickcheck wl-pprint-text
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion cryptonite memory protolude QuickCheck
+         random tasty tasty-hunit tasty-quickcheck wl-pprint-text
+       ];
+       description = "Optimal ate pairing over Barreto-Naehrig curves";
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "palette" = callPackage
@@ -159214,12 +159223,16 @@ self: {
          base bytestring containers criterion mtl text time weigh
        ];
        doCheck = false;
+       postInstall = ''
+         mkdir -p $out/share
+         mv $data/*/*/man $out/share/
+       '';
        description = "Conversion between markup formats";
        license = stdenv.lib.licenses.gpl2;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
-  "pandoc_2_4" = callPackage
+  "pandoc_2_5" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
      , binary, blaze-html, blaze-markup, bytestring, Cabal
      , case-insensitive, cmark-gfm, containers, criterion, data-default
@@ -159235,8 +159248,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.4";
-       sha256 = "1kf1v7zfifh5i1hw5bwdbd78ncp946kx1s501c077vwzdzvcz2ck";
+       version = "2.5";
+       sha256 = "0bi26r2qljdfxq26gaxj1xnhrawrfndfavs3f3g098x0g3dwazfm";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -159262,7 +159275,10 @@ self: {
        benchmarkHaskellDepends = [
          base bytestring containers criterion mtl text time weigh
        ];
-       doCheck = false;
+       postInstall = ''
+         mkdir -p $out/share
+         mv $data/*/*/man $out/share/
+       '';
        description = "Conversion between markup formats";
        license = stdenv.lib.licenses.gpl2;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -159303,7 +159319,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-citeproc_0_15" = callPackage
+  "pandoc-citeproc_0_15_0_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
      , mtl, old-locale, pandoc, pandoc-types, parsec, process, rfc5051
@@ -159312,8 +159328,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.15";
-       sha256 = "0pj2q15q8vak70cdrfxk53nzlsv6zi5pi67nlrkn5kks3srvw2r7";
+       version = "0.15.0.1";
+       sha256 = "1y4jmralmcikmk75cf5bjlv4ymr42x35a6174ybqa99jmlm5znr9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -160682,6 +160698,7 @@ self: {
        ];
        description = "Parsec combinators for parsing Haskell numeric types";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "parsec-parsers" = callPackage
@@ -161136,6 +161153,7 @@ self: {
        libraryHaskellDepends = [ base network-uri ];
        description = "Datatype for passing around unresolved URIs";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "partly" = callPackage
@@ -161553,7 +161571,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "patience" = callPackage
+  "patience_0_1_1" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "patience";
@@ -161564,6 +161582,18 @@ self: {
        libraryHaskellDepends = [ base containers ];
        description = "Patience diff and longest increasing subsequence";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "patience" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "patience";
+       version = "0.2.0.0";
+       sha256 = "0jkw6ip6fvmxpjzsfxwx7jbh58asrsq5wnc9i5jq4cv3pgql8a0j";
+       libraryHaskellDepends = [ base containers ];
+       description = "Patience diff and longest increasing subsequence";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "patronscraper" = callPackage
@@ -162243,6 +162273,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Peano numbers";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "peano-inf" = callPackage
@@ -164481,19 +164512,6 @@ self: {
     ({ mkDerivation, base, containers, random, rdtsc, transformers }:
      mkDerivation {
        pname = "picosat";
-       version = "0.1.4";
-       sha256 = "0fch3s2q5g5sif6xqd69v0kbf41061vdviifr6l9aym70jp9yvas";
-       libraryHaskellDepends = [ base containers transformers ];
-       testHaskellDepends = [ base containers random rdtsc transformers ];
-       description = "Bindings to the PicoSAT solver";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
-  "picosat_0_1_5" = callPackage
-    ({ mkDerivation, base, containers, random, rdtsc, transformers }:
-     mkDerivation {
-       pname = "picosat";
        version = "0.1.5";
        sha256 = "0wc6zd1llyb880xvb8712b8mcil3arxnci68q2gmjb0gxa40jj6y";
        libraryHaskellDepends = [ base containers transformers ];
@@ -164582,6 +164600,7 @@ self: {
        ];
        description = "A library for writing forwards-declared build systems in haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "piet" = callPackage
@@ -164637,8 +164656,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinboard";
-       version = "0.9.12.10";
-       sha256 = "0jdhckdlpmgqrp8xy7m285w7kclg8dpl02szl6fd6iwzs8l8vjds";
+       version = "0.9.12.11";
+       sha256 = "12vj9lg7l2nb92j9mydsa8hcy0ql71qnphfhgdm30xrsps79vwd0";
        libraryHaskellDepends = [
          aeson base bytestring containers http-client http-client-tls
          http-types monad-logger mtl network profunctors random
@@ -166106,6 +166125,7 @@ self: {
        libraryHaskellDepends = [ base containers ];
        description = "Implementation of the PKTree spatial index data structure";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "placeholders" = callPackage
@@ -166957,6 +166977,7 @@ self: {
        ];
        description = "Tool for refactoring expressions into pointfree form";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pointfree-fancy" = callPackage
@@ -167079,6 +167100,7 @@ self: {
        librarySystemDepends = [ poker-eval ];
        description = "Binding to libpoker-eval";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {poker-eval = null;};
 
   "pokitdok" = callPackage
@@ -167773,6 +167795,7 @@ self: {
        librarySystemDepends = [ portaudio ];
        description = "Haskell bindings for the PortAudio library";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) portaudio;};
 
   "porte" = callPackage
@@ -167826,6 +167849,7 @@ self: {
        libraryHaskellDepends = [ base directory process ];
        description = "Library to interact with port tools on FreeBSD";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "positive" = callPackage
@@ -167904,6 +167928,7 @@ self: {
        libraryHaskellDepends = [ base transformers unix ];
        description = "Nice wrapper around POSIX fcntl advisory locks";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "posix-paths" = callPackage
@@ -168104,35 +168129,6 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-binary";
-       version = "0.12.1.1";
-       sha256 = "181npyfnz9xbmwjfzcrmbwlzw2xchy2fsibiw6d3c01y45xv607v";
-       libraryHaskellDepends = [
-         aeson base base-prelude binary-parser bytestring
-         bytestring-strict-builder containers loch-th network-ip
-         placeholders scientific text time transformers unordered-containers
-         uuid vector
-       ];
-       testHaskellDepends = [
-         aeson conversion conversion-bytestring conversion-text json-ast
-         loch-th network-ip placeholders postgresql-libpq QuickCheck
-         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
-       description = "Encoders and decoders for the PostgreSQL's binary format";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "postgresql-binary_0_12_1_2" = callPackage
-    ({ mkDerivation, aeson, base, base-prelude, binary-parser
-     , bytestring, bytestring-strict-builder, containers, conversion
-     , conversion-bytestring, conversion-text, criterion, json-ast
-     , loch-th, network-ip, placeholders, postgresql-libpq, QuickCheck
-     , quickcheck-instances, rerebase, scientific, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, transformers, unordered-containers
-     , uuid, vector
-     }:
-     mkDerivation {
-       pname = "postgresql-binary";
        version = "0.12.1.2";
        sha256 = "10h5299fxqmfz0kxyvivfy396q35gzg60spnjagyha33kx5m3bc3";
        libraryHaskellDepends = [
@@ -168149,7 +168145,6 @@ self: {
        benchmarkHaskellDepends = [ criterion rerebase ];
        description = "Encoders and decoders for the PostgreSQL's binary format";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "postgresql-common" = callPackage
@@ -168446,29 +168441,6 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-simple-migration";
-       version = "0.1.12.0";
-       sha256 = "18sx8ila7w7k4ym4rs36dc48v0cdl3b4il5jfqyfcx34n3mb5y4q";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base base64-bytestring bytestring cryptohash directory
-         postgresql-simple time
-       ];
-       executableHaskellDepends = [
-         base base64-bytestring bytestring cryptohash directory
-         postgresql-simple text time
-       ];
-       testHaskellDepends = [ base bytestring hspec postgresql-simple ];
-       description = "PostgreSQL Schema Migrations";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "postgresql-simple-migration_0_1_13_0" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, cryptohash
-     , directory, hspec, postgresql-simple, text, time
-     }:
-     mkDerivation {
-       pname = "postgresql-simple-migration";
        version = "0.1.13.0";
        sha256 = "0rpcl6s1hwb5z0lkcrahh6ljx5zcb0aq8mrk691hfwazlhbv01zk";
        isLibrary = true;
@@ -168484,7 +168456,6 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "postgresql-simple-opts" = callPackage
@@ -172453,8 +172424,8 @@ self: {
      }:
      mkDerivation {
        pname = "pseudo-boolean";
-       version = "0.1.7.0";
-       sha256 = "0y470jrqmc2k9j3zf2w2krjg3ial08v71bcq6zxh1g47iz4kszr7";
+       version = "0.1.8.0";
+       sha256 = "0na3kx4zxjmznfhw9121w8963vm2qppij5i93j4lvd3sflpwry9b";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -173847,37 +173818,6 @@ self: {
      }:
      mkDerivation {
        pname = "qnap-decrypt";
-       version = "0.3.2";
-       sha256 = "1qq1cpnn7bg3nb3ig86wcc6xvjyljckjd1bgivh1sfhxh8p0p4ys";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base binary bytestring cipher-aes128 conduit conduit-extra
-         crypto-api directory streaming-commons tagged utf8-string
-       ];
-       executableHaskellDepends = [
-         base binary bytestring cipher-aes128 conduit conduit-extra
-         crypto-api directory filepath optparse-applicative
-         streaming-commons tagged utf8-string
-       ];
-       testHaskellDepends = [
-         base binary bytestring cipher-aes128 conduit conduit-extra
-         crypto-api directory filepath hspec HUnit streaming-commons tagged
-         temporary utf8-string
-       ];
-       description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "qnap-decrypt_0_3_3" = callPackage
-    ({ mkDerivation, base, binary, bytestring, cipher-aes128, conduit
-     , conduit-extra, crypto-api, directory, filepath, hspec, HUnit
-     , optparse-applicative, streaming-commons, tagged, temporary
-     , utf8-string
-     }:
-     mkDerivation {
-       pname = "qnap-decrypt";
        version = "0.3.3";
        sha256 = "0gwnpyzyrfw6i8a5arm8q6psjhwa8kl8n94wcglsnl59k1iadfb6";
        isLibrary = true;
@@ -173899,7 +173839,6 @@ self: {
        ];
        description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "qq-literals" = callPackage
@@ -174140,6 +174079,8 @@ self: {
        pname = "quantification";
        version = "0.5.0";
        sha256 = "0ls8rhy0idrgj9dnd5ajjfi55bhz4qsyncj3ghw3nyrbr0q7j0bk";
+       revision = "1";
+       editedCabalFile = "0fn5ixppdyw4niyyf9iasvrbnaimjhwwi7di4l13bfylnmriliw9";
        libraryHaskellDepends = [
          aeson base binary containers ghc-prim hashable path-pieces text
          unordered-containers vector
@@ -176531,27 +176472,6 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "1.0.6";
-       sha256 = "0bqgkijadr3zhmnq787k6bkqg96di3fbrb3ywlypns624mhwcw37";
-       libraryHaskellDepends = [
-         aeson base bytestring case-insensitive containers http-client
-         http-client-tls http-types text uuid
-       ];
-       testHaskellDepends = [
-         aeson base bytestring case-insensitive containers filepath hspec
-         http-client http-client-tls http-types text uuid
-       ];
-       description = "Notify Honeybadger about exceptions";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "ratel_1_0_7" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive
-     , containers, filepath, hspec, http-client, http-client-tls
-     , http-types, text, uuid
-     }:
-     mkDerivation {
-       pname = "ratel";
        version = "1.0.7";
        sha256 = "1kp6f45wn3a7wnsvj08a3b0kp5wwprw4rjrrqqd22yr9mpwx2z7w";
        libraryHaskellDepends = [
@@ -176564,7 +176484,6 @@ self: {
        ];
        description = "Notify Honeybadger about exceptions";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ratel-wai" = callPackage
@@ -182096,6 +182015,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion semigroups ];
        description = "A Haskell client for the Riak decentralized data store";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "riak-protobuf" = callPackage
@@ -182111,6 +182031,7 @@ self: {
        ];
        description = "Haskell types for the Riak protocol buffer API";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "riak-protobuf-lens" = callPackage
@@ -182132,6 +182053,7 @@ self: {
        ];
        description = "Lenses for riak-protobuf";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "richreports" = callPackage
@@ -182823,6 +182745,7 @@ self: {
        ];
        description = "Sci-fi roguelike game. Client application.";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "roguestar-engine" = callPackage
@@ -183649,6 +183572,7 @@ self: {
        testHaskellDepends = [ base QuickCheck safe ];
        description = "Range set";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rspp" = callPackage
@@ -183808,6 +183732,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "dynamic linker tools for Haskell";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rtlsdr" = callPackage
@@ -184587,6 +184512,29 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "safecopy_0_9_4_2" = callPackage
+    ({ mkDerivation, array, base, bytestring, cereal, containers, lens
+     , lens-action, old-time, QuickCheck, quickcheck-instances, tasty
+     , tasty-quickcheck, template-haskell, text, time, vector
+     }:
+     mkDerivation {
+       pname = "safecopy";
+       version = "0.9.4.2";
+       sha256 = "08glsr8mwxkz3hw68d6j7v285nay2a6xkyqpyc1b6wc9iw2g82r7";
+       libraryHaskellDepends = [
+         array base bytestring cereal containers old-time template-haskell
+         text time vector
+       ];
+       testHaskellDepends = [
+         array base cereal containers lens lens-action QuickCheck
+         quickcheck-instances tasty tasty-quickcheck template-haskell time
+         vector
+       ];
+       description = "Binary serialization with version control";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "safecopy-migrate" = callPackage
     ({ mkDerivation, base, base-prelude, cereal, containers, extra
      , haskell-src-meta, microlens, safecopy, template-haskell
@@ -187827,6 +187775,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Representation, manipulation, and de/serialisation of Semantic Versions";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "semver-range" = callPackage
@@ -189098,6 +189047,7 @@ self: {
        ];
        description = "Servant Stream support for conduit";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-csharp" = callPackage
@@ -189700,6 +189650,7 @@ self: {
        ];
        description = "Servant Stream support for machines";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-match" = callPackage
@@ -189821,6 +189772,7 @@ self: {
        ];
        description = "multipart/form-data (e.g file upload) support for servant";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-named" = callPackage
@@ -189930,6 +189882,7 @@ self: {
        ];
        description = "Servant Stream support for pipes";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-pool" = callPackage
@@ -190878,26 +190831,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "serverless-haskell_0_8_3" = callPackage
+  "serverless-haskell_0_8_4" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-extra, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
-     , hspec, hspec-discover, http-types, iproute, lens, raw-strings-qq
-     , text, time, unix, unordered-containers
+     , hspec, hspec-discover, http-types, iproute, lens, network
+     , network-simple, raw-strings-qq, text, time, unix
+     , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.8.3";
-       sha256 = "1d24qbl4d2sri9k67rgnivzw8wg5sxrdh2sh29m4wxvcas44a784";
+       version = "0.8.4";
+       sha256 = "0hbva555n2xypq7sby6frkrwhn6xxx1hdq7hgdi07cx60vs8b6l4";
        libraryHaskellDepends = [
          aeson aeson-casing aeson-extra amazonka-core amazonka-kinesis
          amazonka-s3 base bytestring case-insensitive http-types iproute
-         lens text time unix unordered-containers
+         lens network network-simple text time unix unordered-containers
        ];
        testHaskellDepends = [
          aeson aeson-casing aeson-extra amazonka-core amazonka-kinesis
          amazonka-s3 base bytestring case-insensitive hspec hspec-discover
-         http-types iproute lens raw-strings-qq text time unix
-         unordered-containers
+         http-types iproute lens network network-simple raw-strings-qq text
+         time unix unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
@@ -191545,6 +191499,7 @@ self: {
        librarySystemDepends = [ libsndfile openal ];
        description = "minimal bindings to the audio module of sfml";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) libsndfile; inherit (pkgs) openal;};
 
   "sfmt" = callPackage
@@ -191988,6 +191943,7 @@ self: {
        libraryHaskellDepends = [ base path path-io shake ];
        description = "path alternatives to shake functions";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "shake-persist" = callPackage
@@ -192059,31 +192015,6 @@ self: {
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.19";
-       sha256 = "0h1nmdpizw4bvpkxlnrwq02r3wnk01z4jqid12hp30bi577yqd5l";
-       libraryHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim parsec process scientific template-haskell text
-         time transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base blaze-html blaze-markup bytestring containers directory
-         exceptions ghc-prim hspec HUnit parsec process template-haskell
-         text time transformers
-       ];
-       description = "A toolkit for making compile-time interpolated templates";
-       license = stdenv.lib.licenses.mit;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
-     }) {};
-
-  "shakespeare_2_0_20" = callPackage
-    ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
-     , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
-     , process, scientific, template-haskell, text, time, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "shakespeare";
        version = "2.0.20";
        sha256 = "00wybn9dcwi2y1cp87fyvhcqn8filvb8as7k78g1m1c5wpwby3pm";
        libraryHaskellDepends = [
@@ -192098,7 +192029,6 @@ self: {
        ];
        description = "A toolkit for making compile-time interpolated templates";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
@@ -195200,8 +195130,8 @@ self: {
      }:
      mkDerivation {
        pname = "slick";
-       version = "0.1.1.0";
-       sha256 = "0gqc9z8w9m1dvsnv7g1rsi367akkzp95w96lvx20sdg1gnzbx5rc";
+       version = "0.2.0.0";
+       sha256 = "0pxbrqykf11nrdc6zyjxvfc57dfajp5nm4qpqyk26l2jh1gaklz7";
        libraryHaskellDepends = [
          aeson base binary bytestring containers lens lens-aeson mustache
          pandoc shake text time
@@ -198276,8 +198206,8 @@ self: {
      }:
      mkDerivation {
        pname = "sparrow";
-       version = "0.0.3";
-       sha256 = "0rwspgmy4s33viijxb4rqck7qdwrxn15k54cbccijncqjpc15azj";
+       version = "0.0.3.1";
+       sha256 = "1rhmj14z9ypv9z5pg6494kbp4mr5906cpjgsrn1cc5rkgj1xlv59";
        libraryHaskellDepends = [
          aeson aeson-attoparsec async attoparsec attoparsec-uri base
          bytestring deepseq exceptions extractable-singleton hashable
@@ -198287,7 +198217,7 @@ self: {
          unordered-containers urlpath uuid wai wai-middleware-content-type
          wai-transformers websockets websockets-simple wuss
        ];
-       description = "Unified streaming dependency management for web apps";
+       description = "Unified streaming data-dependency framework for web apps";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -200771,6 +200701,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Numerical statistics for Foldable containers";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stagen" = callPackage
@@ -200846,6 +200777,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "the * -> * types, operators, and covariant instances";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "star-to-star-contra" = callPackage
@@ -200857,6 +200789,7 @@ self: {
        libraryHaskellDepends = [ base star-to-star ];
        description = "contravariant instances for * -> * types and operators";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "starling" = callPackage
@@ -201086,6 +201019,7 @@ self: {
        librarySystemDepends = [ libstatgrab ];
        description = "Collect system level metrics and statistics";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) libstatgrab;};
 
   "static-canvas" = callPackage
@@ -204740,17 +204674,12 @@ self: {
     ({ mkDerivation, base, Cabal, containers, directory, filepath }:
      mkDerivation {
        pname = "superdoc";
-       version = "0.1.2.7";
-       sha256 = "0pfqvw6a9c29fsar1xiqwbsdc294l9iy3jlc6ax0wxdkfqyqwagv";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.1.2.9";
+       sha256 = "0svkvbrc9h1c32anfkfz0pllqzjnj5lg73c2sc7hpb8nzg16qv0v";
        setupHaskellDepends = [ base Cabal containers directory filepath ];
        libraryHaskellDepends = [
          base Cabal containers directory filepath
        ];
-       executableHaskellDepends = [
-         base Cabal containers directory filepath
-       ];
        description = "Additional documentation markup and Unicode support";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -204863,6 +204792,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Monitor groups of threads with non-hierarchical lifetimes";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "supplemented" = callPackage
@@ -205199,6 +205129,7 @@ self: {
        testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
        description = "Implementation of swagger data model";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "swagger-petstore" = callPackage
@@ -206746,6 +206677,7 @@ self: {
        libraryHaskellDepends = [ base safe text ];
        description = "Table layout";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "table" = callPackage
@@ -206878,6 +206810,7 @@ self: {
        ];
        description = "Pretty-printing of CSV files";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tabloid" = callPackage
@@ -210477,6 +210410,7 @@ self: {
        libraryHaskellDepends = [ base text text-builder ];
        description = "Text styling for ANSI terminals";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "text-binary" = callPackage
@@ -210840,6 +210774,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Case conversion, word boundary manipulation, and textual subjugation";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "text-markup" = callPackage
@@ -214326,6 +214261,7 @@ self: {
        libraryHaskellDepends = [ attoparsec base bytestring utf8-string ];
        description = "Library for encoding/decoding TNET strings for PGI";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "to-haskell" = callPackage
@@ -215939,6 +215875,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tree-diff_0_0_2" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
+     , base-compat, bytestring, containers, generics-sop, hashable
+     , MemoTrie, parsec, parsers, pretty, QuickCheck, scientific, tagged
+     , tasty, tasty-golden, tasty-quickcheck, text, time, trifecta
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "tree-diff";
+       version = "0.0.2";
+       sha256 = "0zlviaikyk50l577q7h06w5z058v1ngjlhwzfn965xkp978hnsgq";
+       libraryHaskellDepends = [
+         aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
+         containers generics-sop hashable MemoTrie parsec parsers pretty
+         QuickCheck scientific tagged text time unordered-containers
+         uuid-types vector
+       ];
+       testHaskellDepends = [
+         ansi-terminal ansi-wl-pprint base base-compat parsec QuickCheck
+         tasty tasty-golden tasty-quickcheck trifecta
+       ];
+       description = "Diffing of (expression) trees";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tree-fun" = callPackage
     ({ mkDerivation, base, containers, mtl }:
      mkDerivation {
@@ -218770,33 +218732,6 @@ self: {
      }:
      mkDerivation {
        pname = "tz";
-       version = "0.1.3.1";
-       sha256 = "1ygzrkx01y1x729y7x2fs81gpcw69q6ijy4fxq00xsb0gff74m0b";
-       libraryHaskellDepends = [
-         base binary bytestring containers data-default deepseq
-         template-haskell time tzdata vector
-       ];
-       testHaskellDepends = [
-         base HUnit QuickCheck test-framework test-framework-hunit
-         test-framework-quickcheck2 test-framework-th time tzdata
-       ];
-       benchmarkHaskellDepends = [
-         base criterion lens thyme time timezone-olson timezone-series
-       ];
-       preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo";
-       description = "Efficient time zone handling";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "tz_0_1_3_2" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, criterion
-     , data-default, deepseq, HUnit, lens, QuickCheck, template-haskell
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , test-framework-th, thyme, time, timezone-olson, timezone-series
-     , tzdata, vector
-     }:
-     mkDerivation {
-       pname = "tz";
        version = "0.1.3.2";
        sha256 = "0k35pw27a3hwg5wqjpfqij0y7rkdlmd85n4kj4ckna4z2v86dl7h";
        libraryHaskellDepends = [
@@ -218813,7 +218748,6 @@ self: {
        preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo";
        description = "Efficient time zone handling";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tzdata" = callPackage
@@ -218823,29 +218757,6 @@ self: {
      }:
      mkDerivation {
        pname = "tzdata";
-       version = "0.1.20180501.0";
-       sha256 = "0nnzvkm6r7cq4g14zjxzgxx63sy8pxkg2whfgq6knpzhgran9n45";
-       revision = "1";
-       editedCabalFile = "19iqfzmh8xvd3cqlr1lp673232gk59z335xqbv18d4yy5qxc2fj0";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring containers deepseq vector
-       ];
-       testHaskellDepends = [
-         base bytestring HUnit test-framework test-framework-hunit
-         test-framework-th unix
-       ];
-       description = "Time zone database (as files and as a module)";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "tzdata_0_1_20181026_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, HUnit
-     , test-framework, test-framework-hunit, test-framework-th, unix
-     , vector
-     }:
-     mkDerivation {
-       pname = "tzdata";
        version = "0.1.20181026.0";
        sha256 = "0b531ydcb63q44zjpcd2l70xp2hgkxqppnfld7n16ifh9vrxm6gf";
        enableSeparateDataOutput = true;
@@ -218858,7 +218769,6 @@ self: {
        ];
        description = "Time zone database (as files and as a module)";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "u2f" = callPackage
@@ -219492,6 +219402,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "IO without any non-error, synchronous exceptions";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "unexceptionalio-trans" = callPackage
@@ -221054,6 +220965,7 @@ self: {
        executableHaskellDepends = [ base ports-tools process ];
        description = "Software management tool";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "update-monad" = callPackage
@@ -222132,6 +222044,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "A debugger for the UUAG system";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "uuid" = callPackage
@@ -223439,8 +223352,8 @@ self: {
        pname = "vector-fftw";
        version = "0.1.3.8";
        sha256 = "0xlr4566hh6lnpinzrk623a96jnb8mp8mq6cymlsl8y38qx36jp6";
-       revision = "1";
-       editedCabalFile = "0417f7grdvs3ws508a7k9ngpnisw7f7b6bcmmasflvvr66m6166f";
+       revision = "2";
+       editedCabalFile = "16qbqswgrx48lc4h5fa8ccyxv448scad9f2p9qvgzsn66lmm7iqc";
        libraryHaskellDepends = [ base primitive storable-complex vector ];
        librarySystemDepends = [ fftw ];
        description = "A binding to the fftw library for one-dimensional vectors";
@@ -224212,7 +224125,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "vinyl_0_10_0" = callPackage
+  "vinyl_0_10_0_1" = callPackage
     ({ mkDerivation, aeson, array, base, criterion, doctest, ghc-prim
      , hspec, lens, lens-aeson, linear, microlens, mtl, mwc-random
      , primitive, should-not-typecheck, singletons, tagged, text
@@ -224220,8 +224133,8 @@ self: {
      }:
      mkDerivation {
        pname = "vinyl";
-       version = "0.10.0";
-       sha256 = "1d1lm9mi9gkcaw0lczbmbn81c3kc5yji3jbp2rjabiwhyi61mj4m";
+       version = "0.10.0.1";
+       sha256 = "1x2x40cgyhj3yzw4kajssjvlnwlcrrnz7vaa8as2k9xmv9x76ig4";
        libraryHaskellDepends = [ array base ghc-prim ];
        testHaskellDepends = [
          aeson base doctest hspec lens lens-aeson microlens mtl
@@ -225216,6 +225129,7 @@ self: {
        ];
        description = "Helpers to bind digestive-functors onto wai requests";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-dispatch" = callPackage
@@ -226227,6 +226141,7 @@ self: {
        ];
        description = "WAI request predicates";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-request-spec" = callPackage
@@ -226342,6 +226257,7 @@ self: {
        ];
        description = "Declarative routing for WAI";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-secure-cookies" = callPackage
@@ -226378,6 +226294,7 @@ self: {
        ];
        description = "Flexible session middleware for WAI";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-session-alt" = callPackage
@@ -226411,6 +226328,7 @@ self: {
        ];
        description = "Session store based on clientsession";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-session-mysql" = callPackage
@@ -226596,6 +226514,7 @@ self: {
        ];
        description = "Collection of utility functions for use with WAI";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wai-websockets" = callPackage
@@ -228183,6 +228102,7 @@ self: {
        ];
        description = "Wedged postcard generator";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "weeder" = callPackage
@@ -230472,6 +230392,8 @@ self: {
        pname = "x509";
        version = "1.7.5";
        sha256 = "1j67c35g8334jx7x32hh6awhr43dplp0qwal5gnlkmx09axzrc5i";
+       revision = "1";
+       editedCabalFile = "1z98llpggldy4yb7afcsn3r3q4vklvx2pqyrhy9fir5y2yd5l601";
        libraryHaskellDepends = [
          asn1-encoding asn1-parse asn1-types base bytestring containers
          cryptonite hourglass memory mtl pem
@@ -230779,6 +230701,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "xeno_0_3_5" = callPackage
+    ({ mkDerivation, array, base, bytestring, criterion, deepseq
+     , ghc-prim, hexml, hexpat, hspec, mtl, mutable-containers, vector
+     , weigh, xml
+     }:
+     mkDerivation {
+       pname = "xeno";
+       version = "0.3.5";
+       sha256 = "0352xn6jlcbh1z4qlz679kybcvwz756xz21fzhv36vklzxclvgxn";
+       libraryHaskellDepends = [
+         array base bytestring deepseq hspec mtl mutable-containers vector
+       ];
+       testHaskellDepends = [ base bytestring hexml hspec ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq ghc-prim hexml hexpat weigh xml
+       ];
+       description = "A fast event-based XML parser in pure Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "xenstore" = callPackage
     ({ mkDerivation, base, bytestring, cereal, mtl, network }:
      mkDerivation {
@@ -231302,6 +231245,7 @@ self: {
        ];
        description = "Streaming XML parser based on conduits";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "xml-conduit-writer" = callPackage
@@ -233899,31 +233843,6 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth-hashdb";
-       version = "1.7";
-       sha256 = "072g8c2phhgphj0469qg9chbninxwjkigy2pzhfl51zbm50skfb5";
-       libraryHaskellDepends = [
-         aeson base bytestring persistent text yesod-auth yesod-core
-         yesod-form yesod-persistent
-       ];
-       testHaskellDepends = [
-         aeson base basic-prelude bytestring containers hspec http-conduit
-         http-types monad-logger network-uri persistent-sqlite resourcet
-         text unordered-containers wai-extra yesod yesod-auth yesod-core
-         yesod-test
-       ];
-       description = "Authentication plugin for Yesod";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-auth-hashdb_1_7_1" = callPackage
-    ({ mkDerivation, aeson, base, basic-prelude, bytestring, containers
-     , hspec, http-conduit, http-types, monad-logger, network-uri
-     , persistent, persistent-sqlite, resourcet, text
-     , unordered-containers, wai-extra, yesod, yesod-auth, yesod-core
-     , yesod-form, yesod-persistent, yesod-test
-     }:
-     mkDerivation {
-       pname = "yesod-auth-hashdb";
        version = "1.7.1";
        sha256 = "1rfz2xanm6d70fx8ywh8j8py8003akzgi10s9n7syqm8kaj2fvqd";
        libraryHaskellDepends = [
@@ -233938,7 +233857,6 @@ self: {
        ];
        description = "Authentication plugin for Yesod";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-auth-hmac-keccak" = callPackage
diff --git a/pkgs/development/haskell-modules/patches/fgl-monad-fail.patch b/pkgs/development/haskell-modules/patches/fgl-monad-fail.patch
deleted file mode 100644
index d0df9b774e48..000000000000
--- a/pkgs/development/haskell-modules/patches/fgl-monad-fail.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 344a7e452630ace0f5c647e525e0299d99de5902 Mon Sep 17 00:00:00 2001
-From: Alex Washburn <github@recursion.ninja>
-Date: Mon, 20 Aug 2018 23:46:32 -0400
-Subject: [PATCH] Fixing issue with MonadFailDesugaring.
-
----
- .travis.yml                   |  9 +++++++++
- Data/Graph/Inductive/Monad.hs | 14 ++++++++++++--
- fgl.cabal                     |  3 ++-
- 3 files changed, 23 insertions(+), 3 deletions(-)
-
-diff --git a/.travis.yml b/.travis.yml
-index db5eeb1..f026dd1 100644
---- a/Data/Graph/Inductive/Monad.hs
-+++ b/Data/Graph/Inductive/Monad.hs
-@@ -1,4 +1,4 @@
--{-# LANGUAGE MultiParamTypeClasses #-}
-+{-# LANGUAGE CPP, MultiParamTypeClasses #-}
- 
- -- (c) 2002 by Martin Erwig [see file COPYRIGHT]
- -- | Monadic Graphs
-@@ -19,6 +19,10 @@ module Data.Graph.Inductive.Monad(
- 
- 
- import Data.Graph.Inductive.Graph
-+#if MIN_VERSION_base(4,12,0)
-+import Control.Monad.Fail
-+import Prelude hiding (fail)
-+#endif
- 
- {-# ANN module "HLint: ignore Redundant lambda" #-}
- 
-@@ -39,7 +43,13 @@ import Data.Graph.Inductive.Graph
- 
- -- Monadic Graph
- --
--class (Monad m) => GraphM m gr where
-+class
-+#if MIN_VERSION_base(4,12,0)
-+ (MonadFail m)
-+#else
-+ (Monad m)
-+#endif
-+  => GraphM m gr where
-   {-# MINIMAL emptyM, isEmptyM, matchM, mkGraphM, labNodesM #-}
- 
-   emptyM     :: m (gr a b)
-diff --git a/fgl.cabal b/fgl.cabal
-index 4251a21..4b2a039 100644
---- a/fgl.cabal
-+++ b/fgl.cabal
-@@ -18,7 +18,8 @@ extra-source-files:
-                ChangeLog
- 
- tested-with:   GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC == 7.6.3,
--               GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1, GHC == 8.1.*
-+               GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.2,
-+               GHC == 8.4.3, GHC == 8.6.1
- 
- source-repository head
-     type:         git
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index f9938de6f59d..03a235ae3849 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -1,5 +1,5 @@
 # pcre functionality is tested in nixos/tests/php-pcre.nix
-{ lib, stdenv, fetchurl, flex, bison
+{ lib, stdenv, fetchurl, flex, bison, autoconf
 , mysql, libxml2, readline, zlib, curl, postgresql, gettext
 , openssl, pcre, pkgconfig, sqlite, config, libjpeg, libpng, freetype
 , libxslt, libmcrypt, bzip2, icu, openldap, cyrus_sasl, libmhash, freetds
@@ -12,6 +12,7 @@ let
   generic =
   { version
   , sha256
+  , extraPatches ? []
   , imapSupport ? config.php.imap or (!stdenv.isDarwin)
   , ldapSupport ? config.php.ldap or true
   , mhashSupport ? config.php.mhash or true
@@ -65,7 +66,7 @@ let
 
       enableParallelBuilding = true;
 
-      nativeBuildInputs = [ pkgconfig ];
+      nativeBuildInputs = [ pkgconfig autoconf ];
       buildInputs = [ flex bison pcre ]
         ++ optional stdenv.isLinux systemd
         ++ optionals imapSupport [ uwimap openssl pam ]
@@ -182,6 +183,8 @@ let
 
         configureFlags+=(--with-config-file-path=$out/etc \
           --includedir=$dev/include)
+
+        ./buildconf --force
       '';
 
       postInstall = ''
@@ -210,7 +213,7 @@ let
         outputsToInstall = [ "out" "dev" ];
       };
 
-      patches = [ ./fix-paths-php7.patch ];
+      patches = [ ./fix-paths-php7.patch ] ++ extraPatches;
 
       postPatch = optional stdenv.isDarwin ''
         substituteInPlace configure --replace "-lstdc++" "-lc++"
@@ -223,35 +226,19 @@ let
     };
 
 in {
-  # Because of an upstream bug: https://bugs.php.net/bug.php?id=76826
-  # We can't update the darwin versions because they simply don't compile at
-  # all due to a bug in the intl extensions.
-  #
-  # The bug so far is present in 7.1.21, 7.1.22, 7.1.23, 7.2.9, 7.2.10, 7.2.11.
+  php71 = generic {
+    version = "7.1.24";
+    sha256 = "02qy76krbdhlbkzs9k1sa5mgmj0qnbb8gcf1j3q0cq3z7kkj9pk6";
+
+    # https://bugs.php.net/bug.php?id=76826
+    extraPatches = optional stdenv.isDarwin ./php71-darwin-isfinite.patch;
+  };
 
-  php71 = generic (
-    if stdenv.isDarwin then
-      {
-        version = "7.1.20";
-        sha256 = "0i8xd6p4zdg8fl6f0j430raanlshsshr3s3jlm72b0gvi1n4f6rs";
-      }
-    else
-      {
-        version = "7.1.23";
-        sha256 = "0jyc5q666xh808sgy78cfylkhy5ma2zdg88jlxhagyphv23aly9d";
-      }
-  );
+  php72 = generic {
+    version = "7.2.12";
+    sha256 = "1dpnbsv4bdlc5v40ddddi971f456jp1qrn89w5di1dj70g1c895p";
 
-  php72 = generic (
-    if stdenv.isDarwin then
-      {
-        version = "7.2.8";
-        sha256 = "1rky321gcvjm0npbfd4bznh36an0y14viqcvn4yzy3x643sni00z";
-      }
-    else
-      {
-        version = "7.2.11";
-        sha256 = "1idlv04j1l2d0bn5nvfrapcpjh6ayj1n4y80lqvnp5h75m07y3aa";
-      }
-  );
+    # https://bugs.php.net/bug.php?id=76826
+    extraPatches = optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
+  };
 }
diff --git a/pkgs/development/interpreters/php/fix-paths-php7.patch b/pkgs/development/interpreters/php/fix-paths-php7.patch
index 2b9e4ad0ebbf..908f06ec49ab 100644
--- a/pkgs/development/interpreters/php/fix-paths-php7.patch
+++ b/pkgs/development/interpreters/php/fix-paths-php7.patch
@@ -1,16 +1,8 @@
---- php-7.0.0beta1/configure	    2015-07-10 12:11:41.810045613 +0000
-+++ php-7.0.0beta1-new/configure	2015-07-17 16:10:21.775528267 +0000
-@@ -6172,7 +6172,7 @@
-     as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
-   fi
- 
--  APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
-+  APXS_LIBEXECDIR="$prefix/modules"
-   if test -z `$APXS -q SYSCONFDIR`; then
-     INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
-                  $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
-@@ -37303,9 +37303,7 @@
- 
+diff -ru a/ext/gettext/config.m4 b/ext/gettext/config.m4
+--- a/ext/gettext/config.m4	2018-11-07 15:35:26.000000000 +0000
++++ b/ext/gettext/config.m4	2018-11-27 00:33:07.000000000 +0000
+@@ -6,9 +6,7 @@
+ [  --with-gettext[=DIR]      Include GNU gettext support])
  
  if test "$PHP_GETTEXT" != "no"; then
 -  for i in $PHP_GETTEXT /usr/local /usr; do
@@ -19,5 +11,16 @@
 +  GETTEXT_DIR=$PHP_GETTEXT
  
    if test -z "$GETTEXT_DIR"; then
-     as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5
-
+     AC_MSG_ERROR(Cannot locate header file libintl.h)
+diff -ru a/sapi/apache2handler/config.m4 b/sapi/apache2handler/config.m4
+--- a/sapi/apache2handler/config.m4	2018-11-07 15:35:23.000000000 +0000
++++ b/sapi/apache2handler/config.m4	2018-11-27 00:32:28.000000000 +0000
+@@ -66,7 +66,7 @@
+     AC_MSG_ERROR([Please note that Apache version >= 2.0.44 is required])
+   fi
+ 
+-  APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
++  APXS_LIBEXECDIR="$prefix/modules"
+   if test -z `$APXS -q SYSCONFDIR`; then
+     INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+                  $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
diff --git a/pkgs/development/interpreters/php/php71-darwin-isfinite.patch b/pkgs/development/interpreters/php/php71-darwin-isfinite.patch
new file mode 100644
index 000000000000..ebfcd94f8d4b
--- /dev/null
+++ b/pkgs/development/interpreters/php/php71-darwin-isfinite.patch
@@ -0,0 +1,60 @@
+diff -ru a/Zend/configure.in b/Zend/configure.in
+--- a/Zend/configure.in	2018-11-07 15:35:26.000000000 +0000
++++ b/Zend/configure.in	2018-11-27 00:28:48.000000000 +0000
+@@ -70,7 +70,7 @@
+ #endif
+ 
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -79,7 +79,7 @@
+ #endif
+ #endif
+ 
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -90,7 +90,7 @@
+ #define zend_isinf(a) 0
+ #endif
+ 
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
+diff -ru a/configure.in b/configure.in
+--- a/configure.in	2018-11-07 15:35:26.000000000 +0000
++++ b/configure.in	2018-11-27 00:28:48.000000000 +0000
+@@ -75,7 +75,7 @@
+ #endif
+ 
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -84,7 +84,7 @@
+ #endif
+ #endif
+ 
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -95,7 +95,7 @@
+ #define zend_isinf(a) 0
+ #endif
+ 
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
diff --git a/pkgs/development/interpreters/php/php72-darwin-isfinite.patch b/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
new file mode 100644
index 000000000000..ea2e3e28f2cc
--- /dev/null
+++ b/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
@@ -0,0 +1,62 @@
+diff --git a/Zend/configure.ac b/Zend/configure.ac
+index b95c1360b8..fe16c86007 100644
+--- a/Zend/configure.ac
++++ b/Zend/configure.ac
+@@ -60,7 +60,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #include <math.h>
+ 
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -69,7 +69,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #endif
+ #endif
+ 
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -80,7 +80,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #define zend_isinf(a) 0
+ #endif
+ 
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
+diff --git a/configure.ac b/configure.ac
+index d3f3cacd07..ddbf712ba2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -68,7 +68,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #include <math.h>
+ 
+ #ifndef zend_isnan
+-#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isnan(a) isnan(a)
+ #elif defined(HAVE_FPCLASS)
+ #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
+@@ -77,7 +77,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #endif
+ #endif
+ 
+-#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_isinf(a) isinf(a)
+ #elif defined(INFINITY)
+ /* Might not work, but is required by ISO C99 */
+@@ -88,7 +88,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
+ #define zend_isinf(a) 0
+ #endif
+ 
+-#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
++#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
+ #define zend_finite(a) isfinite(a)
+ #elif defined(HAVE_FINITE)
+ #define zend_finite(a) finite(a)
diff --git a/pkgs/development/libraries/aravis/default.nix b/pkgs/development/libraries/aravis/default.nix
new file mode 100644
index 000000000000..dc98de1c2cb6
--- /dev/null
+++ b/pkgs/development/libraries/aravis/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk-doc, intltool
+, audit, glib, libusb, libxml2
+, wrapGAppsHook
+, gstreamer ? null
+, gst-plugins-base ? null
+, gst-plugins-good ? null
+, gst-plugins-bad ? null
+, libnotify ? null
+, gnome3 ? null
+, enableUsb ? true
+, enablePacketSocket ? true
+, enableViewer ? true
+, enableGstPlugin ? true
+, enableCppTest ? false
+, enableFastHeartbeat ? false
+, enableAsan ? false
+}:
+
+let
+  gstreamerAtLeastVersion1 =
+    stdenv.lib.all
+      (pkg: pkg != null && stdenv.lib.versionAtLeast (stdenv.lib.getVersion pkg) "1.0")
+      [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ];
+in
+  assert enableGstPlugin -> stdenv.lib.all (pkg: pkg != null) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ];
+  assert enableViewer -> enableGstPlugin;
+  assert enableViewer -> libnotify != null;
+  assert enableViewer -> gnome3 != null;
+  assert enableViewer -> gstreamerAtLeastVersion1;
+
+  stdenv.mkDerivation rec {
+
+    pname = "aravis";
+    version = "0.5.13";
+    name = "${pname}-${version}";
+
+    src = fetchFromGitHub {
+      owner = "AravisProject";
+      repo = "aravis";
+      rev= "c56e530b8ef53b84e17618ea2f334d2cbae04f48";
+      sha256 = "1dj24dir239zmiscfhyy1m8z5rcbw0m1vx9lipx0r7c39bzzj5gy";
+    };
+
+    outputs = [ "bin" "dev" "out" "lib" ];
+
+    nativeBuildInputs = [
+      autoreconfHook
+      pkgconfig
+      intltool
+      gtk-doc
+    ] ++ stdenv.lib.optional enableViewer wrapGAppsHook;
+
+    buildInputs =
+      [ glib libxml2 ]
+      ++ stdenv.lib.optional enableUsb libusb
+      ++ stdenv.lib.optional enablePacketSocket audit
+      ++ stdenv.lib.optionals (enableViewer || enableGstPlugin) [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]
+      ++ stdenv.lib.optionals (enableViewer) [ libnotify gnome3.gtk3 gnome3.defaultIconTheme ];
+
+    preAutoreconf = ''./autogen.sh'';
+
+    configureFlags =
+      stdenv.lib.optional enableUsb "--enable-usb"
+        ++ stdenv.lib.optional enablePacketSocket "--enable-packet-socket"
+        ++ stdenv.lib.optional enableViewer "--enable-viewer"
+        ++ stdenv.lib.optional enableGstPlugin
+        (if gstreamerAtLeastVersion1 then "--enable-gst-plugin" else "--enable-gst-0.10-plugin")
+        ++ stdenv.lib.optional enableCppTest "--enable-cpp-test"
+        ++ stdenv.lib.optional enableFastHeartbeat "--enable-fast-heartbeat"
+        ++ stdenv.lib.optional enableAsan "--enable-asan";
+
+    postPatch = ''
+        ln -s ${gtk-doc}/share/gtk-doc/data/gtk-doc.make .
+      '';
+
+    doCheck = true;
+
+    meta = {
+      description = "Library for video acquisition using GenICam cameras";
+      longDescription = ''
+        Implements the gigabit ethernet and USB3 protocols used by industrial cameras.
+      '';
+      homepage = https://aravisproject.github.io/docs/aravis-0.5;
+      license = stdenv.lib.licenses.lgpl2;
+      maintainers = [];
+      platforms = stdenv.lib.platforms.unix;
+    };
+  }
+
diff --git a/pkgs/development/libraries/gmime/3.nix b/pkgs/development/libraries/gmime/3.nix
index 63d00f1dd1a7..443200c17b1d 100644
--- a/pkgs/development/libraries/gmime/3.nix
+++ b/pkgs/development/libraries/gmime/3.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, glib, zlib, gnupg, gpgme, libidn2, libunistring, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.2.3";
   name = "gmime-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gmime/3.2/${name}.tar.xz";
-    sha256 = "0q65nalxzpyjg37gdlpj9v6028wp0qx47z96q0ff6znw217nzzjn";
+    sha256 = "04bk7rqs5slpvlvqf11i6s37s8b2xn6acls8smyl9asjnpp7a23a";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index f4145c85199b..938a47a40374 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, cmake, zlib, c-ares, pkgconfig, openssl, protobuf, gflags }:
 
 stdenv.mkDerivation rec {
-  version = "1.15.0";
+  version = "1.16.1";
   name = "grpc-${version}";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
-    rev= "d2c7d4dea492b9a86a53555aabdbfa90c2b01730";
-    sha256 = "1dpnhc5kw7znivrnjx1gva57v6b548am4v5nvh3dkwwzsa1k6vkv";
+    rev = "v${version}";
+    sha256 = "1jimqz3115f9pli5w6ik9wi7mjc7ix6y7yrq4a1ab9fc3dalj7p2";
   };
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [ zlib c-ares c-ares.cmake-config openssl protobuf gflags ];
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
index 48b7acf2896c..bbbc818db63d 100644
--- a/pkgs/development/libraries/nlopt/default.nix
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -1,13 +1,8 @@
 { fetchurl, stdenv, octave ? null, cmake }:
 
-let
-
-  version = "2.5.0";
-
-in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "nlopt-${version}";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://github.com/stevengj/nlopt/archive/v${version}.tar.gz";
diff --git a/pkgs/development/libraries/spdlog/default.nix b/pkgs/development/libraries/spdlog/default.nix
index a96cd455f554..198c61d37b5a 100644
--- a/pkgs/development/libraries/spdlog/default.nix
+++ b/pkgs/development/libraries/spdlog/default.nix
@@ -15,7 +15,7 @@ let
 
       nativeBuildInputs = [ cmake ];
 
-      # cmakeFlags = [ "-DSPDLOG_BUILD_EXAMPLES=ON" ];
+      cmakeFlags = [ "-DSPDLOG_BUILD_EXAMPLES=OFF" ];
 
       outputs = [ "out" "doc" ];
 
@@ -35,12 +35,12 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.1.0";
-    sha256 = "0yckz5w02v8193jhxihk9v4i8f6jafyg2a33amql0iclhk17da8f";
+    version = "1.2.1";
+    sha256 = "0gdj8arfz4r9419zbcxk9y9nv47qr7kyjjzw9m3ijgmn2pmxk88n";
   };
 
   spdlog_0 = generic {
-    version = "0.14.0";
-    sha256 = "13730429gwlabi432ilpnja3sfvy0nn2719vnhhmii34xcdyc57q";
+    version = "0.17.0";
+    sha256 = "112kfh4fbpm5cvrmgbgz4d8s802db91mhyjpg7cwhlywffnzkwr9";
   };
 }
diff --git a/pkgs/development/perl-modules/catalyst-fix-chunked-encoding.patch b/pkgs/development/perl-modules/catalyst-fix-chunked-encoding.patch
deleted file mode 100644
index 7822128f8467..000000000000
--- a/pkgs/development/perl-modules/catalyst-fix-chunked-encoding.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -rc Catalyst-Engine-HTTP-Prefork-0.50-orig/lib/Catalyst/Engine/HTTP/Prefork/Handler.pm Catalyst-Engine-HTTP-Prefork-0.50/lib/Catalyst/Engine/HTTP/Prefork/Handler.pm
-*** Catalyst-Engine-HTTP-Prefork-0.50-orig/lib/Catalyst/Engine/HTTP/Prefork/Handler.pm	2008-03-14 18:23:47.000000000 +0100
---- Catalyst-Engine-HTTP-Prefork-0.50/lib/Catalyst/Engine/HTTP/Prefork/Handler.pm	2009-03-11 14:18:40.000000000 +0100
-***************
-*** 199,206 ****
-      
-      if ( $self->{_chunked_res} ) {
-          if ( !$self->{_chunked_done} ) {
-!             # Write the final '0' chunk
-!             syswrite STDOUT, "0$CRLF";
-          }
-          
-          delete $self->{_chunked_res};
---- 199,207 ----
-      
-      if ( $self->{_chunked_res} ) {
-          if ( !$self->{_chunked_done} ) {
-!             # Write the final '0' chunk and the CRLF that terminates
-!             # the chunked body.
-!             syswrite STDOUT, "0$CRLF$CRLF";
-          }
-          
-          delete $self->{_chunked_res};
diff --git a/pkgs/development/python-modules/affine/default.nix b/pkgs/development/python-modules/affine/default.nix
new file mode 100644
index 000000000000..5bd957ae731e
--- /dev/null
+++ b/pkgs/development/python-modules/affine/default.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, pytest, lib, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "affine";
+  version = "2.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0j3mvcnmgjvvm0znqyf7xylq7i89zjf4dq0g8280xs6bwbl5cvih";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "py.test";
+
+  meta = with lib; {
+    description = "Matrices describing affine transformation of the plane";
+    license = licenses.bsd3;
+    homepage = https://github.com/sgillies/affine;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/astunparse/default.nix b/pkgs/development/python-modules/astunparse/default.nix
index 4c46f93b547c..703a6e68167f 100644
--- a/pkgs/development/python-modules/astunparse/default.nix
+++ b/pkgs/development/python-modules/astunparse/default.nix
@@ -1,16 +1,27 @@
-{ stdenv, fetchPypi, buildPythonPackage, six }:
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, six
+, wheel
+ }:
 
 buildPythonPackage rec {
   pname = "astunparse";
-  version =  "1.5.0";
+  version =  "1.6.1";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kc9lm2jvfcip3z8snj04dar5a9jh857a704m6lvcv4xclm3rpsm";
+    sha256 = "d27b16fb33dea0778c5a2c01801554eae0d3f8a8d6f604f15627589c3d6f11ca";
   };
-  propagatedBuildInputs = [ six ];
-  doCheck = false; # no tests
+
+  propagatedBuildInputs = [ six wheel ];
+
+  # tests not included with pypi release
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "This is a factored out version of unparse found in the Python source distribution";
+    homepage = https://github.com/simonpercivall/astunparse;
     license = licenses.bsd3;
     maintainers = with maintainers; [ jyp ];
   };
diff --git a/pkgs/development/python-modules/async_generator/default.nix b/pkgs/development/python-modules/async_generator/default.nix
index 6bf77ecd75e1..b8ec2f544762 100644
--- a/pkgs/development/python-modules/async_generator/default.nix
+++ b/pkgs/development/python-modules/async_generator/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, pytest-asyncio }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy35, pytest, pytest-asyncio }:
 
 buildPythonPackage rec {
   pname = "async_generator";
@@ -17,6 +17,9 @@ buildPythonPackage rec {
     pytest -W error -ra -v --pyargs async_generator
   '';
 
+  # disable tests on python3.5 to avoid circular dependency with pytest-asyncio
+  doCheck = !isPy35;
+
   meta = with lib; {
     description = "Async generators and context managers for Python 3.5+";
     homepage = https://github.com/python-trio/async_generator;
diff --git a/pkgs/development/python-modules/bugzilla/default.nix b/pkgs/development/python-modules/bugzilla/default.nix
index b57fdd5625be..2e79db8d71a4 100644
--- a/pkgs/development/python-modules/bugzilla/default.nix
+++ b/pkgs/development/python-modules/bugzilla/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "bugzilla";
-  version = "1.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
new file mode 100644
index 000000000000..64f649ad28ab
--- /dev/null
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -0,0 +1,46 @@
+{ buildPythonPackage, lib, fetchPypi
+, pytest, filelock, mock, pep8
+, cython, isPy37, glibcLocales
+, six, pyshp, shapely, geos, proj, numpy
+, gdal, pillow, matplotlib, pyepsg, pykdtree, scipy, owslib, fiona
+}:
+
+buildPythonPackage rec {
+  pname = "cartopy";
+  version = "0.17.0";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "Cartopy";
+    sha256 = "0q9ckfi37cxj7jwnqnzij62vwcf4krccx576vv5lhvpgvplxjjs2";
+  };
+
+  checkInputs = [ filelock mock pytest pep8 ];
+
+  # several tests require network connectivity: we disable them
+  checkPhase = ''
+    export HOME=$(mktemp -d)
+    pytest --pyargs cartopy \
+      -m "not network and not natural_earth" \
+      -k "not test_nightshade_image"
+  '';
+
+  buildInputs = [ cython glibcLocales ];
+  LC_ALL = "en_US.UTF-8";
+
+  propagatedBuildInputs = [
+    # required
+    six pyshp shapely geos proj numpy
+
+    # optional
+    gdal pillow matplotlib pyepsg pykdtree scipy fiona owslib
+  ];
+
+  meta = with lib; {
+    description = "Process geospatial data to create maps and perform analyses";
+    license = licenses.lgpl3;
+    homepage = https://scitools.org.uk/cartopy/docs/latest/;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/configshell/default.nix b/pkgs/development/python-modules/configshell/default.nix
new file mode 100644
index 000000000000..b0a563126e22
--- /dev/null
+++ b/pkgs/development/python-modules/configshell/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage, pyparsing, six }:
+
+buildPythonPackage rec {
+  pname = "configshell";
+  version = "1.1.fb25";
+
+  src = fetchFromGitHub {
+    owner = "open-iscsi";
+    repo ="${pname}-fb";
+    rev = "v${version}";
+    sha256 = "0zpr2n4105qqsklyfyr9lzl1rhxjcv0mnsl57hgk0m763w6na90h";
+  };
+
+  propagatedBuildInputs = [ pyparsing six ];
+
+  meta = with stdenv.lib; {
+    description = "A Python library for building configuration shells";
+    homepage = https://github.com/open-iscsi/configshell-fb;
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/fs-s3fs/default.nix b/pkgs/development/python-modules/fs-s3fs/default.nix
new file mode 100644
index 000000000000..156b0fdd76e9
--- /dev/null
+++ b/pkgs/development/python-modules/fs-s3fs/default.nix
@@ -0,0 +1,23 @@
+{ buildPythonPackage, fetchPypi, lib, fs, six, boto3 }:
+
+buildPythonPackage rec {
+  pname = "fs-s3fs";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1czv67zs4sl5l3rv9l3hzn22zzzqm372lq1wlhihigir4cfyslak";
+  };
+
+  propagatedBuildInputs = [ fs six boto3 ];
+
+  # tests try to integrate an s3 bucket which can't be tested properly in an isolated environment.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = https://pypi.org/project/fs-s3fs/;
+    license = licenses.mit;
+    description = "Amazon S3 filesystem for PyFilesystem2";
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/pkgs/development/python-modules/gentools/default.nix b/pkgs/development/python-modules/gentools/default.nix
new file mode 100644
index 000000000000..b9d272ba0e50
--- /dev/null
+++ b/pkgs/development/python-modules/gentools/default.nix
@@ -0,0 +1,31 @@
+{ buildPythonPackage, lib, fetchFromGitHub, pytest
+, typing, funcsigs, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "gentools";
+  version = "1.1.0";
+
+  # Pypi doesn't ship the tests, so we fetch directly from GitHub
+  src = fetchFromGitHub {
+    owner = "ariebovenberg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1sm6cqi7fv2k3pc68r7wvvjjz8y6cjmz8bvxgqfa4v4wxibwnwrl";
+  };
+
+  propagatedBuildInputs =
+    lib.optionals (pythonOlder "3.5") [ typing ] ++
+    lib.optionals (pythonOlder "3.4") [ funcsigs ];
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+
+  meta = with lib; {
+    description = "Tools for generators, generator functions, and generator-based coroutines";
+    license = licenses.mit;
+    homepage = http://gentools.readthedocs.io/;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 7c58c866f52e..ad777cf44352 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,16 +2,16 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.14.2";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3fd64a5b8c1d981f6d68a331449109633710a346051c44e0f0cca1812e2b4b0";
+    sha256 = "0h0w7jlggm8nc250wwqai7lihw8mymx9jjpkl0cdmqmwbypj72vd";
   };
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [ grpc grpcio ];
+  propagatedBuildInputs = [ grpcio ];
 
   # no tests in the package
   doCheck = false;
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index 6141e4a389c2..e170c14949d4 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 buildPythonPackage rec {
   pname = "grpcio";
-  version = "1.15.0";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lhh76kgyibgsk6c54nbzzhkskknkbvn71xvixsk0prfp8izr98m";
+    sha256 = "0am76f8r4v5kcvbar593n2c1mp25cxi67cxigjhd0rnncmk4bgs1";
   };
 
   nativeBuildInputs = [ pkgconfig ] ++ optional stdenv.isDarwin darwin.cctools;
diff --git a/pkgs/development/python-modules/hopcroftkarp/default.nix b/pkgs/development/python-modules/hopcroftkarp/default.nix
new file mode 100644
index 000000000000..4acf05b41426
--- /dev/null
+++ b/pkgs/development/python-modules/hopcroftkarp/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "hopcroftkarp";
+  version = "1.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cc6fc7ad348bbe5c9451f8116845c46ae26290c92b2dd14690aae2d55ba5e3a6";
+  };
+
+  # tests fail due to bad package name
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Implementation of HopcroftKarp's algorithm";
+    homepage = https://github.com/sofiat-olaosebikan/hopcroftkarp;
+    license = licenses.gpl1;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 1030ee215562..f9fa3a090ebe 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -7,14 +7,15 @@
 
 buildPythonPackage rec {
   pname = "manuel";
-  version = "1.8.0";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1diyj6a8bvz2cdf9m0g2bbx9z2yjjnn3ylbg1zinpcjj6vldfx59";
+    sha256 = "1bdzay7j70fly5fy6wbdi8fbrxjrrlxnxnw226rwry1c8a351rpy";
   };
 
-  propagatedBuildInputs = [ six zope_testing ];
+  propagatedBuildInputs = [ six ];
+  checkInputs = [ zope_testing ];
 
   meta = with stdenv.lib; {
     description = "A documentation builder";
diff --git a/pkgs/development/python-modules/matchpy/default.nix b/pkgs/development/python-modules/matchpy/default.nix
new file mode 100644
index 000000000000..dcac40b873ca
--- /dev/null
+++ b/pkgs/development/python-modules/matchpy/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, hopcroftkarp
+, multiset
+, pytest
+, pytestrunner
+, hypothesis
+, setuptools_scm
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "matchpy";
+  version = "0.4.6";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eefa1e50a10e1255db61bc2522a6768ad0701f8854859f293ebaa442286faadd";
+  };
+
+  buildInputs = [ setuptools_scm pytestrunner ];
+  checkInputs = [ pytest hypothesis ];
+  propagatedBuildInputs = [ hopcroftkarp multiset ];
+
+  meta = with lib; {
+    description = "A library for pattern matching on symbolic expressions";
+    homepage = https://github.com/HPAC/matchpy;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/multiset/default.nix b/pkgs/development/python-modules/multiset/default.nix
new file mode 100644
index 000000000000..5cc159dc2059
--- /dev/null
+++ b/pkgs/development/python-modules/multiset/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pytestrunner
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "multiset";
+  version = "2.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4801569c08bfcecfe7b0927b17f079c90f8607aca8fecaf42ded92b737162bc7";
+  };
+
+  buildInputs = [ setuptools_scm pytestrunner ];
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "An implementation of a multiset";
+    homepage = https://github.com/wheerd/multiset;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
new file mode 100644
index 000000000000..c9ab72894efe
--- /dev/null
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, coverage
+, ipykernel
+, jupyter_client
+, nbformat
+, pytest
+, six
+, glibcLocales
+, matplotlib
+, sympy
+, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "nbval";
+  version = "0.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3f18b87af4e94ccd073263dd58cd3eebabe9f5e4d6ab535b39d3af64811c7eda";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  buildInputs = [ glibcLocales ];
+  checkInputs = [ matplotlib sympy pytestcov ];
+  propagatedBuildInputs = [ coverage ipykernel jupyter_client nbformat pytest six ];
+
+  checkPhase = ''
+    pytest tests --current-env --ignore tests/test_timeouts.py
+  '';
+
+  meta = with lib; {
+    description = "A py.test plugin to validate Jupyter notebooks";
+    homepage = https://github.com/computationalmodelling/nbval;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix
index eed3d758054b..ac236a775543 100644
--- a/pkgs/development/python-modules/netaddr/default.nix
+++ b/pkgs/development/python-modules/netaddr/default.nix
@@ -18,7 +18,10 @@ buildPythonPackage rec {
   buildInputs = [ pkgs.glibcLocales pytest ];
 
   checkPhase = ''
-    py.test netaddr/tests
+    # fails on python3.7: https://github.com/drkjam/netaddr/issues/182
+    py.test \
+      -k 'not test_ip_splitter_remove_prefix_larger_than_input_range' \
+      netaddr/tests
   '';
 
   patches = [
diff --git a/pkgs/development/python-modules/perf/default.nix b/pkgs/development/python-modules/perf/default.nix
new file mode 100644
index 000000000000..558886ce6228
--- /dev/null
+++ b/pkgs/development/python-modules/perf/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+, statistics
+, pythonOlder
+, nose
+, psutil
+, contextlib2
+, mock
+, unittest2
+, isPy27
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "perf";
+  version = "1.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5aae76e58bd3edd0c50adcc7c16926ebb9ed8c0e5058b435a30d58c6bb0394a8";
+  };
+
+  checkInputs = [ nose psutil ] ++
+    lib.optionals isPy27 [ contextlib2 mock unittest2 ];
+  propagatedBuildInputs = [ six ] ++
+    lib.optionals (pythonOlder "3.4") [ statistics ];
+
+  # tests not included in pypi repository
+  doCheck = false;
+
+  checkPhase = ''
+    ${python.interpreter} -m nose
+  '';
+
+  meta = with lib; {
+    description = "Python module to generate and modify perf";
+    homepage = https://github.com/vstinner/perf;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index 9059080c9196..a9d20983a55c 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, python, buildPythonPackage
+{ stdenv, fetchpatch, python, buildPythonPackage
 , protobuf, google_apputils, pyext, libcxx
 , disabled, doCheck ? true }:
 
@@ -16,6 +16,15 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ protobuf google_apputils ];
   buildInputs = [ google_apputils pyext ];
 
+  patches = [
+    # Python 3.7 compatibility (remove when protobuf 3.7 is released)
+    (fetchpatch {
+      url = "https://github.com/protocolbuffers/protobuf/commit/0a59054c30e4f0ba10f10acfc1d7f3814c63e1a7.patch";
+      sha256 = "09hw22y3423v8bbmc9xm07znwdxfbya6rp78d4zqw6fisdvjkqf1";
+      stripLen = 1;
+    })
+  ];
+
   prePatch = ''
     while [ ! -d python ]; do
       cd *
diff --git a/pkgs/development/python-modules/pyepsg/default.nix b/pkgs/development/python-modules/pyepsg/default.nix
new file mode 100644
index 000000000000..dd8c987401d1
--- /dev/null
+++ b/pkgs/development/python-modules/pyepsg/default.nix
@@ -0,0 +1,23 @@
+{ buildPythonPackage, lib, fetchPypi, requests }:
+
+buildPythonPackage rec {
+  pname = "pyepsg";
+  version = "0.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ng0k140kzq3xcffi4vy10py4cmwzfy8anccysw3vgn1x30ghzjr";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple Python interface to epsg.io";
+    license = licenses.lgpl3;
+    homepage = https://pyepsg.readthedocs.io/en/latest/;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/pyftpdlib/default.nix b/pkgs/development/python-modules/pyftpdlib/default.nix
index b8f483d3a1dc..254edfb86937 100644
--- a/pkgs/development/python-modules/pyftpdlib/default.nix
+++ b/pkgs/development/python-modules/pyftpdlib/default.nix
@@ -20,9 +20,9 @@ buildPythonPackage rec {
   checkInputs = [ mock psutil ];
   propagatedBuildInputs = [ pyopenssl pysendfile ];
 
-  checkPhase = ''
-    ${python.interpreter} pyftpdlib/test/runner.py
-  '';
+  # impure filesystem-related tests cause timeouts
+  # on Hydra: https://hydra.nixos.org/build/84374861
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = https://github.com/giampaolo/pyftpdlib/;
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index 6b4ce6f61233..24602c522603 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
 buildPythonPackage rec {
   pname = "pytest-asyncio";
   version = "0.9.0";
@@ -10,7 +10,8 @@ buildPythonPackage rec {
     sha256 = "fbd92c067c16111174a1286bfb253660f1e564e5146b39eeed1133315cf2c2cf";
   };
 
-  buildInputs = [ pytest ];
+  buildInputs = [ pytest ]
+    ++ stdenv.lib.optionals isPy35 [ async_generator ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
new file mode 100644
index 000000000000..09d79b337919
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, mypy
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-mypy";
+  version = "0.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "acc653210e7d8d5c72845a5248f00fd33f4f3379ca13fe56cfc7b749b5655c3e";
+  };
+
+  propagatedBuildInputs = [ pytest mypy ];
+
+  meta = with lib; {
+    description = "Mypy static type checker plugin for Pytest";
+    homepage = https://github.com/dbader/pytest-mypy;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyupdate/default.nix b/pkgs/development/python-modules/pyupdate/default.nix
new file mode 100644
index 000000000000..37fe5a053696
--- /dev/null
+++ b/pkgs/development/python-modules/pyupdate/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+, requests }:
+
+buildPythonPackage rec {
+  pname = "pyupdate";
+  version = "0.2.16";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1p4zpjvwy6h9kr0dp80z5k04s14r9f75jg9481gpx8ygxj0l29bi";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  # As of 0.2.16, pyupdate is intimately tied to Home Assistant which is py3 only
+  disabled = !isPy3k;
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    # This description is terrible, but it's what upstream uses.
+    description = "Package to update stuff";
+    homepage = https://github.com/ludeeus/pyupdate;
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+  };
+}
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
new file mode 100644
index 000000000000..562d8aac5277
--- /dev/null
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonPackage, lib, fetchFromGitHub
+, cython
+, numpy, affine, attrs, cligj, click-plugins, snuggs, gdal
+, pytest, pytestcov, packaging, hypothesis, boto3
+}:
+
+buildPythonPackage rec {
+  pname = "rasterio";
+  version = "1.0.10";
+
+  # Pypi doesn't ship the tests, so we fetch directly from GitHub
+  src = fetchFromGitHub {
+    owner = "mapbox";
+    repo = "rasterio";
+    rev = version;
+    sha256 = "0gnck9y3n31nnazlrw54swab8wql9qjx5r5x9r7hrmzy72xlzjqq";
+  };
+
+  checkInputs = [ boto3 pytest pytestcov packaging hypothesis ];
+  buildInputs = [ cython ];
+  propagatedBuildInputs = [ gdal numpy attrs affine cligj click-plugins snuggs ];
+
+  meta = with lib; {
+    description = "Python package to read and write geospatial raster data";
+    license = licenses.bsd3;
+    homepage = https://rasterio.readthedocs.io/en/latest/;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/rope/default.nix b/pkgs/development/python-modules/rope/default.nix
index e5164f27f56f..21281d341cce 100644
--- a/pkgs/development/python-modules/rope/default.nix
+++ b/pkgs/development/python-modules/rope/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi }:
+{ stdenv, buildPythonPackage, fetchPypi, nose }:
 
 buildPythonPackage rec {
   pname = "rope";
@@ -9,6 +9,12 @@ buildPythonPackage rec {
     sha256 = "a108c445e1cd897fe19272ab7877d172e7faf3d4148c80e7d20faba42ea8f7b2";
   };
 
+  checkInputs = [ nose ];
+  checkPhase = ''
+    # tracked upstream here https://github.com/python-rope/rope/issues/247
+    NOSE_IGNORE_FILES=type_hinting_test.py nosetests ropetest
+  '';
+
   meta = with stdenv.lib; {
     description = "Python refactoring library";
     homepage = https://github.com/python-rope/rope;
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index 61447e740265..cefd155353ac 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -1,10 +1,13 @@
 { lib
+, python
 , buildPythonPackage
 , fetchPypi
 , isPyPy
 , isPy27
 , readline
 , R
+, rWrapper
+, rPackages
 , pcre
 , lzma
 , bzip2
@@ -13,7 +16,11 @@
 , singledispatch
 , six
 , jinja2
+, pytz
+, numpy
 , pytest
+, mock
+, extraRPackages ? []
 }:
 
 buildPythonPackage rec {
@@ -38,18 +45,54 @@ buildPythonPackage rec {
       bzip2
       zlib
       icu
+    ] ++ (with rPackages; [
+      # packages expected by the test framework
+      ggplot2
+      dplyr
+      RSQLite
+      broom
+      DBI
+      dbplyr
+      hexbin
+      lme4
+      tidyr
+    ]) ++ extraRPackages ++ rWrapper.recommendedPackages;
+
+    patches = [
+      # R_LIBS_SITE is used by the nix r package to point to the installed R libraries.
+      # This patch sets R_LIBS_SITE when rpy2 is imported.
+      ./r-libs-site.patch
     ];
+    postPatch = ''
+      substituteInPlace rpy/rinterface/__init__.py --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE"
+    '';
+
     propagatedBuildInputs = [
       singledispatch
       six
       jinja2
+      pytz
+      numpy
     ];
-    checkInputs = [ pytest ];
-    # Tests fail with `assert not _relpath.startswith('..'), "Path must be within the project"`
-    # in the unittest `loader.py`. I don't know what causes this.
+
+    checkInputs = [
+      pytest
+      mock
+    ];
+    # One remaining test failure caused by different unicode encoding.
+    # https://bitbucket.org/rpy2/rpy2/issues/488
     doCheck = false;
-    # without this tests fail when looking for libreadline.so
-    LD_LIBRARY_PATH = lib.makeLibraryPath buildInputs;
+    checkPhase = ''
+      ${python.interpreter} -m 'rpy2.tests'
+    '';
+
+    # For some reason libreadline.so is not found. Curiously `ldd _rinterface.so | grep readline` shows two readline entries:
+    # libreadline.so.6 => not found
+    # libreadline.so.6 => /nix/store/z2zhmrg6jcrn5iq2779mav0nnq4vm2q6-readline-6.3p08/lib/libreadline.so.6 (0x00007f333ac43000)
+    # There must be a better way to fix this, but I don't know it.
+    postFixup = ''
+      patchelf --add-needed ${readline}/lib/libreadline.so "$out/${python.sitePackages}/rpy2/rinterface/"_rinterface*.so
+    '';
 
     meta = {
       homepage = http://rpy.sourceforge.net/rpy2;
diff --git a/pkgs/development/python-modules/rpy2/r-libs-site.patch b/pkgs/development/python-modules/rpy2/r-libs-site.patch
new file mode 100644
index 000000000000..a55b6038bb4b
--- /dev/null
+++ b/pkgs/development/python-modules/rpy2/r-libs-site.patch
@@ -0,0 +1,20 @@
+diff --git a/rpy/rinterface/__init__.py b/rpy/rinterface/__init__.py
+index 9362e57..1af258e 100644
+--- a/rpy/rinterface/__init__.py
++++ b/rpy/rinterface/__init__.py
+@@ -43,6 +43,15 @@ if not R_HOME:
+ if not os.environ.get("R_HOME"):
+     os.environ['R_HOME'] = R_HOME
+ 
++# path to libraries
++existing = os.environ.get('R_LIBS_SITE')
++if existing is not None:
++    prefix = existing + ':'
++else:
++    prefix = ''
++additional = '@NIX_R_LIBS_SITE@'
++os.environ['R_LIBS_SITE'] = prefix + additional
++
+ if sys.platform == 'win32':
+     _load_r_dll(R_HOME)
+ 
diff --git a/pkgs/development/python-modules/rtslib/default.nix b/pkgs/development/python-modules/rtslib/default.nix
new file mode 100644
index 000000000000..5453541e2de5
--- /dev/null
+++ b/pkgs/development/python-modules/rtslib/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage, six, pyudev, pygobject3 }:
+
+buildPythonPackage rec {
+  pname = "rtslib";
+  version = "2.1.fb69";
+
+  src = fetchFromGitHub {
+    owner = "open-iscsi";
+    repo ="${pname}-fb";
+    rev = "v${version}";
+    sha256 = "17rlcrd9757nq91pa8xjr7147k7mxxp8zdka7arhlgsp3kcnbsfd";
+  };
+
+  propagatedBuildInputs = [ six pyudev pygobject3 ];
+
+  meta = with stdenv.lib; {
+    description = "A Python object API for managing the Linux LIO kernel target";
+    homepage = https://github.com/open-iscsi/rtslib-fb;
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/snug/default.nix b/pkgs/development/python-modules/snug/default.nix
new file mode 100644
index 000000000000..0b3adbe15d90
--- /dev/null
+++ b/pkgs/development/python-modules/snug/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage, lib, fetchFromGitHub, glibcLocales
+, pytest, pytest-mock, gentools
+, typing, singledispatch, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "snug";
+  version = "1.3.4";
+
+  # Pypi doesn't ship the tests, so we fetch directly from GitHub
+  src = fetchFromGitHub {
+    owner = "ariebovenberg";
+    repo = "snug";
+    rev = "v${version}";
+    sha256 = "0jmg0sivz9ljazlnsrrqaizrb3r7asy5pa0dj3idx49gbig4589i";
+  };
+
+  # Prevent unicode decoding error in setup.py
+  # while reading README.rst and HISTORY.rst
+  buildInputs = [ glibcLocales ];
+  LC_ALL = "en_US.UTF-8";
+
+  propagatedBuildInputs =
+    lib.optionals (pythonOlder "3.4") [ singledispatch ] ++
+    lib.optionals (pythonOlder "3.5") [ typing ];
+
+  checkInputs = [ pytest pytest-mock gentools ];
+  checkPhase = "pytest";
+
+  meta = with lib; {
+    description = "Tiny toolkit for writing reusable interactions with web APIs";
+    license = licenses.mit;
+    homepage = https://snug.readthedocs.io/en/latest/;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/snuggs/default.nix b/pkgs/development/python-modules/snuggs/default.nix
new file mode 100644
index 000000000000..3e0ffe4110db
--- /dev/null
+++ b/pkgs/development/python-modules/snuggs/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonPackage, lib, fetchFromGitHub
+, click, numpy, pyparsing
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "snuggs";
+  version = "1.4.2";
+
+  # Pypi doesn't ship the tests, so we fetch directly from GitHub
+  src = fetchFromGitHub {
+    owner = "mapbox";
+    repo = pname;
+    rev = version;
+    sha256 = "1q6jqwai4qgghdjgwhyx3yz8mlrm7p1vvnwc339lfl028hrgb5kb";
+  };
+
+  propagatedBuildInputs = [ click numpy pyparsing ];
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest test_snuggs.py";
+
+  meta = with lib; {
+    description = "S-expressions for Numpy";
+    license = licenses.mit;
+    homepage = https://github.com/mapbox/snuggs;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/pkgs/development/python-modules/sure/default.nix b/pkgs/development/python-modules/sure/default.nix
index 31ec9c12b002..b4c5fdf4022e 100644
--- a/pkgs/development/python-modules/sure/default.nix
+++ b/pkgs/development/python-modules/sure/default.nix
@@ -1,31 +1,28 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, nose
+, rednose
 , six
 , mock
-, pkgs
 , isPyPy
 }:
 
 buildPythonPackage rec {
   pname = "sure";
-  version = "1.2.24";
+  version = "1.4.11";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lyjq0rvkbv585dppjdq90lbkm6gyvag3wgrggjzyh7cpyh5c12w";
+    sha256 = "3c8d5271fb18e2c69e2613af1ad400d8df090f1456081635bd3171847303cdaa";
   };
 
-  LC_ALL="en_US.UTF-8";
-
-  buildInputs = [ nose pkgs.glibcLocales ];
+  buildInputs = [ rednose ];
   propagatedBuildInputs = [ six mock ];
 
   meta = with stdenv.lib; {
     description = "Utility belt for automated testing";
-    homepage = https://falcao.it/sure/;
+    homepage = https://sure.readthedocs.io/en/latest/;
     license = licenses.gpl3Plus;
   };
 
diff --git a/pkgs/development/python-modules/uarray/default.nix b/pkgs/development/python-modules/uarray/default.nix
new file mode 100644
index 000000000000..fad2dee2d165
--- /dev/null
+++ b/pkgs/development/python-modules/uarray/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, matchpy
+, numpy
+, astunparse
+, typing-extensions
+, black
+, pytest
+, pytestcov
+, numba
+, nbval
+, python
+, isPy37
+}:
+
+buildPythonPackage rec {
+  pname = "uarray";
+  version = "0.4";
+  format = "flit";
+  # will have support soon see
+  # https://github.com/Quansight-Labs/uarray/pull/64
+  disabled = isPy37;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4ec88f477d803a914d58fdf83aeedfb1986305355775cf55525348c62cce9aa4";
+  };
+
+  checkInputs = [ pytest nbval pytestcov numba ];
+  propagatedBuildInputs = [ matchpy numpy astunparse typing-extensions black ];
+
+  checkPhase = ''
+    ${python.interpreter} extract_readme_tests.py
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Universal array library";
+    homepage = https://github.com/Quansight-Labs/uarray;
+    license = licenses.bsd0;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/r-modules/wrapper.nix b/pkgs/development/r-modules/wrapper.nix
index 3b9a9b184506..d77c24e913d3 100644
--- a/pkgs/development/r-modules/wrapper.nix
+++ b/pkgs/development/r-modules/wrapper.nix
@@ -5,6 +5,9 @@ stdenv.mkDerivation {
 
   buildInputs = [makeWrapper R] ++ recommendedPackages ++ packages;
 
+  # Make the list of recommended R packages accessible to other packages such as rpy2
+  passthru.recommendedPackages = recommendedPackages;
+
   unpackPhase = ":";
 
   installPhase = ''
diff --git a/pkgs/development/ruby-modules/bundix/default.nix b/pkgs/development/ruby-modules/bundix/default.nix
index 4ac62da7f4a3..d0782513c759 100644
--- a/pkgs/development/ruby-modules/bundix/default.nix
+++ b/pkgs/development/ruby-modules/bundix/default.nix
@@ -6,13 +6,13 @@ buildRubyGem rec {
 
   name = "${gemName}-${version}";
   gemName = "bundix";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "manveru";
     repo = "bundix";
     rev = version;
-    sha256 = "0ap23abv6chiv7v97ic6b1qf5by6b26as5yrpxg5q7p2giyiv33v";
+    sha256 = "1lq8nday6031mj7ivnk2wd47v2smz6frnb8xh2yhyhpld045v1rz";
   };
 
   buildInputs = [ ruby bundler ];
diff --git a/pkgs/development/ruby-modules/bundler-app/default.nix b/pkgs/development/ruby-modules/bundler-app/default.nix
index 60e3a38517ce..d0ad56538b94 100644
--- a/pkgs/development/ruby-modules/bundler-app/default.nix
+++ b/pkgs/development/ruby-modules/bundler-app/default.nix
@@ -29,6 +29,7 @@
 , buildInputs ? []
 , postBuild ? ""
 , gemConfig ? null
+, passthru ? {}
 }@args:
 
 let
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 0381dc85895f..88d68e2fd19e 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -90,17 +90,17 @@ in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
   radare2 = generic {
-    version_commit = "19915";
-    gittap = "3.0.1";
-    gittip = "addb7f21e73073600fd6205e385fa096084701f5";
-    rev = "3.0.1";
-    version = "3.0.1";
-    sha256 = "0da4ns11valy305074cri3in5zcafjw3vxc53b4yg37114ly433h";
-    cs_tip = "e2c1cd46c06744beaceff42dd882de3a90f0a37c";
-    cs_sha256 = "1czzqj8zdjgh7h2ixi26ij3mm4bgm4xw2slin6fv73nic8yaw722";
+    version_commit = "20222";
+    gittap = "3.1.0";
+    gittip = "c033496ebc7034e52a84be9cdb2d2dfad6a4cfac";
+    rev = "3.1.0";
+    version = "3.1.0";
+    sha256 = "0ggqda8433n7p4yivn7l0807i5wwf0vww2p8v90ri66nasbzvl16";
+    cs_tip = "f01c267f889e932b069a559ce0c604c1ae986c0a";
+    cs_sha256 = "15ifnql2gi2f9g8j60hc4hbxbvi2qn1r110ry32qmlz55svxh67y";
   };
   r2-for-cutter = generic {
-    version_commit = "19720";
+    version_commit = "20222";
     gittap = "2.9.0-310-gcb62c376b";
     gittip = "cb62c376bef6c7427019a7c28910c33c364436dd";
     rev = "cb62c376bef6c7427019a7c28910c33c364436dd";
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index a369df68f050..afe93ddf383e 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -52,6 +52,16 @@ rec {
   };
 
   gradle_latest = gradleGen rec {
+    name = "gradle-5.0";
+    nativeVersion = "0.14";
+
+    src = fetchurl {
+      url = "http://services.gradle.org/distributions/${name}-bin.zip";
+      sha256 = "19krxq9pid9dg6bhdbhhg7ykm5kcx7lv7cr58rj67g0h6jgsqmv1";
+    };
+  };
+
+  gradle_4_10 = gradleGen rec {
     name = "gradle-4.10.2";
     nativeVersion = "0.14";
 
diff --git a/pkgs/development/tools/build-managers/rake/Gemfile.lock b/pkgs/development/tools/build-managers/rake/Gemfile.lock
index c7f89c32c3f8..6f6bcc41f9b3 100644
--- a/pkgs/development/tools/build-managers/rake/Gemfile.lock
+++ b/pkgs/development/tools/build-managers/rake/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    rake (12.0.0)
+    rake (12.3.1)
 
 PLATFORMS
   ruby
@@ -10,4 +10,4 @@ DEPENDENCIES
   rake
 
 BUNDLED WITH
-   1.14.6
+   1.17.1
diff --git a/pkgs/development/tools/build-managers/rake/gemset.nix b/pkgs/development/tools/build-managers/rake/gemset.nix
index d5dc29e378ae..c1a3a511b22d 100644
--- a/pkgs/development/tools/build-managers/rake/gemset.nix
+++ b/pkgs/development/tools/build-managers/rake/gemset.nix
@@ -2,9 +2,9 @@
   rake = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01j8fc9bqjnrsxbppncai05h43315vmz9fwg28qdsgcjw9ck1d7n";
+      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
       type = "gem";
     };
-    version = "12.0.0";
+    version = "12.3.1";
   };
 }
\ No newline at end of file
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 2331bbbe55fa..04f0c5cb66fa 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "11.4.0";
+  version = "11.5.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "1vzp9d7dygb44b9x6vfl913fggjkiimzjj9arybn468rc2kh0si6";
+    sha256 = "1siiws19qzfv2nnyp9fy215yd08iv70x830b61kr1742ywc0jcbn";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "1krfd6ffzc78g7k04bkk32vzingplhn176jhw4p1ys19f4sqf5sw";
+    sha256 = "0d7wnpry4861dcmpspbaar97mkf0jf2bcxvr4nph9xnkw8w7fs2z";
   };
 in
 buildGoPackage rec {
@@ -29,7 +29,7 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "0nhqnw6nk5q716ir0vdkqy0jj1vbxz014jx080zk44cdj7l62lrm";
+    sha256 = "028bl249yfccdnwskbn6sxzf1xsg94chbm107n2h83j7a81cz8kw";
   };
 
   patches = [ ./fix-shell-path.patch ];
diff --git a/pkgs/development/tools/database/sqlcheck/default.nix b/pkgs/development/tools/database/sqlcheck/default.nix
new file mode 100644
index 000000000000..867aa0b98eca
--- /dev/null
+++ b/pkgs/development/tools/database/sqlcheck/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "sqlcheck-${version}";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "jarulraj";
+    repo = "sqlcheck";
+    rev = "v${version}";
+    sha256 = "0v8idyhwhbphxzmh03lih3wd9gdq317zn7wsf01infih7b6l0k69";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Automatically identify anti-patterns in SQL queries";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/tools/database/sqlite-web/default.nix b/pkgs/development/tools/database/sqlite-web/default.nix
new file mode 100644
index 000000000000..a1b8ece12362
--- /dev/null
+++ b/pkgs/development/tools/database/sqlite-web/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sqlite-web";
+  version = "0.3.5";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "9e0c8938434b0129423544162d4ca6975abf7042c131445f79661a4b9c885d47";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ flask peewee pygments ];
+
+  # no tests in repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Web-based SQLite database browser";
+    homepage = https://github.com/coleifer/sqlite-web;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/tools/gauge/default.nix b/pkgs/development/tools/gauge/default.nix
index 983df980a591..82a7b4b0e276 100644
--- a/pkgs/development/tools/gauge/default.nix
+++ b/pkgs/development/tools/gauge/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "gauge-${version}";
-  version = "1.0.2";
+  version = "1.0.3";
 
   goPackagePath = "github.com/getgauge/gauge";
   excludedPackages = ''\(build\|man\)'';
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "getgauge";
     repo = "gauge";
     rev = "v${version}";
-    sha256 = "0cnhkxfw78i4lgkbrk87hgrjh98f0z6a97g77c9av20z4962hmfy";
+    sha256 = "0dcsgszg6ilf3sxan3ahf9cfpw66z3mh2svg2srxv8ici3ak8a2x";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/tools/kube-prompt/default.nix b/pkgs/development/tools/kube-prompt/default.nix
index 2ea69a0c56b5..60f53c74bb24 100644
--- a/pkgs/development/tools/kube-prompt/default.nix
+++ b/pkgs/development/tools/kube-prompt/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "kube-prompt-${version}";
-  version = "1.0.4";
+  version = "1.0.5";
   rev = "v${version}";
 
   goPackagePath = "github.com/c-bata/kube-prompt";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "c-bata";
     repo = "kube-prompt";
-    sha256 = "09c2kjsk8cl7qgxbr1s7qd9br5shf7gccxvbf7nyi6wjiass9yg5";
+    sha256 = "1c1y0n1yxcaxvhlsj7b0wvhi934b5g0s1mi46hh5amb9j3dhgq1c";
   };
 
   goDeps = ./deps.nix;
diff --git a/pkgs/development/tools/kube-prompt/deps.nix b/pkgs/development/tools/kube-prompt/deps.nix
index 393b69a2a331..e2391789a41c 100644
--- a/pkgs/development/tools/kube-prompt/deps.nix
+++ b/pkgs/development/tools/kube-prompt/deps.nix
@@ -14,8 +14,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/c-bata/go-prompt";
-      rev =  "c52492ff1b386e5c0ba5271b5eaad165fab09eca";
-      sha256 = "14k8anchf0rcpxfbb2acrajdqrfspscbkn47m4py1zh5rkk6b9p9";
+      rev =  "09daf6ae57865e436aab9ede6b66b490036e87de";
+      sha256 = "1s58y0i67x2yvi3iisdhj2qqrbl4kz0viy06caip8ykhxpvvkq30";
     };
   }
   {
diff --git a/pkgs/development/tools/kubicorn/default.nix b/pkgs/development/tools/kubicorn/default.nix
new file mode 100644
index 000000000000..fb76aed7b9eb
--- /dev/null
+++ b/pkgs/development/tools/kubicorn/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+with stdenv.lib;
+
+buildGoPackage rec {
+  name = "kubicorn-${version}";
+  version = "2018-10-13-${stdenv.lib.strings.substring 0 7 rev}";
+  rev = "4c7f3623e9188fba43778271afe161a4facfb657";
+
+  src = fetchFromGitHub {
+    rev = rev;
+    owner = "kubicorn";
+    repo = "kubicorn";
+    sha256 = "18h5sj4lcivrwjq2hzn7c3g4mblw17zicb5nma8sh7sakwzyg1k9";
+  };
+
+  subPackages = ["."];
+  goPackagePath = "github.com/kubicorn/kubicorn";
+
+  meta = {
+    description = "Simple, cloud native infrastructure for Kubernetes";
+    homepage = http://kubicorn.io/;
+    maintainers = with stdenv.lib.maintainers; [ offline ];
+    license = stdenv.lib.licenses.asl20;
+  };
+}
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index 15ae07962c59..38b495d89a63 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -3,9 +3,9 @@
 
 buildGoPackage rec {
   name = "kustomize-${version}";
-  version = "1.0.9";
-  # rev is the 1.0.8 commit, mainly for kustomize version command output
-  rev = "ec86b30d2b01a8fa62e645f024f26bfea5dcd30d";
+  version = "1.0.10";
+  # rev is the 1.0.10 commit, mainly for kustomize version command output
+  rev = "383b3e798b7042f8b7431f93e440fb85631890a3";
 
   goPackagePath = "sigs.k8s.io/kustomize";
 
@@ -17,7 +17,7 @@ buildGoPackage rec {
   '';
 
   src = fetchFromGitHub {
-    sha256 = "06a0iic8sp745q71bh0k2zbcdhppp85bx9c3fwwr4wl77dlybz4f";
+    sha256 = "1z78d5j2w78x4ks4v745050g2ffmirj03v7129dib2lfhfjra8aj";
     rev = "v${version}";
     repo = "kustomize";
     owner = "kubernetes-sigs";
diff --git a/pkgs/development/tools/scss-lint/Gemfile b/pkgs/development/tools/scss-lint/Gemfile
new file mode 100644
index 000000000000..05eac2332f5b
--- /dev/null
+++ b/pkgs/development/tools/scss-lint/Gemfile
@@ -0,0 +1,2 @@
+source "https://rubygems.org"
+gem "scss_lint"
diff --git a/pkgs/development/tools/scss-lint/Gemfile.lock b/pkgs/development/tools/scss-lint/Gemfile.lock
new file mode 100644
index 000000000000..546dfabe4d76
--- /dev/null
+++ b/pkgs/development/tools/scss-lint/Gemfile.lock
@@ -0,0 +1,25 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ffi (1.9.25)
+    rake (12.3.1)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.9.10)
+      ffi (>= 0.5.0, < 2)
+    sass (3.7.2)
+      sass-listen (~> 4.0.0)
+    sass-listen (4.0.0)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+    scss_lint (0.57.1)
+      rake (>= 0.9, < 13)
+      sass (~> 3.5, >= 3.5.5)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  scss_lint
+
+BUNDLED WITH
+   1.16.3
diff --git a/pkgs/development/tools/scss-lint/default.nix b/pkgs/development/tools/scss-lint/default.nix
new file mode 100644
index 000000000000..d1d0dbababa2
--- /dev/null
+++ b/pkgs/development/tools/scss-lint/default.nix
@@ -0,0 +1,15 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+  pname = "scss_lint";
+  gemdir = ./.;
+  exes = [ "scss-lint" ];
+
+  meta = with lib; {
+    description = "A tool to help keep your SCSS files clean and readable";
+    homepage    = https://github.com/brigade/scss-lint;
+    license     = licenses.mit;
+    maintainers = [ maintainers.lovek323 ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/scss-lint/gemset.nix b/pkgs/development/tools/scss-lint/gemset.nix
new file mode 100644
index 000000000000..46747f049396
--- /dev/null
+++ b/pkgs/development/tools/scss-lint/gemset.nix
@@ -0,0 +1,62 @@
+{
+  ffi = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpm2dis1j7zvvy3lg7axz9jml316zrn7s0j59vyq3qr127z0m7q";
+      type = "gem";
+    };
+    version = "1.9.25";
+  };
+  rake = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
+      type = "gem";
+    };
+    version = "12.3.1";
+  };
+  rb-fsevent = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yfsgw5n7pkpyky6a9wkf1g9jafxb0ja7gz0qw0y14fd2jnzfh71";
+      type = "gem";
+    };
+    version = "0.9.10";
+  };
+  sass = {
+    dependencies = ["sass-listen"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1phs6hnd8b95m7n5wbh5bsclmwaajd1sqlgw9fmj72bfqldbmcqa";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sass-listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df";
+      type = "gem";
+    };
+    version = "4.0.0";
+  };
+  scss_lint = {
+    dependencies = ["rake" "sass"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dv4ff1lqbgqdx99nwg059c983dhw67kvvjd21f6vf62cjx09lpn";
+      type = "gem";
+    };
+    version = "0.57.1";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/development/tools/xcpretty/Gemfile b/pkgs/development/tools/xcpretty/Gemfile
new file mode 100644
index 000000000000..0b37143fe0eb
--- /dev/null
+++ b/pkgs/development/tools/xcpretty/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'xcpretty'
diff --git a/pkgs/development/tools/xcpretty/Gemfile.lock b/pkgs/development/tools/xcpretty/Gemfile.lock
new file mode 100644
index 000000000000..6f1ba7545a82
--- /dev/null
+++ b/pkgs/development/tools/xcpretty/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    rouge (2.0.7)
+    xcpretty (0.3.0)
+      rouge (~> 2.0.7)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  xcpretty
+
+BUNDLED WITH
+   1.16.4
diff --git a/pkgs/development/tools/xcpretty/default.nix b/pkgs/development/tools/xcpretty/default.nix
new file mode 100644
index 000000000000..99af752086f6
--- /dev/null
+++ b/pkgs/development/tools/xcpretty/default.nix
@@ -0,0 +1,27 @@
+{ lib, bundlerApp, bundler, bundix }:
+
+bundlerApp {
+  pname = "xcpretty";
+  gemdir = ./.;
+
+  exes = [ "xcpretty" ];
+
+  passthru = {
+    updateScript = ''
+      set -e
+      echo
+      cd ${toString ./.}
+      ${bundler}/bin/bundle lock --update
+      ${bundix}/bin/bundix
+    '';
+  };
+
+  meta = with lib; {
+    description     = "Flexible and fast xcodebuild formatter";
+    homepage        = https://github.com/supermarin/xcpretty;
+    license         = licenses.mit;
+    maintainers     = with maintainers; [
+      nicknovitski
+    ];
+  };
+}
diff --git a/pkgs/development/tools/xcpretty/gemset.nix b/pkgs/development/tools/xcpretty/gemset.nix
new file mode 100644
index 000000000000..30c68a93c13f
--- /dev/null
+++ b/pkgs/development/tools/xcpretty/gemset.nix
@@ -0,0 +1,19 @@
+{
+  rouge = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sfikq1q8xyqqx690iiz7ybhzx87am4w50w8f2nq36l3asw4x89d";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  xcpretty = {
+    dependencies = ["rouge"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xq47q2h5llj7b54rws4796904vnnjz7qqnacdv7wlp3gdbwrivm";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/games/boohu/default.nix b/pkgs/games/boohu/default.nix
index 92eccd67a1f1..ccfdf8d905c2 100644
--- a/pkgs/games/boohu/default.nix
+++ b/pkgs/games/boohu/default.nix
@@ -3,13 +3,13 @@
 buildGoPackage rec {
 
   name = "boohu-${version}";
-  version = "0.10.0";
+  version = "0.11.0";
 
   goPackagePath = "git.tuxfamily.org/boohu/boohu.git";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/boohu/downloads/boohu-${version}.tar.gz";
-    sha256 = "a4d1fc488cfeecbe0a5e9be1836d680951941014f926351692a8dbed9042eba6";
+    sha256 = "1qc3mz1mj6byyslmx1afprg1l7x8rcy7i004sy32g590jaahwqdr";
   };
 
   buildFlags = "--tags ansi";
diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix
index 7f7ec00bdd64..99870ca52dee 100644
--- a/pkgs/games/hyperrogue/default.nix
+++ b/pkgs/games/hyperrogue/default.nix
@@ -3,19 +3,21 @@
 
 stdenv.mkDerivation rec {
   name = "hyperrogue-${version}";
-  version = "10.4j";
+  version = "10.5a";
 
   src = fetchFromGitHub {
     owner = "zenorogue";
     repo = "hyperrogue";
     rev = "v${version}";
-    sha256 = "0p0aplfr5hs5dmkgbd4rhvrdk33gss1wdb7knd2vf27n4c2avjcl";
+    sha256 = "1s5jm5qrbw60s8q73fzjk9g2fmapd0i7zmrna2dqx55i1gg9d597";
   };
 
   CPPFLAGS = "-I${SDL.dev}/include/SDL";
 
   buildInputs = [ autoreconfHook SDL SDL_ttf SDL_gfx SDL_mixer libpng glew ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     homepage = http://www.roguetemple.com/z/hyper/;
     description = "A roguelike game set in hyperbolic geometry";
diff --git a/pkgs/misc/cups/drivers/estudio/default.nix b/pkgs/misc/cups/drivers/estudio/default.nix
index aca668add374..83093da9c0aa 100644
--- a/pkgs/misc/cups/drivers/estudio/default.nix
+++ b/pkgs/misc/cups/drivers/estudio/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
       TOSHIBA e-STUDIO6540C, TOSHIBA e-STUDIO6550C, TOSHIBA e-STUDIO6560C,
       TOSHIBA e-STUDIO6570C and TOSHIBA e-STUDIO7506AC.
     '';
-    homepage = https://www.toshiba-business.com.au/support/drivers;
+    homepage = http://business.toshiba.com/support/downloads/index.html;
     license = licenses.unfree;
     maintainers = [ maintainers.jpotier ];
   };
diff --git a/pkgs/misc/vscode-extensions/cpptools/default.nix b/pkgs/misc/vscode-extensions/cpptools/default.nix
index 539d03d66fe1..06f86582d535 100644
--- a/pkgs/misc/vscode-extensions/cpptools/default.nix
+++ b/pkgs/misc/vscode-extensions/cpptools/default.nix
@@ -34,8 +34,9 @@ let
     name = "cpptools-language-component-binaries";
 
     src = fetchzip {
-      url = "https://download.visualstudio.microsoft.com/download/pr/e8bc2ccc-bb10-4d40-8e29-edcd78986e9a/2e86fa29aefdbde2ea2cd1a6fceadeaa/bin_linux.zip";
-      sha256 = "1hvrbp3c4733aryslgyh3l5azmqkw398j2wbgr3w788fphg4v6cc";
+      # Follow https://go.microsoft.com/fwlink/?linkid=2037608
+      url = "https://download.visualstudio.microsoft.com/download/pr/97ed3eeb-b31e-421c-92dc-4f3a98af301e/069a1e6ab1b4b017853a7e9e08067744/bin_linux.zip";
+      sha256 = "19flm4vcrg89x0b20bd0g45apabzfqgvcpjddnmyk312jc242gmb";
     };
 
     patchPhase = ''
@@ -67,8 +68,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "cpptools";
     publisher = "ms-vscode";
-    version = "0.19.0";
-    sha256 = "1x97mz859bzr4gxy6cnqgd8qmvnrjn9zdxh457slsxsk4wqcfmgj";
+    version = "0.20.1";
+    sha256 = "1gmnkrn26n57vx2nm5hhalkkl2irak38m2lklgja0bi10jb6y08l";
   };
 
   buildInputs = [
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 69ce2fe71c6c..6254ed7fac04 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.83";
+  version = "4.14.84";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "081zxc7ikcn1hy22pw5af0dql9pq24h2anfgnykc83jfjbg2h5vh";
+    sha256 = "0653fg6p0wg81i4mj8n4lghn8h8jx3pkbyp6sm22p2b1rwpgj893";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 13e4a56f4712..54b03fc88be3 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.4";
+  version = "4.19.5";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1aj7zwrjwrjb3m3nfccykmcvhrrjsk1zchc5g4f63xd1pc35d3x3";
+    sha256 = "0xggarlff54l9zxm5qr14nzd514xxg8i1akyxzlb0znfkk19x0wc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index b0733857c80e..01bcc6f25250 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.164";
+  version = "4.4.165";
   extraMeta.branch = "4.4";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "041w65dxsdcdpf7isis2r4xabfm9pbhfgxxx7n9d1nv7grss3d4v";
+    sha256 = "19zmigb1avq63n0cbvsqaw9ygddwx13mrvl80p92abw7ns26b2va";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 35fd90b61602..2fc57a104eaf 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.140";
+  version = "4.9.141";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0hzrha3rh90jwxjmrh4npd0q56pf512nmb8i2p484k9cikssx27q";
+    sha256 = "09mc5sxzzxmks20vslimaaaw0aamjcc3lvpyjydmr78s25q5zfsp";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/sssd/default.nix b/pkgs/os-specific/linux/sssd/default.nix
index 4224c4900db6..7ee0f8d4ba18 100644
--- a/pkgs/os-specific/linux/sssd/default.nix
+++ b/pkgs/os-specific/linux/sssd/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchurl, pkgs, glibc, augeas, dnsutils, c-ares, curl,
+{ stdenv, fetchurl, fetchpatch, glibc, augeas, dnsutils, c-ares, curl,
   cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen,
   python, python3, pam, popt, talloc, tdb, tevent, pkgconfig, ldb, openldap,
   pcre, kerberos, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
   libuuid, ldap, systemd, nspr, check, cmocka, uid_wrapper,
-  nss_wrapper, ncurses, Po4a, http-parser, jansson
-  , withSudo ? false }:
+  nss_wrapper, ncurses, Po4a, http-parser, jansson,
+  docbook_xsl, docbook_xml_dtd_44,
+  withSudo ? false }:
 
 let
-  docbookFiles = "${pkgs.docbook_xsl}/share/xml/docbook-xsl/catalog.xml:${pkgs.docbook_xml_dtd_44}/xml/dtd/docbook/catalog.xml";
+  docbookFiles = "${docbook_xsl}/share/xml/docbook-xsl/catalog.xml:${docbook_xml_dtd_44}/xml/dtd/docbook/catalog.xml";
 in
 stdenv.mkDerivation rec {
   name = "sssd-${version}";
@@ -18,13 +19,21 @@ stdenv.mkDerivation rec {
     sha256 = "032ppk57qs1lnvz7pb7lw9ldwm9i1yagh9fzgqgn6na3bg61ynzy";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "duplicate-case-value.diff";
+      url = "https://github.com/SSSD/sssd/commit/1ee12b05570fcfb8.diff";
+      sha256 = "01y8i8cfs2gydn84097cl5fynx0db8b0vr345gh57ypp84in3ixw";
+    })
+  ];
+
   # Something is looking for <libxml/foo.h> instead of <libxml2/libxml/foo.h>
   NIX_CFLAGS_COMPILE = "-I${libxml2.dev}/include/libxml2";
 
   preConfigure = ''
     export SGML_CATALOG_FILES="${docbookFiles}"
     export PYTHONPATH=${ldap}/lib/python2.7/site-packages
-    export PATH=$PATH:${pkgs.openldap}/libexec
+    export PATH=$PATH:${openldap}/libexec
 
     configureFlagsArray=(
       --prefix=$out
diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix
new file mode 100644
index 000000000000..b8990484cb98
--- /dev/null
+++ b/pkgs/os-specific/linux/targetcli/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, python, fetchFromGitHub }:
+
+python.pkgs.buildPythonApplication rec {
+  pname = "targetcli";
+  version = "2.1.fb49";
+
+  src = fetchFromGitHub {
+    owner = "open-iscsi";
+    repo = "${pname}-fb";
+    rev = "v${version}";
+    sha256 = "093dmwc5g6yz4cdgpbfszmc97i7nd286w4x447dvg22hvwvjwqhh";
+  };
+
+  propagatedBuildInputs = with python.pkgs; [ configshell rtslib ];
+
+  meta = with stdenv.lib; {
+    description = "A command shell for managing the Linux LIO kernel target";
+    homepage = https://github.com/open-iscsi/targetcli-fb;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 1f8429a60d1b..e4a4bcf5760a 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "pdns-recursor-${version}";
-  version = "4.1.7";
+  version = "4.1.8";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "0syvxlfxy3h2x1kvqkj7qqk8k85y42qjq30pcqqmy69v3pymq14s";
+    sha256 = "1xg5swappik8v5mjyl7magw7picf5cqp6rbhckd6ijssz16qzy38";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/servers/echoip/default.nix b/pkgs/servers/echoip/default.nix
new file mode 100644
index 000000000000..e71abb8bc00f
--- /dev/null
+++ b/pkgs/servers/echoip/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "echoip-${version}";
+  version = "unstable-2018-11-20";
+
+  goPackagePath = "github.com/mpolden/echoip";
+
+  src = fetchFromGitHub {
+    owner = "mpolden";
+    repo = "echoip";
+    rev = "4bfaf671b9f75a7b2b37543b2991401cbf57f1f0";
+    sha256 = "0n5d9i8cc5lqgy5apqd3zhyl3h1xjacf612z8xpvbm75jnllcvxy";
+  };
+
+  goDeps = ./deps.nix;
+
+  outputs = [ "bin" "out" ];
+
+  postInstall = ''
+    mkdir -p $out
+    cp $src/index.html $out/index.html
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/mpolden/echoip;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ rvolosatovs ];
+  };
+}
diff --git a/pkgs/servers/echoip/deps.nix b/pkgs/servers/echoip/deps.nix
new file mode 100644
index 000000000000..4e4f0799bdae
--- /dev/null
+++ b/pkgs/servers/echoip/deps.nix
@@ -0,0 +1,74 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.1";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/jessevdk/go-flags";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jessevdk/go-flags";
+      rev = "v1.4.0";
+      sha256 = "0algnnigph27spgn655zm4723yfjxjjvlf4k14z9drj3682df25a";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/oschwald/geoip2-golang";
+    fetch = {
+      type = "FromGitHub";
+      owner = "oschwald";
+      repo = "geoip2-golang";
+      rev = "v1.2.1";
+      sha256 = "0zpgpz577rghvgis6ji9l99pq87z5izbgzmnbyn3dy533bayrgpw";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/oschwald/maxminddb-golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oschwald/maxminddb-golang";
+      rev = "v1.2.1";
+      sha256 = "0nlip5a2yiig0sv9y3ky4kn8730236wal3zjcs4yfgnw6nxl3rjr";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.2.2";
+      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "37707fdb30a5";
+      sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
+    };
+  }
+]
diff --git a/pkgs/servers/http/nginx/mainline.nix b/pkgs/servers/http/nginx/mainline.nix
index 93dfbbad2b41..8f33fa8d33b1 100644
--- a/pkgs/servers/http/nginx/mainline.nix
+++ b/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix (args // {
-  version = "1.15.6";
-  sha256 = "1ikchbnq1dv8wjnsf6jj24xkb36vcgigyps71my8r01m41ycdn53";
+  version = "1.15.7";
+  sha256 = "14yz5cag9jdi088kdyammpi0ixrzi91bc0nwdldj42hfdhpyl8lg";
 })
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index f80a01e20f88..6c6ddf651e62 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -9,7 +9,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dovecot-2.3.3";
+  name = "dovecot-2.3.4";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/2.3/${name}.tar.gz";
-    sha256 = "13kd0rxdg9scwnx6n24p6mv8p6dyh7v8s7sqv55gp2i54pp2gbqm";
+    sha256 = "01ggzf7b3jpl89mjiqr7xbpbs181g2gjf6wzg70qaqfzz3ppc6yr";
   };
 
   preConfigure = ''
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index a0b03193729a..73d6b5d593c9 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "dovecot-pigeonhole-${version}";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
-    sha256 = "08i6vw6k2v906s4sc6wl9ffpz6blzdga6vglqpqjm7jzq10jfbz0";
+    sha256 = "05l5y0gc8ycswdbl58j7kbx5gq1z7mjkazjccmgbq6h0gbk9jyal";
   };
 
   buildInputs = [ dovecot openssl ];
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index ee302b48ee42..f802de9df9df 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper, tzdata }:
+{ lib, stdenv, glibc, fetchurl, zlib, readline, libossp_uuid, openssl, libxml2, makeWrapper, tzdata, systemd }:
 
 let
 
   common = { version, sha256, psqlSchema }:
    let atLeast = lib.versionAtLeast version; in stdenv.mkDerivation (rec {
     name = "postgresql-${version}";
+    inherit version;
 
     src = fetchurl {
       url = "mirror://postgresql/source/v${version}/${name}.tar.bz2";
@@ -16,9 +17,10 @@ let
 
     buildInputs =
       [ zlib readline openssl libxml2 makeWrapper ]
+      ++ lib.optionals (atLeast "9.6" && !stdenv.isDarwin) [ systemd ]
       ++ lib.optionals (!stdenv.isDarwin) [ libossp_uuid ];
 
-    enableParallelBuilding = true;
+    enableParallelBuilding = !stdenv.isDarwin;
 
     makeFlags = [ "world" ];
 
@@ -33,6 +35,7 @@ let
       "--sysconfdir=/etc"
       "--libdir=$(lib)/lib"
       "--with-system-tzdata=${tzdata}/share/zoneinfo"
+      (lib.optionalString (atLeast "9.6" && !stdenv.isDarwin) "--with-systemd")
       (if stdenv.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
     ];
 
@@ -131,7 +134,7 @@ in {
 
   postgresql_11 = common {
     version = "11.1";
-    psqlSchema = "11.0";
+    psqlSchema = "11.1";
     sha256 = "026v0sicsh7avzi45waf8shcbhivyxmi7qgn9fd1x0vl520mx0ch";
   };
 
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index b1097c1e96fc..154b56596771 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "traefik-${version}";
-  version = "1.7.1";
+  version = "1.7.4";
 
   goPackagePath = "github.com/containous/traefik";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "containous";
     repo = "traefik";
     rev = "v${version}";
-    sha256 = "13vvwb1mrnxn4y1ga37pc5c46qdj5jkrcnyn2w9rb59madgq4c77";
+    sha256 = "0y2ac8z09s76qf13m7dgzmhqa5868q7g9r2gxxbq3lhhzwik31vp";
   };
 
   buildInputs = [ go-bindata bash ];
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index 9315595f8eca..809b2d0b553c 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -33,4 +33,6 @@ with pkgs;
   nixos-functions = callPackage ./nixos-functions {};
 
   patch-shebangs = callPackage ./patch-shebangs {};
+
+  writers = callPackage ../build-support/writers/test.nix {};
 }
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
new file mode 100644
index 000000000000..b24b88fa96a2
--- /dev/null
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl }:
+
+let
+
+  version = "0.16.2";
+
+  # switch the dropdown to “manual” on https://pulumi.io/quickstart/install.html # TODO: update script
+  pulumiArchPackage = {
+    "x86_64-linux" = {
+      url = "https://get.pulumi.com/releases/sdk/pulumi-v${version}-linux-x64.tar.gz";
+      sha256 = "16qgy2pj3xkf1adi3882fpsl99jwsm19111fi5vzh1xqf39sg549";
+    };
+    "x86_64-darwin" = {
+      url = "https://get.pulumi.com/releases/sdk/pulumi-v${version}-darwin-x64.tar.gz";
+      sha256 = "18ck9khspa0x798bdlwk8dzylbsq7s35xmla8yasd9qqlab1yy1a";
+    };
+  };
+
+in stdenv.mkDerivation rec {
+  inherit version;
+  name = "pulumi-${version}";
+
+  src = fetchurl pulumiArchPackage.${stdenv.hostPlatform.system};
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp * $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pulumi.io/;
+    description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive";
+    license = with licenses; [ asl20 ];
+    platforms = builtins.attrNames pulumiArchPackage;
+    maintainers = with maintainers; [
+      peterromfeldhk
+    ];
+  };
+}
diff --git a/pkgs/tools/audio/beets/alternatives-plugin.nix b/pkgs/tools/audio/beets/alternatives-plugin.nix
index a3e7f9a63d65..38902f234a2b 100644
--- a/pkgs/tools/audio/beets/alternatives-plugin.nix
+++ b/pkgs/tools/audio/beets/alternatives-plugin.nix
@@ -2,20 +2,16 @@
 
 pythonPackages.buildPythonApplication rec {
   name = "beets-alternatives-${version}";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     repo = "beets-alternatives";
-    owner = "wisp3rwind";
+    owner = "geigerzaehler";
     # This is 0.8.2 with fixes against Beets 1.4.6 and Python 3 compatibility.
-    rev = "331eb406786a2d4dc3dd721a534225b087474b1e";
-    sha256 = "1avds2x5sp72c89l1j52pszprm85g9sm750jh1dhnyvgcbk91cb5";
+    rev = "v${version}";
+    sha256 = "19160gwg5j6asy8mc21g2kf87mx4zs9x2gbk8q4r6330z4kpl5pm";
   };
 
-  postPatch = ''
-    sed -i -e '/long_description/d' setup.py
-  '';
-
   nativeBuildInputs = [ beets pythonPackages.nose ];
 
   checkPhase = "nosetests";
@@ -23,6 +19,7 @@ pythonPackages.buildPythonApplication rec {
   meta = {
     description = "Beets plugin to manage external files";
     homepage = https://github.com/geigerzaehler/beets-alternatives;
+    maintainers = [ stdenv.lib.maintainers.aszlig ];
     license = stdenv.lib.licenses.mit;
   };
 }
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 8f0cc6c4f5c6..1cba381a57bf 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchFromGitHub, writeScript, glibcLocales, diffPlugins
 , pythonPackages, imagemagick, gobjectIntrospection, gst_all_1
+, fetchpatch
 
 # Attributes needed for tests of the external plugins
 , callPackage, beets
@@ -155,6 +156,14 @@ in pythonPackages.buildPythonApplication rec {
   patches = [
     ./replaygain-default-bs1770gain.patch
     ./keyfinder-default-bin.patch
+
+    # Fix Python 3.7 compatibility
+    (fetchpatch {
+      url = "https://github.com/beetbox/beets/commit/"
+          + "15d44f02a391764da1ce1f239caef819f08beed8.patch";
+      sha256 = "12rjb4959nvnrm3fvvki7chxjkipa0cy8i0yi132xrcn8141dnpm";
+      excludes = [ "docs/changelog.rst" ];
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/backup/wal-g/default.nix b/pkgs/tools/backup/wal-g/default.nix
index 0cd18dae1c27..ce9237a7c6bc 100644
--- a/pkgs/tools/backup/wal-g/default.nix
+++ b/pkgs/tools/backup/wal-g/default.nix
@@ -1,16 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, brotli }:
 
 buildGoPackage rec {
   name = "wal-g-${version}";
-  version = "0.1.12";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner  = "wal-g";
     repo   = "wal-g";
     rev    = "v${version}";
-    sha256 = "06k71xz96jpg6966xj48a8j07v0vk37b5v2k1bnqrbin4sma3s0c";
+    sha256 = "08lk7by1anxpd9v97xbf9443kk4n1w63zaar2nz86w8i3k3b4id9";
   };
 
+  buildInputs = [ brotli ];
+
+  doCheck = true;
+
   goPackagePath = "github.com/wal-g/wal-g";
   meta = {
     inherit (src.meta) homepage;
diff --git a/pkgs/tools/misc/nbench/default.nix b/pkgs/tools/misc/nbench/default.nix
new file mode 100644
index 000000000000..2312ce236abd
--- /dev/null
+++ b/pkgs/tools/misc/nbench/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "nbench-byte-${version}";
+  version = "2.2.3";
+
+  src = fetchurl {
+    url = "http://www.math.utah.edu/~mayer/linux/${name}.tar.gz";
+    sha256 = "1b01j7nmm3wd92ngvsmn2sbw43sl9fpx4xxmkrink68fz1rx0gbj";
+  };
+
+  buildInputs = [ stdenv.cc.libc.static ];
+  prePatch = ''
+    substituteInPlace nbench1.h --replace '"NNET.DAT"' "\"$out/NNET.DAT\""
+  '';
+  preBuild = ''
+    makeFlagsArray=(CC=$CC)
+  '';
+  installPhase = ''
+    mkdir -p $out/bin
+    cp nbench $out/bin
+    cp NNET.DAT $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://www.math.utah.edu/~mayer/linux/bmark.html;
+    description = "A synthetic computing benchmark program";
+    platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ bennofs ];
+  };
+}
diff --git a/pkgs/tools/networking/p2p/bittornado/default.nix b/pkgs/tools/networking/p2p/bittornado/default.nix
deleted file mode 100644
index 8cda50bcb1d3..000000000000
--- a/pkgs/tools/networking/p2p/bittornado/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, python3, fetchFromGitHub }:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "BitTornado";
-  version = "unstable-2018-02-09";
-
-  src = fetchFromGitHub {
-    owner = "effigies";
-    repo = "BitTornado";
-    rev = "a3e6d8bcdf9d99de064dc58b4a3e909e0349e589";
-    sha256 = "099bci3as592psf8ymmz225qyz2lbjhya7g50cb7hk64k92mqk9k";
-  };
-
-  postFixup = ''
-    for i in $(ls $out/bin); do		
-      mv $out/bin/$i $out/bin/''${i%.py}
-    done
-  '';
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "John Hoffman's fork of the original bittorrent";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda ];
-  };
-}
diff --git a/pkgs/tools/security/mkpasswd/default.nix b/pkgs/tools/security/mkpasswd/default.nix
index b8da305c36d1..3d30fef02e29 100644
--- a/pkgs/tools/security/mkpasswd/default.nix
+++ b/pkgs/tools/security/mkpasswd/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
 
   src = whois.src;
 
-  buildInputs = [ perl ];
+  nativeBuildInputs = [ perl ];
 
   preConfigure = whois.preConfigure;
   buildPhase = "make mkpasswd";
diff --git a/pkgs/tools/system/efivar/default.nix b/pkgs/tools/system/efivar/default.nix
index 8f1367d3fdce..4072b8834cab 100644
--- a/pkgs/tools/system/efivar/default.nix
+++ b/pkgs/tools/system/efivar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, popt }:
+{ stdenv, buildPackages, fetchFromGitHub, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
   name = "efivar-${version}";
@@ -15,6 +15,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ popt ];
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   makeFlags = [
     "prefix=$(out)"
diff --git a/pkgs/tools/text/gist/default.nix b/pkgs/tools/text/gist/default.nix
index f5dcbb9191c6..7091031d28f0 100644
--- a/pkgs/tools/text/gist/default.nix
+++ b/pkgs/tools/text/gist/default.nix
@@ -1,21 +1,11 @@
-{ buildRubyGem, lib, ruby, makeWrapper }:
+{ buildRubyGem, lib, ruby }:
 
 buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "gist";
-  version = "4.6.2";
-  source.sha256 = "0zrw84k2982aiansmv2aj3101d3giwa58221n6aisvg5jq5kmiib";
-
-  buildInputs = [ makeWrapper ];
-
-  postInstall = ''
-    # Fix the default ruby wrapper
-    makeWrapper $out/${ruby.gemPath}/bin/gist $out/bin/gist \
-      --set GEM_PATH $out/${ruby.gemPath}:${ruby}/${ruby.gemPath}
-  '';
-
-  dontStrip = true;
+  version = "5.0.0";
+  source.sha256 = "1i0a73mzcjv4mj5vjqwkrx815ydsppx3v812lxxd9mk2s7cj1vyd";
 
   meta = with lib; {
     description = "Upload code to https://gist.github.com (or github enterprise)";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cc0cc1edd15b..10d667074cd6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -183,7 +183,7 @@ with pkgs;
   fetchfossil = callPackage ../build-support/fetchfossil { };
 
   fetchgit = callPackage ../build-support/fetchgit {
-    git = gitMinimal;
+    git = buildPackages.gitMinimal;
   };
 
   fetchgitPrivate = callPackage ../build-support/fetchgit/private.nix { };
@@ -420,6 +420,8 @@ with pkgs;
 
   iconConvTools = callPackage ../build-support/icon-conv-tools {};
 
+  #package writers
+  writers = callPackage ../build-support/writers {};
 
   ### TOOLS
 
@@ -593,6 +595,8 @@ with pkgs;
 
   autoflake = callPackage ../development/tools/analysis/autoflake { };
 
+  autospotting = callPackage ../applications/misc/autospotting { };
+
   avfs = callPackage ../tools/filesystems/avfs { };
 
   avldrums-lv2 = callPackage ../applications/audio/avldrums-lv2 { };
@@ -940,8 +944,6 @@ with pkgs;
 
   bitbucket-cli = python2Packages.bitbucket-cli;
 
-  bittornado = callPackage ../tools/networking/p2p/bittornado { };
-
   blink = callPackage ../applications/networking/instant-messengers/blink { };
 
   blockhash = callPackage ../tools/graphics/blockhash { };
@@ -2890,11 +2892,11 @@ with pkgs;
 
   gitlab-runner = callPackage ../development/tools/continuous-integration/gitlab-runner { };
 
-  gitlab-shell = callPackage ../applications/version-management/gitlab-shell { };
+  gitlab-shell = callPackage ../applications/version-management/gitlab/gitlab-shell { };
 
-  gitlab-workhorse = callPackage ../applications/version-management/gitlab-workhorse { };
+  gitlab-workhorse = callPackage ../applications/version-management/gitlab/gitlab-workhorse { };
 
-  gitaly = callPackage ../applications/version-management/gitaly { };
+  gitaly = callPackage ../applications/version-management/gitlab/gitaly { };
 
   gitstats = callPackage ../applications/version-management/gitstats { };
 
@@ -3776,6 +3778,8 @@ with pkgs;
     pythonPackages = python3Packages;
   };
 
+  nbench = callPackage ../tools/misc/nbench { };
+
   netdata = callPackage ../tools/system/netdata {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation IOKit;
   };
@@ -4674,6 +4678,10 @@ with pkgs;
   pandoc = haskell.lib.overrideCabal (haskell.lib.justStaticExecutables haskellPackages.pandoc) (drv: {
     configureFlags = drv.configureFlags or [] ++ ["-fembed_data_files"];
     buildDepends = drv.buildDepends or [] ++ [haskellPackages.file-embed];
+    postInstall = ''
+      mkdir -p $out/share/man/man1
+      cp man/pandoc.1 $out/share/man/man1/
+    '';
   });
 
   pamtester = callPackage ../tools/security/pamtester { };
@@ -4715,6 +4723,8 @@ with pkgs;
       };
   };
 
+  pulumi-bin = callPackage ../tools/admin/pulumi { };
+
   p0f = callPackage ../tools/security/p0f { };
 
   pngout = callPackage ../tools/graphics/pngout { };
@@ -5632,6 +5642,8 @@ with pkgs;
 
   znapzend = callPackage ../tools/backup/znapzend { };
 
+  targetcli = callPackage ../os-specific/linux/targetcli { };
+
   tarsnap = callPackage ../tools/backup/tarsnap { };
 
   tarsnapper = callPackage ../tools/backup/tarsnapper { };
@@ -8561,6 +8573,7 @@ with pkgs;
   gradle_2_14 = self.gradleGen.gradle_2_14;
   gradle_2_5 = self.gradleGen.gradle_2_5;
   gradle_3_5 = self.gradleGen.gradle_3_5;
+  gradle_4_10 = self.gradleGen.gradle_4_10;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -8658,6 +8671,8 @@ with pkgs;
 
   kube-prompt = callPackage ../development/tools/kube-prompt { };
 
+  kubicorn = callPackage ../development/tools/kubicorn {  };
+
   kustomize = callPackage ../development/tools/kustomize { };
 
   kythe = callPackage ../development/tools/kythe { };
@@ -8912,6 +8927,8 @@ with pkgs;
 
   sbt-extras = callPackage ../development/tools/build-managers/sbt-extras { };
 
+  scss-lint = callPackage ../development/tools/scss-lint { };
+
   shallot = callPackage ../tools/misc/shallot { };
 
   shards = callPackage ../development/tools/build-managers/shards { };
@@ -8959,8 +8976,12 @@ with pkgs;
 
   spoofer-gui = callPackage ../tools/networking/spoofer { withGUI = true; };
 
+  sqlcheck = callPackage ../development/tools/database/sqlcheck { };
+
   sqlitebrowser = libsForQt5.callPackage ../development/tools/database/sqlitebrowser { };
 
+  sqlite-web = callPackage ../development/tools/database/sqlite-web { };
+
   sselp = callPackage ../tools/X11/sselp{ };
 
   stm32flash = callPackage ../development/tools/misc/stm32flash { };
@@ -9057,6 +9078,8 @@ with pkgs;
     deps = [ xcbuild ];
   } ../development/tools/xcbuild/setup-hook.sh  ;
 
+  xcpretty = callPackage ../development/tools/xcpretty { };
+
   xmlindent = callPackage ../development/web/xmlindent {};
 
   xpwn = callPackage ../development/mobile/xpwn {};
@@ -9136,6 +9159,10 @@ with pkgs;
     #      apr with db58 on freebsd (nov 2015), for unknown reasons
   };
 
+  aravis = callPackage ../development/libraries/aravis {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad;
+  };
+
   arb = callPackage ../development/libraries/arb {};
 
   argp-standalone = callPackage ../development/libraries/argp-standalone {};
@@ -16357,6 +16384,8 @@ with pkgs;
 
   eaglemode = callPackage ../applications/misc/eaglemode { };
 
+  echoip = callPackage ../servers/echoip { };
+
   eclipses = recurseIntoAttrs (callPackage ../applications/editors/eclipse {
     jdk = jdk11;
   });
@@ -18701,6 +18730,8 @@ with pkgs;
 
   qtscrobbler = callPackage ../applications/audio/qtscrobbler { };
 
+  quantomatic = callPackage ../applications/science/physics/quantomatic { };
+
   quassel = libsForQt5.callPackage ../applications/networking/irc/quassel {
     monolithic = true;
     daemon = false;
@@ -19293,6 +19324,11 @@ with pkgs;
     vte = gnome3.vte;
   };
 
+  aminal = callPackage ../applications/misc/aminal {
+    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa Kernel;
+    inherit (darwin) cf-private;
+  };
+
   termite-unwrapped = callPackage ../applications/misc/termite {
     vte = gnome3.vte-ng;
   };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 012531799c3d..e8c407d23fac 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -1289,30 +1289,6 @@ let
     };
   };
 
-  CatalystEngineHTTPPrefork = buildPerlPackage rec {
-    name = "Catalyst-Engine-HTTP-Prefork-0.51";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/${name}.tar.gz";
-      sha256 = "1ygmrzc9akjaqfxid8br11ajj9qgfvhkimakcv4ffk4s5v7q2sii";
-    };
-    propagatedBuildInputs = [
-      CatalystRuntime HTTPBody NetServer
-      CookieXS HTTPHeaderParserXS
-    ];
-    buildInputs = [TestPod TestPodCoverage];
-    patches = [
-      # Fix chunked transfers (they were missing the final CR/LF at
-      # the end, which makes curl barf).
-      ../development/perl-modules/catalyst-fix-chunked-encoding.patch
-    ];
-
-    meta = {
-      # Depends on some old version of Catalyst-Runtime that contains
-      # Catalyst::Engine::CGI. But those version do not compile.
-      broken = true;
-    };
-  };
-
   CatalystManual = buildPerlPackage rec {
     name = "Catalyst-Manual-5.9009";
     src = fetchurl {
@@ -1487,20 +1463,6 @@ let
     };
   };
 
-  CatalystPluginHTMLWidget = buildPerlPackage rec {
-    name = "Catalyst-Plugin-HTML-Widget-1.1";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOBTFISH/${name}.tar.gz";
-      sha256 = "b4a4873162f515ec7cead6272533fc347c34711d138cc4c5e46b63fa2b74feff";
-    };
-    propagatedBuildInputs = [ CatalystRuntime HTMLWidget ];
-    meta = {
-      description = "HTML Widget Catalyst Plugin";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      broken = true;
-    };
-  };
-
   CatalystPluginLogHandler = buildPerlModule rec {
     name = "Catalyst-Plugin-Log-Handler-0.08";
     src = fetchurl {
@@ -4024,22 +3986,6 @@ let
     };
   };
 
-  DevelSizeMe = buildPerlPackage {
-    name = "Devel-SizeMe-0.19";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TI/TIMB/Devel-SizeMe-0.19.tar.gz;
-      sha256 = "546e31ba83c0bf7cef37b38a462860461850473479d7d4ac6c0dadfb78d54717";
-    };
-    propagatedBuildInputs = [ DBDSQLite DBI DataDumperConcise HTMLParser JSONXS Moo ];
-    meta = {
-      homepage = https://github.com/timbunce/devel-sizeme;
-      description = "Unknown";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      # See https://rt.cpan.org/Public/Bug/Display.html?id=92348
-      broken = true;
-    };
-  };
-
   DevelTrace = buildPerlPackage {
     name = "Devel-Trace-0.12";
     src = fetchurl {
@@ -13191,15 +13137,6 @@ let
     };
   };
 
-  RegexpCopy = buildPerlPackage rec {
-    name = "Regexp-Copy-0.06";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JD/JDUNCAN/${name}.tar.gz";
-      sha256 = "09c8xb43p1s6ala6g4274az51mf33phyjkp66dpvgkgbi1xfnawp";
-    };
-    meta.broken = true;
-  };
-
   RegexpGrammars = buildPerlModule rec {
     name = "Regexp-Grammars-1.049";
     src = fetchurl {
@@ -14144,40 +14081,6 @@ let
     buildInputs = [ TestToolbox ];
   };
 
-  libfile-stripnondeterminism = buildPerlPackage rec {
-    name = "libstrip-nondeterminism-${version}";
-    version = "0.016";
-
-    src = fetchurl {
-      url = "http://http.debian.net/debian/pool/main/s/strip-nondeterminism/strip-nondeterminism_${version}.orig.tar.gz";
-      sha256 = "1y9lfhxgwyysybing72n3hng2db5njpk2dbb80vskdz75r7ffqjp";
-    };
-
-    buildInputs = [ ArchiveZip pkgs.file ];
-    meta.broken = true;
-  };
-
-
-  strip-nondeterminism = buildPerlPackage rec {
-    name = "strip-nondeterminism-${version}";
-    version = "0.016";
-
-    src = fetchurl {
-      url = "http://http.debian.net/debian/pool/main/s/strip-nondeterminism/strip-nondeterminism_${version}.orig.tar.gz";
-      sha256 = "1y9lfhxgwyysybing72n3hng2db5njpk2dbb80vskdz75r7ffqjp";
-    };
-
-    buildInputs = [ ArchiveZip libfile-stripnondeterminism pkgs.file ];
-
-    meta = with stdenv.lib; {
-      description = "A Perl module for stripping bits of non-deterministic information";
-      license = licenses.gpl3;
-      platforms = platforms.all;
-      maintainers = with maintainers; [ pSub ];
-      broken = true;
-    };
-  };
-
   SubExporter = buildPerlPackage {
     name = "Sub-Exporter-0.987";
     src = fetchurl {
@@ -16358,22 +16261,6 @@ let
     buildInputs = [ ListMoreUtils TestDifferences TestException ];
   };
 
-  TestMagpie = buildPerlPackage {
-    name = "Test-Magpie-0.11";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/S/ST/STEVENL/Test-Magpie-0.11.tar.gz;
-      sha256 = "1c4iy35yg3fa9mrc4phmpz46fkihl6yic6a13fpcxyd3xafd5zhm";
-    };
-    propagatedBuildInputs = [ MooseXTypesStructured SetObject UNIVERSALref aliased ];
-    meta = {
-      description = "Spy on objects to achieve test doubles (mock testing)";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
-    };
-    buildInputs = [ TestFatal Throwable ];
-  };
-
   TestMinimumVersion = buildPerlPackage rec {
     name = "Test-MinimumVersion-0.101082";
     src = fetchurl {
@@ -17064,20 +16951,6 @@ let
     };
   };
 
-  UNIVERSALref = buildPerlPackage rec {
-     name = "UNIVERSAL-ref-0.14";
-     src = fetchurl {
-       url = mirror://cpan/authors/id/J/JJ/JJORE/UNIVERSAL-ref-0.14.tar.gz;
-       sha256 = "1ar8dfj90nn52cb8c6yyj4bi6ya8hk2f2sl0a5q7pmchj321bn1m";
-     };
-     propagatedBuildInputs = [ BUtils ];
-     meta = {
-       description = "Turns ref() into a multimethod";
-       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-       broken = true; # 'OP {aka struct op}' has no member named 'op_sibling'
-     };
-  };
-
   UNIVERSALrequire = buildPerlPackage rec {
     name = "UNIVERSAL-require-0.18";
     src = fetchurl {
@@ -17125,22 +16998,6 @@ let
     };
   };
 
-  UnicodeICUCollator = buildPerlPackage {
-    name = "Unicode-ICU-Collator-0.002";
-    src = fetchurl {
-      url = mirror://cpan/authors/id/T/TO/TONYC/Unicode-ICU-Collator-0.002.tar.gz;
-      sha256 = "0gimwydam0mdgm6qjzzxny4gw8zda9kc2843kcl2xrpq7z7ww3f9";
-    };
-    meta = {
-      description = "Wrapper around ICU collation services";
-      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
-      maintainers = with maintainers; [ ];
-      platforms   = stdenv.lib.platforms.unix;
-      broken = true; # tests fail http://hydra.nixos.org/build/25141764/nixlog/1/raw
-    };
-    buildInputs = [ pkgs.icu ];
-  };
-
   UnicodeLineBreak = buildPerlPackage rec {
     name = "Unicode-LineBreak-2018.003";
     src = fetchurl {
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 29346d57855e..3669c851394d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -398,6 +398,8 @@ in {
     inherit python;
   });
 
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+
   httpsig = callPackage ../development/python-modules/httpsig { };
 
   i3ipc = callPackage ../development/python-modules/i3ipc { };
@@ -422,6 +424,8 @@ in {
 
   markerlib = callPackage ../development/python-modules/markerlib { };
 
+  matchpy = callPackage ../development/python-modules/matchpy { };
+
   monty = callPackage ../development/python-modules/monty { };
 
   mininet-python = (toPythonModule (pkgs.mininet.override{ inherit python; })).py;
@@ -430,10 +434,14 @@ in {
     mpi = pkgs.openmpi;
   };
 
+  multiset = callPackage ../development/python-modules/multiset { };
+
   mwclient = callPackage ../development/python-modules/mwclient { };
 
   mwoauth = callPackage ../development/python-modules/mwoauth { };
 
+  nbval = callPackage ../development/python-modules/nbval { };
+
   nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
 
   neuron = pkgs.neuron.override {
@@ -480,6 +488,8 @@ in {
 
   pdfx = callPackage ../development/python-modules/pdfx { };
 
+  perf = callPackage ../development/python-modules/perf { };
+
   phonopy = callPackage ../development/python-modules/phonopy { };
 
   pims = callPackage ../development/python-modules/pims { };
@@ -613,6 +623,8 @@ in {
 
   pytesseract = callPackage ../development/python-modules/pytesseract { };
 
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+
   pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
   python-binance = callPackage ../development/python-modules/python-binance { };
@@ -744,6 +756,8 @@ in {
 
   adal = callPackage ../development/python-modules/adal { };
 
+  affine = callPackage ../development/python-modules/affine { };
+
   aioconsole = callPackage ../development/python-modules/aioconsole { };
 
   aiodns = callPackage ../development/python-modules/aiodns { };
@@ -995,6 +1009,8 @@ in {
 
   colour = callPackage ../development/python-modules/colour {};
 
+  configshell = callPackage ../development/python-modules/configshell { };
+
   constantly = callPackage ../development/python-modules/constantly { };
 
   cornice = callPackage ../development/python-modules/cornice { };
@@ -1051,6 +1067,8 @@ in {
 
   pyechonest = callPackage ../development/python-modules/pyechonest { };
 
+  pyepsg = callPackage ../development/python-modules/pyepsg { };
+
   pyezminc = callPackage ../development/python-modules/pyezminc { };
 
   billiard = callPackage ../development/python-modules/billiard { };
@@ -1132,6 +1150,8 @@ in {
 
   carrot = callPackage ../development/python-modules/carrot {};
 
+  cartopy = callPackage ../development/python-modules/cartopy {};
+
   case = callPackage ../development/python-modules/case {};
 
   cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
@@ -2413,6 +2433,8 @@ in {
 
   genshi = callPackage ../development/python-modules/genshi { };
 
+  gentools = callPackage ../development/python-modules/gentools { };
+
   gevent = callPackage ../development/python-modules/gevent { };
 
   geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
@@ -2744,6 +2766,8 @@ in {
 
   fs = callPackage ../development/python-modules/fs { };
 
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
+
   libcloud = callPackage ../development/python-modules/libcloud { };
 
   libgpuarray = callPackage ../development/python-modules/libgpuarray {
@@ -3484,6 +3508,8 @@ in {
 
   pyspread = callPackage ../development/python-modules/pyspread { };
 
+  pyupdate = callPackage ../development/python-modules/pyupdate {};
+
   pyx = callPackage ../development/python-modules/pyx { };
 
   mmpython = callPackage ../development/python-modules/mmpython { };
@@ -3653,6 +3679,8 @@ in {
 
   rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
+  rasterio = callPackage ../development/python-modules/rasterio { };
+
   radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
 
   recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
@@ -3781,6 +3809,8 @@ in {
 
   rpy2 = callPackage ../development/python-modules/rpy2 {};
 
+  rtslib = callPackage ../development/python-modules/rtslib {};
+
   Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
 
   typing = callPackage ../development/python-modules/typing { };
@@ -3835,6 +3865,10 @@ in {
 
   snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
 
+  snug = callPackage ../development/python-modules/snug { };
+
+  snuggs = callPackage ../development/python-modules/snuggs { };
+
   spake2 = callPackage ../development/python-modules/spake2 { };
 
   sphfile = callPackage ../development/python-modules/sphfile { };
@@ -3948,6 +3982,8 @@ in {
 
   ua-parser = callPackage ../development/python-modules/ua-parser { };
 
+  uarray = callPackage ../development/python-modules/uarray { };
+
   ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
   umemcache = callPackage ../development/python-modules/umemcache {};