From eabe2efa10b909de0f185f8c74cd4a71bafc58e1 Mon Sep 17 00:00:00 2001
From: "Alexander V. Nikolaev" <avn@avnik.info>
Date: Mon, 7 Aug 2017 17:32:30 +0300
Subject: [PATCH 001/533] qt5: Fallback to mktemp -d for temporary QT root.

Fallback to `mktemp -d` for temporary QT root, if invoked in shell mode.
Should fix problem from #27174.
---
 pkgs/development/libraries/qt-5/qtbase-setup-hook.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
index e7752af43975..4b0bad583350 100644
--- a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
@@ -116,7 +116,11 @@ fi
 
 if [ -z "$NIX_QT5_TMP" ]; then
     if [ -z "$NIX_QT_SUBMODULE" ]; then
-        NIX_QT5_TMP=$(pwd)/__nix_qt5__
+        if [ -z "$IN_NIX_SHELL" ]; then
+            NIX_QT5_TMP=$(pwd)/__nix_qt5__
+        else
+            NIX_QT5_TMP=$(mktemp -d)
+        fi
     else
         NIX_QT5_TMP=$out
     fi

From 137db3efb5180889dfb8b0ba786eaae0dc7676d9 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Fri, 1 Sep 2017 17:17:42 +0200
Subject: [PATCH 002/533] gnome3.at-spi2-core: fix service not found error

The service was not registered as a systemd service resulting in errors
in the system journal every time a GNOME application was launched.

See: #16327
---
 nixos/modules/services/desktops/gnome3/at-spi2-core.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix
index 6e4c59f4bb37..55ed2d9ee21b 100644
--- a/nixos/modules/services/desktops/gnome3/at-spi2-core.nix
+++ b/nixos/modules/services/desktops/gnome3/at-spi2-core.nix
@@ -34,6 +34,8 @@ with lib;
 
     services.dbus.packages = [ pkgs.at_spi2_core ];
 
+    systemd.packages = [ pkgs.at_spi2_core ];
+
   };
 
 }

From a830aa3af026ea6186becb12a6ed612a2fda6186 Mon Sep 17 00:00:00 2001
From: "Alexander V. Nikolaev" <avn@avnik.info>
Date: Mon, 4 Sep 2017 03:58:43 +0300
Subject: [PATCH 003/533] qt5: Cleanup temporary Qt root on nix-shell exit

---
 pkgs/development/libraries/qt-5/qtbase-setup-hook.sh | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
index 4b0bad583350..a10da7ac2eec 100644
--- a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
@@ -146,3 +146,10 @@ EOF
     export QMAKE="$NIX_QT5_TMP/bin/qmake"
 fi
 
+_qtShellCleanupHook () {
+    rm -fr $NIX_QT5_TMP
+}
+
+if [ -n "$IN_NIX_SHELL" ]; then
+    trap _qtShellCleanupHook EXIT
+fi

From a5b8c0c2de7c8e17d35f48be6f88631509f42b3b Mon Sep 17 00:00:00 2001
From: danbst <abcz2.uprola@gmail.com>
Date: Tue, 5 Sep 2017 15:54:16 +0300
Subject: [PATCH 004/533] salt: 2016.11.5 -> 2017.7.1, patch fix

The libcrypto patch didn't work well with `salt-ssh` (that code failed on
remote machines), so let's make Nix-based library lookup as fallback.

https://github.com/saltstack/salt/issues/43350
---
 pkgs/tools/admin/salt/default.nix                 |  4 ++--
 pkgs/tools/admin/salt/fix-libcrypto-loading.patch | 15 +++++++++------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 7fdef68f30f7..5afe14209f64 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -8,12 +8,12 @@
 
 python2Packages.buildPythonApplication rec {
   pname = "salt";
-  version = "2016.11.5";
+  version = "2017.7.1";
   name = "${pname}-${version}";
 
   src = python2Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1gpq6s87vy782z4b5h6s7zwndcxnllbdr2wldxr9hyp4lfj2f55q";
+    sha256 = "079kymgxyzhf47dd42l7f42jp45gx5im4k3g31bj25p1s0aq91py";
   };
 
   propagatedBuildInputs = with python2Packages; [
diff --git a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
index fa2c5c0aa521..f7560b1fc56d 100644
--- a/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
+++ b/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
@@ -1,11 +1,14 @@
 diff --git a/salt/utils/rsax931.py b/salt/utils/rsax931.py
-index 9eb1f4a..d764f7a 100644
+index f827cc6db8..b728595186 100644
 --- a/salt/utils/rsax931.py
 +++ b/salt/utils/rsax931.py
-@@ -36,7 +36,6 @@ def _load_libcrypto():
-                 'libcrypto.so*'))
+@@ -47,6 +47,9 @@ def _load_libcrypto():
              lib = lib[0] if len(lib) > 0 else None
--        if lib:
--            return cdll.LoadLibrary(lib)
-+        return cdll.LoadLibrary('@libcrypto@')
+         if lib:
+             return cdll.LoadLibrary(lib)
++        else:
++            return cdll.LoadLibrary('@libcrypto@')
++
          raise OSError('Cannot locate OpenSSL libcrypto')
+ 
+ 

From bd170e778bed8c968b9cb1d6097fba780a453686 Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix@lancelotsix.com>
Date: Thu, 7 Sep 2017 14:00:34 +0200
Subject: [PATCH 005/533] qtcreator: 4.3.1 -> 4.4.0

See http://blog.qt.io/blog/2017/09/05/qt-creator-4-4-0-released/ for
release information
---
 pkgs/development/qtcreator/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/qtcreator/default.nix b/pkgs/development/qtcreator/default.nix
index a40a34052ca2..51667bef143d 100644
--- a/pkgs/development/qtcreator/default.nix
+++ b/pkgs/development/qtcreator/default.nix
@@ -6,8 +6,8 @@
 with stdenv.lib;
 
 let
-  baseVersion = "4.3";
-  revision = "1";
+  baseVersion = "4.4";
+  revision = "0";
 in
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.qt-project.org/official_releases/qtcreator/${baseVersion}/${version}/qt-creator-opensource-src-${version}.tar.xz";
-    sha256 = "1bd4wxvp8b5imsmrbnn8rkiln38g74g2545x07pmihc8z51qh2h6";
+    sha256 = "00k2bb2pamqlq0i619wz8chii8yp884qnrjngzzxrdffk05d95wc";
   };
 
   buildInputs = [ qtbase qtscript qtquickcontrols qtdeclarative ];

From c3f6b53bb6ddadabcf599de1e3a48a158136ddb6 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 7 Sep 2017 21:42:06 +0200
Subject: [PATCH 006/533] vaultenv: init at 0.5.0

---
 .../haskell-modules/configuration-common.nix  |  3 +++
 .../tools/haskell/vaultenv/default.nix        | 26 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 3 files changed, 31 insertions(+)
 create mode 100644 pkgs/development/tools/haskell/vaultenv/default.nix

diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index cdb15fd9f814..240c4fd21f73 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -686,6 +686,9 @@ self: super: {
   # It makes no sense to have intero-nix-shim in Hackage, so we publish it here only.
   intero-nix-shim = self.callPackage ../tools/haskell/intero-nix-shim {};
 
+  # vaultenv is not available from Hackage.
+  vaultenv = self.callPackage ../tools/haskell/vaultenv { };
+
   # https://github.com/Philonous/hs-stun/pull/1
   # Remove if a version > 0.1.0.1 ever gets released.
   stunclient = overrideCabal super.stunclient (drv: {
diff --git a/pkgs/development/tools/haskell/vaultenv/default.nix b/pkgs/development/tools/haskell/vaultenv/default.nix
new file mode 100644
index 000000000000..9b5a19700ff6
--- /dev/null
+++ b/pkgs/development/tools/haskell/vaultenv/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchurl, async, base, bytestring, http-conduit, lens
+, lens-aeson, optparse-applicative, retry, stdenv, text, unix
+, unordered-containers, utf8-string
+}:
+
+mkDerivation rec {
+  pname = "vaultenv";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/channable/vaultenv/archive/v${version}.tar.gz";
+    sha256 = "0hdcxq88cf3ygnikkppyg3fcf7xmwm9zif7274j3n34p9vd8xci3";
+  };
+
+  isLibrary = false;
+  isExecutable = true;
+  executableHaskellDepends = [
+    async base bytestring http-conduit lens lens-aeson
+    optparse-applicative retry text unix unordered-containers
+    utf8-string
+  ];
+  homepage = "https://github.com/channable/vaultenv";
+  description = "Runs processes with secrets from HashiCorp Vault";
+  license = stdenv.lib.licenses.bsd3;
+  maintainers = with stdenv.lib.maintainers; [ lnl7 ];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4d30e7f1fab3..226bc09c3487 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19114,6 +19114,8 @@ with pkgs;
 
   vault = callPackage ../tools/security/vault { };
 
+  vaultenv = haskellPackages.vaultenv;
+
   vbam = callPackage ../misc/emulators/vbam {
     ffmpeg = ffmpeg_2;
   };

From 274333e22299f1bef44b2044b296dc9e07780ce4 Mon Sep 17 00:00:00 2001
From: timor <timor.dd@googlemail.com>
Date: Sun, 10 Sep 2017 18:00:38 +0200
Subject: [PATCH 007/533] ParaView: 4.0.1 -> 5.4.0

---
 .../graphics/paraview/default.nix             | 64 ++++++++++---------
 pkgs/top-level/all-packages.nix               |  2 +-
 2 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/pkgs/applications/graphics/paraview/default.nix b/pkgs/applications/graphics/paraview/default.nix
index 8736721b43d5..730f809eef40 100644
--- a/pkgs/applications/graphics/paraview/default.nix
+++ b/pkgs/applications/graphics/paraview/default.nix
@@ -1,40 +1,46 @@
-{ fetchurl, stdenv, cmake, qt4
-, hdf5
-, mpich2
-, python
-, libxml2
-, mesa, libXt
-}:
+{stdenv, fetchFromGitHub, cmake
+,full, python, mesa, libXt }:
 
 stdenv.mkDerivation rec {
-  name = "paraview-4.0.1";
-  src = fetchurl {
-    url = "http://paraview.org/files/v4.0/ParaView-v4.0.1-source.tgz";
-    sha256 = "1qj8dq8gqpsw75sv4sdc7xm1xcpv0ilsddnrcfhha0zfhp0gq10y";
+  name = "paraview-${version}";
+  version = "5.4.0";
+
+  # fetching from GitHub instead of taking an "official" source
+  # tarball because of missing submodules there
+  src = fetchFromGitHub {
+    owner = "Kitware";
+    repo = "ParaView";
+    rev = "v${version}";
+    sha256 = "0h1vkgwm10mc5mnr3djp81lxr5pi0hyj776z77hiib6xm5596q9n";
+    fetchSubmodules = true;
   };
 
-  # [  5%] Generating vtkGLSLShaderLibrary.h
-  # ../../../bin/ProcessShader: error while loading shared libraries: libvtksys.so.pv3.10: cannot open shared object file: No such file or directory
-  preConfigure = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/paraview-3.98 -rpath ../../../../../../lib -rpath ../../../../../lib -rpath ../../../../lib -rpath ../../../lib -rpath ../../lib -rpath ../lib"
-  '';
-  cmakeFlags = [
-    "-DPARAVIEW_USE_SYSTEM_HDF5:BOOL=ON"
-    "-DVTK_USE_SYSTEM_LIBXML2:BOOL=ON"
-    "-DPARAVIEW_ENABLE_PYTHON:BOOL=ON"
-#  use -DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF \ to fix make install error: http://www.cmake.org/pipermail/paraview/2011-February/020268.html
-    "-DPARAVIEW_INSTALL_THIRD_PARTY_LIBRARIES:BOOL=OFF"
-    "-DCMAKE_SKIP_BUILD_RPATH=ON"
-    "-DVTK_USE_RPATH:BOOL=ON"
-    "-DPARAVIEW_INSTALL_DEVELOPMENT=ON"
-  ];
+   cmakeFlags = [
+     "-DPARAVIEW_ENABLE_PYTHON=ON"
+     "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
+   ];
 
-  # https://bugzilla.redhat.com/show_bug.cgi?id=1138466
-  NIX_CFLAGS_COMPILE = "-DGLX_GLXEXT_LEGACY";
+  # During build, binaries are called that rely on freshly built
+  # libraries.  These reside in build/lib, and are not found by
+  # default.
+  preBuild = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib
+  '';
 
   enableParallelBuilding = true;
 
-  buildInputs = [ cmake qt4 hdf5 mpich2 python libxml2 mesa libXt ];
+  buildInputs = [ cmake
+   python
+   mesa
+   libXt
+
+   # theoretically the following should be fine, but there is an error
+   # due to missing libqminimal when not using qt5.full
+
+   # qtbase qtx11extras qttools
+   full
+   ];
+
 
   meta = {
     homepage = http://www.paraview.org/;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3c92cb0ea627..d00fb1d3e423 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15698,7 +15698,7 @@ with pkgs;
 
   pavucontrol = callPackage ../applications/audio/pavucontrol { };
 
-  paraview = callPackage ../applications/graphics/paraview { };
+  paraview = libsForQt5.callPackage ../applications/graphics/paraview { };
 
   packet = callPackage ../development/tools/packet { };
 

From e0b81b9c3cebf46f6b3f7da1760fd60597f12ff0 Mon Sep 17 00:00:00 2001
From: Hamish Hutchings <moredhel@aoeu.me>
Date: Mon, 11 Sep 2017 17:54:27 +0100
Subject: [PATCH 008/533] Traefik init at 1.3.8

---
 lib/maintainers.nix              |  1 +
 pkgs/servers/traefik/default.nix | 24 ++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix  |  1 +
 3 files changed, 26 insertions(+)
 create mode 100644 pkgs/servers/traefik/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index e2ee441d9ddf..03b442f0b217 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -237,6 +237,7 @@
   guillaumekoenig = "Guillaume Koenig <guillaume.edward.koenig@gmail.com>";
   guyonvarch = "Joris Guyonvarch <joris@guyonvarch.me>";
   hakuch = "Jesse Haber-Kucharsky <hakuch@gmail.com>";
+  hamhut1066 = "Hamish Hutchings <github@hamhut1066.com>";
   havvy = "Ryan Scheel <ryan.havvy@gmail.com>";
   hbunke = "Hendrik Bunke <bunke.hendrik@gmail.com>";
   hce = "Hans-Christian Esperer <hc@hcesperer.org>";
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
new file mode 100644
index 000000000000..0f10dcf744a7
--- /dev/null
+++ b/pkgs/servers/traefik/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "traefik-${version}";
+  version = "v1.3.8";
+
+  src = fetchurl {
+    url = "https://github.com/containous/traefik/releases/download/${version}/traefik";
+    sha256 = "09m8svkqdrvayw871azzcb05dnbhbgb3c2380dw0v4wpcd0rqr9h";
+  };
+
+  buildCommand = ''
+    mkdir -p $out/bin
+    cp $src $out/bin/traefik
+    chmod +x $out/bin/traefik
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://traefik.io;
+    description = "Træfik, a modern reverse proxy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hamhut1066 ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 95b9db6ba70a..e75085dcba67 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -820,6 +820,7 @@ with pkgs;
   });
 
   caddy = callPackage ../servers/caddy { };
+  traefik = callPackage ../servers/traefik { };
 
   capstone = callPackage ../development/libraries/capstone { };
 

From 69379fcf10f1f51cd4820e2bfb7241f182cb2971 Mon Sep 17 00:00:00 2001
From: dywedir <dywedir@protonmail.ch>
Date: Tue, 12 Sep 2017 00:55:06 +0300
Subject: [PATCH 009/533] tokei: 6.0.1 -> 6.1.2

---
 pkgs/development/tools/misc/tokei/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/misc/tokei/default.nix b/pkgs/development/tools/misc/tokei/default.nix
index f47fab71b830..c0a56648db97 100644
--- a/pkgs/development/tools/misc/tokei/default.nix
+++ b/pkgs/development/tools/misc/tokei/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   name = "tokei-${version}";
-  version = "6.0.1";
+  version = "6.1.2";
 
   src = fetchFromGitHub {
     owner = "Aaronepower";
     repo = "tokei";
     rev = "v${version}";
-    sha256 = "1v9h45vspsqsy86fm78bc2g5byqa4cd9b9fbmv7imi87yjbm8i7x";
+    sha256 = "1bzs3mr6f9bna39b9ddwwq0raas07nbn106mnq3widxg59i0gxhd";
   };
 
-  depsSha256 = "0jqzk5qlrc7pm3s7jf8130vgnrcd54izw3mx84m9b5lhf3rz98hm";
+  depsSha256 = "1cz93mrpxmyrza0ipdyg2a6mynl66plpsb446wxnmmy7y7zd6xbf";
 
   installPhase = ''
     mkdir -p $out/bin

From a217d73381ba593f88f4b20111b7922eda1f1aac Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Tue, 12 Sep 2017 22:37:38 +0200
Subject: [PATCH 010/533] node-exporter service: fix documentation for
 enabledCollectors

---
 nixos/modules/services/monitoring/prometheus/node-exporter.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/services/monitoring/prometheus/node-exporter.nix b/nixos/modules/services/monitoring/prometheus/node-exporter.nix
index 0cf0b85afb57..b5b852438d77 100644
--- a/nixos/modules/services/monitoring/prometheus/node-exporter.nix
+++ b/nixos/modules/services/monitoring/prometheus/node-exporter.nix
@@ -33,7 +33,7 @@ in {
         default = [];
         example = ''[ "systemd" ]'';
         description = ''
-          Collectors to enable, additionally to the defaults.
+          Collectors to enable. Only collectors explicitly listed here will be enabled.
         '';
       };
 

From 1ed3ca23baa78588aadd18fb35fb46ac547d480d Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix@lancelotsix.com>
Date: Wed, 13 Sep 2017 15:26:40 +0200
Subject: [PATCH 011/533] texinfo: 6.3 -> 6.5

See http://lists.gnu.org/archive/html/info-gnu/2017-06/msg00011.html
and http://lists.gnu.org/archive/html/info-gnu/2017-09/msg00007.html
for release informations.
---
 pkgs/development/tools/misc/texinfo/{6.3.nix => 6.5.nix} | 4 ++--
 pkgs/top-level/all-packages.nix                          | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
 rename pkgs/development/tools/misc/texinfo/{6.3.nix => 6.5.nix} (94%)

diff --git a/pkgs/development/tools/misc/texinfo/6.3.nix b/pkgs/development/tools/misc/texinfo/6.5.nix
similarity index 94%
rename from pkgs/development/tools/misc/texinfo/6.3.nix
rename to pkgs/development/tools/misc/texinfo/6.5.nix
index 704611e315a3..b48e74c413b3 100644
--- a/pkgs/development/tools/misc/texinfo/6.3.nix
+++ b/pkgs/development/tools/misc/texinfo/6.5.nix
@@ -3,11 +3,11 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "texinfo-6.3";
+  name = "texinfo-6.5";
 
   src = fetchurl {
     url = "mirror://gnu/texinfo/${name}.tar.xz";
-    sha256 = "0fpr9kdjjl6nj2pc50k2zr7134hvqz8bi8pfqa7131a9lpzz6v14";
+    sha256 = "0qjzvbvnv9003xdrcpi3jp7y68j4hq2ciw9frh2hghh698zlnxvp";
   };
 
   buildInputs = [ perl xz ]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 777672c65c63..abd553637db8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7447,7 +7447,7 @@ with pkgs;
   texinfo413 = callPackage ../development/tools/misc/texinfo/4.13a.nix { };
   texinfo4 = texinfo413;
   texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
-  texinfo6 = callPackage ../development/tools/misc/texinfo/6.3.nix { };
+  texinfo6 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
   texinfo = texinfo6;
   texinfoInteractive = appendToName "interactive" (
     texinfo.override { interactive = true; }

From 2000fba5619c105f7df24736789365cc271b6596 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9-Patrick=20Bubel?= <code@andre-bubel.de>
Date: Thu, 14 Sep 2017 04:44:14 +0200
Subject: [PATCH 012/533] nixos/fileystems: Fix boot fails with encrypted fs

Boot fails when a keyfile is configured for all encrypted filesystems
and no other luks devices are configured. This is because luks support is only
enabled in the initrd, when boot.initrd.luks.devices has entries. When a
fileystem has a keyfile configured though, it is setup by a custom
command, not by boot.initrd.luks.

This commit adds an internal config flag to enable luks support in the
initrd file, even if there are no luks devices configured.
---
 nixos/modules/system/boot/luksroot.nix    | 12 +++++++++++-
 nixos/modules/tasks/encrypted-devices.nix |  1 +
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix
index 3ca679b479a0..06f004fb06ec 100644
--- a/nixos/modules/system/boot/luksroot.nix
+++ b/nixos/modules/system/boot/luksroot.nix
@@ -235,6 +235,16 @@ in
       '';
     };
 
+    boot.initrd.luks.forceLuksSupportInInitrd = mkOption {
+      type = types.bool;
+      default = false;
+      internal = true;
+      description = ''
+        Whether to configure luks support in the initrd, when no luks
+        devices are configured.
+      '';
+    };
+
     boot.initrd.luks.devices = mkOption {
       default = { };
       example = { "luksroot".device = "/dev/disk/by-uuid/430e9eff-d852-4f68-aa3b-2fa3599ebe08"; };
@@ -417,7 +427,7 @@ in
     };
   };
 
-  config = mkIf (luks.devices != {}) {
+  config = mkIf (luks.devices != {} || luks.forceLuksSupportInInitrd) {
 
     # actually, sbp2 driver is the one enabling the DMA attack, but this needs to be tested
     boot.blacklistedKernelModules = optionals luks.mitigateDMAAttacks
diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix
index b1a7711ddcb4..b019ddc3a98c 100644
--- a/nixos/modules/tasks/encrypted-devices.nix
+++ b/nixos/modules/tasks/encrypted-devices.nix
@@ -61,6 +61,7 @@ in
         devices =
           map (dev: { name = dev.encrypted.label; device = dev.encrypted.blkDev; } ) keylessEncDevs;
         cryptoModules = [ "aes" "sha256" "sha1" "xts" ];
+        forceLuksSupportInInitrd = true;
       };
       postMountCommands =
         concatMapStrings (dev: "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n") keyedEncDevs;

From adec41e57363cc179dae17921e7ee89c2efb4660 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <git@kchr.de>
Date: Thu, 14 Sep 2017 15:53:39 +0200
Subject: [PATCH 013/533] network-manager: 1.6.2 -> 1.8.2

---
 .../networking/network-manager/default.nix    | 23 ++++++++-----------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/pkgs/tools/networking/network-manager/default.nix b/pkgs/tools/networking/network-manager/default.nix
index d2a51b3acc86..ace568d6900b 100644
--- a/pkgs/tools/networking/network-manager/default.nix
+++ b/pkgs/tools/networking/network-manager/default.nix
@@ -3,19 +3,17 @@
 , libgcrypt, dnsmasq, bluez5, readline
 , gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup
 , ethtool, iputils, gnused, coreutils, file, inetutils, kmod, jansson, libxslt
-, python3Packages, docbook_xsl, fetchpatch, openconnect }:
+, python3Packages, docbook_xsl, fetchpatch, openconnect, curl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name    = "network-manager-${version}";
   pname   = "NetworkManager";
-  major   = "1.6";
+  major   = "1.8";
   version = "${major}.2";
-  # FIXME: this problem is fixed upstream (commit 6a77258f4ec2), remove when upgrading ^^^
-  hardeningDisable = [ "format" ];
 
   src = fetchurl {
     url    = "mirror://gnome/sources/${pname}/${major}/${pname}-${version}.tar.xz";
-    sha256 = "1y96k82rav8if334jl500zc024d210c4pgprh94yqyz3rmanyaxj";
+    sha256 = "1x0vzxvrck0snga2n3pc7g74m20zz74cr4r8gfspl8sckv6yz9bi";
   };
 
   outputs = [ "out" "dev" ];
@@ -46,13 +44,15 @@ stdenv.mkDerivation rec {
       --subst-var-by modprobeBinPath ${kmod}/bin/modprobe
     # to enable link-local connections
     configureFlags="$configureFlags --with-udev-dir=$out/lib/udev"
+
+    # Fixes: error: po/Makefile.in.in was not created by intltoolize.
+    intltoolize --automake --copy --force
   '';
 
   # Right now we hardcode quite a few paths at build time. Probably we should
   # patch networkmanager to allow passing these path in config file. This will
   # remove unneeded build-time dependencies.
   configureFlags = [
-    "--with-distro=exherbo"
     "--with-dhclient=${dhcp}/bin/dhclient"
     "--with-dnsmasq=${dnsmasq}/bin/dnsmasq"
     # Upstream prefers dhclient, so don't add dhcpcd to the closure
@@ -69,26 +69,21 @@ stdenv.mkDerivation rec {
     "--with-session-tracking=systemd"
     "--with-modem-manager-1"
     "--with-nmtui"
-    "--with-libsoup=yes"
+    "--disable-gtk-doc"
   ];
 
   patches = [
     ./PppdPath.patch
-    (fetchpatch {
-      sha256 = "1n90j5rwg97xkrhlldyr92filc2dmycl9pr0svky9hlcn9csk2z6";
-      name = "null-dereference.patch";
-      url = "https://github.com/NetworkManager/NetworkManager/commit/4e8eddd100bbc8429806a70620c90b72cfd29cb1.patch";
-    })
     ./openconnect_helper_path.patch
     ./modprobe.patch
   ];
 
-  buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp
+  buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp curl
                   bluez5 dnsmasq gobjectIntrospection modemmanager readline newt libsoup jansson ];
 
   propagatedBuildInputs = [ dbus_glib gnutls libgcrypt python3Packages.pygobject3 ];
 
-  nativeBuildInputs = [ intltool pkgconfig libxslt docbook_xsl ];
+  nativeBuildInputs = [ autoreconfHook intltool pkgconfig libxslt docbook_xsl ];
 
   preInstall = ''
     installFlagsArray=( "sysconfdir=$out/etc" "localstatedir=$out/var" "runstatedir=$out/var/run" )

From 604ca931827df78cd6d603f0771eb72c73aed86c Mon Sep 17 00:00:00 2001
From: Orivej Desh <orivej@gmx.fr>
Date: Fri, 15 Sep 2017 17:26:49 +0000
Subject: [PATCH 014/533] libxml2: 2.9.4 -> 2.9.5

---
 pkgs/development/libraries/libxml2/default.nix | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 370572956726..28b6faa436aa 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -10,22 +10,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "libxml2-${version}";
-  version = "2.9.4";
+  version = "2.9.5";
 
   src = fetchurl {
     url = "http://xmlsoft.org/sources/${name}.tar.gz";
-    sha256 = "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz";
+    sha256 = "0f6d5nkvcfx8yqis2dwrnv6qaj0nhiifz49y657vmrwwxvnc2ca0";
   };
 
-  patches = [
-    (fetchpatch {
-      # Contains fixes for CVE-2016-{4658,5131} and other bugs.
-      name = "misc.patch";
-      url = "https://git.gnome.org/browse/libxml2/patch/?id=e905f081&id2=v2.9.4";
-      sha256 = "14rnzilspmh92bcpwbd6kqikj36gx78al42ilgpqgl1609krb5m5";
-    })
-  ];
-
   outputs = [ "bin" "dev" "out" "man" "doc" ]
     ++ lib.optional pythonSupport "py";
   propagatedBuildOutputs = "out bin" + lib.optionalString pythonSupport " py";

From 6c9a1b7aa305d48669f846a75aec8607d5e30494 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Sat, 16 Sep 2017 12:45:33 +0930
Subject: [PATCH 015/533] network-manager-applet: 1.4.6 -> 1.8.2

Make `network-manager-applet` version match `network-manager` version.

Ref: https://github.com/NixOS/nixpkgs/pull/29375#issuecomment-329923662
---
 .../networking/network-manager-applet/default.nix     | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index c596ea63f4d3..35678061b672 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -6,15 +6,18 @@
 stdenv.mkDerivation rec {
   name    = "${pname}-${major}.${minor}";
   pname   = "network-manager-applet";
-  major   = "1.4";
-  minor   = "6";
+  major   = "1.8";
+  minor   = "2";
 
   src = fetchurl {
     url    = "mirror://gnome/sources/${pname}/${major}/${name}.tar.xz";
-    sha256 = "0xpcdwqmnwiqqqsd5rx1gh5rvv5m2skj59bqxhccy1k2ikzgr9hh";
+    sha256 = "09f9hjpn9nkhw57mk6pi7q1bq3lhf5hvmwas0fknscssak7yjmry";
   };
 
-  configureFlags = [ "--sysconfdir=/etc" ];
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--without-selinux"
+  ];
 
   buildInputs = [
     gnome3.gtk libglade networkmanager libnotify libsecret gsettings_desktop_schemas

From d2fdc9cb1f301a11bc5e45e4cbd8581e74e1cd69 Mon Sep 17 00:00:00 2001
From: Thomas Mader <thomas.mader@gmail.com>
Date: Sat, 16 Sep 2017 13:16:47 +0200
Subject: [PATCH 016/533] dmd: Add darwin/Foundation dependency to fix build on
 Darwin

---
 pkgs/development/compilers/dmd/default.nix | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 2b29ba9aa3e8..57952e47f2ed 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub
 , makeWrapper, unzip, which
-, curl, tzdata, gdb
+, curl, tzdata, gdb, darwin
 # Versions 2.070.2 and up require a working dmd compiler to build:
 , bootstrapDmd }:
 
@@ -73,7 +73,12 @@ stdenv.mkDerivation rec {
             --replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
     '';
 
-  nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ];
+  nativeBuildInputs = [ bootstrapDmd makeWrapper unzip which gdb ]
+
+  ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
+    Foundation
+  ]);
+
   buildInputs = [ curl tzdata ];
 
   # Buid and install are based on http://wiki.dlang.org/Building_DMD

From 8fa1b392798858f0521aadf1704d9b52701d6f29 Mon Sep 17 00:00:00 2001
From: Thomas Mader <thomas.mader@gmail.com>
Date: Sat, 16 Sep 2017 14:09:50 +0200
Subject: [PATCH 017/533] dmd: Fix bootstrap dmd to build with sandboxing of
 nixUnstable

---
 pkgs/development/compilers/dmd/2.067.1.nix | 27 +++++++++++++---------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/pkgs/development/compilers/dmd/2.067.1.nix b/pkgs/development/compilers/dmd/2.067.1.nix
index 3cf530e9e5e8..e2bd9c708dca 100644
--- a/pkgs/development/compilers/dmd/2.067.1.nix
+++ b/pkgs/development/compilers/dmd/2.067.1.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   # Compile with PIC to prevent colliding modules with binutils 2.28.
   # https://issues.dlang.org/show_bug.cgi?id=17375
   usePIC = "-fPIC";
+  ROOT_HOME_DIR = "$(echo ~root)";
 
   postPatch = ''
       # Ugly hack so the dlopen call has a chance to succeed.
@@ -67,19 +68,23 @@ stdenv.mkDerivation rec {
           --replace g++ $CXX
   ''
 
-    + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
-        substituteInPlace dmd/src/root/port.c \
-          --replace "#include <bits/mathdef.h>" "#include <complex.h>"
-    ''
+  + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
+      substituteInPlace dmd/src/root/port.c \
+        --replace "#include <bits/mathdef.h>" "#include <complex.h>"
 
-    + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
-        substituteInPlace dmd/src/posix.mak \
-            --replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
+      # See https://github.com/NixOS/nixpkgs/issues/29443
+      substituteInPlace phobos/std/path.d \
+          --replace "\"/root" "\"${ROOT_HOME_DIR}"
+  ''
 
-        # Was not able to compile on darwin due to "__inline_isnanl"
-        # being undefined.
-        substituteInPlace dmd/src/root/port.c --replace __inline_isnanl __inline_isnan
-    '';
+  + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+      substituteInPlace dmd/src/posix.mak \
+          --replace MACOSX_DEPLOYMENT_TARGET MACOSX_DEPLOYMENT_TARGET_
+
+      # Was not able to compile on darwin due to "__inline_isnanl"
+      # being undefined.
+      substituteInPlace dmd/src/root/port.c --replace __inline_isnanl __inline_isnan
+  '';
 
   nativeBuildInputs = [ makeWrapper unzip which ];
   buildInputs = [ curl tzdata ];

From 4d7dd8169c5f3fbf502a68203531aa5d8c03dc4c Mon Sep 17 00:00:00 2001
From: Neil Mayhew <neil@neil.mayhew.name>
Date: Sat, 16 Sep 2017 11:07:13 -0600
Subject: [PATCH 018/533] spideroak: fix crash due to zlib version mismatch

Fixes #23960
---
 pkgs/applications/networking/spideroak/default.nix | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index b9d74bee83d8..6c8e3466ce0d 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, makeWrapper, glib
 , fontconfig, patchelf, libXext, libX11
-, freetype, libXrender
+, freetype, libXrender, zlib
 }:
 
 let
@@ -17,7 +17,7 @@ let
     else throw "Spideroak client for: ${stdenv.system} not supported!";
 
   ldpath = stdenv.lib.makeLibraryPath [
-    glib fontconfig libXext libX11 freetype libXrender
+    glib fontconfig libXext libX11 freetype libXrender zlib
   ];
 
   version = "6.0.1";
@@ -43,6 +43,8 @@ in stdenv.mkDerivation {
     rmdir $out/usr/bin || true
     mv $out/usr/share $out/
 
+    rm -f $out/opt/SpiderOakONE/lib/libz*
+
     patchelf --set-interpreter ${stdenv.glibc.out}/lib/${interpreter} \
       "$out/opt/SpiderOakONE/lib/SpiderOakONE"
 

From 4535008a4cf2ed3b700ea273b9980684e7ada692 Mon Sep 17 00:00:00 2001
From: Thomas Mader <thomas.mader@gmail.com>
Date: Sun, 17 Sep 2017 00:15:31 +0200
Subject: [PATCH 019/533] dmd: Disable check phase because some tests are not
 working if build has sandboxing enabled

---
 pkgs/development/compilers/dmd/2.067.1.nix | 3 ++-
 pkgs/development/compilers/dmd/default.nix | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/compilers/dmd/2.067.1.nix b/pkgs/development/compilers/dmd/2.067.1.nix
index e2bd9c708dca..6fab56e4e7da 100644
--- a/pkgs/development/compilers/dmd/2.067.1.nix
+++ b/pkgs/development/compilers/dmd/2.067.1.nix
@@ -101,7 +101,8 @@ stdenv.mkDerivation rec {
       cd ..
   '';
 
-  doCheck = true;
+  # disable check phase because some tests are not working with sandboxing
+  doCheck = false;
 
   checkPhase = ''
       cd dmd
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 57952e47f2ed..27f70b8d6c71 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -97,7 +97,8 @@ stdenv.mkDerivation rec {
       cd ..
   '';
 
-  doCheck = true;
+  # disable check phase because some tests are not working with sandboxing
+  doCheck = false;
 
   checkPhase = ''
       cd dmd

From 59cdc2564cec4b5f681a5c625aa951350244315b Mon Sep 17 00:00:00 2001
From: Thomas Mader <thomas.mader@gmail.com>
Date: Sun, 17 Sep 2017 00:16:58 +0200
Subject: [PATCH 020/533] ldc: Disable check phase because some tests are not
 working if build has sandboxing enabled

---
 pkgs/development/compilers/ldc/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index 22d2923897cd..4be275318887 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -81,7 +81,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "DMD=$DMD" ];
 
-  doCheck = true;
+  # disable check phase because some tests are not working with sandboxing
+  doCheck = false;
 
   checkPhase = ''
       ctest -j $NIX_BUILD_CORES -V DMD=$DMD

From a80ef5b88a2006c98e0dece16a1f4407bda12aa0 Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Tue, 19 Apr 2016 22:07:21 -0400
Subject: [PATCH 021/533] djbdns: init at 1.05

---
 pkgs/tools/networking/djbdns/default.nix | 48 ++++++++++++++++++++++++
 pkgs/tools/networking/djbdns/hier.patch  | 15 ++++++++
 pkgs/top-level/all-packages.nix          |  2 +
 3 files changed, 65 insertions(+)
 create mode 100644 pkgs/tools/networking/djbdns/default.nix
 create mode 100644 pkgs/tools/networking/djbdns/hier.patch

diff --git a/pkgs/tools/networking/djbdns/default.nix b/pkgs/tools/networking/djbdns/default.nix
new file mode 100644
index 000000000000..7537ab1c47ac
--- /dev/null
+++ b/pkgs/tools/networking/djbdns/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, glibc } :
+
+let
+  version = "1.05";
+
+  manSrc = fetchurl {
+    url = "http://smarden.org/pape/djb/manpages/djbdns-${version}-man-20031023.tar.gz";
+    sha256 = "0sg51gjy6j1hnrra406q1qhf5kvk1m00y8qqhs6r0a699gqmh75s";
+  };
+
+in
+
+stdenv.mkDerivation {
+  name = "djbdns-${version}";
+
+  src = fetchurl {
+    url = "https://cr.yp.to/djbdns/djbdns-${version}.tar.gz";
+    sha256 = "0j3baf92vkczr5fxww7rp1b7gmczxmmgrqc8w2dy7kgk09m85k9w";
+  };
+
+  patches = [ ./hier.patch ];
+
+  postPatch = ''
+    echo gcc -O2 -include ${glibc.dev}/include/errno.h > conf-cc
+    echo $out > conf-home
+    sed -i "s|/etc/dnsroots.global|$out/etc/dnsroots.global|" dnscache-conf.c
+  '';
+
+  installPhase = ''
+    mkdir -pv $out/etc;
+    make setup
+    cd $out;
+    tar xzvf ${manSrc};
+    for n in 1 5 8; do
+      mkdir -p man/man$n;
+      mv -iv djbdns-man/*.$n man/man$n;
+    done;
+    rm -rv djbdns-man;
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A collection of Domain Name System tools";
+    longDescription = "Includes software for all the fundamental DNS operations: DNS cache: finding addresses of Internet hosts; DNS server: publishing addresses of Internet hosts; and DNS client: talking to a DNS cache.";
+    homepage = https://cr.yp.to/djbdns.html;
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ jerith666 ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/tools/networking/djbdns/hier.patch b/pkgs/tools/networking/djbdns/hier.patch
new file mode 100644
index 000000000000..7fddd1213834
--- /dev/null
+++ b/pkgs/tools/networking/djbdns/hier.patch
@@ -0,0 +1,15 @@
+--- a/hier.c	2016-04-19 21:22:21.992192405 -0400
++++ b/hier.c	2016-04-19 21:22:33.160229778 -0400
+@@ -2,9 +2,9 @@
+ 
+ void hier()
+ {
+-  c("/","etc","dnsroots.global",-1,-1,0644);
++  c(auto_home,"etc","dnsroots.global",-1,-1,0644);
+ 
+-  h(auto_home,-1,-1,02755);
+-  d(auto_home,"bin",-1,-1,02755);
++  h(auto_home,-1,-1,0755);
++  d(auto_home,"bin",-1,-1,0755);
+ 
+   c(auto_home,"bin","dnscache-conf",-1,-1,0755);
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c059fd61d4ca..8dd14ae55a72 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1645,6 +1645,8 @@ with pkgs;
 
   dev86 = callPackage ../development/compilers/dev86 { };
 
+  djbdns = callPackage ../tools/networking/djbdns { };
+
   dnscrypt-proxy = callPackage ../tools/networking/dnscrypt-proxy { };
 
   dnscrypt-wrapper = callPackage ../tools/networking/dnscrypt-wrapper { };

From 987867474c6cbe9c540149ddfa40dcb5d20f260b Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Sat, 16 Sep 2017 21:16:53 -0400
Subject: [PATCH 022/533] client-ip-echo: init at 0.1.0.1

---
 .../misc/client-ip-echo/client-ip-echo.nix       | 16 ++++++++++++++++
 pkgs/servers/misc/client-ip-echo/default.nix     |  2 ++
 pkgs/top-level/all-packages.nix                  |  2 ++
 3 files changed, 20 insertions(+)
 create mode 100644 pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
 create mode 100644 pkgs/servers/misc/client-ip-echo/default.nix

diff --git a/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix b/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
new file mode 100644
index 000000000000..08c08d7d3c16
--- /dev/null
+++ b/pkgs/servers/misc/client-ip-echo/client-ip-echo.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, fetchFromGitHub, base, bytestring, network, stdenv }:
+mkDerivation {
+  pname = "client-ip-echo";
+  version = "0.1.0.1";
+  src = fetchFromGitHub {
+    owner = "jerith666";
+    repo = "client-ip-echo";
+    rev = "f6e3e115a1e61a387cf79956ead36d7ac25a2901";
+    sha256 = "0irxcaiwxxn4ggd2dbya1mvpnyfanx0x06whp8ccrha141cafwqp";
+  };
+  isLibrary = false;
+  isExecutable = true;
+  executableHaskellDepends = [ base bytestring network ];
+  description = "accepts TCP connections and echoes the client's IP address back to it";
+  license = stdenv.lib.licenses.lgpl3;
+}
diff --git a/pkgs/servers/misc/client-ip-echo/default.nix b/pkgs/servers/misc/client-ip-echo/default.nix
new file mode 100644
index 000000000000..5bc0ea45e2b6
--- /dev/null
+++ b/pkgs/servers/misc/client-ip-echo/default.nix
@@ -0,0 +1,2 @@
+{ pkgs }:
+pkgs.haskellPackages.callPackage ./client-ip-echo.nix { }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c059fd61d4ca..55b868cd9c39 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1488,6 +1488,8 @@ with pkgs;
 
   clex = callPackage ../tools/misc/clex { };
 
+  client-ip-echo = callPackage ../servers/misc/client-ip-echo { };
+
   cloc = callPackage ../tools/misc/cloc {
     inherit (perlPackages) perl AlgorithmDiff RegexpCommon;
   };

From 90059701a836b0d0dbc676e2d1ce417cc5a25bd2 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sun, 17 Sep 2017 09:57:33 +0200
Subject: [PATCH 023/533] python27: 2.7.13 -> 2.7.14

The enosys patch is not needed anymore since the patch is included in
this maintenance release.
---
 .../interpreters/python/cpython/2.7/default.nix   |  6 ++----
 .../python/cpython/2.7/glibc-2.25-enosys.patch    | 15 ---------------
 2 files changed, 2 insertions(+), 19 deletions(-)
 delete mode 100644 pkgs/development/interpreters/python/cpython/2.7/glibc-2.25-enosys.patch

diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 5f0d8d0655c2..0d5f1e7e4ca3 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -29,7 +29,7 @@ with stdenv.lib;
 
 let
   majorVersion = "2.7";
-  minorVersion = "13";
+  minorVersion = "14";
   minorVersionSuffix = "";
   pythonVersion = majorVersion;
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
@@ -38,7 +38,7 @@ let
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0cgpk3zk0fgpji59pb4zy9nzljr70qzgv1vpz5hq5xw2d2c47m9m";
+    sha256 = "0rka541ys16jwzcnnvjp2v12m4cwgd2jp6wj4kj511p715pb5zvi";
   };
 
   hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
@@ -67,8 +67,6 @@ let
       # libuuid, slowing down program startup a lot).
       ./no-ldconfig.patch
 
-      ./glibc-2.25-enosys.patch
-
     ] ++ optionals hostPlatform.isCygwin [
       ./2.5.2-ctypes-util-find_library.patch
       ./2.5.2-tkinter-x11.patch
diff --git a/pkgs/development/interpreters/python/cpython/2.7/glibc-2.25-enosys.patch b/pkgs/development/interpreters/python/cpython/2.7/glibc-2.25-enosys.patch
deleted file mode 100644
index 31da78e35f1c..000000000000
--- a/pkgs/development/interpreters/python/cpython/2.7/glibc-2.25-enosys.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://bugs.python.org/issue29157
-https://github.com/python/cpython/commit/01bdbad3e951
-diff --git a/Python/random.c b/Python/random.c
-index 2f83b5d..0b775ec 100644
---- a/Python/random.c
-+++ b/Python/random.c
-@@ -98,7 +98,7 @@ win32_urandom(unsigned char *buffer, Py_ssize_t size, int raise)
- 
- /* Issue #25003: Don't use getentropy() on Solaris (available since
-  * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
--#elif defined(HAVE_GETENTROPY) && !defined(sun)
-+#elif defined(HAVE_GETENTROPY) && !defined(sun) && !defined(linux)
- #define PY_GETENTROPY 1
- 
- /* Fill buffer with size pseudo-random bytes generated by getentropy().

From 4ca45f229b69e6e74c315a0c3e003a5917cc62a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 09:03:37 +0200
Subject: [PATCH 024/533] set-source-date-epoch-to-latest.sh: shut up a warning

> bash: warning: command substitution: ignored null byte in input
/cc #28227.  Also break the overlong line.
---
 .../setup-hooks/set-source-date-epoch-to-latest.sh             | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh
index 6bf9a65b35af..84e40cd0514f 100644
--- a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh
+++ b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh
@@ -4,7 +4,8 @@ updateSourceDateEpoch() {
     # Get the last modification time of all regular files, sort them,
     # and get the most recent. Maybe we should use
     # https://github.com/0-wiz-0/findnewest here.
-    local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated))
+    local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' \
+                    | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1))
     local time="${res[0]//\.[0-9]*/}" # remove the fraction part
     local newestFile="${res[1]}"
 

From bebdd7ac61ba0cd245cb8cfe852001b5d413c57e Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sun, 17 Sep 2017 10:48:29 +0200
Subject: [PATCH 025/533] python.pkgs.subprocess32: 3.2.6 -> 3.2.7

---
 .../python-modules/subprocess32/default.nix   | 38 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            | 28 +-------------
 2 files changed, 39 insertions(+), 27 deletions(-)
 create mode 100644 pkgs/development/python-modules/subprocess32/default.nix

diff --git a/pkgs/development/python-modules/subprocess32/default.nix b/pkgs/development/python-modules/subprocess32/default.nix
new file mode 100644
index 000000000000..cb7a6fe2e868
--- /dev/null
+++ b/pkgs/development/python-modules/subprocess32/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, isPyPy
+, bash
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "subprocess32";
+  version = "3.2.7";
+  name = "${pname}-${version}";
+  disabled = isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1e450a4a4c53bf197ad6402c564b9f7a53539385918ef8f12bdf430a61036590";
+  };
+
+  buildInputs = [ bash ];
+
+  preConfigure = ''
+    substituteInPlace test_subprocess32.py \
+      --replace '/usr/' '${bash}/'
+  '';
+
+  doCheck = !isPyPy;
+  checkPhase = ''
+    ${python.interpreter} test_subprocess32.py
+  '';
+
+  meta = {
+    homepage = https://pypi.python.org/pypi/subprocess32;
+    description = "Backport of the subprocess module from Python 3.2.5 for use on 2.x";
+    maintainers = with lib.maintainers; [ garbas ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1d16a39d2650..ae0083dd1a46 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -20782,33 +20782,7 @@ in {
     };
   };
 
-  subprocess32 = buildPythonPackage rec {
-    name = "subprocess32-3.2.6";
-    disabled = isPy3k;
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/subprocess32/${name}.tar.gz";
-      sha256 = "ddf4d46ed2be2c7e7372dfd00c464cabb6b3e29ca4113d85e26f82b3d2c220f6";
-    };
-
-    buildInputs = [ pkgs.bash ];
-
-    preConfigure = ''
-      substituteInPlace test_subprocess32.py \
-        --replace '/usr/' '${pkgs.bash}/'
-    '';
-
-    doCheck = !isPyPy;
-    checkPhase = ''
-      ${python.interpreter} test_subprocess32.py
-    '';
-
-    meta = {
-      homepage = https://pypi.python.org/pypi/subprocess32;
-      description = "Backport of the subprocess module from Python 3.2.5 for use on 2.x";
-      maintainers = with maintainers; [ garbas ];
-    };
-  };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
   spark_parser = buildPythonPackage (rec {
     name = "${pname}-${version}";

From 96d15eaddb17e0bb9097a04cfe9d1afbe46a1de5 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sun, 17 Sep 2017 11:08:12 +0200
Subject: [PATCH 026/533] python27: support test/support

In the maintenance release bump in
90059701a836b0d0dbc676e2d1ce417cc5a25bd2 a certain change to /test/ was
backported from Python 3:

- bpo-30207: To simplify backports from Python 3, the test.test_support
  module was converted into a package and renamed to test.support.  The
  test.script_helper module was moved into the test.support package.
  Names test.test_support and test.script_helper are left as aliases to
  test.support and test.support.script_helper.
---
 pkgs/development/interpreters/python/cpython/2.7/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/interpreters/python/cpython/2.7/default.nix b/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 0d5f1e7e4ca3..4ac827db7cb6 100644
--- a/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -163,7 +163,8 @@ in stdenv.mkDerivation {
         # functionality to 2.x from 3.x
         for item in $out/lib/python${majorVersion}/test/*; do
           if [[ "$item" != */test_support.py*
-             && "$item" != */regrtest.py* ]]; then
+             && "$item" != */test/support
+             && "$item" != */test/regrtest.py* ]]; then
             rm -rf "$item"
           else
             echo $item

From 605dba0ac99dcca73812698a7b86706506e3c6c8 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Sun, 17 Sep 2017 09:02:26 -0400
Subject: [PATCH 027/533] vscode: 1.16.0 -> 1.16.1

---
 pkgs/applications/editors/vscode/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index e0de8facd3f2..f72af1908c50 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -2,7 +2,7 @@
   makeWrapper, libXScrnSaver, libxkbfile, libsecret }:
 
 let
-  version = "1.16.0";
+  version = "1.16.1";
   channel = "stable";
 
   plat = {
@@ -12,9 +12,9 @@ let
   }.${stdenv.system};
 
   sha256 = {
-    "i686-linux" = "04jf9rl5116qc3n7xgqxir9c54dpkjm210yinih0qnp1wxhb6q0m";
-    "x86_64-linux" = "125xl933y4zmvp4922wm6b3p5d2xfdi9c5a7svx63p6fwxqjk33y";
-    "x86_64-darwin" = "0v8v4spz31qbv5ikb4bkdfldmpj5i6ahlzwn2h5wbfzlzsl8bk24";
+    "i686-linux" = "1k06rish1a1hqrkvzy21lg05vmzd345aa65g3d08ikh6508mp100";
+    "x86_64-linux" = "1l2xbdvjfmf05cqcjcj3w2450vi7wvkm5zdwkmfhh01fnvbrygnw";
+    "x86_64-darwin" = "0bxv3qlhcqn5sb5l5pjhi5560vi1sl844hx3r5x48gmmgd8yziaj";
   }.${stdenv.system};
 
   archive_fmt = if stdenv.system == "x86_64-darwin" then "zip" else "tar.gz";

From c68118ce651adde39bbb6352151deedb72cecf86 Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Sun, 10 Sep 2017 09:39:26 +0200
Subject: [PATCH 028/533] glusterfs service: add support for TLS communication

TLS settings are implemented as submodule.
---
 .../network-filesystems/glusterfs.nix         | 61 +++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix
index 7454eeef803f..ae4f4521cf2d 100644
--- a/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -5,6 +5,22 @@ with lib;
 let
   inherit (pkgs) glusterfs rsync;
 
+  tlsCmd = if (cfg.tlsSettings != null) then
+  ''
+    mkdir -p /var/lib/glusterd
+    touch /var/lib/glusterd/secure-access
+  ''
+  else
+  ''
+    rm -f /var/lib/glusterd/secure-access
+  '';
+
+  restartTriggers = if (cfg.tlsSettings != null) then [
+    config.environment.etc."ssl/glusterfs.pem".source
+    config.environment.etc."ssl/glusterfs.key".source
+    config.environment.etc."ssl/glusterfs.ca".source
+  ] else [];
+
   cfg = config.services.glusterfs;
 
 in
@@ -30,6 +46,41 @@ in
         description = "Extra flags passed to the GlusterFS daemon";
         default = [];
       };
+
+      tlsSettings = mkOption {
+        description = ''
+          Make the server communicate via TLS.
+          This means it will only connect to other gluster
+          servers having certificates signed by the same CA.
+
+          Enabling this will create a file <filename>/var/lib/glusterd/secure-access</filename>.
+          Disabling will delete this file again.
+
+          See also: https://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/
+        '';
+        default = null;
+        type = types.nullOr (types.submodule {
+          options = {
+            tlsKey = mkOption {
+              default = null;
+              type = types.path;
+              description = "Path to the private key used for TLS.";
+            };
+
+            tlsPem = mkOption {
+              default = null;
+              type = types.path;
+              description = "Path to the certificate used for TLS.";
+            };
+
+            caCert = mkOption {
+              default = null;
+              type = types.path;
+              description = "Path certificate authority used to sign the cluster certificates.";
+            };
+          };
+        });
+      };
     };
   };
 
@@ -40,7 +91,14 @@ in
 
     services.rpcbind.enable = true;
 
+    environment.etc = mkIf (cfg.tlsSettings != null) {
+      "ssl/glusterfs.pem".source = cfg.tlsSettings.tlsPem;
+      "ssl/glusterfs.key".source = cfg.tlsSettings.tlsKey;
+      "ssl/glusterfs.ca".source = cfg.tlsSettings.caCert;
+    };
+
     systemd.services.glusterd = {
+      inherit restartTriggers;
 
       description = "GlusterFS, a clustered file-system server";
 
@@ -57,6 +115,8 @@ in
       + ''
         mkdir -p /var/lib/glusterd/hooks/
         ${rsync}/bin/rsync -a ${glusterfs}/var/lib/glusterd/hooks/ /var/lib/glusterd/hooks/
+
+        ${tlsCmd}
       ''
       # `glusterfind` needs dirs that upstream installs at `make install` phase
       # https://github.com/gluster/glusterfs/blob/v3.10.2/tools/glusterfind/Makefile.am#L16-L17
@@ -75,6 +135,7 @@ in
     };
 
     systemd.services.glustereventsd = {
+      inherit restartTriggers;
 
       description = "Gluster Events Notifier";
 

From c88fa59559317dba2ca31c0f98a1adfe42f35016 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 20:22:14 +0200
Subject: [PATCH 029/533] perl-XML-LibXML: update and avoid failing tests

The test failures were caused by #29431: libxml-2.9.4 -> 2.9.5
---
 pkgs/top-level/perl-packages.nix | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 627c585ea8b6..2d995c0f7000 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -15662,14 +15662,19 @@ let self = _self // overrides; _self = with self; {
   };
 
   XMLLibXML = buildPerlPackage rec {
-    name = "XML-LibXML-2.0122";
+    name = "XML-LibXML-2.0129";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/${name}.tar.gz";
-      sha256 = "0llgkgifcw7zz7r7f2jiqryi5axymmd3fwzp4aa5gk6j37w66xkn";
+      sha256 = "0rmk6vysfgcn8434wyydd56midgshly37wx7c50ch038l2djd82w";
     };
     SKIP_SAX_INSTALL = 1;
     buildInputs = [ pkgs.libxml2 ];
     propagatedBuildInputs = [ XMLSAX ];
+
+    # https://rt.cpan.org/Public/Bug/Display.html?id=122958
+    preCheck = ''
+      rm t/32xpc_variables.t t/48_reader_undef_warning_on_empty_str_rt106830.t
+    '';
   };
 
   XMLLibXMLSimple = buildPerlPackage {

From 49fc06ed0aaf73cd6c72ef0d59dd0105a29dc488 Mon Sep 17 00:00:00 2001
From: Aneesh Agrawal <aneeshusa@gmail.com>
Date: Sun, 20 Aug 2017 17:40:43 -0700
Subject: [PATCH 030/533] audit: Remove openldap dependency

The openldap dependency is only used for the audisp z/OS plugin.
This is not useful on Linux, so always disable this.
---
 pkgs/os-specific/linux/audit/default.nix | 27 ++++++++++--------------
 1 file changed, 11 insertions(+), 16 deletions(-)

diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix
index e433deff90c6..725c788dd1ac 100644
--- a/pkgs/os-specific/linux/audit/default.nix
+++ b/pkgs/os-specific/linux/audit/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchurl, openldap
-, enablePython ? false, python ? null
+{
+  stdenv, fetchurl,
+  enablePython ? false, python ? null,
 }:
 
 assert enablePython -> python != null;
@@ -12,25 +13,19 @@ stdenv.mkDerivation rec {
     sha256 = "1vvqw5xgirap0jdmajw7l3pq563aycvy3hlqvj3k2cac8i4jbqlq";
   };
 
-  outputs = [ "bin" "dev" "out" "man" "plugins" ];
+  outputs = [ "bin" "dev" "out" "man" ];
 
-  buildInputs = [ openldap ]
-            ++ stdenv.lib.optional enablePython python;
+  buildInputs = stdenv.lib.optional enablePython python;
 
-  configureFlags = ''
-    ${if enablePython then "--with-python" else "--without-python"}
-  '';
+  configureFlags = [
+    # z/OS plugin is not useful on Linux,
+    # and pulls in an extra openldap dependency otherwise
+    "--disable-zos-remote"
+    (if enablePython then "--with-python" else "--without-python")
+  ];
 
   enableParallelBuilding = true;
 
-  postInstall =
-    ''
-      # Move the z/OS plugin to a separate output to prevent an
-      # openldap runtime dependency in audit.bin.
-      mkdir -p $plugins/bin
-      mv $bin/sbin/audispd-zos-remote $plugins/bin/
-    '';
-
   meta = {
     description = "Audit Library";
     homepage = http://people.redhat.com/sgrubb/audit/;

From f4b207438d53fce58c8dcfa9265bec2b24ce9978 Mon Sep 17 00:00:00 2001
From: Mathias Schreck <schreck.mathias@googlemail.com>
Date: Mon, 18 Sep 2017 13:50:56 +0200
Subject: [PATCH 031/533] libuv: 1.13.1 -> 1.14.1

---
 pkgs/development/libraries/libuv/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index 1bc58260afe4..50d588dad79b 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -2,14 +2,14 @@
 , ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.13.1";
+  version = "1.14.1";
   name = "libuv-${version}";
 
   src = fetchFromGitHub {
     owner = "libuv";
     repo = "libuv";
     rev = "v${version}";
-    sha256 = "0k348kgdphha1w4cw78zngq3gqcrhcn0az7k0k4w2bgmdf4ip8z8";
+    sha256 = "1121qvnvpcabq1bl2k41jq8r2hn2x123csiaf7s9vrq66bbxgfdx";
   };
 
   postPatch = let

From 9d2a2dc43e70d8da21c82596cf80d55d53086fc3 Mon Sep 17 00:00:00 2001
From: Mathias Schreck <schreck.mathias@googlemail.com>
Date: Mon, 18 Sep 2017 13:51:27 +0200
Subject: [PATCH 032/533] nodejs: 8.4.0 -> 8.5.0

---
 pkgs/development/web/nodejs/v8.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/web/nodejs/v8.nix b/pkgs/development/web/nodejs/v8.nix
index af329063e9fc..244c236cd18b 100644
--- a/pkgs/development/web/nodejs/v8.nix
+++ b/pkgs/development/web/nodejs/v8.nix
@@ -10,11 +10,11 @@ let
   baseName = if enableNpm then "nodejs" else "nodejs-slim";
 in
   stdenv.mkDerivation (nodejs // rec {
-    version = "8.4.0";
+    version = "8.5.0";
     name = "${baseName}-${version}";
     src = fetchurl {
       url = "https://nodejs.org/download/release/v${version}/node-v${version}.tar.xz";
-      sha256 = "0qgkccsldpdrjxwwq78z94hsqz6qivmi4n2738iiginw06hs4njx";
+      sha256 = "0g2wyy9zdjzm9c0vbjn8bn49s1b2c7r2iwdfc4dpx7h4wpcfbkg1";
     };
 
     patches = stdenv.lib.optionals stdenv.isDarwin [ ./no-xcode-v7.patch ];

From 0cc4cb96bb53a1bf5192e292148e4a8c4d6ebf8c Mon Sep 17 00:00:00 2001
From: Hamish Hutchings <moredhel@aoeu.me>
Date: Mon, 18 Sep 2017 13:37:36 +0100
Subject: [PATCH 033/533] Change to using source files to build traefik

---
 pkgs/servers/traefik/default.nix | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 0f10dcf744a7..6bfe9d32a4a8 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -1,18 +1,34 @@
-{ stdenv, fetchurl }:
+{ stdenv, buildGoPackage, fetchurl, bash, go-bindata}:
 
-stdenv.mkDerivation rec {
+buildGoPackage rec {
   name = "traefik-${version}";
   version = "v1.3.8";
 
+  goPackagePath = "github.com/containous/traefik";
+
   src = fetchurl {
-    url = "https://github.com/containous/traefik/releases/download/${version}/traefik";
-    sha256 = "09m8svkqdrvayw871azzcb05dnbhbgb3c2380dw0v4wpcd0rqr9h";
+    url = "https://github.com/containous/traefik/releases/download/${version}/traefik-${version}.src.tar.gz";
+    sha256 = "6fce36dd30bb5ae5f91e69f2950f22fe7a74b920e80c6b441a0721122f6a6174";
   };
 
-  buildCommand = ''
-    mkdir -p $out/bin
-    cp $src $out/bin/traefik
-    chmod +x $out/bin/traefik
+  buildInputs = [ go-bindata ];
+  sourceRoot = ".";
+  postUnpack = ''
+  files=`ls`
+  mkdir traefik
+  mv $files traefik/
+  export sourceRoot="traefik"
+  '';
+
+  buildPhase = ''
+  cd go/src/github.com/containous/traefik
+  ${bash}/bin/bash ./script/make.sh generate
+  CGO_ENABLED=0 GOGC=off go build -v -ldflags "-s -w" -a -installsuffix nocgo -o dist/traefik ./cmd/traefik
+  '';
+
+  installPhase = ''
+  mkdir -p $bin/bin
+  cp ./dist/traefik $bin/bin/
   '';
 
   meta = with stdenv.lib; {

From ad2004afd37f14ddce40871f0c9dbc2fe20b7dcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Tue, 19 Sep 2017 08:12:36 +0100
Subject: [PATCH 034/533] traefik: link against libc, set build
 version/codename

this way gethostbyname() works as indented
---
 pkgs/servers/traefik/default.nix | 38 ++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 6bfe9d32a4a8..f1fb1a34fc24 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,38 +2,42 @@
 
 buildGoPackage rec {
   name = "traefik-${version}";
-  version = "v1.3.8";
+  version = "1.3.8";
 
   goPackagePath = "github.com/containous/traefik";
 
   src = fetchurl {
-    url = "https://github.com/containous/traefik/releases/download/${version}/traefik-${version}.src.tar.gz";
+    url = "https://github.com/containous/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
     sha256 = "6fce36dd30bb5ae5f91e69f2950f22fe7a74b920e80c6b441a0721122f6a6174";
   };
 
-  buildInputs = [ go-bindata ];
-  sourceRoot = ".";
-  postUnpack = ''
-  files=`ls`
-  mkdir traefik
-  mv $files traefik/
-  export sourceRoot="traefik"
+  buildInputs = [ go-bindata bash ];
+  unpackPhase = ''
+    runHook preUnpack
+    mkdir traefik
+    tar -C traefik -xvzf $src
+    export sourceRoot="traefik"
+    runHook postUnpack
   '';
 
   buildPhase = ''
-  cd go/src/github.com/containous/traefik
-  ${bash}/bin/bash ./script/make.sh generate
-  CGO_ENABLED=0 GOGC=off go build -v -ldflags "-s -w" -a -installsuffix nocgo -o dist/traefik ./cmd/traefik
-  '';
+    runHook preBuild
+    (
+      cd go/src/github.com/containous/traefik
+      bash ./script/make.sh generate
 
-  installPhase = ''
-  mkdir -p $bin/bin
-  cp ./dist/traefik $bin/bin/
+      CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary)
+      go build -ldflags "\
+        -X github.com/containous/traefik/version.Version=${version} \
+        -X github.com/containous/traefik/version.Codename=$CODENAME \
+      " -a -o $bin/bin/traefik ./cmd/traefik
+    )
+    runHook postBuild
   '';
 
   meta = with stdenv.lib; {
     homepage = https://traefik.io;
-    description = "Træfik, a modern reverse proxy";
+    description = "A modern reverse proxy";
     license = licenses.mit;
     maintainers = with maintainers; [ hamhut1066 ];
   };

From ea8e7ed1e32b40fc90173e35d5b8afe747d84e38 Mon Sep 17 00:00:00 2001
From: Bas van Dijk <v.dijk.bas@gmail.com>
Date: Tue, 19 Sep 2017 10:52:08 +0200
Subject: [PATCH 035/533] elk: 5.5.2 -> 5.6.1

Release notes:

* https://www.elastic.co/guide/en/elasticsearch/reference/5.6/release-notes-5.6.1.html
* https://www.elastic.co/guide/en/logstash/5.6/logstash-5-6-1.html
* https://www.elastic.co/guide/en/kibana/current/release-notes-5.6.1.html
---
 pkgs/development/tools/misc/kibana/5.x.nix | 6 +++---
 pkgs/misc/logging/beats/default.nix        | 2 +-
 pkgs/servers/search/elasticsearch/5.x.nix  | 2 +-
 pkgs/tools/misc/logstash/5.x.nix           | 2 +-
 pkgs/top-level/all-packages.nix            | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/pkgs/development/tools/misc/kibana/5.x.nix b/pkgs/development/tools/misc/kibana/5.x.nix
index 69a19987020d..735f85f74569 100644
--- a/pkgs/development/tools/misc/kibana/5.x.nix
+++ b/pkgs/development/tools/misc/kibana/5.x.nix
@@ -11,9 +11,9 @@ let
   elasticArch = archOverrides."${arch}" or arch;
   plat = elemAt info 1;
   shas = {
-    "x86_64-linux"  = "0nmx7r6i54x7pii4ryh3wzzbwvnmcb3f1hn6ch96r24xi4v9m1sb";
-    "i686-linux"    = "0am6wmbcsh7zxzdrl1q9jbjrb7y4apvi6sr70j61xcx07pbickpp";
-    "x86_64-darwin" = "0kjnlzsz4i2fca3jgfsr1kknqzaypb0r78a7cxz2m7daj3bmpvpl";
+    "x86_64-linux"  = "02dhhp16pmkrpi2dfrca9qzz1q7jrxhaw6l3cfflgxx77hz0hlnw";
+    "i686-linux"    = "1h1zr342dq7nngvzpf9pn9mvwsi7aksa3qjyqpcc4yvbmmyrlk0m";
+    "x86_64-darwin" = "0van8cnir6s520crc20bf2clbkf822c3ylpk7iiq7da8hwvsypp9";
   };
 in stdenv.mkDerivation rec {
   name = "kibana-${version}";
diff --git a/pkgs/misc/logging/beats/default.nix b/pkgs/misc/logging/beats/default.nix
index 2b555978edc3..e3333fa5caac 100644
--- a/pkgs/misc/logging/beats/default.nix
+++ b/pkgs/misc/logging/beats/default.nix
@@ -8,7 +8,7 @@ let beat = package : extraArgs : buildGoPackage (rec {
         owner = "elastic";
         repo = "beats";
         rev = "v${version}";
-        sha256 = "0vzjlgc0sym3kh6nflf2iyy2k3gxd7zwq8ma0cd7kpf42vxwhvqy";
+        sha256 = "1lbdi4c0y4bfkmim9q98ravknv4yw0dl3z57c3w5aqhi2sx0w23h";
       };
 
       goPackagePath = "github.com/elastic/beats";
diff --git a/pkgs/servers/search/elasticsearch/5.x.nix b/pkgs/servers/search/elasticsearch/5.x.nix
index 781f505f4690..cfa471f217ee 100644
--- a/pkgs/servers/search/elasticsearch/5.x.nix
+++ b/pkgs/servers/search/elasticsearch/5.x.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://artifacts.elastic.co/downloads/elasticsearch/${name}.tar.gz";
-    sha256 = "1wavcqhwx4nj5v1ba8136009asnhrnhpm87zdsbxlvifqz0f4w08";
+    sha256 = "0pvi6akicg0i3bz3lbc6k9rznxw7d25flg9wbs2dyxv8i2rrqvq0";
   };
 
   patches = [ ./es-home-5.x.patch ./es-classpath-5.x.patch ];
diff --git a/pkgs/tools/misc/logstash/5.x.nix b/pkgs/tools/misc/logstash/5.x.nix
index d796b3952f68..4ecc0be783eb 100644
--- a/pkgs/tools/misc/logstash/5.x.nix
+++ b/pkgs/tools/misc/logstash/5.x.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
-    sha256 = "04nrw7ikcjp02cmwvaa1swj0b66l91n9d8qbdicsa023js4mp14m";
+    sha256 = "11qg8i0svsccr1wd0yj0ivfzpza2hd68221g38v88shvj0bb737f";
   };
 
   dontBuild         = true;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5418ddc002f8..9666901e1466 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1840,7 +1840,7 @@ with pkgs;
   evemu = callPackage ../tools/system/evemu { };
 
   # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
-  elk5Version = "5.5.2";
+  elk5Version = "5.6.1";
 
   elasticsearch = callPackage ../servers/search/elasticsearch { };
   elasticsearch2 = callPackage ../servers/search/elasticsearch/2.x.nix { };

From 5ae74455302260a38ab46eea7f96eff43de7392f Mon Sep 17 00:00:00 2001
From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Date: Tue, 19 Sep 2017 01:41:01 -0400
Subject: [PATCH 036/533] coreutils: remove conflicting _FORTIFY_SOURCE
 definition

Originally this was introduced in 055e646b ('coreutils: Guard against compiler not supporting __builtin_stpncpy_chk') four years ago. Right now this doesn't seem to serve any purpose and it conflicts with the hardening flags:

    <command line>:2:9: warning: '_FORTIFY_SOURCE' macro redefined [-Wmacro-redefined]
    #define _FORTIFY_SOURCE 2
            ^
    <command line>:1:9: note: previous definition is here
    #define _FORTIFY_SOURCE 0
            ^
    1 warning generated.
---
 pkgs/tools/misc/coreutils/default.nix | 2 --
 1 file changed, 2 deletions(-)

diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index c3f4863fe6f5..9a422a96d703 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -76,8 +76,6 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = optionalString selinuxSupport "-lsepol";
   FORCE_UNSAFE_CONFIGURE = optionalString hostPlatform.isSunOS "1";
 
-  makeFlags = optionalString hostPlatform.isDarwin "CFLAGS=-D_FORTIFY_SOURCE=0";
-
   # Works around a bug with 8.26:
   # Makefile:3440: *** Recursive variable 'INSTALL' references itself (eventually).  Stop.
   preInstall = optionalString (hostPlatform != buildPlatform) ''

From 3170d8608db5ce30a7ea6a439bb99227b0779a5f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Tue, 19 Sep 2017 11:54:40 +0100
Subject: [PATCH 037/533] gdbm: add symlinks for compatibility

some tools check this location to distinguish between gdbm and ndbm
---
 pkgs/development/libraries/gdbm/default.nix | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/pkgs/development/libraries/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index 86d9bd649881..c6313dec90ce 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -25,6 +25,17 @@ stdenv.mkDerivation rec {
   '';
   configureFlags = [ "--enable-libgdbm-compat" ];
 
+  postInstall = ''
+    # create symlinks for compatibility
+    install -dm755 $out/include/gdbm
+    (
+      cd $out/include/gdbm
+      ln -s ../gdbm.h gdbm.h
+      ln -s ../ndbm.h ndbm.h
+      ln -s ../dbm.h  dbm.h
+    )
+  '';
+
   meta = with lib; {
     description = "GNU dbm key/value database library";
 

From 16cf4489336fcfddc3b335a499a958e0fd8277e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Fri, 15 Sep 2017 11:04:14 +0200
Subject: [PATCH 038/533] gettext, gcc5: enable stackprotector now

This has been forgotten in #29349 ?
---
 pkgs/development/compilers/gcc/5/default.nix   | 3 +--
 pkgs/development/libraries/gettext/default.nix | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/compilers/gcc/5/default.nix b/pkgs/development/compilers/gcc/5/default.nix
index f593e00ccfd4..7ddc52592ffd 100644
--- a/pkgs/development/compilers/gcc/5/default.nix
+++ b/pkgs/development/compilers/gcc/5/default.nix
@@ -221,8 +221,7 @@ stdenv.mkDerivation ({
     inherit sha256;
   };
 
-  # FIXME stackprotector needs gcc 4.9 in bootstrap tools
-  hardeningDisable = [ "stackprotector" "format" ];
+  hardeningDisable = [ "format" ];
 
   inherit patches;
 
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index ee74836df81d..a35d2380eded 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -12,8 +12,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" "doc" "info" ];
 
-  # FIXME stackprotector needs gcc 4.9 in bootstrap tools
-  hardeningDisable = [ "format" "stackprotector" ];
+  hardeningDisable = [ "format" ];
 
   LDFLAGS = if stdenv.isSunOS then "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec" else "";
 

From 0a2c39e205da145e8686fcc7c4e75f7274257ea8 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Tue, 19 Sep 2017 22:24:36 +0200
Subject: [PATCH 039/533] p11_kit: don't build documentation

This depends ultimately on texlive which is a big build and depends on
lots of libraries which often get security updates. This triggers
mass rebuilds because systemd depends on gnutls which depends on
p11_kit.

This was introduced with 93d80f19515867e3b215262532deb621e234c483.
---
 pkgs/development/libraries/p11-kit/default.nix | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index 7a7a6d9d23f1..34182cd5a847 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, autoreconfHook, which, pkgconfig, libiconv
-, libffi, libtasn1, gtk_doc, libxslt, docbook_xsl }:
+, libffi, libtasn1 }:
 
 stdenv.mkDerivation rec {
   name = "p11-kit-${version}";
@@ -12,10 +12,10 @@ stdenv.mkDerivation rec {
     sha256 = "1l8sg0g74k2mk0y6vz19hc103dzizxa0h579gdhvxifckglb01hy";
   };
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev"];
   outputBin = "dev";
 
-  nativeBuildInputs = [ autoreconfHook which pkgconfig gtk_doc libxslt docbook_xsl ];
+  nativeBuildInputs = [ autoreconfHook which pkgconfig ];
   buildInputs = [ libffi libtasn1 libiconv ];
 
   autoreconfPhase = ''
@@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--without-trust-paths"
-    "--enable-doc"
   ];
 
   installFlags = [ "exampledir=\${out}/etc/pkcs11" ];

From ab851b63daa9dcbc7f24fb5e9713825e01da21a5 Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Wed, 20 Apr 2016 22:10:52 -0400
Subject: [PATCH 040/533] nixos/tinydns: add module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

with improvements suggested by Jörg Thalheim <joerg@thalheim.io>
---
 nixos/modules/module-list.nix                 |  1 +
 nixos/modules/services/networking/tinydns.nix | 53 +++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100644 nixos/modules/services/networking/tinydns.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 918d0f3b245d..9c61ac6fb5ca 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -518,6 +518,7 @@
   ./services/networking/tcpcrypt.nix
   ./services/networking/teamspeak3.nix
   ./services/networking/tinc.nix
+  ./services/networking/tinydns.nix
   ./services/networking/tftpd.nix
   ./services/networking/tox-bootstrapd.nix
   ./services/networking/toxvpn.nix
diff --git a/nixos/modules/services/networking/tinydns.nix b/nixos/modules/services/networking/tinydns.nix
new file mode 100644
index 000000000000..a60a820a09e5
--- /dev/null
+++ b/nixos/modules/services/networking/tinydns.nix
@@ -0,0 +1,53 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+{
+  ###### interface
+
+  options = {
+    services.tinydns = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = "Whether to run the tinydns dns server";
+      };
+
+      data = mkOption {
+        type = types.lines;
+        description = "The DNS data to serve, in the format described by tinydns-data(8)";
+      };
+
+      ip = mkOption {
+        default = "0.0.0.0";
+        type = types.str;
+        description = "IP address on which to listen for connections";
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf config.services.tinydns.enable {
+    environment.systemPackages = [ pkgs.djbdns ];
+
+    users.extraUsers.tinydns = {};
+
+    systemd.services.tinydns = {
+      description = "djbdns tinydns server";
+      wantedBy = [ "multi-user.target" ];
+      path = with pkgs; [ daemontools djbdns ];
+      preStart = ''
+        rm -rf /var/lib/tinydns
+        tinydns-conf tinydns tinydns /var/lib/tinydns ${config.services.tinydns.ip}
+        cd /var/lib/tinydns/root/
+        ln -sf ${pkgs.writeText "tinydns-data" config.services.tinydns.data} data
+        tinydns-data
+      '';
+      script = ''
+        cd /var/lib/tinydns
+        exec ./run
+      '';
+    };
+  };
+}

From 1b7e5eaa79241080eac2a0b79883a17c9e5f4731 Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Sat, 23 Apr 2016 14:49:48 -0400
Subject: [PATCH 041/533] nixos/dnscache: add module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

with improvements suggested by Jörg Thalheim <joerg@thalheim.io>
---
 nixos/modules/module-list.nix                 |  1 +
 .../modules/services/networking/dnscache.nix  | 86 +++++++++++++++++++
 2 files changed, 87 insertions(+)
 create mode 100644 nixos/modules/services/networking/dnscache.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 9c61ac6fb5ca..c528b92fb24f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -419,6 +419,7 @@
   ./services/networking/ddclient.nix
   ./services/networking/dhcpcd.nix
   ./services/networking/dhcpd.nix
+  ./services/networking/dnscache.nix
   ./services/networking/dnschain.nix
   ./services/networking/dnscrypt-proxy.nix
   ./services/networking/dnscrypt-wrapper.nix
diff --git a/nixos/modules/services/networking/dnscache.nix b/nixos/modules/services/networking/dnscache.nix
new file mode 100644
index 000000000000..f782be97f6fa
--- /dev/null
+++ b/nixos/modules/services/networking/dnscache.nix
@@ -0,0 +1,86 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.dnscache;
+
+  dnscache-root = pkgs.runCommand "dnscache-root" {} ''
+    mkdir -p $out/{servers,ip}
+
+    ${concatMapStrings (ip: ''
+      echo > "$out/ip/"${lib.escapeShellArg ip}
+    '') cfg.clientIps}
+
+    ${concatStrings (mapAttrsToList (host: ips: ''
+      ${concatMapStrings (ip: ''
+        echo ${lib.escapeShellArg ip} > "$out/servers/"${lib.escapeShellArg host}
+      '') ips}
+    '') cfg.domainServers)}
+
+    # djbdns contains an outdated list of root servers;
+    # if one was not provided in config, provide a current list
+    if [ ! -e servers/@ ]; then
+      awk '/^.?.ROOT-SERVERS.NET/ { print $4 }' ${pkgs.dns-root-data}/root.hints > $out/servers/@
+    fi
+  '';
+
+in {
+
+  ###### interface
+
+  options = {
+    services.dnscache = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = "Whether to run the dnscache caching dns server";
+      };
+
+      ip = mkOption {
+        default = "0.0.0.0";
+        type = types.str;
+        description = "IP address on which to listen for connections";
+      };
+
+      clientIps = mkOption {
+        default = [ "127.0.0.1" ];
+        type = types.listOf types.str;
+        description = "client IP addresses (or prefixes) from which to accept connections";
+        example = ["192.168" "172.23.75.82"];
+      };
+
+      domainServers = mkOption {
+        default = { };
+        type = types.attrsOf (types.listOf types.str);
+        description = "table of {hostname: server} pairs to use as authoritative servers for hosts (and subhosts)";
+        example = {
+          "example.com" = ["8.8.8.8" "8.8.4.4"];
+        };
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf config.services.dnscache.enable {
+    environment.systemPackages = [ pkgs.djbdns ];
+    users.extraUsers.dnscache = {};
+
+    systemd.services.dnscache = {
+      description = "djbdns dnscache server";
+      wantedBy = [ "multi-user.target" ];
+      path = with pkgs; [ bash daemontools djbdns ];
+      preStart = ''
+        rm -rf /var/lib/dnscache
+        dnscache-conf dnscache dnscache /var/lib/dnscache ${config.services.dnscache.ip}
+        rm -rf /var/lib/dnscache/root
+        ln -sf ${dnscache-root} /var/lib/dnscache/root
+      '';
+      script = ''
+        cd /var/lib/dnscache/
+        exec ./run
+      '';
+    };
+  };
+}

From 1e9deaad6612c0f60fd9a9af795d9e8a95463cd6 Mon Sep 17 00:00:00 2001
From: Vincent Laporte <Vincent.Laporte@gmail.com>
Date: Wed, 20 Sep 2017 05:38:42 +0000
Subject: [PATCH 042/533] ocamlPackages.csv: 1.7 -> 2.0

---
 pkgs/development/ocaml-modules/csv/1.5.nix    | 32 ++++++++++
 .../development/ocaml-modules/csv/default.nix | 60 ++++++-------------
 pkgs/top-level/ocaml-packages.nix             |  5 +-
 3 files changed, 55 insertions(+), 42 deletions(-)
 create mode 100644 pkgs/development/ocaml-modules/csv/1.5.nix

diff --git a/pkgs/development/ocaml-modules/csv/1.5.nix b/pkgs/development/ocaml-modules/csv/1.5.nix
new file mode 100644
index 000000000000..a7505f6f51cd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/csv/1.5.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
+
+stdenv.mkDerivation {
+
+  name = "ocaml${ocaml.version}-csv-1.5";
+
+  src = fetchzip {
+    url = "https://github.com/Chris00/ocaml-csv/releases/download/1.5/csv-1.5.tar.gz";
+    sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g";
+  };
+
+  buildInputs = [ ocaml findlib ocamlbuild ];
+
+  createFindlibDestdir = true;
+
+  configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests";
+
+  buildPhase = "ocaml setup.ml -build";
+
+  doCheck = true;
+  checkPhase = "ocaml setup.ml -test";
+
+  installPhase = "ocaml setup.ml -install";
+
+  meta = with stdenv.lib; {
+    description = "A pure OCaml library to read and write CSV files";
+    homepage = https://github.com/Chris00/ocaml-csv;
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.vbgl ];
+    platforms = ocaml.meta.platforms or [];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index 751d40ff706d..ba4f982222b4 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -1,48 +1,26 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ocaml_lwt }:
+{ stdenv, fetchurl, ocaml, findlib, jbuilder }:
 
-let param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.2"
-  then {
-    version = "1.7";
-    url = https://math.umons.ac.be/anum/software/csv/csv-1.7.tar.gz;
-    sha256 = "1mmcjiiz0jppgipavpph5kn04xcpalw4scbjrw2z3drghvr3qqwf";
-    lwtSupport = true;
-  } else {
-    version = "1.5";
-    url = https://github.com/Chris00/ocaml-csv/releases/download/1.5/csv-1.5.tar.gz;
-    sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g";
-    lwtSupport = false;
-  };
-in
+stdenv.mkDerivation rec {
+	version = "2.0";
+	name = "ocaml${ocaml.version}-csv-${version}";
+	src = fetchurl {
+		url = "https://github.com/Chris00/ocaml-csv/releases/download/2.0/csv-2.0.tbz";
+		sha256 = "1g6xsybwc5ifr7n4hkqlh3294njzca12xg86ghh6pqy350wpq1zp";
+	};
 
-stdenv.mkDerivation {
+	unpackCmd = "tar -xjf $src";
 
-  name = "ocaml${ocaml.version}-csv-${param.version}";
+	buildInputs = [ ocaml findlib jbuilder ];
 
-  src = fetchzip {
-    inherit (param) url sha256;
-  };
+	buildPhase = "jbuilder build -p csv";
 
-  buildInputs = [ ocaml findlib ocamlbuild ]
-  ++ stdenv.lib.optional param.lwtSupport ocaml_lwt;
+	inherit (jbuilder) installPhase;
 
-  createFindlibDestdir = true;
-
-  configurePhase = "ocaml setup.ml -configure --prefix $out --enable-tests"
-  + stdenv.lib.optionalString param.lwtSupport " --enable-lwt";
-
-  buildPhase = "ocaml setup.ml -build";
-
-  doCheck = true;
-  checkPhase = "ocaml setup.ml -test";
-
-  installPhase = "ocaml setup.ml -install";
-
-  meta = with stdenv.lib; {
-    description = "A pure OCaml library to read and write CSV files";
-    homepage = https://github.com/Chris00/ocaml-csv;
-    license = licenses.lgpl21;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
-  };
+	meta = {
+		description = "A pure OCaml library to read and write CSV files";
+		license = stdenv.lib.licenses.lgpl21;
+		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		inherit (src.meta) homepage;
+		inherit (ocaml.meta) platforms;
+	};
 }
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index cccb378068d8..4af5a810fd06 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -172,7 +172,10 @@ let
       lwt = ocaml_lwt;
     };
 
-    csv = callPackage ../development/ocaml-modules/csv { };
+    csv =
+      if lib.versionAtLeast ocaml.version "4.2"
+      then callPackage ../development/ocaml-modules/csv { }
+      else callPackage ../development/ocaml-modules/csv/1.5.nix { };
 
     curses = callPackage ../development/ocaml-modules/curses { };
 

From 4935d5f3768e50d59c2cade9fb4453e821437bc6 Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix@lancelotsix.com>
Date: Wed, 20 Sep 2017 09:45:09 +0200
Subject: [PATCH 043/533] gnupg: 2.2.0 -> 2.2.1

See http://lists.gnu.org/archive/html/info-gnu/2017-09/msg00010.html
for release information
---
 pkgs/tools/security/gnupg/22.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix
index 7080cda57f41..87686cd52c12 100644
--- a/pkgs/tools/security/gnupg/22.nix
+++ b/pkgs/tools/security/gnupg/22.nix
@@ -15,11 +15,11 @@ assert guiSupport -> pinentry != null;
 stdenv.mkDerivation rec {
   name = "gnupg-${version}";
 
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1rj538kp3wsdq7rhl8sy1wpwhlsbxcch0cwk64kgz8gpw05lllfl";
+    sha256 = "1yv2pwf3vhv9dpbf51fnm0wy03va1cg5r7qaz7rg75cwbgb0rmrl";
   };
 
   buildInputs = [

From 0b3911849461e0e7fc21c6893822b9f6b8ebd745 Mon Sep 17 00:00:00 2001
From: Jean-Francois Roche <jfroche@affinitic.be>
Date: Tue, 19 Sep 2017 23:27:45 +0200
Subject: [PATCH 044/533] openfortivpn: 1.2.0 -> 1.5.0

fixes #29578
---
 pkgs/tools/networking/openfortivpn/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 3854d94f9093..48abd9a33742 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, openssl, ppp }:
+{ stdenv, fetchFromGitHub, autoreconfHook, openssl, ppp, pkgconfig }:
 
 with stdenv.lib;
 
 let repo = "openfortivpn";
-    version = "1.2.0";
+    version = "1.5.0";
 
 in stdenv.mkDerivation {
   name = "${repo}-${version}";
@@ -12,10 +12,10 @@ in stdenv.mkDerivation {
     owner = "adrienverge";
     inherit repo;
     rev = "v${version}";
-    sha256 = "1a1l9f6zivfyxg9g2x7kzkvcyh84s7l6v0kimihhrd19zl0m41jn";
+    sha256 = "0fm0z73afghwmbshpsn5jfbyyfzz1v8s7scwycnvsk2cgv5f4r86";
   };
-
-  buildInputs = [ openssl ppp autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ openssl ppp ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
 

From 5a6939fefb880ccc50563efa5755069072574405 Mon Sep 17 00:00:00 2001
From: Gauthier POGAM--LE MONTAGNER <kendos.kenlen@gmail.com>
Date: Wed, 22 Feb 2017 16:26:17 +0100
Subject: [PATCH 045/533] jetbrains.ruby-mine{7,8}: remove

---
 .../editors/jetbrains/default.nix             | 26 -------------------
 1 file changed, 26 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 95f3c0801d2a..8c1d4ada556a 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -396,32 +396,6 @@ in
     update-channel = "rm2017.1";
   };
 
-  ruby-mine7 = buildRubyMine rec {
-    name = "ruby-mine-${version}";
-    version = "7.1.5";
-    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 = "04fcxj1xlap9mxmwf051s926p2darlj5kwl4lms2gy5d8b2lhd5l";
-    };
-    wmClass = "jetbrains-rubymine";
-    update-channel = null;
-  };
-
-  ruby-mine8 = buildRubyMine rec {
-    name = "ruby-mine-${version}";
-    version = "8.0.4";
-    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 = "0hipxib7377232w1jbf8h98bmh0djkllsrq3lq0w3fdxqglma43a";
-    };
-    wmClass = "jetbrains-rubymine";
-    update-channel = null;
-  };
-
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
     version = "2017.2.2"; /* updated by script */

From 352855e77818202f279e77664457f0d80d1e90cb Mon Sep 17 00:00:00 2001
From: Gauthier POGAM--LE MONTAGNER <kendos.kenlen@gmail.com>
Date: Wed, 22 Feb 2017 17:23:56 +0100
Subject: [PATCH 046/533] jetbrains.webstorm{10,11}: remove

---
 .../editors/jetbrains/default.nix             | 25 -------------------
 1 file changed, 25 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 8c1d4ada556a..1c7aebbd0b6a 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -409,29 +409,4 @@ in
     update-channel = "WS_Release";
   };
 
-  webstorm10 = buildWebStorm rec {
-    name = "webstorm-${version}";
-    version = "10.0.5";
-    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 = "0a5s6f99wyql5pgjl94pf4ljdbviik3b8dbr1s6b7c6jn1gk62ic";
-    };
-    wmClass = "jetbrains-webstorm";
-    update-channel = null;
-  };
-
-  webstorm11 = buildWebStorm rec {
-    name = "webstorm-${version}";
-    version = "11.0.4";
-    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 = "17agyqdyz6naxyx6p0y240ar93gja0ypw01nm2qmfzvh7ch03r24";
-    };
-    wmClass = "jetbrains-webstorm";
-    update-channel = null;
-  };
 }

From 88de0e44f68a70e9d61cb834f01a3062db754249 Mon Sep 17 00:00:00 2001
From: Gauthier POGAM--LE MONTAGNER <kendos.kenlen@gmail.com>
Date: Wed, 22 Feb 2017 17:27:15 +0100
Subject: [PATCH 047/533] jetbrains.idea{14,15}-{community,ultimate}: remove

---
 .../editors/jetbrains/default.nix             | 39 -------------------
 1 file changed, 39 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 1c7aebbd0b6a..738a0769c6cd 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -253,19 +253,6 @@ in
     update-channel = "gogland_1.0_EAP";
   };
 
-  idea14-community = buildIdea rec {
-    name = "idea-community-${version}";
-    version = "14.1.7";
-    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 = "1i4mdjm9dd6zvxlpdgd3bqg45ir0cfc9hl55cdc0hg5qwbz683fz";
-    };
-    wmClass = "jetbrains-idea-ce";
-    update-channel = "IDEA14.1";
-  };
-
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
     version = "2017.2.2"; /* updated by script */
@@ -279,32 +266,6 @@ in
     update-channel = "IDEA_Release";
   };
 
-  idea14-ultimate = buildIdea rec {
-    name = "idea-ultimate-${version}";
-    version = "14.1.7";
-    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}.tar.gz";
-      sha256 = "1hhga1i2zbsipgq283gn19kv9n94inhr1bxh2yx19gz7yr4r49d2";
-    };
-    wmClass = "jetbrains-idea";
-    update-channel = "IDEA14.1";
-  };
-
-  idea15-ultimate = buildIdea rec {
-    name = "idea-ultimate-${version}";
-    version = "15.0.6";
-    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}.tar.gz";
-      sha256 = "012aap2qn0jx4x34bdv9ivrsr86vvf683srb5vpj27hc4l6rw6ll";
-    };
-    wmClass = "jetbrains-idea";
-    update-channel = null;
-  };
-
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
     version = "2017.2.2"; /* updated by script */

From e1cab6b4c5f1317c65f07955fd887b1c1e60b553 Mon Sep 17 00:00:00 2001
From: Gauthier POGAM--LE MONTAGNER <kendos.kenlen@gmail.com>
Date: Wed, 22 Feb 2017 17:28:37 +0100
Subject: [PATCH 048/533] jetbrains.phpstorm10: remove

---
 pkgs/applications/editors/jetbrains/default.nix | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 738a0769c6cd..9aae3991ae26 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -292,19 +292,6 @@ in
     update-channel = "PS2017.2";
   };
 
-  phpstorm10 = buildPhpStorm rec {
-    name = "phpstorm-${version}";
-    version = "10.0.4";
-    description = "Professional IDE for Web and PHP developers";
-    license = stdenv.lib.licenses.unfree;
-    src = fetchurl {
-      url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "0fi042zvjpg5pn2mnhj3bbrdkl1b9vmhpf2l6ca4nr0rhjjv7dsm";
-    };
-    wmClass = "jetbrains-phpstorm";
-    update-channel = "WI10";
-  };
-
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
     version = "2017.2.2"; /* updated by script */

From d5a33e8f386addaa328bdb353e524bfd80f99537 Mon Sep 17 00:00:00 2001
From: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
Date: Wed, 20 Sep 2017 10:59:22 +0200
Subject: [PATCH 049/533] ghcjsHEAD: bump ghcjs shims

---
 pkgs/development/compilers/ghcjs/head_shims.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/compilers/ghcjs/head_shims.nix b/pkgs/development/compilers/ghcjs/head_shims.nix
index 68b03d057397..a9a7f8d45e27 100644
--- a/pkgs/development/compilers/ghcjs/head_shims.nix
+++ b/pkgs/development/compilers/ghcjs/head_shims.nix
@@ -2,6 +2,6 @@
 fetchFromGitHub {
   owner = "ghcjs";
   repo = "shims";
-  rev = "f67394c559ac921a768b12f141499119563b8bf3";
-  sha256 = "1lz86qmkxkfch1yk9a62admw7jsd34sqcrskgpq28hbhjpgzf1lv";
+  rev = "85395dce971e23a39e5f93af4ed139ca36d4e448";
+  sha256 = "1kqgik75jx681s1kjx1s7dryigr3m940c3zb9vy0r3psxrw6sf2g";
 }

From ee88bd3424a96d3c6f98a809d535666aa0f3de63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 06:35:19 -0300
Subject: [PATCH 050/533] tint2: 0.14.6 -> 15.1

---
 pkgs/applications/misc/tint2/default.nix | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index 3edc9b73bb54..6a613b6d5b5b 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
-, glib , imlib2, gtk2, libXinerama , libXrender, libXcomposite, libXdamage
-, libX11 , libXrandr, librsvg, libpthreadstubs , libXdmcp
-, libstartup_notification , hicolor_icon_theme, wrapGAppsHook
+, glib, imlib2, gtk2, libXinerama, libXrender, libXcomposite, libXdamage
+, libX11, libXrandr, librsvg, libpthreadstubs, libXdmcp
+, libstartup_notification, hicolor_icon_theme, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   name = "tint2-${version}";
-  version = "0.14.6";
+  version = "15.1";
 
   src = fetchFromGitLab {
     owner = "o9000";
     repo = "tint2";
     rev = version;
-    sha256 = "0v7i8araj85cbl45icinvmsz5741cx2ybjgkx72m3xfcb9fqg69l";
+    sha256 = "16mpvknibbqy0vjgkwig7g8i6rivm14ipd7ixvqydgcj7wibn0b7";
   };
 
   enableParallelBuilding = true;
@@ -23,11 +23,8 @@ stdenv.mkDerivation rec {
     libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
     libXdmcp libstartup_notification hicolor_icon_theme ];
 
-  preConfigure = ''
+  postPatch = ''
     substituteInPlace CMakeLists.txt --replace /etc $out/etc
-  '';
-
-  prePatch = ''
     for f in ./src/launcher/apps-common.c \
              ./src/launcher/icon-theme-common.c \
              ./themes/*tint2rc

From b9907fc6fe32b4e3a51825028ccf5bfb9e5d7717 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 06:47:53 -0300
Subject: [PATCH 051/533] numix-icon-theme: 2017-01-25 -> 2017-09-17

---
 pkgs/data/icons/numix-icon-theme/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index 7f6a3fe48d79..c767675e90ec 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2017-01-25";
+  version = "2017-09-17";
 
   package-name = "numix-icon-theme";
 
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = package-name;
-    rev = "271471c7944d592a1d666910de0adce82a393d31";
-    sha256 = "1yc9jk1233ybk6cd7q4x3q87rwgq9nkcgkn9fw9si422dkvnwd7h";
+    rev = "d0e7da93520e521bf7df7cffa3620c10a8400a7f";
+    sha256 = "1my43kv9yz9vdn51zhd13c8zavba17cqrmxkmhpx0c8xldjqfp3i";
   };
 
   dontBuild = true;

From c40b6862f26b9af50d471714d8644b648965da2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 07:01:18 -0300
Subject: [PATCH 052/533] numix-icon-theme-circle: 2016-11-10 -> 17-09-13

---
 pkgs/data/icons/numix-icon-theme-circle/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 33734e15c9ce..1dd268cf816e 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, numix-icon-theme }:
 
 stdenv.mkDerivation rec {
-  version = "2016-11-10";
+  version = "17-09-13";
 
   package-name = "numix-icon-theme-circle";
 
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = package-name;
-    rev = "ba72743b0ee78cf56585bb498eb59e83d0de17a2";
-    sha256 = "0zyvcpa8d8jc7r08chhv0chp7z29w6ir9hkgm9aq23aa80i6pdgv";
+    rev = version;
+    sha256 = "14ck07j9v0yh8ky191sa3xxi4qh7bbg84i8jijy3kbjcx9s0zl8a";
   };
 
   buildInputs = [ numix-icon-theme ];

From 276d23465928a08b5c424b260f37fda799a70ec0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 7 Sep 2017 08:25:17 +0100
Subject: [PATCH 053/533] vimPlugins.LanguageClient-neovim: init at 2017-09-05

---
 pkgs/misc/vim-plugins/default.nix      | 11 +++++++++++
 pkgs/misc/vim-plugins/vim-plugin-names |  1 +
 2 files changed, 12 insertions(+)

diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index ee6b0fe8c375..2a2545fbbf91 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -495,6 +495,17 @@ rec {
 
   };
 
+  LanguageClient-neovim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "LanguageClient-neovim-2017-09-05";
+    src = fetchgit {
+      url = "https://github.com/autozimu/LanguageClient-neovim";
+      rev = "5bfc3492d50c3c48c6e0b0d1899ed2bbca2cf48f";
+      sha256 = "1zi3v4yx4hgzfr23377z84yngiqvdwjpdpkn12lpi6irb04q6641";
+    };
+    dependencies = [];
+
+  };
+
   clighter8 = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "clighter8-2017-07-23";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 8dd187fe5223..edea47142796 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -31,6 +31,7 @@
 "github:alvan/vim-closetag"
 "github:andviro/flake8-vim"
 "github:ap/vim-css-color"
+"github:autozimu/LanguageClient-neovim"
 "github:bbchung/clighter8"
 "github:benekastah/neomake"
 "github:bitc/vim-hdevtools"

From 2ebfdf972f508bcced2b661c55b8d927682ac993 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Tue, 19 Sep 2017 01:27:03 +0100
Subject: [PATCH 054/533] nvim-cm-racer: init at 2017-07-27

---
 pkgs/misc/vim-plugins/default.nix      | 11 +++++++++++
 pkgs/misc/vim-plugins/vim-plugin-names |  1 +
 2 files changed, 12 insertions(+)

diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 2a2545fbbf91..24dd868d64dc 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1374,6 +1374,17 @@ rec {
 
   };
 
+  nvim-cm-racer = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "nvim-cm-racer-2017-07-27";
+    src = fetchgit {
+      url = "https://github.com/roxma/nvim-cm-racer";
+      rev = "2a8a4a49fa58c5dac9e0bed9511f6928930cacd2";
+      sha256 = "1yljxwypgn91084yyicbc2qprn31ld7s4drvnddzczyhzq5m2gpx";
+    };
+    dependencies = [];
+
+  };
+
   nvim-completion-manager = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "nvim-completion-manager-2017-09-05";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index edea47142796..f1983e3eeb6a 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -110,6 +110,7 @@
 "github:rhysd/vim-grammarous"
 "github:rodjek/vim-puppet"
 "github:roxma/nvim-completion-manager"
+"github:roxma/nvim-cm-racer"
 "github:ryanoasis/vim-devicons"
 "github:rust-lang/rust.vim"
 "github:sbdchd/neoformat"

From 79941a3bf4dd3aa403865afee0562f4fdccd6d3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 07:10:44 -0300
Subject: [PATCH 055/533] numix-icon-theme-square: 2016-11-23 -> 17-09-13

---
 pkgs/data/icons/numix-icon-theme-square/default.nix | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index 4485351b9c39..90040c8fc286 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchFromGitHub, numix-icon-theme }:
 
 stdenv.mkDerivation rec {
-  version = "2016-11-23";
-
-  package-name = "numix-icon-theme-square";
-
   name = "${package-name}-${version}";
+  package-name = "numix-icon-theme-square";
+  version = "17-09-13";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = package-name;
-    rev = "1c30eb02aea3d95c49f95c212702b56e93ac9043";
-    sha256 = "1d2car4dsh1dnim9jlakm035ydqd1f115cagm6zm8gwa5w9annag";
+    rev = version;
+    sha256 = "1grpm902hiid561fbp9y1rb9z21y8d1krjgxgs7j8qnpx380sd5x";
   };
 
   buildInputs = [ numix-icon-theme ];

From 42e13a85ed21e6f1e0b6ebfc651c601841361883 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:44:02 +0200
Subject: [PATCH 056/533] jetbrains.clion: 2017.2.1 -> 2017.2.2

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 9aae3991ae26..a58bf2fe8e48 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -216,12 +216,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2017.2.1"; /* updated by script */
+    version = "2017.2.2"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "acd3d09a37a3fa922a85a48635d1b230d559ea68917e2e7895caf16460d50c13"; /* updated by script */
+      sha256 = "1rnncii7z44186jv9xl3ax179ws9wfwd6yndyf9pvnpcd4jcs6d0"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml

From 5b3dad3b1cdd231f49929ad416c712cfdf3af8d8 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:44:32 +0200
Subject: [PATCH 057/533] jetbrains.gogland: 172.3757.46 -> 172.3968.45

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index a58bf2fe8e48..ed251bfca9c5 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -242,12 +242,12 @@ in
 
   gogland = buildGogland rec {
     name = "gogland-${version}";
-    version = "172.3757.46"; /* updated by script */
+    version = "172.3968.45"; /* 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 = "0d6b710edc434ed5d5ea5c4734b9026e2caeba7e74a027c1eb6fd837c5d4f4fd"; /* updated by script */
+      sha256 = "0nk9g28l414yp5ldyx1yl38qpp9s1pxkfxfwmw9yvlff3bi0kkyw"; /* updated by script */
     };
     wmClass = "jetbrains-gogland";
     update-channel = "gogland_1.0_EAP";

From d6663a559c0785b319ecf2fb54f99f9d212fc433 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:45:18 +0200
Subject: [PATCH 058/533] jetbrains.idea-community: 2017.2.2 -> 2017.2.4

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index ed251bfca9c5..baa584aeabe8 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -255,12 +255,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2017.2.2"; /* updated by script */
+    version = "2017.2.4"; /* 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 = "c719af3d538bef23d061ef62d4acbf503198ff62322a3c0c5b3c38ab7ac36c4f"; /* updated by script */
+      sha256 = "179nqzgbb76pyr48faca6k69v32m5kvx66i2apih95g54sd1xgva"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IDEA_Release";

From 74d75428921ddd5141b536faa07002591d94c81f Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:45:40 +0200
Subject: [PATCH 059/533] jetbrains.idea-ultimate: 2017.2.2 -> 2017.2.4

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index baa584aeabe8..40c43304386a 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -268,12 +268,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2017.2.2"; /* updated by script */
+    version = "2017.2.4"; /* 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 = "b8eb9d612800cc896eb6b6fbefbf9f49d92d2350ae1c3c4598e5e12bf93be401"; /* updated by script */
+      sha256 = "1qwqk1r42llh8py0w2iq4w1ks3ipzsxkbdz0zkrd1572zngpk90m"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IDEA_Release";

From 5f9a4cb163586fea8afeb16a3bc64ce056369d42 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:46:07 +0200
Subject: [PATCH 060/533] jetbrains.phpstorm: 2017.2.1 -> 2017.2.2

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 40c43304386a..3bdc0d095f62 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -281,12 +281,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2017.2.1"; /* updated by script */
+    version = "2017.2.4"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "2f1af9ef6e9cda25a809a19a25f2d4fbaef00edf9d1d5a195572ab5e04e71e5e"; /* updated by script */
+      sha256 = "0hn3x5wid2z7s2mhnxfqh2yhdkscccpbz7qgsxkjvmkxcynazrvy"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PS2017.2";

From 0d6b50f2eba4842a60a6fd63d3c2e0618b7c00a6 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:46:27 +0200
Subject: [PATCH 061/533] jetbrains.pycharm-community: 2017.2.2 -> 2017.2.3

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 3bdc0d095f62..ba5281b56c92 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -294,12 +294,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2017.2.2"; /* updated by script */
+    version = "2017.2.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 = "4eacc9bf512406bebf71546ccb4b6c14ea8e06748fd76be6ca409ea1955e1f53"; /* updated by script */
+      sha256 = "1aik3jhggxfxnfv4kg9716gwsi013511jf9n20f2mqzdq8w2jmp8"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm_Release";

From eb363ff3dc3f92bb41c85e69f092ef1ad05cf091 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:46:46 +0200
Subject: [PATCH 062/533] jetbrains.pycharm-professional: 2017.2.2 -> 2017.2.3

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index ba5281b56c92..2e35485e08b5 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -307,12 +307,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2017.2.2"; /* updated by script */
+    version = "2017.2.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 = "21aedfd189115fcfee0e8c8df88eccbd8f19b998667af3c55ce5d56d4eaa37a9"; /* updated by script */
+      sha256 = "0ib96yaj7l0igiv2bcrqqpbfn2xn3ic7lxyjn99k6dh8ika1qvry"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm_Release";

From 1b71376cf2c2e73ea4760da4beb71f7b8037c443 Mon Sep 17 00:00:00 2001
From: Rob Vermaas <rob.vermaas@gmail.com>
Date: Wed, 20 Sep 2017 10:57:54 +0000
Subject: [PATCH 063/533] Make sure dummy kernel module is loaded for
 hologram-agent.

(cherry picked from commit eb873f6c78e1c5306956b4c9fd651b25a6b9c40c)
---
 nixos/modules/services/security/hologram-agent.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/nixos/modules/services/security/hologram-agent.nix b/nixos/modules/services/security/hologram-agent.nix
index 49b5c935267b..6c53a2df6306 100644
--- a/nixos/modules/services/security/hologram-agent.nix
+++ b/nixos/modules/services/security/hologram-agent.nix
@@ -33,6 +33,8 @@ in {
   };
 
   config = mkIf cfg.enable {
+    boot.kernelModules = [ "dummy" ];
+
     networking.interfaces.dummy0 = {
       ipAddress = "169.254.169.254";
       prefixLength = 32;

From d697403303faccc4349da1a248b2dd9ef16dd023 Mon Sep 17 00:00:00 2001
From: Matthias Beyer <mail@beyermatthias.de>
Date: Wed, 20 Sep 2017 13:03:19 +0200
Subject: [PATCH 064/533] khal: 0.9.5 -> 0.9.7

---
 pkgs/applications/misc/khal/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index 98dbb0cbf911..1864c754a26f 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -3,12 +3,12 @@
 with python3Packages;
 
 buildPythonApplication rec {
-  version = "0.9.5";
+  version = "0.9.7";
   name = "khal-${version}";
 
   src = fetchurl {
     url = "mirror://pypi/k/khal/khal-${version}.tar.gz";
-    sha256 = "0fvv0kjym9q8v20zbpr5m8ig65b8hva4p0c935qsdvgdni68jidr";
+    sha256 = "0x1p62ff7ggb172rjr6sbdrjh1gl3ck3bwxsqlsix8i5wycwvnmv";
   };
 
   LC_ALL = "en_US.UTF-8";

From f89ba64f0098fa55a5df19df5dd6fd3836dfe0ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 08:26:02 -0300
Subject: [PATCH 065/533] flat-plat: 20170605 -> 20170917

---
 pkgs/misc/themes/flat-plat/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/misc/themes/flat-plat/default.nix b/pkgs/misc/themes/flat-plat/default.nix
index 3c7882e8f946..cd652440efae 100644
--- a/pkgs/misc/themes/flat-plat/default.nix
+++ b/pkgs/misc/themes/flat-plat/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "flat-plat-gtk-theme-${version}";
-  version = "20170605";
+  version = "20170917";
 
   src = fetchFromGitHub {
     owner = "nana-4";
     repo = "Flat-Plat";
     rev = "v${version}";
-    sha256 = "1vcd6mkkfk9a1n5hwpdigvsdsfd8df83kc94w53rs7gw9pqfygya";
+    sha256 = "17r4wl27yx49xg0l3s5d67174r63p4cw6cbdmzl81if7iab69hv0";
   };
 
   nativeBuildInputs = [ gnome3.glib libxml2 ];

From 4948b0952426e613d601e6d0c95722811c67450b Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:49:13 +0200
Subject: [PATCH 066/533] jetbrains.rider: 171.4456.1432 -> 2017.1.1

---
 pkgs/applications/editors/jetbrains/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 2e35485e08b5..c58329913fdd 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -320,15 +320,15 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "171.4456.1432"; /* updated by script */
+    version = "2017.1.1"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
-      url = "https://download.jetbrains.com/resharper/Rider-RC-${version}.tar.gz";
-      sha256 = "37bad69cdfcc4f297b2500a7bb673af7ef8f1fd45baa4eb2fa388d2c4bcb41ee"; /* updated by script */
+      url = "https://download.jetbrains.com/resharper/JetBrains.Rider-${version}.tar.gz";
+      sha256 = "1h6p847izddard3227ifg3q5klwvdfixir63i6adkd2fvsqn5935"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
-    update-channel = "rider_2017_1_eap";
+    update-channel = "rider_2017_1";
   };
 
   ruby-mine = buildRubyMine rec {

From ac9353b815d81c47d311c027476cce725fdc28a5 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Wed, 20 Sep 2017 12:49:51 +0200
Subject: [PATCH 067/533] jetbrains.webstorm: 2017.2.2 -> 2017.2.4

---
 pkgs/applications/editors/jetbrains/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index c58329913fdd..d7f71af65293 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -346,12 +346,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2017.2.2"; /* updated by script */
+    version = "2017.2.4"; /* 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 = "d6b7b103f8543e25d2602657f12d029856529895af6354e1a0875ed40bd05180"; /* updated by script */
+      sha256 = "1dd2fbsyra4fm39w1kz2biljbrmcqwd866hvzsidigmjplhlzan0"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WS_Release";

From e3141bc1b16a140e22c9af5d729bd4239ac8e4be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Wed, 20 Sep 2017 13:22:47 +0100
Subject: [PATCH 068/533] valauncher: 1.2 -> 1.3.1

---
 pkgs/applications/misc/valauncher/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/misc/valauncher/default.nix b/pkgs/applications/misc/valauncher/default.nix
index 7d35f1f64a8e..00a60ae50a48 100644
--- a/pkgs/applications/misc/valauncher/default.nix
+++ b/pkgs/applications/misc/valauncher/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, gtk3, vala_0_26, pkgconfig, gnome3 }:
+{ stdenv, fetchFromGitHub, cmake, gtk3, vala, pkgconfig, gnome3 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2";
+  version = "1.3.1";
   name = "valauncher-${version}";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "valauncher";
     rev = "v${version}";
-    sha256 = "1d1gfmzmr5ra2rnjc6rbz31mf3hk7q04lh4i1hljgk7fh90dacb6";
+    sha256 = "18969v870737jg1q0l3d05pb9mxsrcpdi0mnyz94rwkspszvxxqi";
   };
 
-  buildInputs = [ cmake gtk3 vala_0_26 pkgconfig gnome3.libgee ];
+  buildInputs = [ cmake gtk3 vala pkgconfig gnome3.libgee ];
 
   meta = with stdenv.lib; {
       description = "A fast dmenu-like gtk3 application launcher";

From 890386090ad6fe0ead426a1ae25c1da5ea057e87 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 20 Sep 2017 08:34:22 -0400
Subject: [PATCH 069/533] minikube: 0.22.1 -> 0.22.2

---
 pkgs/applications/networking/cluster/minikube/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index 9745143dabda..b601bb00c200 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -23,7 +23,7 @@ let
 in buildGoPackage rec {
   pname   = "minikube";
   name    = "${pname}-${version}";
-  version = "0.22.1";
+  version = "0.22.2";
 
   goPackagePath = "k8s.io/minikube";
 
@@ -31,7 +31,7 @@ in buildGoPackage rec {
     owner  = "kubernetes";
     repo   = "minikube";
     rev    = "v${version}";
-    sha256 = "015ffsb7xx82y0dl38gayv2v9v33v99qmssd5djl21dhb3j79yba";
+    sha256 = "04h0hp0mkps3ilcig6xnmp41rlgaxhhpxakc86lsknvkk9kmrx89";
   };
 
   # kubernetes is here only to shut up a loud warning when generating the completions below. minikube checks very eagerly

From 7cfa6895e87624209e8ca1ab0355e880522fd631 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 20 Sep 2017 08:35:44 -0400
Subject: [PATCH 070/533] linux: 4.9.50 -> 4.9.51

---
 pkgs/os-specific/linux/kernel/linux-4.9.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 5f4686a5ec65..5033bb88f79a 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, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.9.50";
+  version = "4.9.51";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0dhm5w7qa1hyqp254r41b4nhf10a8w7sv1mhd16f61inpb41829c";
+    sha256 = "12mag09scyzi5a352y39y4b6rjh89qqca53hhmjc396q09hsdyl3";
   };
 } // (args.argsOverride or {}))

From 726765404ba71fbc11ae988e6410cd138fa6ba3e Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 20 Sep 2017 08:36:13 -0400
Subject: [PATCH 071/533] linux: 4.12.13 -> 4.12.14

---
 pkgs/os-specific/linux/kernel/linux-4.12.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-4.12.nix b/pkgs/os-specific/linux/kernel/linux-4.12.nix
index 640534aa2a6e..bff0f5db9538 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.12.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.12.nix
@@ -1,11 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.12.13";
+  version = "4.12.14";
   extraMeta.branch = "4.12";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18sxw7mw4fya7381mkah70s3di6b8xxfigjhrhb7zcczrffb4vl9";
+    sha256 = "09zxmknh6awhqmj8dyq95bdlwcasryy35hkjxjlzixdgn52kzaw6";
   };
 } // (args.argsOverride or {}))

From eab480ac3d897fc5dd8824e217156725e62a8fb7 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 20 Sep 2017 08:36:27 -0400
Subject: [PATCH 072/533] linux: 4.13.2 -> 4.13.3

---
 pkgs/os-specific/linux/kernel/linux-4.13.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-4.13.nix b/pkgs/os-specific/linux/kernel/linux-4.13.nix
index 1d51b033dc14..d1c4d8ba8e7d 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.13.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.13.nix
@@ -1,11 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.13.2";
+  version = "4.13.3";
   extraMeta.branch = "4.13";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1lgwgw9yp5ywbylnmahsmqzs98yfq53mvvqqdgp7ljiqg8bxqjh6";
+    sha256 = "1ayai3i0jakxzszpijhknjiwwi055wa74bpmnr0n7dh2l5s2rlh3";
   };
 } // (args.argsOverride or {}))

From e200cfbae1bbcf6b1687aae213eff24bc5f12e4a Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 20 Sep 2017 09:42:03 -0400
Subject: [PATCH 073/533] sbt: 1.0.1 -> 1.0.2

---
 pkgs/development/tools/build-managers/sbt/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 6d49b81bd611..e5f68365e427 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
       "https://cocl.us/sbt-${version}.tgz"
     ];
-    sha256 = "0nhf7fksgaa8snrhfaac4n6gf29bbv59lfyiv7pr2jhbi5m9js2v";
+    sha256 = "1w1f6nsdq3inxhqhy69mgljfjr51n1v1s8i51gcg11rd2bc67w63";
   };
 
   patchPhase = ''

From 0dddef468d2c3b08bf85124d94461dc840ceb20d Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 20 Sep 2017 03:00:39 +0200
Subject: [PATCH 074/533] hackage-packages.nix: automatic Haskell package set
 update

This update was generated by hackage2nix v2.5-9-g8a6ffec-dirty from Hackage revision
https://github.com/commercialhaskell/all-cabal-hashes/commit/9e7aa353cc648a425afda7b3dc3dd0e5e173074c.
---
 .../haskell-modules/hackage-packages.nix      | 203 ++++++++++++++----
 1 file changed, 156 insertions(+), 47 deletions(-)

diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 54f2b494e1dd..82c4a033c856 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -11412,6 +11412,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "List_0_6_1" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "List";
+       version = "0.6.1";
+       sha256 = "0ar4bpfv9nqc3bdwg6rlcnwr5si2df38ch8m2wnnl0346yzvmjni";
+       libraryHaskellDepends = [ base transformers ];
+       homepage = "http://github.com/yairchu/generator";
+       description = "List monad transformer and class";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ListLike" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , dlist, fmlist, HUnit, QuickCheck, random, text, utf8-string
@@ -25831,17 +25844,15 @@ self: {
      }) {inherit (pkgs) openssl;};
 
   "apecs" = callPackage
-    ({ mkDerivation, base, containers, criterion, linear, mtl, random
-     , sdl2, vector
+    ({ mkDerivation, base, containers, criterion, linear, mtl
+     , QuickCheck, vector
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.2.0.2";
-       sha256 = "177cym1wfkfw2abg3hs17fj569j189vr99a98avh1nnf6bgv8hk9";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.2.0.3";
+       sha256 = "0bsaxgmkcy4jpvf98frqa6dhdwzk2m59bcshb6rqx8ixllinpyvp";
        libraryHaskellDepends = [ base containers mtl vector ];
-       executableHaskellDepends = [ base linear random sdl2 ];
+       testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ base criterion linear ];
        homepage = "https://github.com/jonascarpay/apecs#readme";
        description = "A fast ECS for game engine programming";
@@ -42109,6 +42120,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "checkmate" = callPackage
+    ({ mkDerivation, base, bytestring, containers, diff-parse
+     , directory, file-embed, filepath, github, hlint, hspec
+     , hspec-megaparsec, interpolatedstring-perl6, megaparsec
+     , monad-parallel, optparse-applicative, QuickCheck, quickcheck-text
+     , range, temporary, text
+     }:
+     mkDerivation {
+       pname = "checkmate";
+       version = "0.1.3";
+       sha256 = "1i0hbbgg5lh44azk5vsm6nppazgn657942rcx6h08d6925kn6l7v";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers diff-parse directory filepath megaparsec
+         monad-parallel range text
+       ];
+       executableHaskellDepends = [
+         base diff-parse directory filepath github megaparsec
+         optparse-applicative range text
+       ];
+       testHaskellDepends = [
+         base bytestring diff-parse directory file-embed filepath hlint
+         hspec hspec-megaparsec interpolatedstring-perl6 megaparsec
+         QuickCheck quickcheck-text range temporary text
+       ];
+       homepage = "https://github.com/spoqa/checkmate#readme";
+       description = "Generate checklists relevant to a given patch";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "chell" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, options, patience
      , random, template-haskell, text, transformers
@@ -52063,19 +52105,13 @@ self: {
      }) {};
 
   "currency-codes" = callPackage
-    ({ mkDerivation, aeson, base, bson, lens, random, safe, swagger2
-     , text
-     }:
+    ({ mkDerivation, aeson, base, bson, random, safe, text }:
      mkDerivation {
        pname = "currency-codes";
-       version = "1.0.0.3";
-       sha256 = "0lfaikcig22y79fm75jc40d6ii3xrj4firyfssyqcqbyjhvf3fyn";
-       revision = "1";
-       editedCabalFile = "0jp3x19zymrjxlzrg98ch2fch9a1c93g41nzcfmxc6jjy5lh7x6z";
-       libraryHaskellDepends = [
-         aeson base bson lens random safe swagger2 text
-       ];
-       homepage = "https://gitlab.com/chordify/currency-codes";
+       version = "2.0.0.0";
+       sha256 = "0sdgnzww38l9vhjxs2b92c4j0db4ssbhxs4zrhvnfh66x6jjvnd5";
+       libraryHaskellDepends = [ aeson base bson random safe text ];
+       homepage = "https://github.com/chordify/currency-codes";
        description = "ISO-4217 Currency Codes";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -70865,8 +70901,8 @@ self: {
      }:
      mkDerivation {
        pname = "fltkhs";
-       version = "0.5.4.0";
-       sha256 = "0bg486byrg7mxc6j1v9fj80n43zk813riw5m5ninhyf0f34gjbwh";
+       version = "0.5.4.1";
+       sha256 = "0yclwq488g9mz6wsjcch7c5kwgc97rxp0lqjlfj44vbqbjk72l5x";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -80139,8 +80175,8 @@ self: {
      }:
      mkDerivation {
        pname = "goatee-gtk";
-       version = "0.3.1.1";
-       sha256 = "0pgpdk1y140pcdsyry185k0bpdhyr87bqrzk24yv65kgvqs442zm";
+       version = "0.3.1.2";
+       sha256 = "19qgkrv22jffvy27ykqyhgqw2qak4888r1d3x1lfs48r3bisli2h";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -85359,6 +85395,30 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
 
+  "hackage-db_2_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
+     , directory, filepath, tar, time, utf8-string
+     }:
+     mkDerivation {
+       pname = "hackage-db";
+       version = "2.0";
+       sha256 = "09xza82g45nv3gxmryqd2mns4bm8hr6d7hzr7nqdi6zq46s0lfgq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring Cabal containers directory filepath tar time
+         utf8-string
+       ];
+       executableHaskellDepends = [
+         base bytestring Cabal containers utf8-string
+       ];
+       homepage = "https://github.com/peti/hackage-db#readme";
+       description = "Access Hackage's package database via Data.Map";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ peti ];
+     }) {};
+
   "hackage-diff" = callPackage
     ({ mkDerivation, ansi-terminal, async, attoparsec, base, Cabal
      , cpphs, directory, filepath, haskell-src-exts, HTTP, mtl, process
@@ -97707,8 +97767,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.2.5";
-       sha256 = "1va5a1j4pa6yvzhk0y4pxs0q80ph3yr8jdbgy422mkvbmczxynna";
+       version = "1.2.6";
+       sha256 = "1l5vzhyya5h6sc3l74iy0mnys8bcjp6m5z0m3lqabk37ik31ld36";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98214,6 +98274,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) gsl;};
 
+  "hmatrix-gsl-stats_0_4_1_7" = callPackage
+    ({ mkDerivation, base, binary, gsl, hmatrix, storable-complex
+     , vector
+     }:
+     mkDerivation {
+       pname = "hmatrix-gsl-stats";
+       version = "0.4.1.7";
+       sha256 = "1gslgk58lzin43cvbpivhw7nrn9qyaa6qwhy1z9ypvyal5p8n3sa";
+       libraryHaskellDepends = [
+         base binary hmatrix storable-complex vector
+       ];
+       libraryPkgconfigDepends = [ gsl ];
+       homepage = "http://code.haskell.org/hmatrix-gsl-stats";
+       description = "GSL Statistics interface";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gsl;};
+
   "hmatrix-mmap" = callPackage
     ({ mkDerivation, base, hmatrix, mmap }:
      mkDerivation {
@@ -105034,8 +105112,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsyslog-tcp";
-       version = "0.1.0.0";
-       sha256 = "06qlpxl5cf45a2y9ncjcngrghbhgf624a6s1yczx1pfx7zqda6i6";
+       version = "0.2.0.0";
+       sha256 = "1zbp8l5lj2xb6yczijd76dhdbxfzxpl7han1b01bc8qfw7pkj4g9";
        libraryHaskellDepends = [
          base bytestring hsyslog hsyslog-udp network text time
        ];
@@ -136267,7 +136345,7 @@ self: {
        description = "MXNet interface in Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {mxnet = null;};
+     }) {inherit (pkgs) mxnet;};
 
   "mxnet-examples" = callPackage
     ({ mkDerivation, base, mxnet }:
@@ -136297,7 +136375,7 @@ self: {
        description = "NNVM interface in Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {mxnet = null;};
+     }) {inherit (pkgs) mxnet;};
 
   "myTestlll" = callPackage
     ({ mkDerivation, ansi-terminal, array, arrows, base, bytestring
@@ -136723,8 +136801,8 @@ self: {
      }:
      mkDerivation {
        pname = "nakadi-client";
-       version = "0.2.0.0";
-       sha256 = "0s9n5zrn6jncgjnj56ffpfmlhd9pmf6r82cq5xl054rxh5kbr79p";
+       version = "0.2.0.1";
+       sha256 = "1vg1aflms5hwbx86a9hrs84y9fl6wi2ihgq32ag763kbih3wvcsr";
        libraryHaskellDepends = [
          aeson aeson-casing base bytestring conduit conduit-combinators
          conduit-extra containers hashable http-client http-client-tls
@@ -156685,24 +156763,25 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "pusher-http-haskell_1_4_0_0" = callPackage
+  "pusher-http-haskell_1_5_0_0" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , cryptonite, hashable, hspec, http-client, http-types, memory
-     , QuickCheck, scientific, text, time, transformers
-     , unordered-containers, vector
+     , containers, cryptonite, hashable, hspec, HTTP, http-client
+     , http-types, memory, network-uri, QuickCheck, scientific, text
+     , time, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.4.0.0";
-       sha256 = "0mqv3h2c20p9zzhq87xysjx7fyf3w5ggss975pxdblr5y7x18bmc";
+       version = "1.5.0.0";
+       sha256 = "098vj92gwzspqp0xbd4dxxb3dggpdz5gpf616p2spkj9xvdqgy17";
        libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring cryptonite hashable
-         http-client http-types memory text time transformers
+         aeson base base16-bytestring bytestring containers cryptonite
+         hashable HTTP http-client http-types memory text time transformers
          unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson base bytestring hspec http-client http-types QuickCheck
-         scientific text transformers unordered-containers vector
+         aeson base base16-bytestring bytestring cryptonite hspec HTTP
+         http-client http-types memory network-uri QuickCheck scientific
+         text time transformers unordered-containers vector
        ];
        homepage = "https://github.com/pusher-community/pusher-http-haskell";
        description = "Haskell client library for the Pusher HTTP API";
@@ -157691,6 +157770,8 @@ self: {
        pname = "quickcheck-instances";
        version = "0.3.16";
        sha256 = "07xqbjb3rb5hzhjak3qpvj4hl91gc0z2272n60hv67zmv3w8kcf1";
+       revision = "1";
+       editedCabalFile = "1sfqjhk7z185l0gxrvn5pi3s8mvnqv1d1yzrx0k0mi48y5421jcm";
        libraryHaskellDepends = [
          array base base-compat bytestring case-insensitive containers
          hashable old-time QuickCheck scientific tagged text time
@@ -181334,8 +181415,8 @@ self: {
      }:
      mkDerivation {
        pname = "static-tensor";
-       version = "0.1.0.0";
-       sha256 = "118srwpc648s2472mbr14y7pkf7swfd19p4na0s3b4jxqzrxf4wj";
+       version = "0.2.0.0";
+       sha256 = "1jnl9gv2z4554arzfkrna49vn646i4q57l3g8pq4phzzmq79hh1p";
        libraryHaskellDepends = [
          base deepseq lens mono-traversable singletons split
          template-haskell
@@ -182930,6 +183011,8 @@ self: {
        pname = "streaming-postgresql-simple";
        version = "0.2.0.1";
        sha256 = "1ffsxwgsaxqnf49n4lnyrh2zy6q9zc1i3ssd03m08ip813pk5j8k";
+       revision = "1";
+       editedCabalFile = "1y5j3p3gphr3mnzl1dvfmbm8iipsdy0vq2fk0klxgid1dsqfl2vn";
        libraryHaskellDepends = [
          base bytestring exceptions postgresql-libpq postgresql-simple
          resourcet safe-exceptions streaming transformers
@@ -191679,6 +191762,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "threepenny-gui_0_8_2_0" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, containers
+     , data-default, deepseq, exceptions, file-embed, filepath, hashable
+     , network-uri, safe, snap-core, snap-server, stm, template-haskell
+     , text, transformers, unordered-containers, vault, vector
+     , websockets, websockets-snap
+     }:
+     mkDerivation {
+       pname = "threepenny-gui";
+       version = "0.8.2.0";
+       sha256 = "1qmvrkha68f30kdv8hvdkj25sgsski7rnd6dqmvbhqrn6fpsqm8r";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring containers data-default deepseq
+         exceptions file-embed filepath hashable network-uri safe snap-core
+         snap-server stm template-haskell text transformers
+         unordered-containers vault vector websockets websockets-snap
+       ];
+       homepage = "http://wiki.haskell.org/Threepenny-gui";
+       description = "GUI framework that uses the web browser as a display";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "threepenny-gui-contextmenu" = callPackage
     ({ mkDerivation, base, threepenny-gui }:
      mkDerivation {
@@ -200074,15 +200183,15 @@ self: {
      }) {};
 
   "userid" = callPackage
-    ({ mkDerivation, aeson, base, boomerang, safecopy, web-routes
-     , web-routes-th
+    ({ mkDerivation, aeson, base, boomerang, cereal, safecopy
+     , web-routes, web-routes-th
      }:
      mkDerivation {
        pname = "userid";
-       version = "0.1.2.8";
-       sha256 = "0911217jymfmdh5j0f66bqgaa5nhs7yf907dgnyyzkysh2473cmh";
+       version = "0.1.3";
+       sha256 = "02vcgm7n4s5lljp93q6a3b7xgw6vm6m0hm8qz9qfzgllb2d8b353";
        libraryHaskellDepends = [
-         aeson base boomerang safecopy web-routes web-routes-th
+         aeson base boomerang cereal safecopy web-routes web-routes-th
        ];
        homepage = "http://www.github.com/Happstack/userid";
        description = "The UserId type and useful instances for web development";

From 55c58c0826cd8ac01fecf3233175c642cc948067 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Wed, 20 Sep 2017 22:16:51 +0800
Subject: [PATCH 075/533] calibre: 3.5.0 -> 3.7.0

---
 pkgs/applications/misc/calibre/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 6ca457cc1d37..cd9a71729218 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.5.0";
+  version = "3.7.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "1al0vy11zvlxlrf03i631p6b419hy47pbzmgydswrii4prndj4xv";
+    sha256 = "1wb0ixx11q0p5dzcszq1n2lx9bcl5dynr87d7anfiz73mxdq20za";
   };
 
   patches = [

From 98a2316166cbb4e9dc87e35d07dd520acb362ef2 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Mon, 18 Sep 2017 19:12:40 +0930
Subject: [PATCH 076/533] nfs-utils: set /etc/krb5.keytab as default path for
 rpc-gssd

Currently the `rpc-gssd.service` has a `ConditionPathExists` clause that can
never be met, because it's looking for stateful data inside `/nix/store`.

`auth-rpcgss-module.service` also only starts if this file exists.

Fixes NixOS/nixpkgs#29509.
---
 nixos/modules/tasks/filesystems/nfs.nix      | 6 ++++++
 pkgs/os-specific/linux/nfs-utils/default.nix | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/tasks/filesystems/nfs.nix b/nixos/modules/tasks/filesystems/nfs.nix
index 73cf18384bd4..d3a558738f4b 100644
--- a/nixos/modules/tasks/filesystems/nfs.nix
+++ b/nixos/modules/tasks/filesystems/nfs.nix
@@ -85,8 +85,14 @@ in
         enable = mkDefault false;
       };
 
+    systemd.services.auth-rpcgss-module =
+      {
+        unitConfig.ConditionPathExists = [ "" "/etc/krb5.keytab" ];
+      };
+
     systemd.services.rpc-gssd =
       { restartTriggers = [ nfsConfFile ];
+        unitConfig.ConditionPathExists = [ "" "/etc/krb5.keytab" ];
       };
 
     systemd.services.rpc-statd =
diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix
index d28cf44bd67a..294dde2a0a69 100644
--- a/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
       sed -i "s,^PATH=.*,PATH=$out/bin:${statdPath}," utils/statd/start-statd
 
       configureFlags="--with-start-statd=$out/bin/start-statd $configureFlags"
-      
+
       substituteInPlace systemd/nfs-utils.service \
         --replace "/bin/true" "${coreutils}/bin/true"
 

From 6b0e6e2e97ef890f12ae6eb0073c28e4afc93235 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 20 Sep 2017 16:45:58 +0200
Subject: [PATCH 077/533] libtorrent: update to current git HEAD to avoid build
 errors with recent cppunit

---
 pkgs/tools/networking/p2p/libtorrent/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/tools/networking/p2p/libtorrent/default.nix b/pkgs/tools/networking/p2p/libtorrent/default.nix
index d1827a6045d8..9646c47a8d71 100644
--- a/pkgs/tools/networking/p2p/libtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/libtorrent/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   name = "libtorrent-${version}";
-  version = "0.13.6";
+  version = "20161212";
 
-  src = fetchFromGitHub rec {
+  src = fetchFromGitHub {
     owner = "rakshasa";
     repo = "libtorrent";
-    rev = "${version}";
-    sha256 = "1rvrxgb131snv9r6ksgzmd74rd9z7q46bhky0zazz7dwqqywffcp";
+    rev = "c167c5a9e0bcf0df23ae5efd91396aae0e37eb87";
+    sha256 = "0y9759sxx5dyamyw8w58dsxq7bmnn57q7s2f4cw2zln2pp5gripw";
   };
 
   buildInputs = [ pkgconfig libtool autoconf automake cppunit openssl libsigcxx zlib ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   meta = with stdenv.lib; {
-    homepage = http://www.libtorrent.org/;
+    homepage = "http://rtorrent.net/downloads/";
     description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
 
     platforms = platforms.linux;

From 56207cdbd18fb06270895cc81f548465fa80936a Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 20 Sep 2017 16:48:17 +0200
Subject: [PATCH 078/533] rtorrent: update to current git HEAD to avoid build
 errors with recent cppunit

Fixes https://github.com/NixOS/nixpkgs/issues/29601.
---
 pkgs/tools/networking/p2p/rtorrent/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/networking/p2p/rtorrent/default.nix b/pkgs/tools/networking/p2p/rtorrent/default.nix
index 2883043f8b76..bd3c28504800 100644
--- a/pkgs/tools/networking/p2p/rtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/rtorrent/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   name = "rtorrent-${version}";
-  version = "0.9.6";
+  version = "20161023";
 
   src = fetchFromGitHub {
     owner = "rakshasa";
     repo = "rtorrent";
-    rev = "${version}";
-    sha256 = "0iyxmjr1984vs7hrnxkfwgrgckacqml0kv4bhj185w9bhjqvgfnf";
+    rev = "226e670decf92e7adaa845a6982aca4f164ea740";
+    sha256 = "0cxyakc09bn6wjfj42gh508hc62awx825skzacpizx2bqs6v7xvb";
   };
 
   buildInputs = [

From ecebb6090a3267b129e6b0038929803d832b725e Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Wed, 20 Sep 2017 17:53:04 +0300
Subject: [PATCH 079/533] pythonPackages.flake8-future-import: Init at 0.4.3

---
 .../flake8-future-import/default.nix          | 20 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 22 insertions(+)
 create mode 100644 pkgs/development/python-modules/flake8-future-import/default.nix

diff --git a/pkgs/development/python-modules/flake8-future-import/default.nix b/pkgs/development/python-modules/flake8-future-import/default.nix
new file mode 100644
index 000000000000..f00c1fe21661
--- /dev/null
+++ b/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchFromGitHub, buildPythonPackage, python, flake8, six }:
+
+buildPythonPackage rec {
+  pname = "flake8-future-import";
+  name = "${pname}-${version}";
+  version = "0.4.3";
+  # PyPI tarball doesn't include the test suite
+  src = fetchFromGitHub {
+    owner = "xZise";
+    repo = "flake8-future-import";
+    rev = version;
+    sha256 = "0622bdcfa588m7g8igag6hf4rhjdwh74yfnrjwlxw4vlqhg344k4";
+  };
+  propagatedBuildInputs = [ flake8 six ];
+  meta = {
+    homepage = https://github.com/xZise/flake8-future-import;
+    description = "A flake8 extension to check for the imported __future__ modules to make it easier to have a consistent code base";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2584b6f2810b..9be73753cb6b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -9003,6 +9003,8 @@ in {
 
   flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+
   flaky = buildPythonPackage rec {
     name = "flaky-${version}";
     version = "3.1.0";

From 2c2cd34b54733d788fdace2c90d29c5ada32913f Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Wed, 20 Sep 2017 17:54:42 +0300
Subject: [PATCH 080/533] esptool: Fix tests in sandbox

It actually requires flake8-future-import but manages to download it
from the Internet when run outside the sandbox.
---
 pkgs/tools/misc/esptool/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix
index 427ddea2f36e..33624302ebcc 100644
--- a/pkgs/tools/misc/esptool/default.nix
+++ b/pkgs/tools/misc/esptool/default.nix
@@ -11,7 +11,7 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "137p0kcscly95qpjzgx1yxm8k2wf5y9v3srvlhp2ajniirgv8ijv";
   };
 
-  buildInputs = with python3.pkgs; [ flake8 ];
+  buildInputs = with python3.pkgs; [ flake8 flake8-future-import ];
   propagatedBuildInputs = with python3.pkgs; [ pyserial pyaes ecdsa openssl ];
 
   meta = with stdenv.lib; {

From f8ad84ad23a98153da1af729146301795312d187 Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Wed, 20 Sep 2017 12:37:19 -0400
Subject: [PATCH 081/533] mqtt-bench: init at 0.3.0

---
 pkgs/applications/misc/mqtt-bench/default.nix | 32 +++++++++++++++++++
 pkgs/applications/misc/mqtt-bench/deps.nix    | 21 ++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 3 files changed, 55 insertions(+)
 create mode 100644 pkgs/applications/misc/mqtt-bench/default.nix
 create mode 100644 pkgs/applications/misc/mqtt-bench/deps.nix

diff --git a/pkgs/applications/misc/mqtt-bench/default.nix b/pkgs/applications/misc/mqtt-bench/default.nix
new file mode 100644
index 000000000000..eea166d8df75
--- /dev/null
+++ b/pkgs/applications/misc/mqtt-bench/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }:
+
+buildGoPackage rec {
+  name = "mqtt-bench-${version}";
+  version = "0.3.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/takanorig/mqtt-bench";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "takanorig";
+    repo = "mqtt-bench";
+    sha256 = "03b9ak2j303iwq6abd7j10f2cs2ianwnbflwmyx9g96i7zd74f5m";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/takanorig/mqtt-bench/pull/13.patch";
+      name = "mqtt-paho-changes.patch";
+      sha256 = "17c8ajrp5dmbsasj6njxrlhy0x08b65fignzm3yccqbhb4ijcvha";
+    })
+  ];
+
+  goDeps = ./deps.nix;
+
+  meta = with stdenv.lib; {
+    description = "Mosquitto benchmark tool";
+    homepage = https://github.com/takanorig/mqtt-bench;
+    maintainers = with maintainers; [ disassembler ];
+  };
+}
diff --git a/pkgs/applications/misc/mqtt-bench/deps.nix b/pkgs/applications/misc/mqtt-bench/deps.nix
new file mode 100644
index 000000000000..d93d3c468145
--- /dev/null
+++ b/pkgs/applications/misc/mqtt-bench/deps.nix
@@ -0,0 +1,21 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+[
+  {
+    goPackagePath = "github.com/eclipse/paho.mqtt.golang";
+    fetch = {
+      type = "git";
+      url = "https://github.com/eclipse/paho.mqtt.golang";
+      rev = "65f43bda5f7edbbf6b7533d3a5a13b2c67cf3545";
+      sha256 = "1ad136xf78br599ya43j45f8dycjip1k0hkplayy1slg8ckwrhdr";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "8351a756f30f1297fe94bbf4b767ec589c6ea6d0";
+      sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1";
+    };
+  }
+]
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 068fa3230d63..02543410a4fd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9733,6 +9733,8 @@ with pkgs;
 
   mpeg2dec = libmpeg2;
 
+  mqtt-bench = callPackage ../applications/misc/mqtt-bench {};
+
   msilbc = callPackage ../development/libraries/msilbc { };
 
   mp4v2 = callPackage ../development/libraries/mp4v2 { };

From 9182927998549b01b9019a6f0bbb93005c8bc94b Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Wed, 20 Sep 2017 19:23:14 +0200
Subject: [PATCH 082/533] gengetopt: Fix the build

Thanks @orivej for providing this fix.

Fix #28255 (the build was broken since
2bc7b4e134079cf72307538e57b8968cfb27d70c).
---
 pkgs/development/tools/misc/gengetopt/default.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/development/tools/misc/gengetopt/default.nix b/pkgs/development/tools/misc/gengetopt/default.nix
index 19e934f884f7..304f16942eaf 100644
--- a/pkgs/development/tools/misc/gengetopt/default.nix
+++ b/pkgs/development/tools/misc/gengetopt/default.nix
@@ -10,6 +10,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  postPatch = ''
+    sed -e 's/set -o posix/set +o posix/' -i configure
+  '';
+
   meta = {
     description = "Command-line option parser generator";
 

From df589a438e01c06a6661cbd18bfe8f568d8b7f83 Mon Sep 17 00:00:00 2001
From: Antoine Eiche <lewo@abesis.fr>
Date: Fri, 25 Aug 2017 11:47:28 +0200
Subject: [PATCH 083/533] dockerTools.buildImageWithNixDb: populate the Nix Db
 of the image Nix store

Currently, the contents closure is copied to the layer but there is no
nix database initialization. If pkgs.nix is added in the contents,
nix-store doesn't work because there is no nix database.

From the contents of the layer, this commit generates and loads the
database in the nix store of the container. This only works if there
is no parent layer that already have a nix store (to support several
nix layers, we would have to merge nix databases of parent layers).

We also add an example to play with the nix store inside the
container. Note it seems `more` is a missing dependency of the nix
package!
---
 pkgs/build-support/docker/default.nix  | 32 +++++++++++++++++++++++++-
 pkgs/build-support/docker/examples.nix | 17 ++++++++++++--
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 8a7b362bd5ed..cfd2c8a31f97 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -10,6 +10,8 @@
   lib,
   pkgs,
   pigz,
+  nixUnstable,
+  perl,
   runCommand,
   rsync,
   shadow,
@@ -27,7 +29,7 @@
 rec {
 
   examples = import ./examples.nix {
-    inherit pkgs buildImage pullImage shadowSetup;
+    inherit pkgs buildImage pullImage shadowSetup buildImageWithNixDb;
   };
 
   pullImage =
@@ -239,6 +241,17 @@ rec {
       ${text}
     '';
 
+  nixRegistration = contents: runCommand "nix-registration" {
+    buildInputs = [ nixUnstable perl ];
+    # For obtaining the closure of `contents'.
+    exportReferencesGraph =
+      let contentsList = if builtins.isList contents then contents else [ contents ];
+      in map (x: [("closure-" + baseNameOf x) x]) contentsList;
+    }
+    ''
+      printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > $out
+    '';
+
   # Create a "layer" (set of files).
   mkPureLayer = {
     # Name of the layer
@@ -544,4 +557,21 @@ rec {
 
     in
     result;
+
+  # Build an image and populate its nix database with the provided
+  # contents. The main purpose is to be able to use nix commands in
+  # the container.
+  # Be careful since this doesn't work well with multilayer.
+  buildImageWithNixDb = args@{ contents ? null, extraCommands ? "", ... }:
+    buildImage (args // {
+      extraCommands = ''
+        echo "Generating the nix database..."
+        echo "Warning: only the database of the deepest Nix layer is loaded."
+        echo "         If you want to use nix commands in the container, it would"
+        echo "         be better to only have one layer that contains a nix store."
+        # This requires Nix 1.12 or higher
+        export NIX_REMOTE=local?root=$PWD
+        ${nixUnstable}/bin/nix-store --load-db < ${nixRegistration contents}
+      '' + extraCommands;
+    });
 }
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index aead53f6f7d1..1a8b9c7f8ed4 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -7,7 +7,7 @@
 #  $ nix-build '<nixpkgs>' -A dockerTools.examples.redis
 #  $ docker load < result
 
-{ pkgs, buildImage, pullImage, shadowSetup }:
+{ pkgs, buildImage, pullImage, shadowSetup, buildImageWithNixDb }:
 
 rec {
   # 1. basic example
@@ -83,7 +83,7 @@ rec {
   };
 
   # 4. example of pulling an image. could be used as a base for other images
-  nix = pullImage {
+  nixFromDockerHub = pullImage {
     imageName = "nixos/nix";
     imageTag = "1.11";
     # this hash will need change if the tag is updated at docker hub
@@ -101,4 +101,17 @@ rec {
       pkgs.nano
     ];
   };
+
+  # 5. nix example to play with the container nix store
+  # docker run -it --rm nix nix-store -qR $(nix-build '<nixpkgs>' -A nix)
+  nix = buildImageWithNixDb {
+    name = "nix";
+    contents = [
+      # nix-store -qR uses the 'more' program which is not included in
+      # the pkgs.nix dependencies. We then have to manually get it
+      # from the 'eject' package:/
+      pkgs.eject
+      pkgs.nix
+    ];
+  };
 }

From cb6fc52f998f8f3106a1506c052cffae752e8b7c Mon Sep 17 00:00:00 2001
From: Antoine Eiche <lewo@abesis.fr>
Date: Wed, 13 Sep 2017 11:40:26 +0200
Subject: [PATCH 084/533] dockerTools.buildImageWithNixDb: Make output paths
 valid and add gcroots

The database dump doesn't contain sha and size. This leads to invalid
path in the container. We have to fix the database by using
nix-store.
Note a better way to do this is available in Nix 1.12 (since the
database dump contains all required information).

We also add content output paths in the gcroots since they ca be used
by the container.
---
 pkgs/build-support/docker/default.nix | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index cfd2c8a31f97..267a2812a2a5 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -249,7 +249,9 @@ rec {
       in map (x: [("closure-" + baseNameOf x) x]) contentsList;
     }
     ''
-      printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > $out
+      mkdir $out
+      printRegistration=1 perl ${pkgs.pathsFromGraph} closure-* > $out/db.dump
+      perl ${pkgs.pathsFromGraph} closure-* > $out/storePaths
     '';
 
   # Create a "layer" (set of files).
@@ -571,7 +573,23 @@ rec {
         echo "         be better to only have one layer that contains a nix store."
         # This requires Nix 1.12 or higher
         export NIX_REMOTE=local?root=$PWD
-        ${nixUnstable}/bin/nix-store --load-db < ${nixRegistration contents}
+        ${nixUnstable}/bin/nix-store --load-db < ${nixRegistration contents}/db.dump
+
+        # We fill the store in order to run the 'verify' command that
+        # generates hash and size of output paths.
+        # Note when Nix 1.12 is be the stable one, the database dump
+        # generated by the exportReferencesGraph function will
+        # contains sha and size. See
+        # https://github.com/NixOS/nix/commit/c2b0d8749f7e77afc1c4b3e8dd36b7ee9720af4a
+        storePaths=$(cat ${nixRegistration contents}/storePaths)
+        echo "Copying everything to /nix/store (will take a while)..."
+        cp -prd $storePaths nix/store/
+        ${nixUnstable}/bin/nix-store --verify --check-contents
+
+        mkdir -p nix/var/nix/gcroots/docker/
+        for i in ${lib.concatStringsSep " " contents}; do
+          ln -s $i nix/var/nix/gcroots/docker/$(basename $i)
+        done;
       '' + extraCommands;
     });
 }

From 05101d32c05caf6b1c40a19d30d03a13be5e399f Mon Sep 17 00:00:00 2001
From: Linus Heckemann <git@sphalerite.org>
Date: Wed, 20 Sep 2017 17:02:45 +0100
Subject: [PATCH 085/533] impressive: fixes and improvements

- Fix finding SDL (would previously fail unless gcc was in environment)
- Use ghostscript rather than xpdf for rendering as it has a slightly
  smaller closure
- Fix broken link for reasoning behind name change
- Add self to maintainers
- Add reference to DejaVu fonts so it can always find the OSD fonts
- Install manpage into correct location
---
 .../office/impressive/default.nix             | 43 +++++++------------
 1 file changed, 16 insertions(+), 27 deletions(-)

diff --git a/pkgs/applications/office/impressive/default.nix b/pkgs/applications/office/impressive/default.nix
index 3232abfb268e..59249d1a6eb0 100644
--- a/pkgs/applications/office/impressive/default.nix
+++ b/pkgs/applications/office/impressive/default.nix
@@ -1,12 +1,12 @@
-{ fetchurl, stdenv, python2Packages, makeWrapper, lib
-, xpdf, mesa, SDL, freeglut }:
+{ fetchurl, stdenv, python2, makeWrapper, lib
+, mesa, SDL, freeglut, ghostscript, pdftk, dejavu_fonts }:
 
 let
-  inherit (python2Packages) python pyopengl pygame setuptools pillow;
   version = "0.11.1";
+  pythonEnv = python2.withPackages (ps: with ps; [pyopengl pygame pillow]);
 in stdenv.mkDerivation {
     # This project was formerly known as KeyJNote.
-    # See http://keyj.s2000.ws/?p=77 for details.
+    # See http://keyj.emphy.de/apple-lawsuit/ for details.
 
     name = "impressive-${version}";
 
@@ -15,37 +15,26 @@ in stdenv.mkDerivation {
       sha256 = "0b3rmy6acp2vmf5nill3aknxvr9a5aawk1vnphkah61anxp62gsr";
     };
 
-    # Note: We need to have `setuptools' in the path to be able to use
-    # PyOpenGL.
-    buildInputs = [ makeWrapper xpdf pillow pyopengl pygame ];
+    buildInputs = [ makeWrapper pythonEnv ];
 
     configurePhase = ''
+      # Let's fail at build time if the library we're substituting in doesn't
+      # exist/isn't marked as executable
+      test -x ${SDL}/lib/libSDL.so
       sed -i "impressive.py" \
-          -e 's|^#!/usr/bin/env.*$|#!${python}/bin/python|g'
+          -e '/^__website__/a SDL_LIBRARY = "${SDL}/lib/libSDL.so"' \
+          -e 's/sdl = CDLL.*/sdl = CDLL(SDL_LIBRARY)/' \
+          -e 's^FontPath =.*/usr/.*$^FontPath = ["${dejavu_fonts}/share/fonts", ""]^'
     '';
 
     installPhase = ''
-      mkdir -p "$out/bin" "$out/share/doc/impressive"
+      mkdir -p "$out/bin" "$out/share/doc/impressive" "$out/share/man/man1"
       mv impressive.py "$out/bin/impressive"
-      mv * "$out/share/doc/impressive"
+      mv impressive.1 "$out/share/man/man1"
+      mv changelog.txt impressive.html license.txt "$out/share/doc/impressive"
 
-      # XXX: We have to reiterate PyOpenGL's dependencies here.
-      #
-      # `setuptools' must be in the Python path as it's used by
-      # PyOpenGL.
-      #
-      # We set $LIBRARY_PATH (no `LD_'!) so that ctypes can find
-      # `libGL.so', which it does by running `gcc', which in turn
-      # honors $LIBRARY_PATH.  See
-      # http://python.net/crew/theller/ctypes/reference.html#id1 .
       wrapProgram "$out/bin/impressive" \
-         --prefix PATH ":" "${xpdf}/bin" \
-         --prefix PYTHONPATH ":" \
-                  ${lib.concatStringsSep ":"
-                     (map (path:
-                            path + "/lib/${python.libPrefix}/site-packages")
-                          [ pillow pyopengl pygame setuptools ])} \
-         --prefix LIBRARY_PATH ":" "${lib.makeLibraryPath [ mesa freeglut SDL ]}"
+         --prefix PATH ":" "${ghostscript}/bin:${pdftk}/bin"
     '';
 
     meta = {
@@ -73,7 +62,7 @@ in stdenv.mkDerivation {
 
       license = stdenv.lib.licenses.gpl2;
 
-      maintainers = [ ];
+      maintainers = with lib.maintainers; [ lheckemann ];
       platforms = stdenv.lib.platforms.mesaPlatforms;
     };
   }

From 5ab37fb913554e749ffd389dd6190c8b92d3ca31 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Wed, 20 Sep 2017 14:04:55 -0500
Subject: [PATCH 086/533] hplip: install PPDs where CUPS will find them

---
 pkgs/misc/drivers/hplip/default.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 6adc2a765c7f..22f7080611fb 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -88,6 +88,7 @@ pythonPackages.buildPythonApplication {
 
   preConfigure = ''
     export configureFlags="$configureFlags
+      --with-hpppddir=$out/share/cups/model/HP
       --with-cupsfilterdir=$out/lib/cups/filter
       --with-cupsbackenddir=$out/lib/cups/backend
       --with-icondir=$out/share/applications

From 7a1f5bad0c275375ca61082be1d67756626bd016 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Wed, 20 Sep 2017 22:14:32 +0200
Subject: [PATCH 087/533] ocamlPackages.csv: fix meta eval

fetchurl does not expose a meta.homepage attr
---
 pkgs/development/ocaml-modules/csv/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index ba4f982222b4..c168045831f1 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 		description = "A pure OCaml library to read and write CSV files";
 		license = stdenv.lib.licenses.lgpl21;
 		maintainers = [ stdenv.lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = https://github.com/Chris00/ocaml-csv;
 		inherit (ocaml.meta) platforms;
 	};
 }

From c41af35c04c06b99bff9701cc1c6dd1d91c0d8e9 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 19 Sep 2017 14:03:53 +0200
Subject: [PATCH 088/533] unbound: 1.6.5 -> 1.6.6

---
 pkgs/tools/networking/unbound/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index a65ccb0541c8..cb462a2cedd2 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "unbound-${version}";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchurl {
     url = "http://unbound.net/downloads/${name}.tar.gz";
-    sha256 = "0khhrj11yhh6a0h578w29yw2j7yzvaqkr4p44jzjapq1549am5z2";
+    sha256 = "145kska9a63yf32y3jg91y5ikcmsb7qvbcm7a8k6fgh96gf18awp";
   };
 
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB

From 370ac6275ebcbc3064b3079c3435bf3aaf02e677 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Tue, 12 Sep 2017 08:21:23 +0200
Subject: [PATCH 089/533] gitlab module: fix shell hook path

---
 nixos/modules/services/misc/gitlab.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 412355fb35b5..7bf18d481504 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -142,9 +142,9 @@ let
     GITLAB_UPLOADS_PATH = "${cfg.statePath}/uploads";
     GITLAB_LOG_PATH = "${cfg.statePath}/log";
     GITLAB_SHELL_PATH = "${cfg.packages.gitlab-shell}";
-    GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/home/config.yml";
+    GITLAB_SHELL_CONFIG_PATH = "${cfg.statePath}/shell/config.yml";
     GITLAB_SHELL_SECRET_PATH = "${cfg.statePath}/config/gitlab_shell_secret";
-    GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/home/hooks";
+    GITLAB_SHELL_HOOKS_PATH = "${cfg.statePath}/shell/hooks";
     GITLAB_REDIS_CONFIG_FILE = pkgs.writeText "gitlab-redis.yml" redisYml;
     prometheus_multiproc_dir = "/run/gitlab";
     RAILS_ENV = "production";
@@ -567,7 +567,7 @@ in {
         mkdir -p ${cfg.statePath}/tmp/pids
         mkdir -p ${cfg.statePath}/tmp/sockets
 
-        rm -rf ${cfg.statePath}/config ${cfg.statePath}/home/hooks
+        rm -rf ${cfg.statePath}/config ${cfg.statePath}/shell/hooks
         mkdir -p ${cfg.statePath}/config
 
         tr -dc A-Za-z0-9 < /dev/urandom | head -c 32 > ${cfg.statePath}/config/gitlab_shell_secret

From c95e15814323539bc1c35d599295f61081ea8b81 Mon Sep 17 00:00:00 2001
From: Simon Lackerbauer <simon@lackerbauer.com>
Date: Wed, 20 Sep 2017 21:06:48 +0200
Subject: [PATCH 090/533] atlassian-confluence: 6.3.1 -> 6.4.0

---
 pkgs/servers/atlassian/confluence.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/atlassian/confluence.nix b/pkgs/servers/atlassian/confluence.nix
index ea8d2651836a..a4cc5c8780da 100644
--- a/pkgs/servers/atlassian/confluence.nix
+++ b/pkgs/servers/atlassian/confluence.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "atlassian-confluence-${version}";
-  version = "6.3.1";
+  version = "6.4.0";
 
   src = fetchurl {
     url = "https://www.atlassian.com/software/confluence/downloads/binary/${name}.tar.gz";
-    sha256 = "0f7hc8q4sigvr9bdxx8phnp6bkfkz9bccwkrx0xqyrvvdc5x5690";
+    sha256 = "1ba8zpcywnnanzqxjaqiyfc6j5qr6jk6laryz8npiqz4grv3qk61";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" ];

From 27ed57044529a0e679f2bbf624211518fcfad071 Mon Sep 17 00:00:00 2001
From: Simon Lackerbauer <simon@lackerbauer.com>
Date: Wed, 20 Sep 2017 21:07:06 +0200
Subject: [PATCH 091/533] atlassian-jira: 7.4.1 -> 7.5.0

---
 pkgs/servers/atlassian/jira.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/atlassian/jira.nix b/pkgs/servers/atlassian/jira.nix
index 0013286c03c1..f2ccb523e2ff 100644
--- a/pkgs/servers/atlassian/jira.nix
+++ b/pkgs/servers/atlassian/jira.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "atlassian-jira-${version}";
-  version = "7.4.1";
+  version = "7.5.0";
 
   src = fetchurl {
     url = "https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "1ixkhc206z3zpiaj46v8z2gxmix24sxqs2d17fb64gkyml9s5gqb";
+    sha256 = "12pf0q1ixsf9ld0569mbwvjz5v9bhh7ad3bd8x9qx188vq5cz381";
   };
 
   phases = [ "unpackPhase" "buildPhase" "installPhase" "fixupPhase" ];

From 94a5de61af16d23a2020b7978638f1ed6f93f031 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Wed, 20 Sep 2017 23:50:03 +0200
Subject: [PATCH 092/533] unifi: 5.5.20 -> 5.6.16

---
 pkgs/servers/unifi/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index ec3b255116b3..08a9637308cb 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   name = "unifi-controller-${version}";
-  version = "5.5.20";
+  version = "5.6.16";
 
   src = fetchurl {
-    url = "https://www.ubnt.com/downloads/unifi/${version}/unifi_sysvinit_all.deb";
-    sha256 = "14v38x46vgwm3wg28lzv4sz6kjgp6r1xkwxnxn6pzq2r7v6xkaz0";
+    url = "https://www.ubnt.com/downloads/unifi/${version}-86cdeea491/unifi_sysvinit_all.deb";
+    sha256 = "1kfrawf48q9rx48hcnmiqndbg84v340yfykh23af7xpcxmzl5jy7";
   };
 
   buildInputs = [ dpkg ];

From 1e2ebee42a717b27c02539c7ee2e0ec37712834f Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Wed, 20 Sep 2017 17:03:12 -0500
Subject: [PATCH 093/533] hplip: fix Python wrappers

We cannot rely on wrapPythonPrograms to wrap the installed executables because
they are symlinks (which it ignores). Instead, we have to emulate it to make
the wrappers ourselves.
---
 pkgs/misc/drivers/hplip/default.nix | 31 ++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 22f7080611fb..9342c547a17e 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -61,10 +61,9 @@ pythonPackages.buildPythonApplication {
 
   nativeBuildInputs = [
     pkgconfig
-    makeWrapper
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  pythonPath = with pythonPackages; [
     dbus
     pillow
     pygobject2
@@ -74,6 +73,8 @@ pythonPackages.buildPythonApplication {
     pyqt4
   ];
 
+  makeWrapperArgs = [ ''--prefix PATH : "${nettools}/bin"'' ];
+
   prePatch = ''
     # HPLIP hardcodes absolute paths everywhere. Nuke from orbit.
     find . -type f -exec sed -i \
@@ -145,10 +146,30 @@ pythonPackages.buildPythonApplication {
     rm $out/etc/udev/rules.d/56-hpmud.rules
   '';
 
-  postFixup = ''
-    wrapProgram $out/lib/cups/filter/hpps \
-      --prefix PATH : "${nettools}/bin"
+  # The installed executables are just symlinks into $out/share/hplip,
+  # but wrapPythonPrograms ignores symlinks. We cannot replace the Python
+  # modules in $out/share/hplip with wrapper scripts because they import
+  # each other as libraries. Instead, we emulate wrapPythonPrograms by
+  # 1. Calling patchPythonProgram on the original script in $out/share/hplip
+  # 2. Making our own wrapper pointing directly to the original script.
+  dontWrapPythonPrograms = true;
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
 
+    for bin in $out/bin/*; do
+      py=$(readlink -m $bin)
+      rm $bin
+      echo "patching \`$py'..."
+      patchPythonScript "$py"
+      echo "wrapping \`$bin'..."
+      makeWrapper "$py" "$bin" \
+          --prefix PATH ':' "$program_PATH" \
+          --set PYTHONNOUSERSITE "true" \
+          $makeWrapperArgs
+    done
+  '';
+
+  postFixup = ''
     substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
   '' + stdenv.lib.optionalString (!withPlugin) ''
     # A udev rule to notify users that they need the binary plugin.

From c7bbe471b093418eaaad5f2a9e7183d2195b5b24 Mon Sep 17 00:00:00 2001
From: Ben Darwin <bcdarwin@gmail.com>
Date: Mon, 18 Sep 2017 14:13:41 -0400
Subject: [PATCH 094/533] ants: bump version and fix sandboxed build

---
 .../science/biology/ants/default.nix            | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/science/biology/ants/default.nix b/pkgs/applications/science/biology/ants/default.nix
index 24ab2ee9ac5e..0b8ddd0d4fb9 100644
--- a/pkgs/applications/science/biology/ants/default.nix
+++ b/pkgs/applications/science/biology/ants/default.nix
@@ -2,23 +2,26 @@
 
 stdenv.mkDerivation rec {
   _name    = "ANTs";
-  _version = "2.1.0";
+  _version = "2.2.0";
   name  = "${_name}-${_version}";
 
   src = fetchFromGitHub {
-    owner  = "stnava";
+    owner  = "ANTsX";
     repo   = "ANTs";
-    rev    = "4e02aa76621698e3513330dd9e863e22917e14b7";
-    sha256 = "0gyys1lf69bl3569cskxc8r5llwcr0dsyzvlby5skhfpsyw0dh8r";
+    rev    = "37ad4e20be3a5ecd26c2e4e41b49e778a0246c3d";
+    sha256 = "1hrdwv3m9xh3yf7l0rm2ggxc2xzckfb8srs88g485ibfszx7i03q";
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
   buildInputs = [ itk vtk ];
 
-  cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE" ];
+  cmakeFlags = [ "-DANTS_SUPERBUILD=FALSE" "-DUSE_VTK=TRUE"
+                 # as cmake otherwise tries to download test data:
+                 "-DBUILD_TESTING=FALSE" ];
+
+  enableParallelBuilding = true;
 
   checkPhase = "ctest";
-  doCheck = false;
 
   postInstall = ''
     for file in $out/bin/*; do
@@ -27,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/stnava/ANTs;
+    homepage = https://github.com/ANTxS/ANTs;
     description = "Advanced normalization toolkit for medical image registration and other processing";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;

From 42d6e933d6190461ecd5b2be585008d9807a6258 Mon Sep 17 00:00:00 2001
From: Raphael Das Gupta <raphael.das.gupta@hsr.ch>
Date: Thu, 21 Sep 2017 00:47:57 +0200
Subject: [PATCH 095/533] xonsh: fix typo ("xnosh") in "enable" description

---
 nixos/modules/programs/xonsh.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/programs/xonsh.nix b/nixos/modules/programs/xonsh.nix
index c0be2d8884b3..49cc4906e038 100644
--- a/nixos/modules/programs/xonsh.nix
+++ b/nixos/modules/programs/xonsh.nix
@@ -21,7 +21,7 @@ in
       enable = mkOption {
         default = false;
         description = ''
-          Whether to configure xnosh as an interactive shell.
+          Whether to configure xonsh as an interactive shell.
         '';
         type = types.bool;
       };

From 6bf56656f021a1f6dbeab9e26ccde78b5ea469f8 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Thu, 21 Sep 2017 00:41:04 +0200
Subject: [PATCH 096/533] snapper: 0.3.3 -> 0.5.0

---
 pkgs/tools/misc/snapper/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 5f482d68dd9a..9895fff3ba8f 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "snapper-${version}";
-  version = "0.3.3";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "12c2ygaanr4gny4ixnly4vpi0kv7snbg3khr3i5zwridhmdzz9hm";
+    sha256 = "14hrv23film4iihyclcvc2r2dgxl8w3as50r81xjjc85iyp6yxkm";
   };
 
   nativeBuildInputs = [

From 50d52ac8a8f34ee284fb44cf9dffb9c25884d8c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20Sch=C3=BCtz?=
 <robert.schuetz@stud.uni-heidelberg.de>
Date: Tue, 19 Sep 2017 00:06:57 +0200
Subject: [PATCH 097/533] texworks: init at 0.6.2

---
 .../applications/editors/texworks/default.nix | 32 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 34 insertions(+)
 create mode 100644 pkgs/applications/editors/texworks/default.nix

diff --git a/pkgs/applications/editors/texworks/default.nix b/pkgs/applications/editors/texworks/default.nix
new file mode 100644
index 000000000000..fe90250d4152
--- /dev/null
+++ b/pkgs/applications/editors/texworks/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub, cmake, pkgconfig
+, qt5, libsForQt5, hunspell
+, withLua ? true, lua
+, withPython ? true, python }:
+
+stdenv.mkDerivation rec {
+  name = "texworks-${version}";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "TeXworks";
+    repo = "texworks";
+    rev = "release-${version}";
+    sha256 = "0kj4pq5h4vs2wwg6cazxjlv83x6cwdfsa76winfkdddaqzpdklsj";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ qt5.qtscript libsForQt5.poppler hunspell lua python ]
+                ++ lib.optional withLua lua
+                ++ lib.optional withPython python;
+
+  cmakeFlags = lib.optional withLua "-DWITH_LUA=ON"
+               ++ lib.optional withPython "-DWITH_PYTHON=ON";
+
+  meta = with stdenv.lib; {
+    description = "Simple TeX front-end program inspired by TeXShop";
+    homepage = http://www.tug.org/texworks/;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f3f9020ff650..e15104984cd9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4552,6 +4552,8 @@ with pkgs;
 
   textadept = callPackage ../applications/editors/textadept { };
 
+  texworks = callPackage ../applications/editors/texworks { };
+
   thc-hydra = callPackage ../tools/security/thc-hydra { };
 
   thefuck = callPackage ../tools/misc/thefuck { };

From 3e96cee147d1ab9ee790f5b47871472a48e71a8d Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Thu, 21 Sep 2017 00:51:00 +0200
Subject: [PATCH 098/533] hydra: 2017-07-27 -> 2017-09-14

Builds against recent nixUnstable
---
 pkgs/development/tools/misc/hydra/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix
index d3a213ecfc57..2ac7ef4593c1 100644
--- a/pkgs/development/tools/misc/hydra/default.nix
+++ b/pkgs/development/tools/misc/hydra/default.nix
@@ -62,15 +62,15 @@ let
   };
 in releaseTools.nixBuild rec {
   name = "hydra-${version}";
-  version = "2017-07-27";
+  version = "2017-09-14";
 
   inherit stdenv;
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "3fc320db320c9aa5180c54e77513f1bcb7407079";
-    sha256 = "0kml2rvy5pz8pzl23vfib5vrwxccff9j1jmyq926qv7f5kbzy61b";
+    rev = "b828224fee451ad26e87cfe4eeb9c0704ee1062b";
+    sha256 = "05xv10ldsa1rahxbbgh5kwvl1dv4yvc8idczpifgb55fgqj8zazm";
   };
 
   buildInputs =

From 0d981c576103d2e63a07b1b36edf4cd7ff2f94f8 Mon Sep 17 00:00:00 2001
From: Ben Darwin <bcdarwin@gmail.com>
Date: Wed, 20 Sep 2017 17:02:49 -0400
Subject: [PATCH 099/533] nifticlib: init at 2.0.0

---
 .../science/biology/nifticlib/default.nix     | 25 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 27 insertions(+)
 create mode 100644 pkgs/development/libraries/science/biology/nifticlib/default.nix

diff --git a/pkgs/development/libraries/science/biology/nifticlib/default.nix b/pkgs/development/libraries/science/biology/nifticlib/default.nix
new file mode 100644
index 000000000000..d421a65e23d1
--- /dev/null
+++ b/pkgs/development/libraries/science/biology/nifticlib/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, cmake, zlib }:
+
+stdenv.mkDerivation rec {
+  pname    = "nifticlib";
+  pversion = "2.0.0";
+  name  = "${pname}-${pversion}";
+
+  src = fetchurl {
+    url    = "https://downloads.sourceforge.net/project/niftilib/${pname}/${pname}_2_0_0/${name}.tar.gz";
+    sha256 = "a3e988e6a32ec57833056f6b09f940c69e79829028da121ff2c5c6f7f94a7f88";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zlib ];
+
+  checkPhase = "ctest";
+
+  meta = with stdenv.lib; {
+    homepage = https://sourceforge.net/projects/niftilib;
+    description = "Medical imaging format C API";
+    maintainers = with maintainers; [ bcdarwin ];
+    platforms = platforms.linux;
+    license = licenses.publicDomain;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 60a3bc8394df..8d7358f51de5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9761,6 +9761,8 @@ with pkgs;
 
   ndpi = callPackage ../development/libraries/ndpi { };
 
+  nifticlib = callPackage ../development/libraries/science/biology/nifticlib { };
+
   notify-sharp = callPackage ../development/libraries/notify-sharp { };
 
   ncurses5 = callPackage ../development/libraries/ncurses { abiVersion = "5"; };

From d58a88277d3cea20ce958fd404343f7e701ab970 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20Sch=C3=BCtz?=
 <robert.schuetz@stud.uni-heidelberg.de>
Date: Thu, 21 Sep 2017 00:51:35 +0200
Subject: [PATCH 100/533] pythonPackages.py3status: add file as a dependency

---
 pkgs/top-level/python-packages.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9be73753cb6b..f519e182d3ea 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7748,7 +7748,9 @@ in {
     };
     doCheck = false;
     propagatedBuildInputs = with self; [ requests ];
+    buildInputs = with pkgs; [ file ];
     prePatch = ''
+      sed -i -e "s|'file|'${pkgs.file}/bin/file|" py3status/parse_config.py
       sed -i -e "s|\[\"acpi\"|\[\"${pkgs.acpi}/bin/acpi\"|" py3status/modules/battery_level.py
       sed -i -e "s|notify-send|${pkgs.libnotify}/bin/notify-send|" py3status/modules/battery_level.py
       sed -i -e "s|/usr/bin/whoami|${pkgs.coreutils}/bin/whoami|" py3status/modules/external_script.py

From a75265924f5f3ee73fdd30c9713b2f8177b7fb98 Mon Sep 17 00:00:00 2001
From: aszlig <aszlig@redmoonstudios.org>
Date: Thu, 21 Sep 2017 02:38:52 +0200
Subject: [PATCH 101/533] nixos/tests/virtualbox: Fix netcat invocation

This is a backwards-incompatibility in netcat-openbsd introduced due to
bumping the netcat version to 1.130 in
a72ba661acf54d1beb2b4e306acba7d6f45621c4.

Version 1.130 no longer exits on EOF but now needs to be passed the -N
flag in order to exit on EOF.

The upstream change reads[1] like this:

  Don't shutdown nc(1)'s network socket when stdin closes. Matches
  *Hobbit*'s original netcat and GNU netcat; revert to old behaviour
  with the new -N flag if needed. After much discussion with otto
  deraadt tedu and Martin Pelikan.  ok deraadt@

Here is the diff of this change:

http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/netcat.c.diff?r1=1.110&r2=1.111&f=h

[1]: http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/nc/netcat.c?rev=1.111&content-type=text/x-cvsweb-markup

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
---
 nixos/tests/virtualbox.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix
index 4f7cb176d96f..a1ab7614871a 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -461,11 +461,11 @@ in mapAttrs mkVBoxTest {
     my $test1IP = waitForIP_test1 1;
     my $test2IP = waitForIP_test2 1;
 
-    $machine->succeed("echo '$test2IP' | nc '$test1IP' 1234");
-    $machine->succeed("echo '$test1IP' | nc '$test2IP' 1234");
+    $machine->succeed("echo '$test2IP' | nc -N '$test1IP' 1234");
+    $machine->succeed("echo '$test1IP' | nc -N '$test2IP' 1234");
 
-    $machine->waitUntilSucceeds("nc '$test1IP' 5678 >&2");
-    $machine->waitUntilSucceeds("nc '$test2IP' 5678 >&2");
+    $machine->waitUntilSucceeds("nc -N '$test1IP' 5678 < /dev/null >&2");
+    $machine->waitUntilSucceeds("nc -N '$test2IP' 5678 < /dev/null >&2");
 
     shutdownVM_test1;
     shutdownVM_test2;

From 6558f81bc9dd240804c16432767614a21d6d53e3 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Thu, 21 Sep 2017 10:00:00 +0800
Subject: [PATCH 102/533] kmscon: reset ExecStart to allow override

The getty@.service unit already has an ExecStart so we cannot simply set a new
one in order to override it or we will get this error:

systemd[1]: getty@tty1.service: Service has more than one ExecStart= setting, which is only allowed for Type=oneshot services. Refusing.

Instead "reset" ExecStart by setting it to empty which is the systemd way of
doing it.
---
 nixos/modules/services/ttys/kmscon.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix
index 8bad42927e3f..88e488425bce 100644
--- a/nixos/modules/services/ttys/kmscon.nix
+++ b/nixos/modules/services/ttys/kmscon.nix
@@ -60,6 +60,7 @@ in {
       ConditionPathExists=/dev/tty0
 
       [Service]
+      ExecStart=
       ExecStart=${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p
       UtmpIdentifier=%I
       TTYPath=/dev/%I

From 5ddfcc774c483c803bd43240bacc6c872a8e17ec Mon Sep 17 00:00:00 2001
From: Nick Novitski <github@nicknovitski.com>
Date: Wed, 20 Sep 2017 23:53:25 -0700
Subject: [PATCH 103/533] gemconfig: add curb

---
 pkgs/development/ruby-modules/gem-config/default.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index bf1f9d14b776..6647d71bd006 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -67,6 +67,10 @@ in
   charlock_holmes = attrs: {
     buildInputs = [ which icu zlib ];
   };
+  
+  curb = attrs: {
+    buildInputs = [ curl ];
+  };
 
   dep-selector-libgecode = attrs: {
     USE_SYSTEM_GECODE = true;

From 6aea372e28615c3c8cee5ca0ac904d7f5acea7a6 Mon Sep 17 00:00:00 2001
From: Florian Jacob <projects+git@florianjacob.de>
Date: Thu, 21 Sep 2017 08:27:16 +0200
Subject: [PATCH 104/533] piwik: 3.1.0 -> 3.1.1

---
 pkgs/servers/web-apps/piwik/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/web-apps/piwik/default.nix b/pkgs/servers/web-apps/piwik/default.nix
index 3981a5eeb14c..091391166d7b 100644
--- a/pkgs/servers/web-apps/piwik/default.nix
+++ b/pkgs/servers/web-apps/piwik/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "piwik-${version}";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchurl {
     url = "https://builds.piwik.org/${name}.tar.gz";
-    sha512 = "175300ibf0lg4xnyn5v47czi3vd6i7yqf1im3br4975f6k7w8q22m2mk2mi006795js5q52x48g4sc7wb47wac7wbla8wp98al48gfb";
+    sha512 = "2mqzk12959j9xqb9cqz8np35zcs1313zjx9pikbjw9z9mfcqgv0ccvrnl2ymmwll333drr9qaxs54n0mkk66xbhz04nmzmib0kp9k8h";
   };
 
   nativeBuildInputs = [ makeWrapper ];

From aab8f8df4bd294794659ab5762d0bf1c90dc55b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 21 Sep 2017 09:10:12 +0100
Subject: [PATCH 105/533] nifticlib: use mirror for sourceforge

---
 .../libraries/science/biology/nifticlib/default.nix           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/science/biology/nifticlib/default.nix b/pkgs/development/libraries/science/biology/nifticlib/default.nix
index d421a65e23d1..ae916b84ea33 100644
--- a/pkgs/development/libraries/science/biology/nifticlib/default.nix
+++ b/pkgs/development/libraries/science/biology/nifticlib/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation rec {
   name  = "${pname}-${pversion}";
 
   src = fetchurl {
-    url    = "https://downloads.sourceforge.net/project/niftilib/${pname}/${pname}_2_0_0/${name}.tar.gz";
-    sha256 = "a3e988e6a32ec57833056f6b09f940c69e79829028da121ff2c5c6f7f94a7f88";
+    url    = "mirror://sourceforge/project/niftilib/${pname}/${pname}_2_0_0/${name}.tar.gz";
+    sha256 = "123z9bwzgin5y8gi5ni8j217k7n683whjsvg0lrpii9flgk8isd3";
   };
 
   nativeBuildInputs = [ cmake ];

From 6988537835df86b50aa9fa9d6e125d26ae67d8f2 Mon Sep 17 00:00:00 2001
From: Linus Heckemann <git@sphalerite.org>
Date: Thu, 21 Sep 2017 09:24:22 +0100
Subject: [PATCH 106/533] oil: 0.0.0 -> 0.1.0

---
 pkgs/shells/oil/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/shells/oil/default.nix b/pkgs/shells/oil/default.nix
index eebbc6d1b867..ec7dbbbf5ffc 100644
--- a/pkgs/shells/oil/default.nix
+++ b/pkgs/shells/oil/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, coreutils }:
 let
-  version = "0.0.0";
+  version = "0.1.0";
 in
 stdenv.mkDerivation {
   name = "oil-${version}";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "1mvyvvzw149piwa7xdl3byyn7h31p4cnrf3w9dxr5qfd9vc4gmsm";
+    sha256 = "0cf7jwwgvcq7q6zq8g5pi464hnn83b2km0nv6711qgqbxmsw85nx";
   };
 
   postPatch = ''

From 53337c0fc896e85353b9d69d8052e3791d1bd181 Mon Sep 17 00:00:00 2001
From: Aleksey Kladov <aleksey.kladov@gmail.com>
Date: Mon, 4 Sep 2017 21:02:02 +0300
Subject: [PATCH 107/533] jetbrains.jdk: init at 152b970.2

---
 .../compilers/jetbrains-jdk/default.nix       | 53 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  7 ++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/development/compilers/jetbrains-jdk/default.nix

diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
new file mode 100644
index 000000000000..9583c3060249
--- /dev/null
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchurl, file, glib, libxml2, libav_0_8, ffmpeg, libxslt, mesa_noglu,
+ xorg, alsaLib, fontconfig, freetype, pango, gtk2, cairo, gdk_pixbuf, atk }:
+
+let
+  version = "152b970.2";
+  architecture = "amd64";
+  rSubPaths = [
+    "lib/${architecture}/jli"
+    "lib/${architecture}/server"
+    "lib/${architecture}/xawt"
+    "lib/${architecture}"
+  ];
+  libraries =
+    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk] ++
+    [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc];
+
+in
+
+let jbsdk = stdenv.mkDerivation {
+  name = "jbsdk-${version}";
+  src = fetchurl {
+    url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u${version}_linux_x64.tar.gz";
+    sha256 = "0i2cqjfab91kr618z88nb5g9yg60j5z08wjl0nlvcmpvg2z6va0m";
+  };
+  nativeBuildInputs = [ file ];
+
+  unpackCmd = "mkdir jdk; pushd jdk; tar -xzf $src; popd";
+
+  installPhase = ''
+    cd ..
+
+    exes=$(file $sourceRoot/bin/* $sourceRoot/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+    for file in $exes; do
+      paxmark m "$file"
+    done
+
+    mv $sourceRoot $out
+    jrePath=$out/jre
+  '';
+
+  postFixup = ''
+    rpath+="''${rpath:+:}${stdenv.lib.concatStringsSep ":" (map (a: "$jrePath/${a}") rSubPaths)}"
+    find $out -type f -perm -0100 \
+        -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "$rpath" {} \;
+    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
+  '';
+
+
+  rpath = stdenv.lib.strings.makeLibraryPath libraries;
+
+  passthru.home = jbsdk;
+}; in jbsdk
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 60a3bc8394df..cee086b04efd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14603,7 +14603,12 @@ with pkgs;
     libart = pkgs.gnome2.libart_lgpl;
   };
 
-  jetbrains = recurseIntoAttrs (callPackages ../applications/editors/jetbrains { androidsdk = androidsdk_extras; });
+  jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
+    jdk = jetbrains.jdk;
+    androidsdk = androidsdk_extras;
+  }) // {
+    jdk = callPackage ../development/compilers/jetbrains-jdk {  };
+  });
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 

From 85cd64877871804722ce3f51aaaf5a7fa5ff8054 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
Date: Thu, 21 Sep 2017 10:48:02 +0200
Subject: [PATCH 108/533] jetbrains.jdk: style fixes, platform restriction

---
 .../compilers/jetbrains-jdk/default.nix       | 75 +++++++++++++------
 1 file changed, 51 insertions(+), 24 deletions(-)

diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 9583c3060249..e0aa815e4dcb 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -1,27 +1,23 @@
-{ stdenv, fetchurl, file, glib, libxml2, libav_0_8, ffmpeg, libxslt, mesa_noglu,
- xorg, alsaLib, fontconfig, freetype, pango, gtk2, cairo, gdk_pixbuf, atk }:
+{ stdenv, lib, fetchurl, file, glib, libxml2, libav_0_8, ffmpeg, libxslt
+, mesa_noglu , xorg, alsaLib, fontconfig, freetype, pango, gtk2, cairo
+, gdk_pixbuf, atk }:
 
-let
+# TODO: Investigate building from source instead of patching binaries.
+# TODO: Binary patching for not just x86_64-linux but also x86_64-darwin i686-linux
+
+let drv = stdenv.mkDerivation rec {
+  pname = "jetbrainsjdk";
   version = "152b970.2";
-  architecture = "amd64";
-  rSubPaths = [
-    "lib/${architecture}/jli"
-    "lib/${architecture}/server"
-    "lib/${architecture}/xawt"
-    "lib/${architecture}"
-  ];
-  libraries =
-    [stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk] ++
-    [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc];
+  name = pname + "-" + version;
 
-in
+  src = if stdenv.system == "x86_64-linux" then
+    fetchurl {
+      url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u${version}_linux_x64.tar.gz";
+      sha256 = "0i2cqjfab91kr618z88nb5g9yg60j5z08wjl0nlvcmpvg2z6va0m";
+    }
+  else
+    abort "unsupported system: ${stdenv.system}";
 
-let jbsdk = stdenv.mkDerivation {
-  name = "jbsdk-${version}";
-  src = fetchurl {
-    url = "https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u${version}_linux_x64.tar.gz";
-    sha256 = "0i2cqjfab91kr618z88nb5g9yg60j5z08wjl0nlvcmpvg2z6va0m";
-  };
   nativeBuildInputs = [ file ];
 
   unpackCmd = "mkdir jdk; pushd jdk; tar -xzf $src; popd";
@@ -38,7 +34,15 @@ let jbsdk = stdenv.mkDerivation {
     jrePath=$out/jre
   '';
 
-  postFixup = ''
+  postFixup = let
+    arch = "amd64";
+    rSubPaths = [
+      "lib/${arch}/jli"
+      "lib/${arch}/server"
+      "lib/${arch}/xawt"
+      "lib/${arch}"
+    ];
+    in ''
     rpath+="''${rpath:+:}${stdenv.lib.concatStringsSep ":" (map (a: "$jrePath/${a}") rSubPaths)}"
     find $out -type f -perm -0100 \
         -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -46,8 +50,31 @@ let jbsdk = stdenv.mkDerivation {
     find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
   '';
 
+  rpath = lib.makeLibraryPath ([
+    stdenv.cc.cc stdenv.cc.libc glib libxml2 libav_0_8 ffmpeg libxslt mesa_noglu
+    alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk
+  ] ++ (with xorg; [
+    libX11 libXext libXtst libXi libXp libXt libXrender libXxf86vm
+  ]));
 
-  rpath = stdenv.lib.strings.makeLibraryPath libraries;
+  passthru.home = drv;
 
-  passthru.home = jbsdk;
-}; in jbsdk
+  meta = with stdenv.lib; {
+    description = "An OpenJDK fork to better support Jetbrains's products.";
+    longDescription = ''
+     JetBrains Runtime is a runtime environment for running IntelliJ Platform
+     based products on Windows, Mac OS X, and Linux. JetBrains Runtime is
+     based on OpenJDK project with some modifications. These modifications
+     include: Subpixel Anti-Aliasing, enhanced font rendering on Linux, HiDPI
+     support, ligatures, some fixes for native crashes not presented in
+     official build, and other small enhancements.
+
+     JetBrains Runtime is not a certified build of OpenJDK. Please, use at
+     your own risk.
+    '';
+    homepage = "https://bintray.com/jetbrains/intellij-jdk/";
+    licenses = licenses.gpl2;
+    maintainers = with maintainers; [ edwtjo ];
+    platforms = with platforms; [ "x86_64-linux" ];
+  };
+}; in drv

From 559d8d4c3af098f9faa4653fe7a249eb3327b368 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Thu, 21 Sep 2017 10:51:57 +0200
Subject: [PATCH 109/533] afew: git-2017-02-8 -> 1.2.0

---
 pkgs/development/python-modules/afew/default.nix | 15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)

diff --git a/pkgs/development/python-modules/afew/default.nix b/pkgs/development/python-modules/afew/default.nix
index 39c921eb7bcd..05280738e5ba 100644
--- a/pkgs/development/python-modules/afew/default.nix
+++ b/pkgs/development/python-modules/afew/default.nix
@@ -1,19 +1,20 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, isPy3k , dbacl, notmuch, chardet, subprocess32 }:
+, isPy3k , setuptools_scm, notmuch, chardet, subprocess32 }:
 
 buildPythonPackage rec {
   pname = "afew";
-  version = "git-2017-02-08";
+  version = "1.2.0";
   name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "afewmail";
     repo = "afew";
-    rev = "889a3b966835c4d16aa1f24bb89f12945b9b2a67";
-    sha256 = "01gwrx1m3ka13ps3vj04a3y8llli2j2vkd3gcggcvxdphhpysckm";
+    rev = "3405475276a2433e1238be330e538ebf2a976e5e";
+    sha256 = "1h974avnfc6636az130yjqwm28z3aaqm49bjhpy3razx6zvyhzlf";
   };
 
-  buildInputs = [ dbacl ];
+  buildInputs = [ setuptools_scm ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = "${version}";
 
   propagatedBuildInputs = [
     notmuch
@@ -22,10 +23,6 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  preConfigure = ''
-    substituteInPlace afew/DBACL.py --replace "'dbacl'" "'${dbacl}/bin/dbacl'"
-  '';
-
   postInstall = ''
     wrapProgram $out/bin/afew \
       --prefix LD_LIBRARY_PATH : ${notmuch}/lib

From dea2affe6c6d41dad20551da46f21cdfd207407d Mon Sep 17 00:00:00 2001
From: Vaibhav Sagar <vaibhavsagar@gmail.com>
Date: Thu, 21 Sep 2017 16:34:25 +0800
Subject: [PATCH 110/533] nginxModules.echo: 0.57 -> 0.61

This fixes #29555.
---
 pkgs/servers/http/nginx/modules.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index cf6cc8d69910..f3222f2982b4 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -51,8 +51,8 @@
     src = fetchFromGitHub {
       owner = "openresty";
       repo = "echo-nginx-module";
-      rev = "v0.57";
-      sha256 = "1q0f0zprcn0ypl2qh964cq186l3f40p0z7n7x22m8cxj367vf000";
+      rev = "v0.61";
+      sha256 = "0brjhhphi94ms4gia7za0mfx0png4jbhvq6j0nzjwp537iyiy23k";
     };
   };
 

From b0deb1ed4880974c159923be5fc3c056ec2bc1d2 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Thu, 21 Sep 2017 06:10:50 -0500
Subject: [PATCH 111/533] dropbox: 34.4.22 -> 35.4.20

---
 pkgs/applications/networking/dropbox/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix
index 0bd3dcbc33a9..b9dae2d42006 100644
--- a/pkgs/applications/networking/dropbox/default.nix
+++ b/pkgs/applications/networking/dropbox/default.nix
@@ -24,10 +24,10 @@
 let
   # NOTE: When updating, please also update in current stable,
   # as older versions stop working
-  version = "34.4.22";
+  version = "35.4.20";
   sha256 = {
-    "x86_64-linux" = "1ryxj8d5ym2dc18vn2m883jvy9n19xvw5kgfbqxziirb0bip58ba";
-    "i686-linux"   = "1pj7c77196ill8jpwk8f66917v2a7c2xvkd9mssh98c9n321k5j8";
+    "x86_64-linux" = "09qxr94bcyjn5ky20yapljxi2n2nbk6ldcpx2h0ysy8jp6zbrn78";
+    "i686-linux"   = "1rd4b26dbjf779g085si65lac74bk6lcx8k7i3nqk3vrvbva9n40";
   }."${stdenv.system}" or (throw "system ${stdenv.system} not supported");
 
   arch = {

From 595d92eb7a1fee050e52a5ad043a45cea887026c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Thu, 21 Sep 2017 04:14:22 -0700
Subject: [PATCH 112/533] ocamlfuse: 2.7-3 -> 2.7.1_cvs5 (#29606)

---
 pkgs/development/ocaml-modules/ocamlfuse/default.nix | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/ocaml-modules/ocamlfuse/default.nix b/pkgs/development/ocaml-modules/ocamlfuse/default.nix
index de69ce472281..e5a3c282e581 100644
--- a/pkgs/development/ocaml-modules/ocamlfuse/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlfuse/default.nix
@@ -1,12 +1,14 @@
 { stdenv, fetchFromGitHub, ocaml, camlidl, fuse, findlib }:
 
 stdenv.mkDerivation rec {
-  name = "ocamlfuse-2.7-3";
+  name = "ocamlfuse-${version}";
+  version = "2.7.1_cvs5";
+
   src = fetchFromGitHub {
     owner = "astrada";
     repo = "ocamlfuse";
-    rev = "a085349685758668854499ce6c1fc00c83a5c23b";
-    sha256 = "1pyml2ay5wab1blwpzrv1r6lnycm000jk6aar8i9fkdnh15sa6c3";
+    rev = "v${version}";
+    sha256 = "01ayw2hzpxan95kncbxh9isj9g149cs8scq3xim1vy8bz085wb0m";
   };
 
   buildInputs = [ocaml findlib];
@@ -18,9 +20,9 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = http://sourceforge.net/projects/ocamlfuse;
+    description = "OCaml bindings for FUSE";
     license = stdenv.lib.licenses.gpl2;
-    description = "ocaml binding for fuse";
-    maintainers = with stdenv.lib.maintainers; [ bennofs ];
     platforms = stdenv.lib.platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ bennofs ];
   };
 }

From 8b8a2fd5424ed60980ce6c1dd51d0bb8fdfb5cf3 Mon Sep 17 00:00:00 2001
From: Diego Zamboni <diego@zzamboni.org>
Date: Thu, 21 Sep 2017 13:20:37 +0200
Subject: [PATCH 113/533] elvish: 0.9 -> 0.10; fix darwin build (#29587)

* First attempt at making elvish compile on darwin

* Fixed cyclic dependency on darwin

This fixes the "cycle detected in the references of" error when building
on darwin. The fix is based on the solution in issue #18131.

* Use version 0.10 and not 0.10.1, which is not officially released yet
---
 pkgs/shells/elvish/default.nix | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pkgs/shells/elvish/default.nix b/pkgs/shells/elvish/default.nix
index 1d1dddd0c2a0..8a7d49710125 100644
--- a/pkgs/shells/elvish/default.nix
+++ b/pkgs/shells/elvish/default.nix
@@ -2,7 +2,11 @@
 
 buildGoPackage rec {
   name = "elvish-${version}";
-  version = "0.9";
+  version = "0.10";
+
+  postInstall = stdenv.lib.optionalString (stdenv.isDarwin) ''
+    install_name_tool -delete_rpath $out/lib $bin/bin/elvish
+  '';
 
   goPackagePath = "github.com/elves/elvish";
 
@@ -10,7 +14,7 @@ buildGoPackage rec {
     repo = "elvish";
     owner = "elves";
     rev = version;
-    sha256 = "0alsv04iihrk1nffp6fmyzxid26dqhg1k45957c2ymyzyq9cglxj";
+    sha256 = "0v6byd81nz0fbd3sdlippi1jn1z3gbqc2shnr7akd1n6k9259vrj";
   };
 
   meta = with stdenv.lib; {
@@ -18,6 +22,6 @@ buildGoPackage rec {
     homepage = https://github.com/elves/elvish;
     license = licenses.bsd2;
     maintainers = with maintainers; [ vrthra ];
-    platforms = with platforms; linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }

From e76c2c1496a9e9bbaaf275ac10d5b701399136ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9ophane=20Hufschmitt?=
 <regnat@users.noreply.github.com>
Date: Thu, 21 Sep 2017 13:45:33 +0200
Subject: [PATCH 114/533] pythonPackages.pafy: 0.5.2 -> 0.5.3.1 (#29588)

* pythonPackages.pafy: 0.5.2 -> 0.5.3.1

* pythonPackages.pafy: move to its own file

* pythonPackages.pafy: fetchurl -> fetchPypi
---
 .../python-modules/pafy/default.nix           | 24 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            | 22 +----------------
 2 files changed, 25 insertions(+), 21 deletions(-)
 create mode 100644 pkgs/development/python-modules/pafy/default.nix

diff --git a/pkgs/development/python-modules/pafy/default.nix b/pkgs/development/python-modules/pafy/default.nix
new file mode 100644
index 000000000000..77ed1d6c4c0a
--- /dev/null
+++ b/pkgs/development/python-modules/pafy/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, youtube-dl, fetchPypi }:
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "pafy";
+  version = "0.5.3.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a7dxi95m1043rxx1r5x3ngb66nwlq6aqcasyqqjzmmmjps4zrim";
+  };
+
+  # No tests included in archive
+  doCheck = false;
+
+  propagatedBuildInputs = [ youtube-dl ];
+
+  meta = with lib; {
+    description = "A library to download YouTube content and retrieve metadata";
+    homepage = http://np1.github.io/pafy/;
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ odi ];
+  };
+}
+
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f519e182d3ea..e090abb47a4d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -25318,27 +25318,7 @@ EOF
     };
   };
 
-  pafy = buildPythonPackage rec {
-    name = "pafy-${version}";
-    version = "0.5.2";
-
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pafy/${name}.tar.gz";
-      sha256 = "1ckvrypyvb7jbqlgwdz0y337ajagjv7dgxyns326nqwypn1wpq0i";
-    };
-
-    # No tests included in archive
-    doCheck = false;
-
-    propagatedBuildInputs = with self; [ youtube-dl ];
-
-    meta = with stdenv.lib; {
-      description = "A library to download YouTube content and retrieve metadata";
-      homepage = http://np1.github.io/pafy/;
-      license = licenses.lgpl3Plus;
-      maintainers = with maintainers; [ odi ];
-    };
-  };
+  pafy = callPackage ../development/python-modules/pafy { };
 
   suds = buildPythonPackage rec {
     name = "suds-0.4";

From d5b46fdd803e115051adf3fb0e52a1104290aac8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 21 Sep 2017 12:50:32 +0100
Subject: [PATCH 115/533] khal: use fetchPypi

---
 pkgs/applications/misc/khal/default.nix | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix
index 1864c754a26f..1334f2317b9d 100644
--- a/pkgs/applications/misc/khal/default.nix
+++ b/pkgs/applications/misc/khal/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, fetchurl, pkgs, python3Packages }:
+{ stdenv, pkgs, python3Packages }:
 
 with python3Packages;
 
 buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "khal";
   version = "0.9.7";
-  name = "khal-${version}";
 
-  src = fetchurl {
-    url = "mirror://pypi/k/khal/khal-${version}.tar.gz";
+  src = fetchPypi {
+    inherit pname version;
     sha256 = "0x1p62ff7ggb172rjr6sbdrjh1gl3ck3bwxsqlsix8i5wycwvnmv";
   };
 

From 3370615a7f1ad927ace45e268b694a184d2ffd43 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Zimmermann?=
 <theo.zimmermann@univ-paris-diderot.fr>
Date: Thu, 21 Sep 2017 15:06:51 +0200
Subject: [PATCH 116/533] compcert: 3.0.1 -> 3.1

Note that the fix of the VERSION file can likely be removed at the next update.
---
 pkgs/development/compilers/compcert/default.nix | 5 +++--
 pkgs/top-level/all-packages.nix                 | 5 +----
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/compilers/compcert/default.nix b/pkgs/development/compilers/compcert/default.nix
index f519776b6891..950c7f96b6fb 100644
--- a/pkgs/development/compilers/compcert/default.nix
+++ b/pkgs/development/compilers/compcert/default.nix
@@ -7,11 +7,11 @@ assert lib.versionAtLeast ocamlPackages.ocaml.version "4.02";
 
 stdenv.mkDerivation rec {
   name    = "compcert-${version}";
-  version = "3.0.1";
+  version = "3.1";
 
   src = fetchurl {
     url    = "http://compcert.inria.fr/release/${name}.tgz";
-    sha256 = "0dgrj26dzdy4n3s9b5hwc6lm54vans1v4qx9hdp1q8w1qqcdriq9";
+    sha256 = "0irfwlw2chalp0g2gw0makc699hn3z37sha1a239p9d90mzx03cx";
   };
 
   buildInputs = [ coq ]
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   configurePhase = ''
+    substituteInPlace VERSION --replace '3.0.1' '3.1'
     substituteInPlace ./configure --replace '{toolprefix}gcc' '{toolprefix}cc'
     ./configure -clightgen -prefix $out -toolprefix ${tools}/bin/ '' +
     (if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux");
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 19a4432dfb82..f64d01562e39 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5341,10 +5341,7 @@ with pkgs;
 
   cmucl_binary = callPackage_i686 ../development/compilers/cmucl/binary.nix { };
 
-  compcert = callPackage ../development/compilers/compcert {
-    # Pin the version of coq used in compcert to 8.6 until the next release
-    coq = callPackage ../applications/science/logic/coq { version = "8.6"; };
-  };
+  compcert = callPackage ../development/compilers/compcert { };
 
 
   # Users installing via `nix-env` will likely be using the REPL,

From 8fde5790b4f41cec33e994a0f7faa5326e503b7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Zimmermann?=
 <theo.zimmermann@univ-paris-diderot.fr>
Date: Thu, 21 Sep 2017 15:24:17 +0200
Subject: [PATCH 117/533] compcert: fix license

The license of CompCert is not a generic "INRIA" license. It is "INRIA Non-Commercial
Agreement for the CompCert verified compiler". As unfortunate as it may seem, this
is a non-free license (clearly mentioned as such in its preamble). See also #20256.
---
 lib/licenses.nix                                | 5 +++--
 pkgs/development/compilers/compcert/default.nix | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/licenses.nix b/lib/licenses.nix
index edf35ec035b2..a790b576032d 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -292,9 +292,10 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
     fullName = "Independent JPEG Group License";
   };
 
-  inria = {
-    fullName  = "INRIA Non-Commercial License Agreement";
+  inria-compcert = {
+    fullName  = "INRIA Non-Commercial License Agreement for the CompCert verified compiler";
     url       = "http://compcert.inria.fr/doc/LICENSE";
+    free      = false;
   };
 
   ipa = spdx {
diff --git a/pkgs/development/compilers/compcert/default.nix b/pkgs/development/compilers/compcert/default.nix
index 950c7f96b6fb..a12f1c42ba61 100644
--- a/pkgs/development/compilers/compcert/default.nix
+++ b/pkgs/development/compilers/compcert/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Formally verified C compiler";
     homepage    = "http://compcert.inria.fr";
-    license     = licenses.inria;
+    license     = licenses.inria-compcert;
     platforms   = platforms.linux ++
                   platforms.darwin;
     maintainers = with maintainers; [ thoughtpolice jwiegley vbgl ];

From 25a2b4b3ec42c6f97729f6d2b6b7806cb165f79a Mon Sep 17 00:00:00 2001
From: Robert Helgesson <robert@rycee.net>
Date: Thu, 21 Sep 2017 15:22:08 +0200
Subject: [PATCH 118/533] svtplay-dl: 1.9.4 -> 1.9.6

---
 pkgs/tools/misc/svtplay-dl/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index a652243a9d60..5999fa316223 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -5,13 +5,13 @@ let
   inherit (pythonPackages) python nose pycrypto requests mock;
 in stdenv.mkDerivation rec {
   name = "svtplay-dl-${version}";
-  version = "1.9.4";
+  version = "1.9.6";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "15vjaia1qbs49gplpfi8sj5scl9mb4qg8n2z4zyzjs5461lx5qqv";
+    sha256 = "11xw4whh60k61i8akd7avb254mmffaig72kb7w6prk1kjq05js2s";
   };
 
   pythonPaths = [ pycrypto requests ];

From 2dae9980cc94ec9d70bef5644edf3dcdb61318e1 Mon Sep 17 00:00:00 2001
From: Robert Helgesson <robert@rycee.net>
Date: Thu, 21 Sep 2017 15:22:25 +0200
Subject: [PATCH 119/533] perl-File-Slurper: 0.009 -> 0.010

---
 pkgs/top-level/perl-packages.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 83175a4ee4cc..26436e44d94a 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -5713,10 +5713,10 @@ let self = _self // overrides; _self = with self; {
   };
 
   FileSlurper = buildPerlPackage rec {
-    name = "File-Slurper-0.009";
+    name = "File-Slurper-0.010";
     src = fetchurl {
       url = "mirror://cpan/authors/id/L/LE/LEONT/${name}.tar.gz";
-      sha256 = "3eab340deff6ba5456e7d1156b9cfcc387e1243acfc156ff92b75b3f2e120b91";
+      sha256 = "a393364648c9d6be938e8a68c3094c5f8a37b19d3159141ec81ba49559343c16";
     };
     buildInputs = [ TestWarnings ];
     meta = {

From 41cca299ef41268d872fba5e57557afd6c76410f Mon Sep 17 00:00:00 2001
From: Robert Helgesson <robert@rycee.net>
Date: Thu, 21 Sep 2017 15:38:47 +0200
Subject: [PATCH 120/533] perl-Scope-Upper: 0.24 -> 0.29

---
 pkgs/top-level/perl-packages.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 26436e44d94a..ed78f67739e3 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -11874,11 +11874,11 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
-  ScopeUpper = buildPerlPackage {
-    name = "Scope-Upper-0.24";
+  ScopeUpper = buildPerlPackage rec {
+    name = "Scope-Upper-0.29";
     src = fetchurl {
-      url = mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.24.tar.gz;
-      sha256 = "159jcwliyb7j80858pi052hkmhgy4cdbjha419kmhhqc9s1rhd5g";
+      url = "mirror://cpan/authors/id/V/VP/VPIT/${name}.tar.gz";
+      sha256 = "4b07360a243ce0ccaacfdfa98ae38ef2686aa908fcf4ef3d669105ac36759e0a";
     };
     meta = {
       homepage = http://search.cpan.org/dist/Scope-Upper/;

From e0ef28c12df6fe12ccfc1c29dcf4c9bb62891092 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Thu, 21 Sep 2017 15:55:22 +0200
Subject: [PATCH 121/533] fim: init at 0.5rc3

---
 pkgs/tools/graphics/fim/default.nix | 40 +++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix     |  3 +++
 2 files changed, 43 insertions(+)
 create mode 100644 pkgs/tools/graphics/fim/default.nix

diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
new file mode 100644
index 000000000000..e4a44d0784ef
--- /dev/null
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, autoconf, automake, pkgconfig, perl
+, flex, bison, readline
+, giflib, libtiff, libexif, libpng, libjpeg, jasper
+, aalib, inkscape#, SDL, fig2dev, jasper # TODO
+}:
+
+stdenv.mkDerivation rec {
+  name = "fim-${version}";
+  version = "0.5rc3";
+
+  src = fetchurl {
+    url = mirror://savannah/fbi-improved/fim-0.5-rc3.tar.gz;
+    sha256 = "12aka85h469zfj0zcx3xdpan70gq8nf5rackgb1ldcl9mqjn50c2";
+  };
+
+  postPatch = ''
+   substituteInPlace doc/vim2html.pl \
+     --replace /usr/bin/perl ${perl}/bin/perl
+  '';
+
+  nativeBuildInputs = [ autoconf automake pkgconfig ];
+
+  buildInputs = [
+    perl flex bison readline
+    giflib libtiff libexif libpng libjpeg jasper aalib inkscape
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A lightweight, highly customizable and scriptable image viewer";
+    longDescription = ''
+      FIM (Fbi IMproved) is a lightweight, console based image viewer that aims
+      to be a highly customizable and scriptable for users who are comfortable
+      with software like the VIM text editor or the Mutt mail user agent.
+    '';
+    homepage = http://www.nongnu.org/fbi-improved/;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8b75752bd426..f5997ef12c30 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2013,6 +2013,9 @@ with pkgs;
 
   fdk_aac = callPackage ../development/libraries/fdk-aac { };
 
+  # WIP: fim
+  fimFull = callPackage ../tools/graphics/fim { };
+
   flac123 = callPackage ../applications/audio/flac123 { };
 
   flamegraph = callPackage ../development/tools/flamegraph { };

From c3b41a77e65107526a7919e4b3a0e9961bb6765b Mon Sep 17 00:00:00 2001
From: Shea Levy <shea@shealevy.com>
Date: Thu, 21 Sep 2017 08:18:45 -0600
Subject: [PATCH 122/533] openldap: Use a global localstatedir

---
 pkgs/development/libraries/openldap/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index 06288ce9a6b8..475ac496e7e8 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -28,12 +28,13 @@ stdenv.mkDerivation rec {
       "--disable-dependency-tracking"   # speeds up one-time build
       "--enable-modules"
       "--sysconfdir=/etc"
+      "--localstatedir=/var"
       "--enable-crypt"
     ] ++ stdenv.lib.optional (openssl == null) "--without-tls"
       ++ stdenv.lib.optional (cyrus_sasl == null) "--without-cyrus-sasl"
       ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
 
-  installFlags = [ "sysconfdir=$(out)/etc" ];
+  installFlags = [ "sysconfdir=$(out)/etc" "localstatedir=$(out)/var" ];
 
   # 1. Fixup broken libtool
   # 2. Libraries left in the build location confuse `patchelf --shrink-rpath`

From a127f91f284ec001db70e92d487abcbbac7cde5f Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Thu, 21 Sep 2017 17:59:38 +0200
Subject: [PATCH 123/533] fim: Add X11 support and "USE flags"

---
 pkgs/tools/graphics/fim/default.nix | 28 ++++++++++++++++++++--------
 pkgs/top-level/all-packages.nix     |  3 +--
 2 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index e4a44d0784ef..c7a22f00dce7 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -1,7 +1,12 @@
-{ stdenv, fetchurl, autoconf, automake, pkgconfig, perl
-, flex, bison, readline
-, giflib, libtiff, libexif, libpng, libjpeg, jasper
-, aalib, inkscape#, SDL, fig2dev, jasper # TODO
+{ stdenv, fetchurl, autoconf, automake, pkgconfig
+, perl, flex, bison, readline, libexif
+, x11Support ? true, SDL
+, svgSupport ? true, inkscape
+, asciiArtSupport ? true, aalib
+, gifSupport ? true, giflib
+, tiffSupport ? true, libtiff
+, jpegSupport ? true, libjpeg
+, pngSupport ? true, libpng
 }:
 
 stdenv.mkDerivation rec {
@@ -20,10 +25,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoconf automake pkgconfig ];
 
-  buildInputs = [
-    perl flex bison readline
-    giflib libtiff libexif libpng libjpeg jasper aalib inkscape
-  ];
+  buildInputs = with stdenv.lib;
+    [ perl flex bison readline libexif ]
+    ++ optional x11Support SDL
+    ++ optional svgSupport inkscape
+    ++ optional asciiArtSupport aalib
+    ++ optional gifSupport giflib
+    ++ optional tiffSupport libtiff
+    ++ optional jpegSupport libjpeg
+    ++ optional pngSupport libpng;
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional x11Support "-lSDL";
 
   meta = with stdenv.lib; {
     description = "A lightweight, highly customizable and scriptable image viewer";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 352b24a1c471..0f1392f71390 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2014,8 +2014,7 @@ with pkgs;
 
   fdk_aac = callPackage ../development/libraries/fdk-aac { };
 
-  # WIP: fim
-  fimFull = callPackage ../tools/graphics/fim { };
+  fim = callPackage ../tools/graphics/fim { };
 
   flac123 = callPackage ../applications/audio/flac123 { };
 

From e2822f6384060866697ed4f43b57a7f1cc56f986 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Thu, 21 Sep 2017 20:23:16 +0200
Subject: [PATCH 124/533] gitlab: 9.5.2 -> 9.5.5

---
 nixos/modules/services/misc/gitlab.nix        |   1 +
 .../version-management/gitaly/Gemfile         |   2 +-
 .../version-management/gitaly/Gemfile.lock    |   6 +-
 .../version-management/gitaly/default.nix     |   4 +-
 .../version-management/gitaly/gemset.nix      |  10 +-
 .../version-management/gitlab/Gemfile         |  14 +-
 .../version-management/gitlab/Gemfile.lock    |  82 ++++++++----
 .../version-management/gitlab/default.nix     |   6 +-
 .../version-management/gitlab/gemset.nix      | 125 ++++++++++++++----
 9 files changed, 181 insertions(+), 69 deletions(-)

diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 7bf18d481504..d6c8ac547246 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -555,6 +555,7 @@ in {
         openssh
         nodejs
         procps
+        gnupg
       ];
       preStart = ''
         mkdir -p ${cfg.backupPath}
diff --git a/pkgs/applications/version-management/gitaly/Gemfile b/pkgs/applications/version-management/gitaly/Gemfile
index c29ef2ec7c18..a12e23a57b51 100644
--- a/pkgs/applications/version-management/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitaly/Gemfile
@@ -1,5 +1,5 @@
 source 'https://rubygems.org'
 
 gem 'github-linguist', '~> 4.7.0', require: 'linguist'
-gem 'gitaly', '~> 0.30.0'
+gem 'gitaly-proto', '~> 0.31.0', require: 'gitaly'
 gem 'activesupport'
diff --git a/pkgs/applications/version-management/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitaly/Gemfile.lock
index 062d1f07abc9..9d2f03b531e5 100644
--- a/pkgs/applications/version-management/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitaly/Gemfile.lock
@@ -13,7 +13,7 @@ GEM
     escape_utils (1.1.1)
     faraday (0.12.2)
       multipart-post (>= 1.2, < 3)
-    gitaly (0.30.0)
+    gitaly-proto (0.31.0)
       google-protobuf (~> 3.1)
       grpc (~> 1.0)
     github-linguist (4.7.6)
@@ -30,7 +30,7 @@ GEM
       multi_json (~> 1.11)
       os (~> 0.9)
       signet (~> 0.7)
-    grpc (1.4.1)
+    grpc (1.4.5)
       google-protobuf (~> 3.1)
       googleauth (~> 0.5.1)
     i18n (0.8.1)
@@ -63,7 +63,7 @@ PLATFORMS
 
 DEPENDENCIES
   activesupport
-  gitaly (~> 0.30.0)
+  gitaly-proto (~> 0.31.0)
   github-linguist (~> 4.7.0)
 
 BUNDLED WITH
diff --git a/pkgs/applications/version-management/gitaly/default.nix b/pkgs/applications/version-management/gitaly/default.nix
index 4263ff886a6f..ff6555ad8f05 100644
--- a/pkgs/applications/version-management/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitaly/default.nix
@@ -7,14 +7,14 @@ let
     gemdir = ./.;
   };
 in buildGoPackage rec {
-  version = "0.33.0";
+  version = "0.35.0";
   name = "gitaly-${version}";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "1x23z3a0svychs1kc9cbiskl0dp7ji9ddzqr6md22jiy6vgwx2wa";
+    sha256 = "0h3gh4y571wrnnsg5wpi67psih8yssaw24v3vrcpqpkz5linj7pl";
   };
 
   goPackagePath = "gitlab.com/gitlab-org/gitaly";
diff --git a/pkgs/applications/version-management/gitaly/gemset.nix b/pkgs/applications/version-management/gitaly/gemset.nix
index d68d7a553c9d..06ba56e6b9a9 100644
--- a/pkgs/applications/version-management/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitaly/gemset.nix
@@ -50,14 +50,14 @@
     };
     version = "0.12.2";
   };
-  gitaly = {
+  gitaly-proto = {
     dependencies = ["google-protobuf" "grpc"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ya0vqmrr3nsrsrcph1rqnb43gpvszhvs8v6viki5lvg9rdxb67";
+      sha256 = "1n5bpclizxc42m5kbrhdgsb0ddkl47d0rgmcya5b6sv8qbclkkds";
       type = "gem";
     };
-    version = "0.30.0";
+    version = "0.31.0";
   };
   github-linguist = {
     dependencies = ["charlock_holmes" "escape_utils" "mime-types" "rugged"];
@@ -89,10 +89,10 @@
     dependencies = ["google-protobuf" "googleauth"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hp8sfvl99imzp3c5sp96qpi49550v7ri7ljfvb3nllcmd3jw7sk";
+      sha256 = "1zhci260088zlghpaz6ania1blz1dd7lgklsjnqk1vcymhpr6b38";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.4.5";
   };
   i18n = {
     source = {
diff --git a/pkgs/applications/version-management/gitlab/Gemfile b/pkgs/applications/version-management/gitlab/Gemfile
index f0133fda6a4f..5a38c956be10 100644
--- a/pkgs/applications/version-management/gitlab/Gemfile
+++ b/pkgs/applications/version-management/gitlab/Gemfile
@@ -27,7 +27,7 @@ gem 'doorkeeper-openid_connect', '~> 1.1.0'
 gem 'omniauth', '~> 1.4.2'
 gem 'omniauth-auth0', '~> 1.4.1'
 gem 'omniauth-azure-oauth2', '~> 0.0.6'
-gem 'omniauth-cas3', '~> 1.1.2'
+gem 'omniauth-cas3', '~> 1.1.4'
 gem 'omniauth-facebook', '~> 4.0.0'
 gem 'omniauth-github', '~> 1.1.1'
 gem 'omniauth-gitlab', '~> 1.0.2'
@@ -126,12 +126,9 @@ gem 'wikicloth', '0.8.1'
 gem 'asciidoctor', '~> 1.5.2'
 gem 'asciidoctor-plantuml', '0.0.7'
 gem 'rouge', '~> 2.0'
-gem 'truncato', '~> 0.7.8'
+gem 'truncato', '~> 0.7.9'
 gem 'bootstrap_form', '~> 2.7.0'
-
-# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s
-# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM
-gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2'
+gem 'nokogiri', '~> 1.8.0'
 
 # Diffs
 gem 'diffy', '~> 3.1.0'
@@ -250,7 +247,7 @@ gem 'uglifier', '~> 2.7.2'
 gem 'addressable', '~> 2.3.8'
 gem 'bootstrap-sass', '~> 3.3.0'
 gem 'font-awesome-rails', '~> 4.7'
-gem 'gemojione', '~> 3.0'
+gem 'gemojione', '~> 3.3'
 gem 'gon', '~> 6.1.0'
 gem 'jquery-atwho-rails', '~> 1.3.2'
 gem 'jquery-rails', '~> 4.1.0'
@@ -289,7 +286,7 @@ group :metrics do
   gem 'influxdb', '~> 0.2', require: false
 
   # Prometheus
-  gem 'prometheus-client-mmap', '~>0.7.0.beta11'
+  gem 'prometheus-client-mmap', '~>0.7.0.beta14'
   gem 'raindrops', '~> 0.18'
 end
 
@@ -324,6 +321,7 @@ group :development, :test do
   gem 'spinach-rerun-reporter', '~> 0.0.2'
   gem 'rspec_profiling', '~> 0.0.5'
   gem 'rspec-set', '~> 0.1.3'
+  gem 'rspec-parameterized'
 
   # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
   gem 'minitest', '~> 5.7.0'
diff --git a/pkgs/applications/version-management/gitlab/Gemfile.lock b/pkgs/applications/version-management/gitlab/Gemfile.lock
index 08ce4486ba07..d729b62d8f9a 100644
--- a/pkgs/applications/version-management/gitlab/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/Gemfile.lock
@@ -2,6 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     RedCloth (4.3.2)
+    abstract_type (0.0.7)
     ace-rails-ap (4.1.2)
     actionmailer (4.2.8)
       actionpack (= 4.2.8)
@@ -43,6 +44,9 @@ GEM
       tzinfo (~> 1.1)
     acts-as-taggable-on (4.0.0)
       activerecord (>= 4.0)
+    adamantium (0.2.0)
+      ice_nine (~> 0.11.0)
+      memoizable (~> 0.4.0)
     addressable (2.3.8)
     after_commit_queue (1.3.0)
       activerecord (>= 3.0)
@@ -126,6 +130,9 @@ GEM
     coercible (1.0.0)
       descendants_tracker (~> 0.0.1)
     colorize (0.7.7)
+    concord (0.1.5)
+      adamantium (~> 0.2.0)
+      equalizer (~> 0.0.9)
     concurrent-ruby (1.0.5)
     concurrent-ruby-ext (1.0.5)
       concurrent-ruby (= 1.0.5)
@@ -258,7 +265,7 @@ GEM
       ruby-progressbar (~> 1.4)
     gemnasium-gitlab-service (0.2.6)
       rugged (~> 0.21)
-    gemojione (3.0.1)
+    gemojione (3.3.0)
       json
     get_process_mem (0.2.0)
     gettext (3.2.2)
@@ -280,7 +287,7 @@ GEM
       escape_utils (~> 1.1.0)
       mime-types (>= 1.19)
       rugged (>= 0.23.0b)
-    github-markup (1.4.0)
+    github-markup (1.6.1)
     gitlab-flowdock-git-hook (1.0.1)
       flowdock (~> 0.7)
       gitlab-grit (>= 2.4.1)
@@ -300,13 +307,14 @@ GEM
       activesupport (>= 4.1.0)
     gollum-grit_adapter (1.0.1)
       gitlab-grit (~> 2.7, >= 2.7.1)
-    gollum-lib (4.2.1)
-      github-markup (~> 1.4.0)
+    gollum-lib (4.2.7)
+      gemojione (~> 3.2)
+      github-markup (~> 1.6)
       gollum-grit_adapter (~> 1.0)
-      nokogiri (~> 1.6.4)
-      rouge (~> 2.0)
-      sanitize (~> 2.1.0)
-      stringex (~> 2.5.1)
+      nokogiri (>= 1.6.1, < 2.0)
+      rouge (~> 2.1)
+      sanitize (~> 2.1)
+      stringex (~> 2.6)
     gollum-rugged_adapter (0.4.4)
       mime-types (>= 1.15)
       rugged (~> 0.25)
@@ -468,14 +476,16 @@ GEM
       railties (>= 4, < 5.2)
     loofah (2.0.3)
       nokogiri (>= 1.5.9)
-    mail (2.6.5)
+    mail (2.6.6)
       mime-types (>= 1.16, < 4)
     mail_room (0.9.1)
     memoist (0.15.0)
+    memoizable (0.4.2)
+      thread_safe (~> 0.3, >= 0.3.1)
     method_source (0.8.2)
     mime-types (2.99.3)
     mimemagic (0.3.0)
-    mini_portile2 (2.1.0)
+    mini_portile2 (2.2.0)
     minitest (5.7.0)
     mmap2 (2.2.7)
     mousetrap-rails (1.4.6)
@@ -489,8 +499,8 @@ GEM
     net-ldap (0.16.0)
     net-ssh (4.1.0)
     netrc (0.11.0)
-    nokogiri (1.6.8.1)
-      mini_portile2 (~> 2.1.0)
+    nokogiri (1.8.0)
+      mini_portile2 (~> 2.2.0)
     numerizer (0.1.1)
     oauth (0.5.1)
     oauth2 (1.4.0)
@@ -513,9 +523,9 @@ GEM
       jwt (~> 1.0)
       omniauth (~> 1.0)
       omniauth-oauth2 (~> 1.1)
-    omniauth-cas3 (1.1.3)
+    omniauth-cas3 (1.1.4)
       addressable (~> 2.3)
-      nokogiri (~> 1.6.6)
+      nokogiri (~> 1.7, >= 1.7.1)
       omniauth (~> 1.2)
     omniauth-facebook (4.0.0)
       omniauth-oauth2 (~> 1.2)
@@ -603,7 +613,7 @@ GEM
       cliver (~> 0.3.1)
       multi_json (~> 1.0)
       websocket-driver (>= 0.2.0)
-    posix-spawn (0.3.11)
+    posix-spawn (0.3.13)
     powerpack (0.1.1)
     premailer (1.10.4)
       addressable
@@ -612,7 +622,12 @@ GEM
     premailer-rails (1.9.7)
       actionmailer (>= 3, < 6)
       premailer (~> 1.7, >= 1.7.9)
-    prometheus-client-mmap (0.7.0.beta11)
+    proc_to_ast (0.1.0)
+      coderay
+      parser
+      unparser
+    procto (0.0.3)
+    prometheus-client-mmap (0.7.0.beta14)
       mmap2 (~> 2.2, >= 2.2.7)
     pry (0.10.4)
       coderay (~> 1.1.0)
@@ -720,6 +735,10 @@ GEM
       chunky_png
     rqrcode-rails3 (0.1.7)
       rqrcode (>= 0.4.2)
+    rspec (3.6.0)
+      rspec-core (~> 3.6.0)
+      rspec-expectations (~> 3.6.0)
+      rspec-mocks (~> 3.6.0)
     rspec-core (3.6.0)
       rspec-support (~> 3.6.0)
     rspec-expectations (3.6.0)
@@ -728,6 +747,12 @@ GEM
     rspec-mocks (3.6.0)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.6.0)
+    rspec-parameterized (0.4.0)
+      binding_of_caller
+      parser
+      proc_to_ast
+      rspec (>= 2.13, < 4)
+      unparser
     rspec-rails (3.6.0)
       actionpack (>= 3.0)
       activesupport (>= 3.0)
@@ -852,7 +877,7 @@ GEM
     state_machines-activerecord (0.4.0)
       activerecord (>= 4.1, < 5.1)
       state_machines-activemodel (>= 0.3.0)
-    stringex (2.5.2)
+    stringex (2.7.1)
     sys-filesystem (1.1.6)
       ffi
     sysexits (1.2.0)
@@ -871,9 +896,9 @@ GEM
     timfel-krb5-auth (0.8.3)
     toml-rb (0.3.15)
       citrus (~> 3.0, > 3.0)
-    truncato (0.7.8)
+    truncato (0.7.10)
       htmlentities (~> 4.3.1)
-      nokogiri (~> 1.6.1)
+      nokogiri (~> 1.8.0, >= 1.7.0)
     tzinfo (1.2.3)
       thread_safe (~> 0.1)
     u2f (0.2.1)
@@ -892,6 +917,14 @@ GEM
       get_process_mem (~> 0)
       unicorn (>= 4, < 6)
     uniform_notifier (1.10.0)
+    unparser (0.2.6)
+      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.5)
+      procto (~> 0.0.2)
     url_safe_base64 (0.2.2)
     validates_hostname (1.0.6)
       activerecord (>= 3.0)
@@ -990,7 +1023,7 @@ DEPENDENCIES
   foreman (~> 0.78.0)
   fuubar (~> 2.2.0)
   gemnasium-gitlab-service (~> 0.2)
-  gemojione (~> 3.0)
+  gemojione (~> 3.3)
   gettext (~> 3.2.2)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.2.0)
@@ -1036,7 +1069,7 @@ DEPENDENCIES
   mysql2 (~> 0.4.5)
   net-ldap
   net-ssh (~> 4.1.0)
-  nokogiri (~> 1.6.7, >= 1.6.7.2)
+  nokogiri (~> 1.8.0)
   oauth2 (~> 1.4)
   octokit (~> 4.6.2)
   oj (~> 2.17.4)
@@ -1044,7 +1077,7 @@ DEPENDENCIES
   omniauth-auth0 (~> 1.4.1)
   omniauth-authentiq (~> 0.3.1)
   omniauth-azure-oauth2 (~> 0.0.6)
-  omniauth-cas3 (~> 1.1.2)
+  omniauth-cas3 (~> 1.1.4)
   omniauth-facebook (~> 4.0.0)
   omniauth-github (~> 1.1.1)
   omniauth-gitlab (~> 1.0.2)
@@ -1069,7 +1102,7 @@ DEPENDENCIES
   pg (~> 0.18.2)
   poltergeist (~> 1.9.0)
   premailer-rails (~> 1.9.7)
-  prometheus-client-mmap (~> 0.7.0.beta11)
+  prometheus-client-mmap (~> 0.7.0.beta14)
   pry-byebug (~> 3.4.1)
   pry-rails (~> 0.3.4)
   rack-attack (~> 4.4.1)
@@ -1095,6 +1128,7 @@ DEPENDENCIES
   responders (~> 2.0)
   rouge (~> 2.0)
   rqrcode-rails3 (~> 0.1.7)
+  rspec-parameterized
   rspec-rails (~> 3.6.0)
   rspec-retry (~> 0.4.5)
   rspec-set (~> 0.1.3)
@@ -1133,7 +1167,7 @@ DEPENDENCIES
   thin (~> 1.7.0)
   timecop (~> 0.8.0)
   toml-rb (~> 0.3.15)
-  truncato (~> 0.7.8)
+  truncato (~> 0.7.9)
   u2f (~> 0.2.1)
   uglifier (~> 2.7.2)
   underscore-rails (~> 1.8.0)
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 993d61dc9ac3..9087ff6fdc02 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -18,11 +18,11 @@ let
     };
   };
 
-  version = "9.5.2";
+  version = "9.5.5";
 
   gitlabDeb = fetchurl {
     url = "https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce_${version}-ce.0_amd64.deb/download";
-    sha256 = "0h0cmhs1bz5248vqxq5x3grggw2x53n6kbinlsyhnvcyds0vk0pa";
+    sha256 = "1wrwxksfqkha7qm2hbgs0z7lmgisdvdqa4wcll0qfzq1c3d286zz";
   };
 
 in
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     owner = "gitlabhq";
     repo = "gitlabhq";
     rev = "v${version}";
-    sha256 = "0ljqimdzxw5pvif2jrzjdihypa30595nb02h12a4gw3wz3qrrxdc";
+    sha256 = "0qi21lkq69ah977vssbkllb7q5jwb0vf2ws5s3bzpvp2mj3iab5m";
   };
 
   patches = [
diff --git a/pkgs/applications/version-management/gitlab/gemset.nix b/pkgs/applications/version-management/gitlab/gemset.nix
index d2506b288f5c..fd27c6435974 100644
--- a/pkgs/applications/version-management/gitlab/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gemset.nix
@@ -1,4 +1,12 @@
 {
+  abstract_type = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09330cmhrc2wmfhdj9zzg82sv6cdhm3qgdkva5ni5xfjril2pf14";
+      type = "gem";
+    };
+    version = "0.0.7";
+  };
   ace-rails-ap = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -97,6 +105,15 @@
     };
     version = "4.0.0";
   };
+  adamantium = {
+    dependencies = ["ice_nine" "memoizable"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0165r2ikgfwv2rm8dzyijkp74fvg0ni72hpdx8ay2v7cj08dqyak";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   addressable = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -474,6 +491,15 @@
     };
     version = "0.7.7";
   };
+  concord = {
+    dependencies = ["adamantium" "equalizer"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b6cdn0fg4n9gzbdr7zyf4jq40y6h0c0g9cra7wk9hhmsylk91bg";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
   concurrent-ruby = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -1002,10 +1028,10 @@
     dependencies = ["json"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17yy3cp7b75ngc2v4f0cacvq3f1bk3il5a0ykvnypl6fcj6r6b3w";
+      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
       type = "gem";
     };
-    version = "3.0.1";
+    version = "3.3.0";
   };
   get_process_mem = {
     source = {
@@ -1071,10 +1097,10 @@
   github-markup = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "046bvnbhk3bw021sd88808n71dya0b0dmx8hm64rj0fvs2jzg54z";
+      sha256 = "1nyb9ck2c9z5qi86n7r52w0m126qpnvc93yh35cn8bwsnkjqx0iq";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.6.1";
   };
   gitlab-flowdock-git-hook = {
     dependencies = ["flowdock" "gitlab-grit" "multi_json"];
@@ -1130,13 +1156,13 @@
     version = "1.0.1";
   };
   gollum-lib = {
-    dependencies = ["github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
+    dependencies = ["gemojione" "github-markup" "gollum-grit_adapter" "nokogiri" "rouge" "sanitize" "stringex"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q668c76gnyyyl8217gnblbj50plm7giacs5lgf7ix2rj8rdxzj7";
+      sha256 = "1filwvjfj5q2m6w4q274ai36d6f0mrsv2l2khhk4bv1q6pqby2fq";
       type = "gem";
     };
-    version = "4.2.1";
+    version = "4.2.7";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -1620,10 +1646,10 @@
     dependencies = ["mime-types"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07k8swmv7vgk86clzpjhdlmgahlvg6yzjwy7wcsv0xx400fh4x61";
+      sha256 = "0d7lhj2dw52ycls6xigkfz6zvfhc6qggply9iycjmcyj9760yvz9";
       type = "gem";
     };
-    version = "2.6.5";
+    version = "2.6.6";
   };
   mail_room = {
     source = {
@@ -1641,6 +1667,15 @@
     };
     version = "0.15.0";
   };
+  memoizable = {
+    dependencies = ["thread_safe"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
   method_source = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -1668,10 +1703,10 @@
   mini_portile2 = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y25adxb1hgg1wb2rn20g3vl07qziq6fz364jc5694611zz863hb";
+      sha256 = "0g5bpgy08q0nc0anisg3yvwc1gc3inl854fcrg48wvg7glqd6dpm";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.2.0";
   };
   minitest = {
     source = {
@@ -1774,10 +1809,10 @@
     dependencies = ["mini_portile2"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "045xdg0w7nnsr2f2gb7v7bgx53xbc9dxf0jwzmh2pr3jyrzlm0cj";
+      sha256 = "1nffsyx1xjg6v5n9rrbi8y1arrcx2i5f21cp6clgh9iwiqkr7rnn";
       type = "gem";
     };
-    version = "1.6.8.1";
+    version = "1.8.0";
   };
   numerizer = {
     source = {
@@ -1861,10 +1896,10 @@
     dependencies = ["addressable" "nokogiri" "omniauth"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13swm2hi2z63nvb2bps6g41kki8kr9b5c7014rk8259bxlpflrk7";
+      sha256 = "191b4jm4djmmy54yxfxj3c889r2wn3g6sfsdj6l1rjy0kw1m2qgx";
       type = "gem";
     };
-    version = "1.1.3";
+    version = "1.1.4";
   };
   omniauth-facebook = {
     dependencies = ["omniauth-oauth2"];
@@ -2152,10 +2187,10 @@
   posix-spawn = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "052lnxbkvlnwfjw4qd7vn2xrlaaqiav6f5x5bcjin97bsrfq6cmr";
+      sha256 = "1pmxmpins57qrbr31bs3bm7gidhaacmrp4md6i962gvpq4gyfcjw";
       type = "gem";
     };
-    version = "0.3.11";
+    version = "0.3.13";
   };
   powerpack = {
     source = {
@@ -2183,14 +2218,31 @@
     };
     version = "1.9.7";
   };
+  proc_to_ast = {
+    dependencies = ["coderay" "parser" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14c65w48bbzp5lh1cngqd1y25kqvfnq1iy49hlzshl12dsk3z9wj";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  procto = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13imvg1x50rz3r0yyfbhxwv72lbf7q28qx9l9nfbb91h2n9ch58c";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
   prometheus-client-mmap = {
     dependencies = ["mmap2"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13y2rg2bzbpdx33d72j4dwgwcnml4y7gv0pg401642kmv3ypab77";
+      sha256 = "1r9s30hypcpw4abxlzcjlkcwkckqvr5sbph3blbl0rq2r8c8h25p";
       type = "gem";
     };
-    version = "0.7.0.beta11";
+    version = "0.7.0.beta14";
   };
   pry = {
     dependencies = ["coderay" "method_source" "slop"];
@@ -2591,6 +2643,15 @@
     };
     version = "0.1.7";
   };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nd50hycab2a2vdah9lxi585g8f63jxjvmzmxqyln51grxwx9hzb";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   rspec-core = {
     dependencies = ["rspec-support"];
     source = {
@@ -2618,6 +2679,15 @@
     };
     version = "3.6.0";
   };
+  rspec-parameterized = {
+    dependencies = ["binding_of_caller" "parser" "proc_to_ast" "rspec" "unparser"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0arynbr6cfjhccwc8gy2xf87nybdnncsnmfwknnh8s7d4mj730p0";
+      type = "gem";
+    };
+    version = "0.4.0";
+  };
   rspec-rails = {
     dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
     source = {
@@ -3070,10 +3140,10 @@
   stringex = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "150adm7rfh6r9b5ra6vk75mswf9m3wwyslcf8f235a08m29fxa17";
+      sha256 = "1zc93v00av643lc6njl09wwki7h5yqayhh1din8zqfylw814l1dv";
       type = "gem";
     };
-    version = "2.5.2";
+    version = "2.7.1";
   };
   sys-filesystem = {
     dependencies = ["ffi"];
@@ -3179,10 +3249,10 @@
     dependencies = ["htmlentities" "nokogiri"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09ngwz2mpfsi1ms94j7nmms4kbd5sgcqv5dshrbwaqf585ja7cm5";
+      sha256 = "1x4fhfi4p7ah9sshfhbk9j145s1ailbyj0dxnvqirs9kk10x2d1b";
       type = "gem";
     };
-    version = "0.7.8";
+    version = "0.7.10";
   };
   tzinfo = {
     dependencies = ["thread_safe"];
@@ -3269,6 +3339,15 @@
     };
     version = "1.10.0";
   };
+  unparser = {
+    dependencies = ["abstract_type" "adamantium" "concord" "diff-lcs" "equalizer" "parser" "procto"];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jhpgvghn764myi5iwlys98f71yspwgrzimzz11108jnhl5rcx7l";
+      type = "gem";
+    };
+    version = "0.2.6";
+  };
   url_safe_base64 = {
     source = {
       remotes = ["https://rubygems.org"];

From 8ed758696c321a84b3d3d5d08b6bfa004779f211 Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Sun, 17 Sep 2017 18:49:02 +0200
Subject: [PATCH 125/533] gluster service: use str instead of path for private
 key

This pervents the user from accidently commiting the key to the nix store.
If providing a path instead of a string.
---
 nixos/modules/services/network-filesystems/glusterfs.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix
index ae4f4521cf2d..e7f52bc4a7d1 100644
--- a/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -61,9 +61,9 @@ in
         default = null;
         type = types.nullOr (types.submodule {
           options = {
-            tlsKey = mkOption {
+            tlsKeyPath = mkOption {
               default = null;
-              type = types.path;
+              type = types.str;
               description = "Path to the private key used for TLS.";
             };
 
@@ -93,7 +93,7 @@ in
 
     environment.etc = mkIf (cfg.tlsSettings != null) {
       "ssl/glusterfs.pem".source = cfg.tlsSettings.tlsPem;
-      "ssl/glusterfs.key".source = cfg.tlsSettings.tlsKey;
+      "ssl/glusterfs.key".source = cfg.tlsSettings.tlsKeyPath;
       "ssl/glusterfs.ca".source = cfg.tlsSettings.caCert;
     };
 

From 7d3d276a16010c1400bec97ac3cbfd494adc4490 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Thu, 21 Sep 2017 14:37:33 -0400
Subject: [PATCH 126/533] linux-copperhead: 4.13.2.a -> 4.13.3.a

---
 pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
index 3b9357ae35ed..a2bf05647830 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardened-copperhead.nix
@@ -3,9 +3,9 @@
 with stdenv.lib;
 
 let
-  version = "4.13.2";
+  version = "4.13.3";
   revision = "a";
-  sha256 = "1srglf014a2ra4sgzwrf53wdc3rrr5lx8dcx57xm4lpvrc4r66y6";
+  sha256 = "1w1waqrzji17f7zmnkr7afbd2yz0xqf6m3g8dz2bkd2kzv07vzx5";
 
   # modVersion needs to be x.y.z, will automatically add .0 if needed
   modVersion = concatStrings (intersperse "." (take 3 (splitString "." "${version}.0")));

From a3ba600366f9c2892b9fed3856c528af3a0fe075 Mon Sep 17 00:00:00 2001
From: Jake Waksbaum <jake.waksbaum@gmail.com>
Date: Thu, 21 Sep 2017 14:39:36 -0400
Subject: [PATCH 127/533] ocamlPackages.merlin: 2.5.4 -> 3.0.2 (#29337)

---
 pkgs/development/tools/ocaml/merlin/default.nix | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/pkgs/development/tools/ocaml/merlin/default.nix b/pkgs/development/tools/ocaml/merlin/default.nix
index 4680785ac7c2..a6252a5c729d 100644
--- a/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/pkgs/development/tools/ocaml/merlin/default.nix
@@ -4,15 +4,7 @@
 assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.00";
 
 let
-  version = if lib.versionOlder (lib.getVersion ocaml) "4.02.0"
-  then
-    "2.3.1"
-  else
-    "2.5.4";
-  hashes = {
-    "2.3.1" = "192jamcc7rmvadlqqsjkzsl6hlgwhg9my1qc89fxh1lmd4qdsrpn";
-    "2.5.4" = "101vk16c5wayd51s8w0mvy99bk7q3gm2gz8i8616wa1lmyszjknh";
-  };
+  version = "3.0.2";
 in
 
 stdenv.mkDerivation {
@@ -20,8 +12,8 @@ stdenv.mkDerivation {
   name = "merlin-${version}";
 
   src = fetchzip {
-    url = "https://github.com/the-lambda-church/merlin/archive/v${version}.tar.gz";
-    sha256 = hashes."${version}";
+    url = "https://github.com/ocaml/merlin/archive/v${version}.tar.gz";
+    sha256 = "0lcgafs5ip8vhvrp1d7yv6mzjsirmayd83cj4wwq6zxcrl7yv4x8";
   };
 
   buildInputs = [ ocaml findlib yojson ]

From 1ae204d2fab96b2aebc59c232f78a116db2b640b Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 21 Sep 2017 20:05:29 +0200
Subject: [PATCH 128/533] zroc-ice: cleanup and fix darwin build

---
 .../libraries/zeroc-ice/default.nix           | 19 ++++++++++++-------
 pkgs/top-level/all-packages.nix               |  4 +++-
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix
index e41dfbc6a726..8527832ad9c2 100644
--- a/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/pkgs/development/libraries/zeroc-ice/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5 }:
+{ stdenv, fetchFromGitHub, mcpp, bzip2, expat, openssl, db5
+, darwin, libiconv, Security
+}:
 
 stdenv.mkDerivation rec {
   name = "zeroc-ice-${version}";
@@ -11,17 +13,20 @@ stdenv.mkDerivation rec {
     sha256 = "05xympbns32aalgcfcpxwfd7bvg343f16xpg6jv5s335ski3cjy2";
   };
 
-  buildInputs = [ mcpp bzip2 expat openssl db5 ];
+  buildInputs = [ mcpp bzip2 expat openssl db5 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ];
 
-  buildPhase = ''
-    cd cpp
-    make -j $NIX_BUILD_CORES OPTIMIZE=yes
+  postUnpack = ''
+    sourceRoot=$sourceRoot/cpp
   '';
 
-  installPhase = ''
-    make -j $NIX_BUILD_CORES prefix=$out install
+  prePatch = ''
+    substituteInPlace config/Make.rules.Darwin \
+        --replace xcrun ""
   '';
 
+  makeFlags = [ "prefix=$(out)" "OPTIMIZE=yes" ];
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1c418fa9f76c..395fb83cfe78 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17208,7 +17208,9 @@ with pkgs;
 
   zed = callPackage ../applications/editors/zed { };
 
-  zeroc_ice = callPackage ../development/libraries/zeroc-ice { };
+  zeroc_ice = callPackage ../development/libraries/zeroc-ice {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   zexy = callPackage ../applications/audio/pd-plugins/zexy  { };
 

From bafb9c4d50d08a373f83b15be6fa0ad1fe2b44cf Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 21 Sep 2017 21:10:03 +0200
Subject: [PATCH 129/533] vsqlite: fix darwin build

---
 pkgs/development/libraries/vsqlite/default.nix | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/libraries/vsqlite/default.nix b/pkgs/development/libraries/vsqlite/default.nix
index 43a8f7db8d68..bfb07c2df337 100644
--- a/pkgs/development/libraries/vsqlite/default.nix
+++ b/pkgs/development/libraries/vsqlite/default.nix
@@ -11,10 +11,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ boost sqlite ];
 
-  meta = {
+  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile.in \
+        --replace '-Wl,--as-needed' "" \
+        --replace '-Wl,-soname -Wl,libvsqlitepp.so.3' \
+                  "-Wl,-install_name,$out/lib/libvsqlitepp.3.dylib"
+  '';
+
+  meta = with stdenv.lib; {
     homepage = http://vsqlite.virtuosic-bytes.com/;
     description = "C++ wrapper library for sqlite.";
-    license = stdenv.lib.licenses.bsd3;
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.bsd3;
+    platforms = platforms.unix;
   };
 }

From ab390ab050149da469b198ed1c968c0cbc03e8e7 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Fri, 23 Jun 2017 19:46:05 +0200
Subject: [PATCH 130/533] erlang: remove erlangR16 and all versioned variants
 from all-packages

(re-applies commit 0fafa0d7d7c89dfb8c3c7fbc5977cfe7959ebb78)
---
 pkgs/top-level/all-packages.nix | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 12a94c79b363..6493d7574edc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6290,15 +6290,9 @@ with pkgs;
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlang_odbc erlang_javac erlang_odbc_javac
+    erlang erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
     elixir elixir_1_5 elixir_1_4 elixir_1_3
-    lfe lfe_1_2
-    erlangR16 erlangR16_odbc
-    erlang_basho_R16B02 erlang_basho_R16B02_odbc
-    erlangR17 erlangR17_odbc erlangR17_javac erlangR17_odbc_javac
-    erlangR18 erlangR18_odbc erlangR18_javac erlangR18_odbc_javac
-    erlangR19 erlangR19_odbc erlangR19_javac erlangR19_odbc_javac
-    erlangR20 erlangR20_odbc erlangR20_javac erlangR20_odbc_javac;
+    lfe lfe_1_2;
 
   inherit (beam.packages.erlang)
     rebar rebar3-open rebar3

From ef4c15e54dae4507e1d8141a0a28b20cc778e85c Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 21 Sep 2017 21:32:03 +0200
Subject: [PATCH 131/533] erlang: add R17-R20 back to all-packages

---
 pkgs/top-level/all-packages.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6493d7574edc..acc753ce58ce 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6290,7 +6290,8 @@ with pkgs;
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
+    erlang erlangR17 erlangR18 erlangR19 erlangR20
+    erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
     elixir elixir_1_5 elixir_1_4 elixir_1_3
     lfe lfe_1_2;
 

From 50f12373afaf90abebd571dfba747eda3aecdb04 Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Thu, 21 Sep 2017 21:23:28 +0200
Subject: [PATCH 132/533] riot-web: 0.12.3 -> 0.12.5

---
 .../networking/instant-messengers/riot/riot-web.nix           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
index c57fd4136897..964f1ab52040 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
+++ b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name= "riot-web-${version}";
-  version = "0.12.3";
+  version = "0.12.5";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "1v9k9rna9rziis5ld4x4lw3rhgm504cnnafiwk175jpjbbd8h4b3";
+    sha256 = "1g30gl4b5fk1h13r2v4rspcqic9jg99717lxplk5birg3wi3b2d3";
   };
 
   installPhase = ''

From 2bbef7658afa2b83f2e1bc01cf2cf9182fc913f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 20 Sep 2017 08:56:11 -0300
Subject: [PATCH 133/533] google-drive-ocamlfuse: 0.6.17 -> 0.6.21

---
 .../google-drive-ocamlfuse/default.nix         | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 674cf60161db..ddc9df759996 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -1,16 +1,20 @@
-{ stdenv, fetchurl, zlib
+{ stdenv, fetchFromGitHub, zlib
 , ocaml, ocamlbuild, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
 
 stdenv.mkDerivation rec {
-  name    = "google-drive-ocamlfuse-${version}";
-  version = "0.6.17";
+  name = "google-drive-ocamlfuse-${version}";
+  version = "0.6.21";
 
-  src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1674/${name}.tar.gz";
-    sha256 = "1ldja7080pnjaibrbdvfqwakp4mac8yw1lkb95f7lgldmy96lxas";
+  src = fetchFromGitHub {
+    owner = "astrada";
+    repo = "google-drive-ocamlfuse";
+    rev = "v${version}";
+    sha256 = "14qvhz18pzxdgxk5vcs024ajbkxccfwc9p3z5r6vfkc9mm851v59";
   };
 
-  buildInputs = [ zlib ocaml ocamlbuild ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl];
+  nativeBuildInputs = [ ocamlbuild ];
+
+  buildInputs = [ zlib ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl ];
 
   configurePhase = "ocaml setup.ml -configure --prefix \"$out\"";
   buildPhase = "ocaml setup.ml -build";

From 7c30c83b7b09c41dda2f2766607a8376c91c3129 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 21 Sep 2017 21:51:32 +0200
Subject: [PATCH 134/533] vmmlib: fix darwin frameworks

---
 pkgs/development/libraries/vmmlib/default.nix | 21 ++++++++++++-------
 pkgs/top-level/all-packages.nix               |  4 +++-
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/pkgs/development/libraries/vmmlib/default.nix b/pkgs/development/libraries/vmmlib/default.nix
index 3a7f8770e6c7..ccdf2b05e7e3 100644
--- a/pkgs/development/libraries/vmmlib/default.nix
+++ b/pkgs/development/libraries/vmmlib/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, blas }:
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, blas
+, Accelerate, CoreGraphics, CoreVideo
+}:
 
 stdenv.mkDerivation rec {
   version = "1.6.2";
   name = "vmmlib-${version}";
-  buildInputs = [ stdenv pkgconfig cmake boost blas ];
 
   src = fetchFromGitHub {
     owner = "VMML";
@@ -12,13 +13,17 @@ stdenv.mkDerivation rec {
     sha256 = "0sn6jl1r5k6ka0vkjsdnn14hb95dqq8158dapby6jk72wqj9kdml";
   };
 
-  patches = [ 
-		./disable-cpack.patch   #disable the need of cpack/rpm
-	    ];
-  
+  patches = [
+    ./disable-cpack.patch   #disable the need of cpack/rpm
+  ];
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ boost blas ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreVideo ];
+
   enableParallelBuilding = true;
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
   checkTarget = "test";
 
@@ -36,6 +41,6 @@ stdenv.mkDerivation rec {
     homepage    = http://github.com/VMML/vmmlib/;
     maintainers = [ maintainers.adev ];
     platforms   = platforms.all;
-  };  
+  };
 }
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index acc753ce58ce..d65cf86dff51 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7902,7 +7902,9 @@ with pkgs;
 
   eigen2 = callPackage ../development/libraries/eigen/2.0.nix {};
 
-  vmmlib = callPackage ../development/libraries/vmmlib {};
+  vmmlib = callPackage ../development/libraries/vmmlib {
+    inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
+  };
 
   elastix = callPackage ../development/libraries/science/biology/elastix { };
 

From 4d225b3d405870b8584e7d27b54c8afa1c1908aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 21 Sep 2017 20:54:50 +0100
Subject: [PATCH 135/533] nodePackages.pulp: init at 12.0.1

fixes #29374
---
 .../node-packages/node-packages-v4.nix        | 1054 ++-
 .../node-packages/node-packages-v6.json       |    1 +
 .../node-packages/node-packages-v6.nix        | 5918 +++++++++--------
 3 files changed, 4015 insertions(+), 2958 deletions(-)

diff --git a/pkgs/development/node-packages/node-packages-v4.nix b/pkgs/development/node-packages/node-packages-v4.nix
index 7e5a8f1db535..a015c3b45532 100644
--- a/pkgs/development/node-packages/node-packages-v4.nix
+++ b/pkgs/development/node-packages/node-packages-v4.nix
@@ -175,13 +175,13 @@ let
         sha1 = "0054e1e744502e27c04c187c3ecc505dd54bbb4f";
       };
     };
-    "interpret-1.0.3" = {
+    "interpret-1.0.4" = {
       name = "interpret";
       packageName = "interpret";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz";
-        sha1 = "cbc35c62eeee73f19ab7b10a801511401afc0f90";
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz";
+        sha1 = "820cdd588b868ffb191a809506d6c9c8f212b1b0";
       };
     };
     "liftoff-2.3.0" = {
@@ -337,13 +337,13 @@ let
         sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809";
       };
     };
-    "dateformat-2.0.0" = {
+    "dateformat-2.2.0" = {
       name = "dateformat";
       packageName = "dateformat";
-      version = "2.0.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz";
-        sha1 = "2743e3abb5c3fc2462e527dca445e04e9f4dee17";
+        url = "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz";
+        sha1 = "4065e2013cf9fb916ddfd82efb506ad4c6769062";
       };
     };
     "fancy-log-1.3.0" = {
@@ -1741,22 +1741,22 @@ let
         sha1 = "42fe6d5953df06c8064be6f176c3d05aaaa34644";
       };
     };
-    "request-2.81.0" = {
+    "request-2.82.0" = {
       name = "request";
       packageName = "request";
-      version = "2.81.0";
+      version = "2.82.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
-        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+        url = "https://registry.npmjs.org/request/-/request-2.82.0.tgz";
+        sha512 = "079947pnxi0h8jdiv5wb64rj3gnq4a02dfj47c41wsdi3g6pp1v3yfg3m1rphib7igf6vkisrgjq16vc4fq916fc870wzckdizal1gx";
       };
     };
-    "rimraf-2.6.1" = {
+    "rimraf-2.6.2" = {
       name = "rimraf";
       packageName = "rimraf";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz";
-        sha1 = "c2338ec643df7a1b7fe5c54fa86f57428a55f33d";
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz";
+        sha512 = "3kmrqh8xli7rzfm8wc6j9lp0c6vml172iv3z088an9xlwl1xvkvh3fn92za66ms4c9yww80qa5kan31k1z1ypqvkchmh1mznb09xdwn";
       };
     };
     "semver-5.3.0" = {
@@ -1831,13 +1831,13 @@ let
         sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
       };
     };
-    "aproba-1.1.2" = {
+    "aproba-1.2.0" = {
       name = "aproba";
       packageName = "aproba";
-      version = "1.1.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz";
-        sha512 = "0zmgm7vf91vxk5hdvkwhfnzjxz9r6hwpn8dlbpasaax8rxx7z1qqdmh8l631vawj7y1bkpsd0v0mhjh9agggkjl72f3vlnfhy61m5k6";
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "has-unicode-2.0.1" = {
@@ -1921,13 +1921,13 @@ let
         sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
       };
     };
-    "aws-sign2-0.6.0" = {
+    "aws-sign2-0.7.0" = {
       name = "aws-sign2";
       packageName = "aws-sign2";
-      version = "0.6.0";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
-        sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
     "aws4-1.6.0" = {
@@ -1966,40 +1966,40 @@ let
         sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
       };
     };
-    "form-data-2.1.4" = {
+    "form-data-2.3.1" = {
       name = "form-data";
       packageName = "form-data";
-      version = "2.1.4";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz";
-        sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1";
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz";
+        sha1 = "6fb94fbd71885306d73d15cc497fe4cc4ecd44bf";
       };
     };
-    "har-validator-4.2.1" = {
+    "har-validator-5.0.3" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "4.2.1";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
-        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz";
+        sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
       };
     };
-    "hawk-3.1.3" = {
+    "hawk-6.0.2" = {
       name = "hawk";
       packageName = "hawk";
-      version = "3.1.3";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
-        sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
+        url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz";
+        sha512 = "1nl2hjr2mnhj5jlaz8mh54z7acwz5j5idkch04qgjk78756gw5d0fjk4a2immil5ij9ijdssb9ndpryvnh2xpcbgcjv8lxybn330als";
       };
     };
-    "http-signature-1.1.1" = {
+    "http-signature-1.2.0" = {
       name = "http-signature";
       packageName = "http-signature";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
-        sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -2047,22 +2047,22 @@ let
         sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
       };
     };
-    "performance-now-0.2.0" = {
+    "performance-now-2.1.0" = {
       name = "performance-now";
       packageName = "performance-now";
-      version = "0.2.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
-        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "qs-6.4.0" = {
+    "qs-6.5.1" = {
       name = "qs";
       packageName = "qs";
-      version = "6.4.0";
+      version = "6.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
-        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
+        sha512 = "3waqapyj1k4g135sgj636rmswiaixq19is1rw0rpv4qp6k7dl0a9nwy06m7yl5lbdk9p6xpwwngnggbzlzaz6rh11c86j2nvnnf273r";
       };
     };
     "stringstream-0.0.5" = {
@@ -2119,22 +2119,22 @@ let
         sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
       };
     };
-    "ajv-4.11.8" = {
+    "ajv-5.2.2" = {
       name = "ajv";
       packageName = "ajv";
-      version = "4.11.8";
+      version = "5.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
-        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+        url = "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz";
+        sha1 = "47c68d69e86f5d953103b0074a9430dc63da5e39";
       };
     };
-    "har-schema-1.0.5" = {
+    "har-schema-2.0.0" = {
       name = "har-schema";
       packageName = "har-schema";
-      version = "1.0.5";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
-        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
       };
     };
     "co-4.6.0" = {
@@ -2146,6 +2146,24 @@ let
         sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
       };
     };
+    "fast-deep-equal-1.0.0" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz";
+        sha1 = "96256a3bc975595eb36d82e9929d060d893439ff";
+      };
+    };
+    "json-schema-traverse-0.3.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+        sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+      };
+    };
     "json-stable-stringify-1.0.1" = {
       name = "json-stable-stringify";
       packageName = "json-stable-stringify";
@@ -2164,49 +2182,58 @@ let
         sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
       };
     };
-    "hoek-2.16.3" = {
+    "hoek-4.2.0" = {
       name = "hoek";
       packageName = "hoek";
-      version = "2.16.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
-        sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+        url = "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz";
+        sha512 = "2cz0q3nnv67drgaw2rm7q57r9rgdax1qa0n4z46is7db1w8vwmh574xcr0d73xl5lg80vb85xg2gdhxzh9gbllagp7xk2q228pw4idz";
       };
     };
-    "boom-2.10.1" = {
+    "boom-4.3.1" = {
       name = "boom";
       packageName = "boom";
-      version = "2.10.1";
+      version = "4.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
-        sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
+        url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz";
+        sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31";
       };
     };
-    "cryptiles-2.0.5" = {
+    "cryptiles-3.1.2" = {
       name = "cryptiles";
       packageName = "cryptiles";
-      version = "2.0.5";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
-        sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz";
+        sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe";
       };
     };
-    "sntp-1.0.9" = {
+    "sntp-2.0.2" = {
       name = "sntp";
       packageName = "sntp";
-      version = "1.0.9";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
-        sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
+        url = "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz";
+        sha1 = "5064110f0af85f7cfdb7d6b67a40028ce52b4b2b";
       };
     };
-    "assert-plus-0.2.0" = {
+    "boom-5.2.0" = {
+      name = "boom";
+      packageName = "boom";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz";
+        sha512 = "19h20yqpvca08dns1rs4f057f10w63v0snxfml4h5khsk266x3x1im0w72bza4k2xn0kfz6jlv001dhcvxsjr09bmbqnysils9m7437";
+      };
+    };
+    "assert-plus-1.0.0" = {
       name = "assert-plus";
       packageName = "assert-plus";
-      version = "0.2.0";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
-        sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
       };
     };
     "jsprim-1.4.1" = {
@@ -2227,15 +2254,6 @@ let
         sha1 = "512df6da6287144316dc4c18fe1cf1d940739be3";
       };
     };
-    "assert-plus-1.0.0" = {
-      name = "assert-plus";
-      packageName = "assert-plus";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    };
     "extsprintf-1.3.0" = {
       name = "extsprintf";
       packageName = "extsprintf";
@@ -2398,13 +2416,13 @@ let
         sha1 = "2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95";
       };
     };
-    "serve-favicon-2.4.3" = {
+    "serve-favicon-2.4.4" = {
       name = "serve-favicon";
       packageName = "serve-favicon";
-      version = "2.4.3";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.3.tgz";
-        sha1 = "5986b17b0502642b641c21f818b1acce32025d23";
+        url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.4.tgz";
+        sha1 = "412ddd74965151c9f74c0828f35d50c5250210de";
       };
     };
     "strong-data-uri-1.0.4" = {
@@ -2974,13 +2992,13 @@ let
         sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
       };
     };
-    "content-type-1.0.2" = {
+    "content-type-1.0.4" = {
       name = "content-type";
       packageName = "content-type";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz";
-        sha1 = "b7d113aee7a8dd27bd21133c4dc2529df1721eed";
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
       };
     };
     "cookie-0.3.1" = {
@@ -3028,22 +3046,22 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "etag-1.8.0" = {
+    "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
-      version = "1.8.0";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz";
-        sha1 = "6f631aef336d6c46362b51764044ce216be3c051";
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "finalhandler-1.0.4" = {
+    "finalhandler-1.0.5" = {
       name = "finalhandler";
       packageName = "finalhandler";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz";
-        sha512 = "2vbps6iw562i2zxd973z5mmbs8ggx3wbz4g1jqwvkjibiwrk9ym8bxcvvwnlmxqad92x120x5xz5nyfq68nd8akk355bkk0qjppzafp";
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.5.tgz";
+        sha1 = "a701303d257a1bc82fea547a33e5ae89531723df";
       };
     };
     "fresh-0.5.0" = {
@@ -3082,13 +3100,13 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
-    "parseurl-1.3.1" = {
+    "parseurl-1.3.2" = {
       name = "parseurl";
       packageName = "parseurl";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz";
-        sha1 = "c8ab8c9223ba34888aa64a297b28853bec18da56";
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz";
+        sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -3217,13 +3235,13 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "forwarded-0.1.0" = {
+    "forwarded-0.1.2" = {
       name = "forwarded";
       packageName = "forwarded";
-      version = "0.1.0";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz";
-        sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363";
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
     "ipaddr.js-1.4.0" = {
@@ -3289,13 +3307,13 @@ let
         sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
       };
     };
-    "safe-buffer-5.0.1" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.0.1";
+    "fresh-0.5.1" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz";
-        sha1 = "d263ca54696cd8a306b5ca6551e92de57918fbe7";
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.1.tgz";
+        sha1 = "c3a08bcec0fcdcc223edf3b23eb327f1f9fcbf5c";
       };
     };
     "truncate-1.0.5" = {
@@ -3316,13 +3334,13 @@ let
         sha1 = "d95bf721ec877e08db276ed3fc6eb78f9083ad46";
       };
     };
-    "node-pre-gyp-0.6.36" = {
+    "node-pre-gyp-0.6.37" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
-      version = "0.6.36";
+      version = "0.6.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz";
-        sha1 = "db604112cb74e0d477554e9b505b17abddfab786";
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
+        sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
       };
     };
     "nopt-4.0.1" = {
@@ -3343,6 +3361,15 @@ let
         sha512 = "2r13vwvb5ick34k6flr7vgbjfsdka8zbj5a74rd0ba4bp0nqmhppbaw3qlwn7f4smpifpa4iy4hxj137y598rbvsmy3h0d8vxgvzwar";
       };
     };
+    "tape-4.8.0" = {
+      name = "tape";
+      packageName = "tape";
+      version = "4.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz";
+        sha512 = "026x60jpvkdwfvbd6gls76zjj3yiqfz4cg9imi80r25zdziaiy87jkpw9mwbrbg9k2xc4nsn9yzk90pgkgybdspk0yb4fzg95y0nqjd";
+      };
+    };
     "tar-pack-3.4.0" = {
       name = "tar-pack";
       packageName = "tar-pack";
@@ -3352,6 +3379,177 @@ let
         sha1 = "23be2d7f671a8339376cbdb0b8fe3fdebf317984";
       };
     };
+    "deep-equal-1.0.1" = {
+      name = "deep-equal";
+      packageName = "deep-equal";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz";
+        sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+      };
+    };
+    "defined-1.0.0" = {
+      name = "defined";
+      packageName = "defined";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz";
+        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+      };
+    };
+    "for-each-0.3.2" = {
+      name = "for-each";
+      packageName = "for-each";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz";
+        sha1 = "2c40450b9348e97f281322593ba96704b9abd4d4";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+      };
+    };
+    "has-1.0.1" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.1.tgz";
+        sha1 = "8461733f538b0837c9361e39a9ab9e9704dc2f28";
+      };
+    };
+    "object-inspect-1.3.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz";
+        sha512 = "1302hkgbynr48i0h4n5psz3ln624f8516qh68kpah1ziczyg8vpyfxws5x6iazncaw5jgg9bp19pgbfl4n4gjb9z0z96pnd08pffw9q";
+      };
+    };
+    "resumer-0.0.0" = {
+      name = "resumer";
+      packageName = "resumer";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
+        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+      };
+    };
+    "string.prototype.trim-1.1.2" = {
+      name = "string.prototype.trim";
+      packageName = "string.prototype.trim";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
+        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "is-function-1.0.1" = {
+      name = "is-function";
+      packageName = "is-function";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz";
+        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+      };
+    };
+    "define-properties-1.1.2" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
+        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
+      };
+    };
+    "es-abstract-1.8.2" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz";
+        sha512 = "0cz5pzkb9xh1askig7mrv990raaa1pym6a8acyyjw405bnzdznck7q9qg2rcybwjq866i6226nq6mijn6kwg5n36r6hr3gjpla71y3n";
+      };
+    };
+    "foreach-2.0.5" = {
+      name = "foreach";
+      packageName = "foreach";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz";
+        sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+      };
+    };
+    "object-keys-1.0.11" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz";
+        sha1 = "c54601778ad560f1142ce0e01bcca8b56d13426d";
+      };
+    };
+    "es-to-primitive-1.1.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz";
+        sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d";
+      };
+    };
+    "is-callable-1.1.3" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz";
+        sha1 = "86eb75392805ddc33af71c92a0eedf74ee7604b2";
+      };
+    };
+    "is-regex-1.0.4" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz";
+        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+      };
+    };
+    "is-date-object-1.0.1" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz";
+        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+      };
+    };
+    "is-symbol-1.0.1" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz";
+        sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572";
+      };
+    };
     "fstream-ignore-1.0.5" = {
       name = "fstream-ignore";
       packageName = "fstream-ignore";
@@ -3487,6 +3685,15 @@ let
         sha1 = "5de60415bda071bb37127854c864f41b23254539";
       };
     };
+    "aproba-1.1.2" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz";
+        sha512 = "0zmgm7vf91vxk5hdvkwhfnzjxz9r6hwpn8dlbpasaax8rxx7z1qqdmh8l631vawj7y1bkpsd0v0mhjh9agggkjl72f3vlnfhy61m5k6";
+      };
+    };
     "bluebird-3.5.0" = {
       name = "bluebird";
       packageName = "bluebird";
@@ -3766,13 +3973,13 @@ let
         sha512 = "36g1gm57qcvdgb4lm6ibl9pgma8lgx8l8i2jzap6w3v36wfzsqa7vb411zd26yp9rgcq23951vl5j6pac22qd5h9x7jm9raznnnr460";
       };
     };
-    "npm-packlist-1.1.8" = {
+    "npm-packlist-1.1.9" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "1.1.8";
+      version = "1.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.8.tgz";
-        sha512 = "3wbyrf8k8ziygg8lyaj5v0kfpw9mhz4an8hqznapf7n0g2ik02shn91607274zvvayl5zcgmfkf17yy4vgz67lsdjmhzwi8rmrzapv4";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.9.tgz";
+        sha512 = "1d1l5hasnw67hczgcwbc8534n1hgvx87hin1yr14yz70b4yzp06gfrj97lhh0qfmk5p1lqfrzajhs5wywx98hj75g00mqmir54050gm";
       };
     };
     "npm-registry-client-8.4.0" = {
@@ -3874,6 +4081,15 @@ let
         sha512 = "0v1k32zqj8bnqzyp5h0jxnkvpgpzpa6z7iyqbpm3p0ylqafbb2zm656mw6gs16zf98l7y218ygpx2kzks00qcycwwx2cny67mlza98l";
       };
     };
+    "request-2.81.0" = {
+      name = "request";
+      packageName = "request";
+      version = "2.81.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
+        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+      };
+    };
     "retry-0.10.1" = {
       name = "retry";
       packageName = "retry";
@@ -4000,13 +4216,13 @@ let
         sha512 = "2lrlysxfbyzywla6i1q07xncmw30w1icgq18c4bra25dl6wvcd3mxg1lqbf88w5h7mqnf98j8ll657wnqwjq9rwd7pbmd9i11964x0c";
       };
     };
-    "write-file-atomic-2.3.0" = {
+    "write-file-atomic-2.1.0" = {
       name = "write-file-atomic";
       packageName = "write-file-atomic";
-      version = "2.3.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz";
-        sha512 = "2sgqxmcqzjd7nq9gjh6jz7vfb0gs0ag4jvqzdq93afq3bw3jrm88mhxql9sryyb04f3ipw5jkgjfiigsmdwlz9fgsnnm3cxhcmxxqy6";
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz";
+        sha512 = "0jpbx5znf640m7icywa21hdgyss5h6c811z27mzk7mh1yhv8sqcqd2y0cwgkrnigx57k2chv5cqwv0z8ff8z32gpdw8jw5imz8pcdni";
       };
     };
     "debuglog-1.0.1" = {
@@ -4081,15 +4297,6 @@ let
         sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
       };
     };
-    "through-2.3.8" = {
-      name = "through";
-      packageName = "through";
-      version = "2.3.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
-      };
-    };
     "wcwidth-1.0.1" = {
       name = "wcwidth";
       packageName = "wcwidth";
@@ -4675,13 +4882,13 @@ let
         sha512 = "0bw6m444q0jc2gmw1yb0im1jv6vhky6d071p72c26ajvf2a7710jq8cp5ampf8j7kdbki7j0mbsi15dh93vrhkpvqpkw0i6ajdk34lw";
       };
     };
-    "socks-proxy-agent-3.0.0" = {
+    "socks-proxy-agent-3.0.1" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.0.tgz";
-        sha512 = "3zn9cz2ry5m1akapj7hvhgkxfq7ffwynia46lmwipsw2jk5sv8dvs32dc4hfx3xvp34i1jff1bg870a1xnknsgk5dl021jd4gwi75v0";
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz";
+        sha512 = "2a5lsw4fry6nqk3jdxvwqrnpasypvl8c4d0kg32912820lc72l7s9jzidfsrn2an9c66xqicspxb2vnir5cjspprs9qklxnd75060b7";
       };
     };
     "humanize-ms-1.2.1" = {
@@ -4738,13 +4945,13 @@ let
         sha512 = "05ndp7b03ikx2vqivfxlm6c73yagjyrdp22ay8z592pqxldbsm7hjzpa3asal2vys99lvirqar3ly3sb1ibhhngls4sqc4nwp2jj967";
       };
     };
-    "iconv-lite-0.4.18" = {
+    "iconv-lite-0.4.19" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.4.18";
+      version = "0.4.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz";
-        sha512 = "2l97vd6kax8syr9aggcqhiyhd3b2rf506wdq6wapfrc74qwpdzqf2a3891kq9ri3g5sdzayph2sz4zkr8kbbps58z9h2lvpk115kgdj";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
+        sha512 = "0jj1pdq3j9ak8cixn2kjp7ip8hf3xgnb85j4jr32yf9rry620v9072c0kk577mllfk1zl9wzs5ypwzbp7vbhf7j31d5rrqgwb0nldm1";
       };
     };
     "socks-1.1.10" = {
@@ -4819,6 +5026,132 @@ let
         sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
       };
     };
+    "aws-sign2-0.6.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
+        sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
+      };
+    };
+    "form-data-2.1.4" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz";
+        sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1";
+      };
+    };
+    "har-validator-4.2.1" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
+        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
+      };
+    };
+    "hawk-3.1.3" = {
+      name = "hawk";
+      packageName = "hawk";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
+        sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
+      };
+    };
+    "http-signature-1.1.1" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
+        sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
+      };
+    };
+    "performance-now-0.2.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
+        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+      };
+    };
+    "qs-6.4.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
+        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
+      };
+    };
+    "ajv-4.11.8" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "4.11.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
+        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+      };
+    };
+    "har-schema-1.0.5" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
+        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
+      };
+    };
+    "hoek-2.16.3" = {
+      name = "hoek";
+      packageName = "hoek";
+      version = "2.16.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
+        sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
+      };
+    };
+    "boom-2.10.1" = {
+      name = "boom";
+      packageName = "boom";
+      version = "2.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
+        sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
+      };
+    };
+    "cryptiles-2.0.5" = {
+      name = "cryptiles";
+      packageName = "cryptiles";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
+        sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
+      };
+    };
+    "sntp-1.0.9" = {
+      name = "sntp";
+      packageName = "sntp";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
+        sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
+      };
+    };
+    "assert-plus-0.2.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
+        sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
+      };
+    };
     "from2-1.3.0" = {
       name = "from2";
       packageName = "from2";
@@ -5844,7 +6177,7 @@ in
           sources."array-differ-1.0.0"
           sources."array-uniq-1.0.3"
           sources."beeper-1.1.1"
-          sources."dateformat-2.0.0"
+          sources."dateformat-2.2.0"
           (sources."fancy-log-1.3.0" // {
             dependencies = [
               sources."time-stamp-1.1.0"
@@ -5931,7 +6264,7 @@ in
           })
         ];
       })
-      sources."interpret-1.0.3"
+      sources."interpret-1.0.4"
       (sources."liftoff-2.3.0" // {
         dependencies = [
           sources."extend-3.0.1"
@@ -6360,7 +6693,7 @@ in
           sources."console-control-strings-1.1.0"
           (sources."gauge-2.7.4" // {
             dependencies = [
-              sources."aproba-1.1.2"
+              sources."aproba-1.2.0"
               sources."has-unicode-2.0.1"
               sources."object-assign-4.1.1"
               sources."signal-exit-3.0.2"
@@ -6391,9 +6724,9 @@ in
           sources."os-tmpdir-1.0.2"
         ];
       })
-      (sources."request-2.81.0" // {
+      (sources."request-2.82.0" // {
         dependencies = [
-          sources."aws-sign2-0.6.0"
+          sources."aws-sign2-0.7.0"
           sources."aws4-1.6.0"
           sources."caseless-0.12.0"
           (sources."combined-stream-1.0.5" // {
@@ -6403,16 +6736,18 @@ in
           })
           sources."extend-3.0.1"
           sources."forever-agent-0.6.1"
-          (sources."form-data-2.1.4" // {
+          (sources."form-data-2.3.1" // {
             dependencies = [
               sources."asynckit-0.4.0"
             ];
           })
-          (sources."har-validator-4.2.1" // {
+          (sources."har-validator-5.0.3" // {
             dependencies = [
-              (sources."ajv-4.11.8" // {
+              (sources."ajv-5.2.2" // {
                 dependencies = [
                   sources."co-4.6.0"
+                  sources."fast-deep-equal-1.0.0"
+                  sources."json-schema-traverse-0.3.1"
                   (sources."json-stable-stringify-1.0.1" // {
                     dependencies = [
                       sources."jsonify-0.0.0"
@@ -6420,23 +6755,26 @@ in
                   })
                 ];
               })
-              sources."har-schema-1.0.5"
+              sources."har-schema-2.0.0"
             ];
           })
-          (sources."hawk-3.1.3" // {
+          (sources."hawk-6.0.2" // {
             dependencies = [
-              sources."hoek-2.16.3"
-              sources."boom-2.10.1"
-              sources."cryptiles-2.0.5"
-              sources."sntp-1.0.9"
+              sources."hoek-4.2.0"
+              sources."boom-4.3.1"
+              (sources."cryptiles-3.1.2" // {
+                dependencies = [
+                  sources."boom-5.2.0"
+                ];
+              })
+              sources."sntp-2.0.2"
             ];
           })
-          (sources."http-signature-1.1.1" // {
+          (sources."http-signature-1.2.0" // {
             dependencies = [
-              sources."assert-plus-0.2.0"
+              sources."assert-plus-1.0.0"
               (sources."jsprim-1.4.1" // {
                 dependencies = [
-                  sources."assert-plus-1.0.0"
                   sources."extsprintf-1.3.0"
                   sources."json-schema-0.2.3"
                   (sources."verror-1.10.0" // {
@@ -6449,7 +6787,6 @@ in
               (sources."sshpk-1.13.1" // {
                 dependencies = [
                   sources."asn1-0.2.3"
-                  sources."assert-plus-1.0.0"
                   sources."dashdash-1.14.1"
                   sources."getpass-0.1.7"
                   sources."jsbn-0.1.1"
@@ -6469,8 +6806,8 @@ in
             ];
           })
           sources."oauth-sign-0.8.2"
-          sources."performance-now-0.2.0"
-          sources."qs-6.4.0"
+          sources."performance-now-2.1.0"
+          sources."qs-6.5.1"
           sources."safe-buffer-5.1.1"
           sources."stringstream-0.0.5"
           (sources."tough-cookie-2.3.2" // {
@@ -6482,7 +6819,7 @@ in
           sources."uuid-3.1.0"
         ];
       })
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."semver-5.3.0"
       (sources."tar-2.2.1" // {
         dependencies = [
@@ -6713,14 +7050,14 @@ in
           })
           sources."array-flatten-1.1.1"
           sources."content-disposition-0.5.2"
-          sources."content-type-1.0.2"
+          sources."content-type-1.0.4"
           sources."cookie-0.3.1"
           sources."cookie-signature-1.0.6"
           sources."depd-1.1.1"
           sources."encodeurl-1.0.1"
           sources."escape-html-1.0.3"
-          sources."etag-1.8.0"
-          (sources."finalhandler-1.0.4" // {
+          sources."etag-1.8.1"
+          (sources."finalhandler-1.0.5" // {
             dependencies = [
               sources."unpipe-1.0.0"
             ];
@@ -6733,11 +7070,11 @@ in
               sources."ee-first-1.1.1"
             ];
           })
-          sources."parseurl-1.3.1"
+          sources."parseurl-1.3.2"
           sources."path-to-regexp-0.1.7"
           (sources."proxy-addr-1.1.5" // {
             dependencies = [
-              sources."forwarded-0.1.0"
+              sources."forwarded-0.1.2"
               sources."ipaddr.js-1.4.0"
             ];
           })
@@ -6807,13 +7144,13 @@ in
         ];
       })
       sources."semver-4.3.6"
-      (sources."serve-favicon-2.4.3" // {
+      (sources."serve-favicon-2.4.4" // {
         dependencies = [
-          sources."etag-1.8.0"
-          sources."fresh-0.5.0"
+          sources."etag-1.8.1"
+          sources."fresh-0.5.1"
           sources."ms-2.0.0"
-          sources."parseurl-1.3.1"
-          sources."safe-buffer-5.0.1"
+          sources."parseurl-1.3.2"
+          sources."safe-buffer-5.1.1"
         ];
       })
       (sources."strong-data-uri-1.0.4" // {
@@ -6824,7 +7161,7 @@ in
       (sources."v8-debug-1.0.1" // {
         dependencies = [
           sources."nan-2.7.0"
-          (sources."node-pre-gyp-0.6.36" // {
+          (sources."node-pre-gyp-0.6.37" // {
             dependencies = [
               (sources."mkdirp-0.5.1" // {
                 dependencies = [
@@ -6863,7 +7200,7 @@ in
                   sources."console-control-strings-1.1.0"
                   (sources."gauge-2.7.4" // {
                     dependencies = [
-                      sources."aproba-1.1.2"
+                      sources."aproba-1.2.0"
                       sources."has-unicode-2.0.1"
                       sources."object-assign-4.1.1"
                       sources."signal-exit-3.0.2"
@@ -6888,9 +7225,9 @@ in
                   sources."set-blocking-2.0.0"
                 ];
               })
-              (sources."request-2.81.0" // {
+              (sources."request-2.82.0" // {
                 dependencies = [
-                  sources."aws-sign2-0.6.0"
+                  sources."aws-sign2-0.7.0"
                   sources."aws4-1.6.0"
                   sources."caseless-0.12.0"
                   (sources."combined-stream-1.0.5" // {
@@ -6900,16 +7237,18 @@ in
                   })
                   sources."extend-3.0.1"
                   sources."forever-agent-0.6.1"
-                  (sources."form-data-2.1.4" // {
+                  (sources."form-data-2.3.1" // {
                     dependencies = [
                       sources."asynckit-0.4.0"
                     ];
                   })
-                  (sources."har-validator-4.2.1" // {
+                  (sources."har-validator-5.0.3" // {
                     dependencies = [
-                      (sources."ajv-4.11.8" // {
+                      (sources."ajv-5.2.2" // {
                         dependencies = [
                           sources."co-4.6.0"
+                          sources."fast-deep-equal-1.0.0"
+                          sources."json-schema-traverse-0.3.1"
                           (sources."json-stable-stringify-1.0.1" // {
                             dependencies = [
                               sources."jsonify-0.0.0"
@@ -6917,23 +7256,26 @@ in
                           })
                         ];
                       })
-                      sources."har-schema-1.0.5"
+                      sources."har-schema-2.0.0"
                     ];
                   })
-                  (sources."hawk-3.1.3" // {
+                  (sources."hawk-6.0.2" // {
                     dependencies = [
-                      sources."hoek-2.16.3"
-                      sources."boom-2.10.1"
-                      sources."cryptiles-2.0.5"
-                      sources."sntp-1.0.9"
+                      sources."hoek-4.2.0"
+                      sources."boom-4.3.1"
+                      (sources."cryptiles-3.1.2" // {
+                        dependencies = [
+                          sources."boom-5.2.0"
+                        ];
+                      })
+                      sources."sntp-2.0.2"
                     ];
                   })
-                  (sources."http-signature-1.1.1" // {
+                  (sources."http-signature-1.2.0" // {
                     dependencies = [
-                      sources."assert-plus-0.2.0"
+                      sources."assert-plus-1.0.0"
                       (sources."jsprim-1.4.1" // {
                         dependencies = [
-                          sources."assert-plus-1.0.0"
                           sources."extsprintf-1.3.0"
                           sources."json-schema-0.2.3"
                           (sources."verror-1.10.0" // {
@@ -6946,7 +7288,6 @@ in
                       (sources."sshpk-1.13.1" // {
                         dependencies = [
                           sources."asn1-0.2.3"
-                          sources."assert-plus-1.0.0"
                           sources."dashdash-1.14.1"
                           sources."getpass-0.1.7"
                           sources."jsbn-0.1.1"
@@ -6966,8 +7307,8 @@ in
                     ];
                   })
                   sources."oauth-sign-0.8.2"
-                  sources."performance-now-0.2.0"
-                  sources."qs-6.4.0"
+                  sources."performance-now-2.1.0"
+                  sources."qs-6.5.1"
                   sources."safe-buffer-5.1.1"
                   sources."stringstream-0.0.5"
                   (sources."tough-cookie-2.3.2" // {
@@ -6979,7 +7320,7 @@ in
                   sources."uuid-3.1.0"
                 ];
               })
-              (sources."rimraf-2.6.1" // {
+              (sources."rimraf-2.6.2" // {
                 dependencies = [
                   (sources."glob-7.1.2" // {
                     dependencies = [
@@ -7010,6 +7351,76 @@ in
                 ];
               })
               sources."semver-5.4.1"
+              (sources."tape-4.8.0" // {
+                dependencies = [
+                  sources."deep-equal-1.0.1"
+                  sources."defined-1.0.0"
+                  (sources."for-each-0.3.2" // {
+                    dependencies = [
+                      sources."is-function-1.0.1"
+                    ];
+                  })
+                  sources."function-bind-1.1.1"
+                  (sources."glob-7.1.2" // {
+                    dependencies = [
+                      sources."fs.realpath-1.0.0"
+                      (sources."inflight-1.0.6" // {
+                        dependencies = [
+                          sources."wrappy-1.0.2"
+                        ];
+                      })
+                      (sources."minimatch-3.0.4" // {
+                        dependencies = [
+                          (sources."brace-expansion-1.1.8" // {
+                            dependencies = [
+                              sources."balanced-match-1.0.0"
+                              sources."concat-map-0.0.1"
+                            ];
+                          })
+                        ];
+                      })
+                      (sources."once-1.4.0" // {
+                        dependencies = [
+                          sources."wrappy-1.0.2"
+                        ];
+                      })
+                    ];
+                  })
+                  sources."has-1.0.1"
+                  sources."inherits-2.0.3"
+                  sources."minimist-1.2.0"
+                  sources."object-inspect-1.3.0"
+                  (sources."resolve-1.4.0" // {
+                    dependencies = [
+                      sources."path-parse-1.0.5"
+                    ];
+                  })
+                  sources."resumer-0.0.0"
+                  (sources."string.prototype.trim-1.1.2" // {
+                    dependencies = [
+                      (sources."define-properties-1.1.2" // {
+                        dependencies = [
+                          sources."foreach-2.0.5"
+                          sources."object-keys-1.0.11"
+                        ];
+                      })
+                      (sources."es-abstract-1.8.2" // {
+                        dependencies = [
+                          (sources."es-to-primitive-1.1.1" // {
+                            dependencies = [
+                              sources."is-date-object-1.0.1"
+                              sources."is-symbol-1.0.1"
+                            ];
+                          })
+                          sources."is-callable-1.1.3"
+                          sources."is-regex-1.0.4"
+                        ];
+                      })
+                    ];
+                  })
+                  sources."through-2.3.8"
+                ];
+              })
               (sources."tar-2.2.1" // {
                 dependencies = [
                   sources."block-stream-0.0.9"
@@ -7070,7 +7481,7 @@ in
       (sources."v8-profiler-5.7.0" // {
         dependencies = [
           sources."nan-2.7.0"
-          (sources."node-pre-gyp-0.6.36" // {
+          (sources."node-pre-gyp-0.6.37" // {
             dependencies = [
               (sources."mkdirp-0.5.1" // {
                 dependencies = [
@@ -7109,7 +7520,7 @@ in
                   sources."console-control-strings-1.1.0"
                   (sources."gauge-2.7.4" // {
                     dependencies = [
-                      sources."aproba-1.1.2"
+                      sources."aproba-1.2.0"
                       sources."has-unicode-2.0.1"
                       sources."object-assign-4.1.1"
                       sources."signal-exit-3.0.2"
@@ -7134,9 +7545,9 @@ in
                   sources."set-blocking-2.0.0"
                 ];
               })
-              (sources."request-2.81.0" // {
+              (sources."request-2.82.0" // {
                 dependencies = [
-                  sources."aws-sign2-0.6.0"
+                  sources."aws-sign2-0.7.0"
                   sources."aws4-1.6.0"
                   sources."caseless-0.12.0"
                   (sources."combined-stream-1.0.5" // {
@@ -7146,16 +7557,18 @@ in
                   })
                   sources."extend-3.0.1"
                   sources."forever-agent-0.6.1"
-                  (sources."form-data-2.1.4" // {
+                  (sources."form-data-2.3.1" // {
                     dependencies = [
                       sources."asynckit-0.4.0"
                     ];
                   })
-                  (sources."har-validator-4.2.1" // {
+                  (sources."har-validator-5.0.3" // {
                     dependencies = [
-                      (sources."ajv-4.11.8" // {
+                      (sources."ajv-5.2.2" // {
                         dependencies = [
                           sources."co-4.6.0"
+                          sources."fast-deep-equal-1.0.0"
+                          sources."json-schema-traverse-0.3.1"
                           (sources."json-stable-stringify-1.0.1" // {
                             dependencies = [
                               sources."jsonify-0.0.0"
@@ -7163,23 +7576,26 @@ in
                           })
                         ];
                       })
-                      sources."har-schema-1.0.5"
+                      sources."har-schema-2.0.0"
                     ];
                   })
-                  (sources."hawk-3.1.3" // {
+                  (sources."hawk-6.0.2" // {
                     dependencies = [
-                      sources."hoek-2.16.3"
-                      sources."boom-2.10.1"
-                      sources."cryptiles-2.0.5"
-                      sources."sntp-1.0.9"
+                      sources."hoek-4.2.0"
+                      sources."boom-4.3.1"
+                      (sources."cryptiles-3.1.2" // {
+                        dependencies = [
+                          sources."boom-5.2.0"
+                        ];
+                      })
+                      sources."sntp-2.0.2"
                     ];
                   })
-                  (sources."http-signature-1.1.1" // {
+                  (sources."http-signature-1.2.0" // {
                     dependencies = [
-                      sources."assert-plus-0.2.0"
+                      sources."assert-plus-1.0.0"
                       (sources."jsprim-1.4.1" // {
                         dependencies = [
-                          sources."assert-plus-1.0.0"
                           sources."extsprintf-1.3.0"
                           sources."json-schema-0.2.3"
                           (sources."verror-1.10.0" // {
@@ -7192,7 +7608,6 @@ in
                       (sources."sshpk-1.13.1" // {
                         dependencies = [
                           sources."asn1-0.2.3"
-                          sources."assert-plus-1.0.0"
                           sources."dashdash-1.14.1"
                           sources."getpass-0.1.7"
                           sources."jsbn-0.1.1"
@@ -7212,8 +7627,8 @@ in
                     ];
                   })
                   sources."oauth-sign-0.8.2"
-                  sources."performance-now-0.2.0"
-                  sources."qs-6.4.0"
+                  sources."performance-now-2.1.0"
+                  sources."qs-6.5.1"
                   sources."safe-buffer-5.1.1"
                   sources."stringstream-0.0.5"
                   (sources."tough-cookie-2.3.2" // {
@@ -7225,7 +7640,7 @@ in
                   sources."uuid-3.1.0"
                 ];
               })
-              (sources."rimraf-2.6.1" // {
+              (sources."rimraf-2.6.2" // {
                 dependencies = [
                   (sources."glob-7.1.2" // {
                     dependencies = [
@@ -7256,6 +7671,76 @@ in
                 ];
               })
               sources."semver-5.4.1"
+              (sources."tape-4.8.0" // {
+                dependencies = [
+                  sources."deep-equal-1.0.1"
+                  sources."defined-1.0.0"
+                  (sources."for-each-0.3.2" // {
+                    dependencies = [
+                      sources."is-function-1.0.1"
+                    ];
+                  })
+                  sources."function-bind-1.1.1"
+                  (sources."glob-7.1.2" // {
+                    dependencies = [
+                      sources."fs.realpath-1.0.0"
+                      (sources."inflight-1.0.6" // {
+                        dependencies = [
+                          sources."wrappy-1.0.2"
+                        ];
+                      })
+                      (sources."minimatch-3.0.4" // {
+                        dependencies = [
+                          (sources."brace-expansion-1.1.8" // {
+                            dependencies = [
+                              sources."balanced-match-1.0.0"
+                              sources."concat-map-0.0.1"
+                            ];
+                          })
+                        ];
+                      })
+                      (sources."once-1.4.0" // {
+                        dependencies = [
+                          sources."wrappy-1.0.2"
+                        ];
+                      })
+                    ];
+                  })
+                  sources."has-1.0.1"
+                  sources."inherits-2.0.3"
+                  sources."minimist-1.2.0"
+                  sources."object-inspect-1.3.0"
+                  (sources."resolve-1.4.0" // {
+                    dependencies = [
+                      sources."path-parse-1.0.5"
+                    ];
+                  })
+                  sources."resumer-0.0.0"
+                  (sources."string.prototype.trim-1.1.2" // {
+                    dependencies = [
+                      (sources."define-properties-1.1.2" // {
+                        dependencies = [
+                          sources."foreach-2.0.5"
+                          sources."object-keys-1.0.11"
+                        ];
+                      })
+                      (sources."es-abstract-1.8.2" // {
+                        dependencies = [
+                          (sources."es-to-primitive-1.1.1" // {
+                            dependencies = [
+                              sources."is-date-object-1.0.1"
+                              sources."is-symbol-1.0.1"
+                            ];
+                          })
+                          sources."is-callable-1.1.3"
+                          sources."is-regex-1.0.4"
+                        ];
+                      })
+                    ];
+                  })
+                  sources."through-2.3.8"
+                ];
+              })
               (sources."tar-2.2.1" // {
                 dependencies = [
                   sources."block-stream-0.0.9"
@@ -7377,10 +7862,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.6.36";
+    version = "0.6.37";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz";
-      sha1 = "db604112cb74e0d477554e9b505b17abddfab786";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
+      sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
     };
     dependencies = [
       (sources."mkdirp-0.5.1" // {
@@ -7420,7 +7905,7 @@ in
           sources."console-control-strings-1.1.0"
           (sources."gauge-2.7.4" // {
             dependencies = [
-              sources."aproba-1.1.2"
+              sources."aproba-1.2.0"
               sources."has-unicode-2.0.1"
               sources."object-assign-4.1.1"
               sources."signal-exit-3.0.2"
@@ -7453,9 +7938,9 @@ in
           sources."strip-json-comments-2.0.1"
         ];
       })
-      (sources."request-2.81.0" // {
+      (sources."request-2.82.0" // {
         dependencies = [
-          sources."aws-sign2-0.6.0"
+          sources."aws-sign2-0.7.0"
           sources."aws4-1.6.0"
           sources."caseless-0.12.0"
           (sources."combined-stream-1.0.5" // {
@@ -7465,16 +7950,18 @@ in
           })
           sources."extend-3.0.1"
           sources."forever-agent-0.6.1"
-          (sources."form-data-2.1.4" // {
+          (sources."form-data-2.3.1" // {
             dependencies = [
               sources."asynckit-0.4.0"
             ];
           })
-          (sources."har-validator-4.2.1" // {
+          (sources."har-validator-5.0.3" // {
             dependencies = [
-              (sources."ajv-4.11.8" // {
+              (sources."ajv-5.2.2" // {
                 dependencies = [
                   sources."co-4.6.0"
+                  sources."fast-deep-equal-1.0.0"
+                  sources."json-schema-traverse-0.3.1"
                   (sources."json-stable-stringify-1.0.1" // {
                     dependencies = [
                       sources."jsonify-0.0.0"
@@ -7482,23 +7969,26 @@ in
                   })
                 ];
               })
-              sources."har-schema-1.0.5"
+              sources."har-schema-2.0.0"
             ];
           })
-          (sources."hawk-3.1.3" // {
+          (sources."hawk-6.0.2" // {
             dependencies = [
-              sources."hoek-2.16.3"
-              sources."boom-2.10.1"
-              sources."cryptiles-2.0.5"
-              sources."sntp-1.0.9"
+              sources."hoek-4.2.0"
+              sources."boom-4.3.1"
+              (sources."cryptiles-3.1.2" // {
+                dependencies = [
+                  sources."boom-5.2.0"
+                ];
+              })
+              sources."sntp-2.0.2"
             ];
           })
-          (sources."http-signature-1.1.1" // {
+          (sources."http-signature-1.2.0" // {
             dependencies = [
-              sources."assert-plus-0.2.0"
+              sources."assert-plus-1.0.0"
               (sources."jsprim-1.4.1" // {
                 dependencies = [
-                  sources."assert-plus-1.0.0"
                   sources."extsprintf-1.3.0"
                   sources."json-schema-0.2.3"
                   (sources."verror-1.10.0" // {
@@ -7511,7 +8001,6 @@ in
               (sources."sshpk-1.13.1" // {
                 dependencies = [
                   sources."asn1-0.2.3"
-                  sources."assert-plus-1.0.0"
                   sources."dashdash-1.14.1"
                   sources."getpass-0.1.7"
                   sources."jsbn-0.1.1"
@@ -7531,8 +8020,8 @@ in
             ];
           })
           sources."oauth-sign-0.8.2"
-          sources."performance-now-0.2.0"
-          sources."qs-6.4.0"
+          sources."performance-now-2.1.0"
+          sources."qs-6.5.1"
           sources."safe-buffer-5.1.1"
           sources."stringstream-0.0.5"
           (sources."tough-cookie-2.3.2" // {
@@ -7544,7 +8033,7 @@ in
           sources."uuid-3.1.0"
         ];
       })
-      (sources."rimraf-2.6.1" // {
+      (sources."rimraf-2.6.2" // {
         dependencies = [
           (sources."glob-7.1.2" // {
             dependencies = [
@@ -7576,6 +8065,77 @@ in
         ];
       })
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."deep-equal-1.0.1"
+          sources."defined-1.0.0"
+          (sources."for-each-0.3.2" // {
+            dependencies = [
+              sources."is-function-1.0.1"
+            ];
+          })
+          sources."function-bind-1.1.1"
+          (sources."glob-7.1.2" // {
+            dependencies = [
+              sources."fs.realpath-1.0.0"
+              (sources."inflight-1.0.6" // {
+                dependencies = [
+                  sources."wrappy-1.0.2"
+                ];
+              })
+              (sources."minimatch-3.0.4" // {
+                dependencies = [
+                  (sources."brace-expansion-1.1.8" // {
+                    dependencies = [
+                      sources."balanced-match-1.0.0"
+                      sources."concat-map-0.0.1"
+                    ];
+                  })
+                ];
+              })
+              (sources."once-1.4.0" // {
+                dependencies = [
+                  sources."wrappy-1.0.2"
+                ];
+              })
+              sources."path-is-absolute-1.0.1"
+            ];
+          })
+          sources."has-1.0.1"
+          sources."inherits-2.0.3"
+          sources."minimist-1.2.0"
+          sources."object-inspect-1.3.0"
+          (sources."resolve-1.4.0" // {
+            dependencies = [
+              sources."path-parse-1.0.5"
+            ];
+          })
+          sources."resumer-0.0.0"
+          (sources."string.prototype.trim-1.1.2" // {
+            dependencies = [
+              (sources."define-properties-1.1.2" // {
+                dependencies = [
+                  sources."foreach-2.0.5"
+                  sources."object-keys-1.0.11"
+                ];
+              })
+              (sources."es-abstract-1.8.2" // {
+                dependencies = [
+                  (sources."es-to-primitive-1.1.1" // {
+                    dependencies = [
+                      sources."is-date-object-1.0.1"
+                      sources."is-symbol-1.0.1"
+                    ];
+                  })
+                  sources."is-callable-1.1.3"
+                  sources."is-regex-1.0.4"
+                ];
+              })
+            ];
+          })
+          sources."through-2.3.8"
+        ];
+      })
       (sources."tar-2.2.1" // {
         dependencies = [
           sources."block-stream-0.0.9"
@@ -7646,10 +8206,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "5.4.1";
+    version = "5.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-5.4.1.tgz";
-      sha512 = "0vb3ad2wgv4y52jwbz8xpzg36hzimbbnlad594kblfq2mjfnaw9v4zzgd19ghan4a622s4zcrap51l2fww79lbl6n2qfv26allyg26z";
+      url = "https://registry.npmjs.org/npm/-/npm-5.4.2.tgz";
+      sha512 = "28m9zjiynb24b8bxikdaya27j87am88x1y8l70pvmh9fk3pfq0y6xvqjmpy72ld4csnz9s1hik1ff8a19sx6pyi8f5ar27b044cp8hp";
     };
     dependencies = [
       (sources."JSONStream-1.3.1" // {
@@ -7955,7 +8515,7 @@ in
       sources."npm-install-checks-3.0.0"
       sources."npm-lifecycle-1.0.3"
       sources."npm-package-arg-5.1.2"
-      (sources."npm-packlist-1.1.8" // {
+      (sources."npm-packlist-1.1.9" // {
         dependencies = [
           (sources."ignore-walk-3.0.0" // {
             dependencies = [
@@ -8079,13 +8639,13 @@ in
                 dependencies = [
                   (sources."encoding-0.1.12" // {
                     dependencies = [
-                      sources."iconv-lite-0.4.18"
+                      sources."iconv-lite-0.4.19"
                     ];
                   })
                   sources."json-parse-better-errors-1.0.1"
                 ];
               })
-              (sources."socks-proxy-agent-3.0.0" // {
+              (sources."socks-proxy-agent-3.0.1" // {
                 dependencies = [
                   (sources."agent-base-4.1.1" // {
                     dependencies = [
@@ -8248,7 +8808,7 @@ in
         ];
       })
       sources."retry-0.10.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."safe-buffer-5.1.1"
       sources."semver-5.4.1"
       sources."sha-2.0.1"
@@ -8487,11 +9047,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      (sources."write-file-atomic-2.3.0" // {
-        dependencies = [
-          sources."signal-exit-3.0.2"
-        ];
-      })
+      sources."write-file-atomic-2.1.0"
       sources."debuglog-1.0.1"
       sources."imurmurhash-0.1.4"
       sources."lodash._baseindexof-3.1.0"
diff --git a/pkgs/development/node-packages/node-packages-v6.json b/pkgs/development/node-packages/node-packages-v6.json
index 1ba3e0de1ddf..b9373b82edf9 100644
--- a/pkgs/development/node-packages/node-packages-v6.json
+++ b/pkgs/development/node-packages/node-packages-v6.json
@@ -65,6 +65,7 @@
 , "peerflix-server"
 , "phantomjs"
 , "prettier"
+, "pulp"
 , "react-tools"
 , "s3http"
 , "semver"
diff --git a/pkgs/development/node-packages/node-packages-v6.nix b/pkgs/development/node-packages/node-packages-v6.nix
index 1d2d629e01c5..1bdde35c2269 100644
--- a/pkgs/development/node-packages/node-packages-v6.nix
+++ b/pkgs/development/node-packages/node-packages-v6.nix
@@ -4,6 +4,69 @@
 
 let
   sources = {
+    "async-2.5.0" = {
+      name = "async";
+      packageName = "async";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-2.5.0.tgz";
+        sha512 = "1ijrwmifg76a8wwhhfqxg23kd0rsjhzklwvj2czvqxs2k25ii6p3y6s3vhbcc5hnr87b0gfc4nb54b8bph2hn9c6z1f6nldjw04ksbv";
+      };
+    };
+    "babel-core-6.26.0" = {
+      name = "babel-core";
+      packageName = "babel-core";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz";
+        sha1 = "af32f78b31a6fcef119c87b0fd8d9753f03a0bb8";
+      };
+    };
+    "babel-generator-6.26.0" = {
+      name = "babel-generator";
+      packageName = "babel-generator";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz";
+        sha1 = "ac1ae20070b79f6e3ca1d3269613053774f20dc5";
+      };
+    };
+    "babel-traverse-6.26.0" = {
+      name = "babel-traverse";
+      packageName = "babel-traverse";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz";
+        sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
+      };
+    };
+    "babel-types-6.26.0" = {
+      name = "babel-types";
+      packageName = "babel-types";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz";
+        sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
+      };
+    };
+    "babylon-6.18.0" = {
+      name = "babylon";
+      packageName = "babylon";
+      version = "6.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
+        sha512 = "1qk460vyxfs08g8586jdc02wqzyy2y06596qcn1na9bz7yxra6vgh6177qf345xai0virpaz56bkpgmfcrd8yx5l2vjkn49y66h9xdb";
+      };
+    };
+    "chmodr-1.0.2" = {
+      name = "chmodr";
+      packageName = "chmodr";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chmodr/-/chmodr-1.0.2.tgz";
+        sha1 = "04662b932d0f02ec66deaa2b0ea42811968e3eb9";
+      };
+    };
     "colors-0.6.0-1" = {
       name = "colors";
       packageName = "colors";
@@ -13,24 +76,6 @@ let
         sha1 = "6dbb68ceb8bc60f2b313dcc5ce1599f06d19e67a";
       };
     };
-    "ejs-2.3.4" = {
-      name = "ejs";
-      packageName = "ejs";
-      version = "2.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ejs/-/ejs-2.3.4.tgz";
-        sha1 = "3c76caa09664b3583b0037af9dc136e79ec68b98";
-      };
-    };
-    "pkginfo-0.2.2" = {
-      name = "pkginfo";
-      packageName = "pkginfo";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.2.tgz";
-        sha1 = "97e1100dbbb275ff6fab583a256a7eea85120c8e";
-      };
-    };
     "commander-0.6.1" = {
       name = "commander";
       packageName = "commander";
@@ -40,49 +85,31 @@ let
         sha1 = "fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06";
       };
     };
-    "wrench-1.3.9" = {
-      name = "wrench";
-      packageName = "wrench";
-      version = "1.3.9";
+    "deasync-0.1.10" = {
+      name = "deasync";
+      packageName = "deasync";
+      version = "0.1.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wrench/-/wrench-1.3.9.tgz";
-        sha1 = "6f13ec35145317eb292ca5f6531391b244111411";
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.10.tgz";
+        sha1 = "4e4a6836fbe0477bd5f908308bd2a96557d5d7fe";
       };
     };
-    "xmldom-0.1.19" = {
-      name = "xmldom";
-      packageName = "xmldom";
-      version = "0.1.19";
+    "ejs-2.3.4" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz";
-        sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
+        url = "https://registry.npmjs.org/ejs/-/ejs-2.3.4.tgz";
+        sha1 = "3c76caa09664b3583b0037af9dc136e79ec68b98";
       };
     };
-    "jsonlint-1.5.1" = {
-      name = "jsonlint";
-      packageName = "jsonlint";
-      version = "1.5.1";
+    "fs-extra-3.0.1" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonlint/-/jsonlint-1.5.1.tgz";
-        sha1 = "3cf436dcc9f3477ef3d7fa55a5bdf6d893f1c6c6";
-      };
-    };
-    "uglify-js-2.6.1" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.1.tgz";
-        sha1 = "edbbe1888ba3525ded3a7bf836b30b3405d3161b";
-      };
-    };
-    "resolve-1.4.0" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz";
-        sha512 = "3aygixvrv5l6jm5n2dfgzyx4z86l3q2v7c2rln6znai3877q0r5ajlxgdaj4qm9h70yp7grmg9kmvr77ww2zckc7bm22zzfldafqvk9";
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz";
+        sha1 = "3794f378c58b342ea7dbbb23095109c4b3b62291";
       };
     };
     "global-paths-0.1.2" = {
@@ -94,22 +121,13 @@ let
         sha1 = "8869ecb2a8c80995be8a459f27ae5db7a0b03299";
       };
     };
-    "source-map-0.1.9" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.1.9";
+    "jsonlint-1.5.1" = {
+      name = "jsonlint";
+      packageName = "jsonlint";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.1.9.tgz";
-        sha1 = "250224e4e9ef7e91f4cad76cae714b90f6218599";
-      };
-    };
-    "xml2tss-0.0.5" = {
-      name = "xml2tss";
-      packageName = "xml2tss";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xml2tss/-/xml2tss-0.0.5.tgz";
-        sha1 = "d76a310d6b8a7ba9e4825bb3d43f5427e9fe8f6e";
+        url = "https://registry.npmjs.org/jsonlint/-/jsonlint-1.5.1.tgz";
+        sha1 = "3cf436dcc9f3477ef3d7fa55a5bdf6d893f1c6c6";
       };
     };
     "moment-2.17.1" = {
@@ -130,76 +148,184 @@ let
         sha1 = "3269bddf81c54535f408abc784c32b0d2bd55f6f";
       };
     };
-    "nomnom-1.8.1" = {
-      name = "nomnom";
-      packageName = "nomnom";
-      version = "1.8.1";
+    "pkginfo-0.2.2" = {
+      name = "pkginfo";
+      packageName = "pkginfo";
+      version = "0.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz";
-        sha1 = "2151f722472ba79e50a76fc125bb8c8f2e4dc2a7";
+        url = "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.2.tgz";
+        sha1 = "97e1100dbbb275ff6fab583a256a7eea85120c8e";
       };
     };
-    "JSV-4.0.2" = {
-      name = "JSV";
-      packageName = "JSV";
-      version = "4.0.2";
+    "resolve-1.4.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz";
-        sha1 = "d077f6825571f82132f9dffaed587b4029feff57";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz";
+        sha512 = "3aygixvrv5l6jm5n2dfgzyx4z86l3q2v7c2rln6znai3877q0r5ajlxgdaj4qm9h70yp7grmg9kmvr77ww2zckc7bm22zzfldafqvk9";
       };
     };
-    "underscore-1.6.0" = {
-      name = "underscore";
-      packageName = "underscore";
-      version = "1.6.0";
+    "source-map-0.1.9" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
-        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.1.9.tgz";
+        sha1 = "250224e4e9ef7e91f4cad76cae714b90f6218599";
       };
     };
-    "chalk-0.4.0" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "0.4.0";
+    "walk-sync-0.3.2" = {
+      name = "walk-sync";
+      packageName = "walk-sync";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz";
-        sha1 = "5199a3ddcd0c1efe23bc08c1b027b06176e0c64f";
+        url = "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.2.tgz";
+        sha512 = "2cycfx3lc52h2684s54pd81wz42f9lbggff4yva194nzr5x8nxp4fl437scd2dayyvxk68v8jmk1k8m364zdh5wmaff1a2bm9b7kh0l";
       };
     };
-    "has-color-0.1.7" = {
-      name = "has-color";
-      packageName = "has-color";
+    "xml2tss-0.0.5" = {
+      name = "xml2tss";
+      packageName = "xml2tss";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml2tss/-/xml2tss-0.0.5.tgz";
+        sha1 = "d76a310d6b8a7ba9e4825bb3d43f5427e9fe8f6e";
+      };
+    };
+    "xmldom-0.1.19" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.1.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz";
+        sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
+      };
+    };
+    "lodash-4.17.4" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz";
+        sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae";
+      };
+    };
+    "babel-code-frame-6.26.0" = {
+      name = "babel-code-frame";
+      packageName = "babel-code-frame";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
+        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
+      };
+    };
+    "babel-helpers-6.24.1" = {
+      name = "babel-helpers";
+      packageName = "babel-helpers";
+      version = "6.24.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz";
+        sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
+      };
+    };
+    "babel-messages-6.23.0" = {
+      name = "babel-messages";
+      packageName = "babel-messages";
+      version = "6.23.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz";
+        sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
+      };
+    };
+    "babel-register-6.26.0" = {
+      name = "babel-register";
+      packageName = "babel-register";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz";
+        sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
+      };
+    };
+    "babel-runtime-6.26.0" = {
+      name = "babel-runtime";
+      packageName = "babel-runtime";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
+        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+      };
+    };
+    "babel-template-6.26.0" = {
+      name = "babel-template";
+      packageName = "babel-template";
+      version = "6.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz";
+        sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
+      };
+    };
+    "convert-source-map-1.5.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz";
+        sha1 = "9acd70851c6d5dfdd93d9282e5edf94a03ff46b5";
+      };
+    };
+    "debug-2.6.8" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
+        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
+      };
+    };
+    "json5-0.5.1" = {
+      name = "json5";
+      packageName = "json5";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
+        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "private-0.1.7" = {
+      name = "private";
+      packageName = "private";
       version = "0.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz";
-        sha1 = "67144a5260c34fc3cca677d041daf52fe7b78b2f";
+        url = "https://registry.npmjs.org/private/-/private-0.1.7.tgz";
+        sha1 = "68ce5e8a1ef0a23bb570cc28537b5332aba63ef1";
       };
     };
-    "ansi-styles-1.0.0" = {
-      name = "ansi-styles";
-      packageName = "ansi-styles";
+    "slash-1.0.0" = {
+      name = "slash";
+      packageName = "slash";
       version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz";
-        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
-      };
-    };
-    "strip-ansi-0.1.1" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
-        sha1 = "39e8a98d044d150660abe4a6808acf70bb7bc991";
-      };
-    };
-    "async-0.2.10" = {
-      name = "async";
-      packageName = "async";
-      version = "0.2.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+        url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz";
+        sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
       };
     };
     "source-map-0.5.7" = {
@@ -211,148 +337,328 @@ let
         sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
       };
     };
-    "uglify-to-browserify-1.0.2" = {
-      name = "uglify-to-browserify";
-      packageName = "uglify-to-browserify";
-      version = "1.0.2";
+    "chalk-1.1.3" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
       };
     };
-    "yargs-3.10.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "3.10.0";
+    "esutils-2.0.2" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
+        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
       };
     };
-    "camelcase-1.2.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "1.2.1";
+    "js-tokens-3.0.2" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
+        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
       };
     };
-    "cliui-2.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "2.1.0";
+    "ansi-styles-2.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
       };
     };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    };
-    "window-size-0.1.0" = {
-      name = "window-size";
-      packageName = "window-size";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    };
-    "center-align-0.1.3" = {
-      name = "center-align";
-      packageName = "center-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-      };
-    };
-    "right-align-0.1.3" = {
-      name = "right-align";
-      packageName = "right-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    };
-    "wordwrap-0.0.2" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    };
-    "align-text-0.1.4" = {
-      name = "align-text";
-      packageName = "align-text";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-      };
-    };
-    "lazy-cache-1.0.4" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    };
-    "kind-of-3.2.2" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    };
-    "longest-1.0.1" = {
-      name = "longest";
-      packageName = "longest";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    };
-    "repeat-string-1.6.1" = {
-      name = "repeat-string";
-      packageName = "repeat-string";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    };
-    "is-buffer-1.1.5" = {
-      name = "is-buffer";
-      packageName = "is-buffer";
-      version = "1.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz";
-        sha1 = "1f3b26ef613b214b88cbca23cc6c01d87961eecc";
-      };
-    };
-    "path-parse-1.0.5" = {
-      name = "path-parse";
-      packageName = "path-parse";
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
       version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz";
-        sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "has-ansi-2.0.0" = {
+      name = "has-ansi";
+      packageName = "has-ansi";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "supports-color-2.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "core-js-2.5.1" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz";
+        sha1 = "ae6874dc66937789b80754ff5428df66819ca50b";
+      };
+    };
+    "home-or-tmp-2.0.0" = {
+      name = "home-or-tmp";
+      packageName = "home-or-tmp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
+        sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
+      };
+    };
+    "mkdirp-0.5.1" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    };
+    "source-map-support-0.4.18" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.4.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz";
+        sha512 = "1n37icn5xpsxs2x8szv6ifajjf066fskm04xn6agr79sid57n0yws4n0cis7m9q5hr0hxzr8dv2fnmmpgb4mvz8kiyv2g5ikbyb9g5n";
+      };
+    };
+    "os-homedir-1.0.2" = {
+      name = "os-homedir";
+      packageName = "os-homedir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
+        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
+      };
+    };
+    "os-tmpdir-1.0.2" = {
+      name = "os-tmpdir";
+      packageName = "os-tmpdir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    };
+    "minimist-0.0.8" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    };
+    "regenerator-runtime-0.11.0" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz";
+        sha512 = "3a1pn2aankj443h5v8png8dbgrlyb7fcdn66vjglxwqvdpivpq959qsl2n44i6zwf1k5y6y23xwhim0x077yy275dyr6vwiny83987x";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "brace-expansion-1.1.8" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz";
+        sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "detect-indent-4.0.0" = {
+      name = "detect-indent";
+      packageName = "detect-indent";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz";
+        sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
+      };
+    };
+    "jsesc-1.3.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz";
+        sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
+      };
+    };
+    "trim-right-1.0.1" = {
+      name = "trim-right";
+      packageName = "trim-right";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz";
+        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
+      };
+    };
+    "repeating-2.0.1" = {
+      name = "repeating";
+      packageName = "repeating";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
+        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
+      };
+    };
+    "is-finite-1.0.2" = {
+      name = "is-finite";
+      packageName = "is-finite";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz";
+        sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "globals-9.18.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "9.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
+        sha512 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
+      };
+    };
+    "invariant-2.2.2" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz";
+        sha1 = "9e1f56ac0acdb6bf303306f338be3b204ae60360";
+      };
+    };
+    "loose-envify-1.3.1" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz";
+        sha1 = "d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848";
+      };
+    };
+    "to-fast-properties-1.0.3" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
+        sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+      };
+    };
+    "bindings-1.2.1" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
+        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
+      };
+    };
+    "nan-2.7.0" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz";
+        sha1 = "d95bf721ec877e08db276ed3fc6eb78f9083ad46";
+      };
+    };
+    "graceful-fs-4.1.11" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz";
+        sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
+      };
+    };
+    "jsonfile-3.0.1" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz";
+        sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
+      };
+    };
+    "universalify-0.1.1" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz";
+        sha1 = "fa71badd4437af4c148841e3b3b165f9e9e590b7";
       };
     };
     "array-unique-0.2.1" = {
@@ -445,6 +751,87 @@ let
         sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
       };
     };
+    "nomnom-1.8.1" = {
+      name = "nomnom";
+      packageName = "nomnom";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz";
+        sha1 = "2151f722472ba79e50a76fc125bb8c8f2e4dc2a7";
+      };
+    };
+    "JSV-4.0.2" = {
+      name = "JSV";
+      packageName = "JSV";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz";
+        sha1 = "d077f6825571f82132f9dffaed587b4029feff57";
+      };
+    };
+    "underscore-1.6.0" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
+        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+      };
+    };
+    "chalk-0.4.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz";
+        sha1 = "5199a3ddcd0c1efe23bc08c1b027b06176e0c64f";
+      };
+    };
+    "has-color-0.1.7" = {
+      name = "has-color";
+      packageName = "has-color";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz";
+        sha1 = "67144a5260c34fc3cca677d041daf52fe7b78b2f";
+      };
+    };
+    "ansi-styles-1.0.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz";
+        sha1 = "cb102df1c56f5123eab8b67cd7b98027a0279178";
+      };
+    };
+    "strip-ansi-0.1.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
+        sha1 = "39e8a98d044d150660abe4a6808acf70bb7bc991";
+      };
+    };
+    "is-0.3.0" = {
+      name = "is";
+      packageName = "is";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is/-/is-0.3.0.tgz";
+        sha1 = "a8f71dfc8a6e28371627f26c929098c6f4d5d5d7";
+      };
+    };
+    "path-parse-1.0.5" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz";
+        sha1 = "3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1";
+      };
+    };
     "amdefine-1.0.1" = {
       name = "amdefine";
       packageName = "amdefine";
@@ -454,6 +841,24 @@ let
         sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
       };
     };
+    "ensure-posix-path-1.0.2" = {
+      name = "ensure-posix-path";
+      packageName = "ensure-posix-path";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz";
+        sha1 = "a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2";
+      };
+    };
+    "matcher-collection-1.0.5" = {
+      name = "matcher-collection";
+      packageName = "matcher-collection";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.5.tgz";
+        sha512 = "1hfvbsx85xqrw6g0k7rkqwngl8b2nwj92ax10ilx3b4lma2mcp8q6zpvam1sffgqsssa9d13cj7prrzg5c00mf0c8q92w59m36ach4x";
+      };
+    };
     "xml2js-0.2.8" = {
       name = "xml2js";
       packageName = "xml2js";
@@ -472,15 +877,6 @@ let
         sha1 = "d472db228eb331c2506b0e8c15524adb939d12c1";
       };
     };
-    "is-0.3.0" = {
-      name = "is";
-      packageName = "is";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is/-/is-0.3.0.tgz";
-        sha1 = "a8f71dfc8a6e28371627f26c929098c6f4d5d5d7";
-      };
-    };
     "adal-node-0.1.21" = {
       name = "adal-node";
       packageName = "adal-node";
@@ -1012,13 +1408,13 @@ let
         sha1 = "be191c4fbdff2e208bda440933436af80e7425b9";
       };
     };
-    "ms-rest-azure-2.3.0" = {
+    "ms-rest-azure-2.3.1" = {
       name = "ms-rest-azure";
       packageName = "ms-rest-azure";
-      version = "2.3.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.3.0.tgz";
-        sha1 = "526b4c39a3c02e50913b92787a9e95ce833b37f1";
+        url = "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.3.1.tgz";
+        sha1 = "25f2c6bdc721ec41187606b8d71a7b6090dc708e";
       };
     };
     "node-forge-0.6.23" = {
@@ -1183,6 +1579,15 @@ let
         sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
       };
     };
+    "wordwrap-0.0.2" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
+        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+      };
+    };
     "xml2js-0.1.14" = {
       name = "xml2js";
       packageName = "xml2js";
@@ -1615,13 +2020,13 @@ let
         sha1 = "0e3c4f24a3f052b231b12d5049085a0a099be782";
       };
     };
-    "@types/node-8.0.27" = {
+    "@types/node-8.0.28" = {
       name = "@types/node";
       packageName = "@types/node";
-      version = "8.0.27";
+      version = "8.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-8.0.27.tgz";
-        sha512 = "26y8ngdixrwyzyas9bbb4cq9gpb2mawnp4j94vi035hzajrskcp48nm90pcx1ma0gv5x8qkibskyjqpvmsn62x8qd7djzks63jrs8rj";
+        url = "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz";
+        sha512 = "2wlavwh38262crr2wm0zhzgp1ibkd2wy2hpmby0xr218k36vls3gdbya0848wx6r51hs1mbly8k8f3aby4xsarp9g5fvp1gf4an9shy";
       };
     };
     "@types/request-2.0.3" = {
@@ -1642,6 +2047,15 @@ let
         sha512 = "2k89p1xsllidfwgic0qklzdp1lpvyzw22z7xlphii062jm6rh58xajz11r4lby49kghc5zrmmqrsi1mkmzm6ix8x3rhcrj1rnixhykx";
       };
     };
+    "is-buffer-1.1.5" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz";
+        sha1 = "1f3b26ef613b214b88cbca23cc6c01d87961eecc";
+      };
+    };
     "is-stream-1.1.0" = {
       name = "is-stream";
       packageName = "is-stream";
@@ -1714,6 +2128,15 @@ let
         sha1 = "64b6abf4cd01adcaefd5009393b1d8e8bec19db0";
       };
     };
+    "async-0.2.10" = {
+      name = "async";
+      packageName = "async";
+      version = "0.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.2.10.tgz";
+        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
+      };
+    };
     "deep-equal-1.0.1" = {
       name = "deep-equal";
       packageName = "deep-equal";
@@ -1732,15 +2155,6 @@ let
         sha1 = "1d2b854158ec8169113c6cb7f6b6801e99e211d5";
       };
     };
-    "mkdirp-0.5.1" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    };
     "ncp-0.4.2" = {
       name = "ncp";
       packageName = "ncp";
@@ -1750,22 +2164,13 @@ let
         sha1 = "abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574";
       };
     };
-    "rimraf-2.6.1" = {
+    "rimraf-2.6.2" = {
       name = "rimraf";
       packageName = "rimraf";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz";
-        sha1 = "c2338ec643df7a1b7fe5c54fa86f57428a55f33d";
-      };
-    };
-    "minimist-0.0.8" = {
-      name = "minimist";
-      packageName = "minimist";
-      version = "0.0.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz";
+        sha512 = "3kmrqh8xli7rzfm8wc6j9lp0c6vml172iv3z088an9xlwl1xvkvh3fn92za66ms4c9yww80qa5kan31k1z1ypqvkchmh1mznb09xdwn";
       };
     };
     "glob-7.1.2" = {
@@ -1795,15 +2200,6 @@ let
         sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
       };
     };
-    "minimatch-3.0.4" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "3.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
-      };
-    };
     "once-1.4.0" = {
       name = "once";
       packageName = "once";
@@ -1813,15 +2209,6 @@ let
         sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
       };
     };
-    "path-is-absolute-1.0.1" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    };
     "wrappy-1.0.2" = {
       name = "wrappy";
       packageName = "wrappy";
@@ -1831,33 +2218,6 @@ let
         sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
       };
     };
-    "brace-expansion-1.1.8" = {
-      name = "brace-expansion";
-      packageName = "brace-expansion";
-      version = "1.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz";
-        sha1 = "c07b211c7c952ec1f8efd51a77ef0d1d3990a292";
-      };
-    };
-    "balanced-match-1.0.0" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
-      };
-    };
-    "concat-map-0.0.1" = {
-      name = "concat-map";
-      packageName = "concat-map";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    };
     "colors-0.6.2" = {
       name = "colors";
       packageName = "colors";
@@ -2083,33 +2443,6 @@ let
         sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
       };
     };
-    "async-2.5.0" = {
-      name = "async";
-      packageName = "async";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.5.0.tgz";
-        sha512 = "1ijrwmifg76a8wwhhfqxg23kd0rsjhzklwvj2czvqxs2k25ii6p3y6s3vhbcc5hnr87b0gfc4nb54b8bph2hn9c6z1f6nldjw04ksbv";
-      };
-    };
-    "lodash-4.17.4" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "4.17.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz";
-        sha1 = "78203a4d1c328ae1d86dca6460e369b57f4055ae";
-      };
-    };
-    "chalk-1.1.3" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
-      };
-    };
     "commander-2.11.0" = {
       name = "commander";
       packageName = "commander";
@@ -2137,60 +2470,6 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "ansi-styles-2.2.1" = {
-      name = "ansi-styles";
-      packageName = "ansi-styles";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
-        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
-      };
-    };
-    "escape-string-regexp-1.0.5" = {
-      name = "escape-string-regexp";
-      packageName = "escape-string-regexp";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
-      };
-    };
-    "has-ansi-2.0.0" = {
-      name = "has-ansi";
-      packageName = "has-ansi";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
-        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
-      };
-    };
-    "strip-ansi-3.0.1" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
-      };
-    };
-    "supports-color-2.0.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
-      };
-    };
-    "ansi-regex-2.1.1" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
-      };
-    };
     "generate-function-2.0.0" = {
       name = "generate-function";
       packageName = "generate-function";
@@ -2551,15 +2830,6 @@ let
         sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
       };
     };
-    "os-homedir-1.0.2" = {
-      name = "os-homedir";
-      packageName = "os-homedir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz";
-        sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3";
-      };
-    };
     "async-1.0.0" = {
       name = "async";
       packageName = "async";
@@ -2596,13 +2866,13 @@ let
         sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
       };
     };
-    "bower-1.8.0" = {
+    "bower-1.8.2" = {
       name = "bower";
       packageName = "bower";
-      version = "1.8.0";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bower/-/bower-1.8.0.tgz";
-        sha1 = "55dbebef0ad9155382d9e9d3e497c1372345b44a";
+        url = "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz";
+        sha1 = "adf53529c8d4af02ef24fb8d5341c1419d33e2f7";
       };
     };
     "bower-endpoint-parser-0.2.1" = {
@@ -2776,6 +3046,15 @@ let
         sha1 = "308beeaffdf28119051efa1d932213c91b8f92e7";
       };
     };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
     "loud-rejection-1.6.0" = {
       name = "loud-rejection";
       packageName = "loud-rejection";
@@ -2992,15 +3271,6 @@ let
         sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
       };
     };
-    "graceful-fs-4.1.11" = {
-      name = "graceful-fs";
-      packageName = "graceful-fs";
-      version = "4.1.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz";
-        sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
-      };
-    };
     "parse-json-2.2.0" = {
       name = "parse-json";
       packageName = "parse-json";
@@ -3073,33 +3343,6 @@ let
         sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
       };
     };
-    "repeating-2.0.1" = {
-      name = "repeating";
-      packageName = "repeating";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz";
-        sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
-      };
-    };
-    "is-finite-1.0.2" = {
-      name = "is-finite";
-      packageName = "is-finite";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz";
-        sha1 = "cc6677695602be550ef11e8b4aa6305342b6d0aa";
-      };
-    };
-    "number-is-nan-1.0.1" = {
-      name = "number-is-nan";
-      packageName = "number-is-nan";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    };
     "get-stdin-4.0.1" = {
       name = "get-stdin";
       packageName = "get-stdin";
@@ -3163,33 +3406,6 @@ let
         sha1 = "dd01bac9d06d30e6f219aecb8253ee9ebdc308f1";
       };
     };
-    "debug-2.6.8" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
-        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
-      };
-    };
-    "ms-2.0.0" = {
-      name = "ms";
-      packageName = "ms";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
-      };
-    };
-    "os-tmpdir-1.0.2" = {
-      name = "os-tmpdir";
-      packageName = "os-tmpdir";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    };
     "rimraf-2.2.8" = {
       name = "rimraf";
       packageName = "rimraf";
@@ -3721,13 +3937,13 @@ let
         sha1 = "b5835739270cfe26acf632099fded2a07f209e5e";
       };
     };
-    "pbkdf2-3.0.13" = {
+    "pbkdf2-3.0.14" = {
       name = "pbkdf2";
       packageName = "pbkdf2";
-      version = "3.0.13";
+      version = "3.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz";
-        sha512 = "3crgpf13g3zshm39jjfgnp4lfg5jilllwk6ixi07nzyf4yghmxrhrdmhsgr5jr855ma790a21hd4bcvpx8bv9h5irnk6xpy6728gl7r";
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz";
+        sha512 = "30bb7vx0m1k1m3d1i1khgvmgddx3ahqgprs421ssrh5plpx50k5bazsj67gdi7qiknircqy59yxbclq95s2rnmk8ysgkqdpsddijfw2";
       };
     };
     "public-encrypt-4.0.0" = {
@@ -6232,13 +6448,13 @@ let
         sha1 = "55705bcd93c5f3673530c2c2cbc0c2b3addc286e";
       };
     };
-    "interpret-1.0.3" = {
+    "interpret-1.0.4" = {
       name = "interpret";
       packageName = "interpret";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz";
-        sha1 = "cbc35c62eeee73f19ab7b10a801511401afc0f90";
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz";
+        sha1 = "820cdd588b868ffb191a809506d6c9c8f212b1b0";
       };
     };
     "rechoir-0.6.2" = {
@@ -6367,13 +6583,13 @@ let
         sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
       };
     };
-    "content-type-1.0.2" = {
+    "content-type-1.0.4" = {
       name = "content-type";
       packageName = "content-type";
-      version = "1.0.2";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz";
-        sha1 = "b7d113aee7a8dd27bd21133c4dc2529df1721eed";
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
       };
     };
     "cookie-0.3.1" = {
@@ -6421,22 +6637,22 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "etag-1.8.0" = {
+    "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
-      version = "1.8.0";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz";
-        sha1 = "6f631aef336d6c46362b51764044ce216be3c051";
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "finalhandler-1.0.4" = {
+    "finalhandler-1.0.5" = {
       name = "finalhandler";
       packageName = "finalhandler";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz";
-        sha512 = "2vbps6iw562i2zxd973z5mmbs8ggx3wbz4g1jqwvkjibiwrk9ym8bxcvvwnlmxqad92x120x5xz5nyfq68nd8akk355bkk0qjppzafp";
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.5.tgz";
+        sha1 = "a701303d257a1bc82fea547a33e5ae89531723df";
       };
     };
     "fresh-0.5.0" = {
@@ -6475,13 +6691,13 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
-    "parseurl-1.3.1" = {
+    "parseurl-1.3.2" = {
       name = "parseurl";
       packageName = "parseurl";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz";
-        sha1 = "c8ab8c9223ba34888aa64a297b28853bec18da56";
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz";
+        sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -6583,13 +6799,13 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "forwarded-0.1.0" = {
+    "forwarded-0.1.2" = {
       name = "forwarded";
       packageName = "forwarded";
-      version = "0.1.0";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz";
-        sha1 = "19ef9874c4ae1c297bcf078fde63a09b66a84363";
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz";
+        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
     "ipaddr.js-1.4.0" = {
@@ -6691,15 +6907,6 @@ let
         sha512 = "05ndp7b03ikx2vqivfxlm6c73yagjyrdp22ay8z592pqxldbsm7hjzpa3asal2vys99lvirqar3ly3sb1ibhhngls4sqc4nwp2jj967";
       };
     };
-    "slash-1.0.0" = {
-      name = "slash";
-      packageName = "slash";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz";
-        sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
-      };
-    };
     "builtins-1.0.3" = {
       name = "builtins";
       packageName = "builtins";
@@ -6781,15 +6988,6 @@ let
         sha1 = "e6ea67bd247e107112983b7ab0479ed362800081";
       };
     };
-    "chmodr-1.0.2" = {
-      name = "chmodr";
-      packageName = "chmodr";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chmodr/-/chmodr-1.0.2.tgz";
-        sha1 = "04662b932d0f02ec66deaa2b0ea42811968e3eb9";
-      };
-    };
     "chownr-1.0.1" = {
       name = "chownr";
       packageName = "chownr";
@@ -8186,15 +8384,6 @@ let
         sha512 = "15lvjac4av3h7xmks8jgd56vryz5xb27r8xcpfwhfyr9dv305lms5llc1x6nx6nfvha873d4vg04nfi89aj4jkxplrnjiyc9kjf34hf";
       };
     };
-    "nan-2.7.0" = {
-      name = "nan";
-      packageName = "nan";
-      version = "2.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz";
-        sha1 = "d95bf721ec877e08db276ed3fc6eb78f9083ad46";
-      };
-    };
     "jsonparse-0.0.6" = {
       name = "jsonparse";
       packageName = "jsonparse";
@@ -8258,22 +8447,31 @@ let
         sha1 = "38f716b24c8cee07a262abc41c22c314e20e3869";
       };
     };
-    "websocket-driver-0.6.5" = {
+    "websocket-driver-0.7.0" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
-      version = "0.6.5";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz";
+        sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb";
       };
     };
-    "websocket-extensions-0.1.1" = {
+    "http-parser-js-0.4.7" = {
+      name = "http-parser-js";
+      packageName = "http-parser-js";
+      version = "0.4.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.7.tgz";
+        sha1 = "1cecc9c4ce845c0288224d8844854c1ef08c9ad7";
+      };
+    };
+    "websocket-extensions-0.1.2" = {
       name = "websocket-extensions";
       packageName = "websocket-extensions";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz";
-        sha1 = "76899499c184b6ef754377c2dbb0cd6cb55d29e7";
+        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz";
+        sha1 = "0e18781de629a18308ce1481650f67ffa2693a5d";
       };
     };
     "native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" = {
@@ -8675,13 +8873,13 @@ let
         sha1 = "9500635e257945d6feede185f5d7a24773455b17";
       };
     };
-    "pull-stream-3.6.0" = {
+    "pull-stream-3.6.1" = {
       name = "pull-stream";
       packageName = "pull-stream";
-      version = "3.6.0";
+      version = "3.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.0.tgz";
-        sha1 = "59d033a6815d4e3097d47c3d2b1893a9e58a2351";
+        url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.1.tgz";
+        sha1 = "c5c2ae4a51246efeebcc65c0412a3d725a92ce00";
       };
     };
     "typewiselite-1.0.0" = {
@@ -8846,15 +9044,6 @@ let
         sha1 = "2efa54c3b1cbaba9b94aee2e5914b0be57fbb749";
       };
     };
-    "bindings-1.2.1" = {
-      name = "bindings";
-      packageName = "bindings";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz";
-        sha1 = "14ad6113812d2d37d72e67b4cacb4bb726505f11";
-      };
-    };
     "nan-2.1.0" = {
       name = "nan";
       packageName = "nan";
@@ -8918,22 +9107,22 @@ let
         sha1 = "cac328f7bee45730d404b692203fcb590e172d5e";
       };
     };
-    "aws-sdk-2.110.0" = {
+    "aws-sdk-2.120.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.110.0";
+      version = "2.120.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.110.0.tgz";
-        sha1 = "ef3a88b08e8100d984c307108e0617a56eb74fdb";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.120.0.tgz";
+        sha1 = "44857ecb476936fce891850ff27a502210814fb6";
       };
     };
-    "request-2.81.0" = {
+    "request-2.82.0" = {
       name = "request";
       packageName = "request";
-      version = "2.81.0";
+      version = "2.82.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
-        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+        url = "https://registry.npmjs.org/request/-/request-2.82.0.tgz";
+        sha512 = "079947pnxi0h8jdiv5wb64rj3gnq4a02dfj47c41wsdi3g6pp1v3yfg3m1rphib7igf6vkisrgjq16vc4fq916fc870wzckdizal1gx";
       };
     };
     "crypto-browserify-1.0.9" = {
@@ -8990,6 +9179,15 @@ let
         sha1 = "aa58a3041a066f90eaa16c2f5389ff19f3f461a5";
       };
     };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
     "caseless-0.12.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -8999,31 +9197,58 @@ let
         sha1 = "1b681c21ff84033c826543090689420d187151dc";
       };
     };
-    "har-validator-4.2.1" = {
+    "form-data-2.3.1" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz";
+        sha1 = "6fb94fbd71885306d73d15cc497fe4cc4ecd44bf";
+      };
+    };
+    "har-validator-5.0.3" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "4.2.1";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
-        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz";
+        sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
       };
     };
-    "performance-now-0.2.0" = {
+    "hawk-6.0.2" = {
+      name = "hawk";
+      packageName = "hawk";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz";
+        sha512 = "1nl2hjr2mnhj5jlaz8mh54z7acwz5j5idkch04qgjk78756gw5d0fjk4a2immil5ij9ijdssb9ndpryvnh2xpcbgcjv8lxybn330als";
+      };
+    };
+    "http-signature-1.2.0" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    };
+    "performance-now-2.1.0" = {
       name = "performance-now";
       packageName = "performance-now";
-      version = "0.2.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
-        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "qs-6.4.0" = {
+    "qs-6.5.1" = {
       name = "qs";
       packageName = "qs";
-      version = "6.4.0";
+      version = "6.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
-        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
+        sha512 = "3waqapyj1k4g135sgj636rmswiaixq19is1rw0rpv4qp6k7dl0a9nwy06m7yl5lbdk9p6xpwwngnggbzlzaz6rh11c86j2nvnnf273r";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -9035,22 +9260,22 @@ let
         sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
       };
     };
-    "ajv-4.11.8" = {
+    "ajv-5.2.2" = {
       name = "ajv";
       packageName = "ajv";
-      version = "4.11.8";
+      version = "5.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
-        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+        url = "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz";
+        sha1 = "47c68d69e86f5d953103b0074a9430dc63da5e39";
       };
     };
-    "har-schema-1.0.5" = {
+    "har-schema-2.0.0" = {
       name = "har-schema";
       packageName = "har-schema";
-      version = "1.0.5";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
-        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
       };
     };
     "co-4.6.0" = {
@@ -9062,6 +9287,24 @@ let
         sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
       };
     };
+    "fast-deep-equal-1.0.0" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz";
+        sha1 = "96256a3bc975595eb36d82e9929d060d893439ff";
+      };
+    };
+    "json-schema-traverse-0.3.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+        sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+      };
+    };
     "json-stable-stringify-1.0.1" = {
       name = "json-stable-stringify";
       packageName = "json-stable-stringify";
@@ -9071,6 +9314,51 @@ let
         sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
       };
     };
+    "hoek-4.2.0" = {
+      name = "hoek";
+      packageName = "hoek";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz";
+        sha512 = "2cz0q3nnv67drgaw2rm7q57r9rgdax1qa0n4z46is7db1w8vwmh574xcr0d73xl5lg80vb85xg2gdhxzh9gbllagp7xk2q228pw4idz";
+      };
+    };
+    "boom-4.3.1" = {
+      name = "boom";
+      packageName = "boom";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz";
+        sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31";
+      };
+    };
+    "cryptiles-3.1.2" = {
+      name = "cryptiles";
+      packageName = "cryptiles";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz";
+        sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe";
+      };
+    };
+    "sntp-2.0.2" = {
+      name = "sntp";
+      packageName = "sntp";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz";
+        sha1 = "5064110f0af85f7cfdb7d6b67a40028ce52b4b2b";
+      };
+    };
+    "boom-5.2.0" = {
+      name = "boom";
+      packageName = "boom";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz";
+        sha512 = "19h20yqpvca08dns1rs4f057f10w63v0snxfml4h5khsk266x3x1im0w72bza4k2xn0kfz6jlv001dhcvxsjr09bmbqnysils9m7437";
+      };
+    };
     "auto-bind-1.1.0" = {
       name = "auto-bind";
       packageName = "auto-bind";
@@ -9089,13 +9377,13 @@ let
         sha1 = "51b17574fc682588e2dd295cfa6e6aa109eab5ee";
       };
     };
-    "conf-1.2.0" = {
+    "conf-1.3.0" = {
       name = "conf";
       packageName = "conf";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-1.2.0.tgz";
-        sha512 = "1sxfpzqlcpjj6cndz2h78xa9y8z5k9hw7nb7d1whd0044l78b2dqs93k9bfksqbn6s7vp472rk4w3qgggn58mraycs143pr6hh1zszl";
+        url = "https://registry.npmjs.org/conf/-/conf-1.3.0.tgz";
+        sha512 = "21wa83v253mikyav1r639cnmycyribfhr6d4kzmzhgcs8l1ahn6mb37lmr3wnzjrca53f52w30p5ccxhm58zh1lmr01naf0kb3fc2qh";
       };
     };
     "got-7.1.0" = {
@@ -9458,15 +9746,6 @@ let
         sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
       };
     };
-    "babel-core-6.26.0" = {
-      name = "babel-core";
-      packageName = "babel-core";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz";
-        sha1 = "af32f78b31a6fcef119c87b0fd8d9753f03a0bb8";
-      };
-    };
     "babel-plugin-transform-es2015-destructuring-6.23.0" = {
       name = "babel-plugin-transform-es2015-destructuring";
       packageName = "babel-plugin-transform-es2015-destructuring";
@@ -9521,240 +9800,6 @@ let
         sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
       };
     };
-    "babel-code-frame-6.26.0" = {
-      name = "babel-code-frame";
-      packageName = "babel-code-frame";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
-        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
-      };
-    };
-    "babel-generator-6.26.0" = {
-      name = "babel-generator";
-      packageName = "babel-generator";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz";
-        sha1 = "ac1ae20070b79f6e3ca1d3269613053774f20dc5";
-      };
-    };
-    "babel-helpers-6.24.1" = {
-      name = "babel-helpers";
-      packageName = "babel-helpers";
-      version = "6.24.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz";
-        sha1 = "3471de9caec388e5c850e597e58a26ddf37602b2";
-      };
-    };
-    "babel-messages-6.23.0" = {
-      name = "babel-messages";
-      packageName = "babel-messages";
-      version = "6.23.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz";
-        sha1 = "f3cdf4703858035b2a2951c6ec5edf6c62f2630e";
-      };
-    };
-    "babel-register-6.26.0" = {
-      name = "babel-register";
-      packageName = "babel-register";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz";
-        sha1 = "6ed021173e2fcb486d7acb45c6009a856f647071";
-      };
-    };
-    "babel-runtime-6.26.0" = {
-      name = "babel-runtime";
-      packageName = "babel-runtime";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
-      };
-    };
-    "babel-template-6.26.0" = {
-      name = "babel-template";
-      packageName = "babel-template";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz";
-        sha1 = "de03e2d16396b069f46dd9fff8521fb1a0e35e02";
-      };
-    };
-    "babel-traverse-6.26.0" = {
-      name = "babel-traverse";
-      packageName = "babel-traverse";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz";
-        sha1 = "46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee";
-      };
-    };
-    "babel-types-6.26.0" = {
-      name = "babel-types";
-      packageName = "babel-types";
-      version = "6.26.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz";
-        sha1 = "a3b073f94ab49eb6fa55cd65227a334380632497";
-      };
-    };
-    "babylon-6.18.0" = {
-      name = "babylon";
-      packageName = "babylon";
-      version = "6.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
-        sha512 = "1qk460vyxfs08g8586jdc02wqzyy2y06596qcn1na9bz7yxra6vgh6177qf345xai0virpaz56bkpgmfcrd8yx5l2vjkn49y66h9xdb";
-      };
-    };
-    "convert-source-map-1.5.0" = {
-      name = "convert-source-map";
-      packageName = "convert-source-map";
-      version = "1.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz";
-        sha1 = "9acd70851c6d5dfdd93d9282e5edf94a03ff46b5";
-      };
-    };
-    "json5-0.5.1" = {
-      name = "json5";
-      packageName = "json5";
-      version = "0.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz";
-        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
-      };
-    };
-    "private-0.1.7" = {
-      name = "private";
-      packageName = "private";
-      version = "0.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/private/-/private-0.1.7.tgz";
-        sha1 = "68ce5e8a1ef0a23bb570cc28537b5332aba63ef1";
-      };
-    };
-    "esutils-2.0.2" = {
-      name = "esutils";
-      packageName = "esutils";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
-      };
-    };
-    "js-tokens-3.0.2" = {
-      name = "js-tokens";
-      packageName = "js-tokens";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz";
-        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
-      };
-    };
-    "detect-indent-4.0.0" = {
-      name = "detect-indent";
-      packageName = "detect-indent";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz";
-        sha1 = "f76d064352cdf43a1cb6ce619c4ee3a9475de208";
-      };
-    };
-    "jsesc-1.3.0" = {
-      name = "jsesc";
-      packageName = "jsesc";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz";
-        sha1 = "46c3fec8c1892b12b0833db9bc7622176dbab34b";
-      };
-    };
-    "trim-right-1.0.1" = {
-      name = "trim-right";
-      packageName = "trim-right";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz";
-        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
-      };
-    };
-    "core-js-2.5.1" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz";
-        sha1 = "ae6874dc66937789b80754ff5428df66819ca50b";
-      };
-    };
-    "home-or-tmp-2.0.0" = {
-      name = "home-or-tmp";
-      packageName = "home-or-tmp";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz";
-        sha1 = "e36c3f2d2cae7d746a857e38d18d5f32a7882db8";
-      };
-    };
-    "source-map-support-0.4.17" = {
-      name = "source-map-support";
-      packageName = "source-map-support";
-      version = "0.4.17";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.17.tgz";
-        sha512 = "170xri02n6vla7f8xny3qcmnmf533i535i5k2as1nzcpsb36f6s0laj95k11h2jhc97lf9zsp8y7dmmkxwfgdh02xs3ajh53w53aiyz";
-      };
-    };
-    "regenerator-runtime-0.11.0" = {
-      name = "regenerator-runtime";
-      packageName = "regenerator-runtime";
-      version = "0.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz";
-        sha512 = "3a1pn2aankj443h5v8png8dbgrlyb7fcdn66vjglxwqvdpivpq959qsl2n44i6zwf1k5y6y23xwhim0x077yy275dyr6vwiny83987x";
-      };
-    };
-    "globals-9.18.0" = {
-      name = "globals";
-      packageName = "globals";
-      version = "9.18.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz";
-        sha512 = "18psd5ig23apaw07k4mma3z1hi2ndfwsqkm05hxashnf5lf7mpfs6kjiircc0x3x3q15j2x2j4zfzsqacxvfsmw40zjchn44bfccjab";
-      };
-    };
-    "invariant-2.2.2" = {
-      name = "invariant";
-      packageName = "invariant";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz";
-        sha1 = "9e1f56ac0acdb6bf303306f338be3b204ae60360";
-      };
-    };
-    "loose-envify-1.3.1" = {
-      name = "loose-envify";
-      packageName = "loose-envify";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz";
-        sha1 = "d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848";
-      };
-    };
-    "to-fast-properties-1.0.3" = {
-      name = "to-fast-properties";
-      packageName = "to-fast-properties";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
-        sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
-      };
-    };
     "babel-plugin-syntax-object-rest-spread-6.13.0" = {
       name = "babel-plugin-syntax-object-rest-spread";
       packageName = "babel-plugin-syntax-object-rest-spread";
@@ -9989,13 +10034,13 @@ let
         sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
       };
     };
-    "fbjs-0.8.14" = {
+    "fbjs-0.8.15" = {
       name = "fbjs";
       packageName = "fbjs";
-      version = "0.8.14";
+      version = "0.8.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz";
-        sha1 = "d1dbe2be254c35a91e09f31f9cd50a40b2a0ed1c";
+        url = "https://registry.npmjs.org/fbjs/-/fbjs-0.8.15.tgz";
+        sha1 = "4f0695fdfcc16c37c0b07facec8cb4c4091685b9";
       };
     };
     "core-js-1.2.7" = {
@@ -10034,13 +10079,13 @@ let
         sha1 = "110d53fa4c3f326c121292bbeac904d2e03387ca";
       };
     };
-    "node-fetch-1.7.2" = {
+    "node-fetch-1.7.3" = {
       name = "node-fetch";
       packageName = "node-fetch";
-      version = "1.7.2";
+      version = "1.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz";
-        sha512 = "250k1k343w8g1ndd16h1lqcdvp989id6agsppfqi9a6lcqk89ga56xjz78hhy1dqn86vha8n8s551pwpyd1n87mkw4a7143djmm95n5";
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz";
+        sha512 = "0lz5m15w7qaks0a0s3dm0crsjrsd123dy00pn6qwcp50zfjykxkp22i5ymh6smlc0ags38nmdxlxw9yyq509azlv8kcdvdiq857h5in";
       };
     };
     "whatwg-fetch-2.0.3" = {
@@ -10061,13 +10106,13 @@ let
         sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
       };
     };
-    "iconv-lite-0.4.18" = {
+    "iconv-lite-0.4.19" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.4.18";
+      version = "0.4.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz";
-        sha512 = "2l97vd6kax8syr9aggcqhiyhd3b2rf506wdq6wapfrc74qwpdzqf2a3891kq9ri3g5sdzayph2sz4zkr8kbbps58z9h2lvpk115kgdj";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
+        sha512 = "0jj1pdq3j9ak8cixn2kjp7ip8hf3xgnb85j4jr32yf9rry620v9072c0kk577mllfk1zl9wzs5ypwzbp7vbhf7j31d5rrqgwb0nldm1";
       };
     };
     "unicode-emoji-modifier-base-1.0.0" = {
@@ -10079,13 +10124,13 @@ let
         sha1 = "dbbd5b54ba30f287e2a8d5a249da6c0cef369459";
       };
     };
-    "ajv-5.2.2" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "5.2.2";
+    "debug-3.0.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz";
-        sha1 = "47c68d69e86f5d953103b0074a9430dc63da5e39";
+        url = "https://registry.npmjs.org/debug/-/debug-3.0.1.tgz";
+        sha512 = "3rnqa9m5ma6whhiailgppfhnm4gkv4brw9619yvxz59di3g306svl7na9qj6n9l887ra3fgr80b0xij0vjvfwpbk9zvpags5plmqxga";
       };
     };
     "doctrine-2.0.0" = {
@@ -10106,13 +10151,13 @@ let
         sha1 = "3d63c3edfda02e06e01a452ad88caacc7cdcb6e8";
       };
     };
-    "espree-3.5.0" = {
+    "espree-3.5.1" = {
       name = "espree";
       packageName = "espree";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz";
-        sha1 = "98358625bdd055861ea27e2867ea729faf463d8d";
+        url = "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz";
+        sha1 = "0c988b8ab46db53100a1954ae4ba995ddd27d87e";
       };
     };
     "esquery-1.0.0" = {
@@ -10160,13 +10205,13 @@ let
         sha512 = "07qdg1b3fwg8b7zwq83rljcx2h0ybq8s43h5xkvsr252qij7ib2gcjamqsb25zv1nvxm94yrvf4fl41s1kyms8zhr86cspwcbggvc94";
       };
     };
-    "inquirer-3.2.3" = {
+    "inquirer-3.3.0" = {
       name = "inquirer";
       packageName = "inquirer";
-      version = "3.2.3";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz";
-        sha512 = "1dncd0lws3fdvpgxzhi7y4lcfijrnhphn9bzxlhdl3c2aifqff1v6c6i85niwg9fim26ja1x0d6rfgy5g1dgqyh86g363d955pcmk85";
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz";
+        sha512 = "1wsmzzva3rfjb4bfks7ba2nvha9ziwgq2kag6xxibc5cc6mz19xbgj4fm3a7ghvfbfx4am0x13ibc8j2s5m3sv12nph44rq56gnvv47";
       };
     };
     "is-resolvable-1.0.0" = {
@@ -10178,13 +10223,13 @@ let
         sha1 = "8df57c61ea2e3c501408d100fb013cf8d6e0cc62";
       };
     };
-    "js-yaml-3.9.1" = {
+    "js-yaml-3.10.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.9.1";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz";
-        sha512 = "31wxw267vdf4nnjpksnzcb4i603366sjrw7g08bkxi3cwlrfl67458v7rvj72vbxcycq43z4ldkrfvqjrsvrjqrb2kfzmabpzghddq9";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz";
+        sha512 = "0h26sq1bwxc45bm0hvlcadrbk4bizzaw729wvw690ya7mpys45bqfzdqwhjkdrnq0i44dzxckykz4bix22jfdyfg1asybg3yzczjsrv";
       };
     };
     "levn-0.3.0" = {
@@ -10214,13 +10259,13 @@ let
         sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
       };
     };
-    "pluralize-4.0.0" = {
+    "pluralize-7.0.0" = {
       name = "pluralize";
       packageName = "pluralize";
-      version = "4.0.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pluralize/-/pluralize-4.0.0.tgz";
-        sha1 = "59b708c1c0190a2f692f1c7618c446b052fd1762";
+        url = "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz";
+        sha512 = "2ihaln20qjx82jx73wgzirbyp8mfmhxr75am1h0w8n5hy2gsbgvw9dricv7h57ycxzax84bma96wjscmdszs5mr2lsyxpfjvhwl2601";
       };
     };
     "progress-2.0.0" = {
@@ -10250,24 +10295,6 @@ let
         sha1 = "a8116c133fac2c61f4a420ab6cdf5c4d61f0e435";
       };
     };
-    "fast-deep-equal-1.0.0" = {
-      name = "fast-deep-equal";
-      packageName = "fast-deep-equal";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz";
-        sha1 = "96256a3bc975595eb36d82e9929d060d893439ff";
-      };
-    };
-    "json-schema-traverse-0.3.1" = {
-      name = "json-schema-traverse";
-      packageName = "json-schema-traverse";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
-        sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
-      };
-    };
     "esrecurse-4.2.0" = {
       name = "esrecurse";
       packageName = "esrecurse";
@@ -10385,6 +10412,15 @@ let
         sha1 = "fc06e5a1683fbda13de667aff717bbc10a48f37f";
       };
     };
+    "ansi-escapes-3.0.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz";
+        sha512 = "06szfav8g7xywvqsis16nnkjqs2snhv37r4m53l1ax8k2sahvqv9id2klam32jajqd08ylw8g9wbcjr971igx6vh8idan76drrjby9v";
+      };
+    };
     "cli-width-2.2.0" = {
       name = "cli-width";
       packageName = "cli-width";
@@ -10394,13 +10430,13 @@ let
         sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
       };
     };
-    "external-editor-2.0.4" = {
+    "external-editor-2.0.5" = {
       name = "external-editor";
       packageName = "external-editor";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz";
-        sha1 = "1ed9199da9cbfe2ef2f7a31b2fde8b0d12368972";
+        url = "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz";
+        sha512 = "3znpqavb7rxmw74p6hnq963agimzsm5r524jrpy9v6sbbhbbk77qhklgkr65jirq0a58lsz8jgvwy9q4wfmwl7ahj6nzrckhpmyij1j";
       };
     };
     "figures-2.0.0" = {
@@ -10448,13 +10484,13 @@ let
         sha512 = "3c44v9rz6j4z6i7gj2v3wmfcqv5i47psysgd1p4jcgz114vfk99fif1n1r08jbsdkp4g3smv1wx7x4ikwa7q9dp5i1bc77la17s2kdw";
       };
     };
-    "tmp-0.0.31" = {
+    "tmp-0.0.33" = {
       name = "tmp";
       packageName = "tmp";
-      version = "0.0.31";
+      version = "0.0.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz";
-        sha1 = "8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7";
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
+        sha512 = "0drg2bck1cj8677rgs1l98v7vqaxawcqh6ja87qilwnd719l5y0lzv5ssn3pcwa37fdbg4188y6x15a90vkllyvfpd9v7fai2b8j44d";
       };
     };
     "is-promise-2.1.0" = {
@@ -10565,6 +10601,15 @@ let
         sha1 = "afab96262910a7f33c19a5775825c69f34e350ca";
       };
     };
+    "ajv-4.11.8" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "4.11.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
+        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
+      };
+    };
     "ajv-keywords-1.5.1" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
@@ -10583,13 +10628,13 @@ let
         sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
       };
     };
-    "eslint-4.6.1" = {
+    "eslint-4.7.2" = {
       name = "eslint";
       packageName = "eslint";
-      version = "4.6.1";
+      version = "4.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-4.6.1.tgz";
-        sha1 = "ddc7fc7fd70bf93205b0b3449bb16a1e9e7d4950";
+        url = "https://registry.npmjs.org/eslint/-/eslint-4.7.2.tgz";
+        sha1 = "ff6f5f5193848a27ee9b627be3e73fb9cb5e662e";
       };
     };
     "supports-color-3.2.3" = {
@@ -10718,6 +10763,15 @@ let
         sha1 = "79d93d2d33363d6fdd2970b335d9141ad591d79b";
       };
     };
+    "request-2.81.0" = {
+      name = "request";
+      packageName = "request";
+      version = "2.81.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
+        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+      };
+    };
     "request-progress-2.0.1" = {
       name = "request-progress";
       packageName = "request-progress";
@@ -10781,6 +10835,42 @@ let
         sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
       };
     };
+    "har-validator-4.2.1" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
+        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
+      };
+    };
+    "performance-now-0.2.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
+        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
+      };
+    };
+    "qs-6.4.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
+        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
+      };
+    };
+    "har-schema-1.0.5" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
+        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
+      };
+    };
     "throttleit-1.0.0" = {
       name = "throttleit";
       packageName = "throttleit";
@@ -10808,6 +10898,15 @@ let
         sha1 = "4fc4effbb02f241fb5082bd4fbab398e4aecb64d";
       };
     };
+    "tmp-0.0.31" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.0.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz";
+        sha1 = "8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7";
+      };
+    };
     "glob-3.2.11" = {
       name = "glob";
       packageName = "glob";
@@ -11105,6 +11204,15 @@ let
         sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
       };
     };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
     "object.omit-2.0.1" = {
       name = "object.omit";
       packageName = "object.omit";
@@ -11204,6 +11312,15 @@ let
         sha512 = "2is2kipfnz3hl4yxgqk07rll6956cq3zzf9cddai3f0lij5acq76v98qv14qkpljh1pqfsyb8p69xa9cyaww6p0j91s4vc9zj6594hg";
       };
     };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
     "is-number-3.0.0" = {
       name = "is-number";
       packageName = "is-number";
@@ -11321,13 +11438,13 @@ let
         sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
       };
     };
-    "node-pre-gyp-0.6.36" = {
+    "node-pre-gyp-0.6.37" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
-      version = "0.6.36";
+      version = "0.6.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz";
-        sha1 = "db604112cb74e0d477554e9b505b17abddfab786";
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
+        sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
       };
     };
     "npmlog-4.1.2" = {
@@ -11339,6 +11456,15 @@ let
         sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
       };
     };
+    "tape-4.8.0" = {
+      name = "tape";
+      packageName = "tape";
+      version = "4.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz";
+        sha512 = "026x60jpvkdwfvbd6gls76zjj3yiqfz4cg9imi80r25zdziaiy87jkpw9mwbrbg9k2xc4nsn9yzk90pgkgybdspk0yb4fzg95y0nqjd";
+      };
+    };
     "tar-pack-3.4.0" = {
       name = "tar-pack";
       packageName = "tar-pack";
@@ -11375,13 +11501,13 @@ let
         sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
       };
     };
-    "aproba-1.1.2" = {
+    "aproba-1.2.0" = {
       name = "aproba";
       packageName = "aproba";
-      version = "1.1.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz";
-        sha512 = "0zmgm7vf91vxk5hdvkwhfnzjxz9r6hwpn8dlbpasaax8rxx7z1qqdmh8l631vawj7y1bkpsd0v0mhjh9agggkjl72f3vlnfhy61m5k6";
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
       };
     };
     "string-width-1.0.2" = {
@@ -11402,6 +11528,114 @@ let
         sha512 = "39m5b8qc31vxhh0bz14vh9a1kf9znarvlpkf0v6vv1f2dxi61gihav2djq2mn7ns1z3yq6l8pyydj52fyzbm2q04rssrcrv4jbwnc4a";
       };
     };
+    "for-each-0.3.2" = {
+      name = "for-each";
+      packageName = "for-each";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz";
+        sha1 = "2c40450b9348e97f281322593ba96704b9abd4d4";
+      };
+    };
+    "object-inspect-1.3.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz";
+        sha512 = "1302hkgbynr48i0h4n5psz3ln624f8516qh68kpah1ziczyg8vpyfxws5x6iazncaw5jgg9bp19pgbfl4n4gjb9z0z96pnd08pffw9q";
+      };
+    };
+    "resumer-0.0.0" = {
+      name = "resumer";
+      packageName = "resumer";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
+        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+      };
+    };
+    "string.prototype.trim-1.1.2" = {
+      name = "string.prototype.trim";
+      packageName = "string.prototype.trim";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
+        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
+      };
+    };
+    "is-function-1.0.1" = {
+      name = "is-function";
+      packageName = "is-function";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz";
+        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+      };
+    };
+    "define-properties-1.1.2" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
+        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
+      };
+    };
+    "es-abstract-1.8.2" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz";
+        sha512 = "0cz5pzkb9xh1askig7mrv990raaa1pym6a8acyyjw405bnzdznck7q9qg2rcybwjq866i6226nq6mijn6kwg5n36r6hr3gjpla71y3n";
+      };
+    };
+    "es-to-primitive-1.1.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz";
+        sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d";
+      };
+    };
+    "is-callable-1.1.3" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz";
+        sha1 = "86eb75392805ddc33af71c92a0eedf74ee7604b2";
+      };
+    };
+    "is-regex-1.0.4" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz";
+        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
+      };
+    };
+    "is-date-object-1.0.1" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz";
+        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
+      };
+    };
+    "is-symbol-1.0.1" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz";
+        sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572";
+      };
+    };
     "event-stream-0.5.3" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -11474,15 +11708,6 @@ let
         sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
       };
     };
-    "resumer-0.0.0" = {
-      name = "resumer";
-      packageName = "resumer";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
-      };
-    };
     "lodash.groupby-4.6.0" = {
       name = "lodash.groupby";
       packageName = "lodash.groupby";
@@ -11781,6 +12006,96 @@ let
         sha1 = "c90941ad59e4273328923074d2cf2e7cbc6ec0d9";
       };
     };
+    "yargs-3.10.0" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "3.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
+        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+      };
+    };
+    "uglify-to-browserify-1.0.2" = {
+      name = "uglify-to-browserify";
+      packageName = "uglify-to-browserify";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
+        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+      };
+    };
+    "camelcase-1.2.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
+        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
+      };
+    };
+    "cliui-2.1.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
+        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
+      };
+    };
+    "window-size-0.1.0" = {
+      name = "window-size";
+      packageName = "window-size";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
+        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+      };
+    };
+    "center-align-0.1.3" = {
+      name = "center-align";
+      packageName = "center-align";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
+        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
+      };
+    };
+    "right-align-0.1.3" = {
+      name = "right-align";
+      packageName = "right-align";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
+        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
+      };
+    };
+    "align-text-0.1.4" = {
+      name = "align-text";
+      packageName = "align-text";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
+        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
+      };
+    };
+    "lazy-cache-1.0.4" = {
+      name = "lazy-cache";
+      packageName = "lazy-cache";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
+        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
+      };
+    };
+    "longest-1.0.1" = {
+      name = "longest";
+      packageName = "longest";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+      };
+    };
     "acorn-1.2.2" = {
       name = "acorn";
       packageName = "acorn";
@@ -11916,13 +12231,13 @@ let
         sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809";
       };
     };
-    "dateformat-2.0.0" = {
+    "dateformat-2.2.0" = {
       name = "dateformat";
       packageName = "dateformat";
-      version = "2.0.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz";
-        sha1 = "2743e3abb5c3fc2462e527dca445e04e9f4dee17";
+        url = "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz";
+        sha1 = "4065e2013cf9fb916ddfd82efb506ad4c6769062";
       };
     };
     "fancy-log-1.3.0" = {
@@ -12771,13 +13086,22 @@ let
         sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
       };
     };
-    "@ionic/cli-utils-1.9.2" = {
+    "@ionic/cli-utils-1.10.2" = {
       name = "@ionic/cli-utils";
       packageName = "@ionic/cli-utils";
-      version = "1.9.2";
+      version = "1.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ionic/cli-utils/-/cli-utils-1.9.2.tgz";
-        sha512 = "0swmlwdlxhnfb2bvkzg5vw9jpmgccp0frivlyiadakn0b6v2h9g0nlmfnmfk7sy8hazxlpd8z986i94mnkc53j5c7dqlmjq9l1ff29x";
+        url = "https://registry.npmjs.org/@ionic/cli-utils/-/cli-utils-1.10.2.tgz";
+        sha512 = "3nnaaxpbcfqhp3hdi5gqjllw11li8pmbcpbwixyfxly5sy6m7izid84a80azmd1hh2f3pv68n07qm3prznzvx495vnvw3qyaxg0hi6x";
+      };
+    };
+    "@ionic/discover-0.3.1" = {
+      name = "@ionic/discover";
+      packageName = "@ionic/discover";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ionic/discover/-/discover-0.3.1.tgz";
+        sha512 = "35246ajg70xdrv5r5ln20m3b3h8gqa7gvmcraalmr5nk7pkmrldfr8cyscm9zrqpzpsjbbs2h2vdy0nh0ghlnyhiywry8ivxn7agk90";
       };
     };
     "opn-5.1.0" = {
@@ -12807,15 +13131,6 @@ let
         sha1 = "bc8004164691923a79fe8378bbeb3da2017538ec";
       };
     };
-    "@types/gulp-3.8.33" = {
-      name = "@types/gulp";
-      packageName = "@types/gulp";
-      version = "3.8.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/gulp/-/gulp-3.8.33.tgz";
-        sha512 = "01i562c5pc602w3jnb960nqh7afknhjv3i9mjkqv7k4300prh61z27akxh6fzgk4nxiw9vx4h0r4ma09jyg3gzp6hf8sfqak7d40jnx";
-      };
-    };
     "archiver-2.0.3" = {
       name = "archiver";
       packageName = "archiver";
@@ -12825,6 +13140,15 @@ let
         sha1 = "b4360bb584af1437991942716f21d7c523d1dbbd";
       };
     };
+    "body-parser-1.18.1" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.1.tgz";
+        sha512 = "1i2fmb5q1gy3zand1lmqbyamdg1iapbmy1wk9fr181fwcwjnsay1fvqkzbf9lx98mghlc061bhg15ymq4wm663qciparjxgj5kakg98";
+      };
+    };
     "ci-info-1.1.1" = {
       name = "ci-info";
       packageName = "ci-info";
@@ -12897,13 +13221,13 @@ let
         sha512 = "1xd3zsk02nck4y601rn98n8cicrphaw5bdix278mk1yizmjv9s0wpa6akcqggd7d99c55s3byf4ylqdxkshyfsfnfx7lvwbmq2b3siw";
       };
     };
-    "ssh-config-1.1.0" = {
+    "ssh-config-1.1.1" = {
       name = "ssh-config";
       packageName = "ssh-config";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh-config/-/ssh-config-1.1.0.tgz";
-        sha1 = "bbc7f92204a385b5dececec8f8b63be9c125079b";
+        url = "https://registry.npmjs.org/ssh-config/-/ssh-config-1.1.1.tgz";
+        sha512 = "34a8bmib45cxms67cjfwwwfaay3amvzj61ay7k7qj9lajxqb8qjp5m4ivn89pzcy1siiqxs47mmh63dsq2lrypjci2w9b4lp9cqpak4";
       };
     };
     "superagent-3.6.0" = {
@@ -12924,31 +13248,13 @@ let
         sha512 = "2b8y1xdv7szw0hvad64rghp2zdahs6qhx0k79c0s9xa0a35zbcrb9b9gywixhcxqi1c9ab7ah8ibra22k8baakh7rvmhf904d559g32";
       };
     };
-    "@types/orchestrator-0.3.0" = {
-      name = "@types/orchestrator";
-      packageName = "@types/orchestrator";
-      version = "0.3.0";
+    "ws-3.2.0" = {
+      name = "ws";
+      packageName = "ws";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/orchestrator/-/orchestrator-0.3.0.tgz";
-        sha1 = "bf84a1699c9330d4fe89cd81263e8fc09fb32978";
-      };
-    };
-    "@types/vinyl-2.0.1" = {
-      name = "@types/vinyl";
-      packageName = "@types/vinyl";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.1.tgz";
-        sha512 = "39di6nqjv2i8yqjq1zqyrlg237a9ma5npnggwq77qvj9rk982hzj5x04xq4y0j3bcj99vbfpqvydqph6975pb3bacgrmng7nxlrv2r6";
-      };
-    };
-    "@types/q-0.0.37" = {
-      name = "@types/q";
-      packageName = "@types/q";
-      version = "0.0.37";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/q/-/q-0.0.37.tgz";
-        sha512 = "1jsz2sb10m3vshfy9k9k7zkmzcnlafp76ivzp04yf9xda3h7kv75vdxf82lfd17jzfwlm0n8cp1a4vkr43wcxsaj7zwqk6cbiglccdy";
+        url = "https://registry.npmjs.org/ws/-/ws-3.2.0.tgz";
+        sha512 = "1bj83dg7c5sca2v9cpzz4m83y9mm8icldvpk2c9sq3216cr6cn7qvfwhw9hq881nq7pii3xxbg8lz6g2p6223ililwkzzp68ndbfd45";
       };
     };
     "archiver-utils-1.3.0" = {
@@ -13023,6 +13329,24 @@ let
         sha1 = "9da1e980e3bd44fc5c93bf5ab3da3378d85e466b";
       };
     };
+    "bytes-3.0.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+      };
+    };
+    "raw-body-2.3.2" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz";
+        sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
+      };
+    };
     "sax-1.1.4" = {
       name = "sax";
       packageName = "sax";
@@ -13185,6 +13509,24 @@ let
         sha1 = "3569ede8ba34315fab99c3e92cb04c7220de1fa8";
       };
     };
+    "async-limiter-1.0.0" = {
+      name = "async-limiter";
+      packageName = "async-limiter";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz";
+        sha512 = "1ddib7nbyayhldvsyrfdpxk7khyi6s72570gkf3qqf4b1xwzdh52w0vlj6bknl40imispychhwfjb2bm29pjxbd5yz26fi8g8bfx7wf";
+      };
+    };
+    "netmask-1.0.6" = {
+      name = "netmask";
+      packageName = "netmask";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz";
+        sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
+      };
+    };
     "is-wsl-1.1.0" = {
       name = "is-wsl";
       packageName = "is-wsl";
@@ -13302,13 +13644,13 @@ let
         sha1 = "30a3989642ee3e8ea06d10c2b9f9e046d424d8ed";
       };
     };
-    "mz-2.6.0" = {
+    "mz-2.7.0" = {
       name = "mz";
       packageName = "mz";
-      version = "2.6.0";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mz/-/mz-2.6.0.tgz";
-        sha1 = "c8b8521d958df0a4f2768025db69c719ee4ef1ce";
+        url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+        sha512 = "3cpmwzmngnmxhklvicnsbl5dchvsy0yikzgf705cq1cplyps3waa03xbjp306bjf167wnplibwki0csnavz98dihq2877g7xqs4dkfg";
       };
     };
     "object-hash-1.1.8" = {
@@ -13356,31 +13698,31 @@ let
         sha1 = "3d38321828231e434f287514959c37a82b629f42";
       };
     };
-    "vscode-jsonrpc-3.3.1" = {
+    "vscode-jsonrpc-3.4.0" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
-      version = "3.3.1";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.3.1.tgz";
-        sha512 = "1dwznr02qr6wd7886k3i7y3vxgzqdm14gc5vs892vrc8azhh6hl79bvl5lgc05004lzqbazj9p7vdkbms62f1iys92h5w1xpvdldfc8";
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.4.0.tgz";
+        sha1 = "aa95ac583bf31d80f725d57c27c09f4c2cfe9fa9";
       };
     };
-    "vscode-languageserver-3.3.0" = {
+    "vscode-languageserver-3.4.2" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
-      version = "3.3.0";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.3.0.tgz";
-        sha512 = "380fi37ifwdgndnglvymyrb844aybpm5mjpwmq4p3dm1b93iqdfr00pr2b692d15k5hn9x82h98zw0bs0k7287pwdvdkv3v75pc92zi";
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.4.2.tgz";
+        sha1 = "08cbe50ee26901d37dd4b5dc52c25b909363c1f1";
       };
     };
-    "vscode-languageserver-types-3.3.0" = {
+    "vscode-languageserver-types-3.4.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.3.0.tgz";
-        sha512 = "1xjiay30jyp6sj9nq55zwjmxyq5ajcdrv4bw9ypkplv7mg57h4skiqvcsd6wbizidpx3xanqmnl04l66491fmlrwijn9ph3rsa044z4";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.4.0.tgz";
+        sha1 = "5043ae47ee4ac16af07bb3d0ca561235e0c0d2fa";
       };
     };
     "symbol-observable-1.0.4" = {
@@ -13527,6 +13869,24 @@ let
         sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
       };
     };
+    "vscode-uri-1.0.1" = {
+      name = "vscode-uri";
+      packageName = "vscode-uri";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.1.tgz";
+        sha1 = "11a86befeac3c4aa3ec08623651a3c81a6d0bbc8";
+      };
+    };
+    "vscode-languageserver-protocol-3.4.2" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.4.2.tgz";
+        sha512 = "1vm846vq0y63gjxgjnng6zd4196yjx212rmzjr1ljwmkrgb2f1llgpc13ly1b1zsg6v1zjzj473i0dql50sykxwm5vdzaavl28knl6r";
+      };
+    };
     "when-3.4.6" = {
       name = "when";
       packageName = "when";
@@ -13608,15 +13968,6 @@ let
         sha1 = "f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa";
       };
     };
-    "form-data-2.3.1" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz";
-        sha1 = "6fb94fbd71885306d73d15cc497fe4cc4ecd44bf";
-      };
-    };
     "punycode-2.1.0" = {
       name = "punycode";
       packageName = "punycode";
@@ -13626,15 +13977,6 @@ let
         sha1 = "5f863edc89b96db09074bad7947bf09056ca4e7d";
       };
     };
-    "body-parser-1.17.2" = {
-      name = "body-parser";
-      packageName = "body-parser";
-      version = "1.17.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz";
-        sha1 = "f8892abc8f9e627d42aedafbca66bf5ab99104ee";
-      };
-    };
     "connect-pause-0.1.1" = {
       name = "connect-pause";
       packageName = "connect-pause";
@@ -13761,42 +14103,6 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "bytes-2.4.0" = {
-      name = "bytes";
-      packageName = "bytes";
-      version = "2.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz";
-        sha1 = "7d97196f9d5baf7f6935e25985549edd2a6c2339";
-      };
-    };
-    "debug-2.6.7" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.6.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz";
-        sha1 = "92bad1f6d05bbb6bba22cca88bcd0ec894c2861e";
-      };
-    };
-    "iconv-lite-0.4.15" = {
-      name = "iconv-lite";
-      packageName = "iconv-lite";
-      version = "0.4.15";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz";
-        sha1 = "fe265a218ac6a57cfe854927e9d04c19825eddeb";
-      };
-    };
-    "raw-body-2.2.0" = {
-      name = "raw-body";
-      packageName = "raw-body";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz";
-        sha1 = "994976cf6a5096a41162840492f0bdc5d6e7fb96";
-      };
-    };
     "path-to-regexp-1.7.0" = {
       name = "path-to-regexp";
       packageName = "path-to-regexp";
@@ -14076,13 +14382,13 @@ let
         sha1 = "458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6";
       };
     };
-    "connect-3.6.3" = {
+    "connect-3.6.4" = {
       name = "connect";
       packageName = "connect";
-      version = "3.6.3";
+      version = "3.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz";
-        sha512 = "2fkfixwv0fqqxw5rhmzrczj8ayxccwnxwkgyv4w8sxnkz52sl6dsx2nirg1vryxxqdlwph4ag9vc17yzzydmzshc73gpi6m12m9kd0q";
+        url = "https://registry.npmjs.org/connect/-/connect-3.6.4.tgz";
+        sha1 = "52ea19c38607318784269297b0218ed074a01687";
       };
     };
     "di-0.0.1" = {
@@ -14166,6 +14472,15 @@ let
         sha1 = "cf593ef4f2d175875e8bb658ea92e18a4fd06d8e";
       };
     };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
     "custom-event-1.0.1" = {
       name = "custom-event";
       packageName = "custom-event";
@@ -14850,6 +15165,15 @@ let
         sha1 = "adfeace2e4fb3098058014d08c072dcc59758774";
       };
     };
+    "bytes-2.4.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz";
+        sha1 = "7d97196f9d5baf7f6935e25985549edd2a6c2339";
+      };
+    };
     "iconv-lite-0.4.13" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
@@ -15084,13 +15408,13 @@ let
         sha1 = "d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da";
       };
     };
-    "fs-extra-4.0.1" = {
+    "fs-extra-4.0.2" = {
       name = "fs-extra";
       packageName = "fs-extra";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz";
-        sha1 = "7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880";
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz";
+        sha1 = "f91704c53d1b461f893452b0c307d9997647ab6b";
       };
     };
     "get-port-3.2.0" = {
@@ -15507,22 +15831,13 @@ let
         sha1 = "41d045f3851a5ea88f03f24ca1c6178114464b9b";
       };
     };
-    "jsonfile-3.0.1" = {
+    "jsonfile-4.0.0" = {
       name = "jsonfile";
       packageName = "jsonfile";
-      version = "3.0.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz";
-        sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
-      };
-    };
-    "universalify-0.1.1" = {
-      name = "universalify";
-      packageName = "universalify";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz";
-        sha1 = "fa71badd4437af4c148841e3b3b165f9e9e590b7";
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
       };
     };
     "is-glob-3.1.0" = {
@@ -15876,13 +16191,13 @@ let
         sha1 = "7ed50d5e0f9a9fb0a573379259f2a77458d50192";
       };
     };
-    "github-slugger-1.1.3" = {
+    "github-slugger-1.2.0" = {
       name = "github-slugger";
       packageName = "github-slugger";
-      version = "1.1.3";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/github-slugger/-/github-slugger-1.1.3.tgz";
-        sha1 = "314a6e759a18c2b0cc5760d512ccbab549c549a7";
+        url = "https://registry.npmjs.org/github-slugger/-/github-slugger-1.2.0.tgz";
+        sha512 = "3nya50972xq88vz4p5gqz63014dkwlp5f40cz1fgad4ifnhprpr4qlqvvi44qxs3arikyfm3ygmf3phyjq5lwkg7rr9ig9mk7prm1n0";
       };
     };
     "innertext-1.0.2" = {
@@ -16020,6 +16335,15 @@ let
         sha1 = "945cfadd66521eaf8f7c84913d377d7b15f24e31";
       };
     };
+    "send-0.15.5" = {
+      name = "send";
+      packageName = "send";
+      version = "0.15.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.15.5.tgz";
+        sha1 = "32ef6c8d820c9756597c3174b8c9dd51e3319be2";
+      };
+    };
     "serve-index-1.9.0" = {
       name = "serve-index";
       packageName = "serve-index";
@@ -16074,6 +16398,15 @@ let
         sha1 = "1c0824150481bc7a01d49e98f1ec668d82412f3b";
       };
     };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
     "batch-0.6.1" = {
       name = "batch";
       packageName = "batch";
@@ -16236,6 +16569,15 @@ let
         sha1 = "0ea7743715db8d8de2c5ede1775e1b45ac85c02f";
       };
     };
+    "he-1.1.1" = {
+      name = "he";
+      packageName = "he";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.1.1.tgz";
+        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
+      };
+    };
     "lodash.create-3.1.1" = {
       name = "lodash.create";
       packageName = "lodash.create";
@@ -16434,13 +16776,13 @@ let
         sha1 = "159a49b9a9714c1fb102f2e0ed1906fab6a450f4";
       };
     };
-    "serve-favicon-2.4.3" = {
+    "serve-favicon-2.4.4" = {
       name = "serve-favicon";
       packageName = "serve-favicon";
-      version = "2.4.3";
+      version = "2.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.3.tgz";
-        sha1 = "5986b17b0502642b641c21f818b1acce32025d23";
+        url = "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.4.tgz";
+        sha1 = "412ddd74965151c9f74c0828f35d50c5250210de";
       };
     };
     "strong-data-uri-1.0.4" = {
@@ -16551,6 +16893,15 @@ let
         sha1 = "17eb2807987f76952e9c0485fc311d06a826a2e0";
       };
     };
+    "fresh-0.5.1" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.1.tgz";
+        sha1 = "c3a08bcec0fcdcc223edf3b23eb327f1f9fcbf5c";
+      };
+    };
     "truncate-1.0.5" = {
       name = "truncate";
       packageName = "truncate";
@@ -16749,6 +17100,15 @@ let
         sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
       };
     };
+    "body-parser-1.17.2" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz";
+        sha1 = "f8892abc8f9e627d42aedafbca66bf5ab99104ee";
+      };
+    };
     "cheerio-0.22.0" = {
       name = "cheerio";
       packageName = "cheerio";
@@ -16920,6 +17280,15 @@ let
         sha1 = "4f378b678b92d16dbbd233a6c706520093e561ba";
       };
     };
+    "raw-body-2.2.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz";
+        sha1 = "994976cf6a5096a41162840492f0bdc5d6e7fb96";
+      };
+    };
     "sentiment-2.1.0" = {
       name = "sentiment";
       packageName = "sentiment";
@@ -16983,13 +17352,13 @@ let
         sha1 = "52c074f42a32140132baea108d42cbcd0ef397d2";
       };
     };
-    "node-red-node-rbe-0.1.11" = {
+    "node-red-node-rbe-0.1.13" = {
       name = "node-red-node-rbe";
       packageName = "node-red-node-rbe";
-      version = "0.1.11";
+      version = "0.1.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.1.11.tgz";
-        sha1 = "a670c1542a6eaf5e06db45490c2a7edf8a9f70b6";
+        url = "https://registry.npmjs.org/node-red-node-rbe/-/node-red-node-rbe-0.1.13.tgz";
+        sha1 = "734ff1264cdbe0a8aaade20696dd4bfc6bbcdd49";
       };
     };
     "bcrypt-1.0.3" = {
@@ -17001,6 +17370,24 @@ let
         sha512 = "1zfn87155w6q9fsv5ls3gxwih7yvarrh16kzpfrpppblzpmp1cy9gjkknsf9lkixacza39h51jd7varqfg19w3qkdic62zpirv86755";
       };
     };
+    "debug-2.6.7" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz";
+        sha1 = "92bad1f6d05bbb6bba22cca88bcd0ec894c2861e";
+      };
+    };
+    "iconv-lite-0.4.15" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz";
+        sha1 = "fe265a218ac6a57cfe854927e9d04c19825eddeb";
+      };
+    };
     "css-select-1.2.0" = {
       name = "css-select";
       packageName = "css-select";
@@ -17361,15 +17748,6 @@ let
         sha1 = "70c375805b9e3105e899ee8dbdd6a9aa108f407b";
       };
     };
-    "ws-3.1.0" = {
-      name = "ws";
-      packageName = "ws";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-3.1.0.tgz";
-        sha512 = "07wdh2llaz8j5nbjpvl1zbbksw2pikqnw243c6a1ifmshp095hgam79vv5nbp1pjwnlm120m4d3sih9iwm5mkc46im03jb5l6l3ykjd";
-      };
-    };
     "append-field-0.1.0" = {
       name = "append-field";
       packageName = "append-field";
@@ -17649,6 +18027,15 @@ let
         sha1 = "e4ff34e6c95fdfb5aecc08de6596f43605a7db45";
       };
     };
+    "node-pre-gyp-0.6.36" = {
+      name = "node-pre-gyp";
+      packageName = "node-pre-gyp";
+      version = "0.6.36";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz";
+        sha1 = "db604112cb74e0d477554e9b505b17abddfab786";
+      };
+    };
     "mongoose-3.6.7" = {
       name = "mongoose";
       packageName = "mongoose";
@@ -17910,15 +18297,6 @@ let
         sha1 = "44e072148af01e6e8e24afbf12690d68ae698ecb";
       };
     };
-    "debug-3.0.1" = {
-      name = "debug";
-      packageName = "debug";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-3.0.1.tgz";
-        sha512 = "3rnqa9m5ma6whhiailgppfhnm4gkv4brw9619yvxz59di3g306svl7na9qj6n9l887ra3fgr80b0xij0vjvfwpbk9zvpags5plmqxga";
-      };
-    };
     "qs-0.5.1" = {
       name = "qs";
       packageName = "qs";
@@ -18243,6 +18621,15 @@ let
         sha1 = "8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b";
       };
     };
+    "aproba-1.1.2" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz";
+        sha512 = "0zmgm7vf91vxk5hdvkwhfnzjxz9r6hwpn8dlbpasaax8rxx7z1qqdmh8l631vawj7y1bkpsd0v0mhjh9agggkjl72f3vlnfhy61m5k6";
+      };
+    };
     "cacache-9.2.9" = {
       name = "cacache";
       packageName = "cacache";
@@ -18369,13 +18756,13 @@ let
         sha512 = "0iapgirmdb46ia3apm6fsb9qv9c0hi4k9jflrxlgnrm0jhliqgas49lmpz06xafncx1sxgjngl0fw3gr472c7kapzdvpivf0fp5miqa";
       };
     };
-    "npm-packlist-1.1.8" = {
+    "npm-packlist-1.1.9" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "1.1.8";
+      version = "1.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.8.tgz";
-        sha512 = "3wbyrf8k8ziygg8lyaj5v0kfpw9mhz4an8hqznapf7n0g2ik02shn91607274zvvayl5zcgmfkf17yy4vgz67lsdjmhzwi8rmrzapv4";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.9.tgz";
+        sha512 = "1d1l5hasnw67hczgcwbc8534n1hgvx87hin1yr14yz70b4yzp06gfrj97lhh0qfmk5p1lqfrzajhs5wywx98hj75g00mqmir54050gm";
       };
     };
     "npm-user-validate-1.0.0" = {
@@ -18459,6 +18846,15 @@ let
         sha512 = "2lrlysxfbyzywla6i1q07xncmw30w1icgq18c4bra25dl6wvcd3mxg1lqbf88w5h7mqnf98j8ll657wnqwjq9rwd7pbmd9i11964x0c";
       };
     };
+    "write-file-atomic-2.1.0" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz";
+        sha512 = "0jpbx5znf640m7icywa21hdgyss5h6c811z27mzk7mh1yhv8sqcqd2y0cwgkrnigx57k2chv5cqwv0z8ff8z32gpdw8jw5imz8pcdni";
+      };
+    };
     "lodash._baseindexof-3.1.0" = {
       name = "lodash._baseindexof";
       packageName = "lodash._baseindexof";
@@ -18666,13 +19062,13 @@ let
         sha512 = "0bw6m444q0jc2gmw1yb0im1jv6vhky6d071p72c26ajvf2a7710jq8cp5ampf8j7kdbki7j0mbsi15dh93vrhkpvqpkw0i6ajdk34lw";
       };
     };
-    "socks-proxy-agent-3.0.0" = {
+    "socks-proxy-agent-3.0.1" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.0.tgz";
-        sha512 = "3zn9cz2ry5m1akapj7hvhgkxfq7ffwynia46lmwipsw2jk5sv8dvs32dc4hfx3xvp34i1jff1bg870a1xnknsgk5dl021jd4gwi75v0";
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz";
+        sha512 = "2a5lsw4fry6nqk3jdxvwqrnpasypvl8c4d0kg32912820lc72l7s9jzidfsrn2an9c66xqicspxb2vnir5cjspprs9qklxnd75060b7";
       };
     };
     "humanize-ms-1.2.1" = {
@@ -18936,13 +19332,13 @@ let
         sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
       };
     };
-    "fast-diff-1.1.1" = {
+    "fast-diff-1.1.2" = {
       name = "fast-diff";
       packageName = "fast-diff";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.1.tgz";
-        sha1 = "0aea0e4e605b6a2189f0e936d4b7fbaf1b7cfd9b";
+        url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz";
+        sha512 = "2550z1qvyfv9js9vg2aaj57ji5d9hhg4f6zl4rf483d6xswv23ac6ipj8gbapv4sjx14dpcslqmnx1z78vvx4np4ad5mdrxwfvm98i9";
       };
     };
     "node-alias-1.0.4" = {
@@ -18990,13 +19386,13 @@ let
         sha1 = "27d92fec34d27cfa42707d3b40d025ae9855f2df";
       };
     };
-    "snyk-1.40.2" = {
+    "snyk-1.41.0" = {
       name = "snyk";
       packageName = "snyk";
-      version = "1.40.2";
+      version = "1.41.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk/-/snyk-1.40.2.tgz";
-        sha1 = "0084cdb969f0ee0282f5b1de562434d916c732c5";
+        url = "https://registry.npmjs.org/snyk/-/snyk-1.41.0.tgz";
+        sha1 = "6c7a9a94f788181a21575f1b4ee59e6d80f6a059";
       };
     };
     "spawn-please-0.3.0" = {
@@ -19161,6 +19557,15 @@ let
         sha1 = "ebe3a0948571bcc46ccccbe2f9bcec251e984bd0";
       };
     };
+    "needle-2.0.1" = {
+      name = "needle";
+      packageName = "needle";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-2.0.1.tgz";
+        sha1 = "c21fc961ce3c340fb082250da6a08a32f38631f1";
+      };
+    };
     "snyk-config-1.0.1" = {
       name = "snyk-config";
       packageName = "snyk-config";
@@ -19170,13 +19575,13 @@ let
         sha1 = "f27aec2498b24027ac719214026521591111508f";
       };
     };
-    "snyk-go-plugin-1.1.3" = {
+    "snyk-go-plugin-1.2.1" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.1.3";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.1.3.tgz";
-        sha512 = "2yxrc9kh1i9xxa012g3gwx5hdv0df0d0jkqh5h9bm6lkjs567kyh116bfvk6y3gj2cy39a85gvm0dd9gc92fy8i6if8d0zgh9w5wj2i";
+        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.2.1.tgz";
+        sha512 = "3fvzskjkhljbpcha1z2bk9ca96bcyqc1hb8i2fz7ck71bmfvq9q1wxq1rmp981zmmxvag6igdxsxcq8nrc5igq5s452qr8x9b2g6s9a";
       };
     };
     "snyk-gradle-plugin-1.1.2" = {
@@ -19197,13 +19602,13 @@ let
         sha1 = "31d5080fb1c0dfd6fa8567dd34a523fd02bf1fca";
       };
     };
-    "snyk-mvn-plugin-1.0.1" = {
+    "snyk-mvn-plugin-1.0.3" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-1.0.1.tgz";
-        sha512 = "2hyx0v53423yszxyxx41swndwqxya92iw3zjqaa35fl1ial9zxrmvrvlrc6jv4jaimv9ci7ni9jkascs1cgm85gqf1ifzkl9kfg0h3c";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-1.0.3.tgz";
+        sha512 = "3p1ji20lrwfgq8gv8br38nk8l5sklhpvmgdcp9il01f22pzclaqnvrh8pcihkq5x74rifhcra6kqjz057i0mmrk8p3w3yq8gikqgz7l";
       };
     };
     "snyk-policy-1.7.1" = {
@@ -19323,15 +19728,6 @@ let
         sha1 = "3d9446ef21fb3791b3985690662e4b9683c7f181";
       };
     };
-    "fs-0.0.1-security" = {
-      name = "fs";
-      packageName = "fs";
-      version = "0.0.1-security";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz";
-        sha1 = "8a7bd37186b6dddf3813f23858b57ecaaf5e41d4";
-      };
-    };
     "toml-2.3.3" = {
       name = "toml";
       packageName = "toml";
@@ -19485,13 +19881,13 @@ let
         sha1 = "85568de3cf150ff49fa51825f03a8c880ddcc5c4";
       };
     };
-    "async-2.1.5" = {
+    "async-2.4.1" = {
       name = "async";
       packageName = "async";
-      version = "2.1.5";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.1.5.tgz";
-        sha1 = "e587c68580994ac67fc56ff86d3ac56bdbe810bc";
+        url = "https://registry.npmjs.org/async/-/async-2.4.1.tgz";
+        sha1 = "62a56b279c98a11d0987096a01cc3eeb8eb7bbd7";
       };
     };
     "lokijs-1.4.3" = {
@@ -19503,40 +19899,40 @@ let
         sha1 = "f2a47ba8d6991c92d6da6a5b35be79b674453abb";
       };
     };
-    "vscode-jsonrpc-3.0.4" = {
+    "vscode-jsonrpc-3.2.0" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
-      version = "3.0.4";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.0.4.tgz";
-        sha1 = "07fdae38e3122412faddf45756fba1d2cb1eb9c8";
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.2.0.tgz";
+        sha1 = "c92b946ac385c8b41439b842b6bd07d517b64a7d";
       };
     };
-    "vscode-languageclient-3.0.4" = {
+    "vscode-languageclient-3.2.2" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
-      version = "3.0.4";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-3.0.4.tgz";
-        sha1 = "d0a4ecf3e1c5bf486a49a161962f9189b0bd2bf7";
+        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-3.2.2.tgz";
+        sha1 = "7843839614aa099f172b4e5f8967d42b58d77f0d";
       };
     };
-    "vscode-languageserver-3.0.5" = {
+    "vscode-languageserver-3.2.2" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
-      version = "3.0.5";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.0.5.tgz";
-        sha1 = "080f7b7ce6d43a0785a21195e00068ac57558c85";
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.2.2.tgz";
+        sha1 = "9a7b66e1252838ea51a0061145089a2b88a9516a";
       };
     };
-    "vscode-languageserver-types-3.0.3" = {
+    "vscode-languageserver-types-3.2.0" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.0.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.0.3.tgz";
-        sha1 = "303b2a307c20952ff5c1f5a608f3c91146028d47";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.2.0.tgz";
+        sha1 = "8874ed92dbfa66df5fb0e2bf73f614cf9483be8f";
       };
     };
     "babybird-0.0.1" = {
@@ -19677,15 +20073,6 @@ let
         sha1 = "b1c9cc044ef1b9fe63606fc141abbb32e14730cc";
       };
     };
-    "define-properties-1.1.2" = {
-      name = "define-properties";
-      packageName = "define-properties";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
-        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
-      };
-    };
     "bunyan-1.8.12" = {
       name = "bunyan";
       packageName = "bunyan";
@@ -19713,13 +20100,13 @@ let
         sha1 = "9cea9b6386ac301c741838ca3cb91e66dbfbf669";
       };
     };
-    "hot-shots-4.5.0" = {
+    "hot-shots-4.7.0" = {
       name = "hot-shots";
       packageName = "hot-shots";
-      version = "4.5.0";
+      version = "4.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hot-shots/-/hot-shots-4.5.0.tgz";
-        sha1 = "d0b7c2ad367cbb2f8c062b26151c0949ad9271f9";
+        url = "https://registry.npmjs.org/hot-shots/-/hot-shots-4.7.0.tgz";
+        sha1 = "1fb2eecd234c938e3ccb56c93681b573455dd64c";
       };
     };
     "limitation-0.2.0" = {
@@ -20263,6 +20650,69 @@ let
         sha1 = "c83a1830f4e5ef0b93ef2a3488e724f8de016ac7";
       };
     };
+    "browserify-incremental-3.1.1" = {
+      name = "browserify-incremental";
+      packageName = "browserify-incremental";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-incremental/-/browserify-incremental-3.1.1.tgz";
+        sha1 = "0713cb7587247a632a9f08cf1bd169b878b62a8a";
+      };
+    };
+    "node-static-0.7.10" = {
+      name = "node-static";
+      packageName = "node-static";
+      version = "0.7.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-static/-/node-static-0.7.10.tgz";
+        sha512 = "3a22r0jr4112h0vr1smzrsaygc607v13arhjbjwzmy1jvmcrdlq9ydnw96ailkrlnwl3k0l65hjcgnrgkdwyc2qhbfnq2bgk0xz7pkd";
+      };
+    };
+    "string-stream-0.0.7" = {
+      name = "string-stream";
+      packageName = "string-stream";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-stream/-/string-stream-0.0.7.tgz";
+        sha1 = "cfcde82799fa62f303429aaa79336ee8834332fe";
+      };
+    };
+    "tree-kill-1.2.0" = {
+      name = "tree-kill";
+      packageName = "tree-kill";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz";
+        sha512 = "1r0mixygpdqrm2fn92z4cyxzbnvimm16k5gdm2m2jxx8wrj3w0mql9s748hcqp2nzcnybnw74wkm211zlr9ld0j2x1q8f153mszlm8f";
+      };
+    };
+    "watchpack-1.4.0" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz";
+        sha1 = "4a1472bcbb952bd0a9bb4036801f954dfb39faac";
+      };
+    };
+    "JSONStream-0.10.0" = {
+      name = "JSONStream";
+      packageName = "JSONStream";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/JSONStream/-/JSONStream-0.10.0.tgz";
+        sha1 = "74349d0d89522b71f30f0a03ff9bd20ca6f12ac0";
+      };
+    };
+    "browserify-cache-api-3.0.1" = {
+      name = "browserify-cache-api";
+      packageName = "browserify-cache-api";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserify-cache-api/-/browserify-cache-api-3.0.1.tgz";
+        sha1 = "96247e853f068fd6e0d45cc73f0bb2cd9778ef02";
+      };
+    };
     "commoner-0.10.8" = {
       name = "commoner";
       packageName = "commoner";
@@ -20651,13 +21101,13 @@ let
         sha512 = "2441a84bwxxm0zcn133ngf0aj1f8jidgfsvm40wa8ap98lkzyzv8fppfsl1dhxpni70mpgl8yik9anc2vrgh1n1immkhw3z6727r9ll";
       };
     };
-    "chalk-2.0.1" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "2.0.1";
+    "basic-auth-2.0.0" = {
+      name = "basic-auth";
+      packageName = "basic-auth";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz";
-        sha512 = "398mvhli8dvcn53xaqllyjzp19z8gh3j75fvp4gv5njnnkhsikx3byfb6lx432pl0073hn75prc8gb0ysbf65bnzlcbq5iy89f8b7rj";
+        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz";
+        sha1 = "015db3f353e02e56377755f962742e8981e7bbba";
       };
     };
     "detect-port-1.2.1" = {
@@ -20678,13 +21128,13 @@ let
         sha1 = "fc8fa23ddb4ef9e5e0ab6e1e64f679a24a56761f";
       };
     };
-    "micro-8.0.1" = {
+    "micro-9.0.0" = {
       name = "micro";
       packageName = "micro";
-      version = "8.0.1";
+      version = "9.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micro/-/micro-8.0.1.tgz";
-        sha512 = "3fbrk4yxb1bj097n2w8iqapyq5znp13p8lgc3kd6h53aakpp52779qicbfzd89dva5yj5pinb9swf92j8k5ksl82llahc0y8kg45q1z";
+        url = "https://registry.npmjs.org/micro/-/micro-9.0.0.tgz";
+        sha512 = "1ga72y60zj44dy1y3md37x86klv6nxs7ii0aap37p4qwhq5rb5mcl5yn0kmkrgy6wbvgcnw761rjq7ripiqn1w8q2nl23g2rdj64x69";
       };
     };
     "micro-compress-1.0.0" = {
@@ -20696,15 +21146,6 @@ let
         sha1 = "53f5a80b4ad0320ca165a559b6e3df145d4f704f";
       };
     };
-    "mime-types-2.1.16" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.1.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz";
-        sha1 = "2b858a52e5ecd516db897ac2be87487830698e23";
-      };
-    };
     "node-version-1.1.0" = {
       name = "node-version";
       packageName = "node-version";
@@ -20723,6 +21164,15 @@ let
         sha512 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
       };
     };
+    "chalk-2.0.1" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz";
+        sha512 = "398mvhli8dvcn53xaqllyjzp19z8gh3j75fvp4gv5njnnkhsikx3byfb6lx432pl0073hn75prc8gb0ysbf65bnzlcbq5iy89f8b7rj";
+      };
+    };
     "pkginfo-0.4.0" = {
       name = "pkginfo";
       packageName = "pkginfo";
@@ -20750,15 +21200,6 @@ let
         sha1 = "5c0a3f29c8ccffbbb1ec941dcec09d71fa32f36a";
       };
     };
-    "mime-db-1.29.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.29.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz";
-        sha1 = "48d26d235589651704ac5916ca06001914266878";
-      };
-    };
     "pify-3.0.0" = {
       name = "pify";
       packageName = "pify";
@@ -20966,6 +21407,15 @@ let
         sha1 = "1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff";
       };
     };
+    "async-2.1.5" = {
+      name = "async";
+      packageName = "async";
+      version = "2.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-2.1.5.tgz";
+        sha1 = "e587c68580994ac67fc56ff86d3ac56bdbe810bc";
+      };
+    };
     "assert-plus-0.1.5" = {
       name = "assert-plus";
       packageName = "assert-plus";
@@ -21155,13 +21605,13 @@ let
         sha1 = "97e4e63ae46b21912cd9475bc31469d26f5ade66";
       };
     };
-    "csv-parse-1.2.1" = {
+    "csv-parse-1.2.2" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.1.tgz";
-        sha1 = "9199c23f2490d98c4d9ab2a0167b06927498c9df";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.2.tgz";
+        sha512 = "0f3kdjcfncknijsn256frrcdmpw52wkimylhbds095kmkva57dhhnrlqzlzsxvf60d1qzfzqlhhc0wj25b9rg1w6rwxfixx2q9a6bx7";
       };
     };
     "stream-transform-0.1.2" = {
@@ -21236,15 +21686,6 @@ let
         sha1 = "0abf1af89a8f5129a81f18c2b35b21df22622f60";
       };
     };
-    "http-signature-1.2.0" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
-      };
-    };
     "once-1.3.0" = {
       name = "once";
       packageName = "once";
@@ -21380,13 +21821,13 @@ let
         sha1 = "ddd52c587033f49e94b71fc55569f252e8ff5f85";
       };
     };
-    "clap-1.2.0" = {
+    "clap-1.2.3" = {
       name = "clap";
       packageName = "clap";
-      version = "1.2.0";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz";
-        sha1 = "59c90fe3e137104746ff19469a27a634ff68c857";
+        url = "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz";
+        sha512 = "1ha66pbxhll7c6vv641rahzq0ylwaifskwpwggy9k4sfh8r9n0r8mpqbib22dppb7zfrk6a84a4dyaal7mqs12jvlaxszz11py0nap0";
       };
     };
     "enhanced-resolve-2.3.0" = {
@@ -21884,15 +22325,6 @@ let
         sha1 = "4424aca20e14d255c0b0889af6f6b8973da10e0d";
       };
     };
-    "tmp-0.0.33" = {
-      name = "tmp";
-      packageName = "tmp";
-      version = "0.0.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
-        sha512 = "0drg2bck1cj8677rgs1l98v7vqaxawcqh6ja87qilwnd719l5y0lzv5ssn3pcwa37fdbg4188y6x15a90vkllyvfpd9v7fai2b8j44d";
-      };
-    };
     "follow-redirects-0.0.3" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
@@ -21992,15 +22424,6 @@ let
         sha1 = "b951f4abb6bd617e66f63eb891498e391763e309";
       };
     };
-    "watchpack-1.4.0" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz";
-        sha1 = "4a1472bcbb952bd0a9bb4036801f954dfb39faac";
-      };
-    };
     "webpack-sources-1.0.1" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
@@ -22046,13 +22469,13 @@ let
         sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
       };
     };
-    "big.js-3.1.3" = {
+    "big.js-3.2.0" = {
       name = "big.js";
       packageName = "big.js";
-      version = "3.1.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz";
-        sha1 = "4cada2193652eb3ca9ec8e55c9015669c9806978";
+        url = "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz";
+        sha512 = "3qicqys1bg16slzbzjn3f0fir82r4d1h6lvy5y0cqqwzbs2iaxf93xgi6x47m7l87i102ifjn4qvjbf764gyncsxcqw7lw33mk7y4zs";
       };
     };
     "emojis-list-2.1.0" = {
@@ -22091,123 +22514,6 @@ let
         sha512 = "3q09f2w67qqhl3lwiisj4422mj9nfldg4cxmidfrjcwn3k7spm9g46x4n1j6kv39bi9khmcpyvfa3fwski488ibivyg9bwijjw2cr93";
       };
     };
-    "death-1.1.0" = {
-      name = "death";
-      packageName = "death";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/death/-/death-1.1.0.tgz";
-        sha1 = "01aa9c401edd92750514470b8266390c66c67318";
-      };
-    };
-    "gunzip-maybe-1.4.1" = {
-      name = "gunzip-maybe";
-      packageName = "gunzip-maybe";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.1.tgz";
-        sha512 = "3d6jyhcq21cxy2n6mnalnxcdxl9i00n8qka7awrqamggss8yllz57msx7c480knv037snkzkymq6npl36wlpl71h54x511dlchavnxa";
-      };
-    };
-    "leven-2.1.0" = {
-      name = "leven";
-      packageName = "leven";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
-        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
-      };
-    };
-    "node-emoji-1.8.1" = {
-      name = "node-emoji";
-      packageName = "node-emoji";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz";
-        sha512 = "1bdm7sms59bj5fa575nda007mvn4nibjla4hm9bf9ry70kgqw7slmz3l4md4cyx2j4zda0dh0mcjildkzq7ba3i9qzapha93l14qjzs";
-      };
-    };
-    "object-path-0.11.4" = {
-      name = "object-path";
-      packageName = "object-path";
-      version = "0.11.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz";
-        sha1 = "370ae752fbf37de3ea70a861c23bba8915691949";
-      };
-    };
-    "proper-lockfile-2.0.1" = {
-      name = "proper-lockfile";
-      packageName = "proper-lockfile";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-2.0.1.tgz";
-        sha1 = "159fb06193d32003f4b3691dd2ec1a634aa80d1d";
-      };
-    };
-    "request-capture-har-1.2.2" = {
-      name = "request-capture-har";
-      packageName = "request-capture-har";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request-capture-har/-/request-capture-har-1.2.2.tgz";
-        sha1 = "cd692cfb2cc744fd84a3358aac6ee51528cf720d";
-      };
-    };
-    "tar-fs-1.15.3" = {
-      name = "tar-fs";
-      packageName = "tar-fs";
-      version = "1.15.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-1.15.3.tgz";
-        sha1 = "eccf935e941493d8151028e636e51ce4c3ca7f20";
-      };
-    };
-    "v8-compile-cache-1.1.0" = {
-      name = "v8-compile-cache";
-      packageName = "v8-compile-cache";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.0.tgz";
-        sha1 = "1dc2a340fb8e5f800a32bcdbfb8c23cd747021b9";
-      };
-    };
-    "is-deflate-1.0.0" = {
-      name = "is-deflate";
-      packageName = "is-deflate";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz";
-        sha1 = "c862901c3c161fb09dac7cdc7e784f80e98f2f14";
-      };
-    };
-    "is-gzip-1.0.0" = {
-      name = "is-gzip";
-      packageName = "is-gzip";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz";
-        sha1 = "6ca8b07b99c77998025900e555ced8ed80879a83";
-      };
-    };
-    "peek-stream-1.1.2" = {
-      name = "peek-stream";
-      packageName = "peek-stream";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.2.tgz";
-        sha1 = "97eb76365bcfd8c89e287f55c8b69d4c3e9bcc52";
-      };
-    };
-    "lodash.toarray-4.4.0" = {
-      name = "lodash.toarray";
-      packageName = "lodash.toarray";
-      version = "4.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
-        sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
-      };
-    };
     "cli-list-0.2.0" = {
       name = "cli-list";
       packageName = "cli-list";
@@ -22691,54 +22997,96 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.9.13";
+    version = "1.10.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.9.13.tgz";
-      sha1 = "5ab8089cee9a9bf4ba46298d87c7039a4f2a7410";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.10.4.tgz";
+      sha1 = "8df4818788ba3735122383f99c61cc6ce50626fa";
     };
     dependencies = [
-      sources."colors-0.6.0-1"
-      sources."ejs-2.3.4"
-      sources."pkginfo-0.2.2"
-      sources."commander-0.6.1"
-      sources."wrench-1.3.9"
-      sources."xmldom-0.1.19"
-      sources."jsonlint-1.5.1"
-      (sources."uglify-js-2.6.1" // {
+      sources."async-2.5.0"
+      (sources."babel-core-6.26.0" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."resolve-1.4.0"
+      (sources."babel-generator-6.26.0" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."babel-traverse-6.26.0"
+      sources."babel-types-6.26.0"
+      sources."babylon-6.18.0"
+      sources."chmodr-1.0.2"
+      sources."colors-0.6.0-1"
+      sources."commander-0.6.1"
+      sources."deasync-0.1.10"
+      sources."ejs-2.3.4"
+      sources."fs-extra-3.0.1"
       sources."global-paths-0.1.2"
-      sources."source-map-0.1.9"
-      sources."xml2tss-0.0.5"
+      sources."jsonlint-1.5.1"
       sources."moment-2.17.1"
       sources."node.extend-1.0.10"
-      sources."nomnom-1.8.1"
-      sources."JSV-4.0.2"
-      sources."underscore-1.6.0"
-      sources."chalk-0.4.0"
-      sources."has-color-0.1.7"
-      sources."ansi-styles-1.0.0"
-      sources."strip-ansi-0.1.1"
-      sources."async-0.2.10"
-      sources."uglify-to-browserify-1.0.2"
-      sources."yargs-3.10.0"
-      sources."camelcase-1.2.1"
-      sources."cliui-2.1.0"
-      sources."decamelize-1.2.0"
-      sources."window-size-0.1.0"
-      sources."center-align-0.1.3"
-      sources."right-align-0.1.3"
-      sources."wordwrap-0.0.2"
-      sources."align-text-0.1.4"
-      sources."lazy-cache-1.0.4"
-      sources."kind-of-3.2.2"
-      sources."longest-1.0.1"
-      sources."repeat-string-1.6.1"
-      sources."is-buffer-1.1.5"
-      sources."path-parse-1.0.5"
+      sources."pkginfo-0.2.2"
+      sources."resolve-1.4.0"
+      sources."source-map-0.1.9"
+      sources."walk-sync-0.3.2"
+      sources."xml2tss-0.0.5"
+      sources."xmldom-0.1.19"
+      sources."lodash-4.17.4"
+      sources."babel-code-frame-6.26.0"
+      sources."babel-helpers-6.24.1"
+      sources."babel-messages-6.23.0"
+      sources."babel-register-6.26.0"
+      sources."babel-runtime-6.26.0"
+      sources."babel-template-6.26.0"
+      sources."convert-source-map-1.5.0"
+      sources."debug-2.6.8"
+      sources."json5-0.5.1"
+      sources."minimatch-3.0.4"
+      sources."path-is-absolute-1.0.1"
+      sources."private-0.1.7"
+      sources."slash-1.0.0"
+      sources."chalk-1.1.3"
+      sources."esutils-2.0.2"
+      sources."js-tokens-3.0.2"
+      sources."ansi-styles-2.2.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."has-ansi-2.0.0"
+      sources."strip-ansi-3.0.1"
+      sources."supports-color-2.0.0"
+      sources."ansi-regex-2.1.1"
+      sources."core-js-2.5.1"
+      sources."home-or-tmp-2.0.0"
+      sources."mkdirp-0.5.1"
+      (sources."source-map-support-0.4.18" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."minimist-0.0.8"
+      sources."regenerator-runtime-0.11.0"
+      sources."ms-2.0.0"
+      sources."brace-expansion-1.1.8"
+      sources."balanced-match-1.0.0"
+      sources."concat-map-0.0.1"
+      sources."detect-indent-4.0.0"
+      sources."jsesc-1.3.0"
+      sources."trim-right-1.0.1"
+      sources."repeating-2.0.1"
+      sources."is-finite-1.0.2"
+      sources."number-is-nan-1.0.1"
+      sources."globals-9.18.0"
+      sources."invariant-2.2.2"
+      sources."loose-envify-1.3.1"
+      sources."to-fast-properties-1.0.3"
+      sources."bindings-1.2.1"
+      sources."nan-2.7.0"
+      sources."graceful-fs-4.1.11"
+      sources."jsonfile-3.0.1"
+      sources."universalify-0.1.1"
       sources."array-unique-0.2.1"
       (sources."global-modules-0.2.3" // {
         dependencies = [
@@ -22756,10 +23104,23 @@ in
       sources."which-1.3.0"
       sources."parse-passwd-1.0.0"
       sources."isexe-2.0.0"
+      (sources."nomnom-1.8.1" // {
+        dependencies = [
+          sources."chalk-0.4.0"
+          sources."ansi-styles-1.0.0"
+          sources."strip-ansi-0.1.1"
+        ];
+      })
+      sources."JSV-4.0.2"
+      sources."underscore-1.6.0"
+      sources."has-color-0.1.7"
+      sources."is-0.3.0"
+      sources."path-parse-1.0.5"
       sources."amdefine-1.0.1"
+      sources."ensure-posix-path-1.0.2"
+      sources."matcher-collection-1.0.5"
       sources."xml2js-0.2.8"
       sources."sax-0.5.8"
-      sources."is-0.3.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -22957,7 +23318,7 @@ in
       })
       sources."moment-2.18.1"
       sources."ms-rest-2.2.2"
-      (sources."ms-rest-azure-2.3.0" // {
+      (sources."ms-rest-azure-2.3.1" // {
         dependencies = [
           sources."async-0.2.7"
         ];
@@ -23057,7 +23418,7 @@ in
       sources."has-color-0.1.7"
       sources."ansi-styles-1.0.0"
       sources."strip-ansi-0.1.1"
-      sources."@types/node-8.0.27"
+      sources."@types/node-8.0.28"
       sources."@types/request-2.0.3"
       sources."@types/uuid-3.4.2"
       sources."is-buffer-1.1.5"
@@ -23076,7 +23437,7 @@ in
       sources."i-0.3.5"
       sources."mkdirp-0.5.1"
       sources."ncp-0.4.2"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."minimist-0.0.8"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
@@ -23207,10 +23568,10 @@ in
   bower = nodeEnv.buildNodePackage {
     name = "bower";
     packageName = "bower";
-    version = "1.8.0";
+    version = "1.8.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bower/-/bower-1.8.0.tgz";
-      sha1 = "55dbebef0ad9155382d9e9d3e497c1372345b44a";
+      url = "https://registry.npmjs.org/bower/-/bower-1.8.2.tgz";
+      sha1 = "adf53529c8d4af02ef24fb8d5341c1419d33e2f7";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -23230,7 +23591,7 @@ in
     };
     dependencies = [
       sources."argparse-1.0.4"
-      sources."bower-1.8.0"
+      sources."bower-1.8.2"
       sources."bower-endpoint-parser-0.2.1"
       sources."bower-json-0.6.0"
       sources."bower-logger-0.2.1"
@@ -23320,7 +23681,7 @@ in
         ];
       })
       sources."path-is-absolute-1.0.1"
-      (sources."rimraf-2.6.1" // {
+      (sources."rimraf-2.6.2" // {
         dependencies = [
           sources."glob-7.1.2"
         ];
@@ -23452,7 +23813,7 @@ in
       sources."create-hash-1.1.3"
       sources."create-hmac-1.1.6"
       sources."diffie-hellman-5.0.2"
-      sources."pbkdf2-3.0.13"
+      sources."pbkdf2-3.0.14"
       sources."public-encrypt-4.0.0"
       sources."randombytes-2.0.5"
       sources."browserify-aes-1.0.8"
@@ -23747,7 +24108,7 @@ in
       sources."ip-set-1.0.1"
       sources."mkdirp-0.3.5"
       sources."peer-wire-swarm-0.12.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."torrent-discovery-5.4.0"
       sources."torrent-piece-1.1.1"
       (sources."random-access-file-1.8.1" // {
@@ -24069,7 +24430,7 @@ in
         ];
       })
       sources."is-url-1.2.2"
-      sources."interpret-1.0.3"
+      sources."interpret-1.0.4"
       sources."rechoir-0.6.2"
       sources."fs.realpath-1.0.0"
       sources."resolve-1.4.0"
@@ -24177,7 +24538,7 @@ in
       sources."create-hash-1.1.3"
       sources."create-hmac-1.1.6"
       sources."diffie-hellman-5.0.2"
-      sources."pbkdf2-3.0.13"
+      sources."pbkdf2-3.0.14"
       sources."public-encrypt-4.0.0"
       sources."randombytes-2.0.5"
       sources."browserify-aes-1.0.8"
@@ -24252,19 +24613,19 @@ in
       sources."ms-2.0.0"
       sources."array-flatten-1.1.1"
       sources."content-disposition-0.5.2"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
       sources."depd-1.1.1"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      sources."finalhandler-1.0.4"
+      sources."etag-1.8.1"
+      sources."finalhandler-1.0.5"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."on-finished-2.3.0"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."qs-6.5.0"
@@ -24277,7 +24638,7 @@ in
       sources."utils-merge-1.0.0"
       sources."unpipe-1.0.0"
       sources."ee-first-1.1.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."http-errors-1.6.2"
@@ -24636,7 +24997,7 @@ in
       sources."media-typer-0.3.0"
       sources."methods-1.1.2"
       sources."on-finished-2.2.1"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.3"
       sources."proxy-addr-1.0.10"
       sources."qs-2.3.3"
@@ -24659,7 +25020,7 @@ in
       sources."ms-0.7.0"
       sources."crc-3.2.1"
       sources."ee-first-1.1.0"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.0.5"
       sources."destroy-1.0.3"
       sources."mime-1.2.11"
@@ -24670,8 +25031,9 @@ in
       sources."faye-websocket-0.11.1"
       sources."eventemitter3-0.1.6"
       sources."better-curry-1.6.0"
-      sources."websocket-driver-0.6.5"
-      sources."websocket-extensions-0.1.1"
+      sources."websocket-driver-0.7.0"
+      sources."http-parser-js-0.4.7"
+      sources."websocket-extensions-0.1.2"
       (sources."native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" // {
         dependencies = [
           sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#307e77a47ebba57a5ae9118a284e916e5ebb305a"
@@ -24821,7 +25183,7 @@ in
       sources."bytewise-1.1.0"
       sources."ltgt-2.1.3"
       sources."pull-level-2.0.3"
-      sources."pull-stream-3.6.0"
+      sources."pull-stream-3.6.1"
       sources."typewiselite-1.0.0"
       sources."bytewise-core-1.2.3"
       sources."typewise-1.0.3"
@@ -24878,10 +25240,14 @@ in
       sources."JSONStream-1.3.1"
       sources."async-2.5.0"
       sources."aws4-1.6.0"
-      sources."aws-sdk-2.110.0"
+      sources."aws-sdk-2.120.0"
       sources."ini-1.3.4"
       sources."optimist-0.6.1"
-      sources."request-2.81.0"
+      (sources."request-2.82.0" // {
+        dependencies = [
+          sources."uuid-3.1.0"
+        ];
+      })
       sources."jsonparse-1.3.1"
       sources."through-2.3.8"
       sources."lodash-4.17.4"
@@ -24901,22 +25267,22 @@ in
       sources."punycode-1.3.2"
       sources."wordwrap-0.0.3"
       sources."minimist-0.0.10"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
       (sources."tough-cookie-2.3.2" // {
@@ -24927,45 +25293,31 @@ in
       sources."tunnel-agent-0.6.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."core-util-is-1.0.2"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -24991,7 +25343,7 @@ in
     dependencies = [
       sources."auto-bind-1.1.0"
       sources."clipboardy-1.1.4"
-      sources."conf-1.2.0"
+      sources."conf-1.3.0"
       sources."got-7.1.0"
       sources."has-ansi-3.0.0"
       sources."import-jsx-1.3.0"
@@ -25110,7 +25462,7 @@ in
       sources."core-js-2.5.1"
       sources."home-or-tmp-2.0.0"
       sources."mkdirp-0.5.1"
-      sources."source-map-support-0.4.17"
+      sources."source-map-support-0.4.18"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."minimist-0.0.8"
@@ -25153,7 +25505,7 @@ in
         ];
       })
       sources."is-fullwidth-code-point-2.0.0"
-      (sources."fbjs-0.8.14" // {
+      (sources."fbjs-0.8.15" // {
         dependencies = [
           sources."core-js-1.2.7"
         ];
@@ -25163,10 +25515,10 @@ in
       sources."promise-7.3.1"
       sources."setimmediate-1.0.5"
       sources."ua-parser-js-0.7.14"
-      sources."node-fetch-1.7.2"
+      sources."node-fetch-1.7.3"
       sources."whatwg-fetch-2.0.3"
       sources."encoding-0.1.12"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."asap-2.0.6"
       sources."camelcase-keys-2.1.0"
       sources."decamelize-1.2.0"
@@ -25221,10 +25573,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "4.6.1";
+    version = "4.7.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-4.6.1.tgz";
-      sha1 = "ddc7fc7fd70bf93205b0b3449bb16a1e9e7d4950";
+      url = "https://registry.npmjs.org/eslint/-/eslint-4.7.2.tgz";
+      sha1 = "ff6f5f5193848a27ee9b627be3e73fb9cb5e662e";
     };
     dependencies = [
       sources."ajv-5.2.2"
@@ -25242,10 +25594,10 @@ in
       })
       sources."concat-stream-1.6.0"
       sources."cross-spawn-5.1.0"
-      sources."debug-2.6.8"
+      sources."debug-3.0.1"
       sources."doctrine-2.0.0"
       sources."eslint-scope-3.7.1"
-      sources."espree-3.5.0"
+      sources."espree-3.5.1"
       sources."esquery-1.0.0"
       sources."estraverse-4.2.0"
       sources."esutils-2.0.2"
@@ -25255,9 +25607,9 @@ in
       sources."globals-9.18.0"
       sources."ignore-3.3.5"
       sources."imurmurhash-0.1.4"
-      sources."inquirer-3.2.3"
+      sources."inquirer-3.3.0"
       sources."is-resolvable-1.0.0"
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."json-stable-stringify-1.0.1"
       sources."levn-0.3.0"
       sources."lodash-4.17.4"
@@ -25266,7 +25618,7 @@ in
       sources."natural-compare-1.4.0"
       sources."optionator-0.8.2"
       sources."path-is-inside-1.0.2"
-      sources."pluralize-4.0.0"
+      sources."pluralize-7.0.0"
       sources."progress-2.0.0"
       sources."require-uncached-1.0.3"
       sources."semver-5.4.1"
@@ -25331,7 +25683,7 @@ in
       sources."is-path-in-cwd-1.0.0"
       sources."pify-2.3.0"
       sources."pinkie-promise-2.0.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."array-union-1.0.2"
       sources."arrify-1.0.1"
       sources."array-uniq-1.0.3"
@@ -25342,10 +25694,10 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."wrappy-1.0.2"
-      sources."ansi-escapes-2.0.0"
+      sources."ansi-escapes-3.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
+      sources."external-editor-2.0.5"
       sources."figures-2.0.0"
       sources."mute-stream-0.0.7"
       sources."run-async-2.3.0"
@@ -25357,9 +25709,9 @@ in
       sources."onetime-2.0.1"
       sources."signal-exit-3.0.2"
       sources."mimic-fn-1.1.0"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
+      sources."tmp-0.0.33"
       sources."os-tmpdir-1.0.2"
       sources."is-promise-2.1.0"
       sources."is-fullwidth-code-point-2.0.0"
@@ -25405,7 +25757,7 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      (sources."eslint-4.6.1" // {
+      (sources."eslint-4.7.2" // {
         dependencies = [
           sources."chalk-2.1.0"
           sources."strip-ansi-4.0.0"
@@ -25430,10 +25782,10 @@ in
       sources."babel-code-frame-6.26.0"
       sources."concat-stream-1.6.0"
       sources."cross-spawn-5.1.0"
-      sources."debug-2.6.8"
+      sources."debug-3.0.1"
       sources."doctrine-2.0.0"
       sources."eslint-scope-3.7.1"
-      sources."espree-3.5.0"
+      sources."espree-3.5.1"
       sources."esquery-1.0.0"
       sources."estraverse-4.2.0"
       sources."esutils-2.0.2"
@@ -25443,7 +25795,7 @@ in
       sources."globals-9.18.0"
       sources."ignore-3.3.5"
       sources."imurmurhash-0.1.4"
-      (sources."inquirer-3.2.3" // {
+      (sources."inquirer-3.3.0" // {
         dependencies = [
           sources."chalk-2.1.0"
           sources."strip-ansi-4.0.0"
@@ -25453,7 +25805,7 @@ in
         ];
       })
       sources."is-resolvable-1.0.0"
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."json-stable-stringify-1.0.1"
       sources."levn-0.3.0"
       sources."lodash-4.17.4"
@@ -25461,7 +25813,7 @@ in
       sources."mkdirp-0.5.1"
       sources."natural-compare-1.4.0"
       sources."path-is-inside-1.0.2"
-      sources."pluralize-4.0.0"
+      sources."pluralize-7.0.0"
       sources."progress-2.0.0"
       sources."require-uncached-1.0.3"
       sources."semver-5.4.1"
@@ -25514,7 +25866,7 @@ in
       sources."is-path-in-cwd-1.0.0"
       sources."pify-2.3.0"
       sources."pinkie-promise-2.0.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."array-union-1.0.2"
       sources."arrify-1.0.1"
       sources."array-uniq-1.0.3"
@@ -25525,10 +25877,10 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."wrappy-1.0.2"
-      sources."ansi-escapes-2.0.0"
+      sources."ansi-escapes-3.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
+      sources."external-editor-2.0.5"
       sources."figures-2.0.0"
       sources."mute-stream-0.0.7"
       sources."run-async-2.3.0"
@@ -25545,9 +25897,9 @@ in
       sources."onetime-2.0.1"
       sources."signal-exit-3.0.2"
       sources."mimic-fn-1.1.0"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
+      sources."tmp-0.0.33"
       sources."os-tmpdir-1.0.2"
       sources."is-promise-2.1.0"
       sources."is-fullwidth-code-point-2.0.0"
@@ -25798,7 +26150,7 @@ in
     dependencies = [
       sources."bower-endpoint-parser-0.2.1"
       sources."bower-logger-0.2.1"
-      sources."bower-1.8.0"
+      sources."bower-1.8.2"
       sources."glob-3.2.11"
       sources."inherits-2.0.3"
       sources."minimatch-0.3.0"
@@ -25940,7 +26292,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -25953,9 +26305,14 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -25971,7 +26328,7 @@ in
       })
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."signal-exit-3.0.2"
       sources."string-width-1.0.2"
@@ -25984,67 +26341,53 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -26056,6 +26399,27 @@ in
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."debug-2.6.8"
@@ -26071,12 +26435,13 @@ in
         ];
       })
       sources."lazy-1.0.11"
-      sources."caller-0.0.1"
-      sources."tape-2.3.3"
-      sources."deep-equal-0.1.2"
-      sources."defined-0.0.0"
-      sources."through-2.3.8"
-      sources."resumer-0.0.0"
+      (sources."caller-0.0.1" // {
+        dependencies = [
+          sources."tape-2.3.3"
+          sources."deep-equal-0.1.2"
+          sources."defined-0.0.0"
+        ];
+      })
       sources."i-0.3.5"
       sources."ncp-0.4.2"
     ];
@@ -26270,7 +26635,7 @@ in
       sources."chalk-1.1.3"
       sources."deprecated-0.0.1"
       sources."gulp-util-3.0.8"
-      sources."interpret-1.0.3"
+      sources."interpret-1.0.4"
       sources."liftoff-2.3.0"
       sources."minimist-1.2.0"
       sources."orchestrator-0.3.8"
@@ -26295,7 +26660,7 @@ in
       sources."array-differ-1.0.0"
       sources."array-uniq-1.0.3"
       sources."beeper-1.1.1"
-      sources."dateformat-2.0.0"
+      sources."dateformat-2.2.0"
       sources."fancy-log-1.3.0"
       sources."gulplog-1.0.0"
       sources."has-gulplog-0.1.0"
@@ -26596,21 +26961,23 @@ in
   ionic = nodeEnv.buildNodePackage {
     name = "ionic";
     packageName = "ionic";
-    version = "3.9.2";
+    version = "3.10.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ionic/-/ionic-3.9.2.tgz";
-      sha512 = "0d5fbf59ri01dfn213cxbc7vb2z6c4i3sz4k9kji1p8xlcfxg5nj1aprjm4zvdmc6mgryp15g5kvsy7p1qdh2rcdvcqiyn1r70g834c";
+      url = "https://registry.npmjs.org/ionic/-/ionic-3.10.3.tgz";
+      sha512 = "2n96j5a5fpy6pjgmgsnkx5d2asxha7yvlmlj77fpg31qg7nij0p9y4sq00zjrdzhzq2avsc9r25pjgy3i8cb16il9w9rrd210rlzc15";
     };
     dependencies = [
-      sources."@ionic/cli-utils-1.9.2"
+      sources."@ionic/cli-utils-1.10.2"
+      sources."@ionic/discover-0.3.1"
       sources."chalk-2.1.0"
       sources."opn-5.1.0"
       sources."os-name-2.0.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
       sources."tslib-1.7.1"
-      sources."@types/gulp-3.8.33"
       sources."archiver-2.0.3"
+      sources."basic-auth-1.1.0"
+      sources."body-parser-1.18.1"
       sources."chokidar-1.7.0"
       sources."ci-info-1.1.1"
       sources."cross-spawn-5.1.0"
@@ -26622,7 +26989,7 @@ in
           sources."qs-6.5.0"
         ];
       })
-      sources."inquirer-3.2.3"
+      sources."inquirer-3.3.0"
       sources."leek-0.0.24"
       sources."lodash-4.17.4"
       sources."minimist-1.2.0"
@@ -26633,7 +27000,7 @@ in
           sources."is-fullwidth-code-point-2.0.0"
         ];
       })
-      sources."ssh-config-1.1.0"
+      sources."ssh-config-1.1.1"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."is-fullwidth-code-point-2.0.0"
@@ -26653,10 +27020,7 @@ in
       sources."tiny-lr-1.0.5"
       sources."uuid-3.1.0"
       sources."wrap-ansi-3.0.1"
-      sources."@types/orchestrator-0.3.0"
-      sources."@types/vinyl-2.0.1"
-      sources."@types/node-8.0.27"
-      sources."@types/q-0.0.37"
+      sources."ws-3.2.0"
       sources."archiver-utils-1.3.0"
       sources."async-2.5.0"
       sources."buffer-crc32-0.2.13"
@@ -26691,6 +27055,24 @@ in
       sources."compress-commons-1.2.0"
       sources."crc32-stream-2.0.0"
       sources."crc-3.4.4"
+      sources."bytes-3.0.0"
+      sources."content-type-1.0.4"
+      sources."debug-2.6.8"
+      sources."depd-1.1.1"
+      sources."http-errors-1.6.2"
+      sources."iconv-lite-0.4.19"
+      sources."on-finished-2.3.0"
+      sources."qs-6.5.1"
+      sources."raw-body-2.3.2"
+      sources."type-is-1.6.15"
+      sources."ms-2.0.0"
+      sources."setprototypeof-1.0.3"
+      sources."statuses-1.3.1"
+      sources."ee-first-1.1.1"
+      sources."unpipe-1.0.0"
+      sources."media-typer-0.3.0"
+      sources."mime-types-2.1.17"
+      sources."mime-db-1.30.0"
       sources."anymatch-1.3.2"
       sources."async-each-1.0.1"
       sources."glob-parent-2.0.0"
@@ -26740,7 +27122,7 @@ in
       sources."binary-extensions-1.10.0"
       sources."set-immediate-shim-1.0.1"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -26749,7 +27131,8 @@ in
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
+      sources."tape-4.8.0"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
       sources."osenv-0.1.4"
@@ -26765,7 +27148,7 @@ in
       })
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -26782,77 +27165,79 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
-      sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
-      sources."mime-db-1.30.0"
       sources."punycode-1.4.1"
-      sources."debug-2.6.8"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
-      sources."ms-2.0.0"
       sources."lru-cache-4.1.1"
       sources."shebang-command-1.2.0"
       sources."which-1.3.0"
@@ -26864,54 +27249,42 @@ in
       sources."accepts-1.3.4"
       sources."array-flatten-1.1.1"
       sources."content-disposition-0.5.2"
-      sources."content-type-1.0.2"
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
-      sources."depd-1.1.1"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      sources."finalhandler-1.0.4"
+      sources."etag-1.8.1"
+      sources."finalhandler-1.0.5"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."on-finished-2.3.0"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
       sources."send-0.15.4"
       sources."serve-static-1.12.4"
-      sources."setprototypeof-1.0.3"
-      sources."statuses-1.3.1"
-      sources."type-is-1.6.15"
       sources."utils-merge-1.0.0"
       sources."vary-1.1.1"
       sources."negotiator-0.6.1"
-      sources."unpipe-1.0.0"
-      sources."ee-first-1.1.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
-      sources."http-errors-1.6.2"
       sources."mime-1.3.4"
-      sources."media-typer-0.3.0"
-      sources."ansi-escapes-2.0.0"
+      sources."ansi-escapes-3.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
+      sources."external-editor-2.0.5"
       sources."figures-2.0.0"
       sources."mute-stream-0.0.7"
       sources."run-async-2.3.0"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
-      sources."through-2.3.8"
       sources."restore-cursor-2.0.0"
       sources."onetime-2.0.1"
       sources."mimic-fn-1.1.0"
-      sources."iconv-lite-0.4.18"
       sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
+      sources."tmp-0.0.33"
       sources."escape-string-regexp-1.0.5"
       sources."is-promise-2.1.0"
       sources."lodash.assign-3.2.0"
@@ -26930,21 +27303,25 @@ in
       sources."cookiejar-2.1.1"
       sources."formidable-1.1.1"
       sources."block-stream-0.0.9"
-      sources."body-5.1.0"
+      (sources."body-5.1.0" // {
+        dependencies = [
+          sources."raw-body-1.1.7"
+          sources."bytes-1.0.0"
+          sources."string_decoder-0.10.31"
+        ];
+      })
       sources."faye-websocket-0.10.0"
       sources."livereload-js-2.2.2"
       sources."continuable-cache-0.3.1"
       sources."error-7.0.2"
-      (sources."raw-body-1.1.7" // {
-        dependencies = [
-          sources."string_decoder-0.10.31"
-        ];
-      })
       sources."safe-json-parse-1.0.1"
       sources."string-template-0.2.1"
-      sources."bytes-1.0.0"
-      sources."websocket-driver-0.6.5"
-      sources."websocket-extensions-0.1.1"
+      sources."websocket-driver-0.7.0"
+      sources."http-parser-js-0.4.7"
+      sources."websocket-extensions-0.1.2"
+      sources."async-limiter-1.0.0"
+      sources."ultron-1.1.0"
+      sources."netmask-1.0.6"
       sources."ansi-styles-3.2.0"
       sources."supports-color-4.4.0"
       sources."color-convert-1.9.0"
@@ -26997,7 +27374,7 @@ in
           sources."source-map-0.4.4"
         ];
       })
-      (sources."js-yaml-3.9.1" // {
+      (sources."js-yaml-3.10.0" // {
         dependencies = [
           sources."esprima-4.0.0"
         ];
@@ -27076,10 +27453,10 @@ in
   javascript-typescript-langserver = nodeEnv.buildNodePackage {
     name = "javascript-typescript-langserver";
     packageName = "javascript-typescript-langserver";
-    version = "2.2.1";
+    version = "2.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/javascript-typescript-langserver/-/javascript-typescript-langserver-2.2.1.tgz";
-      sha1 = "26c2f378cad3ad94282f8dcf0f2b1b8ddc33c612";
+      url = "https://registry.npmjs.org/javascript-typescript-langserver/-/javascript-typescript-langserver-2.3.1.tgz";
+      sha1 = "b7db14bee9db6497788e2f5a7d49db2b7a2e1891";
     };
     dependencies = [
       sources."@reactivex/rxjs-5.4.3"
@@ -27096,15 +27473,15 @@ in
         ];
       })
       sources."lodash-4.17.4"
-      sources."mz-2.6.0"
+      sources."mz-2.7.0"
       sources."object-hash-1.1.8"
       sources."opentracing-0.14.1"
       sources."semaphore-async-await-1.5.1"
       sources."string-similarity-1.2.0"
       sources."typescript-2.3.4"
-      sources."vscode-jsonrpc-3.3.1"
-      sources."vscode-languageserver-3.3.0"
-      sources."vscode-languageserver-types-3.3.0"
+      sources."vscode-jsonrpc-3.4.0"
+      sources."vscode-languageserver-3.4.2"
+      sources."vscode-languageserver-types-3.4.0"
       sources."symbol-observable-1.0.4"
       sources."assertion-error-1.0.2"
       sources."check-error-1.0.2"
@@ -27142,6 +27519,8 @@ in
       sources."object-assign-4.1.1"
       sources."thenify-all-1.6.0"
       sources."thenify-3.3.0"
+      sources."vscode-uri-1.0.1"
+      sources."vscode-languageserver-protocol-3.4.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -27239,10 +27618,10 @@ in
   js-beautify = nodeEnv.buildNodePackage {
     name = "js-beautify";
     packageName = "js-beautify";
-    version = "1.6.14";
+    version = "1.7.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.6.14.tgz";
-      sha1 = "d3b8f7322d02b9277d58bd238264c327e58044cd";
+      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.3.tgz";
+      sha512 = "18pcdycadk2ijyxsgl2kr14hzf75cwp4va0laidqls6haq3h0laj6f7kbbl27mwicqxi3zdin1c34w20ag1ikpm830nffdlif86qgwr";
     };
     dependencies = [
       sources."config-chain-1.1.11"
@@ -27318,7 +27697,7 @@ in
     dependencies = [
       sources."commander-2.11.0"
       sources."graphlib-2.1.1"
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."lodash-4.17.4"
       sources."native-promise-only-0.8.1"
       sources."path-loader-1.0.2"
@@ -27336,7 +27715,7 @@ in
       sources."formidable-1.1.1"
       sources."methods-1.1.2"
       sources."mime-1.4.0"
-      sources."qs-6.5.0"
+      sources."qs-6.5.1"
       sources."readable-stream-2.3.3"
       sources."ms-2.0.0"
       sources."asynckit-0.4.0"
@@ -27370,12 +27749,11 @@ in
       sha512 = "2iqk65hy94j010zlqsl4rzfkz4f9ic1pqbvsf5w1lrgmda9wmhxl5kmvnmwikjilmn6kz9kniqzl7rpq3xv3cmpx8rppb7ipk5ddhzj";
     };
     dependencies = [
-      sources."body-parser-1.17.2"
+      sources."body-parser-1.18.1"
       sources."chalk-1.1.3"
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
-          sources."debug-2.6.8"
         ];
       })
       sources."connect-pause-0.1.1"
@@ -27383,7 +27761,6 @@ in
       sources."errorhandler-1.5.0"
       (sources."express-4.15.4" // {
         dependencies = [
-          sources."debug-2.6.8"
           sources."qs-6.5.0"
         ];
       })
@@ -27396,20 +27773,12 @@ in
       sources."lodash-4.17.4"
       sources."lodash-id-0.13.0"
       sources."lowdb-0.15.5"
-      (sources."method-override-2.3.9" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
-      (sources."morgan-1.8.2" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."method-override-2.3.9"
+      sources."morgan-1.8.2"
       sources."object-assign-4.1.1"
       sources."please-upgrade-node-3.0.1"
       sources."pluralize-3.1.0"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."server-destroy-1.0.1"
       sources."shortid-2.2.8"
       sources."update-notifier-1.0.3"
@@ -27418,15 +27787,15 @@ in
           sources."camelcase-3.0.0"
         ];
       })
-      sources."bytes-2.4.0"
-      sources."content-type-1.0.2"
-      sources."debug-2.6.7"
+      sources."bytes-3.0.0"
+      sources."content-type-1.0.4"
+      sources."debug-2.6.8"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
-      sources."iconv-lite-0.4.15"
+      sources."iconv-lite-0.4.19"
       sources."on-finished-2.3.0"
-      sources."qs-6.4.0"
-      sources."raw-body-2.2.0"
+      sources."qs-6.5.1"
+      sources."raw-body-2.3.2"
       sources."type-is-1.6.15"
       sources."ms-2.0.0"
       sources."inherits-2.0.3"
@@ -27455,27 +27824,19 @@ in
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
       sources."encodeurl-1.0.1"
-      sources."etag-1.8.0"
-      (sources."finalhandler-1.0.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."etag-1.8.1"
+      sources."finalhandler-1.0.5"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      (sources."send-0.15.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."send-0.15.4"
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -27485,66 +27846,52 @@ in
       sources."is-promise-2.1.0"
       sources."steno-0.4.4"
       sources."basic-auth-1.1.0"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."core-util-is-1.0.2"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -27667,10 +28014,10 @@ in
   js-yaml = nodeEnv.buildNodePackage {
     name = "js-yaml";
     packageName = "js-yaml";
-    version = "3.9.1";
+    version = "3.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz";
-      sha512 = "31wxw267vdf4nnjpksnzcb4i603366sjrw7g08bkxi3cwlrfl67458v7rvj72vbxcycq43z4ldkrfvqjrsvrjqrb2kfzmabpzghddq9";
+      url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz";
+      sha512 = "0h26sq1bwxc45bm0hvlcadrbk4bizzaw729wvw690ya7mpys45bqfzdqwhjkdrnq0i44dzxckykz4bix22jfdyfg1asybg3yzczjsrv";
     };
     dependencies = [
       sources."argparse-1.0.9"
@@ -27695,7 +28042,7 @@ in
     };
     dependencies = [
       sources."bluebird-3.5.0"
-      sources."body-parser-1.17.2"
+      sources."body-parser-1.18.1"
       sources."chokidar-1.7.0"
       sources."colors-1.1.2"
       (sources."combine-lists-1.0.1" // {
@@ -27703,11 +28050,7 @@ in
           sources."lodash-4.17.4"
         ];
       })
-      (sources."connect-3.6.3" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."connect-3.6.4"
       sources."core-js-2.5.1"
       sources."di-0.0.1"
       sources."dom-serialize-2.2.1"
@@ -27737,7 +28080,7 @@ in
       sources."optimist-0.6.1"
       sources."qjobs-1.1.5"
       sources."range-parser-1.2.0"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."safe-buffer-5.1.1"
       (sources."socket.io-1.7.3" // {
         dependencies = [
@@ -27749,15 +28092,15 @@ in
       sources."source-map-0.5.7"
       sources."tmp-0.0.31"
       sources."useragent-2.2.1"
-      sources."bytes-2.4.0"
-      sources."content-type-1.0.2"
-      sources."debug-2.6.7"
+      sources."bytes-3.0.0"
+      sources."content-type-1.0.4"
+      sources."debug-2.6.8"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
-      sources."iconv-lite-0.4.15"
+      sources."iconv-lite-0.4.19"
       sources."on-finished-2.3.0"
-      sources."qs-6.4.0"
-      sources."raw-body-2.2.0"
+      sources."qs-6.5.1"
+      sources."raw-body-2.3.2"
       sources."type-is-1.6.15"
       sources."ms-2.0.0"
       sources."inherits-2.0.3"
@@ -27826,7 +28169,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -27835,8 +28178,13 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -27849,7 +28197,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -27863,83 +28211,86 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."punycode-1.4.1"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
       sources."once-1.4.0"
       sources."uid-number-0.0.6"
       sources."wrappy-1.0.2"
-      (sources."finalhandler-1.0.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
-      sources."parseurl-1.3.1"
-      sources."utils-merge-1.0.0"
+      sources."finalhandler-1.0.5"
+      sources."parseurl-1.3.2"
+      sources."utils-merge-1.0.1"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."custom-event-1.0.1"
@@ -28052,7 +28403,7 @@ in
       sources."basic-auth-1.0.4"
       sources."connect-2.30.2"
       sources."content-disposition-0.5.0"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."commander-2.6.0"
       sources."cookie-0.1.3"
       sources."cookie-signature-1.0.6"
@@ -28064,7 +28415,7 @@ in
       sources."merge-descriptors-1.0.0"
       sources."methods-1.1.2"
       sources."mkdirp-0.5.1"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."proxy-addr-1.0.10"
       sources."range-parser-1.0.3"
       (sources."send-0.13.0" // {
@@ -28168,7 +28519,7 @@ in
       sources."mime-1.3.4"
       sources."media-typer-0.3.0"
       sources."minimist-0.0.8"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.0.5"
       sources."passport-strategy-1.0.0"
       sources."passport-google-oauth1-1.0.0"
@@ -28190,10 +28541,10 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "2.1.2";
+    version = "2.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-2.1.2.tgz";
-      sha1 = "b07eb7a4d7dd7d44a105262fef49b2229301c577";
+      url = "https://registry.npmjs.org/lerna/-/lerna-2.2.0.tgz";
+      sha512 = "1dcq9rq01bw9g2yqljwf4lmp7x9wzn5bq8yy2x0sjxc9xdr024924ay6a52grjc0lymqs8rj6320kr4xm438qc4xy4yp2xg9crjh82f";
     };
     dependencies = [
       sources."async-1.5.2"
@@ -28206,13 +28557,13 @@ in
       sources."dedent-0.7.0"
       sources."execa-0.8.0"
       sources."find-up-2.1.0"
-      sources."fs-extra-4.0.1"
+      sources."fs-extra-4.0.2"
       sources."get-port-3.2.0"
       sources."glob-7.1.2"
       sources."glob-parent-3.1.0"
       sources."globby-6.1.0"
       sources."graceful-fs-4.1.11"
-      (sources."inquirer-3.2.3" // {
+      (sources."inquirer-3.3.0" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
           sources."ansi-regex-3.0.0"
@@ -28238,7 +28589,7 @@ in
           sources."strip-bom-3.0.0"
         ];
       })
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."safe-buffer-5.1.1"
       sources."semver-5.4.1"
       sources."signal-exit-3.0.2"
@@ -28438,7 +28789,7 @@ in
       sources."locate-path-2.0.0"
       sources."p-locate-2.0.0"
       sources."p-limit-1.1.0"
-      sources."jsonfile-3.0.1"
+      sources."jsonfile-4.0.0"
       sources."universalify-0.1.1"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
@@ -28450,10 +28801,10 @@ in
       sources."is-extglob-2.1.1"
       sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
-      sources."ansi-escapes-2.0.0"
+      sources."ansi-escapes-3.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
+      sources."external-editor-2.0.5"
       sources."figures-2.0.0"
       sources."mute-stream-0.0.7"
       sources."run-async-2.3.0"
@@ -28468,9 +28819,9 @@ in
       sources."restore-cursor-2.0.0"
       sources."onetime-2.0.1"
       sources."mimic-fn-1.1.0"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
+      sources."tmp-0.0.33"
       sources."is-promise-2.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."ci-info-1.1.1"
@@ -28487,7 +28838,7 @@ in
       })
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       (sources."wide-align-1.1.2" // {
         dependencies = [
@@ -28688,11 +29039,10 @@ in
       sha512 = "3pnrrz3blfy50s64c4wdj9gjl8zv3p72wd0vmrk86qjdd676g9sj4cwywp356r633csg568pczll7pfb6sxpm0x9fvbk4zhwvdpb70b";
     };
     dependencies = [
-      sources."body-parser-1.17.2"
+      sources."body-parser-1.18.1"
       sources."chokidar-1.7.0"
       (sources."express-4.15.4" // {
         dependencies = [
-          sources."debug-2.6.8"
           sources."qs-6.5.0"
         ];
       })
@@ -28702,17 +29052,17 @@ in
       sources."markdown-it-task-checkbox-1.0.4"
       sources."minimist-1.2.0"
       sources."opn-5.1.0"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."socket.io-2.0.3"
-      sources."bytes-2.4.0"
-      sources."content-type-1.0.2"
-      sources."debug-2.6.7"
+      sources."bytes-3.0.0"
+      sources."content-type-1.0.4"
+      sources."debug-2.6.8"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
-      sources."iconv-lite-0.4.15"
+      sources."iconv-lite-0.4.19"
       sources."on-finished-2.3.0"
-      sources."qs-6.4.0"
-      sources."raw-body-2.2.0"
+      sources."qs-6.5.1"
+      sources."raw-body-2.3.2"
       sources."type-is-1.6.15"
       sources."ms-2.0.0"
       sources."inherits-2.0.3"
@@ -28787,7 +29137,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -28796,8 +29146,9 @@ in
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      sources."tape-4.8.0"
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -28809,7 +29160,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -28828,6 +29179,27 @@ in
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -28839,29 +29211,21 @@ in
       sources."cookie-signature-1.0.6"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      (sources."finalhandler-1.0.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."etag-1.8.1"
+      sources."finalhandler-1.0.5"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      (sources."send-0.15.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."send-0.15.4"
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
       sources."vary-1.1.1"
       sources."negotiator-0.6.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -28871,70 +29235,56 @@ in
       sources."mdurl-1.0.1"
       sources."uc.micro-1.0.3"
       sources."sprintf-js-1.0.3"
-      sources."github-slugger-1.1.3"
+      sources."github-slugger-1.2.0"
       sources."innertext-1.0.2"
       sources."emoji-regex-6.1.1"
       sources."html-entities-1.2.1"
       sources."is-wsl-1.1.0"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -29020,7 +29370,7 @@ in
       sources."object-assign-4.1.1"
       sources."opn-5.1.0"
       sources."proxy-middleware-0.15.0"
-      sources."send-0.15.4"
+      sources."send-0.15.5"
       sources."serve-index-1.9.0"
       sources."anymatch-1.3.2"
       sources."async-each-1.0.1"
@@ -29087,7 +29437,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -29096,9 +29446,14 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -29111,7 +29466,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."signal-exit-3.0.2"
       sources."string-width-1.0.2"
@@ -29124,67 +29479,53 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -29196,6 +29537,27 @@ in
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."debug-2.6.8"
@@ -29208,7 +29570,7 @@ in
           sources."ms-0.7.1"
         ];
       })
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."utils-merge-1.0.0"
       sources."escape-html-1.0.3"
       sources."on-finished-2.3.0"
@@ -29216,15 +29578,15 @@ in
       sources."unpipe-1.0.0"
       sources."ee-first-1.1.1"
       sources."vary-1.1.1"
-      sources."through-2.3.8"
       sources."duplexer-0.1.1"
       sources."from-0.1.7"
       sources."map-stream-0.1.0"
       sources."pause-stream-0.0.11"
       sources."split-0.3.3"
       sources."stream-combiner-0.0.4"
-      sources."websocket-driver-0.6.5"
-      sources."websocket-extensions-0.1.1"
+      sources."websocket-driver-0.7.0"
+      sources."http-parser-js-0.4.7"
+      sources."websocket-extensions-0.1.2"
       sources."apache-crypt-1.2.1"
       sources."apache-md5-1.1.2"
       sources."bcryptjs-2.4.3"
@@ -29235,8 +29597,8 @@ in
       sources."is-wsl-1.1.0"
       sources."destroy-1.0.4"
       sources."encodeurl-1.0.1"
-      sources."etag-1.8.0"
-      sources."fresh-0.5.0"
+      sources."etag-1.8.1"
+      sources."fresh-0.5.2"
       sources."http-errors-1.6.2"
       sources."mime-1.3.4"
       sources."range-parser-1.2.0"
@@ -29291,10 +29653,10 @@ in
   mocha = nodeEnv.buildNodePackage {
     name = "mocha";
     packageName = "mocha";
-    version = "3.5.0";
+    version = "3.5.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz";
-      sha512 = "0ygdqmd1pxvdrgyympyhfy8cg90632jkggbv7l7irnzl0gaxdmyrrs9bf634046q8xq41bfxysabapgwdy8ssd58vc8nggbk0y3d1d4";
+      url = "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz";
+      sha512 = "093v1508xiyy2l0fp2c0rv9qc0jdhi4hz2xil2zyawjvcmag11scslkkyzv2cqwhh24b7ijhbhr3jbyidamgkhiccnn29ac9p9xmagz";
     };
     dependencies = [
       sources."browser-stdout-1.3.0"
@@ -29304,6 +29666,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."glob-7.1.1"
       sources."growl-1.9.2"
+      sources."he-1.1.1"
       sources."json3-3.3.2"
       sources."lodash.create-3.1.1"
       sources."mkdirp-0.5.1"
@@ -29349,7 +29712,7 @@ in
     };
     dependencies = [
       sources."commander-2.11.0"
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."json-refs-2.1.7"
       sources."argparse-1.0.9"
       sources."esprima-4.0.0"
@@ -29369,7 +29732,7 @@ in
       sources."formidable-1.1.1"
       sources."methods-1.1.2"
       sources."mime-1.4.0"
-      sources."qs-6.5.0"
+      sources."qs-6.5.1"
       sources."readable-stream-2.3.3"
       sources."ms-2.0.0"
       sources."asynckit-0.4.0"
@@ -29396,10 +29759,10 @@ in
   nijs = nodeEnv.buildNodePackage {
     name = "nijs";
     packageName = "nijs";
-    version = "0.0.23";
+    version = "0.0.24";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nijs/-/nijs-0.0.23.tgz";
-      sha1 = "dbf8f4a0acafbe3b8d9b71c24cbd1d851de6c31a";
+      url = "https://registry.npmjs.org/nijs/-/nijs-0.0.24.tgz";
+      sha1 = "6581de112f5810c9930d5fcdf772f67787e797eb";
     };
     dependencies = [
       sources."optparse-1.0.5"
@@ -29408,7 +29771,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "An internal DSL for the Nix package manager in JavaScript";
-      homepage = https://github.com/svanderburg/nijs;
+      homepage = "https://github.com/svanderburg/nijs#readme";
       license = "MIT";
     };
     production = true;
@@ -29447,7 +29810,7 @@ in
       sources."normalize-package-data-2.4.0"
       sources."npm-package-arg-5.1.2"
       sources."once-1.4.0"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."retry-0.10.1"
       sources."slide-1.1.6"
       sources."ssri-4.1.6"
@@ -29474,67 +29837,53 @@ in
       sources."os-tmpdir-1.0.2"
       sources."builtins-1.0.3"
       sources."wrappy-1.0.2"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -29546,7 +29895,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -29604,8 +29953,8 @@ in
       sources."nopt-3.0.6"
       sources."npmlog-4.1.2"
       sources."osenv-0.1.4"
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.3.0"
       sources."tar-2.2.1"
       sources."which-1.3.0"
@@ -29632,7 +29981,7 @@ in
       sources."safe-buffer-5.1.1"
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -29645,67 +29994,53 @@ in
       sources."ansi-regex-2.1.1"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -29740,7 +30075,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."rc-1.2.1"
       sources."semver-4.3.6"
-      sources."serve-favicon-2.4.3"
+      (sources."serve-favicon-2.4.4" // {
+        dependencies = [
+          sources."fresh-0.5.1"
+        ];
+      })
       sources."strong-data-uri-1.0.4"
       sources."v8-debug-1.0.1"
       sources."v8-profiler-5.7.0"
@@ -29827,19 +30166,19 @@ in
       sources."accepts-1.3.4"
       sources."array-flatten-1.1.1"
       sources."content-disposition-0.5.2"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
       sources."depd-1.1.1"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      sources."finalhandler-1.0.4"
+      sources."etag-1.8.1"
+      sources."finalhandler-1.0.5"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."on-finished-2.3.0"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."qs-6.5.0"
@@ -29856,7 +30195,7 @@ in
       sources."mime-db-1.30.0"
       sources."unpipe-1.0.0"
       sources."ee-first-1.1.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."http-errors-1.6.2"
@@ -29873,27 +30212,32 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."safe-buffer-5.0.1"
+      sources."safe-buffer-5.1.1"
       sources."truncate-1.0.5"
       sources."nan-2.7.0"
-      (sources."node-pre-gyp-0.6.36" // {
+      (sources."node-pre-gyp-0.6.37" // {
         dependencies = [
-          sources."rimraf-2.6.1"
+          sources."rimraf-2.6.2"
           sources."semver-5.4.1"
           sources."glob-7.1.2"
         ];
       })
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
-      (sources."request-2.81.0" // {
+      (sources."request-2.82.0" // {
         dependencies = [
-          sources."qs-6.4.0"
+          sources."qs-6.5.1"
+        ];
+      })
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."glob-7.1.2"
         ];
       })
       sources."tar-2.2.1"
       (sources."tar-pack-3.4.0" // {
         dependencies = [
-          sources."rimraf-2.6.1"
+          sources."rimraf-2.6.2"
           sources."glob-7.1.2"
         ];
       })
@@ -29903,20 +30247,12 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      (sources."readable-stream-2.3.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.1"
-        ];
-      })
+      sources."readable-stream-2.3.3"
       sources."core-util-is-1.0.2"
       sources."isarray-1.0.0"
       sources."process-nextick-args-1.0.7"
-      (sources."string_decoder-1.0.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.1"
-        ];
-      })
-      sources."aproba-1.1.2"
+      sources."string_decoder-1.0.3"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."string-width-1.0.2"
       sources."strip-ansi-3.0.1"
@@ -29924,71 +30260,78 @@ in
       sources."code-point-at-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."ansi-regex-2.1.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."punycode-1.4.1"
       sources."fs.realpath-1.0.0"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -30014,10 +30357,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.6.36";
+    version = "0.6.37";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz";
-      sha1 = "db604112cb74e0d477554e9b505b17abddfab786";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
+      sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
     };
     dependencies = [
       sources."mkdirp-0.5.1"
@@ -30028,9 +30371,14 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -30051,7 +30399,7 @@ in
       sources."safe-buffer-5.1.1"
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -30065,67 +30413,53 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -30142,6 +30476,27 @@ in
       sources."brace-expansion-1.1.8"
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."graceful-fs-4.1.11"
@@ -30161,10 +30516,10 @@ in
   nodemon = nodeEnv.buildNodePackage {
     name = "nodemon";
     packageName = "nodemon";
-    version = "1.12.0";
+    version = "1.12.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/nodemon/-/nodemon-1.12.0.tgz";
-      sha1 = "e538548a777340a19f855c4f087b7e528aa3feda";
+      url = "https://registry.npmjs.org/nodemon/-/nodemon-1.12.1.tgz";
+      sha1 = "996a56dc49d9f16bbf1b78a4de08f13634b3878d";
     };
     dependencies = [
       sources."chokidar-1.7.0"
@@ -30242,7 +30597,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -30251,9 +30606,14 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -30266,7 +30626,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -30280,67 +30640,53 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -30352,6 +30698,27 @@ in
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -30372,7 +30739,6 @@ in
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
       sources."event-stream-3.3.4"
-      sources."through-2.3.8"
       sources."duplexer-0.1.1"
       sources."from-0.1.7"
       sources."map-stream-0.1.0"
@@ -30528,17 +30894,30 @@ in
       sources."node-red-node-email-0.1.24"
       (sources."node-red-node-twitter-0.1.11" // {
         dependencies = [
-          sources."request-2.81.0"
+          sources."request-2.82.0"
+          sources."aws-sign2-0.7.0"
           sources."caseless-0.12.0"
-          sources."form-data-2.1.4"
-          sources."har-validator-4.2.1"
+          sources."form-data-2.3.1"
+          sources."har-validator-5.0.3"
+          sources."hawk-6.0.2"
+          sources."http-signature-1.2.0"
+          sources."qs-6.5.1"
           sources."tunnel-agent-0.6.0"
+          sources."hoek-4.2.0"
+          sources."boom-4.3.1"
+          (sources."cryptiles-3.1.2" // {
+            dependencies = [
+              sources."boom-5.2.0"
+            ];
+          })
+          sources."sntp-2.0.2"
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."node-red-node-rbe-0.1.11"
+      sources."node-red-node-rbe-0.1.13"
       sources."bcrypt-1.0.3"
       sources."bytes-2.4.0"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."debug-2.6.7"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
@@ -30596,8 +30975,8 @@ in
       sources."content-disposition-0.5.2"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      (sources."finalhandler-1.0.4" // {
+      sources."etag-1.8.1"
+      (sources."finalhandler-1.0.5" // {
         dependencies = [
           sources."debug-2.6.8"
         ];
@@ -30605,7 +30984,7 @@ in
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
@@ -30614,7 +30993,7 @@ in
       sources."utils-merge-1.0.0"
       sources."negotiator-0.6.1"
       sources."unpipe-1.0.0"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -30644,7 +31023,7 @@ in
       sources."split2-2.1.1"
       (sources."websocket-stream-5.0.1" // {
         dependencies = [
-          sources."ws-3.1.0"
+          sources."ws-3.2.0"
         ];
       })
       sources."xtend-4.0.1"
@@ -30687,6 +31066,7 @@ in
       sources."through2-filter-2.0.0"
       sources."jsonify-0.0.0"
       sources."bl-1.2.1"
+      sources."async-limiter-1.0.0"
       sources."ultron-1.1.0"
       sources."append-field-0.1.0"
       (sources."busboy-0.2.14" // {
@@ -30856,26 +31236,41 @@ in
       sources."utf7-1.0.2"
       sources."twitter-ng-0.6.2"
       sources."oauth-0.9.14"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."uuid-3.1.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."nan-2.6.2"
       (sources."node-pre-gyp-0.6.36" // {
         dependencies = [
           sources."nopt-4.0.1"
-          sources."request-2.81.0"
+          sources."request-2.82.0"
+          sources."aws-sign2-0.7.0"
           sources."caseless-0.12.0"
-          sources."form-data-2.1.4"
-          sources."har-validator-4.2.1"
+          sources."form-data-2.3.1"
+          sources."har-validator-5.0.3"
+          sources."hawk-6.0.2"
+          sources."http-signature-1.2.0"
+          sources."qs-6.5.1"
           sources."tunnel-agent-0.6.0"
+          sources."hoek-4.2.0"
+          sources."boom-4.3.1"
+          (sources."cryptiles-3.1.2" // {
+            dependencies = [
+              sources."boom-5.2.0"
+            ];
+          })
+          sources."sntp-2.0.2"
+          sources."assert-plus-1.0.0"
         ];
       })
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."osenv-0.1.4"
@@ -30886,7 +31281,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."signal-exit-3.0.2"
       sources."string-width-1.0.2"
@@ -31039,10 +31434,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "5.4.1";
+    version = "5.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-5.4.1.tgz";
-      sha512 = "0vb3ad2wgv4y52jwbz8xpzg36hzimbbnlad594kblfq2mjfnaw9v4zzgd19ghan4a622s4zcrap51l2fww79lbl6n2qfv26allyg26z";
+      url = "https://registry.npmjs.org/npm/-/npm-5.4.2.tgz";
+      sha512 = "28m9zjiynb24b8bxikdaya27j87am88x1y8l70pvmh9fk3pfq0y6xvqjmpy72ld4csnz9s1hik1ff8a19sx6pyi8f5ar27b044cp8hp";
     };
     dependencies = [
       sources."JSONStream-1.3.1"
@@ -31104,7 +31499,7 @@ in
       sources."npm-install-checks-3.0.0"
       sources."npm-lifecycle-1.0.3"
       sources."npm-package-arg-5.1.2"
-      sources."npm-packlist-1.1.8"
+      sources."npm-packlist-1.1.9"
       sources."npm-registry-client-8.4.0"
       sources."npm-user-validate-1.0.0"
       sources."npmlog-4.1.2"
@@ -31122,7 +31517,7 @@ in
       sources."readable-stream-2.3.3"
       sources."request-2.81.0"
       sources."retry-0.10.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."safe-buffer-5.1.1"
       sources."semver-5.4.1"
       sources."sha-2.0.1"
@@ -31154,7 +31549,7 @@ in
       sources."which-1.3.0"
       sources."worker-farm-1.5.0"
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.3.0"
+      sources."write-file-atomic-2.1.0"
       sources."debuglog-1.0.1"
       sources."imurmurhash-0.1.4"
       sources."lodash._baseindexof-3.1.0"
@@ -31298,7 +31693,7 @@ in
       sources."http-proxy-agent-2.0.0"
       sources."https-proxy-agent-2.1.0"
       sources."node-fetch-npm-2.0.2"
-      sources."socks-proxy-agent-3.0.0"
+      sources."socks-proxy-agent-3.0.1"
       sources."humanize-ms-1.2.1"
       sources."ms-2.0.0"
       sources."agent-base-4.1.1"
@@ -31307,7 +31702,7 @@ in
       sources."es6-promise-4.1.1"
       sources."encoding-0.1.12"
       sources."json-parse-better-errors-1.0.1"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."socks-1.1.10"
       sources."ip-1.1.5"
       sources."smart-buffer-1.1.15"
@@ -31517,32 +31912,32 @@ in
       sources."coffee-script-1.12.7"
       sources."underscore-1.4.4"
       sources."underscore.string-2.3.3"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."graceful-fs-2.0.3"
       sources."slide-1.1.6"
       sources."chownr-0.0.2"
       sources."mkdirp-0.3.5"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."retry-0.6.0"
       sources."couch-login-0.1.20"
       sources."npmlog-4.1.2"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
@@ -31550,45 +31945,31 @@ in
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."core-util-is-1.0.2"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -31616,7 +31997,7 @@ in
       sources."process-nextick-args-1.0.7"
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."object-assign-4.1.1"
       sources."signal-exit-3.0.2"
@@ -31677,7 +32058,7 @@ in
       sources."cint-8.2.1"
       sources."cli-table-0.3.1"
       sources."commander-2.11.0"
-      sources."fast-diff-1.1.1"
+      sources."fast-diff-1.1.2"
       sources."find-up-1.1.2"
       sources."get-stdin-5.0.1"
       sources."json-parse-helpfulerror-1.0.3"
@@ -31696,7 +32077,7 @@ in
       sources."require-dir-0.3.2"
       sources."semver-5.4.1"
       sources."semver-utils-1.1.1"
-      (sources."snyk-1.40.2" // {
+      (sources."snyk-1.41.0" // {
         dependencies = [
           sources."update-notifier-0.5.0"
           sources."latest-version-1.0.1"
@@ -31997,13 +32378,14 @@ in
           sources."mute-stream-0.0.6"
         ];
       })
+      sources."needle-2.0.1"
       sources."open-0.0.5"
       sources."os-name-1.0.3"
       sources."snyk-config-1.0.1"
-      sources."snyk-go-plugin-1.1.3"
+      sources."snyk-go-plugin-1.2.1"
       sources."snyk-gradle-plugin-1.1.2"
       sources."snyk-module-1.8.1"
-      sources."snyk-mvn-plugin-1.0.1"
+      sources."snyk-mvn-plugin-1.0.3"
       sources."snyk-policy-1.7.1"
       sources."snyk-python-plugin-1.2.4"
       (sources."snyk-recursive-readdir-2.0.0" // {
@@ -32045,6 +32427,7 @@ in
       sources."exit-hook-1.1.1"
       sources."onetime-1.1.0"
       sources."is-promise-2.1.0"
+      sources."iconv-lite-0.4.19"
       (sources."osx-release-1.1.0" // {
         dependencies = [
           sources."minimist-1.2.0"
@@ -32070,7 +32453,6 @@ in
       sources."longest-1.0.1"
       sources."repeat-string-1.6.1"
       sources."is-buffer-1.1.5"
-      sources."fs-0.0.1-security"
       sources."toml-2.3.3"
       sources."clone-deep-0.3.0"
       sources."for-own-1.0.0"
@@ -32089,7 +32471,7 @@ in
           sources."for-in-0.1.8"
         ];
       })
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."argparse-1.0.9"
       sources."esprima-4.0.0"
       sources."sprintf-js-1.0.3"
@@ -32215,21 +32597,22 @@ in
   ocaml-language-server = nodeEnv.buildNodePackage {
     name = "ocaml-language-server";
     packageName = "ocaml-language-server";
-    version = "0.2.0";
+    version = "1.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ocaml-language-server/-/ocaml-language-server-0.2.0.tgz";
-      sha1 = "f9ae38396f893863ed52c1a29fb45b42236e1a36";
+      url = "https://registry.npmjs.org/ocaml-language-server/-/ocaml-language-server-1.0.0.tgz";
+      sha512 = "32glgr9c42bz2yp3k7kff9skkvrm1zrvcvv2pkifjmzbl3kca3bmapgz598jdm64hi3y0jbby4s90bv8838q40ni5lfh35863c57i0n";
     };
     dependencies = [
-      sources."async-2.1.5"
-      sources."glob-7.1.1"
+      sources."async-2.4.1"
+      sources."glob-7.1.2"
       sources."lodash-4.17.4"
       sources."lokijs-1.4.3"
       sources."pegjs-0.10.0"
-      sources."vscode-jsonrpc-3.0.4"
-      sources."vscode-languageclient-3.0.4"
-      sources."vscode-languageserver-3.0.5"
-      sources."vscode-languageserver-types-3.0.3"
+      sources."vscode-jsonrpc-3.2.0"
+      sources."vscode-languageclient-3.2.2"
+      sources."vscode-languageserver-3.2.2"
+      sources."vscode-languageserver-types-3.2.0"
+      sources."vscode-uri-1.0.1"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
@@ -32260,15 +32643,14 @@ in
     dependencies = [
       sources."async-0.9.2"
       sources."babybird-0.0.1"
-      (sources."body-parser-1.17.2" // {
+      (sources."body-parser-1.18.1" // {
         dependencies = [
-          sources."content-type-1.0.2"
+          sources."content-type-1.0.4"
         ];
       })
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
-          sources."debug-2.6.8"
         ];
       })
       sources."connect-busboy-0.0.2"
@@ -32279,9 +32661,8 @@ in
       sources."entities-1.1.1"
       (sources."express-4.15.4" // {
         dependencies = [
-          sources."content-type-1.0.2"
-          sources."debug-2.6.8"
-          sources."finalhandler-1.0.4"
+          sources."content-type-1.0.4"
+          sources."finalhandler-1.0.5"
           sources."qs-6.5.0"
         ];
       })
@@ -32292,17 +32673,17 @@ in
           sources."ms-0.7.1"
         ];
       })
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."mediawiki-title-0.5.6"
       sources."negotiator-git+https://github.com/arlolra/negotiator.git#full-parse-access"
       sources."node-uuid-1.4.8"
       sources."pegjs-git+https://github.com/tstarling/pegjs.git#fork"
       sources."prfun-2.1.4"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."semver-5.4.1"
-      (sources."serve-favicon-2.4.3" // {
+      (sources."serve-favicon-2.4.4" // {
         dependencies = [
-          sources."safe-buffer-5.0.1"
+          sources."fresh-0.5.1"
         ];
       })
       (sources."service-runner-2.3.0" // {
@@ -32323,14 +32704,14 @@ in
       })
       sources."asap-2.0.6"
       sources."is-arguments-1.0.2"
-      sources."bytes-2.4.0"
-      sources."debug-2.6.7"
+      sources."bytes-3.0.0"
+      sources."debug-2.6.8"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
-      sources."iconv-lite-0.4.15"
+      sources."iconv-lite-0.4.19"
       sources."on-finished-2.3.0"
-      sources."qs-6.4.0"
-      sources."raw-body-2.2.0"
+      sources."qs-6.5.1"
+      sources."raw-body-2.3.2"
       sources."type-is-1.6.15"
       sources."ms-2.0.0"
       sources."inherits-2.0.3"
@@ -32359,22 +32740,18 @@ in
       sources."cookie-signature-1.0.6"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
+      sources."etag-1.8.1"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      (sources."send-0.15.4" // {
-        dependencies = [
-          sources."debug-2.6.8"
-        ];
-      })
+      sources."send-0.15.4"
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -32430,65 +32807,51 @@ in
       sources."argparse-1.0.9"
       sources."esprima-4.0.0"
       sources."sprintf-js-1.0.3"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -32498,7 +32861,7 @@ in
       sources."bunyan-1.8.12"
       sources."bunyan-syslog-udp-0.1.0"
       sources."gelf-stream-1.1.1"
-      sources."hot-shots-4.5.0"
+      sources."hot-shots-4.7.0"
       (sources."limitation-0.2.0" // {
         dependencies = [
           sources."readable-stream-2.3.3"
@@ -32808,7 +33171,7 @@ in
       sources."ip-set-1.0.1"
       sources."mkdirp-0.3.5"
       sources."peer-wire-swarm-0.12.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."torrent-discovery-5.4.0"
       sources."torrent-piece-1.1.1"
       (sources."random-access-file-1.8.1" // {
@@ -32947,7 +33310,7 @@ in
         ];
       })
       sources."content-disposition-0.5.0"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."commander-2.6.0"
       sources."cookie-0.1.3"
       sources."cookie-signature-1.0.6"
@@ -32958,7 +33321,7 @@ in
       sources."fresh-0.3.0"
       sources."merge-descriptors-1.0.0"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."proxy-addr-1.0.10"
       (sources."send-0.13.0" // {
         dependencies = [
@@ -33054,7 +33417,7 @@ in
       sources."batch-0.5.3"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.0.5"
       sources."minimist-0.0.8"
       sources."end-of-stream-1.4.0"
@@ -33167,7 +33530,7 @@ in
       sources."immediate-chunk-store-1.0.8"
       sources."ip-set-1.0.1"
       sources."peer-wire-swarm-0.12.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."torrent-discovery-5.4.0"
       sources."torrent-piece-1.1.1"
       (sources."random-access-file-1.8.1" // {
@@ -33299,7 +33662,7 @@ in
       sources."jsonfile-2.4.0"
       sources."klaw-1.3.1"
       sources."path-is-absolute-1.0.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
@@ -33401,10 +33764,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "1.6.1";
+    version = "1.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-1.6.1.tgz";
-      sha512 = "31al4m6n59a0mr6q8fn231zn4navr252z2pgq7dhcxdpp5a1aqaqmvx0sgamv97pkygswlcpbsj7a1dg2ijb9n0zr623ai2hh36mkkz";
+      url = "https://registry.npmjs.org/prettier/-/prettier-1.7.0.tgz";
+      sha512 = "1ib30g1a6lq7pn1ajpmvajs3y4q94yb0xz53zp1s6gbbmihfn1zr8imp8vydlmh1cj41s2ymdkddq8hfq7mlr9caji83c9x87fw11lh";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -33414,6 +33777,398 @@ in
     };
     production = true;
   };
+  pulp = nodeEnv.buildNodePackage {
+    name = "pulp";
+    packageName = "pulp";
+    version = "12.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/pulp/-/pulp-12.0.1.tgz";
+      sha512 = "3n09lgnyd4p3h3jlhgcvbh6n6m9h89hwvbhli5ic32fkl5y4g7yi61m1vw483479jxkif2zyqs89l6j6hq4iy15jdknx1lcp9qbyvwy";
+    };
+    dependencies = [
+      (sources."browserify-13.3.0" // {
+        dependencies = [
+          (sources."concat-stream-1.5.2" // {
+            dependencies = [
+              sources."readable-stream-2.0.6"
+            ];
+          })
+        ];
+      })
+      (sources."browserify-incremental-3.1.1" // {
+        dependencies = [
+          sources."JSONStream-0.10.0"
+          sources."jsonparse-0.0.5"
+        ];
+      })
+      sources."concat-stream-1.6.0"
+      sources."glob-7.1.2"
+      sources."minimatch-3.0.4"
+      sources."node-static-0.7.10"
+      sources."read-1.0.7"
+      sources."string-stream-0.0.7"
+      sources."temp-0.8.3"
+      sources."through-2.3.8"
+      sources."tree-kill-1.2.0"
+      (sources."watchpack-1.4.0" // {
+        dependencies = [
+          sources."async-2.5.0"
+        ];
+      })
+      sources."which-1.3.0"
+      sources."wordwrap-1.0.0"
+      sources."JSONStream-1.3.1"
+      sources."assert-1.4.1"
+      sources."browser-pack-6.0.2"
+      (sources."browser-resolve-1.11.2" // {
+        dependencies = [
+          sources."resolve-1.1.7"
+        ];
+      })
+      sources."browserify-zlib-0.1.4"
+      sources."buffer-4.9.1"
+      sources."cached-path-relative-1.0.1"
+      sources."console-browserify-1.1.0"
+      sources."constants-browserify-1.0.0"
+      sources."crypto-browserify-3.11.1"
+      sources."defined-1.0.0"
+      sources."deps-sort-2.0.0"
+      sources."domain-browser-1.1.7"
+      sources."duplexer2-0.1.4"
+      sources."events-1.1.1"
+      sources."has-1.0.1"
+      sources."htmlescape-1.1.1"
+      sources."https-browserify-0.0.1"
+      sources."inherits-2.0.3"
+      (sources."insert-module-globals-7.0.1" // {
+        dependencies = [
+          sources."concat-stream-1.5.2"
+          sources."readable-stream-2.0.6"
+        ];
+      })
+      (sources."labeled-stream-splicer-2.0.0" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+        ];
+      })
+      (sources."module-deps-4.1.1" // {
+        dependencies = [
+          (sources."concat-stream-1.5.2" // {
+            dependencies = [
+              sources."readable-stream-2.0.6"
+            ];
+          })
+        ];
+      })
+      sources."os-browserify-0.1.2"
+      sources."parents-1.0.1"
+      sources."path-browserify-0.0.0"
+      sources."process-0.11.10"
+      sources."punycode-1.4.1"
+      sources."querystring-es3-0.2.1"
+      sources."read-only-stream-2.0.0"
+      (sources."readable-stream-2.3.3" // {
+        dependencies = [
+          sources."string_decoder-1.0.3"
+        ];
+      })
+      sources."resolve-1.4.0"
+      sources."shasum-1.0.2"
+      sources."shell-quote-1.6.1"
+      sources."stream-browserify-2.0.1"
+      sources."stream-http-2.7.2"
+      sources."string_decoder-0.10.31"
+      sources."subarg-1.0.0"
+      sources."syntax-error-1.3.0"
+      sources."through2-2.0.3"
+      sources."timers-browserify-1.4.2"
+      sources."tty-browserify-0.0.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      (sources."util-0.10.3" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+        ];
+      })
+      sources."vm-browserify-0.0.4"
+      sources."xtend-4.0.1"
+      sources."jsonparse-1.3.1"
+      sources."combine-source-map-0.7.2"
+      sources."umd-3.0.1"
+      sources."convert-source-map-1.1.3"
+      sources."inline-source-map-0.6.2"
+      sources."lodash.memoize-3.0.4"
+      sources."source-map-0.5.7"
+      sources."pako-0.2.9"
+      sources."base64-js-1.2.1"
+      sources."ieee754-1.1.8"
+      sources."isarray-1.0.0"
+      sources."typedarray-0.0.6"
+      sources."core-util-is-1.0.2"
+      sources."process-nextick-args-1.0.7"
+      sources."util-deprecate-1.0.2"
+      sources."date-now-0.1.4"
+      sources."browserify-cipher-1.0.0"
+      sources."browserify-sign-4.0.4"
+      sources."create-ecdh-4.0.0"
+      sources."create-hash-1.1.3"
+      sources."create-hmac-1.1.6"
+      sources."diffie-hellman-5.0.2"
+      sources."pbkdf2-3.0.14"
+      sources."public-encrypt-4.0.0"
+      sources."randombytes-2.0.5"
+      sources."browserify-aes-1.0.8"
+      sources."browserify-des-1.0.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."buffer-xor-1.0.3"
+      sources."cipher-base-1.0.4"
+      sources."safe-buffer-5.1.1"
+      sources."des.js-1.0.0"
+      sources."minimalistic-assert-1.0.0"
+      sources."md5.js-1.3.4"
+      sources."hash-base-3.0.4"
+      sources."bn.js-4.11.8"
+      sources."browserify-rsa-4.0.1"
+      sources."elliptic-6.4.0"
+      sources."parse-asn1-5.1.0"
+      sources."brorand-1.1.0"
+      sources."hash.js-1.1.3"
+      sources."hmac-drbg-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."asn1.js-4.9.1"
+      (sources."ripemd160-2.0.1" // {
+        dependencies = [
+          sources."hash-base-2.0.2"
+        ];
+      })
+      sources."sha.js-2.4.8"
+      sources."miller-rabin-4.0.0"
+      sources."function-bind-1.1.1"
+      sources."is-buffer-1.1.5"
+      sources."lexical-scope-1.2.0"
+      sources."astw-2.2.0"
+      sources."acorn-4.0.13"
+      sources."stream-splicer-2.0.0"
+      sources."detective-4.5.0"
+      sources."stream-combiner2-1.1.1"
+      sources."path-platform-0.11.15"
+      sources."path-parse-1.0.5"
+      sources."json-stable-stringify-0.0.1"
+      sources."jsonify-0.0.0"
+      sources."array-filter-0.0.1"
+      sources."array-reduce-0.0.0"
+      sources."array-map-0.0.0"
+      sources."builtin-status-codes-3.0.0"
+      sources."to-arraybuffer-1.0.1"
+      sources."minimist-1.2.0"
+      sources."querystring-0.2.0"
+      sources."indexof-0.0.1"
+      sources."browserify-cache-api-3.0.1"
+      sources."async-1.5.2"
+      sources."fs.realpath-1.0.0"
+      sources."inflight-1.0.6"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."wrappy-1.0.2"
+      sources."brace-expansion-1.1.8"
+      sources."balanced-match-1.0.0"
+      sources."concat-map-0.0.1"
+      (sources."optimist-0.6.1" // {
+        dependencies = [
+          sources."wordwrap-0.0.3"
+          sources."minimist-0.0.10"
+        ];
+      })
+      sources."colors-1.1.2"
+      sources."mime-1.4.0"
+      sources."mute-stream-0.0.7"
+      sources."os-tmpdir-1.0.2"
+      sources."rimraf-2.2.8"
+      sources."chokidar-1.7.0"
+      sources."graceful-fs-4.1.11"
+      sources."lodash-4.17.4"
+      sources."anymatch-1.3.2"
+      sources."async-each-1.0.1"
+      sources."glob-parent-2.0.0"
+      sources."is-binary-path-1.0.1"
+      sources."is-glob-2.0.1"
+      sources."readdirp-2.1.0"
+      sources."fsevents-1.1.2"
+      sources."micromatch-2.3.11"
+      sources."normalize-path-2.1.1"
+      sources."arr-diff-2.0.0"
+      sources."array-unique-0.2.1"
+      sources."braces-1.8.5"
+      sources."expand-brackets-0.1.5"
+      sources."extglob-0.3.2"
+      sources."filename-regex-2.0.1"
+      sources."is-extglob-1.0.0"
+      sources."kind-of-3.2.2"
+      sources."object.omit-2.0.1"
+      sources."parse-glob-3.0.4"
+      sources."regex-cache-0.4.4"
+      sources."arr-flatten-1.1.0"
+      sources."expand-range-1.8.2"
+      sources."preserve-0.2.0"
+      sources."repeat-element-1.1.2"
+      sources."fill-range-2.2.3"
+      sources."is-number-2.1.0"
+      sources."isobject-2.1.0"
+      (sources."randomatic-1.1.7" // {
+        dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      sources."repeat-string-1.6.1"
+      sources."is-posix-bracket-0.1.1"
+      sources."for-own-0.1.5"
+      sources."is-extendable-0.1.1"
+      sources."for-in-1.0.2"
+      sources."glob-base-0.3.0"
+      sources."is-dotfile-1.0.3"
+      sources."is-equal-shallow-0.1.3"
+      sources."is-primitive-2.0.0"
+      sources."remove-trailing-separator-1.1.0"
+      sources."binary-extensions-1.10.0"
+      sources."set-immediate-shim-1.0.1"
+      sources."nan-2.7.0"
+      (sources."node-pre-gyp-0.6.37" // {
+        dependencies = [
+          sources."rimraf-2.6.2"
+        ];
+      })
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      sources."nopt-4.0.1"
+      sources."npmlog-4.1.2"
+      sources."rc-1.2.1"
+      sources."request-2.82.0"
+      sources."semver-5.4.1"
+      sources."tape-4.8.0"
+      sources."tar-2.2.1"
+      (sources."tar-pack-3.4.0" // {
+        dependencies = [
+          sources."rimraf-2.6.2"
+        ];
+      })
+      sources."abbrev-1.1.0"
+      sources."osenv-0.1.4"
+      sources."os-homedir-1.0.2"
+      sources."are-we-there-yet-1.1.4"
+      sources."console-control-strings-1.1.0"
+      sources."gauge-2.7.4"
+      sources."set-blocking-2.0.0"
+      sources."delegates-1.0.0"
+      sources."aproba-1.2.0"
+      sources."has-unicode-2.0.1"
+      sources."object-assign-4.1.1"
+      sources."signal-exit-3.0.2"
+      sources."string-width-1.0.2"
+      sources."strip-ansi-3.0.1"
+      sources."wide-align-1.1.2"
+      sources."code-point-at-1.1.0"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."number-is-nan-1.0.1"
+      sources."ansi-regex-2.1.1"
+      sources."deep-extend-0.4.2"
+      sources."ini-1.3.4"
+      sources."strip-json-comments-2.0.1"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.6.0"
+      sources."caseless-0.12.0"
+      sources."combined-stream-1.0.5"
+      sources."extend-3.0.1"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
+      sources."is-typedarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."json-stringify-safe-5.0.1"
+      sources."mime-types-2.1.17"
+      sources."oauth-sign-0.8.2"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
+      sources."stringstream-0.0.5"
+      sources."tough-cookie-2.3.2"
+      sources."tunnel-agent-0.6.0"
+      sources."uuid-3.1.0"
+      sources."delayed-stream-1.0.0"
+      sources."asynckit-0.4.0"
+      (sources."ajv-5.2.2" // {
+        dependencies = [
+          sources."json-stable-stringify-1.0.1"
+        ];
+      })
+      sources."har-schema-2.0.0"
+      sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
+        dependencies = [
+          sources."boom-5.2.0"
+        ];
+      })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
+      sources."extsprintf-1.3.0"
+      sources."json-schema-0.2.3"
+      sources."verror-1.10.0"
+      sources."asn1-0.2.3"
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
+      sources."jsbn-0.1.1"
+      sources."tweetnacl-0.14.5"
+      sources."ecc-jsbn-0.1.1"
+      sources."bcrypt-pbkdf-1.0.1"
+      sources."mime-db-1.30.0"
+      sources."deep-equal-1.0.1"
+      sources."for-each-0.3.2"
+      sources."object-inspect-1.3.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."is-function-1.0.1"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
+      sources."block-stream-0.0.9"
+      sources."fstream-1.0.11"
+      sources."debug-2.6.8"
+      sources."fstream-ignore-1.0.5"
+      sources."uid-number-0.0.6"
+      sources."ms-2.0.0"
+      sources."isexe-2.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A build system for PureScript projects";
+      homepage = https://github.com/bodil/pulp;
+      license = "LGPL-3.0+";
+    };
+    production = true;
+  };
   react-tools = nodeEnv.buildNodePackage {
     name = "react-tools";
     packageName = "react-tools";
@@ -33433,7 +34188,7 @@ in
       sources."detective-4.5.0"
       sources."glob-5.0.15"
       sources."graceful-fs-4.1.11"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."mkdirp-0.5.1"
       sources."private-0.1.7"
       sources."q-1.5.0"
@@ -33536,30 +34291,30 @@ in
       sources."request-2.9.203"
       (sources."openid-2.0.6" // {
         dependencies = [
-          sources."request-2.81.0"
-          sources."qs-6.4.0"
+          sources."request-2.82.0"
+          sources."qs-6.5.1"
         ];
       })
       sources."node-swt-0.1.1"
       sources."node-wsfederation-0.1.1"
       sources."formidable-1.0.11"
       sources."crc-0.2.0"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
@@ -33567,44 +34322,30 @@ in
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -33637,17 +34378,21 @@ in
   serve = nodeEnv.buildNodePackage {
     name = "serve";
     packageName = "serve";
-    version = "6.0.6";
+    version = "6.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serve/-/serve-6.0.6.tgz";
-      sha512 = "1r8g02k4ab6rr6mbh0pib7wg2q08nmydkz5mgvg5mjlq41q7cqi3gsxw85d9qw891rmrhx66zm0h7m85y7mldp3b7nhqqgmqblsl9h2";
+      url = "https://registry.npmjs.org/serve/-/serve-6.1.0.tgz";
+      sha512 = "3hrp79lvglwci8nbyxqwy38f27xfa2axsb5nzqy6hsg4sjs1fpn0va22zv01jgdxjqs9lhpisc47y5aidd699mnrxpvp787gsgvx8ic";
     };
     dependencies = [
-      sources."args-3.0.4"
-      sources."basic-auth-1.1.0"
+      (sources."args-3.0.4" // {
+        dependencies = [
+          sources."chalk-2.0.1"
+        ];
+      })
+      sources."basic-auth-2.0.0"
       sources."bluebird-3.5.0"
       sources."boxen-1.2.1"
-      sources."chalk-2.0.1"
+      sources."chalk-2.1.0"
       (sources."clipboardy-1.1.4" // {
         dependencies = [
           sources."execa-0.6.3"
@@ -33656,24 +34401,16 @@ in
       sources."dargs-5.1.0"
       sources."detect-port-1.2.1"
       sources."filesize-3.5.10"
-      sources."fs-extra-4.0.1"
+      sources."fs-extra-4.0.2"
       sources."handlebars-4.0.10"
       sources."ip-1.1.5"
-      sources."micro-8.0.1"
+      sources."micro-9.0.0"
       sources."micro-compress-1.0.0"
-      (sources."mime-types-2.1.16" // {
-        dependencies = [
-          sources."mime-db-1.29.0"
-        ];
-      })
+      sources."mime-types-2.1.17"
       sources."node-version-1.1.0"
       sources."opn-5.1.0"
       sources."path-type-3.0.0"
-      (sources."send-0.15.3" // {
-        dependencies = [
-          sources."debug-2.6.7"
-        ];
-      })
+      sources."send-0.15.4"
       (sources."update-notifier-2.2.0" // {
         dependencies = [
           sources."chalk-1.1.3"
@@ -33687,7 +34424,14 @@ in
       sources."minimist-1.2.0"
       sources."pkginfo-0.4.0"
       sources."string-similarity-1.2.0"
+      sources."ansi-styles-3.2.0"
+      sources."escape-string-regexp-1.0.5"
+      sources."supports-color-4.4.0"
+      sources."color-convert-1.9.0"
+      sources."color-name-1.1.3"
+      sources."has-flag-2.0.0"
       sources."lodash-4.17.4"
+      sources."safe-buffer-5.1.1"
       sources."ansi-align-2.0.0"
       sources."cli-boxes-1.0.0"
       sources."string-width-2.1.1"
@@ -33721,17 +34465,11 @@ in
       sources."path-key-2.0.1"
       sources."code-point-at-1.1.0"
       sources."number-is-nan-1.0.1"
-      sources."ansi-styles-3.2.0"
-      sources."escape-string-regexp-1.0.5"
-      sources."supports-color-4.4.0"
-      sources."color-convert-1.9.0"
-      sources."color-name-1.1.3"
-      sources."has-flag-2.0.0"
       sources."address-1.0.3"
       sources."debug-2.6.8"
       sources."ms-2.0.0"
       sources."graceful-fs-4.1.11"
-      sources."jsonfile-3.0.1"
+      sources."jsonfile-4.0.0"
       sources."universalify-0.1.1"
       sources."async-1.5.2"
       (sources."optimist-0.6.1" // {
@@ -33770,10 +34508,15 @@ in
       sources."is-buffer-1.1.5"
       sources."media-typer-0.3.0"
       sources."mri-1.1.0"
-      sources."raw-body-2.2.0"
-      sources."bytes-2.4.0"
-      sources."iconv-lite-0.4.15"
+      sources."raw-body-2.3.2"
+      sources."bytes-3.0.0"
+      sources."http-errors-1.6.2"
+      sources."iconv-lite-0.4.19"
       sources."unpipe-1.0.0"
+      sources."depd-1.1.1"
+      sources."inherits-2.0.3"
+      sources."setprototypeof-1.0.3"
+      sources."statuses-1.3.1"
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
@@ -33782,25 +34525,19 @@ in
       sources."accepts-1.3.4"
       sources."compressible-2.0.11"
       sources."on-headers-1.0.1"
-      sources."safe-buffer-5.1.1"
       sources."vary-1.1.1"
       sources."negotiator-0.6.1"
       sources."mime-db-1.30.0"
       sources."is-wsl-1.1.0"
       sources."pify-3.0.0"
-      sources."depd-1.1.1"
       sources."destroy-1.0.4"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
+      sources."etag-1.8.1"
       sources."fresh-0.5.0"
-      sources."http-errors-1.6.2"
       sources."mime-1.3.4"
       sources."on-finished-2.3.0"
       sources."range-parser-1.2.0"
-      sources."statuses-1.3.1"
-      sources."inherits-2.0.3"
-      sources."setprototypeof-1.0.3"
       sources."ee-first-1.1.1"
       sources."configstore-3.1.1"
       sources."import-lazy-2.1.0"
@@ -33863,12 +34600,13 @@ in
     dependencies = [
       sources."express-5.0.0-alpha.5"
       sources."express-json5-0.1.0"
-      (sources."body-parser-1.17.2" // {
+      (sources."body-parser-1.18.1" // {
         dependencies = [
-          sources."bytes-2.4.0"
-          sources."debug-2.6.7"
-          sources."iconv-lite-0.4.15"
-          sources."raw-body-2.2.0"
+          sources."bytes-3.0.0"
+          sources."debug-2.6.8"
+          sources."iconv-lite-0.4.19"
+          sources."qs-6.5.1"
+          sources."raw-body-2.3.2"
           sources."ms-2.0.0"
         ];
       })
@@ -33880,9 +34618,13 @@ in
         ];
       })
       sources."commander-2.11.0"
-      sources."js-yaml-3.9.1"
+      sources."js-yaml-3.10.0"
       sources."cookies-0.7.1"
-      sources."request-2.81.0"
+      (sources."request-2.82.0" // {
+        dependencies = [
+          sources."qs-6.5.1"
+        ];
+      })
       sources."async-0.9.2"
       sources."es6-shim-0.21.1"
       sources."semver-4.3.6"
@@ -33908,15 +34650,15 @@ in
       sources."accepts-1.3.4"
       sources."array-flatten-2.1.1"
       sources."content-disposition-0.5.2"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
       sources."debug-2.6.1"
       sources."depd-1.1.1"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      (sources."finalhandler-1.0.4" // {
+      sources."etag-1.8.1"
+      (sources."finalhandler-1.0.5" // {
         dependencies = [
           sources."debug-2.6.8"
           sources."ms-2.0.0"
@@ -33926,7 +34668,7 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."on-finished-2.3.0"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
@@ -33951,7 +34693,7 @@ in
       sources."ms-0.7.2"
       sources."unpipe-1.0.0"
       sources."ee-first-1.1.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -33966,66 +34708,52 @@ in
       sources."esprima-4.0.0"
       sources."sprintf-js-1.0.3"
       sources."keygrip-1.0.2"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
+      sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."core-util-is-1.0.2"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -34220,7 +34948,7 @@ in
       sources."dtrace-provider-0.6.0"
       sources."precond-0.2.3"
       sources."csv-generate-0.0.6"
-      sources."csv-parse-1.2.1"
+      sources."csv-parse-1.2.2"
       sources."stream-transform-0.1.2"
       sources."csv-stringify-0.0.8"
       sources."asn1-0.1.11"
@@ -34338,7 +35066,7 @@ in
       sources."esprima-2.7.3"
       sources."sprintf-js-1.0.3"
       sources."minimist-0.0.8"
-      sources."clap-1.2.0"
+      sources."clap-1.2.3"
       sources."source-map-0.5.7"
       sources."chalk-1.1.3"
       sources."ansi-styles-2.2.1"
@@ -34420,10 +35148,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.0.28";
+    version = "3.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz";
-      sha512 = "0c2lanpm4sac5iz6mybcdxyh2y1hrgjghlggjh1wq2nr19lr9yig6j2hgjvghm1pzv5r3lm7pfhbgnpndrbynjmva3a3mxlmhcyl7yj";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.1.1.tgz";
+      sha512 = "324ss2wqxsz86ih8hy14lkaqaq32kck3mkka79nj7v3bk9288c9a1x7pc88na5g17ch83qvg9j5hwlzl7v72crl5c01dz9d92cfkc3z";
     };
     dependencies = [
       sources."commander-2.11.0"
@@ -34520,20 +35248,33 @@ in
       })
       (sources."npm-registry-client-8.4.0" // {
         dependencies = [
-          sources."request-2.81.0"
+          sources."request-2.82.0"
+          sources."aws-sign2-0.7.0"
           sources."combined-stream-1.0.5"
           sources."extend-3.0.1"
           sources."forever-agent-0.6.1"
-          sources."form-data-2.1.4"
-          sources."hawk-3.1.3"
+          sources."form-data-2.3.1"
+          sources."har-validator-5.0.3"
+          sources."hawk-6.0.2"
+          sources."http-signature-1.2.0"
           sources."json-stringify-safe-5.0.1"
           sources."oauth-sign-0.8.2"
+          sources."performance-now-2.1.0"
+          sources."qs-6.5.1"
           sources."tunnel-agent-0.6.0"
+          sources."uuid-3.1.0"
           sources."delayed-stream-1.0.0"
-          sources."hoek-2.16.3"
-          sources."boom-2.10.1"
-          sources."cryptiles-2.0.5"
-          sources."sntp-1.0.9"
+          sources."ajv-5.2.2"
+          sources."har-schema-2.0.0"
+          sources."hoek-4.2.0"
+          sources."boom-4.3.1"
+          (sources."cryptiles-3.1.2" // {
+            dependencies = [
+              sources."boom-5.2.0"
+            ];
+          })
+          sources."sntp-2.0.2"
+          sources."assert-plus-1.0.0"
         ];
       })
       sources."octicons-3.5.0"
@@ -34553,7 +35294,7 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
       sources."serve-static-1.12.4"
       sources."signals-1.0.0"
@@ -34593,7 +35334,7 @@ in
         ];
       })
       sources."bytes-2.4.0"
-      sources."content-type-1.0.2"
+      sources."content-type-1.0.4"
       sources."debug-2.6.7"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
@@ -34632,8 +35373,8 @@ in
       sources."content-disposition-0.5.2"
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
-      sources."etag-1.8.0"
-      (sources."finalhandler-1.0.4" // {
+      sources."etag-1.8.1"
+      (sources."finalhandler-1.0.5" // {
         dependencies = [
           sources."debug-2.6.8"
         ];
@@ -34641,7 +35382,7 @@ in
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."parseurl-1.3.1"
+      sources."parseurl-1.3.2"
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
@@ -34653,7 +35394,7 @@ in
       sources."utils-merge-1.0.0"
       sources."vary-1.1.1"
       sources."negotiator-0.6.1"
-      sources."forwarded-0.1.0"
+      sources."forwarded-0.1.2"
       sources."ipaddr.js-1.4.0"
       sources."destroy-1.0.4"
       sources."mime-1.3.4"
@@ -35100,6 +35841,8 @@ in
       sources."spdx-expression-parse-1.0.4"
       sources."spdx-license-ids-1.2.2"
       sources."ssri-4.1.6"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."passport-strategy-1.0.0"
       sources."pause-0.0.1"
       sources."lsmod-1.0.0"
@@ -35261,7 +36004,7 @@ in
       sources."jsonfile-2.4.0"
       sources."klaw-1.3.1"
       sources."path-is-absolute-1.0.1"
-      sources."rimraf-2.6.1"
+      sources."rimraf-2.6.2"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
@@ -35363,10 +36106,10 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "3.5.6";
+    version = "3.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-3.5.6.tgz";
-      sha512 = "074qvc0afzqmgizpxih7yhbp3bzf77l3jf91zssaqlilvz56jkgj6mnyw5r2qv2y8kgqc8q147ys00b8bc8v2q12imrb8ca3rzz2ydi";
+      url = "https://registry.npmjs.org/webpack/-/webpack-3.6.0.tgz";
+      sha512 = "12fzgy04c0gwlpr5bn66q92kbnv8wn4sm6xd2mmhc3dwq0fkrl2h1pmad3wh56x8zia8v7s4jcwxndhv8pb9d0y7s7skl0n7pfd7h9s";
     };
     dependencies = [
       sources."acorn-5.1.2"
@@ -35380,7 +36123,7 @@ in
       sources."async-2.5.0"
       sources."enhanced-resolve-3.4.1"
       sources."escope-3.6.0"
-      sources."interpret-1.0.3"
+      sources."interpret-1.0.4"
       sources."json-loader-0.5.7"
       sources."json5-0.5.1"
       sources."loader-runner-2.3.0"
@@ -35430,7 +36173,7 @@ in
       sources."es6-set-0.1.5"
       sources."es6-symbol-3.1.1"
       sources."event-emitter-0.3.5"
-      sources."big.js-3.1.3"
+      sources."big.js-3.2.0"
       sources."emojis-list-2.1.0"
       sources."errno-0.1.4"
       sources."readable-stream-2.3.3"
@@ -35482,7 +36225,7 @@ in
       sources."create-hash-1.1.3"
       sources."create-hmac-1.1.6"
       sources."diffie-hellman-5.0.2"
-      sources."pbkdf2-3.0.13"
+      sources."pbkdf2-3.0.14"
       sources."public-encrypt-4.0.0"
       sources."randombytes-2.0.5"
       sources."browserify-aes-1.0.8"
@@ -35590,7 +36333,7 @@ in
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.36"
+      sources."node-pre-gyp-0.6.37"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       (sources."rc-1.2.1" // {
@@ -35598,9 +36341,14 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.81.0"
-      sources."rimraf-2.6.1"
+      sources."request-2.82.0"
+      sources."rimraf-2.6.2"
       sources."semver-5.4.1"
+      (sources."tape-4.8.0" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -35612,7 +36360,7 @@ in
       sources."gauge-2.7.4"
       sources."set-blocking-2.0.0"
       sources."delegates-1.0.0"
-      sources."aproba-1.1.2"
+      sources."aproba-1.2.0"
       sources."has-unicode-2.0.1"
       sources."signal-exit-3.0.2"
       sources."string-width-1.0.2"
@@ -35625,67 +36373,47 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      (sources."har-validator-4.2.1" // {
-        dependencies = [
-          sources."ajv-4.11.8"
-        ];
-      })
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tough-cookie-2.3.2"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."har-schema-1.0.5"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."har-schema-2.0.0"
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
@@ -35696,6 +36424,27 @@ in
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
+      sources."deep-equal-1.0.1"
+      sources."defined-1.0.0"
+      sources."for-each-0.3.2"
+      sources."function-bind-1.1.1"
+      sources."has-1.0.1"
+      sources."object-inspect-1.3.0"
+      sources."resolve-1.4.0"
+      sources."resumer-0.0.0"
+      sources."string.prototype.trim-1.1.2"
+      sources."through-2.3.8"
+      sources."is-function-1.0.1"
+      sources."path-parse-1.0.5"
+      sources."define-properties-1.1.2"
+      sources."es-abstract-1.8.2"
+      sources."foreach-2.0.5"
+      sources."object-keys-1.0.11"
+      sources."es-to-primitive-1.1.1"
+      sources."is-callable-1.1.3"
+      sources."is-regex-1.0.4"
+      sources."is-date-object-1.0.1"
+      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."debug-2.6.8"
@@ -35784,246 +36533,11 @@ in
   yarn = nodeEnv.buildNodePackage {
     name = "yarn";
     packageName = "yarn";
-    version = "0.27.5";
+    version = "1.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yarn/-/yarn-0.27.5.tgz";
-      sha1 = "06fe67d8040802993f9f1e1923d671cbf9ead5d1";
+      url = "https://registry.npmjs.org/yarn/-/yarn-1.0.2.tgz";
+      sha1 = "d1b8f4b6d3b0684e86f63a072ac630995b8b7b0a";
     };
-    dependencies = [
-      sources."babel-runtime-6.26.0"
-      sources."bytes-2.5.0"
-      sources."camelcase-4.1.0"
-      sources."chalk-1.1.3"
-      sources."cmd-shim-2.0.2"
-      sources."commander-2.11.0"
-      sources."death-1.1.0"
-      sources."debug-2.6.8"
-      sources."detect-indent-5.0.0"
-      sources."glob-7.1.2"
-      sources."gunzip-maybe-1.4.1"
-      sources."ini-1.3.4"
-      (sources."inquirer-3.2.3" // {
-        dependencies = [
-          sources."chalk-2.1.0"
-          sources."strip-ansi-4.0.0"
-          sources."ansi-styles-3.2.0"
-          sources."supports-color-4.4.0"
-          sources."ansi-regex-3.0.0"
-        ];
-      })
-      sources."invariant-2.2.2"
-      sources."is-builtin-module-1.0.0"
-      sources."is-ci-1.0.10"
-      sources."leven-2.1.0"
-      sources."loud-rejection-1.6.0"
-      sources."micromatch-2.3.11"
-      sources."mkdirp-0.5.1"
-      sources."node-emoji-1.8.1"
-      sources."object-path-0.11.4"
-      sources."proper-lockfile-2.0.1"
-      sources."read-1.0.7"
-      sources."request-2.81.0"
-      sources."request-capture-har-1.2.2"
-      sources."rimraf-2.6.1"
-      sources."semver-5.4.1"
-      sources."strip-bom-3.0.0"
-      sources."tar-fs-1.15.3"
-      sources."tar-stream-1.5.4"
-      sources."uuid-3.1.0"
-      sources."v8-compile-cache-1.1.0"
-      sources."validate-npm-package-license-3.0.1"
-      sources."core-js-2.5.1"
-      sources."regenerator-runtime-0.11.0"
-      sources."ansi-styles-2.2.1"
-      sources."escape-string-regexp-1.0.5"
-      sources."has-ansi-2.0.0"
-      sources."strip-ansi-3.0.1"
-      sources."supports-color-2.0.0"
-      sources."ansi-regex-2.1.1"
-      sources."graceful-fs-4.1.11"
-      sources."ms-2.0.0"
-      sources."fs.realpath-1.0.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
-      sources."minimatch-3.0.4"
-      sources."once-1.4.0"
-      sources."path-is-absolute-1.0.1"
-      sources."wrappy-1.0.2"
-      sources."brace-expansion-1.1.8"
-      sources."balanced-match-1.0.0"
-      sources."concat-map-0.0.1"
-      sources."browserify-zlib-0.1.4"
-      sources."is-deflate-1.0.0"
-      sources."is-gzip-1.0.0"
-      sources."peek-stream-1.1.2"
-      sources."pumpify-1.3.5"
-      sources."through2-2.0.3"
-      sources."pako-0.2.9"
-      sources."duplexify-3.5.1"
-      sources."end-of-stream-1.4.0"
-      sources."readable-stream-2.3.3"
-      sources."stream-shift-1.0.0"
-      sources."core-util-is-1.0.2"
-      sources."isarray-1.0.0"
-      sources."process-nextick-args-1.0.7"
-      sources."safe-buffer-5.1.1"
-      sources."string_decoder-1.0.3"
-      sources."util-deprecate-1.0.2"
-      sources."pump-1.0.2"
-      sources."xtend-4.0.1"
-      sources."ansi-escapes-2.0.0"
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
-      sources."figures-2.0.0"
-      sources."lodash-4.17.4"
-      sources."mute-stream-0.0.7"
-      sources."run-async-2.3.0"
-      sources."rx-lite-4.0.8"
-      sources."rx-lite-aggregates-4.0.8"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."strip-ansi-4.0.0"
-          sources."ansi-regex-3.0.0"
-        ];
-      })
-      sources."through-2.3.8"
-      sources."color-convert-1.9.0"
-      sources."color-name-1.1.3"
-      sources."has-flag-2.0.0"
-      sources."restore-cursor-2.0.0"
-      sources."onetime-2.0.1"
-      sources."signal-exit-3.0.2"
-      sources."mimic-fn-1.1.0"
-      sources."iconv-lite-0.4.18"
-      sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
-      sources."os-tmpdir-1.0.2"
-      sources."is-promise-2.1.0"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."loose-envify-1.3.1"
-      sources."js-tokens-3.0.2"
-      sources."builtin-modules-1.1.1"
-      sources."ci-info-1.1.1"
-      sources."currently-unhandled-0.4.1"
-      sources."array-find-index-1.0.2"
-      sources."arr-diff-2.0.0"
-      sources."array-unique-0.2.1"
-      sources."braces-1.8.5"
-      sources."expand-brackets-0.1.5"
-      sources."extglob-0.3.2"
-      sources."filename-regex-2.0.1"
-      sources."is-extglob-1.0.0"
-      sources."is-glob-2.0.1"
-      sources."kind-of-3.2.2"
-      sources."normalize-path-2.1.1"
-      sources."object.omit-2.0.1"
-      sources."parse-glob-3.0.4"
-      sources."regex-cache-0.4.4"
-      sources."arr-flatten-1.1.0"
-      sources."expand-range-1.8.2"
-      sources."preserve-0.2.0"
-      sources."repeat-element-1.1.2"
-      sources."fill-range-2.2.3"
-      sources."is-number-2.1.0"
-      sources."isobject-2.1.0"
-      (sources."randomatic-1.1.7" // {
-        dependencies = [
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."kind-of-4.0.0"
-        ];
-      })
-      sources."repeat-string-1.6.1"
-      sources."is-buffer-1.1.5"
-      sources."is-posix-bracket-0.1.1"
-      sources."remove-trailing-separator-1.1.0"
-      sources."for-own-0.1.5"
-      sources."is-extendable-0.1.1"
-      sources."for-in-1.0.2"
-      sources."glob-base-0.3.0"
-      sources."is-dotfile-1.0.3"
-      sources."glob-parent-2.0.0"
-      sources."is-equal-shallow-0.1.3"
-      sources."is-primitive-2.0.0"
-      sources."minimist-0.0.8"
-      sources."lodash.toarray-4.4.0"
-      sources."retry-0.10.1"
-      sources."aws-sign2-0.6.0"
-      sources."aws4-1.6.0"
-      sources."caseless-0.12.0"
-      sources."combined-stream-1.0.5"
-      sources."extend-3.0.1"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
-      sources."is-typedarray-1.0.0"
-      sources."isstream-0.1.2"
-      sources."json-stringify-safe-5.0.1"
-      sources."mime-types-2.1.17"
-      sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
-      sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
-      sources."tunnel-agent-0.6.0"
-      sources."delayed-stream-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
-      sources."co-4.6.0"
-      sources."json-stable-stringify-1.0.1"
-      sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      sources."extsprintf-1.3.0"
-      sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      sources."jsbn-0.1.1"
-      sources."tweetnacl-0.14.5"
-      sources."ecc-jsbn-0.1.1"
-      sources."bcrypt-pbkdf-1.0.1"
-      sources."mime-db-1.30.0"
-      sources."punycode-1.4.1"
-      sources."chownr-1.0.1"
-      sources."bl-1.2.1"
-      sources."spdx-correct-1.0.2"
-      sources."spdx-expression-parse-1.0.4"
-      sources."spdx-license-ids-1.2.2"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "📦🐈 Fast, reliable, and secure dependency management.";
@@ -36050,7 +36564,7 @@ in
       sources."fullname-3.3.0"
       sources."got-6.7.1"
       sources."humanize-string-1.0.1"
-      (sources."inquirer-3.2.3" // {
+      (sources."inquirer-3.3.0" // {
         dependencies = [
           sources."chalk-2.1.0"
           sources."strip-ansi-4.0.0"
@@ -36212,10 +36726,10 @@ in
       sources."capture-stack-trace-1.0.0"
       sources."prepend-http-1.0.4"
       sources."decamelize-1.2.0"
-      sources."ansi-escapes-2.0.0"
+      sources."ansi-escapes-3.0.0"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.0"
-      sources."external-editor-2.0.4"
+      sources."external-editor-2.0.5"
       sources."mute-stream-0.0.7"
       sources."run-async-2.3.0"
       sources."rx-lite-4.0.8"
@@ -36232,15 +36746,15 @@ in
       sources."has-flag-2.0.0"
       sources."restore-cursor-2.0.0"
       sources."onetime-2.0.1"
-      sources."iconv-lite-0.4.18"
+      sources."iconv-lite-0.4.19"
       sources."jschardet-1.5.1"
-      sources."tmp-0.0.31"
+      sources."tmp-0.0.33"
       sources."os-tmpdir-1.0.2"
       sources."is-promise-2.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."lodash.debounce-3.1.1"
       sources."os-name-1.0.3"
-      sources."request-2.81.0"
+      sources."request-2.82.0"
       sources."tough-cookie-2.3.2"
       sources."uuid-3.1.0"
       (sources."mkdirp-0.5.1" // {
@@ -36266,66 +36780,52 @@ in
       sources."osx-release-1.1.0"
       sources."win-release-1.1.1"
       sources."semver-5.4.1"
-      sources."aws-sign2-0.6.0"
+      sources."aws-sign2-0.7.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
-      sources."har-validator-4.2.1"
-      sources."hawk-3.1.3"
-      sources."http-signature-1.1.1"
+      sources."form-data-2.3.1"
+      sources."har-validator-5.0.3"
+      sources."hawk-6.0.2"
+      sources."http-signature-1.2.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-0.2.0"
-      sources."qs-6.4.0"
+      sources."performance-now-2.1.0"
+      sources."qs-6.5.1"
       sources."stringstream-0.0.5"
       sources."tunnel-agent-0.6.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-4.11.8"
-      sources."har-schema-1.0.5"
+      sources."ajv-5.2.2"
+      sources."har-schema-2.0.0"
       sources."co-4.6.0"
+      sources."fast-deep-equal-1.0.0"
+      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-2.16.3"
-      sources."boom-2.10.1"
-      sources."cryptiles-2.0.5"
-      sources."sntp-1.0.9"
-      sources."assert-plus-0.2.0"
-      (sources."jsprim-1.4.1" // {
+      sources."hoek-4.2.0"
+      sources."boom-4.3.1"
+      (sources."cryptiles-3.1.2" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."sshpk-1.13.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."boom-5.2.0"
         ];
       })
+      sources."sntp-2.0.2"
+      sources."assert-plus-1.0.0"
+      sources."jsprim-1.4.1"
+      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."verror-1.10.0"
       sources."core-util-is-1.0.2"
       sources."asn1-0.2.3"
-      (sources."dashdash-1.14.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."getpass-0.1.7" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."dashdash-1.14.1"
+      sources."getpass-0.1.7"
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"

From 334dfc3086444e72e3ec3426dcb58ae9d8cf9392 Mon Sep 17 00:00:00 2001
From: Diego Zamboni <diego@zzamboni.org>
Date: Thu, 21 Sep 2017 22:23:16 +0200
Subject: [PATCH 136/533] assh: init at 2.6.0

Powerful wrapper around ssh.
---
 lib/maintainers.nix                    |  1 +
 pkgs/tools/networking/assh/default.nix | 28 ++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix        |  2 ++
 3 files changed, 31 insertions(+)
 create mode 100644 pkgs/tools/networking/assh/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index e9cf58c5baaa..a256f4444e7f 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -662,4 +662,5 @@
   zoomulator = "Kim Simmons <zoomulator@gmail.com>";
   zraexy = "David Mell <zraexy@gmail.com>";
   zx2c4 = "Jason A. Donenfeld <Jason@zx2c4.com>";
+  zzamboni = "Diego Zamboni <diego@zzamboni.org>";
 }
diff --git a/pkgs/tools/networking/assh/default.nix b/pkgs/tools/networking/assh/default.nix
new file mode 100644
index 000000000000..bbed205cce85
--- /dev/null
+++ b/pkgs/tools/networking/assh/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "assh-${version}";
+  version = "2.6.0";
+
+  goPackagePath = "github.com/moul/advanced-ssh-config";
+  subPackages = [ "cmd/assh" ];
+
+  postInstall = stdenv.lib.optionalString (stdenv.isDarwin) ''
+    install_name_tool -delete_rpath $out/lib $bin/bin/assh
+  '';
+
+  src = fetchFromGitHub {
+    repo = "advanced-ssh-config";
+    owner = "moul";
+    rev = "v${version}";
+    sha256 = "1vv98dz5822k51xklnmky0lwfjw8nc6ryvn8lmv9n63ppwh9s2s6";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Advanced SSH config - Regex, aliases, gateways, includes and dynamic hosts";
+    homepage = https://github.com/moul/advanced-ssh-config;
+    license = licenses.mit;
+    maintainers = with maintainers; [ zzamboni ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8b75752bd426..ac78881d7231 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1234,6 +1234,8 @@ with pkgs;
 
   autossh = callPackage ../tools/networking/autossh { };
 
+  assh = callPackage ../tools/networking/assh { };
+
   asynk = callPackage ../tools/networking/asynk { };
 
   bacula = callPackage ../tools/backup/bacula { };

From 62f8e255a49e485742096bf985cd81d3af9280e6 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Thu, 21 Sep 2017 22:22:38 +0200
Subject: [PATCH 137/533] vapoursynth: fix darwin build

---
 pkgs/development/libraries/vapoursynth/default.nix | 7 ++++---
 pkgs/top-level/all-packages.nix                    | 4 +++-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index b37f28f868ea..cdbecb4dc8bb 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook,
-  zimg, libass, yasm, python3,
+  zimg, libass, yasm, python3, libiconv, ApplicationServices,
   ocrSupport ?  false, tesseract,
   imwriSupport? true,  imagemagick7
 }:
@@ -20,11 +20,12 @@ stdenv.mkDerivation rec {
     sha256 = "0nabl6949s7awy7rnr4ck52v50xr0hwr280fyzsqixgp8w369jn0";
   };
 
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [
-    pkgconfig autoreconfHook
     zimg libass tesseract yasm
     (python3.withPackages (ps: with ps; [ sphinx cython ]))
-  ] ++ optional ocrSupport   tesseract
+  ] ++ optionals stdenv.isDarwin [ libiconv ApplicationServices ]
+    ++ optional ocrSupport   tesseract
     ++ optional imwriSupport imagemagick7;
 
   configureFlags = [
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d65cf86dff51..63d30c22ff22 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17807,7 +17807,9 @@ with pkgs;
 
   vapor = callPackage ../games/vapor { love = love_0_8; };
 
-  vapoursynth = callPackage ../development/libraries/vapoursynth { };
+  vapoursynth = callPackage ../development/libraries/vapoursynth {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
 
   vapoursynth-mvtools = callPackage ../development/libraries/vapoursynth-mvtools { };
 

From 351f5fc58519be059f9d6703f2f90a39ba2d1839 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sat, 19 Aug 2017 18:50:53 +0200
Subject: [PATCH 138/533] fuse3: init at 3.1.1

This includes fuse-common (fusePackages.fuse_3.common) as recommended by
upstream. But while fuse(2) and fuse3 would normally depend on
fuse-common we can't do that in nixpkgs while fuse-common is just
another output from the fuse3 multiple-output derivation (i.e. this
would result in a circular dependency). To avoid building fuse3 twice I
decided it would be best to copy the shared files (i.e. the ones
provided by fuse(2) and fuse3) from fuse-common to fuse (version 2) and
avoid collision warnings by defining priorities. Now it should be
possible to install an arbitrary combination of "fuse", "fuse3", and
"fuse-common" without getting any collision warnings. The end result
should be the same and all changes should be backwards compatible
(assuming that mount.fuse from fuse3 is backwards compatible as stated
by upstream [0] - if not this might break some /etc/fstab definitions
but that should be very unlikely).

My tests with sshfs (version 2 and 3) didn't show any problems.

See #28409 for some additional information.

[0]: https://github.com/libfuse/libfuse/releases/tag/fuse-3.0.0
---
 nixos/modules/profiles/base.nix             |  1 +
 nixos/modules/security/wrappers/default.nix |  5 +-
 nixos/modules/tasks/filesystems.nix         |  2 +-
 pkgs/os-specific/linux/fuse/common.nix      | 72 +++++++++++++++++++++
 pkgs/os-specific/linux/fuse/default.nix     | 57 +++++-----------
 pkgs/top-level/all-packages.nix             |  5 +-
 6 files changed, 97 insertions(+), 45 deletions(-)
 create mode 100644 pkgs/os-specific/linux/fuse/common.nix

diff --git a/nixos/modules/profiles/base.nix b/nixos/modules/profiles/base.nix
index 687cd9d80d36..39b8553976eb 100644
--- a/nixos/modules/profiles/base.nix
+++ b/nixos/modules/profiles/base.nix
@@ -20,6 +20,7 @@
 
     # Some networking tools.
     pkgs.fuse
+    pkgs.fuse3
     pkgs.sshfs-fuse
     pkgs.socat
     pkgs.screen
diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix
index a6dc8faaae98..1f64213accd4 100644
--- a/nixos/modules/security/wrappers/default.nix
+++ b/nixos/modules/security/wrappers/default.nix
@@ -155,7 +155,10 @@ in
   ###### implementation
   config = {
 
-    security.wrappers.fusermount.source = "${pkgs.fuse}/bin/fusermount";
+    security.wrappers = {
+      fusermount.source = "${pkgs.fuse}/bin/fusermount";
+      fusermount3.source = "${pkgs.fuse3}/bin/fusermount3";
+    };
 
     boot.specialFileSystems.${parentWrapperDir} = {
       fsType = "tmpfs";
diff --git a/nixos/modules/tasks/filesystems.nix b/nixos/modules/tasks/filesystems.nix
index 1922d2924bc5..6ceb36714b28 100644
--- a/nixos/modules/tasks/filesystems.nix
+++ b/nixos/modules/tasks/filesystems.nix
@@ -217,7 +217,7 @@ in
     # Add the mount helpers to the system path so that `mount' can find them.
     system.fsPackages = [ pkgs.dosfstools ];
 
-    environment.systemPackages = [ pkgs.fuse ] ++ config.system.fsPackages;
+    environment.systemPackages = with pkgs; [ fuse3 fuse ] ++ config.system.fsPackages;
 
     environment.etc.fstab.text =
       let
diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
new file mode 100644
index 000000000000..8938eaae8183
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -0,0 +1,72 @@
+{ version, sha256Hash, maintainers }:
+
+{ stdenv, fetchFromGitHub, fetchpatch
+, utillinux, autoconf, automake, libtool, gettext
+, fusePackages }:
+
+let
+  isFuse3 = stdenv.lib.hasPrefix "3" version;
+in stdenv.mkDerivation rec {
+  name = "fuse-${version}";
+
+  src = fetchFromGitHub {
+    owner = "libfuse";
+    repo = "libfuse";
+    rev = name;
+    sha256 = sha256Hash;
+  };
+
+  patches = stdenv.lib.optional
+    (!isFuse3 && stdenv.isAarch64)
+    (fetchpatch {
+      url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
+      sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
+  });
+
+  nativeBuildInputs = [ libtool autoconf automake ];
+  buildInputs = [ gettext utillinux ];
+
+  outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
+
+  preConfigure = ''
+    export MOUNT_FUSE_PATH=$out/sbin
+    export INIT_D_PATH=$TMPDIR/etc/init.d
+    export UDEV_RULES_PATH=$out/etc/udev/rules.d
+
+    # Ensure that FUSE calls the setuid wrapper, not
+    # $out/bin/fusermount. It falls back to calling fusermount in
+    # $PATH, so it should also work on non-NixOS systems.
+    export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
+
+    sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
+    sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
+
+    ./makeconf.sh
+  '';
+
+  postFixup = if isFuse3 then ''
+    cd $out
+
+    mv bin/mount.fuse3 bin/mount.fuse
+    mv etc/udev/rules.d/99-fuse3.rules etc/udev/rules.d/99-fuse.rules
+
+    install -D -m555 bin/mount.fuse $common/bin/mount.fuse
+    install -D -m444 etc/udev/rules.d/99-fuse.rules $common/etc/udev/rules.d/99-fuse.rules
+    install -D -m444 share/man/man8/mount.fuse.8.gz $common/share/man/man8/mount.fuse.8.gz
+  '' else ''
+    cd $out
+
+    cp ${fusePackages.fuse_3.common}/bin/mount.fuse bin/mount.fuse
+    cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules
+    cp ${fusePackages.fuse_3.common}/share/man/man8/mount.fuse.8.gz share/man/man8/mount.fuse.8.gz
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    inherit (src.meta) homepage;
+    description = "Kernel module and library that allows filesystems to be implemented in user space";
+    platforms = stdenv.lib.platforms.linux;
+    inherit maintainers;
+  };
+}
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index b36d13a0b1da..1a6c45c7cee9 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -1,47 +1,20 @@
-{ stdenv, fetchFromGitHub, fetchpatch, utillinux
-, autoconf, automake, libtool, gettext }:
+{ stdenv, callPackage, utillinux }:
 
-stdenv.mkDerivation rec {
-  name = "fuse-${version}";
-  version = "2.9.7";
-
-  src = fetchFromGitHub {
-    owner = "libfuse";
-    repo = "libfuse";
-    rev = name;
-    sha256 = "1wyjjfb7p4jrkk15zryzv33096a5fmsdyr2p4b00dd819wnly2n2";
+let
+  mkFuse = args: callPackage (import ./common.nix args) {
+    inherit utillinux;
   };
-
-  buildInputs = [ utillinux autoconf automake libtool gettext ];
-
-  patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch {
-    url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
-    sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
-  });
-
-  preConfigure =
-    ''
-      export MOUNT_FUSE_PATH=$out/sbin
-      export INIT_D_PATH=$TMPDIR/etc/init.d
-      export UDEV_RULES_PATH=$out/etc/udev/rules.d
-
-      # Ensure that FUSE calls the setuid wrapper, not
-      # $out/bin/fusermount. It falls back to calling fusermount in
-      # $PATH, so it should also work on non-NixOS systems.
-      export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
-
-      sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
-      sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
-
-      ./makeconf.sh
-    '';
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/libfuse/libfuse;
-    description = "Kernel module and library that allows filesystems to be implemented in user space";
-    platforms = platforms.linux;
+  maintainers = stdenv.lib.maintainers;
+in {
+  fuse_2 = mkFuse {
+    version = "2.9.7";
+    sha256Hash = "1wyjjfb7p4jrkk15zryzv33096a5fmsdyr2p4b00dd819wnly2n2";
     maintainers = [ maintainers.mornfall ];
   };
+
+  fuse_3 = mkFuse {
+    version = "3.1.1";
+    sha256Hash = "14mazl2i55fp4vjphwgcmk3mp2x3mhqwh9nci0rd0jl5lhpdmpq6";
+    maintainers = [ maintainers.primeos ];
+  };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 63d30c22ff22..bf60c6c36828 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12052,9 +12052,12 @@ with pkgs;
     inherit (linuxPackages) kernel;
   };
 
-  fuse = callPackage ../os-specific/linux/fuse {
+  fusePackages = callPackage ../os-specific/linux/fuse {
     utillinux = utillinuxMinimal;
   };
+  fuse = lowPrio fusePackages.fuse_2;
+  fuse3 = fusePackages.fuse_3;
+  fuse-common = hiPrio fusePackages.fuse_3.common;
 
   fusionio-util = callPackage ../os-specific/linux/fusionio/util.nix { };
 

From 137142a72cd6ef96b227dd0f1164504abf5546f1 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sat, 19 Aug 2017 21:42:50 +0200
Subject: [PATCH 139/533] sshfs-fuse: 2.10 -> 3.2.0

---
 pkgs/tools/filesystems/sshfs-fuse/default.nix | 8 ++++----
 pkgs/top-level/aliases.nix                    | 1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index c1502a3227d2..62505ac041e6 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse, autoreconfHook }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse3, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "2.10"; # Temporary (need to add libfuse 3.x first)
+  version = "3.2.0";
   name = "sshfs-fuse-${version}";
   
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
-    sha256 = "1dmw4kx6vyawcywiv8drrajnam0m29mxfswcp4209qafzx3mjlp1";
+    sha256 = "09pqdibhcj1p7m6vxkqiprvbcxp9iq2lm1hb6w7p8iarmvp80rlv";
   };
   
-  buildInputs = [ pkgconfig glib fuse autoreconfHook ];
+  buildInputs = [ pkgconfig glib fuse3 autoreconfHook ];
 
   postInstall = ''
     mkdir -p $out/sbin
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 181e8a35277b..c40dcb63bf79 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -135,6 +135,7 @@ mapAliases (rec {
   spaceOrbit = space-orbit; # addewd 2016-05-23
   speedtest_cli = speedtest-cli;  # added 2015-02-17
   sqliteInteractive = sqlite-interactive;  # added 2014-12-06
+  sshfs = sshfs-fuse; # added 2017-08-14
   sshfsFuse = sshfs-fuse; # added 2016-09
   surf-webkit2 = surf; # added 2017-04-02
   system_config_printer = system-config-printer;  # added 2016-01-03

From 81569ecd722c466d3753caef0806adb12b8f3595 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Thu, 21 Sep 2017 23:03:55 +0100
Subject: [PATCH 140/533] assh: add openssh to PATH

---
 pkgs/tools/networking/assh/default.nix | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/pkgs/tools/networking/assh/default.nix b/pkgs/tools/networking/assh/default.nix
index bbed205cce85..1de87e07e049 100644
--- a/pkgs/tools/networking/assh/default.nix
+++ b/pkgs/tools/networking/assh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, openssh, makeWrapper }:
 
 buildGoPackage rec {
   name = "assh-${version}";
@@ -7,8 +7,13 @@ buildGoPackage rec {
   goPackagePath = "github.com/moul/advanced-ssh-config";
   subPackages = [ "cmd/assh" ];
 
+  nativeBuildInputs = [ makeWrapper ];
+
   postInstall = stdenv.lib.optionalString (stdenv.isDarwin) ''
     install_name_tool -delete_rpath $out/lib $bin/bin/assh
+  '' + ''
+    wrapProgram "$bin/bin/assh" \
+      --prefix PATH : ${openssh}/bin
   '';
 
   src = fetchFromGitHub {

From 570c0b3a7292e62a9014e6a2a6ed77b47b8dd52d Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Fri, 22 Sep 2017 00:23:39 +0200
Subject: [PATCH 141/533] transfig: cleanup and fix darwin clang

---
 pkgs/tools/graphics/transfig/builder.sh  | 38 --------------
 pkgs/tools/graphics/transfig/default.nix | 67 +++++++++++++++++-------
 2 files changed, 48 insertions(+), 57 deletions(-)
 delete mode 100644 pkgs/tools/graphics/transfig/builder.sh

diff --git a/pkgs/tools/graphics/transfig/builder.sh b/pkgs/tools/graphics/transfig/builder.sh
deleted file mode 100644
index c466f759446c..000000000000
--- a/pkgs/tools/graphics/transfig/builder.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-source $stdenv/setup
-
-patchPhase() {
-    for i in $patches; do
-        header "applying patch $i" 3
-        patch -p0 < $i
-        stopNest
-    done
-
-    configureImakefiles "s:__PREFIX_PNG:$libpng:"
-    configureImakefiles "s:__PREFIX:$out:"
-}
-
-configureImakefiles() {
-    local sedcmd=$1
-
-    sed "${sedcmd}" fig2dev/Imakefile > tmpsed
-    cp tmpsed fig2dev/Imakefile
-
-    sed "${sedcmd}" fig2dev/dev/Imakefile > tmpsed
-    cp tmpsed fig2dev/dev/Imakefile
-
-    sed "${sedcmd}" transfig/Imakefile > tmpsed
-    cp tmpsed transfig/Imakefile
-}
-
-buildPhase() {
-    xmkmf
-    make Makefiles
-    make
-}
-
-preInstall() {
-    mkdir -p $out
-    mkdir -p $out/lib
-}
-
-genericBuild
diff --git a/pkgs/tools/graphics/transfig/default.nix b/pkgs/tools/graphics/transfig/default.nix
index 948bba6d459f..cb3f0edff0f8 100644
--- a/pkgs/tools/graphics/transfig/default.nix
+++ b/pkgs/tools/graphics/transfig/default.nix
@@ -2,34 +2,63 @@
 
 stdenv.mkDerivation rec {
   name = "transfig-3.2.4";
-  builder = ./builder.sh;
   src = fetchurl {
     url = ftp://ftp.tex.ac.uk/pub/archive/graphics/transfig/transfig.3.2.4.tar.gz;
     sha256 = "0429snhp5acbz61pvblwlrwv8nxr6gf12p37f9xxwrkqv4ir7dd4";
   };
 
   buildInputs = [zlib libjpeg libpng imake];
-  inherit libpng;
+
+  patches = [
+    ./patch-fig2dev-dev-Imakefile
+    ./patch-fig2dev-Imakefile
+    ./patch-transfig-Imakefile
+    ./patch-fig2dev-fig2dev.h
+    ./patch-fig2dev-dev-gensvg.c
+  ];
+
+  patchPhase = ''
+    runHook prePatch
+
+    configureImakefiles() {
+        local sedcmd=$1
+
+        sed "$sedcmd" fig2dev/Imakefile > tmpsed
+        cp tmpsed fig2dev/Imakefile
+
+        sed "$sedcmd" fig2dev/dev/Imakefile > tmpsed
+        cp tmpsed fig2dev/dev/Imakefile
+
+        sed "$sedcmd" transfig/Imakefile > tmpsed
+        cp tmpsed transfig/Imakefile
+    }
+
+    for i in $patches; do
+        header "applying patch $i" 3
+        patch -p0 < $i
+        stopNest
+    done
+
+    configureImakefiles "s:__PREFIX_PNG:${libpng}:"
+    configureImakefiles "s:__PREFIX:$out:"
+
+    runHook postPatch
+  '';
+
+  preBuild = ''
+    xmkmf
+    make Makefiles
+  '';
+
+  makeFlags = [ "CC=cc" ];
+
+  preInstall = ''
+    mkdir -p $out
+    mkdir -p $out/lib
+  '';
 
   hardeningDisable = [ "format" ];
 
-  patches = [prefixPatch1 prefixPatch2 prefixPatch3 varargsPatch gensvgPatch];
-
-  prefixPatch1 =
-    ./patch-fig2dev-dev-Imakefile;
-
-  prefixPatch2 =
-    ./patch-fig2dev-Imakefile;
-
-  prefixPatch3 =
-    ./patch-transfig-Imakefile;
-
-  varargsPatch =
-    ./patch-fig2dev-fig2dev.h;
-
-  gensvgPatch =
-    ./patch-fig2dev-dev-gensvg.c;
-
   meta = {
     platforms = stdenv.lib.platforms.unix;
   };

From be530263bc0bb2888ccec4d3194832076420392d Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Thu, 21 Sep 2017 17:16:35 -0400
Subject: [PATCH 142/533] topydo: 0.9 -> 0.13

---
 pkgs/applications/misc/topydo/default.nix | 34 +++++++++++++++++++++++
 pkgs/top-level/all-packages.nix           |  2 ++
 pkgs/top-level/python-packages.nix        | 24 +---------------
 3 files changed, 37 insertions(+), 23 deletions(-)
 create mode 100644 pkgs/applications/misc/topydo/default.nix

diff --git a/pkgs/applications/misc/topydo/default.nix b/pkgs/applications/misc/topydo/default.nix
new file mode 100644
index 000000000000..f115c7b22f01
--- /dev/null
+++ b/pkgs/applications/misc/topydo/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, arrow, icalendar, mock, freezegun
+, coverage, glibcLocales, isPy3k, green, pylint, prompt_toolkit, urwid, watchdog }:
+
+buildPythonPackage rec {
+  pname = "topydo";
+  version = "0.13";
+  name  = "${pname}-${version}";
+  disabled = (!isPy3k);
+
+  src = fetchFromGitHub {
+    owner = "bram85";
+    repo = pname;
+    rev = version;
+    sha256 = "0b3dz137lpbvpjvfy42ibqvj3yk526x4bpn819fd11lagn77w69r";
+  };
+
+  propagatedBuildInputs = [
+    arrow
+    icalendar
+    glibcLocales
+    prompt_toolkit
+    urwid
+    watchdog
+  ];
+  checkInputs = [ mock freezegun coverage green pylint ];
+
+  LC_ALL="en_US.UTF-8";
+
+  meta = with stdenv.lib; {
+    description = "A cli todo application compatible with the todo.txt format";
+    homepage = "https://github.com/bram85/topydo";
+    license = licenses.gpl3;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 068fa3230d63..2e326c8be1a1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16522,6 +16522,8 @@ with pkgs;
     quazip = quazip_qt4;
   };
 
+  topydo = (newScope python3Packages) ../applications/misc/topydo {};
+
   torchPackages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch {
     lua = luajit ;
   } );
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2584b6f2810b..13df3a6fc0ba 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -25804,29 +25804,7 @@ EOF
     };
   };
 
-  topydo = buildPythonPackage rec {
-    name = "topydo-${version}";
-    version = "0.9";
-    disabled = (!isPy3k);
-
-    src = pkgs.fetchFromGitHub {
-      owner = "bram85";
-      repo = "topydo";
-      rev = version;
-      sha256 = "0vmfr2cxn3r5zc0c4q3a94xy1r0cv177b9zrm9hkkjcmhgq42s3h";
-    };
-
-    propagatedBuildInputs = with self; [ arrow icalendar ];
-    buildInputs = with self; [ mock freezegun coverage pkgs.glibcLocales ];
-
-    LC_ALL="en_US.UTF-8";
-
-    meta = {
-      description = "A cli todo application compatible with the todo.txt format";
-      homepage = "https://github.com/bram85/topydo";
-      license = licenses.gpl3;
-    };
-  };
+  topydo = callPackage ../development/python-modules/topydo {};
 
   w3lib = buildPythonPackage rec {
     name = "w3lib-${version}";

From 9d01b511b506ad32abff812d47cf6e78d5aa9422 Mon Sep 17 00:00:00 2001
From: Neil Mayhew <neil@neil.mayhew.name>
Date: Sat, 16 Sep 2017 11:07:38 -0600
Subject: [PATCH 143/533] spideroak: 6.0.1 -> 6.1.9

---
 .../applications/networking/spideroak/default.nix | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 6c8e3466ce0d..d6fe0d9114c2 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchurl, makeWrapper, glib
-, fontconfig, patchelf, libXext, libX11
-, freetype, libXrender, zlib
+{ stdenv, fetchurl, makeWrapper, patchelf
+, fontconfig, freetype, glib, libICE, libSM
+, libX11, libXext, libXrender, zlib
 }:
 
 let
@@ -12,15 +12,16 @@ let
     else if stdenv.system == "i686-linux" then "ld-linux.so.2"
     else throw "Spideroak client for: ${stdenv.system} not supported!";
 
-  sha256 = if stdenv.system == "x86_64-linux" then "88fd785647def79ee36621fa2a8a5bea73c513de03103f068dd10bc25f3cf356"
-    else if stdenv.system == "i686-linux" then "8c23271291f40aa144bbf38ceb3cc2a05bed00759c87a65bd798cf8bb289d07a"
+  sha256 = if stdenv.system == "x86_64-linux" then "0k87rn4aj0v79rz9jvwspnwzmh031ih0y74ra88nc8kl8j6b6gjm"
+    else if stdenv.system == "i686-linux" then "1wbxfikj8f7rx26asswqrfp9vpk8w5941s21y1pnaff2gcac8m3z"
     else throw "Spideroak client for: ${stdenv.system} not supported!";
 
   ldpath = stdenv.lib.makeLibraryPath [
-    glib fontconfig libXext libX11 freetype libXrender zlib
+    fontconfig freetype glib libICE libSM
+    libX11 libXext libXrender zlib
   ];
 
-  version = "6.0.1";
+  version = "6.1.9";
 
 in stdenv.mkDerivation {
   name = "spideroak-${version}";

From 51aa419354ab297e80a105a0b85ff3f4c378f05a Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Wed, 20 Sep 2017 22:56:06 +0800
Subject: [PATCH 144/533] erlang: introduce "no X" variation

---
 pkgs/top-level/all-packages.nix  | 2 +-
 pkgs/top-level/beam-packages.nix | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3ef812b388d1..fd36557c6db5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6295,7 +6295,7 @@ with pkgs;
 
   inherit (beam.interpreters)
     erlang erlangR17 erlangR18 erlangR19 erlangR20
-    erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
+    erlang_odbc erlang_javac erlang_odbc_javac erlang_nox erlang_basho_R16B02
     elixir elixir_1_5 elixir_1_4 elixir_1_3
     lfe lfe_1_2;
 
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index fd2a55691712..bffd86da52e7 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -6,11 +6,12 @@ rec {
   # Each
   interpreters = rec {
 
-    # R18 is the default version.
+    # R19 is the default version.
     erlang = erlangR19; # The main switch to change default Erlang version.
     erlang_odbc = erlangR19_odbc;
     erlang_javac = erlangR19_javac;
     erlang_odbc_javac = erlangR19_odbc_javac;
+    erlang_nox = erlangR19_nox;
 
     # These are standard Erlang versions, using the generic builder.
     erlangR16 = lib.callErlang ../development/interpreters/erlang/R16.nix {};
@@ -21,6 +22,7 @@ rec {
     erlangR17_odbc_javac = erlangR17.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR17_nox = erlangR17.override { wxSupport = false; };
     erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
       wxGTK = wxGTK30;
     };
@@ -29,6 +31,7 @@ rec {
     erlangR18_odbc_javac = erlangR18.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR18_nox = erlangR18.override { wxSupport = false; };
     erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
       wxGTK = wxGTK30;
     };
@@ -37,6 +40,7 @@ rec {
     erlangR19_odbc_javac = erlangR19.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR19_nox = erlangR19.override { wxSupport = false; };
     erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
       wxGTK = wxGTK30;
     };
@@ -45,6 +49,7 @@ rec {
     erlangR20_odbc_javac = erlangR20.override {
       javacSupport = true; odbcSupport = true;
     };
+    erlangR20_nox = erlangR20.override { wxSupport = false; };
 
     # Bash fork, using custom builder.
     erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-8-basho.nix {

From 3b7c68615e4d537dc7fc640224ab2a7d4fc4661f Mon Sep 17 00:00:00 2001
From: Vincent Laporte <Vincent.Laporte@gmail.com>
Date: Fri, 22 Sep 2017 03:30:52 +0000
Subject: [PATCH 145/533] =?UTF-8?q?abella:=20fix=20build=20with=20OCaml=20?=
 =?UTF-8?q?=E2=89=A5=204.03?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkgs/applications/science/logic/abella/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/science/logic/abella/default.nix b/pkgs/applications/science/logic/abella/default.nix
index 1c3e8e412f80..d9afc897cff6 100644
--- a/pkgs/applications/science/logic/abella/default.nix
+++ b/pkgs/applications/science/logic/abella/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, rsync, ocaml }:
+{ stdenv, fetchurl, rsync, ocamlPackages }:
 
 stdenv.mkDerivation rec {
   name = "abella-${version}";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "b56d865ebdb198111f1dcd5b6fbcc0d7fc6dd1294f7601903ba4e3c3322c099c";
   };
 
-  buildInputs = [ rsync ocaml ];
+  buildInputs = [ rsync ] ++ (with ocamlPackages; [ ocaml ocamlbuild ]);
 
   installPhase = ''
     mkdir -p $out/bin

From 5522cd5cb10eeb04813cc00c27c96c4430cc47aa Mon Sep 17 00:00:00 2001
From: Cray Elliott <MP2E@archlinux.us>
Date: Thu, 21 Sep 2017 22:57:27 -0700
Subject: [PATCH 146/533] wineUnstable: 2.16 -> 2.17

per usual, staging has been updated as well!
---
 pkgs/misc/emulators/wine/sources.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index c3db9b06ef57..aaaec67c751e 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -32,15 +32,15 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "2.16";
+    version = "2.17";
     url = "https://dl.winehq.org/wine/source/2.x/wine-${version}.tar.xz";
-    sha256 = "089cvb7gvhcq5kx1h114fmr09fmj84cz2bjvisa48v6dpv5fsqd5";
+    sha256 = "0sgazjn30ki2y3bjrd0xbpf870ii22wkyrmgaxcwbk23j1rrbp3y";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     inherit (unstable) version;
-    sha256 = "1q9dnifz02l96s1bafb4w2z779k8ancl37zd7wxbkf0ks2vrnln0";
+    sha256 = "11jm39g1kc77fvn02j9g8syyc095b6w2jashyr28v4gi7g0fqv6h";
     owner = "wine-compholio";
     repo = "wine-staging";
     rev = "v${version}";

From c2f928d44ed400cdba351b6bd168c5d51f220597 Mon Sep 17 00:00:00 2001
From: Matthieu Coudron <mattator@gmail.com>
Date: Fri, 22 Sep 2017 11:11:42 +0900
Subject: [PATCH 147/533] universal-ctags: generate manpage

---
 pkgs/development/tools/misc/universal-ctags/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix
index b0d5bcd28f79..1aedb3538d8f 100644
--- a/pkgs/development/tools/misc/universal-ctags/default.nix
+++ b/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl }:
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, perl, pythonPackages }:
 
 stdenv.mkDerivation rec {
   name = "universal-ctags-${version}";
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0nwcf5mh3ba0g23zw7ym73pgpfdass412k2fy67ryr9vnc709jkj";
   };
 
+  nativeBuildInputs = [ pythonPackages.docutils ];
   buildInputs = [ autoreconfHook pkgconfig ];
 
   # remove when https://github.com/universal-ctags/ctags/pull/1267 is merged

From 6075d4ad07bb9a1d105db7f6e0dfda60a3099ec6 Mon Sep 17 00:00:00 2001
From: Russell O'Connor <roconnor@theorem.ca>
Date: Tue, 19 Sep 2017 16:21:26 -0400
Subject: [PATCH 148/533] bitcoin: 0.15.0 -> 0.15.0.1

---
 pkgs/applications/altcoins/bitcoin.nix | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/altcoins/bitcoin.nix b/pkgs/applications/altcoins/bitcoin.nix
index d2083f4ecfb2..23c9ffe3a09c 100644
--- a/pkgs/applications/altcoins/bitcoin.nix
+++ b/pkgs/applications/altcoins/bitcoin.nix
@@ -5,13 +5,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec{
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "0.15.0";
+  version = "0.15.0.1";
 
   src = fetchurl {
-    urls = [ "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
-             "mirror://sourceforge/bitcoin/Bitcoin/bitcoin-${version}/bitcoin-${version}.tar.gz"
-           ];
-    sha256 = "18gj5gdscarv2a1hdgjps50czwi4hrmrrmhssaag55ysh94zbdjl";
+    url = "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz";
+    sha256 = "16si3skhm6jhw1pkniv2b9y1kkdhjmhj392palphir0qc1srwzmm";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];

From 723042efa9e722e4540a535ae92fe463a1067540 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20Sch=C3=BCtz?=
 <robert.schuetz@stud.uni-heidelberg.de>
Date: Thu, 21 Sep 2017 16:02:38 +0200
Subject: [PATCH 149/533] ttwatch: init at 2017-04-20

---
 pkgs/tools/misc/ttwatch/default.nix | 28 ++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix     |  2 ++
 2 files changed, 30 insertions(+)
 create mode 100644 pkgs/tools/misc/ttwatch/default.nix

diff --git a/pkgs/tools/misc/ttwatch/default.nix b/pkgs/tools/misc/ttwatch/default.nix
new file mode 100644
index 000000000000..855baa830607
--- /dev/null
+++ b/pkgs/tools/misc/ttwatch/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, cmake, perl, openssl, curl, libusb1 }:
+
+stdenv.mkDerivation rec {
+  name = "ttwatch-${version}";
+  version = "2017-04-20";
+
+  src = fetchFromGitHub {
+    owner = "ryanbinns";
+    repo = "ttwatch";
+    rev = "f07a12712ed331f1530db3846828641eb0e2f5c5";
+    sha256 = "0y27bldmp6w02pjhr2cmy9g6n23vi0q26pil3rd7vbg4qjahxz27";
+  };
+
+  nativeBuildInputs = [ cmake perl ];
+  buildInputs = [ openssl curl libusb1 ];
+
+  preFixup = ''
+    chmod +x $out/bin/ttbin2mysports
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/ryanbinns/ttwatch;
+    description = "Linux TomTom GPS Watch Utilities";
+    maintainers = with maintainers; [ dotlambda ];
+    license = licenses.mit;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 043a27cacfbc..44fd079ac06f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4896,6 +4896,8 @@ with pkgs;
 
   ttmkfdir = callPackage ../tools/misc/ttmkfdir { };
 
+  ttwatch = callPackage ../tools/misc/ttwatch { };
+
   udunits = callPackage ../development/libraries/udunits { };
 
   uemacs = callPackage ../applications/editors/uemacs { };

From 4e12dbb09247e9e547a7a62649071bae43ad74ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Edward=20Tj=C3=B6rnhammar?= <ed@cflags.cc>
Date: Fri, 22 Sep 2017 11:13:48 +0200
Subject: [PATCH 150/533] jetbrains.clion: set CL_JDK

---
 pkgs/applications/editors/jetbrains/default.nix | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index d7f71af65293..06cc189ca406 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -53,6 +53,9 @@ let
           patchelf --set-interpreter $interp \
             --set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc.lib zlib ]}:$lldbLibPath" \
             bin/clang/clang-tidy
+
+          wrapProgram $out/bin/clion \
+            --set CL_JDK "${jdk}"
         )
       '';
     });

From fd56648a04dbd61dc7f5e20b843c8a6a3baccef4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Fri, 22 Sep 2017 11:27:59 +0200
Subject: [PATCH 151/533] knot-resolver: 1.3.3 -> 1.4.0

Also drop rarely used dependencies, by default,
and utilize root server addresses from nixpkgs.
---
 pkgs/servers/dns/knot-resolver/default.nix | 52 +++++++++++-----------
 1 file changed, 27 insertions(+), 25 deletions(-)

diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 390bf43d4d62..6130550917e6 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchurl, pkgconfig, hexdump, which
-, knot-dns, luajit, libuv, lmdb
-, cmocka, systemd, hiredis, libmemcached
-, gnutls, nettle
-, luajitPackages, makeWrapper
+, knot-dns, luajit, libuv, lmdb, gnutls, nettle
+, cmocka, systemd, dns-root-data, makeWrapper
+, extraFeatures ? false /* catch-all if defaults aren't enough */
+, hiredis, libmemcached, luajitPackages
 }:
 
 let
-  inherit (stdenv.lib) optional;
+  inherit (stdenv.lib) optional optionals optionalString;
 in
 stdenv.mkDerivation rec {
   name = "knot-resolver-${version}";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchurl {
     url = "http://secure.nic.cz/files/knot-resolver/${name}.tar.xz";
-    sha256 = "c679238bea5744de8a99f4402a61e9e58502bc42b40ecfa370e53679ed5d5b80";
+    sha256 = "ac19c121fd687c7e4f5f907b46932d26f8f9d9e01626c4dadb3847e25ea31ceb";
   };
 
   outputs = [ "out" "dev" ];
@@ -23,18 +23,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig which makeWrapper hexdump ];
 
-  buildInputs = [ knot-dns luajit libuv gnutls ]
+  # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements
+  buildInputs = [ knot-dns luajit libuv gnutls nettle ]
     ++ optional stdenv.isLinux lmdb # system lmdb causes some problems on Darwin
-    ## optional dependencies; TODO: libedit, dnstap?
     ++ optional doInstallCheck cmocka
-    ++ optional stdenv.isLinux systemd # socket activation
-    ++ [
-      nettle # DNS cookies
+    ++ optional stdenv.isLinux systemd # sd_notify
+    ++ optionals extraFeatures [
       hiredis libmemcached # additional cache backends
-      # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements
     ];
+    ## optional dependencies; TODO: libedit, dnstap, http2 module?
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  makeFlags = [ "PREFIX=$(out)" "ROOTHINTS=${dns-root-data}/root.hints" ];
   CFLAGS = [ "-O2" "-DNDEBUG" ];
 
   enableParallelBuilding = true;
@@ -45,18 +44,21 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH="$out/lib"
   '';
 
+  postInstall = ''
+    rm "$out"/etc/kresd/root.hints # using system-wide instead
+  ''
   # optional: to allow auto-bootstrapping root trust anchor via https
-  postInstall = with luajitPackages; ''
-    wrapProgram "$out/sbin/kresd" \
-      --set LUA_PATH '${
-        stdenv.lib.concatStringsSep ";"
-          (map getLuaPath [ luasec luasocket ])
-        }' \
-      --set LUA_CPATH '${
-        stdenv.lib.concatStringsSep ";"
-          (map getLuaCPath [ luasec luasocket ])
-        }'
-  '';
+  + (with luajitPackages; ''
+      wrapProgram "$out/sbin/kresd" \
+        --set LUA_PATH '${
+          stdenv.lib.concatStringsSep ";"
+            (map getLuaPath [ luasec luasocket ])
+          }' \
+        --set LUA_CPATH '${
+          stdenv.lib.concatStringsSep ";"
+            (map getLuaCPath [ luasec luasocket ])
+          }'
+    '');
 
   meta = with stdenv.lib; {
     description = "Caching validating DNS resolver, from .cz domain registry";

From 446f9c96f548cab37984aa6cd510ae7e16c3791d Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Fri, 22 Sep 2017 08:44:04 +0100
Subject: [PATCH 152/533] topydo: really move out of python-packages

---
 pkgs/applications/misc/topydo/default.nix | 9 +++++----
 pkgs/top-level/all-packages.nix           | 2 +-
 pkgs/top-level/python-packages.nix        | 2 +-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/pkgs/applications/misc/topydo/default.nix b/pkgs/applications/misc/topydo/default.nix
index f115c7b22f01..34952b9c0f4d 100644
--- a/pkgs/applications/misc/topydo/default.nix
+++ b/pkgs/applications/misc/topydo/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, arrow, icalendar, mock, freezegun
-, coverage, glibcLocales, isPy3k, green, pylint, prompt_toolkit, urwid, watchdog }:
+{ stdenv, python3Packages, fetchFromGitHub, glibcLocales }:
 
-buildPythonPackage rec {
+with python3Packages;
+
+buildPythonApplication rec {
   pname = "topydo";
   version = "0.13";
   name  = "${pname}-${version}";
-  disabled = (!isPy3k);
 
   src = fetchFromGitHub {
     owner = "bram85";
@@ -22,6 +22,7 @@ buildPythonPackage rec {
     urwid
     watchdog
   ];
+
   checkInputs = [ mock freezegun coverage green pylint ];
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2e326c8be1a1..2a4f43a4353b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16522,7 +16522,7 @@ with pkgs;
     quazip = quazip_qt4;
   };
 
-  topydo = (newScope python3Packages) ../applications/misc/topydo {};
+  topydo = callPackage ../applications/misc/topydo {};
 
   torchPackages = recurseIntoAttrs ( callPackage ../applications/science/machine-learning/torch {
     lua = luajit ;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 13df3a6fc0ba..aa432650c3d5 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -25804,7 +25804,7 @@ EOF
     };
   };
 
-  topydo = callPackage ../development/python-modules/topydo {};
+  topydo = builtins.trace "python3Packages.topydo was moved to topydo" pkgs.topydo; # 2017-09-22
 
   w3lib = buildPythonPackage rec {
     name = "w3lib-${version}";

From f2aecac5c74d82e8720b89964c8691473ca578ea Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Fri, 22 Sep 2017 10:54:01 +0100
Subject: [PATCH 153/533] topydo: use throw instead of trace to not break
 evaluation

---
 pkgs/top-level/python-packages.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index eb38aff56ba3..2cd41b23c166 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -25788,7 +25788,7 @@ EOF
     };
   };
 
-  topydo = builtins.trace "python3Packages.topydo was moved to topydo" pkgs.topydo; # 2017-09-22
+  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
 
   w3lib = buildPythonPackage rec {
     name = "w3lib-${version}";

From b2924389accc533489d74ea9d870b2ca48f74df6 Mon Sep 17 00:00:00 2001
From: "John M. Harris, Jr" <johnmh@openblox.org>
Date: Fri, 22 Sep 2017 06:20:49 -0400
Subject: [PATCH 154/533] pim-data-exporter: init at 17.08.1

* Add pim-data-exporter

* pim-data-exporter: fix indentation
---
 pkgs/applications/kde/default.nix           |  1 +
 pkgs/applications/kde/pim-data-exporter.nix | 22 +++++++++++++++++++++
 2 files changed, 23 insertions(+)
 create mode 100644 pkgs/applications/kde/pim-data-exporter.nix

diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index bbef7e9618b7..2053d183ff1d 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -145,6 +145,7 @@ let
       okteta = callPackage ./okteta.nix {};
       okular = callPackage ./okular.nix {};
       pimcommon = callPackage ./pimcommon.nix {};
+      pim-data-exporter = callPackage ./pim-data-exporter.nix {};
       pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
       print-manager = callPackage ./print-manager.nix {};
       spectacle = callPackage ./spectacle.nix {};
diff --git a/pkgs/applications/kde/pim-data-exporter.nix b/pkgs/applications/kde/pim-data-exporter.nix
new file mode 100644
index 000000000000..10123944e3a6
--- /dev/null
+++ b/pkgs/applications/kde/pim-data-exporter.nix
@@ -0,0 +1,22 @@
+{
+  mkDerivation, lib, kdepimTeam,
+  extra-cmake-modules, kdoctools,
+  akonadi, kcmutils, kcrash, kdbusaddons, kidentitymanagement, kldap,
+  kmailtransport, knewstuff, knotifications, knotifyconfig, kparts, kross, ktexteditor,
+  kwallet, libkdepim, libkleo, pimcommon, qttools,
+  karchive, mailcommon, messagelib, pim-data-exporter
+}:
+
+mkDerivation {
+  name = "pim-data-exporter";
+  meta = {
+    license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
+    maintainers = kdepimTeam;
+  };
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    akonadi kcmutils kcrash kdbusaddons kidentitymanagement kldap kmailtransport
+    knewstuff knotifications knotifyconfig kparts kross ktexteditor kwallet libkdepim
+    libkleo pimcommon qttools karchive mailcommon messagelib
+  ];
+}

From 92ec5cddbce1091d9a457b238b5fd28b56f10876 Mon Sep 17 00:00:00 2001
From: Kranium Gikos Mendoza <kranium@gikos.net>
Date: Fri, 22 Sep 2017 21:37:26 +1000
Subject: [PATCH 155/533] trackballs: 1.1.4 (broken) -> 1.2.3

---
 pkgs/games/trackballs/default.nix | 35 ++++++++++---------------------
 pkgs/top-level/all-packages.nix   |  5 +----
 2 files changed, 12 insertions(+), 28 deletions(-)

diff --git a/pkgs/games/trackballs/default.nix b/pkgs/games/trackballs/default.nix
index 5606be6a5943..93dd579b4e0c 100644
--- a/pkgs/games/trackballs/default.nix
+++ b/pkgs/games/trackballs/default.nix
@@ -1,35 +1,22 @@
-{ stdenv, fetchurl, SDL, mesa, SDL_ttf, gettext, zlib, SDL_mixer, SDL_image, guile
-, debug ? false }:
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_ttf, gettext, zlib, SDL2_mixer, SDL2_image, guile, mesa }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "trackballs-1.1.4";
-  
-  src = fetchurl {
-    url = mirror://sourceforge/trackballs/trackballs-1.1.4.tar.gz;
-    sha256 = "19ilnif59sxa8xmfisk90wngrd11pj8s86ixzypv8krm4znbm7a5";
+  name = "trackballs-${version}";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "trackballs";
+    repo = "trackballs";
+    rev = "v${version}";
+    sha256 = "13f28frni7fkalxx4wqvmkzz7ba3d8pic9f9sd2z9wa6gbjs9zrf";
   };
 
-  buildInputs = [ zlib mesa SDL SDL_ttf SDL_mixer SDL_image guile gettext ];
-
-  hardeningDisable = [ "format" ];
-
-  CFLAGS = optionalString debug "-g -O0";
-  CXXFLAGS = CFLAGS;
-  dontStrip = debug;
-  postUnpack = optionalString debug
-    "mkdir -p $out/src; cp -R * $out/src ; cd $out/src";
-
-  NIX_CFLAGS_COMPILE = "-iquote ${SDL.dev}/include/SDL";
-  configureFlags = optionalString debug "--enable-debug";
-
-  patchPhase = ''
-    sed -i -e 's/images icons music/images music/' share/Makefile.in
-  '';
+  buildInputs = [ cmake zlib SDL2 SDL2_ttf SDL2_mixer SDL2_image guile gettext mesa ];
 
   meta = {
-    homepage = http://trackballs.sourceforge.net/;
+    homepage = https://trackballs.github.io/;
     description = "3D Marble Madness clone";
     platforms = stdenv.lib.platforms.linux;
   };
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 19a4432dfb82..2a73a4dce045 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17752,10 +17752,7 @@ with pkgs;
 
   tome4 = callPackage ../games/tome4 { };
 
-  trackballs = callPackage ../games/trackballs {
-    debug = false;
-    guile = guile_1_8;
-  };
+  trackballs = callPackage ../games/trackballs { };
 
   tremulous = callPackage ../games/tremulous { };
 

From 14f2e0cd3627744c251b93e523790de35fcaa82d Mon Sep 17 00:00:00 2001
From: Brandon Barker <beb82@cornell.edu>
Date: Wed, 13 Sep 2017 13:32:51 +0000
Subject: [PATCH 156/533] jetbrains: update.pl fixes

  * indentation, retab
  * url handling for alternative version names
  * handling for alt. download url format
  * made unknown channel error non-fatal
---
 pkgs/applications/editors/jetbrains/update.pl | 63 ++++++++++++-------
 1 file changed, 39 insertions(+), 24 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/update.pl b/pkgs/applications/editors/jetbrains/update.pl
index 0c551d994a94..a0479fc91125 100755
--- a/pkgs/applications/editors/jetbrains/update.pl
+++ b/pkgs/applications/editors/jetbrains/update.pl
@@ -27,46 +27,61 @@ sub get_latest_versions {
     next unless $latest_build;
 
     # version as in download url
+    my ($version) = $latest_build =~ /^<build [^>]*version="([^"]+)"/;
+    my ($fullNumber) = $latest_build =~ /^<build [^>]*fullNumber="([^"]+)"/;
+    my $latest_version_full1 = "$version-$fullNumber";
+    $latest_version_full1 =~ s/\s*EAP//;
+
     my ($latest_version) = $latest_build =~ /^<build [^>]*version="([^"]+)"/;
     ($latest_version) = $latest_build =~ /^<build [^>]*fullNumber="([^"]+)"/ if $latest_version =~ / /;
 
     $h{$id} = $latest_version;
+    $h{"full1_" . $id} = $latest_version_full1;
   }
   return %h;
 }
 
 my %latest_versions = get_latest_versions();
-#for my $ch (sort keys %latest_versions) {
+# for my $ch (sort keys %latest_versions) {
 #  print("$ch $latest_versions{$ch}\n");
-#}
+# }
 
 sub update_nix_block {
   my ($block) = @_;
   my ($channel) = $block =~ /update-channel\s*=\s*"([^"]+)"/;
   if ($channel) {
-    die "unknown update-channel $channel" unless $latest_versions{$channel};
-    my ($version) = $block =~ /version\s*=\s*"([^"]+)"/;
-    die "no version in $block" unless $version;
-    if ($version eq $latest_versions{$channel}) {
-      print("$channel is up to date at $version\n");
+    if ($latest_versions{$channel}) {
+      my ($version) = $block =~ /version\s*=\s*"([^"]+)"/;
+      die "no version in $block" unless $version;
+      if ($version eq $latest_versions{$channel}) {
+        print("$channel is up to date at $version\n");
+      } else {
+        print("updating $channel: $version -> $latest_versions{$channel}\n");
+        my ($url) = $block =~ /url\s*=\s*"([^"]+)"/;
+        # try to interpret some nix
+        my ($name) = $block =~ /name\s*=\s*"([^"]+)"/;
+        $name =~ s/\$\{version\}/$latest_versions{$channel}/;
+        $url =~ s/\$\{name\}/$name/;
+        $url =~ s/\$\{version\}/$latest_versions{$channel}/;
+        die "$url still has some interpolation" if $url =~ /\$/;
+        my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
+        my $version_string = $latest_versions{$channel};
+        unless ( $sha256 ) {
+          my $full_version = $latest_versions{"full1_" . $channel};
+          $url =~ s/$version_string/$full_version/;
+          ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
+          $version_string = $full_version;
+        }
+        die "invalid sha256 in $url.sha256" unless $sha256;
+        my ($sha256Base32) = readpipe("nix-hash --type sha256 --to-base32 $sha256");
+        chomp $sha256Base32;
+        print "Jetbrains published SHA256: $sha256\n";
+        print "Conversion into base32 yields: $sha256Base32\n";
+        $block =~ s#version\s*=\s*"([^"]+)".+$#version = "$version_string"; /* updated by script */#m;
+        $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m;
+      }
     } else {
-      print("updating $channel: $version -> $latest_versions{$channel}\n");
-      my ($url) = $block =~ /url\s*=\s*"([^"]+)"/;
-      # try to interpret some nix
-      my ($name) = $block =~ /name\s*=\s*"([^"]+)"/;
-      $name =~ s/\$\{version\}/$latest_versions{$channel}/;
-      $url =~ s/\$\{name\}/$name/;
-      $url =~ s/\$\{version\}/$latest_versions{$channel}/;
-      die "$url still has some interpolation" if $url =~ /\$/;
-
-      my ($sha256) = get("$url.sha256") =~ /^([0-9a-f]{64})/;
-      my ($sha256Base32) = readpipe("nix-hash --type sha256 --to-base32 $sha256");
-      chomp $sha256Base32;
-      print "Jetbrains published SHA256: $sha256\n";
-      print "Conversion into base32 yeilds: $sha256Base32\n";
-
-      $block =~ s#version\s*=\s*"([^"]+)".+$#version = "$latest_versions{$channel}"; /* updated by script */#m;
-      $block =~ s#sha256\s*=\s*"([^"]+)".+$#sha256 = "$sha256Base32"; /* updated by script */#m;
+      warn "unknown update-channel $channel";
     }
   }
   return $block;

From 4c09acad5c1fbae2ebe3ccb3fbf0115d61b3806b Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Fri, 22 Sep 2017 06:50:54 -0500
Subject: [PATCH 157/533] hplip: remove 3.15.9

hplip-3.15.9 has not been buildable in some time due to changes in CUPS.
---
 pkgs/misc/drivers/hplip/3.15.9.nix | 197 -----------------------------
 pkgs/top-level/all-packages.nix    |   4 -
 2 files changed, 201 deletions(-)
 delete mode 100644 pkgs/misc/drivers/hplip/3.15.9.nix

diff --git a/pkgs/misc/drivers/hplip/3.15.9.nix b/pkgs/misc/drivers/hplip/3.15.9.nix
deleted file mode 100644
index ae96a946e79d..000000000000
--- a/pkgs/misc/drivers/hplip/3.15.9.nix
+++ /dev/null
@@ -1,197 +0,0 @@
-{ stdenv, fetchurl, substituteAll
-, pkgconfig
-, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
-, net_snmp, polkit
-, bash, coreutils, utillinux
-, qtSupport ? true, qt4
-, withPlugin ? false
-}:
-
-let
-
-  name = "hplip-${version}";
-  version = "3.15.9";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "0vcxz3gsqcamlzx61xm77h7c769ya8kdhzwafa9w2wvkf3l8zxd1";
-  };
-
-  plugin = fetchurl {
-    url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "1ahalw83xm8x0h6hljhnkknry1hny9flkrlzcymv8nmwgic0kjgs";
-  };
-
-  hplipState =
-    substituteAll
-      {
-        inherit version;
-        src = ./hplip.state;
-      };
-
-  hplipPlatforms =
-    {
-      "i686-linux"   = "x86_32";
-      "x86_64-linux" = "x86_64";
-      "armv6l-linux" = "arm32";
-      "armv7l-linux" = "arm32";
-    };
-
-  hplipArch = hplipPlatforms."${stdenv.system}"
-    or (throw "HPLIP not supported on ${stdenv.system}");
-
-  pluginArches = [ "x86_32" "x86_64" ];
-
-in
-
-assert withPlugin -> builtins.elem hplipArch pluginArches
-  || throw "HPLIP plugin not supported on ${stdenv.system}";
-
-stdenv.mkDerivation {
-  inherit name src version;
-
-  buildInputs = [
-    libjpeg
-    cups
-    libusb1
-    pythonPackages.python
-    pythonPackages.wrapPython
-    sane-backends
-    dbus
-    net_snmp
-  ] ++ stdenv.lib.optionals qtSupport [
-    qt4
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-  ];
-
-  pythonPath = with pythonPackages; [
-    dbus
-    pillow
-    pygobject2
-    recursivePthLoader
-    reportlab
-    usbutils
-  ] ++ stdenv.lib.optionals qtSupport [
-    pyqt4
-  ];
-
-  prePatch = ''
-    # HPLIP hardcodes absolute paths everywhere. Nuke from orbit.
-    find . -type f -exec sed -i \
-      -e s,/etc/hp,$out/etc/hp, \
-      -e s,/etc/sane.d,$out/etc/sane.d, \
-      -e s,/usr/include/libusb-1.0,${libusb1.dev}/include/libusb-1.0, \
-      -e s,/usr/share/hal/fdi/preprobe/10osvendor,$out/share/hal/fdi/preprobe/10osvendor, \
-      -e s,/usr/lib/systemd/system,$out/lib/systemd/system, \
-      -e s,/var/lib/hp,$out/var/lib/hp, \
-      {} +
-  '';
-
-  preConfigure = ''
-    export configureFlags="$configureFlags
-      --with-cupsfilterdir=$out/lib/cups/filter
-      --with-cupsbackenddir=$out/lib/cups/backend
-      --with-icondir=$out/share/applications
-      --with-systraydir=$out/xdg/autostart
-      --with-mimedir=$out/etc/cups
-      --enable-policykit
-    "
-
-    export makeFlags="
-      halpredir=$out/share/hal/fdi/preprobe/10osvendor
-      rulesdir=$out/etc/udev/rules.d
-      policykit_dir=$out/share/polkit-1/actions
-      policykit_dbus_etcdir=$out/etc/dbus-1/system.d
-      policykit_dbus_sharedir=$out/share/dbus-1/system-services
-      hplip_confdir=$out/etc/hp
-      hplip_statedir=$out/var/lib/hp
-    "
-  '';
-
-  enableParallelBuilding = true;
-
-  postInstall = stdenv.lib.optionalString withPlugin ''
-    sh ${plugin} --noexec --keep
-    cd plugin_tmp
-
-    cp plugin.spec $out/share/hplip/
-
-    mkdir -p $out/share/hplip/data/firmware
-    cp *.fw.gz $out/share/hplip/data/firmware
-
-    mkdir -p $out/share/hplip/data/plugins
-    cp license.txt $out/share/hplip/data/plugins
-
-    mkdir -p $out/share/hplip/prnt/plugins
-    for plugin in lj hbpl1; do
-      cp $plugin-${hplipArch}.so $out/share/hplip/prnt/plugins
-      ln -s $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so \
-        $out/share/hplip/prnt/plugins/$plugin.so
-    done
-
-    mkdir -p $out/share/hplip/scan/plugins
-    for plugin in bb_soap bb_marvell bb_soapht fax_marvell; do
-      cp $plugin-${hplipArch}.so $out/share/hplip/scan/plugins
-      ln -s $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so \
-        $out/share/hplip/scan/plugins/$plugin.so
-    done
-
-    mkdir -p $out/var/lib/hp
-    cp ${hplipState} $out/var/lib/hp/hplip.state
-
-    mkdir -p $out/etc/sane.d/dll.d
-    mv $out/etc/sane.d/dll.conf $out/etc/sane.d/dll.d/hpaio.conf
-
-    rm $out/etc/udev/rules.d/56-hpmud.rules
-  '';
-
-  fixupPhase = ''
-    # Wrap the user-facing Python scripts in $out/bin without turning the
-    # ones in $out /share into shell scripts (they need to be importable).
-    # Note that $out/bin contains only symlinks to $out/share.
-    for bin in $out/bin/*; do
-      py=`readlink -m $bin`
-      rm $bin
-      cp $py $bin
-      wrapPythonProgramsIn $bin "$out $pythonPath"
-      sed -i "s@$(dirname $bin)/[^ ]*@$py@g" $bin
-    done
-
-    # Remove originals. Knows a little too much about wrapPythonProgramsIn.
-    rm -f $out/bin/.*-wrapped
-
-    # Merely patching shebangs in $out/share does not cause trouble.
-    for i in $out/share/hplip{,/*}/*.py; do
-      substituteInPlace $i \
-        --replace /usr/bin/python \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable} \
-        --replace "/usr/bin/env python" \
-        ${pythonPackages.python}/bin/${pythonPackages.python.executable}
-    done
-
-    wrapPythonProgramsIn $out/lib "$out $pythonPath"
-
-    substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
-  '' + stdenv.lib.optionalString (!withPlugin) ''
-    # A udev rule to notify users that they need the binary plugin.
-    # Needs a lot of patching but might save someone a bit of confusion:
-    substituteInPlace $out/etc/udev/rules.d/56-hpmud.rules \
-      --replace {,${bash}}/bin/sh \
-      --replace {/usr,${coreutils}}/bin/nohup \
-      --replace {,${utillinux}/bin/}logger \
-      --replace {/usr,$out}/bin
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Print, scan and fax HP drivers for Linux";
-    homepage = http://hplipopensource.com/;
-    license = if withPlugin
-      then licenses.unfree
-      else with licenses; [ mit bsd2 gpl2Plus ];
-    platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ jgeerds nckx ];
-  };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 924a5e8d7e0d..1af674b1892a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18853,10 +18853,6 @@ with pkgs;
 
   hplipWithPlugin = hplip.override { withPlugin = true; };
 
-  hplip_3_15_9 = callPackage ../misc/drivers/hplip/3.15.9.nix { };
-
-  hplipWithPlugin_3_15_9 = hplip_3_15_9.override { withPlugin = true; };
-
   epkowa = callPackage ../misc/drivers/epkowa { };
 
   illum = callPackage ../tools/system/illum { };

From 5da75526f7f3c67ad4c78ee1cfc10b9b9e3f056a Mon Sep 17 00:00:00 2001
From: Kranium Gikos Mendoza <kranium@gikos.net>
Date: Fri, 22 Sep 2017 21:55:14 +1000
Subject: [PATCH 158/533] giv: 20150811-git (broken) -> 0.9.26

---
 pkgs/applications/graphics/giv/build.patch | 17 +++++++++++------
 pkgs/applications/graphics/giv/default.nix |  7 ++++---
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/pkgs/applications/graphics/giv/build.patch b/pkgs/applications/graphics/giv/build.patch
index ec343c902386..f57689fd3fa9 100644
--- a/pkgs/applications/graphics/giv/build.patch
+++ b/pkgs/applications/graphics/giv/build.patch
@@ -2,16 +2,21 @@ Get the environment propagated to scons forked childs, and correct the dicom plu
 a typedef of size_t that failed at least on x86_64-linux.
 
 diff --git a/SConstruct b/SConstruct
-index 16eccd9..603e931 100644
+index 9e752d6..f93f27f 100644
 --- a/SConstruct
 +++ b/SConstruct
-@@ -7,8 +7,7 @@ else:
-     cppflags = ['-O2']
-     variant = 'Release'
+@@ -9,13 +9,7 @@ else:
+ 
+ commit_id = os.popen('git rev-parse HEAD').read().replace('\n','')
  
 -env = Environment(LIBPATH=[],
--                  CPPFLAGS = cppflags)
+-                  CPPFLAGS = cppflags + ['-Wno-deprecated-declarations',
+-                                         '-Wno-reorder',
+-                                         '-Wno-unused-but-set-variable',
+-                                         '-Wno-unused-function'],
+-                  CXXFLAGS=['-std=c++1y']
+-                  )
 +env = Environment(ENV = os.environ)
  
  env['SBOX'] = False
- 
+ env['COMMITIDSHORT'] = commit_id[0:6]
diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix
index 6c892f1bfd4e..5c15c98e482b 100644
--- a/pkgs/applications/graphics/giv/default.nix
+++ b/pkgs/applications/graphics/giv/default.nix
@@ -2,13 +2,14 @@
   pcre, cfitsio, perl, gob2, vala_0_23, libtiff, json_glib }:
 
 stdenv.mkDerivation rec {
-  name = "giv-20150811-git";
+  name = "giv-${version}";
+  version = "0.9.26";
 
   src = fetchFromGitHub {
     owner = "dov";
     repo = "giv";
-    rev = "64648bfbbf10ec4a9adfbc939c96c7d1dbdce57a";
-    sha256 = "1sz2n7jbmg3g97bs613xxjpzqbsl5rvpg6v7g3x3ycyd35r8vsfp";
+    rev = "v${version}";
+    sha256 = "1sfm8j3hvqij6z3h8xz724d7hjqqbzljl2a6pp4yjpnnrxksnic2";
   };
 
   hardeningDisable = [ "format" ];

From a2444a2831a45de67df6107b62440d4bcc035135 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Fri, 22 Sep 2017 13:03:35 +0100
Subject: [PATCH 159/533] neomutt: fix missing libidn

---
 pkgs/applications/networking/mailreaders/neomutt/default.nix | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pkgs/applications/networking/mailreaders/neomutt/default.nix b/pkgs/applications/networking/mailreaders/neomutt/default.nix
index b0246b58e068..e18d95dc1220 100644
--- a/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -42,6 +42,11 @@ stdenv.mkDerivation rec {
     "ac_cv_path_SENDMAIL=sendmail"
   ];
 
+  # Fix missing libidn in mutt;
+  # this fix is ugly since it links all binaries in mutt against libidn
+  # like pgpring, pgpewrap, ...
+  NIX_LDFLAGS = "-lidn";
+
   configureScript = "./prepare";
 
   enableParallelBuilding = true;

From 99eabd6c0684eaa2761f09e9341859e5a009f05f Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Fri, 22 Sep 2017 22:26:02 +1000
Subject: [PATCH 160/533] qt-5/qtbase-setup-hook.sh: attempt to make
 directories only if needed

Resolves #29589.
---
 pkgs/development/libraries/qt-5/qtbase-setup-hook.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
index e7752af43975..e080d99a4aa6 100644
--- a/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
+++ b/pkgs/development/libraries/qt-5/qtbase-setup-hook.sh
@@ -123,7 +123,7 @@ if [ -z "$NIX_QT5_TMP" ]; then
 
     mkdir -p "$NIX_QT5_TMP/nix-support"
     for subdir in bin include lib mkspecs share; do
-        mkdir "$NIX_QT5_TMP/$subdir"
+        mkdir -p "$NIX_QT5_TMP/$subdir"
         echo "$subdir/" >> "$NIX_QT5_TMP/nix-support/qt-inputs"
     done
 

From 02fe1207ab08a7ead5ac9d53f95b69ddab2955e9 Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Fri, 22 Sep 2017 08:27:34 -0400
Subject: [PATCH 161/533] openjdk9: init at 9.0.0+180

* openjdk 8: code cleanup

as recommended by 0xABAB in #27194

* openjdk 9: init at ea build 176

this starts with copy of 8.nix and just updates hashes and replaces 8
with 9.  it also tweaks the version handling because we aren't dealing
with an update version yet.

* openjdk 9: adapt patches from openjdk 8

fix-java-home: surrounding code changed slightly

swing-use-gtk-jdk9: location of the file being patched changed due to
modularization

read-truststore-from-env: the code that handles the trustStore was
refactored out into a helper class in upstream commit
http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/904861872c0e

adlc_updater: this isn't present anymore

* openjdk 9: make two more warnings-as-errors non-fatal

this requires that we switch to configureFlagsArray to deal with
whitespace

the errors being suppressed are show below:

* For target support_native_java.desktop_libawt_xawt_awt_Robot.o:
/tmp/nix-build-openjdk-9ea-b176.drv-0/jdk9-jdk-9+176/jdk/src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c: In function 'isXCompositeDisplay':
/tmp/nix-build-openjdk-9ea-b176.drv-0/jdk9-jdk-9+176/jdk/src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c:152:50: error: embedded '\0' in format
[-Werror=format-contains-nul]
     snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0", screenNumber);
                                                  ^
/tmp/nix-build-openjdk-9ea-b176.drv-0/jdk9-jdk-9+176/jdk/src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c:152:50: error: embedded '\0' in format
[-Werror=format-contains-nul]
cc1: all warnings being treated as errors
* For target support_native_jdk.hotspot.agent_libsa_ps_core.o:
/tmp/nix-build-openjdk-9ea-b176.drv-0/jdk9-jdk-9+176/hotspot/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c: In function 'read_exec_segments':
/tmp/nix-build-openjdk-9ea-b176.drv-0/jdk9-jdk-9+176/hotspot/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c:834:7: error: ignoring return value of 'pread', declared
with attribute warn_unused_result [-Werror=unused-result]
       pread(ph->core->exec_fd, interp_name, exec_php->p_filesz, exec_php->p_offset);
       ^
cc1: all warnings being treated as errors

* openjdk 9: ea+176 -> ea+180

* openjdk 9: TODO disable infinality patches, at least to start

the code being patched here seems to have changed substantially or
perhaps even disappeared altogether.  need to investigate whether
these patches are still relevant.

* openjdk 9: update installPhase for modularization

* separate jdk and jre images are now present under build/*/images

* samples have been removed (JEP 298)
  -- TODO that JEP says demos will be gone too, but it seems some are still present?

* bina directory is no longer present

* openjdk 9: TODO handle *.pf files or purge this code completely

* openjdk 9: update minimal jre components

in particular, the name of the config option for headless has changed,
per https://bugs.openjdk.java.net/browse/JDK-8163102

* TODO about echo -n vs printWords, #27427
---
 pkgs/development/compilers/openjdk/8.nix      |  28 +-
 pkgs/development/compilers/openjdk/9.nix      | 258 ++++++++++++++++++
 .../openjdk/fix-java-home-jdk9.patch          |  14 +
 .../read-truststore-from-env-jdk9.patch       |  20 ++
 .../openjdk/swing-use-gtk-jdk9.patch          |  26 ++
 pkgs/top-level/all-packages.nix               |  19 ++
 6 files changed, 353 insertions(+), 12 deletions(-)
 create mode 100644 pkgs/development/compilers/openjdk/9.nix
 create mode 100644 pkgs/development/compilers/openjdk/fix-java-home-jdk9.patch
 create mode 100644 pkgs/development/compilers/openjdk/read-truststore-from-env-jdk9.patch
 create mode 100644 pkgs/development/compilers/openjdk/swing-use-gtk-jdk9.patch

diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix
index 45054a3577db..fef41d33d080 100644
--- a/pkgs/development/compilers/openjdk/8.nix
+++ b/pkgs/development/compilers/openjdk/8.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cpio, pkgconfig, file, which, unzip, zip, cups, freetype
+{ stdenv, lib, fetchurl, bash, cpio, pkgconfig, file, which, unzip, zip, cups, freetype
 , alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib, lndir
 , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor
 , libjpeg, giflib
@@ -75,11 +75,14 @@ let
       gtk2 gnome_vfs GConf glib
     ];
 
+    #move the seven other source dirs under the main jdk8u directory,
+    #with version suffixes removed, as the remainder of the build will expect
     prePatch = ''
-      ls | grep jdk | grep -v '^jdk8u' | awk -F- '{print $1}' | while read p; do
-        mv $p-* $(ls | grep '^jdk8u')/$p
+      mainDir=$(find . -maxdepth 1 -name jdk8u\*);
+      find . -maxdepth 1 -name \*jdk\* -not -name jdk8u\* | awk -F- '{print $1}' | while read p; do
+        mv $p-* $mainDir/$p
       done
-      cd $(ls | grep '^jdk8u')
+      cd $mainDir
     '';
 
     patches = [
@@ -95,7 +98,7 @@ let
 
     preConfigure = ''
       chmod +x configure
-      substituteInPlace configure --replace /bin/bash "$shell"
+      substituteInPlace configure --replace /bin/bash "${bash}/bin/bash"
       substituteInPlace hotspot/make/linux/adlc_updater --replace /bin/sh "$shell"
       substituteInPlace hotspot/make/linux/makefiles/dtrace.make --replace /usr/include/sys/sdt.h "/no-such-path"
     ''
@@ -188,10 +191,11 @@ let
       done
 
       # Generate certificates.
-      pushd $jre/lib/openjdk/jre/lib/security
-      rm cacerts
-      perl ${./generate-cacerts.pl} $jre/lib/openjdk/jre/bin/keytool ${cacert}/etc/ssl/certs/ca-bundle.crt
-      popd
+      (
+        cd $jre/lib/openjdk/jre/lib/security
+        rm cacerts
+        perl ${./generate-cacerts.pl} $jre/lib/openjdk/jre/bin/keytool ${cacert}/etc/ssl/certs/ca-bundle.crt
+      )
 
       ln -s $out/lib/openjdk/bin $out/bin
       ln -s $jre/lib/openjdk/jre/bin $jre/bin
@@ -221,13 +225,13 @@ let
       # Build the set of output library directories to rpath against
       LIBDIRS=""
       for output in $outputs; do
-        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \; | sort | uniq | tr '\n' ':'):$LIBDIRS"
+        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
       done
 
       # Add the local library paths to remove dependencies on the bootstrap
       for output in $outputs; do
-        OUTPUTDIR="$(eval echo \$$output)"
-        BINLIBS="$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)"
+        OUTPUTDIR=$(eval echo \$$output)
+        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
         echo "$BINLIBS" | while read i; do
           patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
           patchelf --shrink-rpath "$i" || true
diff --git a/pkgs/development/compilers/openjdk/9.nix b/pkgs/development/compilers/openjdk/9.nix
new file mode 100644
index 000000000000..65ef6ec5f2eb
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/9.nix
@@ -0,0 +1,258 @@
+{ stdenv, lib, fetchurl, bash, cpio, pkgconfig, file, which, unzip, zip, cups, freetype
+, alsaLib, bootjdk, cacert, perl, liberation_ttf, fontconfig, zlib, lndir
+, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor
+, libjpeg, giflib
+, setJavaClassPath
+, minimal ? false
+#, enableInfinality ? true # font rendering patch
+, enableGnome2 ? true, gtk2, gnome_vfs, glib, GConf
+}:
+
+let
+
+  /**
+   * The JRE libraries are in directories that depend on the CPU.
+   */
+  architecture =
+    if stdenv.system == "i686-linux" then
+      "i386"
+    else if stdenv.system == "x86_64-linux" then
+      "amd64"
+    else
+      throw "openjdk requires i686-linux or x86_64 linux";
+
+  update = "";
+  build = "180";
+  baseurl = "http://hg.openjdk.java.net/jdk9/jdk9";
+  repover = "jdk-9${update}+${build}";
+  paxflags = if stdenv.isi686 then "msp" else "m";
+  jdk9 = fetchurl {
+             url = "${baseurl}/archive/${repover}.tar.gz";
+             sha256 = "05f3i6p35nh4lwh17znkmwbb8ccw1hl1qs5hnqivpph27lpdpqnn";
+          };
+  langtools = fetchurl {
+             url = "${baseurl}/langtools/archive/${repover}.tar.gz";
+             sha256 = "0gpgg0mz29jvfck6p6kqqyi3b9lx3d4s3h0dnriswmjnw0dy3bc6";
+          };
+  hotspot = fetchurl {
+             url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
+             sha256 = "1zb0pzfgnykpllm9ibwqqrzhbsxdxq1cj5rdmd5h51qjfzd8k3js";
+          };
+  corba = fetchurl {
+             url = "${baseurl}/corba/archive/${repover}.tar.gz";
+             sha256 = "1rv4gcidr0b71d7wkchx4g3gxkirpg98y0mlicqaah1vmvx3knkp";
+          };
+  jdk = fetchurl {
+             url = "${baseurl}/jdk/archive/${repover}.tar.gz";
+             sha256 = "1g3dwszz7v8812fp53vpsbmd5ingzwym8kwz4iq45bf0d1df95x9";
+          };
+  jaxws = fetchurl {
+             url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
+             sha256 = "0f7vblr4c322rvjgaim8lp91s9gkf1sf31mgzhl433h5m5hs5z26";
+          };
+  jaxp = fetchurl {
+             url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
+             sha256 = "1c552q4360aqfr8h6720ckk8sn4fw8c5nix5gc826sj4vrk7gqz2";
+          };
+  nashorn = fetchurl {
+             url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
+             sha256 = "1hi9152w94gkwypj32nlxzp7ryzc04pp72qvr4z9m2vdc85hglhc";
+          };
+  openjdk9 = stdenv.mkDerivation {
+    # name = "openjdk-9u${update}b${build}";
+    name = "openjdk-9ea-b${build}";
+
+    srcs = [ jdk9 langtools hotspot corba jdk jaxws jaxp nashorn ];
+    sourceRoot = ".";
+
+    outputs = [ "out" "jre" ];
+
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs = [
+      cpio file which unzip zip perl bootjdk zlib cups freetype alsaLib
+      libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
+      libXi libXinerama libXcursor lndir fontconfig
+    ] ++ lib.optionals (!minimal && enableGnome2) [
+      gtk2 gnome_vfs GConf glib
+    ];
+
+    #move the seven other source dirs under the main jdk8u directory,
+    #with version suffixes removed, as the remainder of the build will expect
+    prePatch = ''
+      mainDir=$(find . -maxdepth 1 -name jdk9\*);
+      find . -maxdepth 1 -name \*jdk\* -not -name jdk9\* | awk -F- '{print $1}' | while read p; do
+        mv $p-* $mainDir/$p
+      done
+      cd $mainDir
+    '';
+
+    patches = [
+      ./fix-java-home-jdk9.patch
+      ./read-truststore-from-env-jdk9.patch
+      ./currency-date-range-jdk8.patch
+    #] ++ lib.optionals (!minimal && enableInfinality) [
+    #  ./004_add-fontconfig.patch
+    #  ./005_enable-infinality.patch
+    ] ++ lib.optionals (!minimal && enableGnome2) [
+      ./swing-use-gtk-jdk9.patch
+    ];
+
+    preConfigure = ''
+      chmod +x configure
+      substituteInPlace configure --replace /bin/bash "${bash}/bin/bash"
+
+      configureFlagsArray=(
+        "--with-boot-jdk=${bootjdk.home}"
+        "--with-update-version=${update}"
+        "--with-build-number=${build}"
+        "--with-milestone=fcs"
+        "--enable-unlimited-crypto"
+        "--disable-debug-symbols"
+        "--disable-freetype-bundling"
+        "--with-zlib=system"
+        "--with-giflib=system"
+        "--with-stdc++lib=dynamic"
+
+        # glibc 2.24 deprecated readdir_r so we need this
+        # See https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg49006.html
+        "--with-extra-cflags=-Wno-error=deprecated-declarations -Wno-error=format-contains-nul -Wno-error=unused-result"
+    ''
+    + lib.optionalString minimal "\"--enable-headless-only\""
+    + ");";
+
+    NIX_LDFLAGS= lib.optionals (!minimal) [
+      "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
+    ] ++ lib.optionals (!minimal && enableGnome2) [
+      "-lgtk-x11-2.0" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
+    ];
+
+    buildFlags = [ "all" ];
+
+    installPhase = ''
+      mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk
+
+      cp -av build/*/images/jdk/* $out/lib/openjdk
+
+      # Remove some broken manpages.
+      rm -rf $out/lib/openjdk/man/ja*
+
+      # Mirror some stuff in top-level.
+      mkdir $out/include $out/share/man
+      ln -s $out/lib/openjdk/include/* $out/include/
+      ln -s $out/lib/openjdk/man/* $out/share/man/
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/linux/*_md.h $out/include/
+
+      # Copy the JRE to a separate output and setup fallback fonts
+      cp -av build/*/images/jre $jre/lib/openjdk/
+      mkdir $out/lib/openjdk/jre
+      ${lib.optionalString (!minimal) ''
+        mkdir -p $jre/lib/openjdk/jre/lib/fonts/fallback
+        lndir ${liberation_ttf}/share/fonts/truetype $jre/lib/openjdk/jre/lib/fonts/fallback
+      ''}
+
+      # Remove crap from the installation.
+      rm -rf $out/lib/openjdk/demo
+      ${lib.optionalString minimal ''
+        for d in $out/lib/openjdk/lib $jre/lib/openjdk/jre/lib; do
+          rm ''${d}/{libjsound,libjsoundalsa,libawt*,libfontmanager}.so
+        done
+      ''}
+
+      lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
+
+      # Make sure cmm/*.pf are not symlinks:
+      # https://youtrack.jetbrains.com/issue/IDEA-147272
+      # in 9, it seems no *.pf files end up in $out ... ?
+      # rm -rf $out/lib/openjdk/jre/lib/cmm
+      # ln -s {$jre,$out}/lib/openjdk/jre/lib/cmm
+
+      # Set PaX markings
+      exes=$(file $out/lib/openjdk/bin/* $jre/lib/openjdk/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+      echo "to mark: *$exes*"
+      for file in $exes; do
+        echo "marking *$file*"
+        paxmark ${paxflags} "$file"
+      done
+
+      # Remove duplicate binaries.
+      for i in $(cd $out/lib/openjdk/bin && echo *); do
+        if [ "$i" = java ]; then continue; fi
+        if cmp -s $out/lib/openjdk/bin/$i $jre/lib/openjdk/jre/bin/$i; then
+          ln -sfn $jre/lib/openjdk/jre/bin/$i $out/lib/openjdk/bin/$i
+        fi
+      done
+
+      # Generate certificates.
+      (
+        cd $jre/lib/openjdk/jre/lib/security
+        rm cacerts
+        perl ${./generate-cacerts.pl} $jre/lib/openjdk/jre/bin/keytool ${cacert}/etc/ssl/certs/ca-bundle.crt
+      )
+
+      ln -s $out/lib/openjdk/bin $out/bin
+      ln -s $jre/lib/openjdk/jre/bin $jre/bin
+      ln -s $jre/lib/openjdk/jre $out/jre
+    '';
+
+    # FIXME: this is unnecessary once the multiple-outputs branch is merged.
+    preFixup = ''
+      prefix=$jre stripDirs "$stripDebugList" "''${stripDebugFlags:--S}"
+      patchELF $jre
+      propagatedNativeBuildInputs+=" $jre"
+
+      # Propagate the setJavaClassPath setup hook from the JRE so that
+      # any package that depends on the JRE has $CLASSPATH set up
+      # properly.
+      mkdir -p $jre/nix-support
+      #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
+      echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
+    postFixup = ''
+      # Build the set of output library directories to rpath against
+      LIBDIRS=""
+      for output in $outputs; do
+        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort | uniq | tr '\n' ':'):$LIBDIRS"
+      done
+
+      # Add the local library paths to remove dependencies on the bootstrap
+      for output in $outputs; do
+        OUTPUTDIR=$(eval echo \$$output)
+        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+        echo "$BINLIBS" | while read i; do
+          patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+          patchelf --shrink-rpath "$i" || true
+        done
+      done
+
+      # Test to make sure that we don't depend on the bootstrap
+      for output in $outputs; do
+        if grep -q -r '${bootjdk}' $(eval echo \$$output); then
+          echo "Extraneous references to ${bootjdk} detected"
+          exit 1
+        fi
+      done
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = http://openjdk.java.net/;
+      license = licenses.gpl2;
+      description = "The open-source Java Development Kit";
+      maintainers = with maintainers; [ edwtjo ];
+      platforms = platforms.linux;
+    };
+
+    passthru = {
+      inherit architecture;
+      home = "${openjdk9}/lib/openjdk";
+    };
+  };
+in openjdk9
diff --git a/pkgs/development/compilers/openjdk/fix-java-home-jdk9.patch b/pkgs/development/compilers/openjdk/fix-java-home-jdk9.patch
new file mode 100644
index 000000000000..f9755d58e48f
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/fix-java-home-jdk9.patch
@@ -0,0 +1,14 @@
+--- a/hotspot/src/os/linux/vm/os_linux.cpp	2017-07-04 23:09:02.533972226 -0400
++++ b/hotspot/src/os/linux/vm/os_linux.cpp	2017-07-04 23:07:52.118338845 -0400
+@@ -2318,10 +2318,7 @@
+   assert(ret, "cannot locate libjvm");
+   char *rp = NULL;
+   if (ret && dli_fname[0] != '\0') {
+-    rp = realpath(dli_fname, buf);
+-  }
+-  if (rp == NULL) {
+-    return;
++    snprintf(buf, buflen, "%s", dli_fname);
+   }
+ 
+   if (Arguments::sun_java_launcher_is_altjvm()) {
diff --git a/pkgs/development/compilers/openjdk/read-truststore-from-env-jdk9.patch b/pkgs/development/compilers/openjdk/read-truststore-from-env-jdk9.patch
new file mode 100644
index 000000000000..cb8d59ff8063
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/read-truststore-from-env-jdk9.patch
@@ -0,0 +1,20 @@
+--- a/jdk/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java	2017-06-26 21:48:25.000000000 -0400
++++ b/jdk/src/java.base/share/classes/sun/security/ssl/TrustStoreManager.java.new	2017-07-05 20:45:57.491295030 -0400
+@@ -71,6 +71,7 @@
+      *
+      * The preference of the default trusted KeyStore is:
+      *    javax.net.ssl.trustStore
++     *    system environment variable JAVAX_NET_SSL_TRUSTSTORE
+      *    jssecacerts
+      *    cacerts
+      */
+@@ -144,6 +145,9 @@
+                     String temporaryName = "";
+                     File temporaryFile = null;
+                     long temporaryTime = 0L;
++                    if (storePropName == null){
++                        storePropName = System.getenv("JAVAX_NET_SSL_TRUSTSTORE");
++                    }
+                     if (!"NONE".equals(storePropName)) {
+                         String[] fileNames =
+                                 new String[] {storePropName, defaultStore};
diff --git a/pkgs/development/compilers/openjdk/swing-use-gtk-jdk9.patch b/pkgs/development/compilers/openjdk/swing-use-gtk-jdk9.patch
new file mode 100644
index 000000000000..07d95ba71b8a
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/swing-use-gtk-jdk9.patch
@@ -0,0 +1,26 @@
+diff -ru3 a/jdk/src/share/classes/javax/swing/UIManager.java b/jdk/src/share/classes/javax/swing/UIManager.java
+--- a/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java	2016-07-26 00:41:37.000000000 +0300
++++ b/jdk/src/java.desktop/share/classes/javax/swing/UIManager.java	2016-10-02 22:46:01.890071761 +0300
+@@ -607,11 +607,9 @@
+         if (osType == OSInfo.OSType.WINDOWS) {
+             return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
+         } else {
+-            String desktop = AccessController.doPrivileged(new GetPropertyAction("sun.desktop"));
+             Toolkit toolkit = Toolkit.getDefaultToolkit();
+-            if ("gnome".equals(desktop) &&
+-                    toolkit instanceof SunToolkit &&
+-                    ((SunToolkit) toolkit).isNativeGTKAvailable()) {
++            if (toolkit instanceof SunToolkit &&
++                    ((SunToolkit) toolkit).isNativeGTKAvailable()) {
+                 // May be set on Linux and Solaris boxs.
+                 return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
+             }
+@@ -1341,7 +1339,7 @@
+             lafName = (String) lafData.remove("defaultlaf");
+         }
+         if (lafName == null) {
+-            lafName = getCrossPlatformLookAndFeelClassName();
++            lafName = getSystemLookAndFeelClassName();
+         }
+         lafName = swingProps.getProperty(defaultLAFKey, lafName);
+ 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 924a5e8d7e0d..6bffd358b180 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5826,6 +5826,15 @@ with pkgs;
         inherit (gnome2) GConf gnome_vfs;
       };
 
+  openjdk9 =
+    if stdenv.isDarwin then
+      callPackage ../development/compilers/openjdk-darwin/9.nix { }
+    else
+      callPackage ../development/compilers/openjdk/9.nix {
+        bootjdk = openjdk8;
+        inherit (gnome2) GConf gnome_vfs;
+      };
+
   openjdk = openjdk8;
 
   jdk7 = openjdk7 // { outputs = [ "out" ]; };
@@ -5843,6 +5852,16 @@ with pkgs;
         (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
           ((openjdk8.override { minimal = true; }).jre // { outputs = [ "jre" ]; }));
 
+  jdk9 = openjdk9 // { outputs = [ "out" ]; };
+  jre9 = lib.setName "openjre-${lib.getVersion pkgs.openjdk9.jre}"
+    (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
+      (openjdk9.jre // { outputs = [ "jre" ]; }));
+  jre9_headless =
+    if stdenv.isDarwin then jre9 else
+      lib.setName "openjre-${lib.getVersion pkgs.openjdk9.jre}-headless"
+        (lib.addMetaAttrs { outputsToInstall = [ "jre" ]; }
+          ((openjdk9.override { minimal = true; }).jre // { outputs = [ "jre" ]; }));
+
   jdk = jdk8;
   jre = jre8;
   jre_headless = jre8_headless;

From ec62d5462dce070f9a1587255e6d418e77a8612e Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Fri, 22 Sep 2017 06:57:31 -0500
Subject: [PATCH 162/533] hplip: 3.16.11 -> 3.17.9

hplip-3.16.11 is retained as `hplip_3_16_11`.
---
 pkgs/misc/drivers/hplip/3.16.11.nix | 193 ++++++++++++++++++++++++++++
 pkgs/misc/drivers/hplip/default.nix |  14 +-
 pkgs/top-level/all-packages.nix     |   4 +
 3 files changed, 204 insertions(+), 7 deletions(-)
 create mode 100644 pkgs/misc/drivers/hplip/3.16.11.nix

diff --git a/pkgs/misc/drivers/hplip/3.16.11.nix b/pkgs/misc/drivers/hplip/3.16.11.nix
new file mode 100644
index 000000000000..9342c547a17e
--- /dev/null
+++ b/pkgs/misc/drivers/hplip/3.16.11.nix
@@ -0,0 +1,193 @@
+{ stdenv, fetchurl, substituteAll
+, pkgconfig
+, makeWrapper
+, cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
+, net_snmp, openssl, polkit, nettools
+, bash, coreutils, utillinux
+, qtSupport ? true
+, withPlugin ? false
+}:
+
+let
+
+  name = "hplip-${version}";
+  version = "3.16.11";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/hplip/${name}.tar.gz";
+    sha256 = "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn";
+  };
+
+  plugin = fetchurl {
+    url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
+    sha256 = "1y3wdax2wb6kdd8bi40wl7v9s8ffyjz95bz42sjcpzzddmlhcaxg";
+  };
+
+  hplipState = substituteAll {
+    inherit version;
+    src = ./hplip.state;
+  };
+
+  hplipPlatforms = {
+    "i686-linux"   = "x86_32";
+    "x86_64-linux" = "x86_64";
+    "armv6l-linux" = "arm32";
+    "armv7l-linux" = "arm32";
+  };
+
+  hplipArch = hplipPlatforms."${stdenv.system}"
+    or (throw "HPLIP not supported on ${stdenv.system}");
+
+  pluginArches = [ "x86_32" "x86_64" "arm32" ];
+
+in
+
+assert withPlugin -> builtins.elem hplipArch pluginArches
+  || throw "HPLIP plugin not supported on ${stdenv.system}";
+
+pythonPackages.buildPythonApplication {
+  inherit name src;
+  format = "other";
+
+  buildInputs = [
+    libjpeg
+    cups
+    libusb1
+    sane-backends
+    dbus
+    net_snmp
+    openssl
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+  ];
+
+  pythonPath = with pythonPackages; [
+    dbus
+    pillow
+    pygobject2
+    reportlab
+    usbutils
+  ] ++ stdenv.lib.optionals qtSupport [
+    pyqt4
+  ];
+
+  makeWrapperArgs = [ ''--prefix PATH : "${nettools}/bin"'' ];
+
+  prePatch = ''
+    # HPLIP hardcodes absolute paths everywhere. Nuke from orbit.
+    find . -type f -exec sed -i \
+      -e s,/etc/hp,$out/etc/hp, \
+      -e s,/etc/sane.d,$out/etc/sane.d, \
+      -e s,/usr/include/libusb-1.0,${libusb1.dev}/include/libusb-1.0, \
+      -e s,/usr/share/hal/fdi/preprobe/10osvendor,$out/share/hal/fdi/preprobe/10osvendor, \
+      -e s,/usr/lib/systemd/system,$out/lib/systemd/system, \
+      -e s,/var/lib/hp,$out/var/lib/hp, \
+      {} +
+  '';
+
+  preConfigure = ''
+    export configureFlags="$configureFlags
+      --with-hpppddir=$out/share/cups/model/HP
+      --with-cupsfilterdir=$out/lib/cups/filter
+      --with-cupsbackenddir=$out/lib/cups/backend
+      --with-icondir=$out/share/applications
+      --with-systraydir=$out/xdg/autostart
+      --with-mimedir=$out/etc/cups
+      --enable-policykit
+    "
+
+    export makeFlags="
+      halpredir=$out/share/hal/fdi/preprobe/10osvendor
+      rulesdir=$out/etc/udev/rules.d
+      policykit_dir=$out/share/polkit-1/actions
+      policykit_dbus_etcdir=$out/etc/dbus-1/system.d
+      policykit_dbus_sharedir=$out/share/dbus-1/system-services
+      hplip_confdir=$out/etc/hp
+      hplip_statedir=$out/var/lib/hp
+    "
+  '';
+
+  enableParallelBuilding = true;
+
+  postInstall = stdenv.lib.optionalString withPlugin ''
+    sh ${plugin} --noexec --keep
+    cd plugin_tmp
+
+    cp plugin.spec $out/share/hplip/
+
+    mkdir -p $out/share/hplip/data/firmware
+    cp *.fw.gz $out/share/hplip/data/firmware
+
+    mkdir -p $out/share/hplip/data/plugins
+    cp license.txt $out/share/hplip/data/plugins
+
+    mkdir -p $out/share/hplip/prnt/plugins
+    for plugin in lj hbpl1; do
+      cp $plugin-${hplipArch}.so $out/share/hplip/prnt/plugins
+      ln -s $out/share/hplip/prnt/plugins/$plugin-${hplipArch}.so \
+        $out/share/hplip/prnt/plugins/$plugin.so
+    done
+
+    mkdir -p $out/share/hplip/scan/plugins
+    for plugin in bb_soap bb_marvell bb_soapht fax_marvell; do
+      cp $plugin-${hplipArch}.so $out/share/hplip/scan/plugins
+      ln -s $out/share/hplip/scan/plugins/$plugin-${hplipArch}.so \
+        $out/share/hplip/scan/plugins/$plugin.so
+    done
+
+    mkdir -p $out/var/lib/hp
+    cp ${hplipState} $out/var/lib/hp/hplip.state
+
+    mkdir -p $out/etc/sane.d/dll.d
+    mv $out/etc/sane.d/dll.conf $out/etc/sane.d/dll.d/hpaio.conf
+
+    rm $out/etc/udev/rules.d/56-hpmud.rules
+  '';
+
+  # The installed executables are just symlinks into $out/share/hplip,
+  # but wrapPythonPrograms ignores symlinks. We cannot replace the Python
+  # modules in $out/share/hplip with wrapper scripts because they import
+  # each other as libraries. Instead, we emulate wrapPythonPrograms by
+  # 1. Calling patchPythonProgram on the original script in $out/share/hplip
+  # 2. Making our own wrapper pointing directly to the original script.
+  dontWrapPythonPrograms = true;
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
+
+    for bin in $out/bin/*; do
+      py=$(readlink -m $bin)
+      rm $bin
+      echo "patching \`$py'..."
+      patchPythonScript "$py"
+      echo "wrapping \`$bin'..."
+      makeWrapper "$py" "$bin" \
+          --prefix PATH ':' "$program_PATH" \
+          --set PYTHONNOUSERSITE "true" \
+          $makeWrapperArgs
+    done
+  '';
+
+  postFixup = ''
+    substituteInPlace $out/etc/hp/hplip.conf --replace /usr $out
+  '' + stdenv.lib.optionalString (!withPlugin) ''
+    # A udev rule to notify users that they need the binary plugin.
+    # Needs a lot of patching but might save someone a bit of confusion:
+    substituteInPlace $out/etc/udev/rules.d/56-hpmud.rules \
+      --replace {,${bash}}/bin/sh \
+      --replace {/usr,${coreutils}}/bin/nohup \
+      --replace {,${utillinux}/bin/}logger \
+      --replace {/usr,$out}/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Print, scan and fax HP drivers for Linux";
+    homepage = http://hplipopensource.com/;
+    license = if withPlugin
+      then licenses.unfree
+      else with licenses; [ mit bsd2 gpl2Plus ];
+    platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
+    maintainers = with maintainers; [ jgeerds nckx ];
+  };
+}
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index 9342c547a17e..bf1078ef60ca 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -4,23 +4,23 @@
 , cups, zlib, libjpeg, libusb1, pythonPackages, sane-backends, dbus, usbutils
 , net_snmp, openssl, polkit, nettools
 , bash, coreutils, utillinux
-, qtSupport ? true
+, withQt5 ? true
 , withPlugin ? false
 }:
 
 let
 
   name = "hplip-${version}";
-  version = "3.16.11";
+  version = "3.17.9";
 
   src = fetchurl {
     url = "mirror://sourceforge/hplip/${name}.tar.gz";
-    sha256 = "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn";
+    sha256 = "0y46jjq8jdfk9m4vjq55h8yggibvqbi9rl08vni7vbhxym1diamj";
   };
 
   plugin = fetchurl {
-    url = "http://www.openprinting.org/download/printdriver/auxfiles/HP/plugins/${name}-plugin.run";
-    sha256 = "1y3wdax2wb6kdd8bi40wl7v9s8ffyjz95bz42sjcpzzddmlhcaxg";
+    url = "http://hplipopensource.com/hplip-web/plugin/${name}-plugin.run";
+    sha256 = "10z8vzwcwmwni7s4j9xp0fa7l4lwrhl4kp450dga3fj0cck1gxwq";
   };
 
   hplipState = substituteAll {
@@ -69,8 +69,8 @@ pythonPackages.buildPythonApplication {
     pygobject2
     reportlab
     usbutils
-  ] ++ stdenv.lib.optionals qtSupport [
-    pyqt4
+  ] ++ stdenv.lib.optionals withQt5 [
+    pyqt5
   ];
 
   makeWrapperArgs = [ ''--prefix PATH : "${nettools}/bin"'' ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1af674b1892a..5b49e95a416d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18853,6 +18853,10 @@ with pkgs;
 
   hplipWithPlugin = hplip.override { withPlugin = true; };
 
+  hplip_3_16_11 = callPackage ../misc/drivers/hplip/3.16.11.nix { };
+
+  hplipWithPlugin_3_16_11 = hplip.override { withPlugin = true; };
+
   epkowa = callPackage ../misc/drivers/epkowa { };
 
   illum = callPackage ../tools/system/illum { };

From a2b852caa0f1467948becc9a83db807ebfc09119 Mon Sep 17 00:00:00 2001
From: Thomas Tuegel <ttuegel@mailbox.org>
Date: Fri, 22 Sep 2017 06:58:52 -0500
Subject: [PATCH 163/533] hplip: change maintainers

Remove nckx and add ttuegel
---
 pkgs/misc/drivers/hplip/3.16.11.nix | 2 +-
 pkgs/misc/drivers/hplip/default.nix | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/misc/drivers/hplip/3.16.11.nix b/pkgs/misc/drivers/hplip/3.16.11.nix
index 9342c547a17e..f538066e75ce 100644
--- a/pkgs/misc/drivers/hplip/3.16.11.nix
+++ b/pkgs/misc/drivers/hplip/3.16.11.nix
@@ -188,6 +188,6 @@ pythonPackages.buildPythonApplication {
       then licenses.unfree
       else with licenses; [ mit bsd2 gpl2Plus ];
     platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ jgeerds nckx ];
+    maintainers = with maintainers; [ jgeerds ttuegel ];
   };
 }
diff --git a/pkgs/misc/drivers/hplip/default.nix b/pkgs/misc/drivers/hplip/default.nix
index bf1078ef60ca..a01fc74ce471 100644
--- a/pkgs/misc/drivers/hplip/default.nix
+++ b/pkgs/misc/drivers/hplip/default.nix
@@ -188,6 +188,6 @@ pythonPackages.buildPythonApplication {
       then licenses.unfree
       else with licenses; [ mit bsd2 gpl2Plus ];
     platforms = [ "i686-linux" "x86_64-linux" "armv6l-linux" "armv7l-linux" ];
-    maintainers = with maintainers; [ jgeerds nckx ];
+    maintainers = with maintainers; [ jgeerds ttuegel ];
   };
 }

From e4a859a95d0087cd6e2e9ad5939b067cda51ab18 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Fri, 22 Sep 2017 13:39:01 +0100
Subject: [PATCH 164/533] jetbrains.datagrip: 2017.1.5 -> 2017.2.2

---
 pkgs/applications/editors/jetbrains/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 06cc189ca406..65721361cd6b 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -232,15 +232,15 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2017.1.5"; /* updated by script */
+    version = "2017.2.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "8847c35761fcf6fc7a1d3f2bed0fa3971fbf28721c144f41d21feb473bb212dc"; /* updated by script */
+      sha256 = "1l8y65fw9g5ckzwpcgigm2qwy8fhpw2hil576rphsnx6qvnh4swn"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
-    update-channel = "datagrip_2017_1";
+    update-channel = "datagrip_2017_2";
   };
 
   gogland = buildGogland rec {

From 8758a4dde22e574622218a191d00608c693f5e4e Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Fri, 22 Sep 2017 14:12:37 +0200
Subject: [PATCH 165/533] pythonPackages.raven: 6.1.0 -> 6.2.0

---
 pkgs/top-level/python-packages.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 2cd41b23c166..9cf96d81f62a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7516,11 +7516,11 @@ in {
   };
 
   raven = buildPythonPackage rec {
-    name = "raven-6.1.0";
+    name = "raven-6.2.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/r/raven/${name}.tar.gz";
-      sha256 = "1158fsjjl8byzl9nw52jhhdssjl6n7l0hjaxm5hdi69v2zxvzjh2";
+      sha256 = "1jmr9kpajfh6fvxbym6fdybmlr14216y0dkbial7ris9pi1pwhf5";
     };
 
     # way too many dependencies to run tests

From 8bb57bce2a1de1f2443c70189e2ed94a00a158b3 Mon Sep 17 00:00:00 2001
From: Daniel Ehlers <sargon@toppoint.de>
Date: Fri, 22 Sep 2017 15:08:19 +0200
Subject: [PATCH 166/533] radsecproxy: init at 1.6.9

---
 pkgs/tools/networking/radsecproxy/default.nix | 30 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 32 insertions(+)
 create mode 100644 pkgs/tools/networking/radsecproxy/default.nix

diff --git a/pkgs/tools/networking/radsecproxy/default.nix b/pkgs/tools/networking/radsecproxy/default.nix
new file mode 100644
index 000000000000..9b1890110bbf
--- /dev/null
+++ b/pkgs/tools/networking/radsecproxy/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+
+  name = "radsecproxy-${version}";
+  version = "1.6.9";
+
+  src = fetchurl {
+    url = "https://software.nordu.net/radsecproxy/radsecproxy-${version}.tar.xz";
+    sha256 = "6f2c7030236c222782c9ac2c52778baa63540a1865b75a7a6d8c1280ce6ad816";
+  };
+
+  buildInputs = [ openssl ];
+
+  configureFlags = [
+     "--with-ssl=${openssl.dev}"
+     "--sysconfdir=/etc"
+     "--localstatedir=/var"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = https://software.nordu.net/radsecproxy/;
+    description = "A generic RADIUS proxy that supports both UDP and TLS (RadSec) RADIUS transports.";
+    license = licenses.bsd;
+    maintainers = with maintainers; [ sargon ];
+    platforms = with platforms; linux;
+  };
+
+}
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 924a5e8d7e0d..49e128595eed 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4058,6 +4058,8 @@ with pkgs;
 
   radeon-profile = libsForQt5.callPackage ../tools/misc/radeon-profile { };
 
+  radsecproxy = callPackage ../tools/networking/radsecproxy { };
+
   radvd = callPackage ../tools/networking/radvd { };
 
   rainbowstream = pythonPackages.rainbowstream;

From ab71280823ff3da7d936fb5e01ad30806111a12e Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Fri, 22 Sep 2017 17:24:29 +0300
Subject: [PATCH 167/533] darwin: Disable some packages that have never built
 successfully

mate.mate-desktop: https://hydra.nixos.org/build/61110037
gdmap: https://hydra.nixos.org/build/61144743
redsocks: https://hydra.nixos.org/build/61123106
resolv_wrapper: https://hydra.nixos.org/build/61121132
ogmtools: https://hydra.nixos.org/build/61108726
mp3info: https://hydra.nixos.org/build/61139015
lxappearance-gtk3: https://hydra.nixos.org/build/61126327
hdf5-fortran: https://hydra.nixos.org/build/61146631
pqiv: https://hydra.nixos.org/build/61124724
---
 pkgs/applications/audio/mp3info/default.nix           | 2 +-
 pkgs/applications/graphics/pqiv/default.nix           | 2 +-
 pkgs/applications/video/ogmtools/default.nix          | 2 +-
 pkgs/desktops/lxde/core/lxappearance/default.nix      | 2 +-
 pkgs/desktops/mate/mate-desktop/default.nix           | 2 +-
 pkgs/development/libraries/resolv_wrapper/default.nix | 2 +-
 pkgs/tools/misc/hdf5/default.nix                      | 2 +-
 pkgs/tools/networking/redsocks/default.nix            | 2 +-
 pkgs/tools/system/gdmap/default.nix                   | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/pkgs/applications/audio/mp3info/default.nix b/pkgs/applications/audio/mp3info/default.nix
index 5f1d2bfa93d5..1a1ebc56a841 100644
--- a/pkgs/applications/audio/mp3info/default.nix
+++ b/pkgs/applications/audio/mp3info/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.gpl2Plus;
 
     maintainers = [ ];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/graphics/pqiv/default.nix b/pkgs/applications/graphics/pqiv/default.nix
index 7e375367a2d2..202bbb5b13f4 100644
--- a/pkgs/applications/graphics/pqiv/default.nix
+++ b/pkgs/applications/graphics/pqiv/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation (rec {
     homepage = http://www.pberndt.com/Programme/Linux/pqiv;
     license = licenses.gpl3;
     maintainers = [ maintainers.ndowens ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 })
diff --git a/pkgs/applications/video/ogmtools/default.nix b/pkgs/applications/video/ogmtools/default.nix
index 82077e4d3ddd..83e69495b03a 100644
--- a/pkgs/applications/video/ogmtools/default.nix
+++ b/pkgs/applications/video/ogmtools/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://www.bunkus.org/videotools/ogmtools/;
     license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/desktops/lxde/core/lxappearance/default.nix b/pkgs/desktops/lxde/core/lxappearance/default.nix
index 8c6eb5965154..aece5fefaecf 100644
--- a/pkgs/desktops/lxde/core/lxappearance/default.nix
+++ b/pkgs/desktops/lxde/core/lxappearance/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     description = "A lightweight program for configuring the theme and fonts of gtk applications";
     homepage = http://lxde.org/;
     maintainers = [ stdenv.lib.maintainers.hinton ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
     license = stdenv.lib.licenses.gpl2;
   };
 }
diff --git a/pkgs/desktops/mate/mate-desktop/default.nix b/pkgs/desktops/mate/mate-desktop/default.nix
index 8fea89cdcb6b..039c3732d11d 100644
--- a/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/pkgs/desktops/mate/mate-desktop/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     description = "Library with common API for various MATE modules";
     homepage = http://mate-desktop.org;
     license = licenses.gpl2;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/development/libraries/resolv_wrapper/default.nix b/pkgs/development/libraries/resolv_wrapper/default.nix
index bc39b320c8e5..4ec06d68a329 100644
--- a/pkgs/development/libraries/resolv_wrapper/default.nix
+++ b/pkgs/development/libraries/resolv_wrapper/default.nix
@@ -15,6 +15,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.samba.org/?p=uid_wrapper.git;a=summary;";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wkennington ];
-    platforms = platforms.all;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index eb29e7d914c5..7dea58fc502f 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -57,6 +57,6 @@ stdenv.mkDerivation rec {
     '';
     license = stdenv.lib.licenses.free; # BSD-like
     homepage = https://www.hdfgroup.org/HDF5/;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/redsocks/default.nix b/pkgs/tools/networking/redsocks/default.nix
index e9aced067286..981ecdb03550 100644
--- a/pkgs/tools/networking/redsocks/default.nix
+++ b/pkgs/tools/networking/redsocks/default.nix
@@ -28,6 +28,6 @@ stdenv.mkDerivation rec {
     homepage = http://darkk.net.ru/redsocks/;
     license = stdenv.lib.licenses.asl20;
     maintainers = [ ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/gdmap/default.nix b/pkgs/tools/system/gdmap/default.nix
index 1d33e5fb09fe..b03ec34972eb 100644
--- a/pkgs/tools/system/gdmap/default.nix
+++ b/pkgs/tools/system/gdmap/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     homepage = http://gdmap.sourceforge.net;
     description = "Recursive rectangle map of disk usage";
     license = licenses.gpl2;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
   };
 }

From 6f02c3bf7766c89a4efddf84f29184a14afa726f Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Fri, 22 Sep 2017 17:10:12 +0200
Subject: [PATCH 168/533] sshfs-fuse: Fix the build on i686-linux

The last upgrade (137142a72cd6ef96b227dd0f1164504abf5546f1) broke the
build on i686. Thanks @globin for noticing this.
---
 pkgs/tools/filesystems/sshfs-fuse/default.nix | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 62505ac041e6..274be305da84 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -3,16 +3,20 @@
 stdenv.mkDerivation rec {
   version = "3.2.0";
   name = "sshfs-fuse-${version}";
-  
+
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
     sha256 = "09pqdibhcj1p7m6vxkqiprvbcxp9iq2lm1hb6w7p8iarmvp80rlv";
   };
-  
+
   buildInputs = [ pkgconfig glib fuse3 autoreconfHook ];
 
+  NIX_CFLAGS_COMPILE = stdenv.lib.optional
+    (stdenv.system == "i686-linux")
+    "-D_FILE_OFFSET_BITS=64";
+
   postInstall = ''
     mkdir -p $out/sbin
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs

From 24bed29809b2021d94a3fd928e32c95c4795f2e3 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Fri, 22 Sep 2017 11:15:57 -0400
Subject: [PATCH 169/533] openjdk: Fix build

---
 pkgs/development/compilers/openjdk/9.nix | 28 ++++++++++++++----------
 pkgs/top-level/all-packages.nix          |  6 ++---
 2 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/pkgs/development/compilers/openjdk/9.nix b/pkgs/development/compilers/openjdk/9.nix
index 65ef6ec5f2eb..ce556a32c11d 100644
--- a/pkgs/development/compilers/openjdk/9.nix
+++ b/pkgs/development/compilers/openjdk/9.nix
@@ -22,45 +22,44 @@ let
       throw "openjdk requires i686-linux or x86_64 linux";
 
   update = "";
-  build = "180";
+  build = "181";
   baseurl = "http://hg.openjdk.java.net/jdk9/jdk9";
   repover = "jdk-9${update}+${build}";
   paxflags = if stdenv.isi686 then "msp" else "m";
   jdk9 = fetchurl {
              url = "${baseurl}/archive/${repover}.tar.gz";
-             sha256 = "05f3i6p35nh4lwh17znkmwbb8ccw1hl1qs5hnqivpph27lpdpqnn";
+             sha256 = "0c7jwz4qvl93brs6c2v4dfc2v3lsv6ic0y72lkh04bnxg9343z82";
           };
   langtools = fetchurl {
              url = "${baseurl}/langtools/archive/${repover}.tar.gz";
-             sha256 = "0gpgg0mz29jvfck6p6kqqyi3b9lx3d4s3h0dnriswmjnw0dy3bc6";
+             sha256 = "1wa5rjan6lcs8nnxndbwpw6gkx3qbw013s6zisjjczkcaiq044pp";
           };
   hotspot = fetchurl {
              url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
-             sha256 = "1zb0pzfgnykpllm9ibwqqrzhbsxdxq1cj5rdmd5h51qjfzd8k3js";
+             sha256 = "00jnj19rim1gxpsxrpr8ifx1glwrbma3qjiy1ya7n5f08fb263hs";
           };
   corba = fetchurl {
              url = "${baseurl}/corba/archive/${repover}.tar.gz";
-             sha256 = "1rv4gcidr0b71d7wkchx4g3gxkirpg98y0mlicqaah1vmvx3knkp";
+             sha256 = "1gvx6dblzj7rb8648iqwdiv36x97ibykgs323dd9044n3vbqihvj";
           };
   jdk = fetchurl {
              url = "${baseurl}/jdk/archive/${repover}.tar.gz";
-             sha256 = "1g3dwszz7v8812fp53vpsbmd5ingzwym8kwz4iq45bf0d1df95x9";
+             sha256 = "15pwdw6s03rfyw2gx06xg4f70bjl8j19ycssxiigj39h524xc9aw";
           };
   jaxws = fetchurl {
              url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
-             sha256 = "0f7vblr4c322rvjgaim8lp91s9gkf1sf31mgzhl433h5m5hs5z26";
+             sha256 = "0jz32pjbgr77ybb2v1vwr1n9ljdrc3y0d5lrj072g3is1hmn2wbh";
           };
   jaxp = fetchurl {
              url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
-             sha256 = "1c552q4360aqfr8h6720ckk8sn4fw8c5nix5gc826sj4vrk7gqz2";
+             sha256 = "1jdxr9hcqx6va56ll5s2x9bx9dnlrs7zyvhjk1zgr5hxg5yfcqzr";
           };
   nashorn = fetchurl {
              url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
-             sha256 = "1hi9152w94gkwypj32nlxzp7ryzc04pp72qvr4z9m2vdc85hglhc";
+             sha256 = "12lihmw9ga6yhz0h26fvfablcjkkma0k3idjggmap97xha8zgd6n";
           };
   openjdk9 = stdenv.mkDerivation {
-    # name = "openjdk-9u${update}b${build}";
-    name = "openjdk-9ea-b${build}";
+    name = "openjdk-9${update}-b${build}";
 
     srcs = [ jdk9 langtools hotspot corba jdk jaxws jaxp nashorn ];
     sourceRoot = ".";
@@ -118,7 +117,12 @@ let
         "--with-extra-cflags=-Wno-error=deprecated-declarations -Wno-error=format-contains-nul -Wno-error=unused-result"
     ''
     + lib.optionalString minimal "\"--enable-headless-only\""
-    + ");";
+    + ");"
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1306558
+    # https://github.com/JetBrains/jdk8u/commit/eaa5e0711a43d64874111254d74893fa299d5716
+    + stdenv.lib.optionalString stdenv.cc.isGNU ''
+      NIX_CFLAGS_COMPILE+=" -fno-lifetime-dse -fno-delete-null-pointer-checks -std=gnu++98 -Wno-error"
+    '';
 
     NIX_LDFLAGS= lib.optionals (!minimal) [
       "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6bffd358b180..374dc8e81c79 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5827,9 +5827,9 @@ with pkgs;
       };
 
   openjdk9 =
-    if stdenv.isDarwin then
-      callPackage ../development/compilers/openjdk-darwin/9.nix { }
-    else
+    # if stdenv.isDarwin then
+    #   callPackage ../development/compilers/openjdk-darwin/9.nix { }
+    # else
       callPackage ../development/compilers/openjdk/9.nix {
         bootjdk = openjdk8;
         inherit (gnome2) GConf gnome_vfs;

From 34739b3cc6c7dd9dde1d75c266f2a050035abbdc Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Sat, 8 Jul 2017 09:58:40 -0400
Subject: [PATCH 170/533] gambit: 4.8.8-f3ffeb6 -> 4.8.8-300db59

---
 .../compilers/gambit/bootstrap.nix            |  2 +-
 pkgs/development/compilers/gambit/default.nix | 31 +++++++++----------
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/pkgs/development/compilers/gambit/bootstrap.nix b/pkgs/development/compilers/gambit/bootstrap.nix
index 65fb20aa2603..e645ecb41bd2 100644
--- a/pkgs/development/compilers/gambit/bootstrap.nix
+++ b/pkgs/development/compilers/gambit/bootstrap.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ autoconf ];
 
   configurePhase = ''
-    ./configure --prefix=$out --enable-single-host
+    ./configure --prefix=$out
   '';
 
   buildPhase = ''
diff --git a/pkgs/development/compilers/gambit/default.nix b/pkgs/development/compilers/gambit/default.nix
index 58b08ebd4fb7..79f57c42c50d 100644
--- a/pkgs/development/compilers/gambit/default.nix
+++ b/pkgs/development/compilers/gambit/default.nix
@@ -1,19 +1,16 @@
 { stdenv, fetchurl, fetchgit, git, openssl, autoconf, pkgs }:
 
+# TODO: distinct packages for gambit-release and gambit-devel
+
 stdenv.mkDerivation rec {
   name    = "gambit-${version}";
-  version = "4.8.8-f3ffeb6";
+  version = "4.8.8-300db59";
   bootstrap = import ./bootstrap.nix ( pkgs );
 
-#  devver  = "4_8_8";
-#  src = fetchurl {
-#    url    = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.8/source/gambit-v${version}-devel.tgz";
-#    sha256 = "0j3ka76cfb007rlcc3nv5p1s6vh31cwp87hwwabawf16vs1jb7bl";
-#  };
   src = fetchgit {
     url = "https://github.com/feeley/gambit.git";
-    rev = "f3ffeb695aeea80c18c1b9ef276b57898c780dca";
-    sha256 = "1lqixsrgk9z2gj6z1nkys0pfd3m5zjxrp3gvqn2wpr9h7hjb8x06";
+    rev = "300db59e1d3b66bcd597f617849df0274d2a4472";
+    sha256 = "1mhy49lasakgvdaswkxasdssik11lx3hfx4h1gs2b6881488ssdp";
   };
 
   buildInputs = [ openssl git autoconf bootstrap ];
@@ -28,6 +25,8 @@ stdenv.mkDerivation rec {
       --enable-absolute-shared-libs # Yes, NixOS will want an absolute path, and fix it.
       --enable-poll
       --enable-openssl
+      --enable-default-runtime-options="f8,-8,t8" # Default to UTF-8 for source and all I/O
+      #--enable-debug # Nope: enables plenty of good stuff, but also the costly console.log
 
       #--enable-multiple-versions # Nope, NixOS already does version multiplexing
       #--enable-guide
@@ -49,15 +48,15 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     # Make bootstrap compiler, from release bootstrap
-    mkdir -p boot/wip-compiler &&
-    cp -rp ${bootstrap}/. boot/wip-compiler/. &&
+    mkdir -p boot &&
+    cp -rp ${bootstrap}/. boot/. &&
     chmod -R u+w boot &&
-    cd boot/wip-compiler && \
-    cp ../../gsc/makefile.in ../../gsc/*.scm gsc && \
-    (cd gsc && make bootclean ) &&
-    make bootstrap &&
-    cd ../.. &&
-    cp boot/wip-compiler/gsc/gsc gsc-boot &&
+    cd boot &&
+    cp ../gsc/makefile.in ../gsc/*.scm gsc && # */
+    ./configure &&
+    for i in lib gsi gsc ; do (cd $i ; make ) ; done &&
+    cd .. &&
+    cp boot/gsc/gsc gsc-boot &&
 
     # Now use the bootstrap compiler to build the real thing!
     make -j2 from-scratch

From c73a3813fa0fed7620fda45f1414e56e35a3538d Mon Sep 17 00:00:00 2001
From: Pavel Goran <me@pvgoran.name>
Date: Fri, 22 Sep 2017 09:16:36 +0700
Subject: [PATCH 171/533] nixos/gitolite: customize .gitolite.rc declaratively

Add the `extraGitoliteRc` option to customize the `.gitolite.rc`
configuration file declaratively.

Resolves #29249.
---
 nixos/modules/services/misc/gitolite.nix | 126 ++++++++++++++++++++---
 1 file changed, 111 insertions(+), 15 deletions(-)

diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix
index 60fc9d58ed07..d803a4e0bf12 100644
--- a/nixos/modules/services/misc/gitolite.nix
+++ b/nixos/modules/services/misc/gitolite.nix
@@ -49,6 +49,35 @@ in
         '';
       };
 
+      extraGitoliteRc = mkOption {
+        type = types.lines;
+        default = "";
+        example = literalExample ''
+          $RC{UMASK} = 0027;
+          $RC{SITE_INFO} = 'This is our private repository host';
+          push( @{$RC{ENABLE}}, 'Kindergarten' ); # enable the command/feature
+          @{$RC{ENABLE}} = grep { $_ ne 'desc' } @{$RC{ENABLE}}; # disable the command/feature
+        '';
+        description = ''
+          Extra configuration to append to the default <literal>~/.gitolite.rc</literal>.
+
+          This should be Perl code that modifies the <literal>%RC</literal>
+          configuration variable. The default <literal>~/.gitolite.rc</literal>
+          content is generated by invoking <literal>gitolite print-default-rc</literal>,
+          and extra configuration from this option is appended to it. The result
+          is placed to Nix store, and the <literal>~/.gitolite.rc</literal> file
+          becomes a symlink to it.
+
+          If you already have a customized (or otherwise changed)
+          <literal>~/.gitolite.rc</literal> file, NixOS will refuse to replace
+          it with a symlink, and the `gitolite-init` initialization service
+          will fail. In this situation, in order to use this option, you
+          will need to take any customizations you may have in
+          <literal>~/.gitolite.rc</literal>, convert them to appropriate Perl
+          statements, add them to this option, and remove the file.
+        '';
+      };
+
       user = mkOption {
         type = types.str;
         default = "gitolite";
@@ -59,7 +88,34 @@ in
     };
   };
 
-  config = mkIf cfg.enable {
+  config = mkIf cfg.enable (
+  let
+    manageGitoliteRc = cfg.extraGitoliteRc != "";
+    rcDir = pkgs.runCommand "gitolite-rc" { } rcDirScript;
+    rcDirScript =
+      ''
+        mkdir "$out"
+        export HOME=temp-home
+        mkdir -p "$HOME/.gitolite/logs" # gitolite can't run without it
+        '${pkgs.gitolite}'/bin/gitolite print-default-rc >>"$out/gitolite.rc.default"
+        cat <<END >>"$out/gitolite.rc"
+        # This file is managed by NixOS.
+        # Use services.gitolite options to control it.
+
+        END
+        cat "$out/gitolite.rc.default" >>"$out/gitolite.rc"
+      '' +
+      optionalString (cfg.extraGitoliteRc != "") ''
+        echo -n ${escapeShellArg ''
+
+          # Added by NixOS:
+          ${removeSuffix "\n" cfg.extraGitoliteRc}
+
+          # per perl rules, this should be the last line in such a file:
+          1;
+        ''} >>"$out/gitolite.rc"
+      '';
+  in {
     users.extraUsers.${cfg.user} = {
       description     = "Gitolite user";
       home            = cfg.dataDir;
@@ -77,21 +133,61 @@ in
       serviceConfig.Type = "oneshot";
       serviceConfig.RemainAfterExit = true;
 
-      path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash config.programs.ssh.package ];
-      script = ''
-        cd ${cfg.dataDir}
-        mkdir -p .gitolite/logs
-        if [ ! -d repositories ]; then
-          gitolite setup -pk ${pubkeyFile}
-        fi
-        if [ -n "${hooks}" ]; then
-          cp ${hooks} .gitolite/hooks/common/
-          chmod +x .gitolite/hooks/common/*
-        fi
-        gitolite setup # Upgrade if needed
-      '';
+      path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ];
+      script =
+      let
+        rcSetupScriptIfCustomFile =
+          if manageGitoliteRc then ''
+            cat <<END
+            <3>ERROR: NixOS can't apply declarative configuration
+            <3>to your .gitolite.rc file, because it seems to be
+            <3>already customized manually.
+            <3>See the services.gitolite.extraGitoliteRc option
+            <3>in "man configuration.nix" for more information.
+            END
+            # Not sure if the line below addresses the issue directly or just
+            # adds a delay, but without it our error message often doesn't
+            # show up in `systemctl status gitolite-init`.
+            journalctl --flush
+            exit 1
+          '' else ''
+            :
+          '';
+        rcSetupScriptIfDefaultFileOrStoreSymlink =
+          if manageGitoliteRc then ''
+            ln -sf "${rcDir}/gitolite.rc" "$GITOLITE_RC"
+          '' else ''
+            [[ -L "$GITOLITE_RC" ]] && rm -f "$GITOLITE_RC"
+          '';
+      in
+        ''
+          cd ${cfg.dataDir}
+          mkdir -p .gitolite/logs
+
+          GITOLITE_RC=.gitolite.rc
+          GITOLITE_RC_DEFAULT=${rcDir}/gitolite.rc.default
+          if ( [[ ! -e "$GITOLITE_RC" ]] && [[ ! -L "$GITOLITE_RC" ]] ) ||
+             ( [[ -f "$GITOLITE_RC" ]] && diff -q "$GITOLITE_RC" "$GITOLITE_RC_DEFAULT" >/dev/null ) ||
+             ( [[ -L "$GITOLITE_RC" ]] && [[ "$(readlink "$GITOLITE_RC")" =~ ^/nix/store/ ]] )
+          then
+        '' + rcSetupScriptIfDefaultFileOrStoreSymlink +
+        ''
+          else
+        '' + rcSetupScriptIfCustomFile +
+        ''
+          fi
+
+          if [ ! -d repositories ]; then
+            gitolite setup -pk ${pubkeyFile}
+          fi
+          if [ -n "${hooks}" ]; then
+            cp ${hooks} .gitolite/hooks/common/
+            chmod +x .gitolite/hooks/common/*
+          fi
+          gitolite setup # Upgrade if needed
+        '';
     };
 
     environment.systemPackages = [ pkgs.gitolite pkgs.git ];
-  };
+  });
 }

From e9a56e798a79f41acf4aa97e7ec199cd710d5b71 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Fri, 22 Sep 2017 18:42:38 +0200
Subject: [PATCH 172/533] ferm: 2.3.1 -> 2.4.1

---
 pkgs/tools/networking/ferm/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/networking/ferm/default.nix b/pkgs/tools/networking/ferm/default.nix
index 454605893823..a0b298f3f4ec 100644
--- a/pkgs/tools/networking/ferm/default.nix
+++ b/pkgs/tools/networking/ferm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, perl, ebtables, ipset, iptables }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.1";
+  version = "2.4.1";
   name = "ferm-${version}";
 
   src = fetchurl {
-    url = "http://ferm.foo-projects.org/download/2.3/ferm-${version}.tar.gz";
-    sha256 = "1scdnd2jk4787jyr6fxav2598g0x7hjic5b8bj77j8s0hki48m4a";
+    url = "http://ferm.foo-projects.org/download/2.4/ferm-${version}.tar.xz";
+    sha256 = "1fv8wk513yysp4q0i65rl2m0hg2lxwwgk9ppprsca1xcxrdpsvwa";
   };
 
   buildInputs = [ perl ipset ebtables iptables makeWrapper ];

From 4b4bfbf3e51c78924dcd5c27db5207092f9534ca Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Fri, 22 Sep 2017 19:49:57 +0300
Subject: [PATCH 173/533] darwin: Disable another bunch of packages never
 having built successfully

tecoc: https://hydra.nixos.org/build/61141995
shallot: https://hydra.nixos.org/build/61145497
plink-ng: https://hydra.nixos.org/build/61130149
tshark: https://hydra.nixos.org/build/61479600
---
 pkgs/applications/editors/tecoc/default.nix                 | 2 +-
 pkgs/applications/networking/sniffers/wireshark/default.nix | 2 +-
 pkgs/applications/science/biology/plink-ng/default.nix      | 2 +-
 pkgs/tools/misc/shallot/default.nix                         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/editors/tecoc/default.nix b/pkgs/applications/editors/tecoc/default.nix
index a3f58012e534..1c5730838ff1 100644
--- a/pkgs/applications/editors/tecoc/default.nix
+++ b/pkgs/applications/editors/tecoc/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
  '';
     homepage = https://github.com/blakemcbride/TECOC;
     maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
 # TODO: test in other platforms - especially Darwin
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index a4a3741aeee2..20a0f947f105 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -66,7 +66,7 @@ in stdenv.mkDerivation {
       experts. It runs on UNIX, macOS and Windows.
     '';
 
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ bjornfor fpletz ];
   };
 }
diff --git a/pkgs/applications/science/biology/plink-ng/default.nix b/pkgs/applications/science/biology/plink-ng/default.nix
index 06fc1ef641be..2efb59f536f6 100644
--- a/pkgs/applications/science/biology/plink-ng/default.nix
+++ b/pkgs/applications/science/biology/plink-ng/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     description = "A comprehensive update to the PLINK association analysis toolset";
     homepage = https://www.cog-genomics.org/plink2;
     license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
 
diff --git a/pkgs/tools/misc/shallot/default.nix b/pkgs/tools/misc/shallot/default.nix
index 279de83e817a..6c757ca224a9 100644
--- a/pkgs/tools/misc/shallot/default.nix
+++ b/pkgs/tools/misc/shallot/default.nix
@@ -27,6 +27,6 @@ in stdenv.mkDerivation {
 
     license = stdenv.lib.licenses.mit;
     homepage = https://github.com/katmagic/Shallot;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }

From a7440aa7c6b22cad5dd30ee6cb253abf01664560 Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Fri, 22 Sep 2017 19:56:49 +0300
Subject: [PATCH 174/533] hdf5: Re-enable on darwin

Oops, ab71280823ff3da7d9 intended to only disable hdf5-fortran but also
disabled the others that are fine.
---
 pkgs/tools/misc/hdf5/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 7dea58fc502f..eb29e7d914c5 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -57,6 +57,6 @@ stdenv.mkDerivation rec {
     '';
     license = stdenv.lib.licenses.free; # BSD-like
     homepage = https://www.hdfgroup.org/HDF5/;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }

From 8a0d857aa95a07d366e59a306dbcaef900e8d84e Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Fri, 22 Sep 2017 19:44:09 +0200
Subject: [PATCH 175/533] tw-rs: fix darwin build

---
 pkgs/misc/tw-rs/default.nix | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/pkgs/misc/tw-rs/default.nix b/pkgs/misc/tw-rs/default.nix
index 6c6963303e98..2459e157a905 100644
--- a/pkgs/misc/tw-rs/default.nix
+++ b/pkgs/misc/tw-rs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform, perl, zlib, openssl }:
+{ stdenv, fetchFromGitHub, rustPlatform, perl, zlib, openssl, curl }:
 
 rustPlatform.buildRustPackage rec {
   name = "tw-rs-${version}";
@@ -10,7 +10,9 @@ rustPlatform.buildRustPackage rec {
     rev = "${version}";
     sha256 = "1s1gk2wcs3792gdzrngksczz3gma5kv02ni2jqrhib8l6z8mg9ia";
     };
-  buildInputs = [ perl zlib openssl ];
+
+  buildInputs = [ perl zlib openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin curl;
 
   depsSha256 = "1lg1jh6f9w28i94vaj62r859g6raalxmxabvw7av6sqr0hr56p05";
 

From 4acb425c39bbc685ef3b168aa3b4311c8a191b61 Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Date: Fri, 22 Sep 2017 21:03:17 +0300
Subject: [PATCH 176/533] darwin: Disable yet another bunch of packages never
 having built successfully

cjdns: https://hydra.nixos.org/build/61134279
jonprl: https://hydra.nixos.org/build/61123711
mate.libmatemixer: https://hydra.nixos.org/build/61126968
dirac: https://hydra.nixos.org/build/61132432
idnkit: https://hydra.nixos.org/build/61123544
trousers: https://hydra.nixos.org/build/61109766
packetdrill: https://hydra.nixos.org/build/61116190
osm2pgsql: https://hydra.nixos.org/build/61118017
nawk: https://hydra.nixos.org/build/61139000
---
 pkgs/applications/science/logic/jonprl/default.nix | 2 +-
 pkgs/desktops/mate/libmatemixer/default.nix        | 2 +-
 pkgs/development/libraries/dirac/default.nix       | 2 +-
 pkgs/development/libraries/idnkit/default.nix      | 2 +-
 pkgs/tools/misc/osm2pgsql/default.nix              | 2 +-
 pkgs/tools/networking/cjdns/default.nix            | 2 +-
 pkgs/tools/networking/packetdrill/default.nix      | 2 +-
 pkgs/tools/security/trousers/default.nix           | 2 +-
 pkgs/tools/text/nawk/default.nix                   | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/pkgs/applications/science/logic/jonprl/default.nix b/pkgs/applications/science/logic/jonprl/default.nix
index 12891697a702..982b5fc8b5fb 100644
--- a/pkgs/applications/science/logic/jonprl/default.nix
+++ b/pkgs/applications/science/logic/jonprl/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = http://www.jonprl.org/;
     license = stdenv.lib.licenses.mit;
     maintainers = with stdenv.lib.maintainers; [ puffnfresh ];
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/desktops/mate/libmatemixer/default.nix b/pkgs/desktops/mate/libmatemixer/default.nix
index 614124f8a0c5..20cf71c7554d 100644
--- a/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/pkgs/desktops/mate/libmatemixer/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Mixer library for MATE";
     homepage = https://github.com/mate-desktop/libmatemixer;
     license = with licenses; [ gpl2 lgpl2 ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
 }
diff --git a/pkgs/development/libraries/dirac/default.nix b/pkgs/development/libraries/dirac/default.nix
index 7b42ead14bd8..b64c6c84980a 100644
--- a/pkgs/development/libraries/dirac/default.nix
+++ b/pkgs/development/libraries/dirac/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = http://sourceforge.net/projects/dirac;
     description = "A general-purpose video codec based on wavelets";
-    platforms = platforms.all;
+    platforms = platforms.linux;
     license = with licenses; [ mpl11 gpl2 lgpl21 ];
     maintainer = maintainers.igsha;
   };
diff --git a/pkgs/development/libraries/idnkit/default.nix b/pkgs/development/libraries/idnkit/default.nix
index fe816ee5267c..4cee28630935 100644
--- a/pkgs/development/libraries/idnkit/default.nix
+++ b/pkgs/development/libraries/idnkit/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     homepage = https://www.nic.ad.jp/ja/idn/idnkit;
     description = "Provides functionalities about i18n domain name processing";
     license = "idnkit-2 license";
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ wkennington ];
   };
 }
diff --git a/pkgs/tools/misc/osm2pgsql/default.nix b/pkgs/tools/misc/osm2pgsql/default.nix
index 98489358738c..67e0c2b21d83 100644
--- a/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/pkgs/tools/misc/osm2pgsql/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     version = "0.92.1-unstable";
     homepage = https://github.com/openstreetmap/osm2pgsql;
     license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 12a8a1a184fe..11f65ea82b03 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation {
     description = "Encrypted networking for regular people";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ehmry ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/packetdrill/default.nix b/pkgs/tools/networking/packetdrill/default.nix
index 75007b5ed681..d770a51dc820 100644
--- a/pkgs/tools/networking/packetdrill/default.nix
+++ b/pkgs/tools/networking/packetdrill/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     description = "Quick, precise tests for entire TCP/UDP/IPv4/IPv6 network stacks";
     homepage = https://github.com/google/packetdrill;
     license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ dmjio cleverca22 ];
   };
 }
diff --git a/pkgs/tools/security/trousers/default.nix b/pkgs/tools/security/trousers/default.nix
index d57aa8c63a92..e49f2f8ed0fb 100644
--- a/pkgs/tools/security/trousers/default.nix
+++ b/pkgs/tools/security/trousers/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     homepage    = http://trousers.sourceforge.net/;
     license     = licenses.cpl10;
     maintainers = [ maintainers.ak ];
-    platforms   = platforms.unix;
+    platforms   = platforms.linux;
   };
 }
 
diff --git a/pkgs/tools/text/nawk/default.nix b/pkgs/tools/text/nawk/default.nix
index d3056735b8d1..a746c4544350 100644
--- a/pkgs/tools/text/nawk/default.nix
+++ b/pkgs/tools/text/nawk/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     homepage = https://www.cs.princeton.edu/~bwk/btl.mirror/;
     license = stdenv.lib.licenses.mit;
     maintainers = [ stdenv.lib.maintainers.konimex ];
-    platforms = stdenv.lib.platforms.all;
+    platforms = stdenv.lib.platforms.linux;
   };
 }

From 1acf6716aafc863ce33e3b7b431c1defbbd88275 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Fri, 22 Sep 2017 21:24:43 +0200
Subject: [PATCH 177/533] textql: fix darwin build

---
 pkgs/development/tools/textql/default.nix | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/tools/textql/default.nix b/pkgs/development/tools/textql/default.nix
index 65c0bb8e41e5..bd1dbb3f90a1 100644
--- a/pkgs/development/tools/textql/default.nix
+++ b/pkgs/development/tools/textql/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   name = "textql-${version}";
   version = "2.0.3";
   rev = "${version}";
-  
+
   goPackagePath = "github.com/dinedal/textql";
 
   src = fetchFromGitHub {
@@ -16,6 +16,10 @@ buildGoPackage rec {
 
   goDeps = ./deps.nix;
 
+  preFixup = stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -delete_rpath $out/lib $bin/bin/textql
+  '';
+
   meta = with stdenv.lib; {
     description = "Execute SQL against structured text like CSV or TSV";
     homepage = https://github.com/dinedal/textql;

From 5257232ac7a59dc3c7598042f0d21dc4ae60ea14 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Fri, 22 Sep 2017 21:18:37 +0200
Subject: [PATCH 178/533] gns3: "Improve" the packaging

This is "a bit" hacky tho...
The improvement is that it now covers the stable as well as the preview
releases and doesn't require Python 3.4 anymore.
---
 pkgs/applications/networking/gns3/default.nix | 30 +++++++++
 pkgs/applications/networking/gns3/gui.nix     | 27 ++++----
 pkgs/applications/networking/gns3/server.nix  | 62 +++++++++++++++----
 pkgs/top-level/all-packages.nix               |  5 +-
 4 files changed, 100 insertions(+), 24 deletions(-)
 create mode 100644 pkgs/applications/networking/gns3/default.nix

diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
new file mode 100644
index 000000000000..bec700367da8
--- /dev/null
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -0,0 +1,30 @@
+{ callPackage, stdenv }:
+
+let
+  stableVersion = "2.0.3";
+  previewVersion = "2.1.0rc1";
+  addVersion = args:
+    let version = if args.stable then stableVersion else previewVersion;
+        branch = if args.stable then "stable" else "preview";
+    in args // { inherit version branch; };
+  mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
+  mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
+in {
+  guiStable = mkGui {
+    stable = true;
+    sha256Hash = "10qp6430md8d0h2wamgfaq7pai59mqmcw6sw3i1gvb20m0avvsvb";
+  };
+  guiPreview = mkGui {
+    stable = false;
+    sha256Hash = "0rmvanzc0fjw9giqwnf98yc49cxaz637w8b865dv08lcf1fg9j8l";
+  };
+
+  serverStable = mkServer {
+    stable = true;
+    sha256Hash = "1c7mzj1r2zh90a7vs3s17jakfp9s43b8nnj29rpamqxvl3qhbdy7";
+  };
+  serverPreview = mkServer {
+    stable = false;
+    sha256Hash = "181689fpjxq4hy2lyxk4zciqhgnhj5srvb4xsxdlbf68n89fj2zf";
+  };
+}
diff --git a/pkgs/applications/networking/gns3/gui.nix b/pkgs/applications/networking/gns3/gui.nix
index 284c4f8cee1a..1352774953df 100644
--- a/pkgs/applications/networking/gns3/gui.nix
+++ b/pkgs/applications/networking/gns3/gui.nix
@@ -1,19 +1,22 @@
-{ stdenv, python34Packages, fetchFromGitHub }:
+{ stable, branch, version, sha256Hash }:
 
-# TODO: Python 3.6 was failing
-python34Packages.buildPythonPackage rec {
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+let
+  pythonPackages = python3Packages;
+
+in pythonPackages.buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "gns3-gui";
-  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "GNS3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10qp6430md8d0h2wamgfaq7pai59mqmcw6sw3i1gvb20m0avvsvb";
+    sha256 = sha256Hash;
   };
 
-  propagatedBuildInputs = with python34Packages; [
+  propagatedBuildInputs = with pythonPackages; [
     raven psutil jsonschema # tox for check
     # Runtime dependencies
     sip pyqt5
@@ -22,11 +25,13 @@ python34Packages.buildPythonPackage rec {
   doCheck = false; # Failing
 
   meta = with stdenv.lib; {
-    description = "Graphical Network Simulator";
-    #longDescription = ''
-    #  ...
-    #'';
-    homepage = "https://www.gns3.com/";
+    description = "Graphical Network Simulator 3 GUI (${branch} release)";
+    longDescription = ''
+      Graphical user interface for controlling the GNS3 network simulator. This
+      requires access to a local or remote GNS3 server (it's recommended to
+      download the official GNS3 VM).
+    '';
+    homepage = https://www.gns3.com/;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/applications/networking/gns3/server.nix b/pkgs/applications/networking/gns3/server.nix
index 7d5d9433bf31..9d7bf6f5a3ab 100644
--- a/pkgs/applications/networking/gns3/server.nix
+++ b/pkgs/applications/networking/gns3/server.nix
@@ -1,23 +1,63 @@
-{ stdenv, python3Packages, fetchFromGitHub }:
+{ stable, branch, version, sha256Hash }:
 
-python3Packages.buildPythonPackage rec {
+{ stdenv, python3Packages, fetchFromGitHub, fetchurl }:
+
+let
+  pythonPackages = python3Packages;
+  yarl = if (!stable) then pythonPackages.yarl
+    else (stdenv.lib.overrideDerivation pythonPackages.yarl (oldAttrs:
+      rec {
+        pname = "yarl";
+        version = "0.9.8";
+        name = "${pname}-${version}";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "1v2dsmr7bqp0yx51pwhbxyvzza8m2f88prsnbd926mi6ah38p0d7";
+        };
+      }));
+  aiohttp = if (!stable) then pythonPackages.aiohttp
+    else (stdenv.lib.overrideDerivation pythonPackages.aiohttp (oldAttrs:
+      rec {
+        pname = "aiohttp";
+        version = "1.3.5";
+        name = "${pname}-${version}";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "0hpqdiaifgyfqmxkyzwypwvrnvz5rqzgzylzhihfidc5ldfs856d";
+        };
+        propagatedBuildInputs = [ yarl ]
+          ++ (with pythonPackages; [ async-timeout chardet multidict ]);
+      }));
+  aiohttp-cors = if (!stable) then pythonPackages.aiohttp-cors
+    else (stdenv.lib.overrideDerivation pythonPackages.aiohttp-cors (oldAttrs:
+      rec {
+        pname = "aiohttp-cors";
+        version = "0.5.1";
+        name = "${pname}-${version}";
+        src = pythonPackages.fetchPypi {
+          inherit pname version;
+          sha256 = "0szma27ri25fq4nwwvs36myddggw3jz4pyzmq63yz4xpw0jjdxck";
+        };
+        propagatedBuildInputs = [ aiohttp ];
+      }));
+in pythonPackages.buildPythonPackage rec {
   name = "${pname}-${version}";
   pname = "gns3-server";
-  version = "2.1.0rc1";
 
   src = fetchFromGitHub {
     owner = "GNS3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "181689fpjxq4hy2lyxk4zciqhgnhj5srvb4xsxdlbf68n89fj2zf";
+    sha256 = sha256Hash;
   };
 
-  propagatedBuildInputs = with python3Packages; [
-    aiohttp jinja2 psutil zipstream aiohttp-cors raven jsonschema yarl typing
-    prompt_toolkit
-  ];
+  propagatedBuildInputs = [ yarl aiohttp aiohttp-cors ]
+    ++ (with pythonPackages; [
+      jinja2 psutil zipstream raven jsonschema typing
+      prompt_toolkit
+    ]);
 
-  postPatch = ''
+  postPatch = stdenv.lib.optionalString (!stable) ''
     sed -i 's/yarl>=0.11,<0.12/yarl/g' requirements.txt
   '';
 
@@ -28,13 +68,13 @@ python3Packages.buildPythonPackage rec {
     rm $out/bin/gns3loopback # For windows only
   '';
   meta = with stdenv.lib; {
-    description = "Graphical Network Simulator 3 server";
+    description = "Graphical Network Simulator 3 server (${branch} release)";
     longDescription = ''
       The GNS3 server manages emulators such as Dynamips, VirtualBox or
       Qemu/KVM. Clients like the GNS3 GUI control the server using a HTTP REST
       API.
     '';
-    homepage = "https://www.gns3.com/";
+    homepage = https://www.gns3.com/;
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 374dc8e81c79..0798cb204e0b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -8256,8 +8256,9 @@ with pkgs;
   # A GMP fork
   mpir = callPackage ../development/libraries/mpir {};
 
-  gns3-gui = callPackage ../applications/networking/gns3/gui.nix { };
-  gns3-server = callPackage ../applications/networking/gns3/server.nix { };
+  gns3Packages = callPackage ../applications/networking/gns3 { };
+  gns3-gui = gns3Packages.guiStable;
+  gns3-server = gns3Packages.serverStable;
 
   gobjectIntrospection = callPackage ../development/libraries/gobject-introspection {
     nixStoreDir = config.nix.storeDir or builtins.storeDir;

From 42dcf914d13e16df9180cf9b270211263c4de88f Mon Sep 17 00:00:00 2001
From: gnidorah <gnidorah@users.noreply.github.com>
Date: Fri, 22 Sep 2017 22:55:44 +0300
Subject: [PATCH 179/533] termite: fix fonts in wayland

---
 pkgs/applications/misc/termite/default.nix | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pkgs/applications/misc/termite/default.nix b/pkgs/applications/misc/termite/default.nix
index 837d736d10dd..9aba91ba5411 100644
--- a/pkgs/applications/misc/termite/default.nix
+++ b/pkgs/applications/misc/termite/default.nix
@@ -19,6 +19,8 @@ let
 
     buildInputs = [ pkgconfig vte gtk3 ncurses ];
 
+    nativeBuildInputs = [ makeWrapper ];
+
     outputs = [ "out" "terminfo" ];
 
     postInstall = ''
@@ -27,6 +29,9 @@ let
 
       mkdir -p $out/nix-support
       echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
+
+      wrapProgram $out/bin/termite \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
     '';
 
     meta = with stdenv.lib; {

From 2c5ab79d2d7d60eba96e927a1b9eebe409076150 Mon Sep 17 00:00:00 2001
From: Mikael Brockman <mikael@brockman.se>
Date: Fri, 22 Sep 2017 23:18:21 +0300
Subject: [PATCH 180/533] solc: v0.4.16 -> v0.4.17

---
 pkgs/development/compilers/solc/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix
index 43d10bbfb93d..078cf3e36c27 100644
--- a/pkgs/development/compilers/solc/default.nix
+++ b/pkgs/development/compilers/solc/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchzip, fetchgit, boost, cmake, z3 }:
 
 let
-  version = "0.4.16";
-  rev = "d7661dd97460250b4e1127b9e7ea91e116143780";
-  sha256 = "1fd69pdhkkkvbkrxipkck1icpqkpdskjzar48a1yzdsx3l8s4lil";
+  version = "0.4.17";
+  rev = "bdeb9e52a2211510644fb53df93fb98258b40a65";
+  sha256 = "1x6q2rlq6gxggidgsy6li7m4phwr1hcfi65pq9yimz64ddqfiira";
   jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.7.7.tar.gz;
   jsoncpp = fetchzip {
     url = jsoncppURL;
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   patchPhase = ''
     echo >commit_hash.txt '${rev}'
     echo >prerelease.txt
-    substituteInPlace deps/jsoncpp.cmake \
+    substituteInPlace cmake/jsoncpp.cmake \
       --replace '${jsoncppURL}' ${jsoncpp}
     substituteInPlace cmake/EthCompilerSettings.cmake \
       --replace 'add_compile_options(-Werror)' ""

From fd3a9e64683b99a1cb1df4315af3a513ca963483 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Fri, 22 Sep 2017 22:24:48 +0200
Subject: [PATCH 181/533] tor: enable parallel building

---
 pkgs/tools/security/tor/default.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index ad94192d14f5..3daf30d2ff0a 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "geoip" ];
 
+  enableParallelBuilding = true;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libevent openssl zlib ] ++
     stdenv.lib.optionals stdenv.isLinux [ libseccomp systemd libcap ];

From 84bd2f4ab04b8b53718db6b5ba208a62ae083941 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Fri, 22 Sep 2017 23:12:12 +0200
Subject: [PATCH 182/533] lmdb: fix library id on darwin

---
 pkgs/development/libraries/lmdb/default.nix | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 30703fc7e3ed..d96b5ed6d520 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchFromGitHub }:
 
-let optional = stdenv.lib.optional;
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "lmdb-${version}";
   version = "0.9.21";
 
@@ -16,7 +15,8 @@ in stdenv.mkDerivation rec {
 
   outputs = [ "bin" "out" "dev" ];
 
-  makeFlags = [ "prefix=$(out)" "CC=cc" ];
+  makeFlags = [ "prefix=$(out)" "CC=cc" ]
+    ++ stdenv.lib.optional stdenv.isDarwin "LDFLAGS=-Wl,-install_name,$(out)/lib/liblmdb.so";
 
   doCheck = true;
   checkPhase = "make test";
@@ -25,12 +25,6 @@ in stdenv.mkDerivation rec {
     moveToOutput bin "$bin"
     moveToOutput "lib/*.a" REMOVE # until someone needs it
   ''
-
-    # fix bogus library name
-    + stdenv.lib.optionalString stdenv.isDarwin ''
-    mv "$out"/lib/liblmdb.{so,dylib}
-    ''
-
     # add lmdb.pc (dynamic only)
     + ''
     mkdir -p "$dev/lib/pkgconfig"

From 15a4f9d8efd4418bc748b57aa7df377b1c024974 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Sun, 10 Sep 2017 01:10:29 +0200
Subject: [PATCH 183/533] nixos/hardened: simplify script

---
 nixos/modules/security/lock-kernel-modules.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/security/lock-kernel-modules.nix b/nixos/modules/security/lock-kernel-modules.nix
index 260ec3fc9464..30fdb1e2babc 100644
--- a/nixos/modules/security/lock-kernel-modules.nix
+++ b/nixos/modules/security/lock-kernel-modules.nix
@@ -21,15 +21,15 @@ with lib;
       description = "Disable kernel module loading";
 
       wantedBy = [ config.systemd.defaultUnit ];
-      after = [ "systemd-udev-settle.service" "firewall.service" "systemd-modules-load.service" ] ++ wantedBy;
 
-      script = "echo -n 1 > /proc/sys/kernel/modules_disabled";
+      after = [ "systemd-udev-settle.service" "firewall.service" "systemd-modules-load.service" ] ++ wantedBy;
 
       unitConfig.ConditionPathIsReadWrite = "/proc/sys/kernel";
 
       serviceConfig = {
         Type = "oneshot";
         RemainAfterExit = true;
+        ExecStart = "/bin/sh -c 'echo -n 1 >/proc/sys/kernel/modules_disabled'";
       };
     };
   };

From bccaf630679a5251549fd11abb08eb35e6bcec8e Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Fri, 22 Sep 2017 23:20:42 +0200
Subject: [PATCH 184/533] nixos/hardened test: add failing test-case for
 deferred mounts

---
 nixos/tests/hardened.nix | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/nixos/tests/hardened.nix b/nixos/tests/hardened.nix
index ee7ffe83ba34..cb33b69e7199 100644
--- a/nixos/tests/hardened.nix
+++ b/nixos/tests/hardened.nix
@@ -10,6 +10,17 @@ import ./make-test.nix ({ pkgs, ...} : {
     { users.users.alice = { isNormalUser = true; extraGroups = [ "proc" ]; };
       users.users.sybil = { isNormalUser = true; group = "wheel"; };
       imports = [ ../modules/profiles/hardened.nix ];
+      virtualisation.emptyDiskImages = [ 4096 ];
+      boot.initrd.postDeviceCommands = ''
+        ${pkgs.dosfstools}/bin/mkfs.vfat -n EFISYS /dev/vdb
+      '';
+      fileSystems = lib.mkVMOverride {
+        "/efi" = {
+          device = "/dev/disk/by-label/EFISYS";
+          fsType = "vfat";
+          options = [ "noauto" ];
+        };
+      };
     };
 
   testScript =
@@ -42,5 +53,13 @@ import ./make-test.nix ({ pkgs, ...} : {
       subtest "kcore", sub {
           $machine->fail("cat /proc/kcore");
       };
+
+      # Test deferred mount
+      subtest "mount", sub {
+        $machine->fail("mountpoint -q /efi"); # was deferred
+        $machine->execute("mkdir -p /efi");
+        $machine->succeed("mount /dev/disk/by-label/EFISYS /efi");
+        $machine->succeed("mountpoint -q /efi"); # now mounted
+      };
     '';
 })

From 1df6cf5d1d6d4fa092252275ab82f409dd8f79fe Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Fri, 22 Sep 2017 23:45:04 +0200
Subject: [PATCH 185/533] nixos/lock-kernel-modules: fix deferred fileSystem
 mounts

Ensure that modules required by all declared fileSystems are explicitly
loaded.  A little ugly but fixes the deferred mount test.

See also https://github.com/NixOS/nixpkgs/issues/29019
---
 nixos/modules/security/lock-kernel-modules.nix | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/nixos/modules/security/lock-kernel-modules.nix b/nixos/modules/security/lock-kernel-modules.nix
index 30fdb1e2babc..c81521ed9b08 100644
--- a/nixos/modules/security/lock-kernel-modules.nix
+++ b/nixos/modules/security/lock-kernel-modules.nix
@@ -17,6 +17,14 @@ with lib;
   };
 
   config = mkIf config.security.lockKernelModules {
+    boot.kernelModules = concatMap (x:
+      if x.device != null
+        then
+          if x.fsType == "vfat"
+            then [ "vfat" "nls-cp437" "nls-iso8859-1" ]
+            else [ x.fsType ]
+        else []) config.system.build.fileSystems;
+
     systemd.services.disable-kernel-module-loading = rec {
       description = "Disable kernel module loading";
 

From 676db57c37cae4dac8fd4073597b5ceb4772c0d9 Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:13:42 +0200
Subject: [PATCH 186/533] calc: 2.12.6.1 -> 2.12.6.3

---
 pkgs/applications/science/math/calc/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index ff8a1ff95844..5787cb3d6b8b 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -12,11 +12,11 @@ in
 stdenv.mkDerivation rec {
 
   name = "calc-${version}";
-  version = "2.12.6.1";
+  version = "2.12.6.3";
 
   src = fetchurl {
     url = "https://github.com/lcn2/calc/releases/download/${version}/${name}.tar.bz2";
-    sha256 = "1vy4jmhmpl3gzgpkpv0kqwjv8hn1cza8cn1g8c69gq3inqvr4fvd";
+    sha256 = "01m20s5zs74zyb23x6zg6i13gc30a2ay2iz1rdbkxram01cblzky";
   };
 
   buildInputs = [ makeWrapper readline ncurses utillinux ];

From 69e3817eb64c0621703be05cb1bcfcc76d97dd77 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Fri, 15 Sep 2017 11:41:49 +0200
Subject: [PATCH 187/533] tor-browser-bundle-bin: optionally disable
 multiprocess support

Multiprocess tabs always crash, as first reported by the issue mentioned
below.  It is now consistently reproducible both on NixOS and non-NixOS
for me, so I've decided to add a toggle to conveniently disable
multiprocess support as a work-around.

Closes https://github.com/NixOS/nixpkgs/issues/27759 but does
not really fix the underlying problem ...
---
 .../browsers/tor-browser-bundle-bin/default.nix           | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index b91b789a22b9..1e61cabb7a12 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -44,6 +44,10 @@
 , hicolor_icon_theme
 , shared_mime_info
 
+# Whether to disable multiprocess support to work around crashing tabs
+# TODO: fix the underlying problem instead of this terrible work-around
+, disableContentSandbox ? true
+
 # Extra preferences
 , extraPrefs ? ""
 }:
@@ -210,6 +214,10 @@ stdenv.mkDerivation rec {
     lockPref("extensions.torlauncher.control_port_use_ipc", true);
     lockPref("extensions.torlauncher.socks_port_use_ipc", true);
 
+    // Optionally disable multiprocess support.  We always set this to ensure that
+    // toggling the pref takes effect.
+    lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"});
+
     ${optionalString (extraPrefs != "") ''
       ${extraPrefs}
     ''}

From 47974b267030feb3055a245bda8dc1f10d6ac80e Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:28:02 +0200
Subject: [PATCH 188/533] entr: 3.7 -> 3.8

---
 pkgs/tools/misc/entr/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/misc/entr/default.nix b/pkgs/tools/misc/entr/default.nix
index a68e2be6aebe..582e01c6f2fe 100644
--- a/pkgs/tools/misc/entr/default.nix
+++ b/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "entr-${version}";
-  version = "3.7";
+  version = "3.8";
 
   src = fetchurl {
     url = "http://entrproject.org/code/${name}.tar.gz";
-    sha256 = "0bx2ivx9hwixjwmk7aqlx20mwmn3cvryppnmc285d7byiw6dbvwl";
+    sha256 = "1g969gw92q8pd3zfbx37w14l92xd3nzi24083x47dns8v69ygcgb";
   };
 
   postPatch = ''

From 9c46ef3d9ad02fcc88246a3e9d866bf6154b3e12 Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:32:04 +0200
Subject: [PATCH 189/533] axel: 2.13.1 -> 2.14.1

---
 pkgs/tools/networking/axel/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index 322a1a06289e..99c225ec259f 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "axel-${version}";
-  version = "2.13.1";
+  version = "2.14.1";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/a/axel/axel_${version}.orig.tar.gz";
-    sha256 = "15bi5wx6fyf9k0y03dy5mk2rv06mrfgiyrlh44add9n07wi574p1";
+    sha256 = "0fayfpyc9cs6yp474400nyjbix6aywicz6pw17rzm4m7k06q5xmc";
   };
 
   nativeBuildInputs = [ autoreconfHook ];

From 80a14bf5fb1bf37072ec77e5db4699693b845117 Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:38:03 +0200
Subject: [PATCH 190/533] gsource: 0.44 -> 0.47

---
 .../applications/version-management/gource/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/version-management/gource/default.nix b/pkgs/applications/version-management/gource/default.nix
index 2aadfd21fb5e..03997047d3a9 100644
--- a/pkgs/applications/version-management/gource/default.nix
+++ b/pkgs/applications/version-management/gource/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, SDL, ftgl, pkgconfig, libpng, libjpeg, pcre
-, SDL_image, freetype, glew, mesa, boost, glm
+{ stdenv, fetchurl, SDL2, ftgl, pkgconfig, libpng, libjpeg, pcre
+, SDL2_image, freetype, glew, mesa, boost, glm
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.44";
+  version = "0.47";
   name = "gource-${version}";
 
   src = fetchurl {
     url = "https://github.com/acaudwell/Gource/releases/download/${name}/${name}.tar.gz";
-    sha256 = "0z095zsf5pz8czh7nmlkdy29rm93w83sqyqspg2zsprh892cl116";
+    sha256 = "1llqwdnfa1pff8bxk27qsqff1fcg0a9kfdib0rn7p28vl21n1cgj";
   };
 
   buildInputs = [
-    glew SDL ftgl pkgconfig libpng libjpeg pcre SDL_image mesa
+    glew SDL2 ftgl pkgconfig libpng libjpeg pcre SDL2_image mesa
     boost glm freetype
   ];
 

From 00bdbcd99e5d38c681dc6595db92903a5a7c38b7 Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:42:29 +0200
Subject: [PATCH 191/533] libfilezilla: 0.10.0 -> 0.10.1

---
 pkgs/development/libraries/libfilezilla/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 679f6ba79026..3981f94a47d8 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "libfilezilla-${version}";
-  version = "0.10.0";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "http://download.filezilla-project.org/libfilezilla/${name}.tar.bz2";
-    sha256 = "10ik96s4r8kbgc5z4z5mqk8w1p3plakqavf6j86a48gl8in1f45x";
+    sha256 = "1yi9db0hpxh3giyjhkbz7ajmf95qw27xdvh3xvw208zri5k575x0";
   };
 
   meta = with stdenv.lib; {

From ece5c1482b5f180e1c0e1c13a569db5e9510f5a5 Mon Sep 17 00:00:00 2001
From: mimadrid <mimadrid@ucm.es>
Date: Sat, 23 Sep 2017 00:43:07 +0200
Subject: [PATCH 192/533] filezilla: 3.27.0.1 -> 3.27.1

---
 pkgs/applications/networking/ftp/filezilla/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/ftp/filezilla/default.nix b/pkgs/applications/networking/ftp/filezilla/default.nix
index 6643f385074b..a7d324949128 100644
--- a/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, dbus, gnutls, wxGTK30, libidn, tinyxml, gettext
 , pkgconfig, xdg_utils, gtk2, sqlite, pugixml, libfilezilla, nettle }:
 
-let version = "3.27.0.1"; in
+let version = "3.27.1"; in
 stdenv.mkDerivation {
   name = "filezilla-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/filezilla/FileZilla_Client/${version}/FileZilla_${version}_src.tar.bz2";
-    sha256 = "1yis3lk23ymgqzvad7rhdcgipnh1nw98pk0kd7a01rlm7b9b6q90";
+    sha256 = "14lsplbp9fy7lk6cpwi3aj6jskz4j82h67x0fik82z1bns0zm2a3";
   };
 
   configureFlags = [

From d72647bc055842e8bf65443b331f8a88808e5e15 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Fri, 22 Sep 2017 19:44:06 -0400
Subject: [PATCH 193/533] ghc-6.10.2-binary: Remove dead Darwin code

This looks like a WIP attempt from 2008
---
 .../compilers/ghc/6.10.2-binary.nix           | 22 -------------------
 1 file changed, 22 deletions(-)

diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 60749a29b58b..1b9d81d2f121 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -58,29 +58,7 @@ stdenv.mkDerivation rec {
   # calls install-strip ...
   dontBuild = true;
 
-  # The binaries for Darwin use frameworks, so fake those frameworks,
-  # and create some wrapper scripts that set DYLD_FRAMEWORK_PATH so
-  # that the executables work with no special setup.
   postInstall =
-    (if stdenv.isDarwin then
-      ''
-        mkdir -p $out/frameworks/GMP.framework/Versions/A
-        ln -s ${gmp.out}/lib/libgmp.dylib $out/frameworks/GMP.framework/GMP
-        ln -s ${gmp.out}/lib/libgmp.dylib $out/frameworks/GMP.framework/Versions/A/GMP
-        # !!! fix this
-        mkdir -p $out/frameworks/GNUeditline.framework/Versions/A
-        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/GNUeditline
-        ln -s ${libedit}/lib/libeditline.dylib $out/frameworks/GNUeditline.framework/Versions/A/GNUeditline
-
-        mv $out/bin $out/bin-orig
-        mkdir $out/bin
-        for i in $(cd $out/bin-orig && ls); do
-            echo \"#! $SHELL -e\" >> $out/bin/$i
-            echo \"DYLD_FRAMEWORK_PATH=$out/frameworks exec $out/bin-orig/$i -framework-path $out/frameworks \\\"\\$@\\\"\" >> $out/bin/$i
-            chmod +x $out/bin/$i
-        done
-      '' else "")
-    +
       ''
         # bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
         sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp.out}/lib\",\2@" $out/lib/ghc-${version}/package.conf

From 17de4355334f450194b0022b9a09f9b13cdeba20 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Fri, 22 Sep 2017 13:59:43 -0400
Subject: [PATCH 194/533] ghc prebuilt: Don't hardcode the version in a few
 more places

This removes noise in the diff, making creating new versions easier. No
hashes should be changed.
---
 pkgs/development/compilers/ghc/7.0.4-binary.nix |  6 +++---
 pkgs/development/compilers/ghc/7.4.2-binary.nix | 10 +++++-----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
index 6140cde4a9ef..a53098937ce8 100644
--- a/pkgs/development/compilers/ghc/7.0.4-binary.nix
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -74,9 +74,9 @@ stdenv.mkDerivation rec {
          install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
        }
 
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.0.4/utils/ghc-pwd/dist/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.0.4/utils/hpc/dist/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.0.4/ghc/stage2/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
 
        for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
          fix $(find . -type f -name $file)
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
index 100bb87768b5..cfbc1e8dd170 100644
--- a/pkgs/development/compilers/ghc/7.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -79,9 +79,9 @@ stdenv.mkDerivation rec {
          install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
        }
 
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.4.2/utils/ghc-pwd/dist-install/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.4.2/utils/hpc/dist-install/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-7.4.2/ghc/stage2/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist-install/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist-install/build/tmp
+       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
 
        for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
          fix $(find . -type f -name $file)
@@ -107,10 +107,10 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    mkdir -p $out/lib/ghc-7.4.2
+    mkdir -p $out/lib/ghc-${version}
     mkdir -p $out/bin
     ln -s ${libiconv}/lib/libiconv.dylib $out/bin
-    ln -s ${libiconv}/lib/libiconv.dylib $out/lib/ghc-7.4.2/libiconv.dylib
+    ln -s ${libiconv}/lib/libiconv.dylib $out/lib/ghc-${version}/libiconv.dylib
     ln -s ${libiconv}/lib/libiconv.dylib utils/ghc-cabal/dist-install/build/tmp
   '';
 

From a557d3a8483d3f3771d8cfc591cf6841e33165b3 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 22 Sep 2017 20:00:06 +0930
Subject: [PATCH 195/533] networkmanager_openvpn: 1.2.8 -> 1.8.0

---
 pkgs/tools/networking/network-manager/openvpn.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/networking/network-manager/openvpn.nix b/pkgs/tools/networking/network-manager/openvpn.nix
index 3edbe7dba6ed..47dca561d6cb 100644
--- a/pkgs/tools/networking/network-manager/openvpn.nix
+++ b/pkgs/tools/networking/network-manager/openvpn.nix
@@ -4,12 +4,12 @@
 stdenv.mkDerivation rec {
   name    = "${pname}${if withGnome then "-gnome" else ""}-${version}";
   pname   = "NetworkManager-openvpn";
-  major   = "1.2";
-  version = "${major}.8";
+  major   = "1.8";
+  version = "${major}.0";
 
   src = fetchurl {
     url    = "mirror://gnome/sources/${pname}/${major}/${pname}-${version}.tar.xz";
-    sha256 = "0m06sg2rnz764psvpsrx0pvll11nfn9hypgbp3s6vna8y83l02ry";
+    sha256 = "1973n89g66a3jfx8r45a811fga4kadh6r1w35cb25cz1mlii2vhn";
   };
 
   buildInputs = [ openvpn networkmanager libsecret ]

From 8be447b52226b87fcce54fe3d1eb0f204af23edd Mon Sep 17 00:00:00 2001
From: Patrick Callahan <patrick.callahan@sigfig.com>
Date: Fri, 22 Sep 2017 17:38:01 -0700
Subject: [PATCH 196/533] varnish: enable Darwin build

---
 pkgs/servers/varnish/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix
index 82bbe048e43b..468cc86d8893 100644
--- a/pkgs/servers/varnish/default.nix
+++ b/pkgs/servers/varnish/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     homepage = https://www.varnish-cache.org;
     license = licenses.bsd2;
     maintainers = with maintainers; [ garbas fpletz ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }

From aedfc0d8d30b4fb245f2204f63777a1a93b6691d Mon Sep 17 00:00:00 2001
From: Matt McHenry <github@matt.mchenryfamily.org>
Date: Fri, 22 Sep 2017 20:36:48 -0400
Subject: [PATCH 197/533] minecraft-server: 1.12 -> 1.12.2

---
 pkgs/games/minecraft-server/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix
index 1e8ec2b8a6a8..16e0c05e0e2c 100644
--- a/pkgs/games/minecraft-server/default.nix
+++ b/pkgs/games/minecraft-server/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name    = "minecraft-server-${version}";
-  version = "1.12";
+  version = "1.12.2";
 
   src  = fetchurl {
     url    = "http://s3.amazonaws.com/Minecraft.Download/versions/${version}/minecraft_server.${version}.jar";
-    sha256 = "02fwlg4c9kqckmdi9wxi64jdqynj5myp0995aabc07746hwgzszy";
+    sha256 = "0zhnac6yvkdgdaag0gb0fgrkgizbwrpf7s76yqdiknfswrs947zy";
   };
 
   preferLocalBuild = true;

From f4f90a735470d7b52cb9301433d060dba8c5423a Mon Sep 17 00:00:00 2001
From: Patrick Callahan <patrick.callahan@sigfig.com>
Date: Fri, 22 Sep 2017 19:10:08 -0700
Subject: [PATCH 198/533] nodePackages.typings: init at 2.1.1

---
 .../node-packages/node-packages-v4.nix        |  803 ++-----
 .../node-packages/node-packages-v6.json       |    1 +
 .../node-packages/node-packages-v6.nix        | 1943 ++++++++++-------
 3 files changed, 1353 insertions(+), 1394 deletions(-)

diff --git a/pkgs/development/node-packages/node-packages-v4.nix b/pkgs/development/node-packages/node-packages-v4.nix
index a015c3b45532..88a3d669b37c 100644
--- a/pkgs/development/node-packages/node-packages-v4.nix
+++ b/pkgs/development/node-packages/node-packages-v4.nix
@@ -2074,13 +2074,13 @@ let
         sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
       };
     };
-    "tough-cookie-2.3.2" = {
+    "tough-cookie-2.3.3" = {
       name = "tough-cookie";
       packageName = "tough-cookie";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz";
-        sha1 = "f081f76e4c85720e6c37a5faced737150d84072a";
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz";
+        sha1 = "0b618a5565b6dea90bf3425d04d55edc475a7561";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -2389,13 +2389,13 @@ let
         sha1 = "159a49b9a9714c1fb102f2e0ed1906fab6a450f4";
       };
     };
-    "debug-2.6.8" = {
+    "debug-2.6.9" = {
       name = "debug";
       packageName = "debug";
-      version = "2.6.8";
+      version = "2.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
-        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
       };
     };
     "express-4.15.4" = {
@@ -3019,6 +3019,15 @@ let
         sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
       };
     };
+    "debug-2.6.8" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
+        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
+      };
+    };
     "depd-1.1.1" = {
       name = "depd";
       packageName = "depd";
@@ -3055,13 +3064,13 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "finalhandler-1.0.5" = {
+    "finalhandler-1.0.6" = {
       name = "finalhandler";
       packageName = "finalhandler";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.5.tgz";
-        sha1 = "a701303d257a1bc82fea547a33e5ae89531723df";
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz";
+        sha1 = "007aea33d1a4d3e42017f624848ad58d212f814f";
       };
     };
     "fresh-0.5.0" = {
@@ -3334,13 +3343,13 @@ let
         sha1 = "d95bf721ec877e08db276ed3fc6eb78f9083ad46";
       };
     };
-    "node-pre-gyp-0.6.37" = {
+    "node-pre-gyp-0.6.38" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
-      version = "0.6.37";
+      version = "0.6.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
-        sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz";
+        sha1 = "e92a20f83416415bb4086f6d1fb78b3da73d113d";
       };
     };
     "nopt-4.0.1" = {
@@ -3352,6 +3361,24 @@ let
         sha1 = "d0d4685afd5415193c8c7505602d0d17cd64474d";
       };
     };
+    "request-2.81.0" = {
+      name = "request";
+      packageName = "request";
+      version = "2.81.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
+        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
+      };
+    };
+    "hawk-3.1.3" = {
+      name = "hawk";
+      packageName = "hawk";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
+        sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
+      };
+    };
     "semver-5.4.1" = {
       name = "semver";
       packageName = "semver";
@@ -3361,15 +3388,6 @@ let
         sha512 = "2r13vwvb5ick34k6flr7vgbjfsdka8zbj5a74rd0ba4bp0nqmhppbaw3qlwn7f4smpifpa4iy4hxj137y598rbvsmy3h0d8vxgvzwar";
       };
     };
-    "tape-4.8.0" = {
-      name = "tape";
-      packageName = "tape";
-      version = "4.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz";
-        sha512 = "026x60jpvkdwfvbd6gls76zjj3yiqfz4cg9imi80r25zdziaiy87jkpw9mwbrbg9k2xc4nsn9yzk90pgkgybdspk0yb4fzg95y0nqjd";
-      };
-    };
     "tar-pack-3.4.0" = {
       name = "tar-pack";
       packageName = "tar-pack";
@@ -3379,175 +3397,121 @@ let
         sha1 = "23be2d7f671a8339376cbdb0b8fe3fdebf317984";
       };
     };
-    "deep-equal-1.0.1" = {
-      name = "deep-equal";
-      packageName = "deep-equal";
-      version = "1.0.1";
+    "aws-sign2-0.6.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz";
-        sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
+        sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
       };
     };
-    "defined-1.0.0" = {
-      name = "defined";
-      packageName = "defined";
-      version = "1.0.0";
+    "form-data-2.1.4" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz";
-        sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz";
+        sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1";
       };
     };
-    "for-each-0.3.2" = {
-      name = "for-each";
-      packageName = "for-each";
-      version = "0.3.2";
+    "har-validator-4.2.1" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz";
-        sha1 = "2c40450b9348e97f281322593ba96704b9abd4d4";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
+        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
       };
     };
-    "function-bind-1.1.1" = {
-      name = "function-bind";
-      packageName = "function-bind";
+    "http-signature-1.1.1" = {
+      name = "http-signature";
+      packageName = "http-signature";
       version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
+        sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
       };
     };
-    "has-1.0.1" = {
-      name = "has";
-      packageName = "has";
-      version = "1.0.1";
+    "performance-now-0.2.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has/-/has-1.0.1.tgz";
-        sha1 = "8461733f538b0837c9361e39a9ab9e9704dc2f28";
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
+        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
       };
     };
-    "object-inspect-1.3.0" = {
-      name = "object-inspect";
-      packageName = "object-inspect";
-      version = "1.3.0";
+    "qs-6.4.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz";
-        sha512 = "1302hkgbynr48i0h4n5psz3ln624f8516qh68kpah1ziczyg8vpyfxws5x6iazncaw5jgg9bp19pgbfl4n4gjb9z0z96pnd08pffw9q";
+        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
+        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
       };
     };
-    "resumer-0.0.0" = {
-      name = "resumer";
-      packageName = "resumer";
-      version = "0.0.0";
+    "ajv-4.11.8" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "4.11.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
+        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
       };
     };
-    "string.prototype.trim-1.1.2" = {
-      name = "string.prototype.trim";
-      packageName = "string.prototype.trim";
-      version = "1.1.2";
+    "har-schema-1.0.5" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
-        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
+        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
       };
     };
-    "through-2.3.8" = {
-      name = "through";
-      packageName = "through";
-      version = "2.3.8";
+    "assert-plus-0.2.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "0.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
+        sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
       };
     };
-    "is-function-1.0.1" = {
-      name = "is-function";
-      packageName = "is-function";
-      version = "1.0.1";
+    "hoek-2.16.3" = {
+      name = "hoek";
+      packageName = "hoek";
+      version = "2.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz";
-        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
+        url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
+        sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
       };
     };
-    "define-properties-1.1.2" = {
-      name = "define-properties";
-      packageName = "define-properties";
-      version = "1.1.2";
+    "boom-2.10.1" = {
+      name = "boom";
+      packageName = "boom";
+      version = "2.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
-        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
+        url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
+        sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
       };
     };
-    "es-abstract-1.8.2" = {
-      name = "es-abstract";
-      packageName = "es-abstract";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz";
-        sha512 = "0cz5pzkb9xh1askig7mrv990raaa1pym6a8acyyjw405bnzdznck7q9qg2rcybwjq866i6226nq6mijn6kwg5n36r6hr3gjpla71y3n";
-      };
-    };
-    "foreach-2.0.5" = {
-      name = "foreach";
-      packageName = "foreach";
+    "cryptiles-2.0.5" = {
+      name = "cryptiles";
+      packageName = "cryptiles";
       version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz";
-        sha1 = "0bee005018aeb260d0a3af3ae658dd0136ec1b99";
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
+        sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
       };
     };
-    "object-keys-1.0.11" = {
-      name = "object-keys";
-      packageName = "object-keys";
-      version = "1.0.11";
+    "sntp-1.0.9" = {
+      name = "sntp";
+      packageName = "sntp";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz";
-        sha1 = "c54601778ad560f1142ce0e01bcca8b56d13426d";
-      };
-    };
-    "es-to-primitive-1.1.1" = {
-      name = "es-to-primitive";
-      packageName = "es-to-primitive";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz";
-        sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d";
-      };
-    };
-    "is-callable-1.1.3" = {
-      name = "is-callable";
-      packageName = "is-callable";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz";
-        sha1 = "86eb75392805ddc33af71c92a0eedf74ee7604b2";
-      };
-    };
-    "is-regex-1.0.4" = {
-      name = "is-regex";
-      packageName = "is-regex";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
-      };
-    };
-    "is-date-object-1.0.1" = {
-      name = "is-date-object";
-      packageName = "is-date-object";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
-      };
-    };
-    "is-symbol-1.0.1" = {
-      name = "is-symbol";
-      packageName = "is-symbol";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz";
-        sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572";
+        url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
+        sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
       };
     };
     "fstream-ignore-1.0.5" = {
@@ -4081,15 +4045,6 @@ let
         sha512 = "0v1k32zqj8bnqzyp5h0jxnkvpgpzpa6z7iyqbpm3p0ylqafbb2zm656mw6gs16zf98l7y218ygpx2kzks00qcycwwx2cny67mlza98l";
       };
     };
-    "request-2.81.0" = {
-      name = "request";
-      packageName = "request";
-      version = "2.81.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.81.0.tgz";
-        sha1 = "c6928946a0e06c5f8d6f8a9333469ffda46298a0";
-      };
-    };
     "retry-0.10.1" = {
       name = "retry";
       packageName = "retry";
@@ -4297,6 +4252,15 @@ let
         sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
       };
     };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
     "wcwidth-1.0.1" = {
       name = "wcwidth";
       packageName = "wcwidth";
@@ -5026,132 +4990,6 @@ let
         sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
       };
     };
-    "aws-sign2-0.6.0" = {
-      name = "aws-sign2";
-      packageName = "aws-sign2";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz";
-        sha1 = "14342dd38dbcc94d0e5b87d763cd63612c0e794f";
-      };
-    };
-    "form-data-2.1.4" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz";
-        sha1 = "33c183acf193276ecaa98143a69e94bfee1750d1";
-      };
-    };
-    "har-validator-4.2.1" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz";
-        sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
-      };
-    };
-    "hawk-3.1.3" = {
-      name = "hawk";
-      packageName = "hawk";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz";
-        sha1 = "078444bd7c1640b0fe540d2c9b73d59678e8e1c4";
-      };
-    };
-    "http-signature-1.1.1" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz";
-        sha1 = "df72e267066cd0ac67fb76adf8e134a8fbcf91bf";
-      };
-    };
-    "performance-now-0.2.0" = {
-      name = "performance-now";
-      packageName = "performance-now";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz";
-        sha1 = "33ef30c5c77d4ea21c5a53869d91b56d8f2555e5";
-      };
-    };
-    "qs-6.4.0" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz";
-        sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
-      };
-    };
-    "ajv-4.11.8" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "4.11.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz";
-        sha1 = "82ffb02b29e662ae53bdc20af15947706739c536";
-      };
-    };
-    "har-schema-1.0.5" = {
-      name = "har-schema";
-      packageName = "har-schema";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz";
-        sha1 = "d263135f43307c02c602afc8fe95970c0151369e";
-      };
-    };
-    "hoek-2.16.3" = {
-      name = "hoek";
-      packageName = "hoek";
-      version = "2.16.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz";
-        sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed";
-      };
-    };
-    "boom-2.10.1" = {
-      name = "boom";
-      packageName = "boom";
-      version = "2.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz";
-        sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
-      };
-    };
-    "cryptiles-2.0.5" = {
-      name = "cryptiles";
-      packageName = "cryptiles";
-      version = "2.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz";
-        sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8";
-      };
-    };
-    "sntp-1.0.9" = {
-      name = "sntp";
-      packageName = "sntp";
-      version = "1.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz";
-        sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
-      };
-    };
-    "assert-plus-0.2.0" = {
-      name = "assert-plus";
-      packageName = "assert-plus";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz";
-        sha1 = "d74e1b87e7affc0db8aadb7021f3fe48101ab234";
-      };
-    };
     "from2-1.3.0" = {
       name = "from2";
       packageName = "from2";
@@ -6810,7 +6648,7 @@ in
           sources."qs-6.5.1"
           sources."safe-buffer-5.1.1"
           sources."stringstream-0.0.5"
-          (sources."tough-cookie-2.3.2" // {
+          (sources."tough-cookie-2.3.3" // {
             dependencies = [
               sources."punycode-1.4.1"
             ];
@@ -7031,7 +6869,7 @@ in
           })
         ];
       })
-      (sources."debug-2.6.8" // {
+      (sources."debug-2.6.9" // {
         dependencies = [
           sources."ms-2.0.0"
         ];
@@ -7053,12 +6891,22 @@ in
           sources."content-type-1.0.4"
           sources."cookie-0.3.1"
           sources."cookie-signature-1.0.6"
+          (sources."debug-2.6.8" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
           sources."depd-1.1.1"
           sources."encodeurl-1.0.1"
           sources."escape-html-1.0.3"
           sources."etag-1.8.1"
-          (sources."finalhandler-1.0.5" // {
+          (sources."finalhandler-1.0.6" // {
             dependencies = [
+              (sources."debug-2.6.9" // {
+                dependencies = [
+                  sources."ms-2.0.0"
+                ];
+              })
               sources."unpipe-1.0.0"
             ];
           })
@@ -7161,7 +7009,7 @@ in
       (sources."v8-debug-1.0.1" // {
         dependencies = [
           sources."nan-2.7.0"
-          (sources."node-pre-gyp-0.6.37" // {
+          (sources."node-pre-gyp-0.6.38" // {
             dependencies = [
               (sources."mkdirp-0.5.1" // {
                 dependencies = [
@@ -7225,9 +7073,9 @@ in
                   sources."set-blocking-2.0.0"
                 ];
               })
-              (sources."request-2.82.0" // {
+              (sources."request-2.81.0" // {
                 dependencies = [
-                  sources."aws-sign2-0.7.0"
+                  sources."aws-sign2-0.6.0"
                   sources."aws4-1.6.0"
                   sources."caseless-0.12.0"
                   (sources."combined-stream-1.0.5" // {
@@ -7237,18 +7085,16 @@ in
                   })
                   sources."extend-3.0.1"
                   sources."forever-agent-0.6.1"
-                  (sources."form-data-2.3.1" // {
+                  (sources."form-data-2.1.4" // {
                     dependencies = [
                       sources."asynckit-0.4.0"
                     ];
                   })
-                  (sources."har-validator-5.0.3" // {
+                  (sources."har-validator-4.2.1" // {
                     dependencies = [
-                      (sources."ajv-5.2.2" // {
+                      (sources."ajv-4.11.8" // {
                         dependencies = [
                           sources."co-4.6.0"
-                          sources."fast-deep-equal-1.0.0"
-                          sources."json-schema-traverse-0.3.1"
                           (sources."json-stable-stringify-1.0.1" // {
                             dependencies = [
                               sources."jsonify-0.0.0"
@@ -7256,26 +7102,15 @@ in
                           })
                         ];
                       })
-                      sources."har-schema-2.0.0"
+                      sources."har-schema-1.0.5"
                     ];
                   })
-                  (sources."hawk-6.0.2" // {
+                  (sources."http-signature-1.1.1" // {
                     dependencies = [
-                      sources."hoek-4.2.0"
-                      sources."boom-4.3.1"
-                      (sources."cryptiles-3.1.2" // {
-                        dependencies = [
-                          sources."boom-5.2.0"
-                        ];
-                      })
-                      sources."sntp-2.0.2"
-                    ];
-                  })
-                  (sources."http-signature-1.2.0" // {
-                    dependencies = [
-                      sources."assert-plus-1.0.0"
+                      sources."assert-plus-0.2.0"
                       (sources."jsprim-1.4.1" // {
                         dependencies = [
+                          sources."assert-plus-1.0.0"
                           sources."extsprintf-1.3.0"
                           sources."json-schema-0.2.3"
                           (sources."verror-1.10.0" // {
@@ -7288,6 +7123,7 @@ in
                       (sources."sshpk-1.13.1" // {
                         dependencies = [
                           sources."asn1-0.2.3"
+                          sources."assert-plus-1.0.0"
                           sources."dashdash-1.14.1"
                           sources."getpass-0.1.7"
                           sources."jsbn-0.1.1"
@@ -7307,11 +7143,11 @@ in
                     ];
                   })
                   sources."oauth-sign-0.8.2"
-                  sources."performance-now-2.1.0"
-                  sources."qs-6.5.1"
+                  sources."performance-now-0.2.0"
+                  sources."qs-6.4.0"
                   sources."safe-buffer-5.1.1"
                   sources."stringstream-0.0.5"
-                  (sources."tough-cookie-2.3.2" // {
+                  (sources."tough-cookie-2.3.3" // {
                     dependencies = [
                       sources."punycode-1.4.1"
                     ];
@@ -7320,6 +7156,14 @@ in
                   sources."uuid-3.1.0"
                 ];
               })
+              (sources."hawk-3.1.3" // {
+                dependencies = [
+                  sources."hoek-2.16.3"
+                  sources."boom-2.10.1"
+                  sources."cryptiles-2.0.5"
+                  sources."sntp-1.0.9"
+                ];
+              })
               (sources."rimraf-2.6.2" // {
                 dependencies = [
                   (sources."glob-7.1.2" // {
@@ -7351,76 +7195,6 @@ in
                 ];
               })
               sources."semver-5.4.1"
-              (sources."tape-4.8.0" // {
-                dependencies = [
-                  sources."deep-equal-1.0.1"
-                  sources."defined-1.0.0"
-                  (sources."for-each-0.3.2" // {
-                    dependencies = [
-                      sources."is-function-1.0.1"
-                    ];
-                  })
-                  sources."function-bind-1.1.1"
-                  (sources."glob-7.1.2" // {
-                    dependencies = [
-                      sources."fs.realpath-1.0.0"
-                      (sources."inflight-1.0.6" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                      (sources."minimatch-3.0.4" // {
-                        dependencies = [
-                          (sources."brace-expansion-1.1.8" // {
-                            dependencies = [
-                              sources."balanced-match-1.0.0"
-                              sources."concat-map-0.0.1"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."once-1.4.0" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                    ];
-                  })
-                  sources."has-1.0.1"
-                  sources."inherits-2.0.3"
-                  sources."minimist-1.2.0"
-                  sources."object-inspect-1.3.0"
-                  (sources."resolve-1.4.0" // {
-                    dependencies = [
-                      sources."path-parse-1.0.5"
-                    ];
-                  })
-                  sources."resumer-0.0.0"
-                  (sources."string.prototype.trim-1.1.2" // {
-                    dependencies = [
-                      (sources."define-properties-1.1.2" // {
-                        dependencies = [
-                          sources."foreach-2.0.5"
-                          sources."object-keys-1.0.11"
-                        ];
-                      })
-                      (sources."es-abstract-1.8.2" // {
-                        dependencies = [
-                          (sources."es-to-primitive-1.1.1" // {
-                            dependencies = [
-                              sources."is-date-object-1.0.1"
-                              sources."is-symbol-1.0.1"
-                            ];
-                          })
-                          sources."is-callable-1.1.3"
-                          sources."is-regex-1.0.4"
-                        ];
-                      })
-                    ];
-                  })
-                  sources."through-2.3.8"
-                ];
-              })
               (sources."tar-2.2.1" // {
                 dependencies = [
                   sources."block-stream-0.0.9"
@@ -7481,7 +7255,7 @@ in
       (sources."v8-profiler-5.7.0" // {
         dependencies = [
           sources."nan-2.7.0"
-          (sources."node-pre-gyp-0.6.37" // {
+          (sources."node-pre-gyp-0.6.38" // {
             dependencies = [
               (sources."mkdirp-0.5.1" // {
                 dependencies = [
@@ -7545,9 +7319,9 @@ in
                   sources."set-blocking-2.0.0"
                 ];
               })
-              (sources."request-2.82.0" // {
+              (sources."request-2.81.0" // {
                 dependencies = [
-                  sources."aws-sign2-0.7.0"
+                  sources."aws-sign2-0.6.0"
                   sources."aws4-1.6.0"
                   sources."caseless-0.12.0"
                   (sources."combined-stream-1.0.5" // {
@@ -7557,18 +7331,16 @@ in
                   })
                   sources."extend-3.0.1"
                   sources."forever-agent-0.6.1"
-                  (sources."form-data-2.3.1" // {
+                  (sources."form-data-2.1.4" // {
                     dependencies = [
                       sources."asynckit-0.4.0"
                     ];
                   })
-                  (sources."har-validator-5.0.3" // {
+                  (sources."har-validator-4.2.1" // {
                     dependencies = [
-                      (sources."ajv-5.2.2" // {
+                      (sources."ajv-4.11.8" // {
                         dependencies = [
                           sources."co-4.6.0"
-                          sources."fast-deep-equal-1.0.0"
-                          sources."json-schema-traverse-0.3.1"
                           (sources."json-stable-stringify-1.0.1" // {
                             dependencies = [
                               sources."jsonify-0.0.0"
@@ -7576,26 +7348,15 @@ in
                           })
                         ];
                       })
-                      sources."har-schema-2.0.0"
+                      sources."har-schema-1.0.5"
                     ];
                   })
-                  (sources."hawk-6.0.2" // {
+                  (sources."http-signature-1.1.1" // {
                     dependencies = [
-                      sources."hoek-4.2.0"
-                      sources."boom-4.3.1"
-                      (sources."cryptiles-3.1.2" // {
-                        dependencies = [
-                          sources."boom-5.2.0"
-                        ];
-                      })
-                      sources."sntp-2.0.2"
-                    ];
-                  })
-                  (sources."http-signature-1.2.0" // {
-                    dependencies = [
-                      sources."assert-plus-1.0.0"
+                      sources."assert-plus-0.2.0"
                       (sources."jsprim-1.4.1" // {
                         dependencies = [
+                          sources."assert-plus-1.0.0"
                           sources."extsprintf-1.3.0"
                           sources."json-schema-0.2.3"
                           (sources."verror-1.10.0" // {
@@ -7608,6 +7369,7 @@ in
                       (sources."sshpk-1.13.1" // {
                         dependencies = [
                           sources."asn1-0.2.3"
+                          sources."assert-plus-1.0.0"
                           sources."dashdash-1.14.1"
                           sources."getpass-0.1.7"
                           sources."jsbn-0.1.1"
@@ -7627,11 +7389,11 @@ in
                     ];
                   })
                   sources."oauth-sign-0.8.2"
-                  sources."performance-now-2.1.0"
-                  sources."qs-6.5.1"
+                  sources."performance-now-0.2.0"
+                  sources."qs-6.4.0"
                   sources."safe-buffer-5.1.1"
                   sources."stringstream-0.0.5"
-                  (sources."tough-cookie-2.3.2" // {
+                  (sources."tough-cookie-2.3.3" // {
                     dependencies = [
                       sources."punycode-1.4.1"
                     ];
@@ -7640,6 +7402,14 @@ in
                   sources."uuid-3.1.0"
                 ];
               })
+              (sources."hawk-3.1.3" // {
+                dependencies = [
+                  sources."hoek-2.16.3"
+                  sources."boom-2.10.1"
+                  sources."cryptiles-2.0.5"
+                  sources."sntp-1.0.9"
+                ];
+              })
               (sources."rimraf-2.6.2" // {
                 dependencies = [
                   (sources."glob-7.1.2" // {
@@ -7671,76 +7441,6 @@ in
                 ];
               })
               sources."semver-5.4.1"
-              (sources."tape-4.8.0" // {
-                dependencies = [
-                  sources."deep-equal-1.0.1"
-                  sources."defined-1.0.0"
-                  (sources."for-each-0.3.2" // {
-                    dependencies = [
-                      sources."is-function-1.0.1"
-                    ];
-                  })
-                  sources."function-bind-1.1.1"
-                  (sources."glob-7.1.2" // {
-                    dependencies = [
-                      sources."fs.realpath-1.0.0"
-                      (sources."inflight-1.0.6" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                      (sources."minimatch-3.0.4" // {
-                        dependencies = [
-                          (sources."brace-expansion-1.1.8" // {
-                            dependencies = [
-                              sources."balanced-match-1.0.0"
-                              sources."concat-map-0.0.1"
-                            ];
-                          })
-                        ];
-                      })
-                      (sources."once-1.4.0" // {
-                        dependencies = [
-                          sources."wrappy-1.0.2"
-                        ];
-                      })
-                    ];
-                  })
-                  sources."has-1.0.1"
-                  sources."inherits-2.0.3"
-                  sources."minimist-1.2.0"
-                  sources."object-inspect-1.3.0"
-                  (sources."resolve-1.4.0" // {
-                    dependencies = [
-                      sources."path-parse-1.0.5"
-                    ];
-                  })
-                  sources."resumer-0.0.0"
-                  (sources."string.prototype.trim-1.1.2" // {
-                    dependencies = [
-                      (sources."define-properties-1.1.2" // {
-                        dependencies = [
-                          sources."foreach-2.0.5"
-                          sources."object-keys-1.0.11"
-                        ];
-                      })
-                      (sources."es-abstract-1.8.2" // {
-                        dependencies = [
-                          (sources."es-to-primitive-1.1.1" // {
-                            dependencies = [
-                              sources."is-date-object-1.0.1"
-                              sources."is-symbol-1.0.1"
-                            ];
-                          })
-                          sources."is-callable-1.1.3"
-                          sources."is-regex-1.0.4"
-                        ];
-                      })
-                    ];
-                  })
-                  sources."through-2.3.8"
-                ];
-              })
               (sources."tar-2.2.1" // {
                 dependencies = [
                   sources."block-stream-0.0.9"
@@ -7862,10 +7562,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.6.37";
+    version = "0.6.38";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
-      sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz";
+      sha1 = "e92a20f83416415bb4086f6d1fb78b3da73d113d";
     };
     dependencies = [
       (sources."mkdirp-0.5.1" // {
@@ -7938,9 +7638,9 @@ in
           sources."strip-json-comments-2.0.1"
         ];
       })
-      (sources."request-2.82.0" // {
+      (sources."request-2.81.0" // {
         dependencies = [
-          sources."aws-sign2-0.7.0"
+          sources."aws-sign2-0.6.0"
           sources."aws4-1.6.0"
           sources."caseless-0.12.0"
           (sources."combined-stream-1.0.5" // {
@@ -7950,18 +7650,16 @@ in
           })
           sources."extend-3.0.1"
           sources."forever-agent-0.6.1"
-          (sources."form-data-2.3.1" // {
+          (sources."form-data-2.1.4" // {
             dependencies = [
               sources."asynckit-0.4.0"
             ];
           })
-          (sources."har-validator-5.0.3" // {
+          (sources."har-validator-4.2.1" // {
             dependencies = [
-              (sources."ajv-5.2.2" // {
+              (sources."ajv-4.11.8" // {
                 dependencies = [
                   sources."co-4.6.0"
-                  sources."fast-deep-equal-1.0.0"
-                  sources."json-schema-traverse-0.3.1"
                   (sources."json-stable-stringify-1.0.1" // {
                     dependencies = [
                       sources."jsonify-0.0.0"
@@ -7969,26 +7667,15 @@ in
                   })
                 ];
               })
-              sources."har-schema-2.0.0"
+              sources."har-schema-1.0.5"
             ];
           })
-          (sources."hawk-6.0.2" // {
+          (sources."http-signature-1.1.1" // {
             dependencies = [
-              sources."hoek-4.2.0"
-              sources."boom-4.3.1"
-              (sources."cryptiles-3.1.2" // {
-                dependencies = [
-                  sources."boom-5.2.0"
-                ];
-              })
-              sources."sntp-2.0.2"
-            ];
-          })
-          (sources."http-signature-1.2.0" // {
-            dependencies = [
-              sources."assert-plus-1.0.0"
+              sources."assert-plus-0.2.0"
               (sources."jsprim-1.4.1" // {
                 dependencies = [
+                  sources."assert-plus-1.0.0"
                   sources."extsprintf-1.3.0"
                   sources."json-schema-0.2.3"
                   (sources."verror-1.10.0" // {
@@ -8001,6 +7688,7 @@ in
               (sources."sshpk-1.13.1" // {
                 dependencies = [
                   sources."asn1-0.2.3"
+                  sources."assert-plus-1.0.0"
                   sources."dashdash-1.14.1"
                   sources."getpass-0.1.7"
                   sources."jsbn-0.1.1"
@@ -8020,11 +7708,11 @@ in
             ];
           })
           sources."oauth-sign-0.8.2"
-          sources."performance-now-2.1.0"
-          sources."qs-6.5.1"
+          sources."performance-now-0.2.0"
+          sources."qs-6.4.0"
           sources."safe-buffer-5.1.1"
           sources."stringstream-0.0.5"
-          (sources."tough-cookie-2.3.2" // {
+          (sources."tough-cookie-2.3.3" // {
             dependencies = [
               sources."punycode-1.4.1"
             ];
@@ -8033,6 +7721,14 @@ in
           sources."uuid-3.1.0"
         ];
       })
+      (sources."hawk-3.1.3" // {
+        dependencies = [
+          sources."hoek-2.16.3"
+          sources."boom-2.10.1"
+          sources."cryptiles-2.0.5"
+          sources."sntp-1.0.9"
+        ];
+      })
       (sources."rimraf-2.6.2" // {
         dependencies = [
           (sources."glob-7.1.2" // {
@@ -8065,77 +7761,6 @@ in
         ];
       })
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."deep-equal-1.0.1"
-          sources."defined-1.0.0"
-          (sources."for-each-0.3.2" // {
-            dependencies = [
-              sources."is-function-1.0.1"
-            ];
-          })
-          sources."function-bind-1.1.1"
-          (sources."glob-7.1.2" // {
-            dependencies = [
-              sources."fs.realpath-1.0.0"
-              (sources."inflight-1.0.6" // {
-                dependencies = [
-                  sources."wrappy-1.0.2"
-                ];
-              })
-              (sources."minimatch-3.0.4" // {
-                dependencies = [
-                  (sources."brace-expansion-1.1.8" // {
-                    dependencies = [
-                      sources."balanced-match-1.0.0"
-                      sources."concat-map-0.0.1"
-                    ];
-                  })
-                ];
-              })
-              (sources."once-1.4.0" // {
-                dependencies = [
-                  sources."wrappy-1.0.2"
-                ];
-              })
-              sources."path-is-absolute-1.0.1"
-            ];
-          })
-          sources."has-1.0.1"
-          sources."inherits-2.0.3"
-          sources."minimist-1.2.0"
-          sources."object-inspect-1.3.0"
-          (sources."resolve-1.4.0" // {
-            dependencies = [
-              sources."path-parse-1.0.5"
-            ];
-          })
-          sources."resumer-0.0.0"
-          (sources."string.prototype.trim-1.1.2" // {
-            dependencies = [
-              (sources."define-properties-1.1.2" // {
-                dependencies = [
-                  sources."foreach-2.0.5"
-                  sources."object-keys-1.0.11"
-                ];
-              })
-              (sources."es-abstract-1.8.2" // {
-                dependencies = [
-                  (sources."es-to-primitive-1.1.1" // {
-                    dependencies = [
-                      sources."is-date-object-1.0.1"
-                      sources."is-symbol-1.0.1"
-                    ];
-                  })
-                  sources."is-callable-1.1.3"
-                  sources."is-regex-1.0.4"
-                ];
-              })
-            ];
-          })
-          sources."through-2.3.8"
-        ];
-      })
       (sources."tar-2.2.1" // {
         dependencies = [
           sources."block-stream-0.0.9"
@@ -8149,7 +7774,7 @@ in
       })
       (sources."tar-pack-3.4.0" // {
         dependencies = [
-          (sources."debug-2.6.8" // {
+          (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
@@ -8610,7 +8235,7 @@ in
                       })
                     ];
                   })
-                  (sources."debug-2.6.8" // {
+                  (sources."debug-2.6.9" // {
                     dependencies = [
                       sources."ms-2.0.0"
                     ];
@@ -8628,7 +8253,7 @@ in
                       })
                     ];
                   })
-                  (sources."debug-2.6.8" // {
+                  (sources."debug-2.6.9" // {
                     dependencies = [
                       sources."ms-2.0.0"
                     ];
@@ -8799,7 +8424,7 @@ in
           sources."performance-now-0.2.0"
           sources."qs-6.4.0"
           sources."stringstream-0.0.5"
-          (sources."tough-cookie-2.3.2" // {
+          (sources."tough-cookie-2.3.3" // {
             dependencies = [
               sources."punycode-1.4.1"
             ];
@@ -9286,7 +8911,7 @@ in
           sources."oauth-sign-0.8.2"
           sources."qs-6.3.2"
           sources."stringstream-0.0.5"
-          (sources."tough-cookie-2.3.2" // {
+          (sources."tough-cookie-2.3.3" // {
             dependencies = [
               sources."punycode-1.4.1"
             ];
diff --git a/pkgs/development/node-packages/node-packages-v6.json b/pkgs/development/node-packages/node-packages-v6.json
index b9373b82edf9..192df9f87fc4 100644
--- a/pkgs/development/node-packages/node-packages-v6.json
+++ b/pkgs/development/node-packages/node-packages-v6.json
@@ -77,6 +77,7 @@
 , "svgo"
 , "tern"
 , "typescript"
+, "typings"
 , "uglify-js"
 , "ungit"
 , "webdrvr"
diff --git a/pkgs/development/node-packages/node-packages-v6.nix b/pkgs/development/node-packages/node-packages-v6.nix
index 1bdde35c2269..ba2a6c77ce2f 100644
--- a/pkgs/development/node-packages/node-packages-v6.nix
+++ b/pkgs/development/node-packages/node-packages-v6.nix
@@ -274,13 +274,13 @@ let
         sha1 = "9acd70851c6d5dfdd93d9282e5edf94a03ff46b5";
       };
     };
-    "debug-2.6.8" = {
+    "debug-2.6.9" = {
       name = "debug";
       packageName = "debug";
-      version = "2.6.8";
+      version = "2.6.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
-        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
       };
     };
     "json5-0.5.1" = {
@@ -1003,13 +1003,13 @@ let
         sha1 = "937f87a8aeceb641a8210a9ba837323f0206eb47";
       };
     };
-    "azure-arm-network-2.0.0" = {
+    "azure-arm-network-3.0.0" = {
       name = "azure-arm-network";
       packageName = "azure-arm-network";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/azure-arm-network/-/azure-arm-network-2.0.0.tgz";
-        sha1 = "95e3d2658a68ecb0a2f90f611966f9852877f625";
+        url = "https://registry.npmjs.org/azure-arm-network/-/azure-arm-network-3.0.0.tgz";
+        sha1 = "66ec5b195a1af805a5b1727f65feac2bb7cd7951";
       };
     };
     "azure-arm-powerbiembedded-0.1.0" = {
@@ -1408,13 +1408,13 @@ let
         sha1 = "be191c4fbdff2e208bda440933436af80e7425b9";
       };
     };
-    "ms-rest-azure-2.3.1" = {
+    "ms-rest-azure-2.3.3" = {
       name = "ms-rest-azure";
       packageName = "ms-rest-azure";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.3.1.tgz";
-        sha1 = "25f2c6bdc721ec41187606b8d71a7b6090dc708e";
+        url = "https://registry.npmjs.org/ms-rest-azure/-/ms-rest-azure-2.3.3.tgz";
+        sha1 = "99016e430fb70a4e936191d3b35fc8b91327b337";
       };
     };
     "node-forge-0.6.23" = {
@@ -2020,13 +2020,13 @@ let
         sha1 = "0e3c4f24a3f052b231b12d5049085a0a099be782";
       };
     };
-    "@types/node-8.0.28" = {
+    "@types/node-8.0.30" = {
       name = "@types/node";
       packageName = "@types/node";
-      version = "8.0.28";
+      version = "8.0.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz";
-        sha512 = "2wlavwh38262crr2wm0zhzgp1ibkd2wy2hpmby0xr218k36vls3gdbya0848wx6r51hs1mbly8k8f3aby4xsarp9g5fvp1gf4an9shy";
+        url = "https://registry.npmjs.org/@types/node/-/node-8.0.30.tgz";
+        sha512 = "0y4jg8faga3jb33fjpyyriyg7r1cpp1cjm0nc6pjixm96naqmxnhq7bkxfm8489rdcifw6mc265a933cyihwdb9n88xhyynf0djv911";
       };
     };
     "@types/request-2.0.3" = {
@@ -2416,13 +2416,13 @@ let
         sha1 = "4e484cd4de5a0bbbee18e46307710a8a81621878";
       };
     };
-    "tough-cookie-2.3.2" = {
+    "tough-cookie-2.3.3" = {
       name = "tough-cookie";
       packageName = "tough-cookie";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz";
-        sha1 = "f081f76e4c85720e6c37a5faced737150d84072a";
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz";
+        sha1 = "0b618a5565b6dea90bf3425d04d55edc475a7561";
       };
     };
     "tunnel-agent-0.4.3" = {
@@ -6538,6 +6538,15 @@ let
         sha1 = "16718a75de283ed8e604041625a2064586797d8a";
       };
     };
+    "debug-2.6.8" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz";
+        sha1 = "e731531ca2ede27d188222427da17821d68ff4fc";
+      };
+    };
     "on-headers-1.0.1" = {
       name = "on-headers";
       packageName = "on-headers";
@@ -6646,13 +6655,13 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "finalhandler-1.0.5" = {
+    "finalhandler-1.0.6" = {
       name = "finalhandler";
       packageName = "finalhandler";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.5.tgz";
-        sha1 = "a701303d257a1bc82fea547a33e5ae89531723df";
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz";
+        sha1 = "007aea33d1a4d3e42017f624848ad58d212f814f";
       };
     };
     "fresh-0.5.0" = {
@@ -8456,13 +8465,13 @@ let
         sha1 = "0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb";
       };
     };
-    "http-parser-js-0.4.7" = {
+    "http-parser-js-0.4.8" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.4.7";
+      version = "0.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.7.tgz";
-        sha1 = "1cecc9c4ce845c0288224d8844854c1ef08c9ad7";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.8.tgz";
+        sha512 = "26g8b2fsa644qxadhgjjwlmzmik345a543f8rlg842j8l7g0sz8vhbf7vsxz047hk6qw0c7a1rfq222xjn2ckclsbqz5z9sv3vyjqcf";
       };
     };
     "websocket-extensions-0.1.2" = {
@@ -9107,13 +9116,13 @@ let
         sha1 = "cac328f7bee45730d404b692203fcb590e172d5e";
       };
     };
-    "aws-sdk-2.120.0" = {
+    "aws-sdk-2.122.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.120.0";
+      version = "2.122.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.120.0.tgz";
-        sha1 = "44857ecb476936fce891850ff27a502210814fb6";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.122.0.tgz";
+        sha1 = "d40980fdb24a07db166de91cb8813f0dc640d7c6";
       };
     };
     "request-2.82.0" = {
@@ -10700,13 +10709,13 @@ let
         sha512 = "3sy4za4hd6lczig5ah6ksh92i4ds0pk9b8nn4nwjwpsyyabywrnayf78zh41jf7amm6khqyjb3iknbp2mc3nfgvpkvphj3a993py6hf";
       };
     };
-    "cli-spinners-1.0.0" = {
+    "cli-spinners-1.0.1" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.0.tgz";
-        sha1 = "ef987ed3d48391ac3dab9180b406a742180d6e6a";
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.0.1.tgz";
+        sha1 = "2675321c100f195b02877ac499e9911fa34b9783";
       };
     };
     "log-symbols-1.0.2" = {
@@ -11438,13 +11447,13 @@ let
         sha1 = "4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61";
       };
     };
-    "node-pre-gyp-0.6.37" = {
+    "node-pre-gyp-0.6.38" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
-      version = "0.6.37";
+      version = "0.6.38";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
-        sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz";
+        sha1 = "e92a20f83416415bb4086f6d1fb78b3da73d113d";
       };
     };
     "npmlog-4.1.2" = {
@@ -11456,15 +11465,6 @@ let
         sha512 = "2967mavp7zw0aawf5fadqf4pmn7vy5gya1yx2s9wwppvivhd9q4mpdnszfqvd7p6yks649bwbpj8iviw86g0hpp4f93d5ca7dmjmrfs";
       };
     };
-    "tape-4.8.0" = {
-      name = "tape";
-      packageName = "tape";
-      version = "4.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz";
-        sha512 = "026x60jpvkdwfvbd6gls76zjj3yiqfz4cg9imi80r25zdziaiy87jkpw9mwbrbg9k2xc4nsn9yzk90pgkgybdspk0yb4fzg95y0nqjd";
-      };
-    };
     "tar-pack-3.4.0" = {
       name = "tar-pack";
       packageName = "tar-pack";
@@ -11528,114 +11528,6 @@ let
         sha512 = "39m5b8qc31vxhh0bz14vh9a1kf9znarvlpkf0v6vv1f2dxi61gihav2djq2mn7ns1z3yq6l8pyydj52fyzbm2q04rssrcrv4jbwnc4a";
       };
     };
-    "for-each-0.3.2" = {
-      name = "for-each";
-      packageName = "for-each";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz";
-        sha1 = "2c40450b9348e97f281322593ba96704b9abd4d4";
-      };
-    };
-    "object-inspect-1.3.0" = {
-      name = "object-inspect";
-      packageName = "object-inspect";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz";
-        sha512 = "1302hkgbynr48i0h4n5psz3ln624f8516qh68kpah1ziczyg8vpyfxws5x6iazncaw5jgg9bp19pgbfl4n4gjb9z0z96pnd08pffw9q";
-      };
-    };
-    "resumer-0.0.0" = {
-      name = "resumer";
-      packageName = "resumer";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
-        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
-      };
-    };
-    "string.prototype.trim-1.1.2" = {
-      name = "string.prototype.trim";
-      packageName = "string.prototype.trim";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
-        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
-      };
-    };
-    "is-function-1.0.1" = {
-      name = "is-function";
-      packageName = "is-function";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz";
-        sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
-      };
-    };
-    "define-properties-1.1.2" = {
-      name = "define-properties";
-      packageName = "define-properties";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
-        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
-      };
-    };
-    "es-abstract-1.8.2" = {
-      name = "es-abstract";
-      packageName = "es-abstract";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz";
-        sha512 = "0cz5pzkb9xh1askig7mrv990raaa1pym6a8acyyjw405bnzdznck7q9qg2rcybwjq866i6226nq6mijn6kwg5n36r6hr3gjpla71y3n";
-      };
-    };
-    "es-to-primitive-1.1.1" = {
-      name = "es-to-primitive";
-      packageName = "es-to-primitive";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz";
-        sha1 = "45355248a88979034b6792e19bb81f2b7975dd0d";
-      };
-    };
-    "is-callable-1.1.3" = {
-      name = "is-callable";
-      packageName = "is-callable";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz";
-        sha1 = "86eb75392805ddc33af71c92a0eedf74ee7604b2";
-      };
-    };
-    "is-regex-1.0.4" = {
-      name = "is-regex";
-      packageName = "is-regex";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
-      };
-    };
-    "is-date-object-1.0.1" = {
-      name = "is-date-object";
-      packageName = "is-date-object";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
-      };
-    };
-    "is-symbol-1.0.1" = {
-      name = "is-symbol";
-      packageName = "is-symbol";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz";
-        sha1 = "3cc59f00025194b6ab2e38dbae6689256b660572";
-      };
-    };
     "event-stream-0.5.3" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -11708,6 +11600,15 @@ let
         sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
       };
     };
+    "resumer-0.0.0" = {
+      name = "resumer";
+      packageName = "resumer";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
+        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+      };
+    };
     "lodash.groupby-4.6.0" = {
       name = "lodash.groupby";
       packageName = "lodash.groupby";
@@ -13086,13 +12987,13 @@ let
         sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
       };
     };
-    "@ionic/cli-utils-1.10.2" = {
+    "@ionic/cli-utils-1.12.0" = {
       name = "@ionic/cli-utils";
       packageName = "@ionic/cli-utils";
-      version = "1.10.2";
+      version = "1.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ionic/cli-utils/-/cli-utils-1.10.2.tgz";
-        sha512 = "3nnaaxpbcfqhp3hdi5gqjllw11li8pmbcpbwixyfxly5sy6m7izid84a80azmd1hh2f3pv68n07qm3prznzvx495vnvw3qyaxg0hi6x";
+        url = "https://registry.npmjs.org/@ionic/cli-utils/-/cli-utils-1.12.0.tgz";
+        sha512 = "15fk5kfp3wsi3yjpdj2hybb45g6i4i8xjadianbjlcfy8jh3zn4riavafawy76jwbn7i72yzd2yq9mwzimzqgypgpnyi254mwlykgrp";
       };
     };
     "@ionic/discover-0.3.1" = {
@@ -13140,13 +13041,13 @@ let
         sha1 = "b4360bb584af1437991942716f21d7c523d1dbbd";
       };
     };
-    "body-parser-1.18.1" = {
+    "body-parser-1.18.2" = {
       name = "body-parser";
       packageName = "body-parser";
-      version = "1.18.1";
+      version = "1.18.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.1.tgz";
-        sha512 = "1i2fmb5q1gy3zand1lmqbyamdg1iapbmy1wk9fr181fwcwjnsay1fvqkzbf9lx98mghlc061bhg15ymq4wm663qciparjxgj5kakg98";
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz";
+        sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
       };
     };
     "ci-info-1.1.1" = {
@@ -13221,13 +13122,13 @@ let
         sha512 = "1xd3zsk02nck4y601rn98n8cicrphaw5bdix278mk1yizmjv9s0wpa6akcqggd7d99c55s3byf4ylqdxkshyfsfnfx7lvwbmq2b3siw";
       };
     };
-    "ssh-config-1.1.1" = {
+    "ssh-config-1.1.2" = {
       name = "ssh-config";
       packageName = "ssh-config";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh-config/-/ssh-config-1.1.1.tgz";
-        sha512 = "34a8bmib45cxms67cjfwwwfaay3amvzj61ay7k7qj9lajxqb8qjp5m4ivn89pzcy1siiqxs47mmh63dsq2lrypjci2w9b4lp9cqpak4";
+        url = "https://registry.npmjs.org/ssh-config/-/ssh-config-1.1.2.tgz";
+        sha1 = "ae65590f276b8e259ec814551f7667c141f817e9";
       };
     };
     "superagent-3.6.0" = {
@@ -13707,13 +13608,13 @@ let
         sha1 = "aa95ac583bf31d80f725d57c27c09f4c2cfe9fa9";
       };
     };
-    "vscode-languageserver-3.4.2" = {
+    "vscode-languageserver-3.4.3" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
-      version = "3.4.2";
+      version = "3.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.4.2.tgz";
-        sha1 = "08cbe50ee26901d37dd4b5dc52c25b909363c1f1";
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.4.3.tgz";
+        sha1 = "83fea96bc5e094549a0a5ce3ef76b53d7ad40508";
       };
     };
     "vscode-languageserver-types-3.4.0" = {
@@ -14382,13 +14283,13 @@ let
         sha1 = "458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6";
       };
     };
-    "connect-3.6.4" = {
+    "connect-3.6.5" = {
       name = "connect";
       packageName = "connect";
-      version = "3.6.4";
+      version = "3.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/connect/-/connect-3.6.4.tgz";
-        sha1 = "52ea19c38607318784269297b0218ed074a01687";
+        url = "https://registry.npmjs.org/connect/-/connect-3.6.5.tgz";
+        sha1 = "fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da";
       };
     };
     "di-0.0.1" = {
@@ -16335,13 +16236,13 @@ let
         sha1 = "945cfadd66521eaf8f7c84913d377d7b15f24e31";
       };
     };
-    "send-0.15.5" = {
+    "send-0.15.6" = {
       name = "send";
       packageName = "send";
-      version = "0.15.5";
+      version = "0.15.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.15.5.tgz";
-        sha1 = "32ef6c8d820c9756597c3174b8c9dd51e3319be2";
+        url = "https://registry.npmjs.org/send/-/send-0.15.6.tgz";
+        sha1 = "20f23a9c925b762ab82705fe2f9db252ace47e34";
       };
     };
     "serve-index-1.9.0" = {
@@ -19386,13 +19287,13 @@ let
         sha1 = "27d92fec34d27cfa42707d3b40d025ae9855f2df";
       };
     };
-    "snyk-1.41.0" = {
+    "snyk-1.41.1" = {
       name = "snyk";
       packageName = "snyk";
-      version = "1.41.0";
+      version = "1.41.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk/-/snyk-1.41.0.tgz";
-        sha1 = "6c7a9a94f788181a21575f1b4ee59e6d80f6a059";
+        url = "https://registry.npmjs.org/snyk/-/snyk-1.41.1.tgz";
+        sha1 = "34ac2239337f4fbfa4192b10f2d4d67bf6d117cf";
       };
     };
     "spawn-please-0.3.0" = {
@@ -20073,6 +19974,15 @@ let
         sha1 = "b1c9cc044ef1b9fe63606fc141abbb32e14730cc";
       };
     };
+    "define-properties-1.1.2" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz";
+        sha1 = "83a73f2fea569898fb737193c8f873caf6d45c94";
+      };
+    };
     "bunyan-1.8.12" = {
       name = "bunyan";
       packageName = "bunyan";
@@ -21605,13 +21515,13 @@ let
         sha1 = "97e4e63ae46b21912cd9475bc31469d26f5ade66";
       };
     };
-    "csv-parse-1.2.2" = {
+    "csv-parse-1.2.3" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.2.tgz";
-        sha512 = "0f3kdjcfncknijsn256frrcdmpw52wkimylhbds095kmkva57dhhnrlqzlzsxvf60d1qzfzqlhhc0wj25b9rg1w6rwxfixx2q9a6bx7";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-1.2.3.tgz";
+        sha512 = "2gjf255jzzbvfv1ib97ahsjqcw53i1w42725cbynvkvdqvfkvfimrjbf3c1bdzbrxp1mad9znzb3d63a29b2adlrz7jkjsx43i5z3nq";
       };
     };
     "stream-transform-0.1.2" = {
@@ -21866,6 +21776,204 @@ let
         sha1 = "7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20";
       };
     };
+    "cli-truncate-1.1.0" = {
+      name = "cli-truncate";
+      packageName = "cli-truncate";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-truncate/-/cli-truncate-1.1.0.tgz";
+        sha512 = "1h48346i2bsfvj3h0qfxmyh1770cxb3d9ibk75yjag1xgzk021yqbmkiv30k5c0qgyb0sxkvjc3sckmakf4i7q1d2gh1nmw9fimj2vc";
+      };
+    };
+    "elegant-spinner-1.0.1" = {
+      name = "elegant-spinner";
+      packageName = "elegant-spinner";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
+        sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
+      };
+    };
+    "listify-1.0.0" = {
+      name = "listify";
+      packageName = "listify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/listify/-/listify-1.0.0.tgz";
+        sha1 = "03ca7ba2d150d4267773f74e57558d1053d2bee3";
+      };
+    };
+    "promise-finally-3.0.0" = {
+      name = "promise-finally";
+      packageName = "promise-finally";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-finally/-/promise-finally-3.0.0.tgz";
+        sha1 = "ddd5d0f895432b1206ceb8da1275064d18e7aa23";
+      };
+    };
+    "typings-core-2.3.3" = {
+      name = "typings-core";
+      packageName = "typings-core";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typings-core/-/typings-core-2.3.3.tgz";
+        sha1 = "09ec54cd5b11dd5f1ef2fc0ab31d37002ca2b5ad";
+      };
+    };
+    "jspm-config-0.3.4" = {
+      name = "jspm-config";
+      packageName = "jspm-config";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jspm-config/-/jspm-config-0.3.4.tgz";
+        sha1 = "44c26902e4ae8ece2366cedc9ff16b10a5f391c6";
+      };
+    };
+    "make-error-cause-1.2.2" = {
+      name = "make-error-cause";
+      packageName = "make-error-cause";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz";
+        sha1 = "df0388fcd0b37816dff0a5fb8108939777dcbc9d";
+      };
+    };
+    "popsicle-9.1.0" = {
+      name = "popsicle";
+      packageName = "popsicle";
+      version = "9.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popsicle/-/popsicle-9.1.0.tgz";
+        sha1 = "4f900f38d57a574ec170eda40496e364082bff66";
+      };
+    };
+    "popsicle-proxy-agent-3.0.0" = {
+      name = "popsicle-proxy-agent";
+      packageName = "popsicle-proxy-agent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popsicle-proxy-agent/-/popsicle-proxy-agent-3.0.0.tgz";
+        sha1 = "b9133c55d945759ab7ee61b7711364620d3aeadc";
+      };
+    };
+    "popsicle-retry-3.2.1" = {
+      name = "popsicle-retry";
+      packageName = "popsicle-retry";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popsicle-retry/-/popsicle-retry-3.2.1.tgz";
+        sha1 = "e06e866533b42a7a123eb330cbe63a7cebcba10c";
+      };
+    };
+    "popsicle-rewrite-1.0.0" = {
+      name = "popsicle-rewrite";
+      packageName = "popsicle-rewrite";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popsicle-rewrite/-/popsicle-rewrite-1.0.0.tgz";
+        sha1 = "1dd4e8ea9c3182351fb820f87934d992f7fb9007";
+      };
+    };
+    "popsicle-status-2.0.1" = {
+      name = "popsicle-status";
+      packageName = "popsicle-status";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/popsicle-status/-/popsicle-status-2.0.1.tgz";
+        sha1 = "8dd70c4fe7c694109add784ffe80eacac1e7b28d";
+      };
+    };
+    "string-template-1.0.0" = {
+      name = "string-template";
+      packageName = "string-template";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz";
+        sha1 = "9e9f2233dc00f218718ec379a28a5673ecca8b96";
+      };
+    };
+    "throat-3.2.0" = {
+      name = "throat";
+      packageName = "throat";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz";
+        sha512 = "3rnpjw8qfw0qbydd9s4pbp0qzahz1f4phbj4cc9mvz6851nrq9h1whwslsjjfrzl0qgsnjf0n8ppygh3kl7ikyj2sn9za75kdb3qipw";
+      };
+    };
+    "touch-1.0.0" = {
+      name = "touch";
+      packageName = "touch";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/touch/-/touch-1.0.0.tgz";
+        sha1 = "449cbe2dbae5a8c8038e30d71fa0ff464947c4de";
+      };
+    };
+    "typescript-2.5.2" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-2.5.2.tgz";
+        sha1 = "038a95f7d9bbb420b1bf35ba31d4c5c1dd3ffe34";
+      };
+    };
+    "zip-object-0.1.0" = {
+      name = "zip-object";
+      packageName = "zip-object";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zip-object/-/zip-object-0.1.0.tgz";
+        sha1 = "c1a0da04c88c837756e248680a03ff902ec3f53a";
+      };
+    };
+    "make-error-1.3.0" = {
+      name = "make-error";
+      packageName = "make-error";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz";
+        sha1 = "52ad3a339ccf10ce62b4040b708fe707244b8b96";
+      };
+    };
+    "http-proxy-agent-1.0.0" = {
+      name = "http-proxy-agent";
+      packageName = "http-proxy-agent";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz";
+        sha1 = "cc1ce38e453bf984a0f7702d2dd59c73d081284a";
+      };
+    };
+    "https-proxy-agent-1.0.0" = {
+      name = "https-proxy-agent";
+      packageName = "https-proxy-agent";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz";
+        sha1 = "35f7da6c48ce4ddbfa264891ac593ee5ff8671e6";
+      };
+    };
+    "agent-base-2.1.1" = {
+      name = "agent-base";
+      packageName = "agent-base";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz";
+        sha1 = "d6de10d5af6132d5bd692427d46fc538539094c7";
+      };
+    };
+    "semver-5.0.3" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz";
+        sha1 = "77466de589cd5d3c95f138aa78bc569a3cb5d27a";
+      };
+    };
     "blueimp-md5-2.8.0" = {
       name = "blueimp-md5";
       packageName = "blueimp-md5";
@@ -22010,6 +22118,15 @@ let
         sha512 = "136ylazswrblh2b1kc29xsmzk3i3bhm6vcirl1zb60fv9h0nf3hipz7qm91vs6my1lry00xrzpy1x96y51siciwwq7k3fs0ynl2j6m4";
       };
     };
+    "serve-static-1.12.6" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.12.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.12.6.tgz";
+        sha1 = "b973773f63449934da54e5beba5e31d9f4211577";
+      };
+    };
     "signals-1.0.0" = {
       name = "signals";
       packageName = "signals";
@@ -22997,10 +23114,10 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.10.4";
+    version = "1.10.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.10.4.tgz";
-      sha1 = "8df4818788ba3735122383f99c61cc6ce50626fa";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.10.5.tgz";
+      sha1 = "60d75b6b4d9094846ada57d18892a50b8c140b8c";
     };
     dependencies = [
       sources."async-2.5.0"
@@ -23041,7 +23158,7 @@ in
       sources."babel-runtime-6.26.0"
       sources."babel-template-6.26.0"
       sources."convert-source-map-1.5.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."json5-0.5.1"
       sources."minimatch-3.0.4"
       sources."path-is-absolute-1.0.1"
@@ -23133,10 +23250,10 @@ in
   azure-cli = nodeEnv.buildNodePackage {
     name = "azure-cli";
     packageName = "azure-cli";
-    version = "0.10.15";
+    version = "0.10.16";
     src = fetchurl {
-      url = "https://registry.npmjs.org/azure-cli/-/azure-cli-0.10.15.tgz";
-      sha1 = "15386d528bcd2521147934e3f183b53897a18c2c";
+      url = "https://registry.npmjs.org/azure-cli/-/azure-cli-0.10.16.tgz";
+      sha512 = "0l8acam1ykyb31ww0xspzvv9na18l1w7r9hjg7vz3nbb9zhbs2615gyjjj7va0r8czr221nwyrggdx65vhxdpwvzi7mzjmbmgr85a36";
     };
     dependencies = [
       sources."adal-node-0.1.21"
@@ -23188,7 +23305,7 @@ in
           sources."async-0.2.7"
         ];
       })
-      sources."azure-arm-network-2.0.0"
+      sources."azure-arm-network-3.0.0"
       (sources."azure-arm-powerbiembedded-0.1.0" // {
         dependencies = [
           sources."ms-rest-1.15.7"
@@ -23318,7 +23435,7 @@ in
       })
       sources."moment-2.18.1"
       sources."ms-rest-2.2.2"
-      (sources."ms-rest-azure-2.3.1" // {
+      (sources."ms-rest-azure-2.3.3" // {
         dependencies = [
           sources."async-0.2.7"
         ];
@@ -23418,7 +23535,7 @@ in
       sources."has-color-0.1.7"
       sources."ansi-styles-1.0.0"
       sources."strip-ansi-0.1.1"
-      sources."@types/node-8.0.28"
+      sources."@types/node-8.0.30"
       sources."@types/request-2.0.3"
       sources."@types/uuid-3.4.2"
       sources."is-buffer-1.1.5"
@@ -23482,7 +23599,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."qs-6.2.3"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.4.3"
       sources."delayed-stream-1.0.0"
       sources."lodash-4.17.4"
@@ -23696,7 +23813,7 @@ in
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
       sources."q-1.5.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -23895,7 +24012,7 @@ in
       sources."chalk-1.0.0"
       sources."chromecast-player-0.2.3"
       sources."debounced-seeker-1.0.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."diveSync-0.3.0"
       sources."got-1.2.2"
       sources."internal-ip-1.2.0"
@@ -24620,7 +24737,11 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."finalhandler-1.0.5"
+      (sources."finalhandler-1.0.6" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -24764,7 +24885,7 @@ in
       sources."node-uuid-1.4.8"
       sources."oauth-sign-0.8.2"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.4.3"
       sources."delayed-stream-1.0.0"
       (sources."async-2.5.0" // {
@@ -25032,7 +25153,7 @@ in
       sources."eventemitter3-0.1.6"
       sources."better-curry-1.6.0"
       sources."websocket-driver-0.7.0"
-      sources."http-parser-js-0.4.7"
+      sources."http-parser-js-0.4.8"
       sources."websocket-extensions-0.1.2"
       (sources."native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" // {
         dependencies = [
@@ -25240,7 +25361,7 @@ in
       sources."JSONStream-1.3.1"
       sources."async-2.5.0"
       sources."aws4-1.6.0"
-      sources."aws-sdk-2.120.0"
+      sources."aws-sdk-2.122.0"
       sources."ini-1.3.4"
       sources."optimist-0.6.1"
       (sources."request-2.82.0" // {
@@ -25285,7 +25406,7 @@ in
       sources."qs-6.5.1"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
-      (sources."tough-cookie-2.3.2" // {
+      (sources."tough-cookie-2.3.3" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
@@ -25429,7 +25550,7 @@ in
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
       sources."convert-source-map-1.5.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."json5-0.5.1"
       sources."lodash-4.17.4"
       sources."minimatch-3.0.4"
@@ -26022,7 +26143,7 @@ in
       sources."is-finite-1.0.2"
       sources."number-is-nan-1.0.1"
       sources."get-stdin-4.0.1"
-      sources."cli-spinners-1.0.0"
+      sources."cli-spinners-1.0.1"
       sources."log-symbols-1.0.2"
       sources."mimic-fn-1.1.0"
       sources."es6-promise-4.0.5"
@@ -26075,7 +26196,7 @@ in
       sources."performance-now-0.2.0"
       sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -26292,7 +26413,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -26305,14 +26426,10 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."minimist-1.2.0"
-        ];
-      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -26341,88 +26458,80 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
       sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
       sources."ms-2.0.0"
@@ -26435,13 +26544,12 @@ in
         ];
       })
       sources."lazy-1.0.11"
-      (sources."caller-0.0.1" // {
-        dependencies = [
-          sources."tape-2.3.3"
-          sources."deep-equal-0.1.2"
-          sources."defined-0.0.0"
-        ];
-      })
+      sources."caller-0.0.1"
+      sources."tape-2.3.3"
+      sources."deep-equal-0.1.2"
+      sources."defined-0.0.0"
+      sources."through-2.3.8"
+      sources."resumer-0.0.0"
       sources."i-0.3.5"
       sources."ncp-0.4.2"
     ];
@@ -26469,7 +26577,7 @@ in
       sources."tabtab-git+https://github.com/mixu/node-tabtab.git"
       sources."lodash-4.17.4"
       sources."microee-0.0.2"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."ms-2.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -26961,13 +27069,13 @@ in
   ionic = nodeEnv.buildNodePackage {
     name = "ionic";
     packageName = "ionic";
-    version = "3.10.3";
+    version = "3.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ionic/-/ionic-3.10.3.tgz";
-      sha512 = "2n96j5a5fpy6pjgmgsnkx5d2asxha7yvlmlj77fpg31qg7nij0p9y4sq00zjrdzhzq2avsc9r25pjgy3i8cb16il9w9rrd210rlzc15";
+      url = "https://registry.npmjs.org/ionic/-/ionic-3.12.0.tgz";
+      sha512 = "0x1177vl5qkcwx2fw8nbg227ymhzx80pfjxpiw4xdhfrmqdzrlfz38kk8z1x6ifvg9mij2m8ws6wvjczpp2shqdqmgjibg3xkabsrbb";
     };
     dependencies = [
-      sources."@ionic/cli-utils-1.10.2"
+      sources."@ionic/cli-utils-1.12.0"
       sources."@ionic/discover-0.3.1"
       sources."chalk-2.1.0"
       sources."opn-5.1.0"
@@ -26977,7 +27085,7 @@ in
       sources."tslib-1.7.1"
       sources."archiver-2.0.3"
       sources."basic-auth-1.1.0"
-      sources."body-parser-1.18.1"
+      sources."body-parser-1.18.2"
       sources."chokidar-1.7.0"
       sources."ci-info-1.1.1"
       sources."cross-spawn-5.1.0"
@@ -26986,6 +27094,7 @@ in
       sources."elementtree-0.1.7"
       (sources."express-4.15.4" // {
         dependencies = [
+          sources."debug-2.6.8"
           sources."qs-6.5.0"
         ];
       })
@@ -27000,7 +27109,7 @@ in
           sources."is-fullwidth-code-point-2.0.0"
         ];
       })
-      sources."ssh-config-1.1.1"
+      sources."ssh-config-1.1.2"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."is-fullwidth-code-point-2.0.0"
@@ -27057,7 +27166,7 @@ in
       sources."crc-3.4.4"
       sources."bytes-3.0.0"
       sources."content-type-1.0.4"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
       sources."iconv-lite-0.4.19"
@@ -27122,7 +27231,7 @@ in
       sources."binary-extensions-1.10.0"
       sources."set-immediate-shim-1.0.1"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -27131,8 +27240,12 @@ in
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
-      sources."request-2.82.0"
-      sources."tape-4.8.0"
+      (sources."request-2.81.0" // {
+        dependencies = [
+          sources."qs-6.4.0"
+        ];
+      })
+      sources."hawk-3.1.3"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
       sources."osenv-0.1.4"
@@ -27165,76 +27278,68 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
+      sources."performance-now-0.2.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."punycode-1.4.1"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
@@ -27254,7 +27359,7 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."finalhandler-1.0.5"
+      sources."finalhandler-1.0.6"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -27262,7 +27367,11 @@ in
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
       sources."vary-1.1.1"
@@ -27280,6 +27389,7 @@ in
       sources."run-async-2.3.0"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
+      sources."through-2.3.8"
       sources."restore-cursor-2.0.0"
       sources."onetime-2.0.1"
       sources."mimic-fn-1.1.0"
@@ -27317,7 +27427,7 @@ in
       sources."safe-json-parse-1.0.1"
       sources."string-template-0.2.1"
       sources."websocket-driver-0.7.0"
-      sources."http-parser-js-0.4.7"
+      sources."http-parser-js-0.4.8"
       sources."websocket-extensions-0.1.2"
       sources."async-limiter-1.0.0"
       sources."ultron-1.1.0"
@@ -27480,7 +27590,7 @@ in
       sources."string-similarity-1.2.0"
       sources."typescript-2.3.4"
       sources."vscode-jsonrpc-3.4.0"
-      sources."vscode-languageserver-3.4.2"
+      sources."vscode-languageserver-3.4.3"
       sources."vscode-languageserver-types-3.4.0"
       sources."symbol-observable-1.0.4"
       sources."assertion-error-1.0.2"
@@ -27709,7 +27819,7 @@ in
       sources."superagent-3.6.0"
       sources."component-emitter-1.2.1"
       sources."cookiejar-2.1.1"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."extend-3.0.1"
       sources."form-data-2.3.1"
       sources."formidable-1.1.1"
@@ -27749,11 +27859,12 @@ in
       sha512 = "2iqk65hy94j010zlqsl4rzfkz4f9ic1pqbvsf5w1lrgmda9wmhxl5kmvnmwikjilmn6kz9kniqzl7rpq3xv3cmpx8rppb7ipk5ddhzj";
     };
     dependencies = [
-      sources."body-parser-1.18.1"
+      sources."body-parser-1.18.2"
       sources."chalk-1.1.3"
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
+          sources."debug-2.6.8"
         ];
       })
       sources."connect-pause-0.1.1"
@@ -27761,6 +27872,7 @@ in
       sources."errorhandler-1.5.0"
       (sources."express-4.15.4" // {
         dependencies = [
+          sources."debug-2.6.8"
           sources."qs-6.5.0"
         ];
       })
@@ -27773,8 +27885,16 @@ in
       sources."lodash-4.17.4"
       sources."lodash-id-0.13.0"
       sources."lowdb-0.15.5"
-      sources."method-override-2.3.9"
-      sources."morgan-1.8.2"
+      (sources."method-override-2.3.9" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
+      (sources."morgan-1.8.2" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."object-assign-4.1.1"
       sources."please-upgrade-node-3.0.1"
       sources."pluralize-3.1.0"
@@ -27789,7 +27909,7 @@ in
       })
       sources."bytes-3.0.0"
       sources."content-type-1.0.4"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
       sources."iconv-lite-0.4.19"
@@ -27825,7 +27945,7 @@ in
       sources."cookie-signature-1.0.6"
       sources."encodeurl-1.0.1"
       sources."etag-1.8.1"
-      sources."finalhandler-1.0.5"
+      sources."finalhandler-1.0.6"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -27833,7 +27953,11 @@ in
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
       sources."forwarded-0.1.2"
@@ -27862,7 +27986,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -28042,7 +28166,7 @@ in
     };
     dependencies = [
       sources."bluebird-3.5.0"
-      sources."body-parser-1.18.1"
+      sources."body-parser-1.18.2"
       sources."chokidar-1.7.0"
       sources."colors-1.1.2"
       (sources."combine-lists-1.0.1" // {
@@ -28050,7 +28174,7 @@ in
           sources."lodash-4.17.4"
         ];
       })
-      sources."connect-3.6.4"
+      sources."connect-3.6.5"
       sources."core-js-2.5.1"
       sources."di-0.0.1"
       sources."dom-serialize-2.2.1"
@@ -28094,7 +28218,7 @@ in
       sources."useragent-2.2.1"
       sources."bytes-3.0.0"
       sources."content-type-1.0.4"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
       sources."iconv-lite-0.4.19"
@@ -28169,7 +28293,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -28178,13 +28302,13 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
-      sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
+      (sources."request-2.81.0" // {
         dependencies = [
-          sources."minimist-1.2.0"
+          sources."qs-6.4.0"
         ];
       })
+      sources."hawk-3.1.3"
+      sources."semver-5.4.1"
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -28211,84 +28335,76 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
+      sources."performance-now-0.2.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."punycode-1.4.1"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
       sources."once-1.4.0"
       sources."uid-number-0.0.6"
       sources."wrappy-1.0.2"
-      sources."finalhandler-1.0.5"
+      sources."finalhandler-1.0.6"
       sources."parseurl-1.3.2"
       sources."utils-merge-1.0.1"
       sources."encodeurl-1.0.1"
@@ -29039,10 +29155,11 @@ in
       sha512 = "3pnrrz3blfy50s64c4wdj9gjl8zv3p72wd0vmrk86qjdd676g9sj4cwywp356r633csg568pczll7pfb6sxpm0x9fvbk4zhwvdpb70b";
     };
     dependencies = [
-      sources."body-parser-1.18.1"
+      sources."body-parser-1.18.2"
       sources."chokidar-1.7.0"
       (sources."express-4.15.4" // {
         dependencies = [
+          sources."debug-2.6.8"
           sources."qs-6.5.0"
         ];
       })
@@ -29052,11 +29169,31 @@ in
       sources."markdown-it-task-checkbox-1.0.4"
       sources."minimist-1.2.0"
       sources."opn-5.1.0"
-      sources."request-2.82.0"
+      (sources."request-2.82.0" // {
+        dependencies = [
+          sources."aws-sign2-0.7.0"
+          sources."form-data-2.3.1"
+          sources."har-validator-5.0.3"
+          sources."hawk-6.0.2"
+          sources."http-signature-1.2.0"
+          sources."performance-now-2.1.0"
+          sources."ajv-5.2.2"
+          sources."har-schema-2.0.0"
+          sources."hoek-4.2.0"
+          sources."boom-4.3.1"
+          (sources."cryptiles-3.1.2" // {
+            dependencies = [
+              sources."boom-5.2.0"
+            ];
+          })
+          sources."sntp-2.0.2"
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."socket.io-2.0.3"
       sources."bytes-3.0.0"
       sources."content-type-1.0.4"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
       sources."iconv-lite-0.4.19"
@@ -29137,7 +29274,12 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      (sources."node-pre-gyp-0.6.38" // {
+        dependencies = [
+          sources."request-2.81.0"
+          sources."qs-6.4.0"
+        ];
+      })
       (sources."mkdirp-0.5.1" // {
         dependencies = [
           sources."minimist-0.0.8"
@@ -29146,9 +29288,9 @@ in
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      sources."tape-4.8.0"
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -29174,32 +29316,74 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
+      sources."aws-sign2-0.6.0"
+      sources."aws4-1.6.0"
+      sources."caseless-0.12.0"
+      sources."combined-stream-1.0.5"
+      sources."extend-3.0.1"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
+      sources."is-typedarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."json-stringify-safe-5.0.1"
+      sources."oauth-sign-0.8.2"
+      sources."performance-now-0.2.0"
+      sources."stringstream-0.0.5"
+      sources."tough-cookie-2.3.3"
+      sources."tunnel-agent-0.6.0"
+      sources."uuid-3.1.0"
+      sources."delayed-stream-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
+      sources."co-4.6.0"
+      sources."json-stable-stringify-1.0.1"
+      sources."jsonify-0.0.0"
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      sources."extsprintf-1.3.0"
+      sources."json-schema-0.2.3"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      sources."asn1-0.2.3"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      sources."jsbn-0.1.1"
+      sources."tweetnacl-0.14.5"
+      sources."ecc-jsbn-0.1.1"
+      sources."bcrypt-pbkdf-1.0.1"
+      sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -29212,7 +29396,7 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."finalhandler-1.0.5"
+      sources."finalhandler-1.0.6"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -29220,7 +29404,11 @@ in
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
       sources."vary-1.1.1"
@@ -29240,56 +29428,8 @@ in
       sources."emoji-regex-6.1.1"
       sources."html-entities-1.2.1"
       sources."is-wsl-1.1.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.6.0"
-      sources."caseless-0.12.0"
-      sources."combined-stream-1.0.5"
-      sources."extend-3.0.1"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
-      sources."is-typedarray-1.0.0"
-      sources."isstream-0.1.2"
-      sources."json-stringify-safe-5.0.1"
-      sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
-      sources."tunnel-agent-0.6.0"
-      sources."uuid-3.1.0"
-      sources."delayed-stream-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
-      sources."co-4.6.0"
       sources."fast-deep-equal-1.0.0"
       sources."json-schema-traverse-0.3.1"
-      sources."json-stable-stringify-1.0.1"
-      sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
-        dependencies = [
-          sources."boom-5.2.0"
-        ];
-      })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
-      sources."extsprintf-1.3.0"
-      sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
-      sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
-      sources."jsbn-0.1.1"
-      sources."tweetnacl-0.14.5"
-      sources."ecc-jsbn-0.1.1"
-      sources."bcrypt-pbkdf-1.0.1"
-      sources."punycode-1.4.1"
       (sources."engine.io-3.1.1" // {
         dependencies = [
           sources."accepts-1.3.3"
@@ -29366,12 +29506,20 @@ in
       sources."event-stream-3.3.4"
       sources."faye-websocket-0.11.1"
       sources."http-auth-3.1.3"
-      sources."morgan-1.8.2"
+      (sources."morgan-1.8.2" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."object-assign-4.1.1"
       sources."opn-5.1.0"
       sources."proxy-middleware-0.15.0"
-      sources."send-0.15.5"
-      sources."serve-index-1.9.0"
+      sources."send-0.15.6"
+      (sources."serve-index-1.9.0" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."anymatch-1.3.2"
       sources."async-each-1.0.1"
       sources."glob-parent-2.0.0"
@@ -29437,7 +29585,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -29446,14 +29594,10 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."minimist-1.2.0"
-        ];
-      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -29479,88 +29623,80 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
       sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
       sources."ms-2.0.0"
@@ -29578,6 +29714,7 @@ in
       sources."unpipe-1.0.0"
       sources."ee-first-1.1.1"
       sources."vary-1.1.1"
+      sources."through-2.3.8"
       sources."duplexer-0.1.1"
       sources."from-0.1.7"
       sources."map-stream-0.1.0"
@@ -29585,7 +29722,7 @@ in
       sources."split-0.3.3"
       sources."stream-combiner-0.0.4"
       sources."websocket-driver-0.7.0"
-      sources."http-parser-js-0.4.7"
+      sources."http-parser-js-0.4.8"
       sources."websocket-extensions-0.1.2"
       sources."apache-crypt-1.2.1"
       sources."apache-md5-1.1.2"
@@ -29726,7 +29863,7 @@ in
       sources."superagent-3.6.0"
       sources."component-emitter-1.2.1"
       sources."cookiejar-2.1.1"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."extend-3.0.1"
       sources."form-data-2.3.1"
       sources."formidable-1.1.1"
@@ -29855,7 +29992,7 @@ in
       sources."performance-now-2.1.0"
       sources."qs-6.5.1"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -30012,7 +30149,7 @@ in
       sources."performance-now-2.1.0"
       sources."qs-6.5.1"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -30069,8 +30206,12 @@ in
     dependencies = [
       sources."async-0.9.2"
       sources."biased-opener-0.2.8"
-      sources."debug-2.6.8"
-      sources."express-4.15.4"
+      sources."debug-2.6.9"
+      (sources."express-4.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."glob-5.0.15"
       sources."path-is-absolute-1.0.1"
       sources."rc-1.2.1"
@@ -30173,7 +30314,7 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."finalhandler-1.0.5"
+      sources."finalhandler-1.0.6"
       sources."fresh-0.5.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
@@ -30183,7 +30324,11 @@ in
       sources."proxy-addr-1.1.5"
       sources."qs-6.5.0"
       sources."range-parser-1.2.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."serve-static-1.12.4"
       sources."setprototypeof-1.0.3"
       sources."statuses-1.3.1"
@@ -30215,7 +30360,7 @@ in
       sources."safe-buffer-5.1.1"
       sources."truncate-1.0.5"
       sources."nan-2.7.0"
-      (sources."node-pre-gyp-0.6.37" // {
+      (sources."node-pre-gyp-0.6.38" // {
         dependencies = [
           sources."rimraf-2.6.2"
           sources."semver-5.4.1"
@@ -30224,16 +30369,12 @@ in
       })
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
-      (sources."request-2.82.0" // {
+      (sources."request-2.81.0" // {
         dependencies = [
-          sources."qs-6.5.1"
-        ];
-      })
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."glob-7.1.2"
+          sources."qs-6.4.0"
         ];
       })
+      sources."hawk-3.1.3"
       sources."tar-2.2.1"
       (sources."tar-pack-3.4.0" // {
         dependencies = [
@@ -30260,78 +30401,70 @@ in
       sources."code-point-at-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."ansi-regex-2.1.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
+      sources."performance-now-0.2.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."fs.realpath-1.0.0"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -30357,10 +30490,10 @@ in
   node-pre-gyp = nodeEnv.buildNodePackage {
     name = "node-pre-gyp";
     packageName = "node-pre-gyp";
-    version = "0.6.37";
+    version = "0.6.38";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz";
-      sha1 = "3c872b236b2e266e4140578fe1ee88f693323a05";
+      url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.38.tgz";
+      sha1 = "e92a20f83416415bb4086f6d1fb78b3da73d113d";
     };
     dependencies = [
       sources."mkdirp-0.5.1"
@@ -30371,14 +30504,10 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."minimist-1.2.0"
-        ];
-      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -30413,59 +30542,72 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
       sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
@@ -30476,31 +30618,10 @@ in
       sources."brace-expansion-1.1.8"
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."graceful-fs-4.1.11"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
       sources."ms-2.0.0"
@@ -30523,7 +30644,7 @@ in
     };
     dependencies = [
       sources."chokidar-1.7.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."es6-promise-3.3.1"
       sources."ignore-by-default-1.0.1"
       sources."lodash.defaults-3.1.2"
@@ -30597,7 +30718,7 @@ in
       sources."string_decoder-1.0.3"
       sources."util-deprecate-1.0.2"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       sources."mkdirp-0.5.1"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
@@ -30606,14 +30727,10 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."minimist-1.2.0"
-        ];
-      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."minimist-0.0.8"
@@ -30640,85 +30757,77 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."ajv-5.2.2"
-      sources."har-schema-2.0.0"
+      sources."ajv-4.11.8"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
       sources."json-stable-stringify-1.0.1"
       sources."jsonify-0.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
       sources."punycode-1.4.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
       sources."fstream-ignore-1.0.5"
@@ -30739,6 +30848,7 @@ in
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
       sources."event-stream-3.3.4"
+      sources."through-2.3.8"
       sources."duplexer-0.1.1"
       sources."from-0.1.7"
       sources."map-stream-0.1.0"
@@ -30976,9 +31086,9 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      (sources."finalhandler-1.0.5" // {
+      (sources."finalhandler-1.0.6" // {
         dependencies = [
-          sources."debug-2.6.8"
+          sources."debug-2.6.9"
         ];
       })
       sources."fresh-0.5.0"
@@ -31136,7 +31246,7 @@ in
       sources."node-uuid-1.4.8"
       sources."oauth-sign-0.8.2"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.4.3"
       sources."delayed-stream-1.0.0"
       sources."chalk-1.1.3"
@@ -31697,7 +31807,7 @@ in
       sources."humanize-ms-1.2.1"
       sources."ms-2.0.0"
       sources."agent-base-4.1.1"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."es6-promisify-5.0.0"
       sources."es6-promise-4.1.1"
       sources."encoding-0.1.12"
@@ -31734,7 +31844,7 @@ in
       sources."performance-now-0.2.0"
       sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
@@ -31940,7 +32050,7 @@ in
       sources."qs-6.5.1"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -32077,7 +32187,7 @@ in
       sources."require-dir-0.3.2"
       sources."semver-5.4.1"
       sources."semver-utils-1.1.1"
-      (sources."snyk-1.41.0" // {
+      (sources."snyk-1.41.1" // {
         dependencies = [
           sources."update-notifier-0.5.0"
           sources."latest-version-1.0.1"
@@ -32259,7 +32369,7 @@ in
       sources."is-fullwidth-code-point-1.0.0"
       sources."number-is-nan-1.0.1"
       sources."array-index-1.0.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."es6-symbol-3.1.1"
       sources."ms-2.0.0"
       sources."d-1.0.0"
@@ -32310,7 +32420,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."qs-6.2.3"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.4.3"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
@@ -32643,7 +32753,7 @@ in
     dependencies = [
       sources."async-0.9.2"
       sources."babybird-0.0.1"
-      (sources."body-parser-1.18.1" // {
+      (sources."body-parser-1.18.2" // {
         dependencies = [
           sources."content-type-1.0.4"
         ];
@@ -32651,6 +32761,7 @@ in
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
+          sources."debug-2.6.8"
         ];
       })
       sources."connect-busboy-0.0.2"
@@ -32662,7 +32773,12 @@ in
       (sources."express-4.15.4" // {
         dependencies = [
           sources."content-type-1.0.4"
-          sources."finalhandler-1.0.5"
+          sources."debug-2.6.8"
+          (sources."finalhandler-1.0.6" // {
+            dependencies = [
+              sources."debug-2.6.9"
+            ];
+          })
           sources."qs-6.5.0"
         ];
       })
@@ -32705,7 +32821,7 @@ in
       sources."asap-2.0.6"
       sources."is-arguments-1.0.2"
       sources."bytes-3.0.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."depd-1.1.1"
       sources."http-errors-1.6.2"
       sources."iconv-lite-0.4.19"
@@ -32748,7 +32864,11 @@ in
       sources."path-to-regexp-0.1.7"
       sources."proxy-addr-1.1.5"
       sources."range-parser-1.2.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       sources."serve-static-1.12.4"
       sources."utils-merge-1.0.0"
       sources."forwarded-0.1.2"
@@ -32823,7 +32943,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -33184,7 +33304,7 @@ in
       sources."randombytes-2.0.5"
       sources."run-parallel-1.1.6"
       sources."buffer-alloc-unsafe-1.0.0"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."ms-2.0.0"
       sources."flatten-0.0.1"
       sources."fifo-0.1.4"
@@ -33535,7 +33655,7 @@ in
       sources."torrent-piece-1.1.1"
       (sources."random-access-file-1.8.1" // {
         dependencies = [
-          sources."debug-2.6.8"
+          sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
@@ -34040,7 +34160,7 @@ in
       sources."binary-extensions-1.10.0"
       sources."set-immediate-shim-1.0.1"
       sources."nan-2.7.0"
-      (sources."node-pre-gyp-0.6.37" // {
+      (sources."node-pre-gyp-0.6.38" // {
         dependencies = [
           sources."rimraf-2.6.2"
         ];
@@ -34053,9 +34173,9 @@ in
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       sources."rc-1.2.1"
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."semver-5.4.1"
-      sources."tape-4.8.0"
       sources."tar-2.2.1"
       (sources."tar-pack-3.4.0" // {
         dependencies = [
@@ -34084,78 +34204,76 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      sources."har-validator-4.2.1"
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      (sources."ajv-5.2.2" // {
+      (sources."ajv-4.11.8" // {
         dependencies = [
           sources."json-stable-stringify-1.0.1"
         ];
       })
-      sources."har-schema-2.0.0"
+      sources."har-schema-1.0.5"
       sources."co-4.6.0"
-      sources."fast-deep-equal-1.0.0"
-      sources."json-schema-traverse-0.3.1"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
-      sources."deep-equal-1.0.1"
-      sources."for-each-0.3.2"
-      sources."object-inspect-1.3.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."is-function-1.0.1"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
       sources."ms-2.0.0"
@@ -34317,7 +34435,7 @@ in
       sources."performance-now-2.1.0"
       sources."safe-buffer-5.1.1"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -34410,7 +34528,11 @@ in
       sources."node-version-1.1.0"
       sources."opn-5.1.0"
       sources."path-type-3.0.0"
-      sources."send-0.15.4"
+      (sources."send-0.15.4" // {
+        dependencies = [
+          sources."debug-2.6.8"
+        ];
+      })
       (sources."update-notifier-2.2.0" // {
         dependencies = [
           sources."chalk-1.1.3"
@@ -34466,7 +34588,7 @@ in
       sources."code-point-at-1.1.0"
       sources."number-is-nan-1.0.1"
       sources."address-1.0.3"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."ms-2.0.0"
       sources."graceful-fs-4.1.11"
       sources."jsonfile-4.0.0"
@@ -34520,6 +34642,7 @@ in
       (sources."compression-1.7.0" // {
         dependencies = [
           sources."bytes-2.5.0"
+          sources."debug-2.6.8"
         ];
       })
       sources."accepts-1.3.4"
@@ -34600,10 +34723,10 @@ in
     dependencies = [
       sources."express-5.0.0-alpha.5"
       sources."express-json5-0.1.0"
-      (sources."body-parser-1.18.1" // {
+      (sources."body-parser-1.18.2" // {
         dependencies = [
           sources."bytes-3.0.0"
-          sources."debug-2.6.8"
+          sources."debug-2.6.9"
           sources."iconv-lite-0.4.19"
           sources."qs-6.5.1"
           sources."raw-body-2.3.2"
@@ -34658,9 +34781,9 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      (sources."finalhandler-1.0.5" // {
+      (sources."finalhandler-1.0.6" // {
         dependencies = [
-          sources."debug-2.6.8"
+          sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
@@ -34724,7 +34847,7 @@ in
       sources."oauth-sign-0.8.2"
       sources."performance-now-2.1.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
@@ -34948,7 +35071,7 @@ in
       sources."dtrace-provider-0.6.0"
       sources."precond-0.2.3"
       sources."csv-generate-0.0.6"
-      sources."csv-parse-1.2.2"
+      sources."csv-parse-1.2.3"
       sources."stream-transform-0.1.2"
       sources."csv-stringify-0.0.8"
       sources."asn1-0.1.11"
@@ -35145,6 +35268,215 @@ in
     };
     production = true;
   };
+  typings = nodeEnv.buildNodePackage {
+    name = "typings";
+    packageName = "typings";
+    version = "2.1.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/typings/-/typings-2.1.1.tgz";
+      sha1 = "bacc69d255970a478e09f76c7f689975d535a78a";
+    };
+    dependencies = [
+      sources."archy-1.0.0"
+      sources."bluebird-3.5.0"
+      sources."chalk-1.1.3"
+      sources."cli-truncate-1.1.0"
+      sources."columnify-1.5.4"
+      sources."elegant-spinner-1.0.1"
+      sources."has-unicode-2.0.1"
+      sources."listify-1.0.0"
+      sources."log-update-1.0.2"
+      sources."minimist-1.2.0"
+      sources."promise-finally-3.0.0"
+      sources."typings-core-2.3.3"
+      sources."update-notifier-2.2.0"
+      sources."wordwrap-1.0.0"
+      sources."xtend-4.0.1"
+      sources."ansi-styles-2.2.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."has-ansi-2.0.0"
+      sources."strip-ansi-3.0.1"
+      sources."supports-color-2.0.0"
+      sources."ansi-regex-2.1.1"
+      sources."slice-ansi-1.0.0"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."strip-ansi-4.0.0"
+          sources."ansi-regex-3.0.0"
+        ];
+      })
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."wcwidth-1.0.1"
+      sources."defaults-1.0.3"
+      sources."clone-1.0.2"
+      sources."ansi-escapes-1.4.0"
+      sources."cli-cursor-1.0.2"
+      sources."restore-cursor-1.0.1"
+      sources."exit-hook-1.1.1"
+      sources."onetime-1.1.0"
+      sources."array-uniq-1.0.3"
+      sources."configstore-3.1.1"
+      sources."debug-2.6.9"
+      sources."detect-indent-5.0.0"
+      sources."graceful-fs-4.1.11"
+      sources."has-1.0.1"
+      sources."invariant-2.2.2"
+      sources."is-absolute-0.2.6"
+      sources."jspm-config-0.3.4"
+      sources."lockfile-1.0.3"
+      sources."make-error-cause-1.2.2"
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      sources."object.pick-1.3.0"
+      sources."parse-json-2.2.0"
+      sources."popsicle-9.1.0"
+      sources."popsicle-proxy-agent-3.0.0"
+      sources."popsicle-retry-3.2.1"
+      sources."popsicle-rewrite-1.0.0"
+      sources."popsicle-status-2.0.1"
+      sources."rc-1.2.1"
+      sources."rimraf-2.6.2"
+      sources."sort-keys-1.1.2"
+      sources."string-template-1.0.0"
+      sources."strip-bom-3.0.0"
+      sources."thenify-3.3.0"
+      sources."throat-3.2.0"
+      sources."touch-1.0.0"
+      sources."typescript-2.5.2"
+      sources."zip-object-0.1.0"
+      sources."dot-prop-4.2.0"
+      sources."make-dir-1.0.0"
+      sources."unique-string-1.0.0"
+      sources."write-file-atomic-2.3.0"
+      sources."xdg-basedir-3.0.0"
+      sources."is-obj-1.0.1"
+      sources."pify-2.3.0"
+      sources."crypto-random-string-1.0.0"
+      sources."imurmurhash-0.1.4"
+      sources."signal-exit-3.0.2"
+      sources."ms-2.0.0"
+      sources."function-bind-1.1.1"
+      sources."loose-envify-1.3.1"
+      sources."js-tokens-3.0.2"
+      sources."is-relative-0.2.1"
+      sources."is-windows-0.2.0"
+      sources."is-unc-path-0.1.2"
+      sources."unc-path-regex-0.1.2"
+      sources."any-promise-1.3.0"
+      sources."make-error-1.3.0"
+      sources."isobject-3.0.1"
+      sources."error-ex-1.3.1"
+      sources."is-arrayish-0.2.1"
+      sources."concat-stream-1.6.0"
+      sources."form-data-2.3.1"
+      sources."tough-cookie-2.3.3"
+      sources."inherits-2.0.3"
+      sources."typedarray-0.0.6"
+      sources."readable-stream-2.3.3"
+      sources."core-util-is-1.0.2"
+      sources."isarray-1.0.0"
+      sources."process-nextick-args-1.0.7"
+      sources."safe-buffer-5.1.1"
+      sources."string_decoder-1.0.3"
+      sources."util-deprecate-1.0.2"
+      sources."asynckit-0.4.0"
+      sources."combined-stream-1.0.5"
+      sources."mime-types-2.1.17"
+      sources."delayed-stream-1.0.0"
+      sources."mime-db-1.30.0"
+      sources."punycode-1.4.1"
+      sources."http-proxy-agent-1.0.0"
+      sources."https-proxy-agent-1.0.0"
+      sources."agent-base-2.1.1"
+      sources."extend-3.0.1"
+      sources."semver-5.0.3"
+      sources."deep-extend-0.4.2"
+      sources."ini-1.3.4"
+      sources."strip-json-comments-2.0.1"
+      sources."glob-7.1.2"
+      sources."fs.realpath-1.0.0"
+      sources."inflight-1.0.6"
+      sources."minimatch-3.0.4"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."wrappy-1.0.2"
+      sources."brace-expansion-1.1.8"
+      sources."balanced-match-1.0.0"
+      sources."concat-map-0.0.1"
+      sources."is-plain-obj-1.1.0"
+      sources."nopt-1.0.10"
+      sources."abbrev-1.1.0"
+      (sources."boxen-1.2.1" // {
+        dependencies = [
+          sources."chalk-2.1.0"
+          sources."ansi-styles-3.2.0"
+          sources."supports-color-4.4.0"
+        ];
+      })
+      sources."import-lazy-2.1.0"
+      sources."is-npm-1.0.0"
+      sources."latest-version-3.1.0"
+      sources."semver-diff-2.1.0"
+      sources."ansi-align-2.0.0"
+      sources."camelcase-4.1.0"
+      sources."cli-boxes-1.0.0"
+      sources."term-size-1.2.0"
+      (sources."widest-line-1.0.0" // {
+        dependencies = [
+          sources."string-width-1.0.2"
+          sources."is-fullwidth-code-point-1.0.0"
+        ];
+      })
+      sources."color-convert-1.9.0"
+      sources."color-name-1.1.3"
+      sources."has-flag-2.0.0"
+      sources."execa-0.7.0"
+      sources."cross-spawn-5.1.0"
+      sources."get-stream-3.0.0"
+      sources."is-stream-1.1.0"
+      sources."npm-run-path-2.0.2"
+      sources."p-finally-1.0.0"
+      sources."strip-eof-1.0.0"
+      sources."lru-cache-4.1.1"
+      sources."shebang-command-1.2.0"
+      sources."which-1.3.0"
+      sources."pseudomap-1.0.2"
+      sources."yallist-2.1.2"
+      sources."shebang-regex-1.0.0"
+      sources."isexe-2.0.0"
+      sources."path-key-2.0.1"
+      sources."code-point-at-1.1.0"
+      sources."number-is-nan-1.0.1"
+      (sources."package-json-4.0.1" // {
+        dependencies = [
+          sources."semver-5.4.1"
+        ];
+      })
+      sources."got-6.7.1"
+      sources."registry-auth-token-3.3.1"
+      sources."registry-url-3.1.0"
+      sources."create-error-class-3.0.2"
+      sources."duplexer3-0.1.4"
+      sources."is-redirect-1.0.0"
+      sources."is-retry-allowed-1.1.0"
+      sources."lowercase-keys-1.0.0"
+      sources."timed-out-4.0.1"
+      sources."unzip-response-2.0.1"
+      sources."url-parse-lax-1.0.0"
+      sources."capture-stack-trace-1.0.0"
+      sources."prepend-http-1.0.4"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "The TypeScript Definition Manager";
+      homepage = https://github.com/typings/typings;
+      license = "MIT";
+    };
+    production = true;
+  };
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
@@ -35186,6 +35518,7 @@ in
         dependencies = [
           sources."debug-2.6.8"
           sources."qs-6.5.0"
+          sources."serve-static-1.12.4"
         ];
       })
       (sources."express-session-1.15.5" // {
@@ -35296,7 +35629,13 @@ in
       })
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      sources."serve-static-1.12.4"
+      (sources."serve-static-1.12.6" // {
+        dependencies = [
+          sources."send-0.15.6"
+          sources."debug-2.6.9"
+          sources."fresh-0.5.2"
+        ];
+      })
       sources."signals-1.0.0"
       sources."snapsvg-0.5.1"
       sources."socket.io-2.0.3"
@@ -35374,9 +35713,9 @@ in
       sources."encodeurl-1.0.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      (sources."finalhandler-1.0.5" // {
+      (sources."finalhandler-1.0.6" // {
         dependencies = [
-          sources."debug-2.6.8"
+          sources."debug-2.6.9"
         ];
       })
       sources."fresh-0.5.0"
@@ -35707,7 +36046,7 @@ in
       sources."isstream-0.1.2"
       sources."performance-now-0.2.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."asynckit-0.4.0"
       sources."ajv-4.11.8"
       sources."har-schema-1.0.5"
@@ -36333,7 +36672,7 @@ in
       sources."balanced-match-1.0.0"
       sources."concat-map-0.0.1"
       sources."nan-2.7.0"
-      sources."node-pre-gyp-0.6.37"
+      sources."node-pre-gyp-0.6.38"
       sources."nopt-4.0.1"
       sources."npmlog-4.1.2"
       (sources."rc-1.2.1" // {
@@ -36341,14 +36680,10 @@ in
           sources."minimist-1.2.0"
         ];
       })
-      sources."request-2.82.0"
+      sources."request-2.81.0"
+      sources."hawk-3.1.3"
       sources."rimraf-2.6.2"
       sources."semver-5.4.1"
-      (sources."tape-4.8.0" // {
-        dependencies = [
-          sources."minimist-1.2.0"
-        ];
-      })
       sources."tar-2.2.1"
       sources."tar-pack-3.4.0"
       sources."abbrev-1.1.0"
@@ -36373,81 +36708,79 @@ in
       sources."deep-extend-0.4.2"
       sources."ini-1.3.4"
       sources."strip-json-comments-2.0.1"
-      sources."aws-sign2-0.7.0"
+      sources."aws-sign2-0.6.0"
       sources."aws4-1.6.0"
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.5"
       sources."extend-3.0.1"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.1"
-      sources."har-validator-5.0.3"
-      sources."hawk-6.0.2"
-      sources."http-signature-1.2.0"
+      sources."form-data-2.1.4"
+      (sources."har-validator-4.2.1" // {
+        dependencies = [
+          sources."ajv-4.11.8"
+        ];
+      })
+      sources."http-signature-1.1.1"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."json-stringify-safe-5.0.1"
       sources."mime-types-2.1.17"
       sources."oauth-sign-0.8.2"
-      sources."performance-now-2.1.0"
-      sources."qs-6.5.1"
+      sources."performance-now-0.2.0"
+      sources."qs-6.4.0"
       sources."stringstream-0.0.5"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."tunnel-agent-0.6.0"
       sources."uuid-3.1.0"
       sources."delayed-stream-1.0.0"
       sources."asynckit-0.4.0"
-      sources."har-schema-2.0.0"
-      sources."hoek-4.2.0"
-      sources."boom-4.3.1"
-      (sources."cryptiles-3.1.2" // {
+      sources."har-schema-1.0.5"
+      sources."assert-plus-0.2.0"
+      (sources."jsprim-1.4.1" // {
         dependencies = [
-          sources."boom-5.2.0"
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."sshpk-1.13.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
         ];
       })
-      sources."sntp-2.0.2"
-      sources."assert-plus-1.0.0"
-      sources."jsprim-1.4.1"
-      sources."sshpk-1.13.1"
       sources."extsprintf-1.3.0"
       sources."json-schema-0.2.3"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."asn1-0.2.3"
-      sources."dashdash-1.14.1"
-      sources."getpass-0.1.7"
+      (sources."dashdash-1.14.1" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
+      (sources."getpass-0.1.7" // {
+        dependencies = [
+          sources."assert-plus-1.0.0"
+        ];
+      })
       sources."jsbn-0.1.1"
       sources."tweetnacl-0.14.5"
       sources."ecc-jsbn-0.1.1"
       sources."bcrypt-pbkdf-1.0.1"
       sources."mime-db-1.30.0"
+      sources."hoek-2.16.3"
+      sources."boom-2.10.1"
+      sources."cryptiles-2.0.5"
+      sources."sntp-1.0.9"
       sources."glob-7.1.2"
       sources."fs.realpath-1.0.0"
       sources."inflight-1.0.6"
       sources."once-1.4.0"
       sources."wrappy-1.0.2"
-      sources."deep-equal-1.0.1"
-      sources."defined-1.0.0"
-      sources."for-each-0.3.2"
-      sources."function-bind-1.1.1"
-      sources."has-1.0.1"
-      sources."object-inspect-1.3.0"
-      sources."resolve-1.4.0"
-      sources."resumer-0.0.0"
-      sources."string.prototype.trim-1.1.2"
-      sources."through-2.3.8"
-      sources."is-function-1.0.1"
-      sources."path-parse-1.0.5"
-      sources."define-properties-1.1.2"
-      sources."es-abstract-1.8.2"
-      sources."foreach-2.0.5"
-      sources."object-keys-1.0.11"
-      sources."es-to-primitive-1.1.1"
-      sources."is-callable-1.1.3"
-      sources."is-regex-1.0.4"
-      sources."is-date-object-1.0.1"
-      sources."is-symbol-1.0.1"
       sources."block-stream-0.0.9"
       sources."fstream-1.0.11"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."fstream-ignore-1.0.5"
       sources."uid-number-0.0.6"
       sources."ms-2.0.0"
@@ -36755,7 +37088,7 @@ in
       sources."lodash.debounce-3.1.1"
       sources."os-name-1.0.3"
       sources."request-2.82.0"
-      sources."tough-cookie-2.3.2"
+      sources."tough-cookie-2.3.3"
       sources."uuid-3.1.0"
       (sources."mkdirp-0.5.1" // {
         dependencies = [
@@ -36896,7 +37229,7 @@ in
       sources."is-root-1.0.0"
       sources."is-docker-1.1.0"
       sources."arrify-1.0.1"
-      sources."debug-2.6.8"
+      sources."debug-2.6.9"
       sources."npmlog-2.0.4"
       sources."ms-2.0.0"
       sources."rx-4.1.0"

From 5f0a7cded718d0092229ba078cb7f0f7733bf636 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sat, 23 Sep 2017 04:23:23 +0200
Subject: [PATCH 199/533] nox: Add a temporary patch for the "wip" command

See #29684.
---
 pkgs/tools/package-management/nox/default.nix         |  2 ++
 .../tools/package-management/nox/nox-review-wip.patch | 11 +++++++++++
 2 files changed, 13 insertions(+)
 create mode 100644 pkgs/tools/package-management/nox/nox-review-wip.patch

diff --git a/pkgs/tools/package-management/nox/default.nix b/pkgs/tools/package-management/nox/default.nix
index f12af074d412..ed7ec74483f3 100644
--- a/pkgs/tools/package-management/nox/default.nix
+++ b/pkgs/tools/package-management/nox/default.nix
@@ -10,6 +10,8 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "1qcbhdnhdhhv7q6cqdgv0q55ic8fk18526zn2yb12x9r1s0lfp9z";
   };
 
+  patches = [ ./nox-review-wip.patch ];
+
   buildInputs = [ pythonPackages.pbr git ];
 
   propagatedBuildInputs = with pythonPackages; [
diff --git a/pkgs/tools/package-management/nox/nox-review-wip.patch b/pkgs/tools/package-management/nox/nox-review-wip.patch
new file mode 100644
index 000000000000..e82dc7a2c266
--- /dev/null
+++ b/pkgs/tools/package-management/nox/nox-review-wip.patch
@@ -0,0 +1,11 @@
+--- a/nox/review.py	2017-09-23 04:04:37.322484753 +0200
++++ a/nox/review.py	2017-09-23 04:18:31.582692181 +0200
+@@ -84,7 +84,7 @@
+     ctx.obj['dry_run'] = dry_run
+ 
+ 
+-@cli.command(short_help='difference between working tree and a commit')
++@cli.command('wip', short_help='difference between working tree and a commit')
+ @click.option('--against', default='HEAD')
+ @click.pass_context
+ @setup_nixpkgs_config

From 2948b570f5fda505c80c76b52033c0cc3998fd8b Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:07:06 +0930
Subject: [PATCH 200/533] maintainers.nix: Add myself

---
 lib/maintainers.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 3f7eae52f6b9..aba9eb0e2bcf 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -186,6 +186,7 @@
   ellis = "Ellis Whitehead <nixos@ellisw.net>";
   eperuffo = "Emanuele Peruffo <info@emanueleperuffo.com>";
   epitrochoid = "Mabry Cervin <mpcervin@uncg.edu>";
+  eqyiel = "Ruben Maher <r@rkm.id.au>";
   ericbmerritt = "Eric Merritt <eric@afiniate.com>";
   ericsagnes = "Eric Sagnes <eric.sagnes@gmail.com>";
   erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";

From 9a0155a241cbc89ef53ae168219a430667c130db Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:08:22 +0930
Subject: [PATCH 201/533] pythonPackages.blessed: init at 1.14.2

This is a dependency of awsebcli.
---
 .../python-modules/blessed/default.nix        | 21 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 23 insertions(+)
 create mode 100644 pkgs/development/python-modules/blessed/default.nix

diff --git a/pkgs/development/python-modules/blessed/default.nix b/pkgs/development/python-modules/blessed/default.nix
new file mode 100644
index 000000000000..2d1ac11f3b54
--- /dev/null
+++ b/pkgs/development/python-modules/blessed/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchPypi, six, wcwidth }:
+
+buildPythonPackage rec {
+  name = "${pname}-${version}";
+  pname = "blessed";
+  version = "1.14.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fv9f0074kxy1849h0kwwxw12sifpq3bv63pcz900zzjsigi4hi3";
+  };
+
+  propagatedBuildInputs = [ wcwidth six ];
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/jquast/blessed;
+    description = "A thin, practical wrapper around terminal capabilities in Python.";
+    maintainers = with maintainers; [ eqyiel ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9cf96d81f62a..bc09f0c1a373 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1470,6 +1470,8 @@ in {
     };
   };
 
+  blessed = callPackage ../development/python-modules/blessed {};
+
   # Build boost for this specific Python version
   # TODO: use separate output for libboost_python.so
   boost = pkgs.boost.override {inherit python;};

From 742de0bf24718c2f5a664d9c909e5aeae8d2c855 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:09:45 +0930
Subject: [PATCH 202/533] pythonPackages.cement: init at 2.8.2

This is a dependency of awsebcli.
---
 .../python-modules/cement/default.nix         | 23 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 25 insertions(+)
 create mode 100644 pkgs/development/python-modules/cement/default.nix

diff --git a/pkgs/development/python-modules/cement/default.nix b/pkgs/development/python-modules/cement/default.nix
new file mode 100644
index 000000000000..2ed704e34825
--- /dev/null
+++ b/pkgs/development/python-modules/cement/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "cement";
+  name = "${pname}-${version}";
+  version = "2.8.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1li2whjzfhbpg6fjb6r1r92fb3967p1xv6hqs3j787865h2ysrc7";
+  };
+
+  # Disable test tests since they depend on a memcached server running on
+  # 127.0.0.1:11211.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = http://builtoncement.com/;
+    description = "A CLI Application Framework for Python.";
+    maintainers = with maintainers; [ eqyiel ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index bc09f0c1a373..5ea6ae8e648a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1560,6 +1560,8 @@ in {
     };
   };
 
+  cement = callPackage ../development/python-modules/cement {};
+
   cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
     postPatch = ''
       substituteInPlace setup.py --replace "argparse" ""

From 41015822707540143db3f7d4a9ead56c7f5c8198 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:17:01 +0930
Subject: [PATCH 203/533] pythonPackages.tabulate: use fetchPypi

In order to make it nicer to override when a specific version is required for
Python derivations.
---
 pkgs/top-level/python-packages.nix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5ea6ae8e648a..04fd8d2ed11b 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -21107,10 +21107,11 @@ in {
 
   tabulate = buildPythonPackage rec {
     version = "0.7.7";
-    name = "tabulate-${version}";
+    pname = "tabulate";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/t/tabulate/${name}.tar.gz";
+    src = fetchPypi {
+      inherit pname version;
       sha256 = "83a0b8e17c09f012090a50e1e97ae897300a72b35e0c86c0b53d3bd2ae86d8c6";
     };
 

From 65aba6ed172b26ac97cf25c6fc123a7e58deca87 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:17:40 +0930
Subject: [PATCH 204/533] pythonPackages.semantic-version: use fetchPypi

In order to make it nicer to override when a specific version is required for
Python derivations.
---
 pkgs/top-level/python-packages.nix | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 04fd8d2ed11b..22823acee24a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -20318,9 +20318,12 @@ in {
   };
 
   semantic-version = buildPythonPackage rec {
-    name = "semantic_version-2.4.2";
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/s/semantic_version/${name}.tar.gz";
+    pname = "semantic_version";
+    version = "2.4.2";
+    name = "${pname}${version}";
+
+    src = self.fetchPypi {
+      inherit pname version;
       sha256 = "7e8b7fa74a3bc9b6e90b15b83b9bc2377c78eaeae3447516425f475d5d6932d2";
     };
 

From b1c4498b415f3b9cfec8f619c749eccbb5314e66 Mon Sep 17 00:00:00 2001
From: Ruben Maher <r@rkm.id.au>
Date: Fri, 1 Sep 2017 21:21:28 +0930
Subject: [PATCH 205/533] awsebcli: init at 3.10.5

---
 .../tools/virtualization/awsebcli/default.nix | 99 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 101 insertions(+)
 create mode 100644 pkgs/tools/virtualization/awsebcli/default.nix

diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
new file mode 100644
index 000000000000..91cb148d8fe8
--- /dev/null
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -0,0 +1,99 @@
+ { stdenv, python }:
+let
+
+  localPython = python.override {
+    packageOverrides = self: super: rec {
+      colorama = super.colorama.overridePythonAttrs (oldAttrs: rec {
+        version = "0.3.7";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0avqkn6362v7k2kg3afb35g4sfdvixjgy890clip4q174p9whhz0";
+        };
+      });
+
+      docker = super.docker.overridePythonAttrs (oldAttrs: rec {
+          pname = "docker-py";
+          version = "1.7.2";
+          name = "${pname}-${version}";
+
+          src = super.fetchPypi {
+            inherit pname version;
+            sha256 = "0k6hm3vmqh1d3wr9rryyif5n4rzvcffdlb1k4jvzp7g4996d3ccm";
+          };
+        });
+
+      pathspec = super.pathspec.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.0";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "07yx1gxj9v1iyyiy5fhq2wsmh4qfbrx158wi7jb0nx6lah80ffma";
+        };
+      });
+
+      requests = super.requests.overridePythonAttrs (oldAttrs: rec {
+        version = "2.9.1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5";
+        };
+      });
+
+      semantic-version = super.semantic-version.overridePythonAttrs (oldAttrs: rec {
+        version = "2.5.0";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname; inherit version;
+          sha256 = "0p5n3d6blgkncxdz00yxqav0cis87fisdkirjm0ljjh7rdfx7aiv";
+        };
+      });
+
+      tabulate = super.tabulate.overridePythonAttrs (oldAttrs: rec {
+        version = "0.7.5";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch";
+        };
+      });
+    };
+  };
+in with localPython.pkgs; buildPythonApplication rec {
+  name = "${pname}-${version}";
+  pname = "awsebcli";
+  version = "3.10.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1g53z2flhp3navdf8lw6rgh99akf3k0ng1zkkqswvh66zswkxnwn";
+  };
+
+  checkInputs = [
+    pytest mock nose pathspec colorama requests docutils
+  ];
+
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    blessed botocore cement colorama docker dockerpty docopt pathspec pyyaml
+    requests semantic-version setuptools tabulate termcolor websocket_client
+  ];
+
+  postInstall = ''
+    mkdir -p $out/etc/bash_completion.d
+    mv $out/bin/eb_completion.bash $out/etc/bash_completion.d
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://aws.amazon.com/elasticbeanstalk/;
+    description = "A command line interface for Elastic Beanstalk.";
+    maintainers = with maintainers; [ eqyiel ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7a6bd4f01303..cc8559b5739a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -511,6 +511,8 @@ with pkgs;
 
   awscli = pythonPackages.awscli; # Should be moved out of python-packages.nix
 
+  awsebcli = callPackage ../tools/virtualization/awsebcli {};
+
   awslogs = callPackage ../tools/admin/awslogs { };
 
   aws_shell = python2Packages.aws_shell; # Should be moved out of python-packages.nix

From 5e916914efef3444c54a01a7ebe962a01ef80a9f Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sat, 23 Sep 2017 08:22:58 +0200
Subject: [PATCH 206/533] python.pkgs: alias dateutil to python-dateutil

---
 pkgs/top-level/python-packages.nix | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 22823acee24a..ccfc94ef6824 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -4667,7 +4667,10 @@ in {
     };
   };
 
-  dateutil = callPackage ../development/python-modules/dateutil { };
+  # Actual name of package
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
   # Buildbot 0.8.7p1 needs dateutil==1.5
   dateutil_1_5 = buildPythonPackage (rec {

From 805fa2e667d597469f55be3f315a2747589455b7 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Sat, 23 Sep 2017 08:23:14 +0200
Subject: [PATCH 207/533] python.pkgs.botocore: fix dependencies

---
 pkgs/top-level/python-packages.nix | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ccfc94ef6824..e94da936af31 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2156,13 +2156,15 @@ in {
       sha256 = "1fgg28halsy4g43wjpkbd6l0wqiwyzkd4zjrzbbyzw4dxbsf3xfm";
     };
 
-    propagatedBuildInputs =
-      [ self.dateutil
-        self.requests
-        self.jmespath
-      ];
+    propagatedBuildInputs = with self; [
+      dateutil
+      jmespath
+      docutils
+      ordereddict
+      simplejson
+    ];
 
-    buildInputs = with self; [ docutils mock nose ];
+    checkInputs = with self; [ mock nose ];
 
     checkPhase = ''
       nosetests -v

From 5c4ddc30d3fc196188b953f43e117e86b79d6637 Mon Sep 17 00:00:00 2001
From: Matthieu Coudron <mattator@gmail.com>
Date: Sat, 23 Sep 2017 16:51:25 +0900
Subject: [PATCH 208/533] universal-ctags: 2017-01-08 -> 2017-09-22

---
 pkgs/development/tools/misc/universal-ctags/default.nix | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/tools/misc/universal-ctags/default.nix b/pkgs/development/tools/misc/universal-ctags/default.nix
index 1aedb3538d8f..ceff549f3736 100644
--- a/pkgs/development/tools/misc/universal-ctags/default.nix
+++ b/pkgs/development/tools/misc/universal-ctags/default.nix
@@ -2,21 +2,18 @@
 
 stdenv.mkDerivation rec {
   name = "universal-ctags-${version}";
-  version = "2017-01-08";
+  version = "2017-09-22";
 
   src = fetchFromGitHub {
     owner = "universal-ctags";
     repo = "ctags";
-    rev = "9668032d8715265ca5b4ff16eb2efa8f1c450883";
-    sha256 = "0nwcf5mh3ba0g23zw7ym73pgpfdass412k2fy67ryr9vnc709jkj";
+    rev = "b9537289952cc7b26526aaff3094599d714d1729";
+    sha256 = "1kbw9ycl2ddzpfs1v4rbqa4gdhw4inrisf4awyaxb7zxfxmbzk1g";
   };
 
   nativeBuildInputs = [ pythonPackages.docutils ];
   buildInputs = [ autoreconfHook pkgconfig ];
 
-  # remove when https://github.com/universal-ctags/ctags/pull/1267 is merged
-  patches = [ ./sed-test.patch ];
-
   autoreconfPhase = ''
     ./autogen.sh --tmpdir
   '';

From f7d7c7bedfa54b97420b4b68980536cf5ba927ca Mon Sep 17 00:00:00 2001
From: Michael Raskin <7c6f434c@mail.ru>
Date: Sat, 23 Sep 2017 10:14:20 +0200
Subject: [PATCH 209/533] singular: use gcc5

Progress on: #28643
Fixes: #29682
---
 pkgs/applications/science/math/singular/default.nix | 4 ++--
 pkgs/top-level/all-packages.nix                     | 5 ++++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index b098da060e07..8cd9355a0f63 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -15,8 +15,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoconf bison pkgconfig ];
 
   preConfigure = ''
-    find . -exec sed -e 's@/bin/rm@${coreutils}&@g' -i '{}' ';'
-    find . -exec sed -e 's@/bin/uname@${coreutils}&@g' -i '{}' ';'
+    find . -type f -exec sed -e 's@/bin/rm@${coreutils}&@g' -i '{}' ';'
+    find . -type f -exec sed -e 's@/bin/uname@${coreutils}&@g' -i '{}' ';'
     ${stdenv.lib.optionalString asLibsingular ''NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DLIBSINGULAR"''}
   '';
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cc8559b5739a..3db397447f15 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18565,9 +18565,12 @@ with pkgs;
     inherit (gnome3) gtksourceview;
   };
 
-  singular = callPackage ../applications/science/math/singular {};
+  singular = callPackage ../applications/science/math/singular {
+    stdenv = overrideCC stdenv gcc5;
+  };
   libsingular = callPackage ../applications/science/math/singular {
     asLibsingular = true;
+    stdenv = overrideCC stdenv gcc5;
   };
 
   scilab = callPackage ../applications/science/math/scilab {

From 692fcd9f53cc2c19cfe485ef1a0d67437e52e544 Mon Sep 17 00:00:00 2001
From: taku0 <mxxouy6x3m_github@tatapa.org>
Date: Sat, 23 Sep 2017 17:47:12 +0900
Subject: [PATCH 210/533] oraclejdk: add version 9

Oracle JDK 9 does not seems to contain jre directory, so oraclejre9
package now uses a dedicated archive file.

There is no 32-bit version nor arm version (yet). If Oracle releases
them, I will update the package.
---
 .../compilers/oraclejdk/jdk9-linux.nix        | 175 ++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  15 +-
 2 files changed, 188 insertions(+), 2 deletions(-)
 create mode 100644 pkgs/development/compilers/oraclejdk/jdk9-linux.nix

diff --git a/pkgs/development/compilers/oraclejdk/jdk9-linux.nix b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
new file mode 100644
index 000000000000..7f0a5750c0e8
--- /dev/null
+++ b/pkgs/development/compilers/oraclejdk/jdk9-linux.nix
@@ -0,0 +1,175 @@
+{ swingSupport ? true
+, stdenv
+, requireFile
+, makeWrapper
+, unzip
+, file
+, xorg ? null
+, packageType ? "JDK" # JDK, JRE, or ServerJRE
+, pluginSupport ? true
+, installjce ? false
+, glib
+, libxml2
+, ffmpeg_2
+, libxslt
+, mesa_noglu
+, freetype
+, fontconfig
+, gtk2
+, pango
+, cairo
+, alsaLib
+, atk
+, gdk_pixbuf
+, zlib
+, elfutils
+, setJavaClassPath
+}:
+
+assert stdenv.system == "x86_64-linux";
+assert swingSupport -> xorg != null;
+
+let
+  version = "9";
+
+  downloadUrlBase = http://www.oracle.com/technetwork/java/javase/downloads;
+
+  jce =
+    if installjce then
+      requireFile {
+        name = "jce_policy-8.zip";
+        url = "${downloadUrlBase}/jce8-download-2133166.html";
+        sha256 = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
+      }
+    else
+      "";
+
+  rSubPaths = [
+    "lib/jli"
+    "lib/server"
+    "lib"
+  ];
+
+in
+
+let result = stdenv.mkDerivation rec {
+  name = if packageType == "JDK"       then "oraclejdk-${version}"
+    else if packageType == "JRE"       then "oraclejre-${version}"
+    else if packageType == "ServerJRE" then "oracleserverjre-${version}"
+    else abort "unknown package Type ${packageType}";
+
+  src =
+    if packageType == "JDK" then
+      requireFile {
+        name = "jdk-${version}_linux-x64_bin.tar.gz";
+        url =  "${downloadUrlBase}/jdk9-downloads-3848520.html";
+        sha256 = "0vbgy7h9h089l3xh6sl57v57g28x1djyiigqs4z6gh7wahx7hv8w";
+      }
+    else if packageType == "JRE" then
+      requireFile {
+        name = "jre-${version}_linux-x64_bin.tar.gz";
+        url = "${downloadUrlBase}/jre9-downloads-3848532.html";
+        sha256 = "18i4jjb6sby67xg5ql6dkk3ja1nackbb23g1bnp522450nclpxdb";
+      }
+    else if packageType == "ServerJRE" then
+      requireFile {
+        name = "serverjre-${version}_linux-x64_bin.tar.gz";
+        url = "${downloadUrlBase}/server-jre9-downloads-3848530.html";
+        sha256 = "01bxi7lx13lhlpbifw93b6r7a9bayiykw8kzwlyyqi8pz3pw8c5h";
+      }
+    else abort "unknown package Type ${packageType}";
+
+  nativeBuildInputs = [ file ]
+    ++ stdenv.lib.optional installjce unzip;
+
+  buildInputs = [ makeWrapper ];
+
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = 1;
+
+  installPhase = ''
+    cd ..
+
+    # Set PaX markings
+    exes=$(file $sourceRoot/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
+    for file in $exes; do
+      paxmark m "$file"
+      # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
+      ${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
+    done
+
+    mv $sourceRoot $out
+
+    shopt -s extglob
+    for file in $out/*
+    do
+      if test -f $file ; then
+        rm $file
+      fi
+    done
+
+    if test -n "${jce}"; then
+      unzip ${jce}
+      cp -v UnlimitedJCEPolicy*/*.jar $out/lib/security
+    fi
+
+    if test -z "$pluginSupport"; then
+      rm -f $out/bin/javaws
+    fi
+
+    mkdir $out/lib/plugins
+    ln -s $out/lib/libnpjp2.so $out/lib/plugins
+
+    # for backward compatibility
+    ln -s $out $out/jre
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-native-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath+="''${rpath:+:}${stdenv.lib.concatStringsSep ":" (map (a: "$out/${a}") rSubPaths)}"
+
+    # set all the dynamic linkers
+    find $out -type f -perm -0100 \
+        -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "$rpath" {} \;
+
+    find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
+
+    # Oracle Java Mission Control needs to know where libgtk-x11 and related is
+    if test -x $out/bin/jmc; then
+      wrapProgram "$out/bin/jmc" \
+          --suffix-each LD_LIBRARY_PATH ':' "$rpath"
+    fi
+  '';
+
+  /**
+   * libXt is only needed on amd64
+   */
+  libraries =
+    [stdenv.cc.libc glib libxml2 ffmpeg_2 libxslt mesa_noglu xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk zlib elfutils] ++
+    (if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
+
+  rpath = stdenv.lib.strings.makeLibraryPath libraries;
+
+  passthru.mozillaPlugin = "/lib/plugins";
+
+  passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
+
+  passthru.home = result;
+
+  # for backward compatibility
+  passthru.architecture = "";
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ]; # some inherit jre.meta.platforms
+  };
+
+}; in result
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6bffd358b180..da7dd1fcf363 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5874,12 +5874,18 @@ with pkgs;
 
   oraclejdk8psu = pkgs.oraclejdk8psu_distro true false;
 
+  oraclejdk9 = pkgs.oraclejdk9distro "JDK" false;
+
   oraclejre = lowPrio (pkgs.jdkdistro false false);
 
   oraclejre8 = lowPrio (pkgs.oraclejdk8distro false false);
 
   oraclejre8psu = lowPrio (pkgs.oraclejdk8psu_distro false false);
 
+  oraclejre9 = lowPrio (pkgs.oraclejdk9distro "JRE" false);
+
+  oracleserverjre9 = lowPrio (pkgs.oraclejdk9distro "ServerJRE" false);
+
   jrePlugin = jre8Plugin;
 
   jre8Plugin = lowPrio (pkgs.oraclejdk8distro false true);
@@ -5894,12 +5900,17 @@ with pkgs;
   oraclejdk8distro = installjdk: pluginSupport:
     assert supportsJDK;
     (if pluginSupport then appendToName "with-plugin" else x: x)
-      (callPackage ../development/compilers/oraclejdk/jdk8cpu-linux.nix { inherit installjdk; });
+      (callPackage ../development/compilers/oraclejdk/jdk8cpu-linux.nix { inherit installjdk pluginSupport; });
 
   oraclejdk8psu_distro = installjdk: pluginSupport:
     assert supportsJDK;
     (if pluginSupport then appendToName "with-plugin" else x: x)
-      (callPackage ../development/compilers/oraclejdk/jdk8psu-linux.nix { inherit installjdk; });
+      (callPackage ../development/compilers/oraclejdk/jdk8psu-linux.nix { inherit installjdk pluginSupport; });
+
+  oraclejdk9distro = packageType: pluginSupport:
+    assert supportsJDK;
+    (if pluginSupport then appendToName "with-plugin" else x: x)
+      (callPackage ../development/compilers/oraclejdk/jdk9-linux.nix { inherit packageType pluginSupport; });
 
   jikes = callPackage ../development/compilers/jikes { };
 

From 35f205a4b624bceca7c53b9c19ddac5f37a5ae4c Mon Sep 17 00:00:00 2001
From: Antoine Eiche <lewo@abesis.fr>
Date: Fri, 22 Sep 2017 08:55:24 +0200
Subject: [PATCH 211/533] dockerTools.buildImage: Switch to the format image
 generated by Skopeo

We were using 'Combined Image JSON + Filesystem Changeset Format' [1] to
unpack and pack image and this patch switches to the format used by the registry.

We used the 'repository' file which is not generated by Skopeo when it
pulls an image. Moreover, all information of this file are also in the
manifest.json file.
We then use the manifest.json file instead of 'repository' file. Note
also the manifest.json file is required to push an image with Skopeo.

Fix #29636

[1] https://github.com/moby/moby/blob/749d90e10f989802638ae542daf54257f3bf71f2/image/spec/v1.1.md#combined-image-json--filesystem-changeset-format
---
 pkgs/build-support/docker/default.nix | 111 ++++++++------------------
 1 file changed, 34 insertions(+), 77 deletions(-)

diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 267a2812a2a5..843d6d6b5ddb 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -137,7 +137,7 @@ rec {
         };
         inherit fromImage fromImageName fromImageTag;
 
-        buildInputs = [ utillinux e2fsprogs jshon rsync ];
+        buildInputs = [ utillinux e2fsprogs jshon rsync jq ];
       } ''
       rm -rf $out
 
@@ -146,44 +146,29 @@ rec {
       mount /dev/${vmTools.hd} disk
       cd disk
 
+      layers=""
       if [[ -n "$fromImage" ]]; then
         echo "Unpacking base image..."
         mkdir image
         tar -C image -xpf "$fromImage"
-
-        # If the image name isn't set, read it from the image repository json.
-        if [[ -z "$fromImageName" ]]; then
-          fromImageName=$(jshon -k < image/repositories | head -n 1)
-          echo "From-image name wasn't set. Read $fromImageName."
-        fi
-
-        # If the tag isn't set, use the name as an index into the json
-        # and read the first key found.
-        if [[ -z "$fromImageTag" ]]; then
-          fromImageTag=$(jshon -e $fromImageName -k < image/repositories \
-                         | head -n1)
-          echo "From-image tag wasn't set. Read $fromImageTag."
-        fi
-
-        # Use the name and tag to get the parent ID field.
-        parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                   < image/repositories)
+        layers=$(jq -r '.[0].Layers | join(" ")' image/manifest.json)
       fi
 
-      # Unpack all of the parent layers into the image.
+      # Unpack all of the layers into the image.
+      # Layer list is ordered starting from the base image
       lowerdir=""
-      while [[ -n "$parentID" ]]; do
-        echo "Unpacking layer $parentID"
-        mkdir -p image/$parentID/layer
-        tar -C image/$parentID/layer -xpf image/$parentID/layer.tar
-        rm image/$parentID/layer.tar
+      for layer in $layers; do
+        echo "Unpacking layer $layer"
+        layerDir=image/$(echo $layer | cut -d':' -f2)"_unpacked"
+        mkdir -p $layerDir
+        tar -C $layerDir -xpf image/$layer
+        chmod a+w image/$layer
+        rm image/$layer
 
-        find image/$parentID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \;
+        find $layerDir -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \;
 
         # Get the next lower directory and continue the loop.
-        lowerdir=$lowerdir''${lowerdir:+:}image/$parentID/layer
-        parentID=$(cat image/$parentID/json \
-                  | (jshon -e parent -u 2>/dev/null || true))
+        lowerdir=$lowerdir''${lowerdir:+:}$layerDir
       done
 
       mkdir work
@@ -461,26 +446,17 @@ rec {
 
         mkdir image
         touch baseFiles
+        layers=""
         if [[ -n "$fromImage" ]]; then
           echo "Unpacking base image..."
           tar -C image -xpf "$fromImage"
-          # Do not import the base image configuration and manifest
-          chmod a+w image image/*.json
-          rm -f image/*.json
-
-          if [[ -z "$fromImageName" ]]; then
-            fromImageName=$(jshon -k < image/repositories|head -n1)
-          fi
-          if [[ -z "$fromImageTag" ]]; then
-            fromImageTag=$(jshon -e $fromImageName -k \
-                           < image/repositories|head -n1)
-          fi
-          parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                     < image/repositories)
-
-          for l in image/*/layer.tar; do
-            ls_tar $l >> baseFiles
+          config=$(jq -r '.[0].Config' image/manifest.json)
+          layers=$(jq -r '.[0].Layers | join(" ")' image/manifest.json)
+          for l in $layers; do
+            ls_tar image/$l >> baseFiles
           done
+          chmod u+w image image/$config
+          rm image/$config
         fi
 
         chmod -R ug+rw image
@@ -507,47 +483,28 @@ rec {
         tar -rpf temp/layer.tar --mtime="@$SOURCE_DATE_EPOCH" \
           --owner=0 --group=0 --no-recursion --files-from newFiles
 
-        echo "Adding meta..."
+        gzip temp/layer.tar
+        layerID="sha256:$(sha256sum temp/layer.tar.gz | cut -d ' ' -f 1)"
+        mv temp/layer.tar.gz image/$layerID
 
-        # If we have a parentID, add it to the json metadata.
-        if [[ -n "$parentID" ]]; then
-          cat temp/json | jshon -s "$parentID" -i parent > tmpjson
-          mv tmpjson temp/json
-        fi
-
-        # Take the sha256 sum of the generated json and use it as the layer ID.
-        # Compute the size and add it to the json under the 'Size' field.
-        layerID=$(sha256sum temp/json|cut -d ' ' -f 1)
-        size=$(stat --printf="%s" temp/layer.tar)
-        cat temp/json | jshon -s "$layerID" -i id -n $size -i Size > tmpjson
-        mv tmpjson temp/json
-
-        # Use the temp folder we've been working on to create a new image.
-        mv temp image/$layerID
-
-        # Create image json and image manifest
+        echo "Generating image configuration and manifest..."
         imageJson=$(cat ${baseJson} | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}")
         manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]")
-        currentID=$layerID
-        while [[ -n "$currentID" ]]; do
-          layerChecksum=$(sha256sum image/$currentID/layer.tar | cut -d ' ' -f1)
-          imageJson=$(echo "$imageJson" | jq ".history |= [{\"created\": \"${created}\"}] + .")
-          imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= [\"sha256:$layerChecksum\"] + .")
-          manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= [\"$currentID/layer.tar\"] + .")
 
-          currentID=$(cat image/$currentID/json | (jshon -e parent -u 2>/dev/null || true))
+        # The layer list is ordered starting from the base image
+        layers=$(echo $layers $layerID)
+        for i in $(echo $layers); do
+          imageJson=$(echo "$imageJson" | jq ".history |= [{\"created\": \"${created}\"}] + .")
+          diffId=$(gzip -dc image/$i | sha256sum | cut -d" " -f1)
+          imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= [\"sha256:$diffId\"] + .")
+          manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= [\"$i\"] + .")
         done
 
         imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1)
-        echo "$imageJson" > "image/$imageJsonChecksum.json"
-        manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"$imageJsonChecksum.json\"")
+        echo "$imageJson" > "image/sha256:$imageJsonChecksum"
+        manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"sha256:$imageJsonChecksum\"")
         echo "$manifestJson" > image/manifest.json
 
-        # Store the json under the name image/repositories.
-        jshon -n object \
-          -n object -s "$layerID" -i "$imageTag" \
-          -i "$imageName" > image/repositories
-
         # Make the image read-only.
         chmod -R a-w image
 

From fc82bad4a91ddeee5a7b79d7615c6ec94753ffa6 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Sat, 8 Jul 2017 10:04:26 -0400
Subject: [PATCH 212/533] gerbil: 0.12-DEV -> 0.12-DEV-777-gd855915

---
 pkgs/development/compilers/gerbil/default.nix | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/compilers/gerbil/default.nix b/pkgs/development/compilers/gerbil/default.nix
index 22047b663d04..59cafee3b3a9 100644
--- a/pkgs/development/compilers/gerbil/default.nix
+++ b/pkgs/development/compilers/gerbil/default.nix
@@ -2,23 +2,27 @@
   coreutils, rsync, bash,
   openssl, zlib, sqlite, libxml2, libyaml, libmysql, lmdb, leveldb }:
 
+# TODO: distinct packages for gerbil-release and gerbil-devel
+
 stdenv.mkDerivation rec {
   name    = "gerbil-${version}";
 
-  version = "0.12-DEV";
+  version = "0.12-DEV-777-gd855915";
   src = fetchgit {
     url = "https://github.com/vyzo/gerbil.git";
-    rev = "3657b6e940ea248e0b312f276590e38ff68997e7";
-    sha256 = "11ys7082ghkm4yikz4qxmv3jpxcr42jfi0jhjw1mpzbqdg6004w2";
+    rev = "9db6187dc996eec4087f83b86339e7b17bb69bad";
+    sha256 = "1hqmsy77d62dvil3az4vdr0rmwvxhinjl1dbcxzamz2c2kcjv1jg";
   };
 
   buildInputs = [
-    gambit openssl
+    gambit
     coreutils rsync bash
-    zlib openssl zlib sqlite libxml2 libyaml libmysql lmdb leveldb
+    openssl zlib sqlite libxml2 libyaml libmysql lmdb leveldb
   ];
 
   postPatch = ''
+    echo '(define (gerbil-version-string) "v${version}")' > src/gerbil/runtime/gx-version.scm
+
     patchShebangs .
 
     find . -type f -executable -print0 | while IFS= read -r -d ''$'\0' f; do

From 7c7f8c9c1d3d659e3b3fe51bfd6b4800ee944a35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sat, 23 Sep 2017 14:14:13 +0200
Subject: [PATCH 213/533] knot-*: simplify lmdb dependency

Partly thanks to lmdb.pc, partly thanks to 84bd2f4
(hopefully; untested on Darwin).
---
 pkgs/servers/dns/knot-dns/default.nix      | 8 ++------
 pkgs/servers/dns/knot-resolver/default.nix | 3 +--
 2 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 0b556a0859c8..1df36cd37c7b 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -20,17 +20,13 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gnutls jansson liburcu libidn
     nettle libedit
-    libiconv
+    libiconv lmdb
     # without sphinx &al. for developer documentation
   ]
-    # Use embedded lmdb there for now, as detection is broken on Darwin somehow.
-    ++ optionals stdenv.isLinux [ libcap_ng systemd lmdb ]
+    ++ optionals stdenv.isLinux [ libcap_ng systemd ]
     ++ libintlOrEmpty
     ++ optional stdenv.isDarwin zlib; # perhaps due to gnutls
 
-  # Not ideal but seems to work on Linux.
-  configureFlags = optional stdenv.isLinux "--with-lmdb=${stdenv.lib.getLib lmdb}";
-
   enableParallelBuilding = true;
 
   CFLAGS = [ "-O2" "-DNDEBUG" ];
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 6130550917e6..44c8b933400e 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -24,8 +24,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig which makeWrapper hexdump ];
 
   # http://knot-resolver.readthedocs.io/en/latest/build.html#requirements
-  buildInputs = [ knot-dns luajit libuv gnutls nettle ]
-    ++ optional stdenv.isLinux lmdb # system lmdb causes some problems on Darwin
+  buildInputs = [ knot-dns luajit libuv gnutls nettle lmdb ]
     ++ optional doInstallCheck cmocka
     ++ optional stdenv.isLinux systemd # sd_notify
     ++ optionals extraFeatures [

From d6879f930a97648113f7b4a03c04c9a4ce17c2d9 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sat, 23 Sep 2017 15:37:28 +0200
Subject: [PATCH 214/533] radsecproxy: fix license

---
 pkgs/tools/networking/radsecproxy/default.nix | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/pkgs/tools/networking/radsecproxy/default.nix b/pkgs/tools/networking/radsecproxy/default.nix
index 9b1890110bbf..0ed1150159d2 100644
--- a/pkgs/tools/networking/radsecproxy/default.nix
+++ b/pkgs/tools/networking/radsecproxy/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-
   name = "radsecproxy-${version}";
   version = "1.6.9";
 
@@ -21,10 +20,8 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = https://software.nordu.net/radsecproxy/;
     description = "A generic RADIUS proxy that supports both UDP and TLS (RadSec) RADIUS transports.";
-    license = licenses.bsd;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ sargon ];
     platforms = with platforms; linux;
   };
-
 }
-

From de1480e079974b06d41a5a8c2c3de01320833d16 Mon Sep 17 00:00:00 2001
From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
Date: Fri, 22 Sep 2017 22:19:20 -0400
Subject: [PATCH 215/533] pythonPackages.simanneal: init at 0.4.1

---
 .../python-modules/simanneal/default.nix      | 19 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 21 insertions(+)
 create mode 100644 pkgs/development/python-modules/simanneal/default.nix

diff --git a/pkgs/development/python-modules/simanneal/default.nix b/pkgs/development/python-modules/simanneal/default.nix
new file mode 100644
index 000000000000..66a9628673b3
--- /dev/null
+++ b/pkgs/development/python-modules/simanneal/default.nix
@@ -0,0 +1,19 @@
+{ lib, fetchPypi, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "simanneal";
+  version = "0.4.1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ib1hv2adq6x25z13nb4s1asci6dqarpyhpdq144y2rqqff2m01x";
+  };
+
+  meta = {
+    description = "A python implementation of the simulated annealing optimization technique";
+    homepage = https://github.com/perrygeo/simanneal;
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index fdb65032e7bb..69508d1f5432 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -19512,6 +19512,8 @@ in {
     };
   };
 
+  simanneal = callPackage ../development/python-modules/simanneal { };
+
   simplebayes = buildPythonPackage rec {
     name = "simplebayes-${version}";
     version = "1.5.8";

From a358c43975108a3df8d9d79b0766f103f4fb2a82 Mon Sep 17 00:00:00 2001
From: Robert Scott <code@humanleg.org.uk>
Date: Sat, 23 Sep 2017 15:15:48 +0100
Subject: [PATCH 216/533] python.pkgs.pyscss: 1.3.4 -> 1.3.5

this also:
 - enables tests (properly)
 - fixes build on python 3.6
---
 pkgs/top-level/python-packages.nix | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e94da936af31..9513b3e8f10a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -17797,17 +17797,25 @@ in {
 
   pyscss = buildPythonPackage rec {
     name = "pyScss-${version}";
-    version = "1.3.4";
+    version = "1.3.5";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyScss/${name}.tar.gz";
-      sha256 = "03lcp853kgr66aqrw2jd1q9jhs9h049w7zlwp7bfmly7xh832cnh";
+    src = pkgs.fetchFromGitHub {
+      sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
+      rev = "v1.3.5";
+      repo = "pyScss";
+      owner = "Kronuz";
     };
 
+    checkInputs = with self; [ pytest ];
+
     propagatedBuildInputs = with self; [ six ]
       ++ (optionals (pythonOlder "3.4") [ enum34 pathlib ])
       ++ (optionals (pythonOlder "2.7") [ ordereddict ]);
 
+    checkPhase = ''
+      py.test
+    '';
+
     meta = {
       description = "A Scss compiler for Python";
       homepage = http://pyscss.readthedocs.org/en/latest/;

From 3a58e41e43a80f986b1613f7db878e130d8e5d1c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
Date: Tue, 12 Sep 2017 11:31:29 +0200
Subject: [PATCH 217/533] nixos/gitolite: use group 'gitolite' instead of
 'nogroup'

Having files (git repositories) owned by 'nogroup' is a bad idea.
---
 nixos/modules/misc/ids.nix               |  2 +-
 nixos/modules/services/misc/gitolite.nix | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 0f3b8bcab8b0..508a76d3cab5 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -426,7 +426,7 @@
       teamspeak = 124;
       influxdb = 125;
       nsd = 126;
-      #gitolite = 127; # unused
+      gitolite = 127;
       znc = 128;
       polipo = 129;
       mopidy = 130;
diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix
index d803a4e0bf12..6bb8adeccf79 100644
--- a/nixos/modules/services/misc/gitolite.nix
+++ b/nixos/modules/services/misc/gitolite.nix
@@ -85,6 +85,14 @@ in
           Gitolite user account. This is the username of the gitolite endpoint.
         '';
       };
+
+      group = mkOption {
+        type = types.str;
+        default = "gitolite";
+        description = ''
+          Primary group of the Gitolite user account.
+        '';
+      };
     };
   };
 
@@ -121,8 +129,10 @@ in
       home            = cfg.dataDir;
       createHome      = true;
       uid             = config.ids.uids.gitolite;
+      group           = cfg.group;
       useDefaultShell = true;
     };
+    users.extraGroups."${cfg.group}".gid = config.ids.gids.gitolite;
 
     systemd.services."gitolite-init" = {
       description = "Gitolite initialization";

From 99f759de1c6c943fd747afd8fb896a0d65ae4ed8 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Sat, 23 Sep 2017 16:36:05 +0200
Subject: [PATCH 218/533] Revert "nixos: add option for bind to not resolve
 local queries (#29503)"

This reverts commit 670b4e29adc16e0a29aa5b4c126703dcca56aeb6. The change
added in this commit was controversial when it was originally suggested
in https://github.com/NixOS/nixpkgs/pull/29205. Then that PR was closed
and a new one opened, https://github.com/NixOS/nixpkgs/pull/29503,
effectively circumventing the review process. I don't agree with this
modification. Adding an option 'resolveLocalQueries' to tell the locally
running name server that it should resolve local DNS queries feels
outright nuts. I agree that the current state is unsatisfactory and that
it should be improved, but this is not the right way.

(cherry picked from commit 23a021d12e8f939cd0bfddb1c7adeb125028c1e3)
---
 nixos/modules/config/networking.nix                 | 4 +---
 nixos/modules/services/networking/bind.nix          | 9 ---------
 nixos/modules/services/networking/dnsmasq.nix       | 2 +-
 nixos/modules/tasks/network-interfaces-scripted.nix | 2 +-
 4 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 5fa91ec9cfbc..619f36cd5150 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -9,9 +9,7 @@ let
   cfg = config.networking;
   dnsmasqResolve = config.services.dnsmasq.enable &&
                    config.services.dnsmasq.resolveLocalQueries;
-  bindResolve =    config.services.bind.enable &&
-                   config.services.bind.resolveLocalQueries;
-  hasLocalResolver = bindResolve || dnsmasqResolve;
+  hasLocalResolver = config.services.bind.enable || dnsmasqResolve;
 
   resolvconfOptions = cfg.resolvconfOptions
     ++ optional cfg.dnsSingleRequest "single-request"
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index 9f533eedf6e1..763283dfe7a2 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -151,15 +151,6 @@ in
         ";
       };
 
-      resolveLocalQueries = mkOption {
-        type = types.bool;
-        default = true;
-        description = ''
-          Whether bind should resolve local queries (i.e. add 127.0.0.1 to
-          /etc/resolv.conf, overriding networking.nameserver).
-        '';
-      };
-
     };
 
   };
diff --git a/nixos/modules/services/networking/dnsmasq.nix b/nixos/modules/services/networking/dnsmasq.nix
index 3d1b931de07e..fcf5aa5f175b 100644
--- a/nixos/modules/services/networking/dnsmasq.nix
+++ b/nixos/modules/services/networking/dnsmasq.nix
@@ -42,7 +42,7 @@ in
         default = true;
         description = ''
           Whether dnsmasq should resolve local queries (i.e. add 127.0.0.1 to
-          /etc/resolv.conf overriding networking.nameservers).
+          /etc/resolv.conf).
         '';
       };
 
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index adc048f3ca2c..7ede8752bcc3 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -105,7 +105,7 @@ let
               ''
                 # Set the static DNS configuration, if given.
                 ${pkgs.openresolv}/sbin/resolvconf -m 1 -a static <<EOF
-                ${optionalString (cfg.domain != null) ''
+                ${optionalString (cfg.nameservers != [] && cfg.domain != null) ''
                   domain ${cfg.domain}
                 ''}
                 ${optionalString (cfg.search != []) ("search " + concatStringsSep " " cfg.search)}

From 694e7e08d65d6d66b5e50a02c7a329ecec598f3c Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Fri, 22 Sep 2017 19:57:26 -0400
Subject: [PATCH 219/533] kodi: 17.3 -> 17.4

---
 pkgs/applications/video/kodi/default.nix | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 09cdf20ace0b..5a64c36abe4f 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -38,10 +38,11 @@ assert pulseSupport -> libpulseaudio != null;
 assert rtmpSupport  -> rtmpdump != null;
 
 let
+  kodi_version = "17.4";
   rel = "Krypton";
-  ffmpeg_3_1_6 = fetchurl {
-    url = "https://github.com/xbmc/FFmpeg/archive/3.1.6-${rel}.tar.gz";
-    sha256 = "14jicb26s20nr3qmfpazszpc892yjwjn81zbsb8szy3a5xs19y81";
+  ffmpeg_3_1_9 = fetchurl {
+    url = "https://github.com/xbmc/FFmpeg/archive/3.1.9-${rel}-${kodi_version}.tar.gz";
+    sha256 = "0rhjz505ljfg2jqbm3rd7qbcjq4vnp8h9a8vad8rjf84v3alglpa";
   };
   # Usage of kodi fork of libdvdnav and libdvdread is necessary for functional dvd playback:
   libdvdnav_src = fetchurl {
@@ -53,12 +54,12 @@ let
     sha256 = "e7179b2054163652596a56301c9f025515cb08c6d6310b42b897c3ad11c0199b";
   };
 in stdenv.mkDerivation rec {
+    version = kodi_version;
     name = "kodi-${version}";
-    version = "17.3";
 
     src = fetchurl {
       url = "https://github.com/xbmc/xbmc/archive/${version}-${rel}.tar.gz";
-      sha256 = "189isc1jagrnq549vwpvb0x1w6p0mkjwv7phm8dzvki96wx6bs0x";
+      sha256 = "1p1lxkapynjbd85ns7m4jybl4k35kxzv7105xkh03hlz8kkqc23b";
     };
 
     buildInputs = [
@@ -101,7 +102,7 @@ in stdenv.mkDerivation rec {
         --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
       substituteInPlace tools/depends/target/ffmpeg/autobuild.sh \
         --replace "/bin/bash" "${bash}/bin/bash -ex"
-      cp ${ffmpeg_3_1_6} tools/depends/target/ffmpeg/ffmpeg-3.1.6-${rel}.tar.gz
+      cp ${ffmpeg_3_1_9} tools/depends/target/ffmpeg/ffmpeg-3.1.9-${rel}-${version}.tar.gz
       ln -s ${libdvdcss.src} tools/depends/target/libdvdcss/libdvdcss-master.tar.gz
       cp ${libdvdnav_src} tools/depends/target/libdvdnav/libdvdnav-master.tar.gz
       cp ${libdvdread_src} tools/depends/target/libdvdread/libdvdread-master.tar.gz

From 08b09fdc5cff4249c9986f2403d2e4cea6e62feb Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sat, 23 Sep 2017 17:55:33 +0200
Subject: [PATCH 220/533] fanctl, fan module: remove

This has been broken nearly all the time due to the patches needed to
iproute2 not being compatible with the newer versions we have been
shipping. As long as Ubuntu does not manage to upstream these changes
so they are maintained with iproute2 and we don't have a maintainer
updating these patches to new iproute2 versions it is not feasible to
have this available.
---
 nixos/modules/module-list.nix                 |   1 -
 nixos/modules/services/networking/fan.nix     |  60 ------
 pkgs/os-specific/linux/fanctl/default.nix     |  46 -----
 .../os-specific/linux/fanctl/robustness.patch |  85 ---------
 .../iproute/1000-ubuntu-poc-fan-driver.patch  |  65 -------
 .../1001-ubuntu-poc-fan-driver-v3.patch       | 133 -------------
 .../1002-ubuntu-poc-fan-driver-vxlan.patch    | 177 ------------------
 pkgs/os-specific/linux/iproute/default.nix    |  12 +-
 pkgs/top-level/all-packages.nix               |   4 -
 9 files changed, 1 insertion(+), 582 deletions(-)
 delete mode 100644 nixos/modules/services/networking/fan.nix
 delete mode 100644 pkgs/os-specific/linux/fanctl/default.nix
 delete mode 100644 pkgs/os-specific/linux/fanctl/robustness.patch
 delete mode 100644 pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch
 delete mode 100644 pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch
 delete mode 100644 pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index eb478f66d40f..5ec2a18baeda 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -428,7 +428,6 @@
   ./services/networking/dnscrypt-wrapper.nix
   ./services/networking/dnsmasq.nix
   ./services/networking/ejabberd.nix
-  ./services/networking/fan.nix
   ./services/networking/fakeroute.nix
   ./services/networking/ferm.nix
   ./services/networking/firefox/sync-server.nix
diff --git a/nixos/modules/services/networking/fan.nix b/nixos/modules/services/networking/fan.nix
deleted file mode 100644
index 7f4e36478325..000000000000
--- a/nixos/modules/services/networking/fan.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.networking.fan;
-  modprobe = "${pkgs.kmod}/bin/modprobe";
-
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    networking.fan = {
-
-      enable = mkEnableOption "FAN Networking";
-
-    };
-
-  };
-
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-
-    environment.systemPackages = [ pkgs.fanctl ];
-
-    systemd.services.fan = {
-      description = "FAN Networking";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network-online.target" ];
-      before = [ "docker.service" ];
-      restartIfChanged = false;
-      preStart = ''
-        if [ ! -f /proc/sys/net/fan/version ]; then
-          ${modprobe} ipip
-          if [ ! -f /proc/sys/net/fan/version ]; then
-            echo "The Fan Networking patches have not been applied to this kernel!" 1>&2
-            exit 1
-          fi
-        fi
-
-        mkdir -p /var/lib/fan-networking
-      '';
-      serviceConfig = {
-        Type = "oneshot";
-        RemainAfterExit = true;
-        ExecStart = "${pkgs.fanctl}/bin/fanctl up -a";
-        ExecStop = "${pkgs.fanctl}/bin/fanctl down -a";
-      };
-    };
-
-  };
-
-}
diff --git a/pkgs/os-specific/linux/fanctl/default.nix b/pkgs/os-specific/linux/fanctl/default.nix
deleted file mode 100644
index 5fdcfa583827..000000000000
--- a/pkgs/os-specific/linux/fanctl/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv, lib, fetchurl, gnugrep, glibc, gawk, coreutils, bridge-utils, iproute
-, dnsmasq, iptables, kmod, utillinux, gnused }:
-
-stdenv.mkDerivation rec {
-  name = "fanctl-${version}";
-
-  version = "0.12.0";
-
-  src = fetchurl {
-    url = "https://launchpad.net/ubuntu/+archive/primary/+files/ubuntu-fan_${version}.tar.xz";
-    sha256 = "0lj7371n06sg5mlbbfgvm0qhzgp464n6v55rgs7kmmx4d37gb5fl";
-  };
-
-  # The Ubuntu package creates a number of state/config directories upon
-  # installation, and so the fanctl script expects those directories to exist
-  # before being used. Instead, we patch the fanctl script to gracefully handle
-  # the fact that the directories might not exist yet.
-  # Also, when dnsmasq is given --conf-file="", it will still attempt to read
-  # /etc/dnsmasq.conf; if that file does not exist, dnsmasq subsequently fails,
-  # so we'll use /dev/null, which actually works as intended.
-  patches = [ ./robustness.patch ];
-
-  postPatch = ''
-    substituteInPlace fanctl \
-      --replace '@PATH@' \
-                '${lib.makeBinPath [
-                     gnugrep gawk coreutils bridge-utils iproute dnsmasq
-                     iptables kmod utillinux gnused
-                     glibc # needed for getent
-                   ]}'
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin $out/man/man8
-    cp fanctl.8 $out/man/man8
-    cp fanctl $out/bin
-  '';
-
-  meta = with lib; {
-    description = "Ubuntu FAN network support enablement";
-    homepage = https://launchpad.net/ubuntu/+source/ubuntu-fan;
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ cstrahan ];
-  };
-}
diff --git a/pkgs/os-specific/linux/fanctl/robustness.patch b/pkgs/os-specific/linux/fanctl/robustness.patch
deleted file mode 100644
index 7a70a784e3ee..000000000000
--- a/pkgs/os-specific/linux/fanctl/robustness.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff --git a/fanctl b/fanctl
-index 4338b75..84cf987 100755
---- a/fanctl
-+++ b/fanctl
-@@ -5,6 +5,8 @@
- #   fanctl down 15 10.1.0.1
- #
- 
-+export PATH="@PATH@"
-+
- usage()
- {
- 	echo "Usage: $0 <cmd> [<options>...]" 1>&2
-@@ -23,8 +25,8 @@ run()
- 	"$@"
- }
- 
--state_dir="/run/ubuntu-fan"
--lconfig_dir="/var/lib/ubuntu-fan/config"
-+state_dir="/run/fan-networking"
-+lconfig_dir="/var/lib/fan-networking/config"
- 
- __ip_split()
- {
-@@ -931,12 +933,12 @@ dhcp_reconfigure()
- 		--strict-order \
- 		--bind-interfaces \
- 		--pid-file="$state_dir/dnsmasq-$C_bridge_state.pid" \
--		--conf-file= \
-+		--conf-file=/dev/null \
- 		$dhcp_flags \
- 		--dhcp-no-override \
- 		--except-interface=lo \
- 		--interface="$C_bridge" \
--		--dhcp-leasefile=/var/lib/misc/dnsmasq."$C_bridge_state".leases \
-+		--dhcp-leasefile=/var/lib/fan-networking/dnsmasq."$C_bridge_state".leases \
- 		--dhcp-authoritative \
- 	    || $fail "$C_bridge: failed to start dnsmasq"
- 
-@@ -1559,21 +1561,23 @@ cmd_config()
- 
- 	case "$cmd" in
- 	list|ls)
--		ls -1 "$lconfig_dir" | \
--		while read config
--		do
--			case "$config" in
--			*.conf)		;;
--			*)		continue ;;
--			esac
-+		if [ -d $lconfig_dir ]; then
-+			ls -1 "$lconfig_dir" | \
-+			while read config
-+			do
-+				case "$config" in
-+				*.conf)		;;
-+				*)		continue ;;
-+				esac
- 
--			config=$( echo "$config" | sed \
--				-e 's/.conf$//' \
--				-e 's/--/ /g' \
--				-e 's@-@/@g'
--			)
--			echo "$config"
--		done
-+				config=$( echo "$config" | sed \
-+					-e 's/.conf$//' \
-+					-e 's/--/ /g' \
-+					-e 's@-@/@g'
-+				)
-+				echo "$config"
-+			done
-+		fi
- 		;;
- 	show)
- 		cmd_decode_init
-@@ -1588,6 +1592,7 @@ cmd_config()
- 		[ -f "$uconfig" ] && cat "$uconfig"
- 		;;
- 	set)
-+		mkdir -p $lconfig_dir || fail "could not create config directory ($lconfig_dir)"
- 		cmd_decode_init
- 		if ! cmd_decode_config "config set" "$@"; then
- 			fail "invalid config"
diff --git a/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch b/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch
deleted file mode 100644
index 733a5122d136..000000000000
--- a/pkgs/os-specific/linux/iproute/1000-ubuntu-poc-fan-driver.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-Description: POC fan driver support
- POC Fan driver support
-Author: Jay Vosburgh <jay.vosburgh@canonical.com>
-
-Index: iproute2-4.1.1/include/linux/if_tunnel.h
-===================================================================
---- iproute2-4.1.1.orig/include/linux/if_tunnel.h
-+++ iproute2-4.1.1/include/linux/if_tunnel.h
-@@ -75,6 +75,9 @@ enum {
- 	IFLA_IPTUN_ENCAP_SPORT,
- 	IFLA_IPTUN_ENCAP_DPORT,
-	IFLA_IPTUN_COLLECT_METADATA,
-+
-+	IFLA_IPTUN_FAN_UNDERLAY = 32,
-+
- 	__IFLA_IPTUN_MAX,
- };
- #define IFLA_IPTUN_MAX	(__IFLA_IPTUN_MAX - 1)
-Index: iproute2-4.1.1/ip/link_iptnl.c
-===================================================================
---- iproute2-4.1.1.orig/ip/link_iptnl.c
-+++ iproute2-4.1.1/ip/link_iptnl.c
-@@ -66,6 +66,7 @@ static int iptunnel_parse_opt(struct lin
- 	__u32 link = 0;
- 	__u32 laddr = 0;
- 	__u32 raddr = 0;
-+	__u32 underlay = 0;
- 	__u8 ttl = 0;
- 	__u8 tos = 0;
- 	__u8 pmtudisc = 1;
-@@ -174,6 +175,9 @@ get_failed:
- 				raddr = get_addr32(*argv);
- 			else
- 				raddr = 0;
-+		} else if (strcmp(*argv, "underlay") == 0) {
-+			NEXT_ARG();
-+			underlay = get_addr32(*argv);
- 		} else if (strcmp(*argv, "local") == 0) {
- 			NEXT_ARG();
- 			if (strcmp(*argv, "any"))
-@@ -318,6 +322,9 @@ get_failed:
- 		}
- 	}
- 
-+	if (underlay)
-+		addattr32(n, 1024, IFLA_IPTUN_FAN_UNDERLAY, underlay);
-+
- 	return 0;
- }
- 
-@@ -349,6 +356,14 @@ static void iptunnel_print_opt(struct li
- 
- 	fprintf(f, "local %s ", local);
- 
-+	if (tb[IFLA_IPTUN_FAN_UNDERLAY]) {
-+		unsigned addr = rta_getattr_u32(tb[IFLA_IPTUN_FAN_UNDERLAY]);
-+
-+		if (addr)
-+			fprintf(f, "underlay %s ",
-+				format_host_r(AF_INET, 4, &addr, s1, sizeof(s1)));
-+	}
-+
- 	if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
- 		unsigned link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]);
- 		const char *n = if_indextoname(link, s2);
diff --git a/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch b/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch
deleted file mode 100644
index 634daa0de29f..000000000000
--- a/pkgs/os-specific/linux/iproute/1001-ubuntu-poc-fan-driver-v3.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-Description: Fan driver support v3
- Fan driver support v3
-Author: Jay Vosburgh <jay.vosburgh@canonical.com>
-Index: iproute2-4.1.1/include/linux/if_tunnel.h
-===================================================================
---- iproute2-4.1.1.orig/include/linux/if_tunnel.h
-+++ iproute2-4.1.1/include/linux/if_tunnel.h
-@@ -59,6 +59,7 @@ enum {
- 	IFLA_IPTUN_ENCAP_DPORT,
- 
- 	IFLA_IPTUN_FAN_UNDERLAY = 32,
-+	IFLA_IPTUN_FAN_MAP = 33,
- 
- 	__IFLA_IPTUN_MAX,
- };
-@@ -134,4 +135,20 @@ enum {
- };
- 
- #define IFLA_VTI_MAX	(__IFLA_VTI_MAX - 1)
-+
-+enum {
-+	IFLA_FAN_UNSPEC,
-+	IFLA_FAN_MAPPING,
-+	__IFLA_FAN_MAX,
-+};
-+
-+#define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1)
-+
-+struct ip_tunnel_fan_map {
-+	__be32		underlay;
-+	__be32		overlay;
-+	__u16		underlay_prefix;
-+	__u16		overlay_prefix;
-+};
-+
- #endif /* _IF_TUNNEL_H_ */
-Index: iproute2-4.1.1/ip/link_iptnl.c
-===================================================================
---- iproute2-4.1.1.orig/ip/link_iptnl.c
-+++ iproute2-4.1.1/ip/link_iptnl.c
-@@ -49,6 +49,42 @@ static void usage(int sit)
- 	print_usage(stderr, sit);
- 	exit(-1);
- }
-+static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n)
-+{
-+	inet_prefix underlay, overlay;
-+	struct ip_tunnel_fan_map map;
-+	struct rtattr *nest;
-+	char **argv = *argvp;
-+	int argc = *argcp;
-+
-+	nest = addattr_nest(n, 1024, IFLA_IPTUN_FAN_MAP);
-+	while (argc > 0) {
-+		char *colon = strchr(*argv, ':');
-+
-+		if (!colon)
-+			break;
-+		*colon = '\0';
-+
-+		if (get_prefix(&overlay, *argv, AF_INET))
-+			invarg("invalid fan-map overlay", *argv);
-+		if (get_prefix(&underlay, colon + 1, AF_INET))
-+			invarg("invalid fan-map underlay", colon + 1);
-+		
-+		memcpy(&map.underlay, underlay.data, 4);
-+		map.underlay_prefix = underlay.bitlen;
-+		memcpy(&map.overlay, overlay.data, 4);
-+		map.overlay_prefix = overlay.bitlen;
-+
-+		argc--, argv++;
-+
-+		addattr_l(n, 1024, IFLA_FAN_MAPPING, &map, sizeof(map));
-+	}
-+	addattr_nest_end(n, nest);
-+
-+	*argcp = argc;
-+	*argvp = argv;
-+	return 0;
-+}
- 
- static int iptunnel_parse_opt(struct link_util *lu, int argc, char **argv,
- 			      struct nlmsghdr *n)
-@@ -178,6 +214,10 @@ get_failed:
- 		} else if (strcmp(*argv, "underlay") == 0) {
- 			NEXT_ARG();
- 			underlay = get_addr32(*argv);
-+		} else if (strcmp(*argv, "fan-map") == 0) {
-+			NEXT_ARG();
-+			if (fan_parse_map(&argc, &argv, n))
-+				invarg("invalid fan-map", *argv);
- 		} else if (strcmp(*argv, "local") == 0) {
- 			NEXT_ARG();
- 			if (strcmp(*argv, "any"))
-@@ -328,6 +368,28 @@ get_failed:
- 	return 0;
- }
- 
-+static void fan_print_map(FILE *f, struct rtattr *attr)
-+{
-+	char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN];
-+	struct ip_tunnel_fan_map *m;
-+	struct rtattr *i;
-+	int rem;
-+	int p;
-+
-+	fprintf(f, "fan-map ");
-+
-+	rem = RTA_PAYLOAD(attr);
-+	for (i = RTA_DATA(attr); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) {
-+		p = RTA_PAYLOAD(i);
-+		m = RTA_DATA(i);
-+		fprintf(f, "%s/%d:%s/%d ",
-+			rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN),
-+			m->overlay_prefix,
-+			rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN),
-+			m->underlay_prefix);
-+	}
-+}
-+
- static void iptunnel_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
- {
- 	char s1[1024];
-@@ -364,6 +426,9 @@ static void iptunnel_print_opt(struct li
- 				format_host(AF_INET, 4, &addr, s1, sizeof(s1)));
- 	}
- 
-+	if (tb[IFLA_IPTUN_FAN_MAP])
-+		fan_print_map(f, tb[IFLA_IPTUN_FAN_MAP]);
-+
- 	if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
- 		unsigned link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]);
- 		const char *n = if_indextoname(link, s2);
diff --git a/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch b/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch
deleted file mode 100644
index 070023d0b923..000000000000
--- a/pkgs/os-specific/linux/iproute/1002-ubuntu-poc-fan-driver-vxlan.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-Description: Fan driver support VXLAN (p4)
- Fan driver setup support for vxlan interfaces.
-
-Index: iproute2-4.3.0/include/linux/if_link.h
-===================================================================
---- iproute2-4.3.0.orig/include/linux/if_link.h
-+++ iproute2-4.3.0/include/linux/if_link.h
-@@ -392,6 +392,7 @@ enum {
- 	IFLA_VXLAN_COLLECT_METADATA,
- 	IFLA_VXLAN_LABEL,
- 	IFLA_VXLAN_GPE,
-+	IFLA_VXLAN_FAN_MAP = 33,
- 	__IFLA_VXLAN_MAX
- };
- #define IFLA_VXLAN_MAX	(__IFLA_VXLAN_MAX - 1)
-Index: iproute2-4.3.0/include/linux/if_tunnel.h
-===================================================================
---- iproute2-4.3.0.orig/include/linux/if_tunnel.h
-+++ iproute2-4.3.0/include/linux/if_tunnel.h
-@@ -145,7 +145,7 @@ enum {
- 
- #define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1)
- 
--struct ip_tunnel_fan_map {
-+struct ifla_fan_map {
- 	__be32		underlay;
- 	__be32		overlay;
- 	__u16		underlay_prefix;
-Index: iproute2-4.3.0/ip/iplink_vxlan.c
-===================================================================
---- iproute2-4.3.0.orig/ip/iplink_vxlan.c
-+++ iproute2-4.3.0/ip/iplink_vxlan.c
-@@ -15,7 +15,10 @@
- #include <net/if.h>
- #include <linux/ip.h>
- #include <linux/if_link.h>
-+#include <linux/types.h>
- #include <arpa/inet.h>
-+#include <linux/in6.h>
-+#include <linux/if_tunnel.h>
- 
- #include "rt_names.h"
- #include "utils.h"
-@@ -43,6 +46,45 @@ static void explain(void)
- 	print_explain(stderr);
- }
- 
-+static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n)
-+{
-+	inet_prefix underlay, overlay;
-+	struct ifla_fan_map map;
-+	struct rtattr *nest;
-+	char **argv = *argvp;
-+	int argc = *argcp;
-+
-+	nest = addattr_nest(n, 1024, IFLA_VXLAN_FAN_MAP);
-+	while (argc > 0) {
-+		char *colon = strchr(*argv, ':');
-+
-+		if (!colon) {
-+			PREV_ARG();
-+			break;
-+		}
-+		*colon = '\0';
-+
-+		if (get_prefix(&overlay, *argv, AF_INET))
-+			invarg("invalid fan-map overlay", *argv);
-+		if (get_prefix(&underlay, colon + 1, AF_INET))
-+			invarg("invalid fan-map underlay", colon + 1);
-+
-+		memcpy(&map.underlay, underlay.data, 4);
-+		map.underlay_prefix = underlay.bitlen;
-+		memcpy(&map.overlay, overlay.data, 4);
-+		map.overlay_prefix = overlay.bitlen;
-+
-+		argc--, argv++;
-+
-+		addattr_l(n, 1024, IFLA_FAN_MAPPING, &map, sizeof(map));
-+	}
-+	addattr_nest_end(n, nest);
-+
-+	*argcp = argc;
-+	*argvp = argv;
-+	return 0;
-+}
-+
- static int vxlan_parse_opt(struct link_util *lu, int argc, char **argv,
- 			  struct nlmsghdr *n)
- {
-@@ -201,6 +243,10 @@ static int vxlan_parse_opt(struct link_u
- 			gbp = 1;
- 		} else if (!matches(*argv, "gpe")) {
- 			gpe = 1;
-+		} else if (!matches(*argv, "fan-map")) {
-+			NEXT_ARG();
-+			if (fan_parse_map(&argc, &argv, n))
-+				invarg("invalid fan-map", *argv);
- 		} else if (matches(*argv, "help") == 0) {
- 			explain();
- 			return -1;
-@@ -279,6 +325,28 @@ static int vxlan_parse_opt(struct link_u
- 	return 0;
- }
- 
-+static void fan_print_map(FILE *f, struct rtattr *attr)
-+{
-+	char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN];
-+	struct ifla_fan_map *m;
-+	struct rtattr *i;
-+	int rem;
-+	int p;
-+
-+	fprintf(f, "fan-map ");
-+
-+	rem = RTA_PAYLOAD(attr);
-+	for (i = RTA_DATA(attr); RTA_OK(i, rem); i = RTA_NEXT(i, rem)) {
-+		p = RTA_PAYLOAD(i);
-+		m = RTA_DATA(i);
-+		fprintf(f, "%s/%d:%s/%d ",
-+			rt_addr_n2a_r(AF_INET, p, &m->overlay, b1, INET_ADDRSTRLEN),
-+			m->overlay_prefix,
-+			rt_addr_n2a_r(AF_INET, p, &m->underlay, b2, INET_ADDRSTRLEN),
-+			m->underlay_prefix);
-+	}
-+}
-+
- static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
- {
- 	__u32 vni;
-@@ -321,6 +389,9 @@ static void vxlan_print_opt(struct link_
- 		}
- 	}
- 
-+	if (tb[IFLA_VXLAN_FAN_MAP])
-+		fan_print_map(f, tb[IFLA_VXLAN_FAN_MAP]);
-+
- 	if (tb[IFLA_VXLAN_LOCAL]) {
- 		__be32 addr = rta_getattr_u32(tb[IFLA_VXLAN_LOCAL]);
- 		if (addr)
-Index: iproute2-4.3.0/ip/link_iptnl.c
-===================================================================
---- iproute2-4.3.0.orig/ip/link_iptnl.c
-+++ iproute2-4.3.0/ip/link_iptnl.c
-@@ -49,10 +49,11 @@ static void usage(int sit)
- 	print_usage(stderr, sit);
- 	exit(-1);
- }
-+
- static int fan_parse_map(int *argcp, char ***argvp, struct nlmsghdr *n)
- {
- 	inet_prefix underlay, overlay;
--	struct ip_tunnel_fan_map map;
-+	struct ifla_fan_map map;
- 	struct rtattr *nest;
- 	char **argv = *argvp;
- 	int argc = *argcp;
-@@ -61,8 +62,10 @@ static int fan_parse_map(int *argcp, cha
- 	while (argc > 0) {
- 		char *colon = strchr(*argv, ':');
- 
--		if (!colon)
-+		if (!colon) {
-+			PREV_ARG();
- 			break;
-+		}
- 		*colon = '\0';
- 
- 		if (get_prefix(&overlay, *argv, AF_INET))
-@@ -371,7 +374,7 @@ get_failed:
- static void fan_print_map(FILE *f, struct rtattr *attr)
- {
- 	char b1[INET_ADDRSTRLEN], b2[INET_ADDRSTRLEN];
--	struct ip_tunnel_fan_map *m;
-+	struct ifla_fan_map *m;
- 	struct rtattr *i;
- 	int rem;
- 	int p;
diff --git a/pkgs/os-specific/linux/iproute/default.nix b/pkgs/os-specific/linux/iproute/default.nix
index 404e21bcbce0..1d312be42ec7 100644
--- a/pkgs/os-specific/linux/iproute/default.nix
+++ b/pkgs/os-specific/linux/iproute/default.nix
@@ -1,6 +1,4 @@
-{ fetchurl, stdenv, lib, flex, bison, db, iptables, pkgconfig
-, enableFan ? false
-}:
+{ fetchurl, stdenv, lib, flex, bison, db, iptables, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "iproute2-${version}";
@@ -11,14 +9,6 @@ stdenv.mkDerivation rec {
     sha256 = "0zdxdsxyaazl85xhwskvsmpyzwf5qp21cvjsi1lw3xnrc914q2if";
   };
 
-  patches = lib.optionals enableFan [
-    # These patches were pulled from:
-    # https://launchpad.net/ubuntu/xenial/+source/iproute2
-    ./1000-ubuntu-poc-fan-driver.patch
-    ./1001-ubuntu-poc-fan-driver-v3.patch
-    ./1002-ubuntu-poc-fan-driver-vxlan.patch
-  ];
-
   preConfigure = ''
     patchShebangs ./configure
     sed -e '/ARPDDIR/d' -i Makefile
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3043c04ec337..257d116ec79d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12059,10 +12059,6 @@ with pkgs;
 
   facetimehd-firmware = callPackage ../os-specific/linux/firmware/facetimehd-firmware { };
 
-  fanctl = callPackage ../os-specific/linux/fanctl {
-    iproute = iproute.override { enableFan = true; };
-  };
-
   fatrace = callPackage ../os-specific/linux/fatrace { };
 
   ffadoFull = callPackage ../os-specific/linux/ffado {

From a8ef3f67420fb9b87c5b238c8fc93d4cda446a34 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Sun, 10 Sep 2017 15:36:48 -0400
Subject: [PATCH 221/533] ghc prebuilt: Clean up syntax, without changes hashes

If I'm going to make a bunch more of these, I think it's a good idea to
make them more uniform first.
---
 .../compilers/ghc/6.10.2-binary.nix           | 28 +++++++++--------
 .../compilers/ghc/7.0.4-binary.nix            | 30 +++++++++----------
 .../compilers/ghc/7.4.2-binary.nix            | 30 +++++++++----------
 3 files changed, 45 insertions(+), 43 deletions(-)

diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 1b9d81d2f121..99e54ff5f673 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -1,24 +1,26 @@
-{stdenv, lib, fetchurl, perl, libedit, ncurses5, gmp}:
+{ stdenv
+, fetchurl, perl
+, libedit, ncurses5, gmp
+}:
 
 stdenv.mkDerivation rec {
   version = "6.10.2";
 
   name = "ghc-${version}-binary";
 
-  src =
-    if stdenv.system == "i686-linux" then
-      fetchurl {
+  src = fetchurl ({
+      "i686-linux" = {
         # This binary requires libedit.so.0 (rather than libedit.so.2).
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
         sha256 = "1fw0zr2qshlpk8s0d16k27zcv5263nqdg2xds5ymw8ff6qz9rz9b";
-      }
-    else if stdenv.system == "x86_64-linux" then
-      fetchurl {
+      };
+      "x86_64-linux" = {
         # Idem.
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
         sha256 = "1rd2j7lmcfsm2rdfb5g6q0l8dz3sxadk5m3d2f69d4a6g4p4h7jj";
-      }
-    else throw "cannot bootstrap GHC on this platform";
+      };
+    }.${stdenv.hostPlatform.system}
+      or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 
@@ -37,17 +39,17 @@ stdenv.mkDerivation rec {
      '' +
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
-    (if stdenv.isLinux then ''
+    stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
       find . -type f -perm -0100 \
           -exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          --set-rpath "${lib.makeLibraryPath [ libedit ncurses5 gmp ]}" {} \;
+          --set-rpath "${stdenv.lib.makeLibraryPath [ libedit ncurses5 gmp ]}" {} \;
       for prog in ld ar gcc strip ranlib; do
         find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
       done
-     '' else "");
+     '';
 
   configurePhase = ''
-    ./configure --prefix=$out --with-gmp-libraries=${lib.getLib gmp}/lib --with-gmp-includes=${lib.getDev gmp}/include
+    ./configure --prefix=$out --with-gmp-libraries=${stdenv.lib.getLib gmp}/lib --with-gmp-includes=${stdenv.lib.getDev gmp}/include
   '';
 
   # Stripping combined with patchelf breaks the executables (they die
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
index a53098937ce8..2f758c47466e 100644
--- a/pkgs/development/compilers/ghc/7.0.4-binary.nix
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -1,32 +1,32 @@
-{stdenv, fetchurl, perl, ncurses5, gmp, libiconv}:
+{ stdenv
+, fetchurl, perl
+, ncurses5, gmp, libiconv
+}:
 
 stdenv.mkDerivation rec {
   version = "7.0.4";
 
   name = "ghc-${version}-binary";
 
-  src =
-    if stdenv.system == "i686-linux" then
-      fetchurl {
+  src = fetchurl ({
+      "i686-linux" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
         sha256 = "0mfnihiyjl06f5w1yrjp36sw9g67g2ymg5sdl0g23h1pab99jx63";
-      }
-    else if stdenv.system == "x86_64-linux" then
-      fetchurl {
+      };
+      "x86_64-linux" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
         sha256 = "0mc4rhqcxz427wq4zgffmnn0d2yjqvy6af4x9mha283p1gdj5q99";
-      }
-    else if stdenv.system == "i686-darwin" then
-      fetchurl {
+      };
+      "i686-darwin" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
         sha256 = "0qj45hslrrr8zfks8m1jcb3awwx9rh35ndnpfmb0gwb6j7azq5n3";
-      }
-    else if stdenv.system == "x86_64-darwin" then
-      fetchurl {
+      };
+      "x86_64-darwin" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
         sha256 = "1m2ml88p1swf4dnv2vq8hz4drcp46n3ahpfi05wh01ajkf8hnn3l";
-      }
-    else throw "cannot bootstrap GHC on this platform";
+      };
+    }.${stdenv.hostPlatform.system}
+      or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
index cfbc1e8dd170..60c00c2f7f53 100644
--- a/pkgs/development/compilers/ghc/7.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -1,32 +1,32 @@
-{stdenv, fetchurl, perl, ncurses5, gmp, libiconv, makeWrapper}:
+{ stdenv
+, fetchurl, perl, makeWrapper
+, ncurses5, gmp, libiconv
+}:
 
 stdenv.mkDerivation rec {
   version = "7.4.2";
 
   name = "ghc-${version}-binary";
 
-  src =
-    if stdenv.system == "i686-linux" then
-      fetchurl {
+  src = fetchurl ({
+      "i686-linux" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
         sha256 = "0gny7knhss0w0d9r6jm1gghrcb8kqjvj94bb7hxf9syrk4fxlcxi";
-      }
-    else if stdenv.system == "x86_64-linux" then
-      fetchurl {
+      };
+      "x86_64-linux" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
         sha256 = "043jabd0lh6n1zlqhysngbpvlsdznsa2mmsj08jyqgahw9sjb5ns";
-      }
-    else if stdenv.system == "i686-darwin" then
-      fetchurl {
+      };
+      "i686-darwin" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
         sha256 = "1vrbs3pzki37hzym1f1nh07lrqh066z3ypvm81fwlikfsvk4djc0";
-      }
-    else if stdenv.system == "x86_64-darwin" then
-      fetchurl {
+      };
+      "x86_64-darwin" = {
         url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
         sha256 = "1imzqc0slpg0r6p40n5a9m18cbcm0m86z8dgyhfxcckksw54mzwf";
-      }
-    else throw "cannot bootstrap GHC on this platform";
+      };
+    }.${stdenv.hostPlatform.system}
+      or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 

From 2d521567933718dee4f820efb3b41a2baaf08d02 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Fri, 22 Sep 2017 13:45:31 -0400
Subject: [PATCH 222/533] ghc prebuilt: Fix indentation

Doing this separately so the other commits are more readable
---
 .../compilers/ghc/6.10.2-binary.nix           |  59 +++++-----
 .../compilers/ghc/7.0.4-binary.nix            | 101 +++++++++---------
 .../compilers/ghc/7.4.2-binary.nix            |  76 ++++++-------
 3 files changed, 117 insertions(+), 119 deletions(-)

diff --git a/pkgs/development/compilers/ghc/6.10.2-binary.nix b/pkgs/development/compilers/ghc/6.10.2-binary.nix
index 99e54ff5f673..84250c1a6d33 100644
--- a/pkgs/development/compilers/ghc/6.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/6.10.2-binary.nix
@@ -9,18 +9,18 @@ stdenv.mkDerivation rec {
   name = "ghc-${version}-binary";
 
   src = fetchurl ({
-      "i686-linux" = {
-        # This binary requires libedit.so.0 (rather than libedit.so.2).
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
-        sha256 = "1fw0zr2qshlpk8s0d16k27zcv5263nqdg2xds5ymw8ff6qz9rz9b";
-      };
-      "x86_64-linux" = {
-        # Idem.
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
-        sha256 = "1rd2j7lmcfsm2rdfb5g6q0l8dz3sxadk5m3d2f69d4a6g4p4h7jj";
-      };
-    }.${stdenv.hostPlatform.system}
-      or (throw "cannot bootstrap GHC on this platform"));
+    "i686-linux" = {
+      # This binary requires libedit.so.0 (rather than libedit.so.2).
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+      sha256 = "1fw0zr2qshlpk8s0d16k27zcv5263nqdg2xds5ymw8ff6qz9rz9b";
+    };
+    "x86_64-linux" = {
+      # Idem.
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
+      sha256 = "1rd2j7lmcfsm2rdfb5g6q0l8dz3sxadk5m3d2f69d4a6g4p4h7jj";
+    };
+  }.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 
@@ -29,14 +29,14 @@ stdenv.mkDerivation rec {
     # first. The GHC Cabal build system makes use of strip by default and
     # has hardcoded paths to /usr/bin/strip in many places. We replace
     # those below, making them point to our dummy script.
-     ''
+    ''
       mkdir "$TMP/bin"
       for i in strip; do
         echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
         chmod +x "$TMP/bin/$i"
       done
       PATH="$TMP/bin:$PATH"
-     '' +
+    '' +
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
     stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
       for prog in ld ar gcc strip ranlib; do
         find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
       done
-     '';
+    '';
 
   configurePhase = ''
     ./configure --prefix=$out --with-gmp-libraries=${stdenv.lib.getLib gmp}/lib --with-gmp-includes=${stdenv.lib.getDev gmp}/include
@@ -60,22 +60,21 @@ stdenv.mkDerivation rec {
   # calls install-strip ...
   dontBuild = true;
 
-  postInstall =
-      ''
-        # bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
-        sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp.out}/lib\",\2@" $out/lib/ghc-${version}/package.conf
+  postInstall = ''
+    # bah, the passing gmp doesn't work, so let's add it to the final package.conf in a quick but dirty way
+    sed -i "s@^\(.*pkgName = PackageName \"rts\".*\libraryDirs = \\[\)\(.*\)@\\1\"${gmp.out}/lib\",\2@" $out/lib/ghc-${version}/package.conf
 
-        # Sanity check, can ghc create executables?
-        cd $TMP
-        mkdir test-ghc; cd test-ghc
-        cat > main.hs << EOF
-          module Main where
-          main = putStrLn "yes"
-        EOF
-        $out/bin/ghc --make main.hs
-        echo compilation ok
-        [ $(./main) == "yes" ]
-      '';
+    # Sanity check, can ghc create executables?
+    cd $TMP
+    mkdir test-ghc; cd test-ghc
+    cat > main.hs << EOF
+      module Main where
+      main = putStrLn "yes"
+    EOF
+    $out/bin/ghc --make main.hs
+    echo compilation ok
+    [ $(./main) == "yes" ]
+  '';
 
   meta = {
     homepage = http://haskell.org/ghc;
diff --git a/pkgs/development/compilers/ghc/7.0.4-binary.nix b/pkgs/development/compilers/ghc/7.0.4-binary.nix
index 2f758c47466e..394e4239e9a0 100644
--- a/pkgs/development/compilers/ghc/7.0.4-binary.nix
+++ b/pkgs/development/compilers/ghc/7.0.4-binary.nix
@@ -9,24 +9,24 @@ stdenv.mkDerivation rec {
   name = "ghc-${version}-binary";
 
   src = fetchurl ({
-      "i686-linux" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
-        sha256 = "0mfnihiyjl06f5w1yrjp36sw9g67g2ymg5sdl0g23h1pab99jx63";
-      };
-      "x86_64-linux" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
-        sha256 = "0mc4rhqcxz427wq4zgffmnn0d2yjqvy6af4x9mha283p1gdj5q99";
-      };
-      "i686-darwin" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
-        sha256 = "0qj45hslrrr8zfks8m1jcb3awwx9rh35ndnpfmb0gwb6j7azq5n3";
-      };
-      "x86_64-darwin" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
-        sha256 = "1m2ml88p1swf4dnv2vq8hz4drcp46n3ahpfi05wh01ajkf8hnn3l";
-      };
-    }.${stdenv.hostPlatform.system}
-      or (throw "cannot bootstrap GHC on this platform"));
+    "i686-linux" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+      sha256 = "0mfnihiyjl06f5w1yrjp36sw9g67g2ymg5sdl0g23h1pab99jx63";
+    };
+    "x86_64-linux" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
+      sha256 = "0mc4rhqcxz427wq4zgffmnn0d2yjqvy6af4x9mha283p1gdj5q99";
+    };
+    "i686-darwin" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
+      sha256 = "0qj45hslrrr8zfks8m1jcb3awwx9rh35ndnpfmb0gwb6j7azq5n3";
+    };
+    "x86_64-darwin" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
+      sha256 = "1m2ml88p1swf4dnv2vq8hz4drcp46n3ahpfi05wh01ajkf8hnn3l";
+    };
+  }.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 
@@ -41,22 +41,22 @@ stdenv.mkDerivation rec {
     # first. The GHC Cabal build system makes use of strip by default and
     # has hardcoded paths to /usr/bin/strip in many places. We replace
     # those below, making them point to our dummy script.
-     ''
+    ''
       mkdir "$TMP/bin"
       for i in strip; do
         echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
         chmod +x "$TMP/bin/$i"
       done
       PATH="$TMP/bin:$PATH"
-     '' +
+    '' +
     # We have to patch the GMP paths for the integer-gmp package.
-     ''
+    ''
       find . -name integer-gmp.buildinfo \
           -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
-     '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
       find . -name base.buildinfo \
           -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
-     '' +
+    '' +
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
     stdenv.lib.optionalString stdenv.isLinux ''
@@ -68,24 +68,24 @@ stdenv.mkDerivation rec {
       for prog in ld ar gcc strip ranlib; do
         find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
       done
-     '' + stdenv.lib.optionalString stdenv.isDarwin ''
-       # not enough room in the object files for the full path to libiconv :(
-       fix () {
-         install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
-       }
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      # not enough room in the object files for the full path to libiconv :(
+      fix () {
+        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
+      }
 
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
 
-       for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
-         fix $(find . -type f -name $file)
-       done
+      for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
+        fix $(find . -type f -name $file)
+      done
 
-       for file in $(find . -name setup-config); do
-         substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
-       done
-     '';
+      for file in $(find . -name setup-config); do
+        substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
+      done
+    '';
 
   configurePhase = ''
     ./configure --prefix=$out \
@@ -101,19 +101,18 @@ stdenv.mkDerivation rec {
   # calls install-strip ...
   dontBuild = true;
 
-  postInstall =
-      ''
-        # Sanity check, can ghc create executables?
-        cd $TMP
-        mkdir test-ghc; cd test-ghc
-        cat > main.hs << EOF
-          module Main where
-          main = putStrLn "yes"
-        EOF
-        $out/bin/ghc --make main.hs
-        echo compilation ok
-        [ $(./main) == "yes" ]
-      '';
+  postInstall = ''
+    # Sanity check, can ghc create executables?
+    cd $TMP
+    mkdir test-ghc; cd test-ghc
+    cat > main.hs << EOF
+      module Main where
+      main = putStrLn "yes"
+    EOF
+    $out/bin/ghc --make main.hs
+    echo compilation ok
+    [ $(./main) == "yes" ]
+  '';
 
   meta.license = stdenv.lib.licenses.bsd3;
   meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
diff --git a/pkgs/development/compilers/ghc/7.4.2-binary.nix b/pkgs/development/compilers/ghc/7.4.2-binary.nix
index 60c00c2f7f53..9d85253f6309 100644
--- a/pkgs/development/compilers/ghc/7.4.2-binary.nix
+++ b/pkgs/development/compilers/ghc/7.4.2-binary.nix
@@ -9,24 +9,24 @@ stdenv.mkDerivation rec {
   name = "ghc-${version}-binary";
 
   src = fetchurl ({
-      "i686-linux" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
-        sha256 = "0gny7knhss0w0d9r6jm1gghrcb8kqjvj94bb7hxf9syrk4fxlcxi";
-      };
-      "x86_64-linux" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
-        sha256 = "043jabd0lh6n1zlqhysngbpvlsdznsa2mmsj08jyqgahw9sjb5ns";
-      };
-      "i686-darwin" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
-        sha256 = "1vrbs3pzki37hzym1f1nh07lrqh066z3ypvm81fwlikfsvk4djc0";
-      };
-      "x86_64-darwin" = {
-        url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
-        sha256 = "1imzqc0slpg0r6p40n5a9m18cbcm0m86z8dgyhfxcckksw54mzwf";
-      };
-    }.${stdenv.hostPlatform.system}
-      or (throw "cannot bootstrap GHC on this platform"));
+    "i686-linux" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
+      sha256 = "0gny7knhss0w0d9r6jm1gghrcb8kqjvj94bb7hxf9syrk4fxlcxi";
+    };
+    "x86_64-linux" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
+      sha256 = "043jabd0lh6n1zlqhysngbpvlsdznsa2mmsj08jyqgahw9sjb5ns";
+    };
+    "i686-darwin" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
+      sha256 = "1vrbs3pzki37hzym1f1nh07lrqh066z3ypvm81fwlikfsvk4djc0";
+    };
+    "x86_64-darwin" = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
+      sha256 = "1imzqc0slpg0r6p40n5a9m18cbcm0m86z8dgyhfxcckksw54mzwf";
+    };
+  }.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform"));
 
   buildInputs = [perl];
 
@@ -41,22 +41,22 @@ stdenv.mkDerivation rec {
     # first. The GHC Cabal build system makes use of strip by default and
     # has hardcoded paths to /usr/bin/strip in many places. We replace
     # those below, making them point to our dummy script.
-     ''
+    ''
       mkdir "$TMP/bin"
       for i in strip; do
         echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
         chmod +x "$TMP/bin/$i"
       done
       PATH="$TMP/bin:$PATH"
-     '' +
+    '' +
     # We have to patch the GMP paths for the integer-gmp package.
-     ''
+    ''
       find . -name integer-gmp.buildinfo \
           -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
-     '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
       find . -name base.buildinfo \
           -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
-     '' +
+    '' +
     # On Linux, use patchelf to modify the executables so that they can
     # find editline/gmp.
     stdenv.lib.optionalString stdenv.isLinux ''
@@ -73,24 +73,24 @@ stdenv.mkDerivation rec {
       for prog in ld ar gcc strip ranlib; do
         find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
       done
-     '' + stdenv.lib.optionalString stdenv.isDarwin ''
-       # not enough room in the object files for the full path to libiconv :(
-       fix () {
-         install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
-       }
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      # not enough room in the object files for the full path to libiconv :(
+      fix () {
+        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib $1
+      }
 
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist-install/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist-install/build/tmp
-       ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/ghc-pwd/dist-install/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/utils/hpc/dist-install/build/tmp
+      ln -s ${libiconv}/lib/libiconv.dylib ghc-${version}/ghc/stage2/build/tmp
 
-       for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
-         fix $(find . -type f -name $file)
-       done
+      for file in ghc-cabal ghc-pwd ghc-stage2 ghc-pkg haddock hsc2hs hpc; do
+        fix $(find . -type f -name $file)
+      done
 
-       for file in $(find . -name setup-config); do
-         substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
-       done
-     '';
+      for file in $(find . -name setup-config); do
+        substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
+      done
+    '';
 
   configurePhase = ''
     ./configure --prefix=$out \

From 9ca4f39b9716ea9b7b001763c9f7c5bef051a10c Mon Sep 17 00:00:00 2001
From: Robert Scott <code@humanleg.org.uk>
Date: Sat, 23 Sep 2017 17:58:19 +0100
Subject: [PATCH 223/533] python.pkgs.python-gnupg: disable failing test
 test_search_keys

reading the code, it's hard to see how this test was *ever* supposed to
pass. interestingly, peeking across the fence, guix have disabled this test
too for the same reason.

note that tests don't actually run *at all* on py27 but that's a problem
for another day
---
 pkgs/development/python-modules/python-gnupg/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index 28870d3db853..9d29e109db49 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -17,7 +17,8 @@ buildPythonPackage rec {
     substituteInPlace gnupg.py \
     --replace "gpgbinary='gpg'" "gpgbinary='${gnupg1}/bin/gpg'"
     substituteInPlace test_gnupg.py \
-    --replace "gpgbinary=GPGBINARY" "gpgbinary='${gnupg1}/bin/gpg'"
+    --replace "gpgbinary=GPGBINARY" "gpgbinary='${gnupg1}/bin/gpg'" \
+    --replace "test_search_keys" "disabled__test_search_keys"
   '';
 
   meta = with stdenv.lib; {

From 8d001911db29462a2efb2a23f5d9a1321cdc3235 Mon Sep 17 00:00:00 2001
From: Michael Raskin <7c6f434c@mail.ru>
Date: Sat, 23 Sep 2017 19:25:56 +0200
Subject: [PATCH 224/533] asymptote: do not install sty-files, let texlive care
 of it

TeXLive version is effectively identical anyway, and it caused an
unneccessary file name collision.

Fixes: #29671
---
 pkgs/tools/graphics/asymptote/default.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pkgs/tools/graphics/asymptote/default.nix b/pkgs/tools/graphics/asymptote/default.nix
index de3ba3621a88..6c6a93dc73ac 100644
--- a/pkgs/tools/graphics/asymptote/default.nix
+++ b/pkgs/tools/graphics/asymptote/default.nix
@@ -50,6 +50,8 @@ stdenv.mkDerivation {
     sed -i -e 's|(asymptote/asymptote)|(asymptote)|' $out/share/info/asymptote.info
     rmdir $out/share/info/asymptote
     rm $out/share/info/dir
+
+    rm -rf "$out"/share/texmf
   '';
 
   enableParallelBuilding = true;

From eca23233b2c1d42c6786c19e3a7db77521b9e6f2 Mon Sep 17 00:00:00 2001
From: Silvan Mosberger <infinisil@icloud.com>
Date: Sat, 23 Sep 2017 20:02:16 +0200
Subject: [PATCH 225/533] encrypted devices: add label set assertion (#29651)

---
 nixos/modules/tasks/encrypted-devices.nix | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/nixos/modules/tasks/encrypted-devices.nix b/nixos/modules/tasks/encrypted-devices.nix
index b019ddc3a98c..fa0abb43c0ce 100644
--- a/nixos/modules/tasks/encrypted-devices.nix
+++ b/nixos/modules/tasks/encrypted-devices.nix
@@ -56,6 +56,13 @@ in
   };
 
   config = mkIf anyEncrypted {
+    assertions = map (dev: {
+      assertion = dev.label != null;
+      message = ''
+        The filesystem for ${dev.mountPoint} has encrypted.enable set to true, but no encrypted.label set
+      '';
+    }) encDevs;
+
     boot.initrd = {
       luks = {
         devices =

From 3d040f9305186651c0b791d368f4c7b8d2e398b3 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Sat, 23 Sep 2017 19:46:45 +0200
Subject: [PATCH 226/533] nixos/install: disable kernel debug console logging

Add another option for debugging instead. Lots of users have been
complaining about this default behaviour.

This patch also cleans up the EFI bootloader entries in the ISO.
---
 nixos/modules/installer/cd-dvd/iso-image.nix  | 57 +++++++++++++------
 .../modules/profiles/installation-device.nix  |  1 -
 2 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 8891ce0b6667..96f7aac1d59d 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -46,17 +46,24 @@ let
 
     # A variant to boot with 'nomodeset'
     LABEL boot-nomodeset
-    MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (with nomodeset)
+    MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (nomodeset)
     LINUX /boot/bzImage
     APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset
     INITRD /boot/initrd
 
     # A variant to boot with 'copytoram'
     LABEL boot-copytoram
-    MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (with copytoram)
+    MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (copytoram)
     LINUX /boot/bzImage
     APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram
     INITRD /boot/initrd
+
+    # A variant to boot with verbose logging to the console
+    LABEL boot-nomodeset
+    MENU LABEL NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug)
+    LINUX /boot/bzImage
+    APPEND init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
+    INITRD /boot/initrd
   '';
 
   isolinuxMemtest86Entry = ''
@@ -74,25 +81,43 @@ let
     cp -v ${pkgs.systemd}/lib/systemd/boot/efi/systemd-boot${targetArch}.efi $out/EFI/boot/boot${targetArch}.efi
     mkdir -p $out/loader/entries
 
-    echo "title NixOS Live CD" > $out/loader/entries/nixos-livecd.conf
-    echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd.conf
-    echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd.conf
-    echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" >> $out/loader/entries/nixos-livecd.conf
+    cat << EOF > $out/loader/entries/nixos-iso.conf
+    title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel}
+    linux /boot/bzImage
+    initrd /boot/initrd
+    options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}
+    EOF
 
     # A variant to boot with 'nomodeset'
-    echo "title NixOS Live CD (with nomodeset)" > $out/loader/entries/nixos-livecd-nomodeset.conf
-    echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd-nomodeset.conf
-    echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd-nomodeset.conf
-    echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset" >> $out/loader/entries/nixos-livecd-nomodeset.conf
+    cat << EOF > $out/loader/entries/nixos-iso-nomodeset.conf
+    title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel}
+    version nomodeset
+    linux /boot/bzImage
+    initrd /boot/initrd
+    options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} nomodeset
+    EOF
 
     # A variant to boot with 'copytoram'
-    echo "title NixOS Live CD (with copytoram)" > $out/loader/entries/nixos-livecd-copytoram.conf
-    echo "linux /boot/bzImage" >> $out/loader/entries/nixos-livecd-copytoram.conf
-    echo "initrd /boot/initrd" >> $out/loader/entries/nixos-livecd-copytoram.conf
-    echo "options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram" >> $out/loader/entries/nixos-livecd-copytoram.conf
+    cat << EOF > $out/loader/entries/nixos-iso-copytoram.conf
+    title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel}
+    version copytoram
+    linux /boot/bzImage
+    initrd /boot/initrd
+    options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} copytoram
+    EOF
 
-    echo "default nixos-livecd" > $out/loader/loader.conf
-    echo "timeout ${builtins.toString config.boot.loader.timeout}" >> $out/loader/loader.conf
+    # A variant to boot with verbose logging to the console
+    cat << EOF > $out/loader/entries/nixos-iso-debug.conf
+    title NixOS ${config.system.nixosVersion}${config.isoImage.appendToMenuLabel} (debug)
+    linux /boot/bzImage
+    initrd /boot/initrd
+    options init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams} loglevel=7
+    EOF
+
+    cat << EOF > $out/loader/loader.conf
+    default nixos-iso
+    timeout ${builtins.toString config.boot.loader.timeout}
+    EOF
   '';
 
   efiImg = pkgs.runCommand "efi-image_eltorito" { buildInputs = [ pkgs.mtools pkgs.libfaketime ]; }
diff --git a/nixos/modules/profiles/installation-device.nix b/nixos/modules/profiles/installation-device.nix
index 8e1482f5533f..506a6ee3eaa8 100644
--- a/nixos/modules/profiles/installation-device.nix
+++ b/nixos/modules/profiles/installation-device.nix
@@ -77,7 +77,6 @@ with lib;
     # Show all debug messages from the kernel but don't log refused packets
     # because we have the firewall enabled. This makes installs from the
     # console less cumbersome if the machine has a public IP.
-    boot.consoleLogLevel = mkDefault 7;
     networking.firewall.logRefusedConnections = mkDefault false;
 
     environment.systemPackages = [ pkgs.vim ];

From 0f5cd17f2ca43bc69e912ad04b83892e946ca0cc Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Sat, 23 Sep 2017 20:01:49 +0200
Subject: [PATCH 227/533] nixos-generate-config: add programs options examples

---
 nixos/modules/installer/tools/nixos-generate-config.pl | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 3af76f898f9a..4ec48b773358 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -583,9 +583,15 @@ $bootLoaderConfig
   # List packages installed in system profile. To search by name, run:
   # \$ nix-env -qaP | grep wget
   # environment.systemPackages = with pkgs; [
-  #   wget
+  #   wget vim
   # ];
 
+  # Some programs need SUID wrappers, can be configured further or are
+  # started in user sessions.
+  # programs.bash.enableCompletion = true;
+  # programs.mtr.enable = true;
+  # programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
+
   # List services that you want to enable:
 
   # Enable the OpenSSH daemon.

From 948f4a9c6d15a9f5380ea23a5292fdc503804e44 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Sun, 11 Dec 2016 18:05:49 +0100
Subject: [PATCH 228/533] npm module: add npm as nixos program

---
 nixos/modules/module-list.nix  |  1 +
 nixos/modules/programs/npm.nix | 44 ++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)
 create mode 100644 nixos/modules/programs/npm.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index c89bbcc71acf..a94946a280f8 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -78,6 +78,7 @@
   ./programs/man.nix
   ./programs/mosh.nix
   ./programs/nano.nix
+  ./programs/npm.nix
   ./programs/oblogout.nix
   ./programs/screen.nix
   ./programs/shadow.nix
diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix
new file mode 100644
index 000000000000..7ef172355c1f
--- /dev/null
+++ b/nixos/modules/programs/npm.nix
@@ -0,0 +1,44 @@
+{ config, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.npm;
+in
+
+{
+  ###### interface
+
+  options = {
+    programs.npm = {
+      enable = mkEnableOption "<command>npm</command> global config";
+
+      npmrc = lib.mkOption {
+        type = lib.types.lines;
+        description = ''
+          The system-wide npm configuration.
+          See <link xlink:href="https://docs.npmjs.com/misc/config"/>.
+        '';
+        default = ''
+          prefix = ''${HOME}/.npm
+        '';
+        example = ''
+          prefix = ''${HOME}/.npm
+          https-proxy=proxy.example.com
+          init-license=MIT
+          init-author-url=http://npmjs.org
+          color=true
+        '';
+      };
+    };
+  };
+
+  ###### implementation
+
+  config = lib.mkIf cfg.enable {
+    environment.etc."npmrc".text = cfg.npmrc;
+
+    environment.variables.NPM_CONFIG_GLOBALCONFIG = "/etc/npmrc";
+  };
+
+}

From f1355079b9fdbc439216249a49053c04c7f259de Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@devalot.com>
Date: Sat, 23 Sep 2017 11:40:24 -0700
Subject: [PATCH 229/533] playbar2: init at 2.5

---
 pkgs/applications/audio/playbar2/default.nix | 37 ++++++++++++++++++++
 pkgs/top-level/all-packages.nix              |  2 ++
 2 files changed, 39 insertions(+)
 create mode 100644 pkgs/applications/audio/playbar2/default.nix

diff --git a/pkgs/applications/audio/playbar2/default.nix b/pkgs/applications/audio/playbar2/default.nix
new file mode 100644
index 000000000000..16d5eb69cb97
--- /dev/null
+++ b/pkgs/applications/audio/playbar2/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, cmake
+, extra-cmake-modules
+, plasma-framework
+, kwindowsystem
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  name = "playbar2-${version}";
+  version = "2.5";
+
+  src = fetchFromGitHub {
+    owner = "audoban";
+    repo = "PlayBar2";
+    rev = "v${version}";
+    sha256 = "0iv2m4flgaz2r0k7f6l0ca8p6cw8j8j2gin1gci2pg3l5g5khbch";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    plasma-framework
+    kwindowsystem
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Mpris2 Client for Plasma5";
+    homepage = https://github.com/audoban/PlayBar2;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ pjones ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 257d116ec79d..272ac750a595 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3889,6 +3889,8 @@ with pkgs;
 
   platinum-searcher = callPackage ../tools/text/platinum-searcher { };
 
+  playbar2 = libsForQt5.callPackage ../applications/audio/playbar2 { };
+
   plex = callPackage ../servers/plex { enablePlexPass = config.plex.enablePlexPass or false; };
 
   ploticus = callPackage ../tools/graphics/ploticus {

From db2538fb0cfdb92b3fd4e4204023641825fd4604 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Sat, 23 Sep 2017 20:41:50 +0200
Subject: [PATCH 230/533] qt5-qtbase: fix darwin build

Fixes #27474
---
 .../libraries/qt-5/5.9/qtbase/darwin-cf.patch | 36 +++++++++++++++++++
 .../libraries/qt-5/5.9/qtbase/default.nix     |  7 ++--
 2 files changed, 40 insertions(+), 3 deletions(-)
 create mode 100644 pkgs/development/libraries/qt-5/5.9/qtbase/darwin-cf.patch

diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-cf.patch b/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-cf.patch
new file mode 100644
index 000000000000..3e6e0e5101a1
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/darwin-cf.patch
@@ -0,0 +1,36 @@
+diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
+index 341d3bc..3368234 100644
+--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
++++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
+@@ -287,7 +287,7 @@ void QScanThread::getUserConfigurations()
+     QMacAutoReleasePool pool;
+     userProfiles.clear();
+ 
+-    NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
++    NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
+     for (NSString *ifName in wifiInterfaces) {
+ 
+         CWInterface *wifiInterface = [[CWWiFiClient sharedWiFiClient] interfaceWithName:ifName];
+@@ -602,7 +602,7 @@ void QCoreWlanEngine::doRequestUpdate()
+ 
+     QMacAutoReleasePool pool;
+ 
+-    NSArray<NSString *> *wifiInterfaces = [CWWiFiClient interfaceNames];
++    NSArray *wifiInterfaces = [CWWiFiClient interfaceNames];
+     for (NSString *ifName in wifiInterfaces) {
+             scanThread->interfaceName = QString::fromNSString(ifName);
+             scanThread->start();
+ QString TableGenerator::findComposeFile()
+diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm
+index 59b7637..b91139d 100644
+--- a/src/plugins/platforms/cocoa/qcocoawindow.mm
++++ b/src/plugins/platforms/cocoa/qcocoawindow.mm
+@@ -320,7 +320,7 @@ static void qt_closePopups()
+ + (void)applicationActivationChanged:(NSNotification*)notification
+ {
+     const id sender = self;
+-    NSEnumerator<NSWindow*> *windowEnumerator = nullptr;
++    NSEnumerator *windowEnumerator = nullptr;
+     NSApplication *application = [NSApplication sharedApplication];
+ 
+ #if QT_MACOS_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_10_12)
diff --git a/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
index a4451a486ce1..23dab52b80c5 100644
--- a/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation {
       AGL AppKit ApplicationServices Carbon Cocoa
       CoreAudio CoreBluetooth CoreLocation CoreServices
       DiskArbitration Foundation OpenGL
-      darwin.cf-private darwin.libobjc libiconv
+      darwin.libobjc libiconv
     ]);
 
   buildInputs = [ ]
@@ -79,7 +79,8 @@ stdenv.mkDerivation {
   outputs = [ "out" "dev" "bin" ];
 
   patches =
-    copyPathsToStore (lib.readPathsFromFile ./. ./series);
+    copyPathsToStore (lib.readPathsFromFile ./. ./series)
+    ++ stdenv.lib.optional stdenv.isDarwin ./darwin-cf.patch;
 
   postPatch =
     ''
@@ -110,7 +111,7 @@ stdenv.mkDerivation {
           -e 's#val=$(echo $sdk_val $(echo $val | cut -s -d \x27 \x27 -f 2-))##' \
           ./configure
       sed -i '3,$d' ./mkspecs/features/mac/default_pre.prf
-      sed -i '26,$d' ./mkspecs/features/mac/default_post.prf
+      sed -i '27,$d' ./mkspecs/features/mac/default_post.prf
       sed -i '1,$d' ./mkspecs/features/mac/sdk.prf
       sed -i 's/QMAKE_LFLAGS_RPATH      = -Wl,-rpath,/QMAKE_LFLAGS_RPATH      =/' ./mkspecs/common/mac.conf
      '';

From 1a9467edd5c746c8893628c065cadd20fc601675 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Fri, 22 Sep 2017 02:13:05 +0200
Subject: [PATCH 231/533] fuse3: 3.1.1 -> 3.2.0

---
 pkgs/os-specific/linux/fuse/common.nix        | 54 +++++++++++--------
 pkgs/os-specific/linux/fuse/default.nix       |  4 +-
 .../linux/fuse/fuse3-install.patch            | 24 +++++++++
 .../linux/fuse/fuse3-install_man.patch        |  8 +++
 .../linux/fuse/fuse3-no-udev.patch            | 12 +++++
 5 files changed, 79 insertions(+), 23 deletions(-)
 create mode 100644 pkgs/os-specific/linux/fuse/fuse3-install.patch
 create mode 100644 pkgs/os-specific/linux/fuse/fuse3-install_man.patch
 create mode 100644 pkgs/os-specific/linux/fuse/fuse3-no-udev.patch

diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix
index 8938eaae8183..b18b6de0d140 100644
--- a/pkgs/os-specific/linux/fuse/common.nix
+++ b/pkgs/os-specific/linux/fuse/common.nix
@@ -1,8 +1,10 @@
 { version, sha256Hash, maintainers }:
 
 { stdenv, fetchFromGitHub, fetchpatch
-, utillinux, autoconf, automake, libtool, gettext
-, fusePackages }:
+, fusePackages, utillinux, gettext
+, autoconf, automake, libtool
+, meson, ninja, pkgconfig
+}:
 
 let
   isFuse3 = stdenv.lib.hasPrefix "3" version;
@@ -16,15 +18,25 @@ in stdenv.mkDerivation rec {
     sha256 = sha256Hash;
   };
 
-  patches = stdenv.lib.optional
-    (!isFuse3 && stdenv.isAarch64)
-    (fetchpatch {
-      url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
-      sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
-  });
+  patches =
+    stdenv.lib.optional
+      (!isFuse3 && stdenv.isAarch64)
+      (fetchpatch {
+        url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch";
+        sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa";
+      })
+    ++ stdenv.lib.optionals isFuse3 [
+      ./fuse3-no-udev.patch # only required for udevrulesdir
+      ./fuse3-install.patch
+      # install_man makes the build non-reproducible by encoding the date
+      ./fuse3-install_man.patch
+    ];
 
-  nativeBuildInputs = [ libtool autoconf automake ];
-  buildInputs = [ gettext utillinux ];
+
+  nativeBuildInputs = if isFuse3
+    then [ meson ninja pkgconfig ]
+    else [ autoconf automake libtool ];
+  buildInputs = stdenv.lib.optional (!isFuse3) gettext;
 
   outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
 
@@ -39,27 +51,27 @@ in stdenv.mkDerivation rec {
     export NIX_CFLAGS_COMPILE="-DFUSERMOUNT_DIR=\"/run/wrappers/bin\""
 
     sed -e 's@/bin/@${utillinux}/bin/@g' -i lib/mount_util.c
-    sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
-
-    ./makeconf.sh
-  '';
-
-  postFixup = if isFuse3 then ''
-    cd $out
+    '' + (if isFuse3 then ''
+      # The configure phase will delete these files (temporary workaround for
+      # ./fuse3-install_man.patch)
+      install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1
+      install -D -m444 doc/mount.fuse.8 $out/share/man/man8/mount.fuse.8
+    '' else ''
+      sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
+      ./makeconf.sh
+    '');
 
+  postFixup = "cd $out\n" + (if isFuse3 then ''
     mv bin/mount.fuse3 bin/mount.fuse
-    mv etc/udev/rules.d/99-fuse3.rules etc/udev/rules.d/99-fuse.rules
 
     install -D -m555 bin/mount.fuse $common/bin/mount.fuse
     install -D -m444 etc/udev/rules.d/99-fuse.rules $common/etc/udev/rules.d/99-fuse.rules
     install -D -m444 share/man/man8/mount.fuse.8.gz $common/share/man/man8/mount.fuse.8.gz
   '' else ''
-    cd $out
-
     cp ${fusePackages.fuse_3.common}/bin/mount.fuse bin/mount.fuse
     cp ${fusePackages.fuse_3.common}/etc/udev/rules.d/99-fuse.rules etc/udev/rules.d/99-fuse.rules
     cp ${fusePackages.fuse_3.common}/share/man/man8/mount.fuse.8.gz share/man/man8/mount.fuse.8.gz
-  '';
+  '');
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix
index 1a6c45c7cee9..669d115aab99 100644
--- a/pkgs/os-specific/linux/fuse/default.nix
+++ b/pkgs/os-specific/linux/fuse/default.nix
@@ -13,8 +13,8 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.1.1";
-    sha256Hash = "14mazl2i55fp4vjphwgcmk3mp2x3mhqwh9nci0rd0jl5lhpdmpq6";
+    version = "3.2.0";
+    sha256Hash = "0bfpwkfamg4rcbq1s7v5rblpisqq73z6d5j3dxypgqll07hfg51x";
     maintainers = [ maintainers.primeos ];
   };
 }
diff --git a/pkgs/os-specific/linux/fuse/fuse3-install.patch b/pkgs/os-specific/linux/fuse/fuse3-install.patch
new file mode 100644
index 000000000000..f77639367acf
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-install.patch
@@ -0,0 +1,24 @@
+--- a/util/install_helper.sh	1970-01-01 01:00:01.000000000 +0100
++++ b/util/install_helper.sh	2017-09-21 23:43:50.703942577 +0200
+@@ -11,19 +11,11 @@
+ udevrulesdir="$3"
+ prefix="${MESON_INSTALL_DESTDIR_PREFIX}"
+ 
+-chown root:root "${prefix}/${bindir}/fusermount3"
+-chmod u+s "${prefix}/${bindir}/fusermount3"
+-
+-if test ! -e "${DESTDIR}/dev/fuse"; then
+-    mkdir -p "${DESTDIR}/dev"
+-    mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
+-fi
+-
+ install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
+-        "${DESTDIR}/${udevrulesdir}/99-fuse3.rules"
++        "${prefix}/${udevrulesdir}/99-fuse.rules"
+ 
+ install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \
+-        "${DESTDIR}/etc/init.d/fuse3"
++        "${prefix}/etc/init.d/fuse3"
+ 
+ if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then
+     /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true
diff --git a/pkgs/os-specific/linux/fuse/fuse3-install_man.patch b/pkgs/os-specific/linux/fuse/fuse3-install_man.patch
new file mode 100644
index 000000000000..491f92e364f6
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-install_man.patch
@@ -0,0 +1,8 @@
+--- a/doc/meson.build	1970-01-01 01:00:01.000000000 +0100
++++ b/doc/meson.build	2017-09-22 01:53:01.859190506 +0200
+@@ -1,5 +1,4 @@
+ # Attention, emacs, please use -*- mode: python -*-
+ # (even though this isn't actually Python code)
+ 
+-install_man('fusermount3.1', 'mount.fuse.8')
+ 
diff --git a/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch b/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch
new file mode 100644
index 000000000000..c48abfe59c53
--- /dev/null
+++ b/pkgs/os-specific/linux/fuse/fuse3-no-udev.patch
@@ -0,0 +1,12 @@
++++ b/util/meson.build	2017-09-23 20:59:31.555392297 +0200
+--- a/util/meson.build	2017-09-23 20:59:58.333180437 +0200
+@@ -18,8 +18,7 @@
+            install: true,
+            install_dir: get_option('sbindir'))
+ 
+-udev = dependency('udev')
+-udevrulesdir = join_paths(udev.get_pkgconfig_variable('udevdir'), 'rules.d')
++udevrulesdir = 'etc/udev/rules.d'
+ 
+ meson.add_install_script('install_helper.sh', get_option('sysconfdir'),
+                          get_option('bindir'), udevrulesdir)

From 8a249c51b6e67b2e956fb833d824a6f12d5de339 Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Fri, 22 Sep 2017 18:31:50 +0200
Subject: [PATCH 232/533] riot-web: 0.12.5 -> 0.12.6

---
 .../networking/instant-messengers/riot/riot-web.nix           | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
index 964f1ab52040..db0d874c5897 100644
--- a/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
+++ b/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name= "riot-web-${version}";
-  version = "0.12.5";
+  version = "0.12.6";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "1g30gl4b5fk1h13r2v4rspcqic9jg99717lxplk5birg3wi3b2d3";
+    sha256 = "00hxjhnsm4622hv46xm7lc81kbnzi2iz77qppwma14cbh63jbilv";
   };
 
   installPhase = ''

From c97e5f2670660383045c0079bc864eef2a10ba53 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Sat, 23 Sep 2017 15:35:21 +0200
Subject: [PATCH 233/533] apulse: 0.1.6 -> 0.1.10

---
 pkgs/misc/apulse/default.nix | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/pkgs/misc/apulse/default.nix b/pkgs/misc/apulse/default.nix
index 12d774467c52..4b2323eaa716 100644
--- a/pkgs/misc/apulse/default.nix
+++ b/pkgs/misc/apulse/default.nix
@@ -2,17 +2,20 @@
 
 stdenv.mkDerivation rec {
   name = "apulse-${version}";
-  version = "0.1.6";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "i-rinat";
     repo = "apulse";
     rev = "v${version}";
-    sha256 = "1w0mqa8gcrvvlns3pryhmlsc0g1irdnwsawx4g34wgwrp9paqqzm";
+    sha256 = "018gaxn647wz1vjbr49hfrch9svnv0d1nzijc8ckb4fsr8vv95a1";
   };
 
-  buildInputs =
-    [ alsaLib cmake pkgconfig glib ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ alsaLib glib ];
 
   meta = with stdenv.lib; {
     description = "PulseAudio emulation for ALSA";

From 09a09c892c117513671f61489fb2ad51336d3966 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Sat, 23 Sep 2017 18:25:42 +0200
Subject: [PATCH 234/533] tor-browser-bundle-bin: support audio playback
 without pulseaudio

Still a little rough around the edges but does work.  Defaults to using
the default plughw; set the APULSE_PLAYBACK_DEVICE envvar to override.
---
 .../tor-browser-bundle-bin/default.nix        | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 1e61cabb7a12..28cc273c679c 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -23,10 +23,11 @@
 , pango
 
 , audioSupport ? mediaSupport
-, pulseaudioSupport ? audioSupport
+, pulseaudioSupport ? false
 , libpulseaudio
+, apulse
 
-# Media support (implies pulseaudio support)
+# Media support (implies audio support)
 , mediaSupport ? false
 , gstreamer
 , gst-plugins-base
@@ -158,6 +159,11 @@ stdenv.mkDerivation rec {
     # and torLibPath for accuracy, but this is more convenient ...
     libPath=${libPath}:$TBB_IN_STORE:$TBB_IN_STORE/TorBrowser/Tor
 
+    # apulse uses a non-standard library path.  For now special-case it.
+    ${optionalString (audioSupport && !pulseaudioSupport) ''
+      libPath=${apulse}/lib/apulse:$libPath
+    ''}
+
     # Fixup paths to pluggable transports.
     sed -i TorBrowser/Data/Tor/torrc-defaults \
         -e "s,./TorBrowser,$TBB_IN_STORE/TorBrowser,g"
@@ -218,6 +224,13 @@ stdenv.mkDerivation rec {
     // toggling the pref takes effect.
     lockPref("browser.tabs.remote.autostart.2", ${if disableContentSandbox then "false" else "true"});
 
+    // Allow sandbox access to sound devices if using ALSA directly
+    ${if (audioSupport && !pulseaudioSupport) then ''
+      pref("security.sandbox.content.write_path_whitelist", "/dev/snd/");
+    '' else ''
+      clearPref("security.sandbox.content.write_path_whitelist");
+    ''}
+
     ${optionalString (extraPrefs != "") ''
       ${extraPrefs}
     ''}
@@ -336,6 +349,8 @@ stdenv.mkDerivation rec {
       PULSE_SERVER="\''${PULSE_SERVER:-}" \
       PULSE_COOKIE="\''${PULSE_COOKIE:-}" \
       \
+      APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plughw:0,0}" \
+      \
       TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \
       TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \
       TOR_SOCKS_PORT="\''${TOR_SOCKS_PORT:-}" \

From 62983f5caec7f07163d0bfa9ac185f0a8a071b8f Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <fare@tunes.org>
Date: Sat, 23 Sep 2017 16:22:01 -0400
Subject: [PATCH 235/533] nfsd: add extraNfsdConfig

---
 nixos/modules/services/network-filesystems/nfsd.nix | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/nixos/modules/services/network-filesystems/nfsd.nix b/nixos/modules/services/network-filesystems/nfsd.nix
index 7d127145101b..1a78f9a76a33 100644
--- a/nixos/modules/services/network-filesystems/nfsd.nix
+++ b/nixos/modules/services/network-filesystems/nfsd.nix
@@ -27,6 +27,14 @@ in
           '';
         };
 
+        extraNfsdConfig = mkOption {
+          type = types.str;
+          default = "";
+          description = ''
+            Extra configuration options for the [nfsd] section of /etc/nfs.conf.
+          '';
+        };
+
         exports = mkOption {
           type = types.lines;
           default = "";
@@ -107,6 +115,7 @@ in
       [nfsd]
       threads=${toString cfg.nproc}
       ${optionalString (cfg.hostName != null) "host=${cfg.hostName}"}
+      ${cfg.extraNfsdConfig}
 
       [mountd]
       ${optionalString (cfg.mountdPort != null) "port=${toString cfg.mountdPort}"}

From bb02b800a2087c08c155abcf7cbfc444e26c19cc Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Sat, 23 Sep 2017 22:28:47 +0200
Subject: [PATCH 236/533] darwin-frameworks: add impure version of
 CoreFoundation

---
 pkgs/os-specific/darwin/apple-sdk/frameworks.nix | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
index 7b930e86a39f..081f713d0549 100644
--- a/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/frameworks.nix
@@ -23,6 +23,9 @@ with frameworks; with libs; {
   CalendarStore           = [];
   Cocoa                   = [ AppKit ];
   Collaboration           = [];
+  # Impure version of CoreFoundation, this should not be used unless another
+  # framework includes headers that are not available in the pure version.
+  CoreFoundation          = [];
   CoreAudio               = [ CF IOKit ];
   CoreAudioKit            = [ AudioUnit ];
   CoreData                = [];

From 7d98316a9745ae6538f90dc580b0873074dfd5e5 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Mon, 18 Sep 2017 23:15:26 +0200
Subject: [PATCH 237/533] libjack2: fix darwin build

---
 pkgs/misc/jackaudio/clang.patch     | 22 +++++++++++++
 pkgs/misc/jackaudio/darwin-cf.patch | 49 +++++++++++++++++++++++++++++
 pkgs/misc/jackaudio/default.nix     | 28 ++++++++++++++---
 pkgs/top-level/all-packages.nix     |  1 +
 4 files changed, 95 insertions(+), 5 deletions(-)
 create mode 100644 pkgs/misc/jackaudio/clang.patch
 create mode 100644 pkgs/misc/jackaudio/darwin-cf.patch

diff --git a/pkgs/misc/jackaudio/clang.patch b/pkgs/misc/jackaudio/clang.patch
new file mode 100644
index 000000000000..131f8c4c04dd
--- /dev/null
+++ b/pkgs/misc/jackaudio/clang.patch
@@ -0,0 +1,22 @@
+diff --git a/tests/test.cpp b/tests/test.cpp
+index 8a8a811..31e8459 100644
+--- a/tests/test.cpp
++++ b/tests/test.cpp
+@@ -479,7 +479,7 @@ int process4(jack_nframes_t nframes, void *arg)
+ 	jack_nframes_t delta_time = cur_time - last_time;
+ 
+ 	Log("calling process4 callback : jack_frame_time = %ld delta_time = %ld\n", cur_time, delta_time);
+-	if (delta_time > 0  && (jack_nframes_t)abs(delta_time - cur_buffer_size) > tolerance) {
++	if (delta_time > 0  && (jack_nframes_t)fabs(delta_time - cur_buffer_size) > tolerance) {
+ 		printf("!!! ERROR !!! jack_frame_time seems to return incorrect values cur_buffer_size = %d, delta_time = %d tolerance %d\n", cur_buffer_size, delta_time, tolerance);
+ 	}
+ 
+@@ -1064,7 +1064,7 @@ int main (int argc, char *argv[])
+     }
+     jack_sleep(1 * 1000);
+     cur_buffer_size = jack_get_buffer_size(client1);
+-    if (abs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
++    if (fabs((old_buffer_size * factor) - cur_buffer_size) > 5) {  // Tolerance needed for dummy driver...
+         printf("!!! ERROR !!! Buffer size has not been changed !\n");
+         printf("!!! Maybe jack was compiled without the '--enable-resize' flag...\n");
+     } else {
diff --git a/pkgs/misc/jackaudio/darwin-cf.patch b/pkgs/misc/jackaudio/darwin-cf.patch
new file mode 100644
index 000000000000..0fc0902a0c48
--- /dev/null
+++ b/pkgs/misc/jackaudio/darwin-cf.patch
@@ -0,0 +1,49 @@
+diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp
+index 7eea281..4b8d75d 100644
+--- a/common/Jackdmp.cpp
++++ b/common/Jackdmp.cpp
+@@ -50,43 +50,11 @@ are "hard-coded" in the source. A much better approach would be to use the contr
+ - get available drivers and their possible parameters, then prepare to parse them.
+ */
+
+-#ifdef __APPLE__
+-#include <CoreFoundation/CFNotificationCenter.h>
+-#include <CoreFoundation/CoreFoundation.h>
+-
+-static void notify_server_start(const char* server_name)
+-{
+-    // Send notification to be used in the JackRouter plugin
+-    CFStringRef ref = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
+-    CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDistributedCenter(),
+-            CFSTR("com.grame.jackserver.start"),
+-            ref,
+-            NULL,
+-            kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions);
+-    CFRelease(ref);
+-}
+-
+-static void notify_server_stop(const char* server_name)
+-{
+-    // Send notification to be used in the JackRouter plugin
+-    CFStringRef ref1 = CFStringCreateWithCString(NULL, server_name, kCFStringEncodingMacRoman);
+-    CFNotificationCenterPostNotificationWithOptions(CFNotificationCenterGetDistributedCenter(),
+-            CFSTR("com.grame.jackserver.stop"),
+-            ref1,
+-            NULL,
+-            kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions);
+-    CFRelease(ref1);
+-}
+-
+-#else
+-
+ static void notify_server_start(const char* server_name)
+ {}
+ static void notify_server_stop(const char* server_name)
+ {}
+
+-#endif
+-
+ static void copyright(FILE* file)
+ {
+     fprintf(file, "jackdmp " VERSION "\n"
+
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 52f288deba33..20da91efede8 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -1,9 +1,12 @@
 { stdenv, fetchFromGitHub, pkgconfig, python2Packages, makeWrapper
 , bash, libsamplerate, libsndfile, readline, eigen, celt
+# Darwin Dependencies
+, aften, AudioToolbox, CoreAudio, CoreFoundation
 
 # Optional Dependencies
 , dbus ? null, libffado ? null, alsaLib ? null
 , libopus ? null
+, darwin
 
 # Extra options
 , prefix ? ""
@@ -16,7 +19,7 @@ let
 
   libOnly = prefix == "lib";
 
-  optDbus = shouldUsePkg dbus;
+  optDbus = if stdenv.isDarwin then null else shouldUsePkg dbus;
   optPythonDBus = if libOnly then null else shouldUsePkg dbus-python;
   optLibffado = if libOnly then null else shouldUsePkg libffado;
   optAlsaLib = if libOnly then null else shouldUsePkg alsaLib;
@@ -34,21 +37,36 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig python makeWrapper ];
-  buildInputs = [ python libsamplerate libsndfile readline eigen celt
+  buildInputs = [ libsamplerate libsndfile readline eigen celt
     optDbus optPythonDBus optLibffado optAlsaLib optLibopus
-  ];
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ];
 
-  patchPhase = ''
-    substituteInPlace svnversion_regenerate.sh --replace /bin/bash ${bash}/bin/bash
+  # CoreFoundation 10.10 doesn't include CFNotificationCenter.h yet.
+  patches = stdenv.lib.optionals stdenv.isDarwin [ ./clang.patch ./darwin-cf.patch ];
+
+  prePatch = ''
+    substituteInPlace svnversion_regenerate.sh \
+        --replace /bin/bash ${bash}/bin/bash
+  '';
+
+  # It looks like one of the frameworks depends on <CoreFoundation/CFAttributedString.h>
+  # since frameworks are impure we also have to use the impure CoreFoundation here.
+  # FIXME: remove when CoreFoundation is updated to 10.11
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE"
   '';
 
   configurePhase = ''
+    runHook preConfigure
+
     python waf configure --prefix=$out \
       ${optionalString (optDbus != null) "--dbus"} \
       --classic \
       ${optionalString (optLibffado != null) "--firewire"} \
       ${optionalString (optAlsaLib != null) "--alsa"} \
       --autostart=${if (optDbus != null) then "dbus" else "classic"} \
+
+    runHook postConfigure
   '';
 
   buildPhase = ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 257d116ec79d..3fe36446518a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18886,6 +18886,7 @@ with pkgs;
 
   jack2Full = callPackage ../misc/jackaudio {
     libopus = libopus.override { withCustomModes = true; };
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox CoreAudio CoreFoundation;
   };
   libjack2 = jack2Full.override { prefix = "lib"; };
 

From 331f5a75ce93e237d5aeb37db7612d9b609098a8 Mon Sep 17 00:00:00 2001
From: Winnie Quinn <me@winniequinn.com>
Date: Tue, 12 Sep 2017 16:22:39 -0400
Subject: [PATCH 238/533] opam: use aspcud on darwin

aspcud is the recommended solver for OPAM and the `aspcud` package is
now building properly on Darwin. As such, we can remove the special case
for Darwin that required OPAM to fall back to the built-in solver.
---
 pkgs/development/tools/ocaml/opam/default.nix | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index 28d4724a1627..63f79981e1b2 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -1,6 +1,5 @@
 { stdenv, lib, fetchgit, fetchurl, makeWrapper,
-  ocaml, unzip, ncurses, curl,
-  aspcudSupport ? !stdenv.isDarwin, aspcud
+  ocaml, unzip, ncurses, curl, aspcud
 }:
 
 assert lib.versionAtLeast ocaml.version "3.12.1";
@@ -72,12 +71,10 @@ in stdenv.mkDerivation rec {
   # Dirty, but apparently ocp-build requires a TERM
   makeFlags = ["TERM=screen"];
 
-  postInstall =
-    if aspcudSupport then ''
-      wrapProgram $out/bin/opam \
-        --suffix PATH : ${aspcud}/bin
-    ''
-    else "";
+  postInstall = ''
+    wrapProgram $out/bin/opam \
+      --suffix PATH : ${aspcud}/bin
+  '';
 
   doCheck = false;
 

From 67120e231d8609e71879c0b6d132c1f1ccaecfa7 Mon Sep 17 00:00:00 2001
From: Tobias Happ <tobias.happ@gmx.de>
Date: Sat, 23 Sep 2017 23:08:09 +0200
Subject: [PATCH 239/533] slock: adds ability to add custom patches

---
 pkgs/misc/screensavers/slock/default.nix | 2 +-
 pkgs/top-level/all-packages.nix          | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/pkgs/misc/screensavers/slock/default.nix b/pkgs/misc/screensavers/slock/default.nix
index 55765a520da2..6b310236de42 100644
--- a/pkgs/misc/screensavers/slock/default.nix
+++ b/pkgs/misc/screensavers/slock/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   installFlags = "DESTDIR=\${out} PREFIX=";
 
-  patchPhase = "sed -i '/chmod u+s/d' Makefile";
+  postPatch = "sed -i '/chmod u+s/d' Makefile";
 
   preBuild = optionalString (conf != null) ''
     cp ${writeText "config.def.h" conf} config.def.h
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5418ddc002f8..14a260664201 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19065,7 +19065,9 @@ with pkgs;
 
   seafile-shared = callPackage ../misc/seafile-shared { };
 
-  slock = callPackage ../misc/screensavers/slock { };
+  slock = callPackage ../misc/screensavers/slock {
+    conf = config.slock.conf or null;
+  };
 
   smokeping = callPackage ../tools/networking/smokeping {
     inherit fping rrdtool;

From 699231ed78ca41db175579bb1d7790a20beb75c4 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sat, 23 Sep 2017 22:16:14 +0200
Subject: [PATCH 240/533] sshfs: 3.2.0 -> 3.3.0

---
 .../sshfs-fuse/build-man-pages.patch          | 11 ++++++++++
 pkgs/tools/filesystems/sshfs-fuse/default.nix | 22 ++++++++++++++-----
 2 files changed, 28 insertions(+), 5 deletions(-)
 create mode 100644 pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch

diff --git a/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch b/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch
new file mode 100644
index 000000000000..fba1d250c42b
--- /dev/null
+++ b/pkgs/tools/filesystems/sshfs-fuse/build-man-pages.patch
@@ -0,0 +1,11 @@
+--- a/meson.build	2017-09-23 22:02:57.770555382 +0200
++++ b/meson.build	2017-09-23 23:11:28.258095182 +0200
+@@ -25,7 +25,7 @@
+ endif
+ 
+ 
+-rst2man = find_program('rst2man', required: false)
++rst2man = find_program('rst2man.py', required: true)
+   
+ cfg = configuration_data()
+ 
diff --git a/pkgs/tools/filesystems/sshfs-fuse/default.nix b/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 274be305da84..eace7c2783e1 100644
--- a/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, fuse3, autoreconfHook }:
+{ stdenv, fetchFromGitHub, meson, pkgconfig, ninja, glib, fuse3
+, buildManPages ? true, docutils
+}:
 
-stdenv.mkDerivation rec {
-  version = "3.2.0";
+let
+  inherit (stdenv.lib) optional;
+  rpath = stdenv.lib.makeLibraryPath [ fuse3 glib ];
+in stdenv.mkDerivation rec {
+  version = "3.3.0";
   name = "sshfs-fuse-${version}";
 
   src = fetchFromGitHub {
     owner = "libfuse";
     repo = "sshfs";
     rev = "sshfs-${version}";
-    sha256 = "09pqdibhcj1p7m6vxkqiprvbcxp9iq2lm1hb6w7p8iarmvp80rlv";
+    sha256 = "1hn5c0059ppjqygdhvapxm7lrqm5bnpwaxgjylskz04c0vr8nygp";
   };
 
-  buildInputs = [ pkgconfig glib fuse3 autoreconfHook ];
+  patches = optional buildManPages ./build-man-pages.patch;
+
+  nativeBuildInputs = [ meson pkgconfig ninja ];
+  buildInputs = [ fuse3 glib ] ++ optional buildManPages docutils;
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optional
     (stdenv.system == "i686-linux")
@@ -22,6 +30,10 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
   '';
 
+  postFixup = ''
+       patchelf --set-rpath '${rpath}' "$out/bin/sshfs"
+  '';
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";

From cb94feb2d171c2144382c1c4284c141f0c491da5 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Sat, 23 Sep 2017 23:29:04 +0200
Subject: [PATCH 241/533] openafs-client: 1.6.21 -> 1.6.21.1

Per https://www.openafs.org/dl/openafs/1.6.21.1/RELNOTES-1.6.21.1
this release adds support for linux 4.13

Related to https://github.com/NixOS/nixpkgs/issues/28643
---
 pkgs/servers/openafs-client/default.nix | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/pkgs/servers/openafs-client/default.nix b/pkgs/servers/openafs-client/default.nix
index 93c854d8e08b..263df09ebb56 100644
--- a/pkgs/servers/openafs-client/default.nix
+++ b/pkgs/servers/openafs-client/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   name = "openafs-${version}-${kernel.version}";
-  version = "1.6.21";
+  version = "1.6.21.1";
 
   src = fetchurl {
     url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "ba9c1f615edd53b64fc271ad369c49a816acedca70cdd090975033469a84118f";
+    sha256 = "0nisxnfl8nllcfmi7mxj1gngkpxd4jp1wapbkhz07qwqynq9dn5f";
   };
 
   nativeBuildInputs = [ autoconf automake flex yacc perl which ];
@@ -46,8 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.z77z ];
-    broken =
-      (builtins.compareVersions kernel.version  "3.18" == -1) ||
-      (builtins.compareVersions kernel.version "4.13" == 0);
+    broken = versionOlder kernel.version "3.18";
   };
 }

From c951a0ad07b3ea3f7ab26b302def99a06ca2253a Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Sat, 23 Sep 2017 23:50:22 +0200
Subject: [PATCH 242/533] encfs: 1.9.1 -> 1.9.2

See https://github.com/vgough/encfs/releases/tag/v1.9.2
---
 pkgs/tools/filesystems/encfs/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/filesystems/encfs/default.nix b/pkgs/tools/filesystems/encfs/default.nix
index 518edbb3ea4e..3df76d828318 100644
--- a/pkgs/tools/filesystems/encfs/default.nix
+++ b/pkgs/tools/filesystems/encfs/default.nix
@@ -5,10 +5,10 @@
 
 stdenv.mkDerivation rec {
   name = "encfs-${version}";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
-    sha256 = "1pyldd802db987m13jfmy491mp8mnsv2mwki0ra4wbnngbqgalhv";
+    sha256 = "0isx7n4r8znk02464s0wvlzk6ry5mlnq3kgnd0rapnhjwdvwqr5y";
     rev = "v${version}";
     repo = "encfs";
     owner = "vgough";

From f3b9ac73e2beb9729ce9aad4dd0e25c56d57d056 Mon Sep 17 00:00:00 2001
From: Graham Christensen <graham@grahamc.com>
Date: Sat, 23 Sep 2017 17:54:49 -0400
Subject: [PATCH 243/533] nixos/rabbitmq: fix restarts and sasl logs

1. The chmod 400 with the preset cookie prevented restarts, as
on the second boot it would fail to write to the cookie. Oops.

2. As far as I can tell, sasl logs were disabled because of the
following error:

{error,{cannot_log_to_tty,sasl_report_tty_h,not_installed}}

Not because we actually wanted to disable them. This meant the
management plugin wasn't usable due to a bug set to be fixed in
3.7.0.
---
 nixos/modules/services/amqp/rabbitmq.nix | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index 61545a5acba8..f536d56d7c63 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -105,7 +105,8 @@ in {
         RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
         RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
         RABBITMQ_NODE_PORT = toString cfg.port;
-        RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
+        RABBITMQ_LOGS = "-";
+        RABBITMQ_SASL_LOGS = "-";
         RABBITMQ_PID_FILE = "${cfg.dataDir}/pid";
         SYS_PREFIX = "";
         RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" ''
@@ -128,7 +129,7 @@ in {
       preStart = ''
         ${optionalString (cfg.cookie != "") ''
             echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
-            chmod 400 ${cfg.dataDir}/.erlang.cookie
+            chmod 600 ${cfg.dataDir}/.erlang.cookie
         ''}
       '';
     };

From 2037f1bbe8cfea60fddd5e369c2bdceaf3abe4e2 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sun, 24 Sep 2017 02:02:18 +0200
Subject: [PATCH 244/533] fscrypt: init at 0.2.1

---
 pkgs/os-specific/linux/fscrypt/default.nix | 33 ++++++++++++++++++++++
 pkgs/top-level/all-packages.nix            |  3 ++
 2 files changed, 36 insertions(+)
 create mode 100644 pkgs/os-specific/linux/fscrypt/default.nix

diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix
new file mode 100644
index 000000000000..1564069a0a98
--- /dev/null
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libargon2, pam }:
+
+# Don't use this for anything important yet!
+
+buildGoPackage rec {
+  name = "fscrypt-${version}";
+  version = "0.2.1";
+
+  goPackagePath = "github.com/google/fscrypt";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fscrypt";
+    rev = version;
+    sha256 = "0ais6l0dxinnspi6cjnzyk55cdkfsz2bzbaybg6cb4q8a5kzaccq";
+  };
+
+  buildInputs = [ libargon2 pam ];
+
+  meta = with stdenv.lib; {
+    description =
+      "A high-level tool for the management of Linux filesystem encryption";
+    longDescription = ''
+      This tool manages metadata, key generation, key wrapping, PAM integration,
+      and provides a uniform interface for creating and modifying encrypted
+      directories.
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3fe36446518a..4df368a51edf 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12024,6 +12024,9 @@ with pkgs;
 
   dstat = callPackage ../os-specific/linux/dstat { };
 
+  # unstable until the first 1.x release
+  fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
+
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { inherit (gnome2) gtk_doc; inherit (python3Packages) pygobject3 pillow; };
 
   fwupdate = callPackage ../os-specific/linux/firmware/fwupdate { };

From e24dc4d7ba6f504558c7b77bd118e1ddcefbcd55 Mon Sep 17 00:00:00 2001
From: Itai Zukerman <zukerman@math-hat.com>
Date: Sat, 23 Sep 2017 19:51:34 -0700
Subject: [PATCH 245/533] plex: 1.8.4 -> 1.9.1

---
 pkgs/servers/plex/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/servers/plex/default.nix b/pkgs/servers/plex/default.nix
index 9b2278fe3667..37c5c6338251 100644
--- a/pkgs/servers/plex/default.nix
+++ b/pkgs/servers/plex/default.nix
@@ -6,9 +6,9 @@
 let
   plexPass = throw "Plex pass has been removed at upstream's request; please unset nixpkgs.config.plex.pass";
   plexpkg = if enablePlexPass then plexPass else {
-    version = "1.8.4.4249";
-    vsnHash = "3497d6779";
-    sha256 = "ca3db297f4dbc73a5a405ac032ff250e5df97b84da6dcac55165b13e6445ca80";
+    version = "1.9.1.4272";
+    vsnHash = "b207937f1";
+    sha256 = "e7e313700d994e9c406706cf5dbaab6974a998b5e7f556a014e66eaa4f9cf9c8";
   };
 
 in stdenv.mkDerivation rec {

From cea9a52dac2219ec91021d97077b15ccc39bf380 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 13:56:24 +0200
Subject: [PATCH 246/533] cmake: maintenance 3.9.1 -> 3.9.2

---
 pkgs/development/tools/build-managers/cmake/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index a912b04d217f..0cb9078aede5 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -17,7 +17,7 @@ with stdenv.lib;
 let
   os = stdenv.lib.optionalString;
   majorVersion = "3.9";
-  minorVersion = "1";
+  minorVersion = "2";
   version = "${majorVersion}.${minorVersion}";
 in
 
@@ -28,8 +28,8 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "${meta.homepage}files/v${majorVersion}/cmake-${version}.tar.gz";
-    # from https://cmake.org/files/v3.9/cmake-3.9.1-SHA-256.txt
-    sha256 = "d768ee83d217f91bb597b3ca2ac663da7a8603c97e1f1a5184bc01e0ad2b12bb";
+    # from https://cmake.org/files/v3.9/cmake-3.9.2-SHA-256.txt
+    sha256 = "954a5801a456ee48e76f01107c9a4961677dd0f3e115275bbd18410dc22ba3c1";
   };
 
   prePatch = optionalString (!useSharedLibraries) ''

From 81a074fbd651745a77dfde56e6361aa6aaa5f1a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 14:54:20 +0200
Subject: [PATCH 247/533] atk: 2.22.0 -> 2.26.0

---
 pkgs/development/libraries/atk/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/atk/default.nix b/pkgs/development/libraries/atk/default.nix
index cd2ffe556647..1574d8d037c7 100644
--- a/pkgs/development/libraries/atk/default.nix
+++ b/pkgs/development/libraries/atk/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, pkgconfig, perl, glib, libintlOrEmpty, gobjectIntrospection }:
 
 let
-  ver_maj = "2.22";
+  ver_maj = "2.26";
   ver_min = "0";
 in
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/atk/${ver_maj}/${name}.tar.xz";
-    sha256 = "d349f5ca4974c9c76a4963e5b254720523b0c78672cbc0e1a3475dbd9b3d44b6";
+    sha256 = "eafe49d5c4546cb723ec98053290d7e0b8d85b3fdb123938213acb7bb4178827";
   };
 
   enableParallelBuilding = true;

From 7b5edfd2881cca7b314c69fb31534674a6cddf7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 14:55:01 +0200
Subject: [PATCH 248/533] at-spi2-*: 2.24.1 -> 2.26.0

---
 pkgs/development/libraries/at-spi2-atk/default.nix  | 6 +++---
 pkgs/development/libraries/at-spi2-core/default.nix | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/libraries/at-spi2-atk/default.nix b/pkgs/development/libraries/at-spi2-atk/default.nix
index 30fe8173e86f..3aef90594a15 100644
--- a/pkgs/development/libraries/at-spi2-atk/default.nix
+++ b/pkgs/development/libraries/at-spi2-atk/default.nix
@@ -2,14 +2,14 @@
 , intltool, dbus_glib, at_spi2_core, libSM }:
 
 stdenv.mkDerivation rec {
-  versionMajor = "2.24";
-  versionMinor = "1";
+  versionMajor = "2.26";
+  versionMinor = "0";
   moduleName   = "at-spi2-atk";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "60dc90ac4f74b8ffe96a9363c25208a443b381bacecfefea6de549f20ed6957d";
+    sha256 = "d25e528e1406a10c7d9b675aa15e638bcbf0a122ca3681f655a30cce83272fb9";
   };
 
   buildInputs = [ python pkgconfig popt atk libX11 libICE xorg.libXtst libXi
diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix
index 4d496932f669..bd8588f9771f 100644
--- a/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/pkgs/development/libraries/at-spi2-core/default.nix
@@ -2,14 +2,14 @@
 , libX11, xextproto, libSM, libICE, libXtst, libXi, gobjectIntrospection }:
 
 stdenv.mkDerivation rec {
-  versionMajor = "2.24";
-  versionMinor = "1";
+  versionMajor = "2.26";
+  versionMinor = "0";
   moduleName   = "at-spi2-core";
   name = "${moduleName}-${versionMajor}.${versionMinor}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
-    sha256 = "1e90d064b937aacfe79a96232ac7e63d28d716e85bd9ff4333f865305a959b5b";
+    sha256 = "511568a65fda11fdd5ba5d4adfd48d5d76810d0e6ba4f7460f1b2ec0dbbbc337";
   };
 
   outputs = [ "out" "dev" ];

From 40e163e4f24398249347b69ae7b85cdde395d076 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 15:06:46 +0200
Subject: [PATCH 249/533] pango: maintenance 1.40.11 -> 1.40.12

The patch is included in this release.
---
 pkgs/development/libraries/pango/default.nix | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 88a8ed1df4f3..85032677aae3 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -6,25 +6,16 @@ with stdenv.lib;
 
 let
   ver_maj = "1.40";
-  ver_min = "11";
+  ver_min = "12";
 in
 stdenv.mkDerivation rec {
   name = "pango-${ver_maj}.${ver_min}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/pango/${ver_maj}/${name}.tar.xz";
-    sha256 = "5b11140590e632739e4151cae06b8116160d59e22bf36a3ccd5df76d1cf0383e";
+    sha256 = "75f1a9a8e4e2b28cbc078b50c1fa927ee4ded994d1ade97c5603e2d1f3161cfc";
   };
 
-  patches = [
-    # https://bugzilla.gnome.org/show_bug.cgi?id=785978#c9
-    (fetchpatch rec {
-      name = "pango-fix-gtk2-test-failures.patch";
-      url = "https://bug785978.bugzilla-attachments.gnome.org/attachment.cgi?id=357690&action=diff&collapsed=&context=patch&format=raw&headers=1";
-      sha256 = "055m2dllfr5pgw6bci72snw38f4hsyw1x7flj188c965ild8lq3a";
-    })
-  ];
-
   outputs = [ "bin" "dev" "out" "devdoc" ];
 
   buildInputs = [ gobjectIntrospection ];

From 68bfcad289815f496ed42b722e591f743772b911 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 15:10:48 +0200
Subject: [PATCH 250/533] libsoup: 2.59.90.1 -> 2.60.0

There are basically no changes, but the version number is much nicer ;-)
Explicit deletion of gtk-goc isn't needed anymore (see doc/multiple-output.xml).
---
 pkgs/development/libraries/libsoup/default.nix | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/libraries/libsoup/default.nix b/pkgs/development/libraries/libsoup/default.nix
index d1b476d94d20..229a92d84bf5 100644
--- a/pkgs/development/libraries/libsoup/default.nix
+++ b/pkgs/development/libraries/libsoup/default.nix
@@ -4,15 +4,15 @@
 , libintlOrEmpty
 , intltool, python }:
 let
-  majorVersion = "2.59";
-  version = "${majorVersion}.90.1";
+  majorVersion = "2.60";
+  version = "${majorVersion}.0";
 in
 stdenv.mkDerivation {
   name = "libsoup-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libsoup/${majorVersion}/libsoup-${version}.tar.xz";
-    sha256 = "0bh8wa0szkm9bx2anfq655zshwf6jhxvrqwx8jyh8rqgi6z9dhz0";
+    sha256 = "b324edbecda0884143c0853b4a2bd5bd37fb3761f12f293c621ff34b9acdc84c";
   };
 
   prePatch = ''
@@ -38,8 +38,6 @@ stdenv.mkDerivation {
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-lintl";
 
-  postInstall = "rm -rf $out/share/gtk-doc";
-
   meta = {
     inherit (glib.meta) maintainers platforms;
   };

From b4be1cb8e0525f4eb27cece49726dab5a746a73a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 15:17:53 +0200
Subject: [PATCH 251/533] harfbuzz: 1.4.8 -> 1.5.1

---
 pkgs/development/libraries/harfbuzz/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index 8885f2a2c432..f5756d1f5702 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -5,7 +5,7 @@
 }:
 
 let
-  version = "1.4.8";
+  version = "1.5.1";
   inherit (stdenv.lib) optional optionals optionalString;
 in
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.bz2";
-    sha256 = "ccec4930ff0bb2d0c40aee203075447954b64a8c2695202413cc5e428c907131";
+    sha256 = "56838dfdad2729b8866763c82d623354d138a4d99d9ffb710c7d377b5cfc7c51";
   };
 
   outputs = [ "out" "dev" ];

From 00b4e2646cb07611944645d219bfe1202d34e20c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Sun, 17 Sep 2017 16:59:15 +0200
Subject: [PATCH 252/533] glib: 2.52.3 -> 2.54.0

License was updated upstream.  Also tidy the expression a bit,
and unify the nix coding style.
---
 pkgs/development/libraries/glib/default.nix | 84 +++++++++++----------
 1 file changed, 45 insertions(+), 39 deletions(-)

diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index e76e48ad8fc0..39140eaf5196 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -42,8 +42,8 @@ let
     ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
   '';
 
-  ver_maj = "2.52";
-  ver_min = "3";
+  ver_maj = "2.54";
+  ver_min = "0";
 in
 
 stdenv.mkDerivation rec {
@@ -51,10 +51,11 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${ver_maj}/${name}.tar.xz";
-    sha256 = "0a71wkkhkvad84gm30w13micxxgqqw3sxhybj7nd9z60lwspdvi5";
+    sha256 = "fe22998ff0394ec31e6e5511c379b74011bee61a4421bca7fcab223dfbe0fc6a";
   };
 
-  patches = optional stdenv.isDarwin ./darwin-compilation.patch ++ optional doCheck ./skip-timer-test.patch;
+  patches = optional stdenv.isDarwin ./darwin-compilation.patch
+    ++ optional doCheck ./skip-timer-test.patch;
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
@@ -76,21 +77,23 @@ stdenv.mkDerivation rec {
     ++ optional (stdenv.isFreeBSD || stdenv.isSunOS) "--with-libiconv=gnu"
     ++ optional stdenv.isSunOS "--disable-dtrace";
 
-  NIX_CFLAGS_COMPILE = optionalString stdenv.isDarwin " -lintl"
-    + optionalString stdenv.isSunOS " -DBSD_COMP";
+  NIX_CFLAGS_COMPILE = optional stdenv.isDarwin "-lintl"
+    ++ optional stdenv.isSunOS "-DBSD_COMP";
 
-  preConfigure = if !stdenv.isSunOS then null else
-    ''
-      sed -i -e 's|inotify.h|foobar-inotify.h|g' configure
-    '';
+  preConfigure = optionalString stdenv.isSunOS ''
+    sed -i -e 's|inotify.h|foobar-inotify.h|g' configure
+  '';
+
+  postConfigure = ''
+    patchShebangs ./gobject/
+  '';
 
   LIBELF_CFLAGS = optional stdenv.isFreeBSD "-I${libelf}";
   LIBELF_LIBS = optional stdenv.isFreeBSD "-L${libelf} -lelf";
 
-  preBuild = optionalString stdenv.isDarwin
-    ''
-      export MACOSX_DEPLOYMENT_TARGET=
-    '';
+  preBuild = optionalString stdenv.isDarwin ''
+    export MACOSX_DEPLOYMENT_TARGET=
+  '';
 
   enableParallelBuilding = true;
   DETERMINISTIC_BUILD = 1;
@@ -100,33 +103,36 @@ stdenv.mkDerivation rec {
     substituteInPlace "$dev/bin/gdbus-codegen" --replace "$out" "$dev"
     sed -i "$dev/bin/glib-gettextize" -e "s|^gettext_dir=.*|gettext_dir=$dev/share/glib-2.0/gettext|"
   ''
-    # This file is *included* in gtk3 and would introduce runtime reference via __FILE__.
-    + ''
-      sed '1i#line 1 "${name}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \
-        -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c
-    '';
+  # This file is *included* in gtk3 and would introduce runtime reference via __FILE__.
+  + ''
+    sed '1i#line 1 "${name}/include/glib-2.0/gobject/gobjectnotifyqueue.c"' \
+      -i "$dev"/include/glib-2.0/gobject/gobjectnotifyqueue.c
+  '';
 
   inherit doCheck;
-  preCheck = optionalString doCheck
-    '' export LD_LIBRARY_PATH="$NIX_BUILD_TOP/${name}/glib/.libs:$LD_LIBRARY_PATH"
-       export TZDIR="${tzdata}/share/zoneinfo"
-       export XDG_CACHE_HOME="$TMP"
-       export XDG_RUNTIME_HOME="$TMP"
-       export HOME="$TMP"
-       export XDG_DATA_DIRS="${desktop_file_utils}/share:${shared_mime_info}/share"
-       export G_TEST_DBUS_DAEMON="${dbus_daemon.out}/bin/dbus-daemon"
+  preCheck = optionalString doCheck ''
+    export LD_LIBRARY_PATH="$NIX_BUILD_TOP/${name}/glib/.libs:$LD_LIBRARY_PATH"
+    export TZDIR="${tzdata}/share/zoneinfo"
+    export XDG_CACHE_HOME="$TMP"
+    export XDG_RUNTIME_HOME="$TMP"
+    export HOME="$TMP"
+    export XDG_DATA_DIRS="${desktop_file_utils}/share:${shared_mime_info}/share"
+    export G_TEST_DBUS_DAEMON="${dbus_daemon.out}/bin/dbus-daemon"
+    export PATH="$PATH:$(pwd)/gobject"
+    echo "PATH=$PATH"
 
-       substituteInPlace gio/tests/desktop-files/home/applications/epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop --replace "Exec=/bin/true" "Exec=${coreutils}/bin/true"
-       # Needs machine-id, comment the test
-       sed -e '/\/gdbus\/codegen-peer-to-peer/ s/^\/*/\/\//' -i gio/tests/gdbus-peer.c
-       sed -e '/g_test_add_func/ s/^\/*/\/\//' -i gio/tests/gdbus-unix-addresses.c
-       # All gschemas fail to pass the test, upstream bug?
-       sed -e '/g_test_add_data_func/ s/^\/*/\/\//' -i gio/tests/gschema-compile.c
-       # Cannot reproduce the failing test_associations on hydra
-       sed -e '/\/appinfo\/associations/d' -i gio/tests/appinfo.c
-       # Needed because of libtool wrappers
-       sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c
-    '';
+    substituteInPlace gio/tests/desktop-files/home/applications/epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop \
+      --replace "Exec=/bin/true" "Exec=${coreutils}/bin/true"
+    # Needs machine-id, comment the test
+    sed -e '/\/gdbus\/codegen-peer-to-peer/ s/^\/*/\/\//' -i gio/tests/gdbus-peer.c
+    sed -e '/g_test_add_func/ s/^\/*/\/\//' -i gio/tests/gdbus-unix-addresses.c
+    # All gschemas fail to pass the test, upstream bug?
+    sed -e '/g_test_add_data_func/ s/^\/*/\/\//' -i gio/tests/gschema-compile.c
+    # Cannot reproduce the failing test_associations on hydra
+    sed -e '/\/appinfo\/associations/d' -i gio/tests/appinfo.c
+    # Needed because of libtool wrappers
+    sed -e '/g_subprocess_launcher_set_environ (launcher, envp);/a g_subprocess_launcher_setenv (launcher, "PATH", g_getenv("PATH"), TRUE);' -i gio/tests/gsubprocess.c
+  '';
 
   passthru = {
      gioModuleDir = "lib/gio/modules";
@@ -136,7 +142,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "C library of programming buildings blocks";
     homepage    = https://www.gtk.org/;
-    license     = licenses.lgpl2Plus;
+    license     = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lovek323 raskin ];
     platforms   = platforms.unix;
 

From 15542822907cd7d65863643311dfa425ef6a4c7a Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sun, 24 Sep 2017 11:31:59 +0200
Subject: [PATCH 253/533] maintainers/hydra-eval-failures: fix with new lib

lib/maintainers.nix now is a function
---
 maintainers/scripts/hydra-eval-failures.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/maintainers/scripts/hydra-eval-failures.py b/maintainers/scripts/hydra-eval-failures.py
index f82d14c3b46e..5233e0624450 100755
--- a/maintainers/scripts/hydra-eval-failures.py
+++ b/maintainers/scripts/hydra-eval-failures.py
@@ -13,10 +13,8 @@ from pyquery import PyQuery as pq
 
 
 maintainers_json = subprocess.check_output([
-    'nix-instantiate',
-    'lib/maintainers.nix',
-    '--eval',
-    '--json'])
+    'nix-instantiate', '-E', 'import ./lib/maintainers.nix {}', '--eval', '--json'
+])
 maintainers = json.loads(maintainers_json)
 MAINTAINERS = {v: k for k, v in maintainers.iteritems()}
 

From 8704e82eba7eb547ca04e8a896c1efa471df6b67 Mon Sep 17 00:00:00 2001
From: Florian Jacob <projects+git@florianjacob.de>
Date: Sat, 23 Sep 2017 15:16:57 +0200
Subject: [PATCH 254/533] tinc: 1.0.31 -> 1.0.32

---
 pkgs/tools/networking/tinc/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/networking/tinc/default.nix b/pkgs/tools/networking/tinc/default.nix
index c025fba4921b..508816dbfa81 100644
--- a/pkgs/tools/networking/tinc/default.nix
+++ b/pkgs/tools/networking/tinc/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, lzo, openssl, zlib}:
 
 stdenv.mkDerivation rec {
-  version = "1.0.31";
+  version = "1.0.32";
   name = "tinc-${version}";
 
   src = fetchurl {
     url = "http://www.tinc-vpn.org/packages/tinc-${version}.tar.gz";
-    sha256 = "d3cbc82e6e07975a2ccc0b369d07e30fc3324e71e240dca8781ce9a4f629519b";
+    sha256 = "11smq1h6jyp6x2cwrv2zxck9phzdz3svi95pxnvvpd4dzzm4zcjd";
   };
 
   buildInputs = [ lzo openssl zlib ];

From c3cfd92d24dae94c8ed526823489a903d844fd69 Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Fri, 21 Apr 2017 15:25:05 +0200
Subject: [PATCH 255/533] kubernetes: 1.5.6 -> 1.6.4

---
 nixos/modules/services/cluster/kubernetes.nix | 65 +++----------------
 .../networking/cluster/kubernetes/default.nix |  5 +-
 2 files changed, 11 insertions(+), 59 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes.nix
index 4c9d9aad0e2d..f7464ca0557b 100644
--- a/nixos/modules/services/cluster/kubernetes.nix
+++ b/nixos/modules/services/cluster/kubernetes.nix
@@ -421,12 +421,6 @@ in {
         type = types.bool;
       };
 
-      registerSchedulable = mkOption {
-        description = "Register the node as schedulable. No-op if register-node is false.";
-        default = true;
-        type = types.bool;
-      };
-
       address = mkOption {
         description = "Kubernetes kubelet info server listening address.";
         default = "0.0.0.0";
@@ -568,27 +562,12 @@ in {
       };
     };
 
-    dns = {
-      enable = mkEnableOption "kubernetes dns service.";
-
-      port = mkOption {
-        description = "Kubernetes dns listening port";
-        default = 53;
-        type = types.int;
-      };
-
-      domain = mkOption  {
-        description = "Kuberntes dns domain under which to create names.";
-        default = cfg.kubelet.clusterDomain;
-        type = types.str;
-      };
-
-      extraOpts = mkOption {
-        description = "Kubernetes dns extra command line options.";
-        default = "";
-        type = types.str;
-      };
+    path = mkOption {
+      description = "Packages added to the services' PATH environment variable. Both the bin and sbin subdirectories of each package are added";
+      type = types.listOf types.package;
+      default = [];
     };
+
   };
 
   ###### implementation
@@ -599,7 +578,7 @@ in {
         description = "Kubernetes Kubelet Service";
         wantedBy = [ "kubernetes.target" ];
         after = [ "network.target" "docker.service" "kube-apiserver.service" ];
-        path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables ];
+        path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables ] ++ cfg.path;
         preStart = ''
           docker load < ${infraContainer}
           rm /opt/cni/bin/* || true
@@ -614,7 +593,6 @@ in {
             --address=${cfg.kubelet.address} \
             --port=${toString cfg.kubelet.port} \
             --register-node=${boolToString cfg.kubelet.registerNode} \
-            --register-schedulable=${boolToString cfg.kubelet.registerSchedulable} \
             ${optionalString (cfg.kubelet.tlsCertFile != null)
               "--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \
             ${optionalString (cfg.kubelet.tlsKeyFile != null)
@@ -633,7 +611,6 @@ in {
             ${optionalString (cfg.kubelet.networkPlugin != null)
               "--network-plugin=${cfg.kubelet.networkPlugin}"} \
             --cni-conf-dir=${cniConfig} \
-            --reconcile-cidr \
             --hairpin-mode=hairpin-veth \
             ${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \
             ${cfg.kubelet.extraOpts}
@@ -700,6 +677,7 @@ in {
               "--service-account-key-file=${cfg.apiserver.serviceAccountKeyFile}"} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
+            --storage-backend=etcd2 \
             ${cfg.apiserver.extraOpts}
           '';
           WorkingDirectory = cfg.dataDir;
@@ -765,6 +743,7 @@ in {
           User = "kubernetes";
           Group = "kubernetes";
         };
+        path = cfg.path;
       };
     })
 
@@ -788,30 +767,6 @@ in {
       };
     })
 
-    (mkIf cfg.dns.enable {
-      systemd.services.kube-dns = {
-        description = "Kubernetes Dns Service";
-        wantedBy = [ "kubernetes.target" ];
-        after = [ "kube-apiserver.service" ];
-        serviceConfig = {
-          Slice = "kubernetes.slice";
-          ExecStart = ''${cfg.package}/bin/kube-dns \
-            --kubecfg-file=${kubeconfig} \
-            --dns-port=${toString cfg.dns.port} \
-            --domain=${cfg.dns.domain} \
-            ${optionalString cfg.verbose "--v=6"} \
-            ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
-            ${cfg.dns.extraOpts}
-          '';
-          WorkingDirectory = cfg.dataDir;
-          User = "kubernetes";
-          Group = "kubernetes";
-          AmbientCapabilities = "cap_net_bind_service";
-          SendSIGHUP = true;
-        };
-      };
-    })
-
     (mkIf cfg.kubelet.enable {
       boot.kernelModules = ["br_netfilter"];
     })
@@ -831,7 +786,6 @@ in {
       virtualisation.docker.logDriver = mkDefault "json-file";
       services.kubernetes.kubelet.enable = mkDefault true;
       services.kubernetes.proxy.enable = mkDefault true;
-      services.kubernetes.dns.enable = mkDefault true;
     })
 
     (mkIf (
@@ -839,8 +793,7 @@ in {
         cfg.scheduler.enable ||
         cfg.controllerManager.enable ||
         cfg.kubelet.enable ||
-        cfg.proxy.enable ||
-        cfg.dns.enable
+        cfg.proxy.enable
     ) {
       systemd.targets.kubernetes = {
         description = "Kubernetes";
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 69fe6a1730aa..7e1e3fd42afa 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -8,7 +8,6 @@
     "cmd/kube-controller-manager"
     "cmd/kube-proxy"
     "plugin/cmd/kube-scheduler"
-    "cmd/kube-dns"
     "federation/cmd/federation-apiserver"
     "federation/cmd/federation-controller-manager"
   ]
@@ -18,13 +17,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "kubernetes-${version}";
-  version = "1.5.6";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "0mkg4vgz9szgq1k5ignkdr5gmg703xlq8zsrr422a1qfqb8zp15w";
+    sha256 = "1waxkr4ycrd23w8pi83gyf6jmawi1nhfzixp70fcwwka5h7p2y91";
   };
 
   buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];

From 90d5468ad6119d8668343802cb63f1a6a9fc2152 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Mon, 12 Dec 2016 01:27:14 +0100
Subject: [PATCH 256/533] kubernetes module: authorization improvements

---
 nixos/modules/services/cluster/kubernetes.nix | 131 +++++++++++++-----
 1 file changed, 99 insertions(+), 32 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes.nix
index f7464ca0557b..8177233b3ed3 100644
--- a/nixos/modules/services/cluster/kubernetes.nix
+++ b/nixos/modules/services/cluster/kubernetes.nix
@@ -39,12 +39,9 @@ let
     }];
   });
 
-  policyFile = pkgs.writeText "kube-policy"
-    (concatStringsSep "\n" (map builtins.toJSON cfg.apiserver.authorizationPolicy));
-
   cniConfig = pkgs.buildEnv {
     name = "kubernetes-cni-config";
-    paths = imap1 (i: entry:
+    paths = imap (i: entry:
       pkgs.writeTextDir "${toString (10+i)}-${entry.type}.conf" (builtins.toJSON entry)
     ) cfg.kubelet.cni.config;
   };
@@ -205,23 +202,33 @@ in {
         type = types.nullOr types.path;
       };
 
-      tokenAuth = mkOption {
+      tokenAuthFile = mkOption {
         description = ''
           Kubernetes apiserver token authentication file. See
           <link xlink:href="http://kubernetes.io/docs/admin/authentication.html"/>
         '';
         default = null;
-        example = ''token,user,uid,"group1,group2,group3"'';
-        type = types.nullOr types.lines;
+        type = types.nullOr types.path;
+      };
+
+      basicAuthFile = mkOption {
+        description = ''
+          Kubernetes apiserver basic authentication file. See
+          <link xlink:href="http://kubernetes.io/docs/admin/authentication.html"/>
+        '';
+        default = pkgs.writeText "users" ''
+          kubernetes,admin,0
+        '';
+        type = types.nullOr types.path;
       };
 
       authorizationMode = mkOption {
         description = ''
-          Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC). See
-          <link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
+          Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/RBAC). See
+          <link xlink:href="http://kubernetes.io/docs/admin/authorization.html"/>
         '';
-        default = "AlwaysAllow";
-        type = types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC"];
+        default = ["ABAC" "RBAC"];
+        type = types.listOf (types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC" "RBAC"]);
       };
 
       authorizationPolicy = mkOption {
@@ -229,21 +236,72 @@ in {
           Kubernetes apiserver authorization policy file. See
           <link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
         '';
-        default = [];
-        example = literalExample ''
-          [
-            {user = "admin";}
-            {user = "scheduler"; readonly = true; kind= "pods";}
-            {user = "scheduler"; kind = "bindings";}
-            {user = "kubelet";  readonly = true; kind = "bindings";}
-            {user = "kubelet"; kind = "events";}
-            {user= "alice"; ns = "projectCaribou";}
-            {user = "bob"; readonly = true; ns = "projectCaribou";}
-          ]
-        '';
+        default = [
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "admin";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "kubecfg";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "kubelet";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "kube";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "system:serviceaccount:kube-system:default";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+        ];
         type = types.listOf types.attrs;
       };
 
+      autorizationRBACSuperAdmin = mkOption {
+        description = "Role based authorization super admin";
+        default = "admin";
+        type = types.str;
+      };
+
       allowPrivileged = mkOption {
         description = "Whether to allow privileged containers on kubernetes.";
         default = true;
@@ -261,7 +319,7 @@ in {
           Api runtime configuration. See
           <link xlink:href="http://kubernetes.io/v1.0/docs/admin/cluster-management.html"/>
         '';
-        default = "";
+        default = "rbac.authorization.k8s.io/v1alpha1";
         example = "api/all=false,api/v1=true";
         type = types.str;
       };
@@ -654,9 +712,11 @@ in {
               "--tls-cert-file=${cfg.apiserver.tlsCertFile}"} \
             ${optionalString (cfg.apiserver.tlsKeyFile != null)
               "--tls-private-key-file=${cfg.apiserver.tlsKeyFile}"} \
-            ${optionalString (cfg.apiserver.tokenAuth != null)
-              "--token-auth-file=${cfg.apiserver.tokenAuth}"} \
-            --kubelet-https=${boolToString cfg.apiserver.kubeletHttps} \
+            ${optionalString (cfg.apiserver.tokenAuthFile != null)
+              "--token-auth-file=${cfg.apiserver.tokenAuthFile}"} \
+            ${optionalString (cfg.apiserver.basicAuthFile != null)
+              "--basic-auth-file=${cfg.apiserver.basicAuthFile}"} \
+            --kubelet-https=${if cfg.apiserver.kubeletHttps then "true" else "false"} \
             ${optionalString (cfg.apiserver.kubeletClientCaFile != null)
               "--kubelet-certificate-authority=${cfg.apiserver.kubeletClientCaFile}"} \
             ${optionalString (cfg.apiserver.kubeletClientCertFile != null)
@@ -665,9 +725,15 @@ in {
               "--kubelet-client-key=${cfg.apiserver.kubeletClientKeyFile}"} \
             ${optionalString (cfg.apiserver.clientCaFile != null)
               "--client-ca-file=${cfg.apiserver.clientCaFile}"} \
-            --authorization-mode=${cfg.apiserver.authorizationMode} \
-            ${optionalString (cfg.apiserver.authorizationMode == "ABAC")
-              "--authorization-policy-file=${policyFile}"} \
+            --authorization-mode=${concatStringsSep "," cfg.apiserver.authorizationMode} \
+            ${optionalString (elem "ABAC" cfg.apiserver.authorizationMode)
+              "--authorization-policy-file=${
+                pkgs.writeText "kube-auth-policy"
+                (concatMapStringsSep "\n" (l: builtins.toJSON l) cfg.apiserver.authorizationPolicy)
+              }"
+            } \
+            ${optionalString (elem "RBAC" cfg.apiserver.authorizationMode)
+              "--authorization-rbac-super-user=${cfg.apiserver.autorizationRBACSuperAdmin}"} \
             --secure-port=${toString cfg.apiserver.securePort} \
             --service-cluster-ip-range=${cfg.apiserver.portalNet} \
             ${optionalString (cfg.apiserver.runtimeConfig != "")
@@ -730,8 +796,9 @@ in {
             ${if (cfg.controllerManager.serviceAccountKeyFile!=null)
               then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}"
               else "--service-account-private-key-file=/var/run/kubernetes/apiserver.key"} \
-            ${optionalString (cfg.controllerManager.rootCaFile!=null)
-              "--root-ca-file=${cfg.controllerManager.rootCaFile}"} \
+            ${if (cfg.controllerManager.rootCaFile!=null)
+              then "--root-ca-file=${cfg.controllerManager.rootCaFile}"
+              else "--root-ca-file=/var/run/kubernetes/apiserver.crt"} \
             ${optionalString (cfg.controllerManager.clusterCidr!=null)
               "--cluster-cidr=${cfg.controllerManager.clusterCidr}"} \
             --allocate-node-cidrs=true \

From 7332179285dca99c7bcc76c7a97e74583f782f2c Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Wed, 3 May 2017 01:14:17 +0200
Subject: [PATCH 257/533] kube-dns: 1.14.1

---
 .../networking/cluster/kubernetes/dns.nix     | 42 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 44 insertions(+)
 create mode 100644 pkgs/applications/networking/cluster/kubernetes/dns.nix

diff --git a/pkgs/applications/networking/cluster/kubernetes/dns.nix b/pkgs/applications/networking/cluster/kubernetes/dns.nix
new file mode 100644
index 000000000000..3db9a5141d8a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubernetes/dns.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, go }:
+
+with lib;
+
+stdenv.mkDerivation rec {
+  name = "kube-dns-${version}";
+  version = "1.14.1";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "dns";
+    rev = "${version}";
+    sha256 = "13l42wm2rcz1ina8hhhagbnck6f1gdbwj33dmnrr52pwi1xh52f7";
+  };
+
+  buildInputs = [ go ];
+
+  buildPhase = ''
+    export GOPATH="$(pwd)/.gopath"
+    mkdir $GOPATH
+    ln -s $(pwd)/vendor $GOPATH/src
+    mkdir $GOPATH/src/k8s.io/dns
+    ln -s $(pwd)/cmd $GOPATH/src/k8s.io/dns/cmd
+    ln -s $(pwd)/pkg $GOPATH/src/k8s.io/dns/pkg
+
+    # build only kube-dns, we do not need anything else
+    go build -o kube-dns ./cmd/kube-dns
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp kube-dns $out/bin
+  '';
+
+  meta = {
+    description = "Kubernetes DNS service";
+    license = licenses.asl20;
+    homepage = https://github.com/kubernetes/dns;
+    maintainers = with maintainers; [ matejc ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2b05d1d345c9..0f317f89b9f5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15119,6 +15119,8 @@ with pkgs;
     go = go_1_7;
   };
 
+  kube-dns = callPackage ../applications/networking/cluster/kubernetes/dns.nix { };
+
   kupfer = callPackage ../applications/misc/kupfer { };
 
   lame = callPackage ../development/libraries/lame { };

From ed322f42357e1822560fd1fd80f56a9fbf89a672 Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Wed, 26 Apr 2017 22:44:38 +0200
Subject: [PATCH 258/533] kubernetes: update service

---
 nixos/modules/module-list.nix                 |   2 +-
 .../services/cluster/kubernetes/dashboard.nix |  85 ++++++
 .../default.nix}                              | 281 +++++++++++++++---
 .../services/cluster/kubernetes/dns.nix       | 240 +++++++++++++++
 .../cluster/kubernetes/kube-addon-manager.nix |  54 ++++
 5 files changed, 612 insertions(+), 50 deletions(-)
 create mode 100644 nixos/modules/services/cluster/kubernetes/dashboard.nix
 rename nixos/modules/services/cluster/{kubernetes.nix => kubernetes/default.nix} (78%)
 create mode 100644 nixos/modules/services/cluster/kubernetes/dns.nix
 create mode 100644 nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 7edea2c9538e..cb71e93e578f 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -157,7 +157,7 @@
   ./services/backup/tarsnap.nix
   ./services/backup/znapzend.nix
   ./services/cluster/fleet.nix
-  ./services/cluster/kubernetes.nix
+  ./services/cluster/kubernetes/default.nix
   ./services/cluster/panamax.nix
   ./services/computing/boinc/client.nix
   ./services/computing/torque/server.nix
diff --git a/nixos/modules/services/cluster/kubernetes/dashboard.nix b/nixos/modules/services/cluster/kubernetes/dashboard.nix
new file mode 100644
index 000000000000..337c2634a374
--- /dev/null
+++ b/nixos/modules/services/cluster/kubernetes/dashboard.nix
@@ -0,0 +1,85 @@
+{ cfg }: {
+    "dashboard-controller" = {
+        "apiVersion" = "extensions/v1beta1";
+        "kind" = "Deployment";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "Reconcile";
+                "k8s-app" = "kubernetes-dashboard";
+                "kubernetes.io/cluster-service" = "true";
+            };
+            "name" = "kubernetes-dashboard";
+            "namespace" = "kube-system";
+        };
+        "spec" = {
+            "selector" = {
+                "matchLabels" = {
+                    "k8s-app" = "kubernetes-dashboard";
+                };
+            };
+            "template" = {
+                "metadata" = {
+                    "annotations" = {
+                        "scheduler.alpha.kubernetes.io/critical-pod" = "";
+                    };
+                    "labels" = {
+                        "k8s-app" = "kubernetes-dashboard";
+                    };
+                };
+                "spec" = {
+                    "containers" = [{
+                        "image" = "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0";
+                        "livenessProbe" = {
+                            "httpGet" = {
+                                "path" = "/";
+                                "port" = 9090;
+                            };
+                            "initialDelaySeconds" = 30;
+                            "timeoutSeconds" = 30;
+                        };
+                        "name" = "kubernetes-dashboard";
+                        "ports" = [{
+                            "containerPort" = 9090;
+                        }];
+                        "resources" = {
+                            "limits" = {
+                                "cpu" = "100m";
+                                "memory" = "50Mi";
+                            };
+                            "requests" = {
+                                "cpu" = "100m";
+                                "memory" = "50Mi";
+                            };
+                        };
+                    }];
+                    "tolerations" = [{
+                        "key" = "CriticalAddonsOnly";
+                        "operator" = "Exists";
+                    }];
+                };
+            };
+        };
+    };
+    "dashboard-service" = {
+        "apiVersion" = "v1";
+        "kind" = "Service";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "Reconcile";
+                "k8s-app" = "kubernetes-dashboard";
+                "kubernetes.io/cluster-service" = "true";
+            };
+            "name" = "kubernetes-dashboard";
+            "namespace" = "kube-system";
+        };
+        "spec" = {
+            "ports" = [{
+                "port" = 80;
+                "targetPort" = 9090;
+            }];
+            "selector" = {
+                "k8s-app" = "kubernetes-dashboard";
+            };
+        };
+    };
+}
diff --git a/nixos/modules/services/cluster/kubernetes.nix b/nixos/modules/services/cluster/kubernetes/default.nix
similarity index 78%
rename from nixos/modules/services/cluster/kubernetes.nix
rename to nixos/modules/services/cluster/kubernetes/default.nix
index 8177233b3ed3..7160bcca1533 100644
--- a/nixos/modules/services/cluster/kubernetes.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -53,6 +53,35 @@ let
     ) cfg.kubelet.manifests;
   };
 
+  addons = pkgs.runCommand "kubernetes-addons" { } ''
+    mkdir -p $out
+    # since we are mounting the addons to the addon manager, they need to be copied
+    ${concatMapStringsSep ";" (a: "cp -v ${a}/* $out/") (mapAttrsToList (name: addon:
+      pkgs.writeTextDir "${name}.json" (builtins.toJSON addon)
+    ) (cfg.addonManager.addons))}
+  '';
+
+  taintOptions = { name, ... }: {
+    options = {
+      key = mkOption {
+        description = "Key of taint.";
+        default = name;
+        type = types.str;
+      };
+      value = mkOption {
+        description = "Value of taint.";
+        type = types.str;
+      };
+      effect = mkOption {
+        description = "Effect of taint.";
+        example = "NoSchedule";
+        type = types.str;
+      };
+    };
+  };
+
+  taints = concatMapStringsSep "," (v: "${v.key}=${v.value}:${v.effect}") (mapAttrsToList (n: v: v) cfg.kubelet.taints);
+
 in {
 
   ###### interface
@@ -77,7 +106,7 @@ in {
     };
 
     verbose = mkOption {
-      description = "Kubernetes enable verbose mode for debugging";
+      description = "Kubernetes enable verbose mode for debugging.";
       default = false;
       type = types.bool;
     };
@@ -90,19 +119,19 @@ in {
       };
 
       keyFile = mkOption {
-        description = "Etcd key file";
+        description = "Etcd key file.";
         default = null;
         type = types.nullOr types.path;
       };
 
       certFile = mkOption {
-        description = "Etcd cert file";
+        description = "Etcd cert file.";
         default = null;
         type = types.nullOr types.path;
       };
 
       caFile = mkOption {
-        description = "Etcd ca file";
+        description = "Etcd ca file.";
         default = null;
         type = types.nullOr types.path;
       };
@@ -110,25 +139,25 @@ in {
 
     kubeconfig = {
       server = mkOption {
-        description = "Kubernetes apiserver server address";
+        description = "Kubernetes apiserver server address.";
         default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}";
         type = types.str;
       };
 
       caFile = mkOption {
-        description = "Certificate authrority file to use to connect to kuberentes apiserver";
+        description = "Certificate authrority file to use to connect to Kubernetes apiserver.";
         type = types.nullOr types.path;
         default = null;
       };
 
       certFile = mkOption {
-        description = "Client certificate file to use to connect to kubernetes";
+        description = "Client certificate file to use to connect to Kubernetes.";
         type = types.nullOr types.path;
         default = null;
       };
 
       keyFile = mkOption {
-        description = "Client key file to use to connect to kubernetes";
+        description = "Client key file to use to connect to Kubernetes.";
         type = types.nullOr types.path;
         default = null;
       };
@@ -142,7 +171,7 @@ in {
 
     apiserver = {
       enable = mkOption {
-        description = "Whether to enable kubernetes apiserver.";
+        description = "Whether to enable Kubernetes apiserver.";
         default = false;
         type = types.bool;
       };
@@ -172,6 +201,14 @@ in {
         type = types.nullOr types.str;
       };
 
+      storageBackend = mkOption {
+        description = ''
+          Kubernetes apiserver storage backend.
+        '';
+        default = "etcd2";
+        type = types.enum ["etcd2" "etcd3"];
+      };
+
       port = mkOption {
         description = "Kubernetes apiserver listening port.";
         default = 8080;
@@ -227,7 +264,7 @@ in {
           Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/RBAC). See
           <link xlink:href="http://kubernetes.io/docs/admin/authorization.html"/>
         '';
-        default = ["ABAC" "RBAC"];
+        default = ["ABAC"];
         type = types.listOf (types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC" "RBAC"]);
       };
 
@@ -274,7 +311,7 @@ in {
             apiVersion = "abac.authorization.kubernetes.io/v1beta1";
             kind = "Policy";
             spec = {
-              user  = "kube";
+              user  = "kube-worker";
               namespace = "*";
               resource = "*";
               apiGroup = "*";
@@ -285,7 +322,29 @@ in {
             apiVersion = "abac.authorization.kubernetes.io/v1beta1";
             kind = "Policy";
             spec = {
-              user  = "system:serviceaccount:kube-system:default";
+              user  = "kube_proxy";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              user  = "client";
+              namespace = "*";
+              resource = "*";
+              apiGroup = "*";
+              nonResourcePath = "*";
+            };
+          }
+          {
+            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+            kind = "Policy";
+            spec = {
+              group  = "system:serviceaccounts";
               namespace = "*";
               resource = "*";
               apiGroup = "*";
@@ -297,19 +356,19 @@ in {
       };
 
       autorizationRBACSuperAdmin = mkOption {
-        description = "Role based authorization super admin";
+        description = "Role based authorization super admin.";
         default = "admin";
         type = types.str;
       };
 
       allowPrivileged = mkOption {
-        description = "Whether to allow privileged containers on kubernetes.";
+        description = "Whether to allow privileged containers on Kubernetes.";
         default = true;
         type = types.bool;
       };
 
       portalNet = mkOption {
-        description = "Kubernetes CIDR notation IP range from which to assign portal IPs";
+        description = "Kubernetes CIDR notation IP range from which to assign portal IPs.";
         default = "10.10.10.10/24";
         type = types.str;
       };
@@ -319,7 +378,7 @@ in {
           Api runtime configuration. See
           <link xlink:href="http://kubernetes.io/v1.0/docs/admin/cluster-management.html"/>
         '';
-        default = "rbac.authorization.k8s.io/v1alpha1";
+        default = "";
         example = "api/all=false,api/v1=true";
         type = types.str;
       };
@@ -348,25 +407,25 @@ in {
       };
 
       kubeletClientCaFile = mkOption {
-        description = "Path to a cert file for connecting to kubelet";
+        description = "Path to a cert file for connecting to kubelet.";
         default = null;
         type = types.nullOr types.path;
       };
 
       kubeletClientCertFile = mkOption {
-        description = "Client certificate to use for connections to kubelet";
+        description = "Client certificate to use for connections to kubelet.";
         default = null;
         type = types.nullOr types.path;
       };
 
       kubeletClientKeyFile = mkOption {
-        description = "Key to use for connections to kubelet";
+        description = "Key to use for connections to kubelet.";
         default = null;
         type = types.nullOr types.path;
       };
 
       kubeletHttps = mkOption {
-        description = "Whether to use https for connections to kubelet";
+        description = "Whether to use https for connections to kubelet.";
         default = true;
         type = types.bool;
       };
@@ -380,7 +439,7 @@ in {
 
     scheduler = {
       enable = mkOption {
-        description = "Whether to enable kubernetes scheduler.";
+        description = "Whether to enable Kubernetes scheduler.";
         default = false;
         type = types.bool;
       };
@@ -398,7 +457,7 @@ in {
       };
 
       leaderElect = mkOption {
-        description = "Whether to start leader election before executing main loop";
+        description = "Whether to start leader election before executing main loop.";
         type = types.bool;
         default = false;
       };
@@ -412,7 +471,7 @@ in {
 
     controllerManager = {
       enable = mkOption {
-        description = "Whether to enable kubernetes controller manager.";
+        description = "Whether to enable Kubernetes controller manager.";
         default = false;
         type = types.bool;
       };
@@ -430,7 +489,7 @@ in {
       };
 
       leaderElect = mkOption {
-        description = "Whether to start leader election before executing main loop";
+        description = "Whether to start leader election before executing main loop.";
         type = types.bool;
         default = false;
       };
@@ -453,12 +512,6 @@ in {
         type = types.nullOr types.path;
       };
 
-      clusterCidr = mkOption {
-        description = "Kubernetes controller manager CIDR Range for Pods in cluster";
-        default = "10.10.0.0/16";
-        type = types.str;
-      };
-
       extraOpts = mkOption {
         description = "Kubernetes controller manager extra command line options.";
         default = "";
@@ -468,7 +521,7 @@ in {
 
     kubelet = {
       enable = mkOption {
-        description = "Whether to enable kubernetes kubelet.";
+        description = "Whether to enable Kubernetes kubelet.";
         default = false;
         type = types.bool;
       };
@@ -518,13 +571,13 @@ in {
       };
 
       hostname = mkOption {
-        description = "Kubernetes kubelet hostname override";
+        description = "Kubernetes kubelet hostname override.";
         default = config.networking.hostName;
         type = types.str;
       };
 
       allowPrivileged = mkOption {
-        description = "Whether to allow kubernetes containers to request privileged mode.";
+        description = "Whether to allow Kubernetes containers to request privileged mode.";
         default = true;
         type = types.bool;
       };
@@ -536,7 +589,7 @@ in {
       };
 
       clusterDns = mkOption {
-        description = "Use alternative dns.";
+        description = "Use alternative DNS.";
         default = "10.10.0.1";
         type = types.str;
       };
@@ -548,20 +601,20 @@ in {
       };
 
       networkPlugin = mkOption {
-        description = "Network plugin to use by kubernetes";
+        description = "Network plugin to use by Kubernetes.";
         type = types.nullOr (types.enum ["cni" "kubenet"]);
         default = "kubenet";
       };
 
       cni = {
         packages = mkOption {
-          description = "List of network plugin packages to install";
+          description = "List of network plugin packages to install.";
           type = types.listOf types.package;
           default = [];
         };
 
         config = mkOption {
-          description = "Kubernetes CNI configuration";
+          description = "Kubernetes CNI configuration.";
           type = types.listOf types.attrs;
           default = [];
           example = literalExample ''
@@ -588,11 +641,29 @@ in {
       };
 
       manifests = mkOption {
-        description = "List of manifests to bootstrap with kubelet";
+        description = "List of manifests to bootstrap with kubelet (only pods can be created as manifest entry)";
         type = types.attrsOf types.attrs;
         default = {};
       };
 
+      applyManifests = mkOption {
+        description = "Whether to apply manifests.";
+        default = false;
+        type = types.bool;
+      };
+
+      unschedulable = mkOption {
+        description = "Whether to set node taint to unschedulable=true as it is the case of node that has only master role.";
+        default = false;
+        type = types.bool;
+      };
+
+      taints = mkOption {
+        description = ".";
+        default = {};
+        type = types.attrsOf (types.submodule [ taintOptions ]);
+      };
+
       extraOpts = mkOption {
         description = "Kubernetes kubelet extra command line options.";
         default = "";
@@ -602,7 +673,7 @@ in {
 
     proxy = {
       enable = mkOption {
-        description = "Whether to enable kubernetes proxy.";
+        description = "Whether to enable Kubernetes proxy.";
         default = false;
         type = types.bool;
       };
@@ -620,12 +691,74 @@ in {
       };
     };
 
+    addonManager = {
+      enable = mkOption {
+        description = "Whether to enable Kubernetes addon manager.";
+        default = false;
+        type = types.bool;
+      };
+
+      versionTag = mkOption {
+        description = "Version tag of Kubernetes addon manager image.";
+        default = "v6.4-beta.1";
+        type = types.str;
+      };
+
+      addons = mkOption {
+        description = "Kubernetes addons (any kind of Kubernetes resource can be an addon).";
+        default = { };
+        type = types.attrsOf types.attrs;
+        example = literalExample ''
+          {
+            "my-service" = {
+              "apiVersion" = "v1";
+              "kind" = "Service";
+              "metadata" = {
+                "name" = "my-service";
+                "namespace" = "default";
+              };
+              "spec" = { ... };
+            };
+          }
+          // import <nixpkgs/nixos/modules/services/cluster/kubernetes/dashboard.nix> { cfg = config.services.kubernetes; };
+        '';
+      };
+    };
+
+    dns = {
+      enable = mkEnableOption "Kubernetes DNS service.";
+
+      port = mkOption {
+        description = "Kubernetes DNS listening port.";
+        default = 53;
+        type = types.int;
+      };
+
+      domain = mkOption  {
+        description = "Kubernetes DNS domain under which to create names.";
+        default = cfg.kubelet.clusterDomain;
+        type = types.str;
+      };
+
+      extraOpts = mkOption {
+        description = "Kubernetes DNS extra command line options.";
+        default = "";
+        type = types.str;
+      };
+    };
+
     path = mkOption {
-      description = "Packages added to the services' PATH environment variable. Both the bin and sbin subdirectories of each package are added";
+      description = "Packages added to the services' PATH environment variable. Both the bin and sbin subdirectories of each package are added.";
       type = types.listOf types.package;
       default = [];
     };
 
+    clusterCidr = mkOption {
+      description = "Kubernetes controller manager and proxy CIDR Range for Pods in cluster.";
+      default = "10.10.0.0/16";
+      type = types.str;
+    };
+
   };
 
   ###### implementation
@@ -645,7 +778,10 @@ in {
         serviceConfig = {
           Slice = "kubernetes.slice";
           ExecStart = ''${cfg.package}/bin/kubelet \
-            --pod-manifest-path=${manifests} \
+            ${optionalString cfg.kubelet.applyManifests
+              "--pod-manifest-path=${manifests}"} \
+            ${optionalString (taints != "")
+              "--register-with-taints=${taints}"} \
             --kubeconfig=${kubeconfig} \
             --require-kubeconfig \
             --address=${cfg.kubelet.address} \
@@ -677,15 +813,24 @@ in {
         };
       };
 
+      # Allways include cni plugins
+      services.kubernetes.kubelet.cni.packages = [pkgs.cni];
+    })
+
+    (mkIf (cfg.kubelet.applyManifests && cfg.kubelet.enable) {
       environment.etc = mapAttrs' (name: manifest:
         nameValuePair "kubernetes/manifests/${name}.json" {
           text = builtins.toJSON manifest;
           mode = "0755";
         }
       ) cfg.kubelet.manifests;
+    })
 
-      # Allways include cni plugins
-      services.kubernetes.kubelet.cni.packages = [pkgs.cni];
+    (mkIf (cfg.kubelet.unschedulable && cfg.kubelet.enable) {
+      services.kubernetes.kubelet.taints.unschedulable = {
+        value = "true";
+        effect = "NoSchedule";
+      };
     })
 
     (mkIf cfg.apiserver.enable {
@@ -728,7 +873,7 @@ in {
             --authorization-mode=${concatStringsSep "," cfg.apiserver.authorizationMode} \
             ${optionalString (elem "ABAC" cfg.apiserver.authorizationMode)
               "--authorization-policy-file=${
-                pkgs.writeText "kube-auth-policy"
+                pkgs.writeText "kube-auth-policy.jsonl"
                 (concatMapStringsSep "\n" (l: builtins.toJSON l) cfg.apiserver.authorizationPolicy)
               }"
             } \
@@ -743,7 +888,7 @@ in {
               "--service-account-key-file=${cfg.apiserver.serviceAccountKeyFile}"} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
-            --storage-backend=etcd2 \
+            --storage-backend=${cfg.apiserver.storageBackend} \
             ${cfg.apiserver.extraOpts}
           '';
           WorkingDirectory = cfg.dataDir;
@@ -799,8 +944,8 @@ in {
             ${if (cfg.controllerManager.rootCaFile!=null)
               then "--root-ca-file=${cfg.controllerManager.rootCaFile}"
               else "--root-ca-file=/var/run/kubernetes/apiserver.crt"} \
-            ${optionalString (cfg.controllerManager.clusterCidr!=null)
-              "--cluster-cidr=${cfg.controllerManager.clusterCidr}"} \
+            ${optionalString (cfg.clusterCidr!=null)
+              "--cluster-cidr=${cfg.clusterCidr}"} \
             --allocate-node-cidrs=true \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
@@ -819,7 +964,7 @@ in {
         description = "Kubernetes Proxy Service";
         wantedBy = [ "kubernetes.target" ];
         after = [ "kube-apiserver.service" ];
-        path = [pkgs.iptables];
+        path = [pkgs.iptables pkgs.conntrack_tools];
         serviceConfig = {
           Slice = "kubernetes.slice";
           ExecStart = ''${cfg.package}/bin/kube-proxy \
@@ -827,6 +972,8 @@ in {
             --bind-address=${cfg.proxy.address} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
+            ${optionalString (cfg.clusterCidr!=null)
+              "--cluster-cidr=${cfg.clusterCidr}"} \
             ${cfg.proxy.extraOpts}
           '';
           WorkingDirectory = cfg.dataDir;
@@ -842,12 +989,18 @@ in {
       virtualisation.docker.enable = mkDefault true;
       services.kubernetes.kubelet.enable = mkDefault true;
       services.kubernetes.kubelet.allowPrivileged = mkDefault true;
+      services.kubernetes.kubelet.applyManifests = mkDefault true;
       services.kubernetes.apiserver.enable = mkDefault true;
       services.kubernetes.scheduler.enable = mkDefault true;
       services.kubernetes.controllerManager.enable = mkDefault true;
+      services.kubernetes.dns.enable = mkDefault true;
       services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]);
     })
 
+    (mkIf (all (el: el == "master") cfg.roles) {
+      services.kubernetes.kubelet.unschedulable = mkDefault true;
+    })
+
     (mkIf (any (el: el == "node") cfg.roles) {
       virtualisation.docker.enable = mkDefault true;
       virtualisation.docker.logDriver = mkDefault "json-file";
@@ -855,12 +1008,42 @@ in {
       services.kubernetes.proxy.enable = mkDefault true;
     })
 
+    (mkIf cfg.addonManager.enable {
+      services.kubernetes.kubelet.manifests = import ./kube-addon-manager.nix { inherit cfg addons; };
+      environment.etc."kubernetes/addons".source = "${addons}/";
+    })
+
+    (mkIf cfg.dns.enable {
+      systemd.services.kube-dns = {
+        description = "Kubernetes DNS Service";
+        wantedBy = [ "kubernetes.target" ];
+        after = [ "kube-apiserver.service" ];
+        serviceConfig = {
+          Slice = "kubernetes.slice";
+          ExecStart = ''${pkgs.kube-dns}/bin/kube-dns \
+            --kubecfg-file=${kubeconfig} \
+            --dns-port=${toString cfg.dns.port} \
+            --domain=${cfg.dns.domain} \
+            ${optionalString cfg.verbose "--v=6"} \
+            ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
+            ${cfg.dns.extraOpts}
+          '';
+          WorkingDirectory = cfg.dataDir;
+          User = "kubernetes";
+          Group = "kubernetes";
+          AmbientCapabilities = "cap_net_bind_service";
+          SendSIGHUP = true;
+        };
+      };
+    })
+
     (mkIf (
         cfg.apiserver.enable ||
         cfg.scheduler.enable ||
         cfg.controllerManager.enable ||
         cfg.kubelet.enable ||
-        cfg.proxy.enable
+        cfg.proxy.enable ||
+        cfg.dns.enable
     ) {
       systemd.targets.kubernetes = {
         description = "Kubernetes";
diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix
new file mode 100644
index 000000000000..ac59eaf87250
--- /dev/null
+++ b/nixos/modules/services/cluster/kubernetes/dns.nix
@@ -0,0 +1,240 @@
+{ cfg }: {
+    "kubedns-cm" = {
+        "apiVersion" = "v1";
+        "kind" = "ConfigMap";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "EnsureExists";
+            };
+            "name" = "kube-dns";
+            "namespace" = "kube-system";
+        };
+    };
+    "kubedns-controller" = {
+        "apiVersion" = "extensions/v1beta1";
+        "kind" = "Deployment";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "Reconcile";
+                "k8s-app" = "kube-dns";
+                "kubernetes.io/cluster-service" = "true";
+            };
+            "name" = "kube-dns";
+            "namespace" = "kube-system";
+        };
+        "spec" = {
+            "selector" = {
+                "matchLabels" = {
+                    "k8s-app" = "kube-dns";
+                };
+            };
+            "strategy" = {
+                "rollingUpdate" = {
+                    "maxSurge" = "10%";
+                    "maxUnavailable" = 0;
+                };
+            };
+            "template" = {
+                "metadata" = {
+                    "annotations" = {
+                        "scheduler.alpha.kubernetes.io/critical-pod" = "";
+                    };
+                    "labels" = {
+                        "k8s-app" = "kube-dns";
+                    };
+                };
+                "spec" = {
+                    "containers" = [{
+                        "args" = ["--domain=${cfg.dns.domain}."
+                            "--dns-port=10053"
+                            "--config-dir=/kube-dns-config"
+                            "--kube-master-url=${cfg.kubeconfig.server}"
+                            "--v=2"
+                        ];
+                        "env" = [{
+                            "name" = "PROMETHEUS_PORT";
+                            "value" = "10055";
+                        }];
+                        "image" = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1";
+                        "livenessProbe" = {
+                            "failureThreshold" = 5;
+                            "httpGet" = {
+                                "path" = "/healthcheck/kubedns";
+                                "port" = 10054;
+                                "scheme" = "HTTP";
+                            };
+                            "initialDelaySeconds" = 60;
+                            "successThreshold" = 1;
+                            "timeoutSeconds" = 5;
+                        };
+                        "name" = "kubedns";
+                        "ports" = [{
+                            "containerPort" = 10053;
+                            "name" = "dns-local";
+                            "protocol" = "UDP";
+                        } {
+                            "containerPort" = 10053;
+                            "name" = "dns-tcp-local";
+                            "protocol" = "TCP";
+                        } {
+                            "containerPort" = 10055;
+                            "name" = "metrics";
+                            "protocol" = "TCP";
+                        }];
+                        "readinessProbe" = {
+                            "httpGet" = {
+                                "path" = "/readiness";
+                                "port" = 8081;
+                                "scheme" = "HTTP";
+                            };
+                            "initialDelaySeconds" = 3;
+                            "timeoutSeconds" = 5;
+                        };
+                        "resources" = {
+                            "limits" = {
+                                "memory" = "170Mi";
+                            };
+                            "requests" = {
+                                "cpu" = "100m";
+                                "memory" = "70Mi";
+                            };
+                        };
+                        "volumeMounts" = [{
+                            "mountPath" = "/kube-dns-config";
+                            "name" = "kube-dns-config";
+                        }];
+                    } {
+                        "args" = ["-v=2"
+                            "-logtostderr"
+                            "-configDir=/etc/k8s/dns/dnsmasq-nanny"
+                            "-restartDnsmasq=true"
+                            "--"
+                            "-k"
+                            "--cache-size=1000"
+                            "--log-facility=-"
+                            "--server=/${cfg.dns.domain}/127.0.0.1#10053"
+                            "--server=/in-addr.arpa/127.0.0.1#10053"
+                            "--server=/ip6.arpa/127.0.0.1#10053"
+                        ];
+                        "image" = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1";
+                        "livenessProbe" = {
+                            "failureThreshold" = 5;
+                            "httpGet" = {
+                                "path" = "/healthcheck/dnsmasq";
+                                "port" = 10054;
+                                "scheme" = "HTTP";
+                            };
+                            "initialDelaySeconds" = 60;
+                            "successThreshold" = 1;
+                            "timeoutSeconds" = 5;
+                        };
+                        "name" = "dnsmasq";
+                        "ports" = [{
+                            "containerPort" = 53;
+                            "name" = "dns";
+                            "protocol" = "UDP";
+                        } {
+                            "containerPort" = 53;
+                            "name" = "dns-tcp";
+                            "protocol" = "TCP";
+                        }];
+                        "resources" = {
+                            "requests" = {
+                                "cpu" = "150m";
+                                "memory" = "20Mi";
+                            };
+                        };
+                        "volumeMounts" = [{
+                            "mountPath" = "/etc/k8s/dns/dnsmasq-nanny";
+                            "name" = "kube-dns-config";
+                        }];
+                    } {
+                        "args" = ["--v=2"
+                            "--logtostderr"
+                            "--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.${cfg.dns.domain},5,A"
+                            "--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.${cfg.dns.domain},5,A"
+                        ];
+                        "image" = "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1";
+                        "livenessProbe" = {
+                            "failureThreshold" = 5;
+                            "httpGet" = {
+                                "path" = "/metrics";
+                                "port" = 10054;
+                                "scheme" = "HTTP";
+                            };
+                            "initialDelaySeconds" = 60;
+                            "successThreshold" = 1;
+                            "timeoutSeconds" = 5;
+                        };
+                        "name" = "sidecar";
+                        "ports" = [{
+                            "containerPort" = 10054;
+                            "name" = "metrics";
+                            "protocol" = "TCP";
+                        }];
+                        "resources" = {
+                            "requests" = {
+                                "cpu" = "10m";
+                                "memory" = "20Mi";
+                            };
+                        };
+                    }];
+                    "dnsPolicy" = "Default";
+                    "serviceAccountName" = "kube-dns";
+                    "tolerations" = [{
+                        "key" = "CriticalAddonsOnly";
+                        "operator" = "Exists";
+                    }];
+                    "volumes" = [{
+                        "configMap" = {
+                            "name" = "kube-dns";
+                            "optional" = true;
+                        };
+                        "name" = "kube-dns-config";
+                    }];
+                };
+            };
+        };
+    };
+    "kubedns-sa" = {
+        "apiVersion" = "v1";
+        "kind" = "ServiceAccount";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "Reconcile";
+                "kubernetes.io/cluster-service" = "true";
+            };
+            "name" = "kube-dns";
+            "namespace" = "kube-system";
+        };
+    };
+    "kubedns-svc" = {
+        "apiVersion" = "v1";
+        "kind" = "Service";
+        "metadata" = {
+            "labels" = {
+                "addonmanager.kubernetes.io/mode" = "Reconcile";
+                "k8s-app" = "kube-dns";
+                "kubernetes.io/cluster-service" = "true";
+                "kubernetes.io/name" = "KubeDNS";
+            };
+            "name" = "kube-dns";
+            "namespace" = "kube-system";
+        };
+        "spec" = {
+            "clusterIP" = "${cfg.dns.serverIp}";
+            "ports" = [{
+                "name" = "dns";
+                "port" = 53;
+                "protocol" = "UDP";
+            } {
+                "name" = "dns-tcp";
+                "port" = 53;
+                "protocol" = "TCP";
+            }];
+            "selector" = {
+                "k8s-app" = "kube-dns";
+            };
+        };
+    };
+}
diff --git a/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix b/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix
new file mode 100644
index 000000000000..f1a367dfff1b
--- /dev/null
+++ b/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix
@@ -0,0 +1,54 @@
+{ cfg, addons }: {
+    "kube-addon-manager" = {
+        "apiVersion" = "v1";
+        "kind" = "Pod";
+        "metadata" = {
+            "labels" = {
+                "component" = "kube-addon-manager";
+            };
+            "name" = "kube-addon-manager";
+            "namespace" = "kube-system";
+        };
+        "spec" = {
+            "containers" = [{
+                "command" = ["/bin/bash"
+                    "-c"
+                    "/opt/kube-addons.sh | tee /var/log/kube-addon-manager.log"
+                ];
+                "env" = [{
+                    "name" = "KUBECTL_OPTS";
+                    "value" = "--server=${cfg.kubeconfig.server}";
+                }];
+                "image" = "gcr.io/google-containers/kube-addon-manager:${cfg.addonManager.versionTag}";
+                "name" = "kube-addon-manager";
+                "resources" = {
+                    "requests" = {
+                        "cpu" = "5m";
+                        "memory" = "50Mi";
+                    };
+                };
+                "volumeMounts" = [{
+                    "mountPath" = "/etc/kubernetes/addons/";
+                    "name" = "addons";
+                    "readOnly" = true;
+                } {
+                    "mountPath" = "/var/log";
+                    "name" = "varlog";
+                    "readOnly" = false;
+                }];
+            }];
+            "hostNetwork" = true;
+            "volumes" = [{
+                "hostPath" = {
+                    "path" = "${addons}/";
+                };
+                "name" = "addons";
+            } {
+                "hostPath" = {
+                    "path" = "/var/log";
+                };
+                "name" = "varlog";
+            }];
+        };
+    };
+}

From 7f9d1a7aafc76f506f25c9608a68980161d43d66 Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Wed, 3 May 2017 01:20:32 +0200
Subject: [PATCH 259/533] kubernetes: add tests

---
 nixos/tests/kubernetes/certs.nix              | 229 ++++++++++++++++++
 nixos/tests/kubernetes/default.nix            |   7 +
 nixos/tests/kubernetes/dns.nix                | 103 ++++++++
 nixos/tests/kubernetes/kubernetes-common.nix  | 131 ++++++++++
 nixos/tests/kubernetes/kubernetes-master.nix  | 148 +++++++++++
 nixos/tests/kubernetes/multinode-kubectl.nix  | 147 +++++++++++
 nixos/tests/kubernetes/rbac.nix               | 206 ++++++++++++++++
 nixos/tests/kubernetes/singlenode-kubectl.nix |  97 ++++++++
 nixos/tests/kubernetes/singlenode.nix         |  82 +++++++
 9 files changed, 1150 insertions(+)
 create mode 100644 nixos/tests/kubernetes/certs.nix
 create mode 100644 nixos/tests/kubernetes/default.nix
 create mode 100644 nixos/tests/kubernetes/dns.nix
 create mode 100644 nixos/tests/kubernetes/kubernetes-common.nix
 create mode 100644 nixos/tests/kubernetes/kubernetes-master.nix
 create mode 100644 nixos/tests/kubernetes/multinode-kubectl.nix
 create mode 100644 nixos/tests/kubernetes/rbac.nix
 create mode 100644 nixos/tests/kubernetes/singlenode-kubectl.nix
 create mode 100644 nixos/tests/kubernetes/singlenode.nix

diff --git a/nixos/tests/kubernetes/certs.nix b/nixos/tests/kubernetes/certs.nix
new file mode 100644
index 000000000000..f167224e549f
--- /dev/null
+++ b/nixos/tests/kubernetes/certs.nix
@@ -0,0 +1,229 @@
+{
+  pkgs ? import <nixpkgs> {},
+  servers ? {test = "1.2.3.4";},
+  internalDomain ? "cluster.local",
+  externalDomain ? "nixos.xyz"
+}:
+let
+  mkAltNames = ipFrom: dnsFrom:
+    pkgs.lib.concatImapStringsSep "\n" (i: v: "IP.${toString (i+ipFrom)} = ${v.ip}\nDNS.${toString (i+dnsFrom)} = ${v.name}.${externalDomain}") (pkgs.lib.mapAttrsToList (n: v: {name = n; ip = v;}) servers);
+
+  runWithOpenSSL = file: cmd: pkgs.runCommand file {
+    buildInputs = [ pkgs.openssl ];
+    passthru = { inherit file; };
+  } cmd;
+
+  ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
+  ca_pem = runWithOpenSSL "ca.pem" ''
+    openssl req \
+      -x509 -new -nodes -key ${ca_key} \
+      -days 10000 -out $out -subj "/CN=etcd-ca"
+  '';
+
+  etcd_cnf = pkgs.writeText "openssl.cnf" ''
+    [req]
+    req_extensions = v3_req
+    distinguished_name = req_distinguished_name
+    [req_distinguished_name]
+    [ v3_req ]
+    basicConstraints = CA:FALSE
+    keyUsage = digitalSignature, keyEncipherment
+    extendedKeyUsage = serverAuth
+    subjectAltName = @alt_names
+    [alt_names]
+    DNS.1 = etcd.kubernetes.${externalDomain}
+    IP.1 = 127.0.0.1
+  '';
+  etcd_key = runWithOpenSSL "etcd-key.pem" "openssl genrsa -out $out 2048";
+  etcd_csr = runWithOpenSSL "etcd.csr" ''
+    openssl req \
+      -new -key ${etcd_key} \
+      -out $out -subj "/CN=etcd" \
+      -config ${etcd_cnf}
+  '';
+  etcd_cert = runWithOpenSSL "etcd.pem" ''
+    openssl x509 \
+      -req -in ${etcd_csr} \
+      -CA ${ca_pem} -CAkey ${ca_key} \
+      -CAcreateserial -out $out \
+      -days 3650 -extensions v3_req \
+      -extfile ${etcd_cnf}
+  '';
+
+  etcd_client_key = runWithOpenSSL "etcd-client-key.pem"
+    "openssl genrsa -out $out 2048";
+
+  etcd_client_csr = runWithOpenSSL "etcd-client.csr" ''
+    openssl req \
+      -new -key ${etcd_client_key} \
+      -out $out -subj "/CN=etcd-client" \
+      -config ${client_openssl_cnf}
+  '';
+
+  etcd_client_cert = runWithOpenSSL "etcd-client.crt" ''
+    openssl x509 \
+      -req -in ${etcd_client_csr} \
+      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
+      -out $out -days 3650 -extensions v3_req \
+      -extfile ${client_openssl_cnf}
+  '';
+
+  admin_key = runWithOpenSSL "admin-key.pem"
+    "openssl genrsa -out $out 2048";
+
+  admin_csr = runWithOpenSSL "admin.csr" ''
+    openssl req \
+      -new -key ${admin_key} \
+      -out $out -subj "/CN=admin/O=system:masters" \
+      -config ${client_openssl_cnf}
+  '';
+
+  admin_cert = runWithOpenSSL "admin.crt" ''
+    openssl x509 \
+      -req -in ${admin_csr} \
+      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
+      -out $out -days 3650 -extensions v3_req \
+      -extfile ${client_openssl_cnf}
+  '';
+
+  apiserver_key = runWithOpenSSL "apiserver-key.pem" "openssl genrsa -out $out 2048";
+
+  apiserver_csr = runWithOpenSSL "apiserver.csr" ''
+    openssl req \
+      -new -key ${apiserver_key} \
+      -out $out -subj "/CN=kube-apiserver" \
+      -config ${apiserver_cnf}
+  '';
+
+  apiserver_cert = runWithOpenSSL "apiserver.pem" ''
+    openssl x509 \
+      -req -in ${apiserver_csr} \
+      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
+      -out $out -days 3650 -extensions v3_req \
+      -extfile ${apiserver_cnf}
+  '';
+
+  worker_key = runWithOpenSSL "worker-key.pem" "openssl genrsa -out $out 2048";
+
+  worker_csr = runWithOpenSSL "worker.csr" ''
+    openssl req \
+      -new -key ${worker_key} \
+      -out $out -subj "/CN=kube-worker/O=system:authenticated" \
+      -config ${worker_cnf}
+  '';
+
+  worker_cert = runWithOpenSSL "worker.pem" ''
+    openssl x509 \
+      -req -in ${worker_csr} \
+      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
+      -out $out -days 3650 -extensions v3_req \
+      -extfile ${worker_cnf}
+  '';
+
+  openssl_cnf = pkgs.writeText "openssl.cnf" ''
+    [req]
+    req_extensions = v3_req
+    distinguished_name = req_distinguished_name
+    [req_distinguished_name]
+    [ v3_req ]
+    basicConstraints = CA:FALSE
+    keyUsage = digitalSignature, keyEncipherment
+    extendedKeyUsage = serverAuth
+    subjectAltName = @alt_names
+    [alt_names]
+    DNS.1 = *.cluster.${externalDomain}
+    IP.1 = 127.0.0.1
+    ${mkAltNames 1 1}
+  '';
+
+  client_openssl_cnf = pkgs.writeText "client-openssl.cnf" ''
+    [req]
+    req_extensions = v3_req
+    distinguished_name = req_distinguished_name
+    [req_distinguished_name]
+    [ v3_req ]
+    basicConstraints = CA:FALSE
+    keyUsage = digitalSignature, keyEncipherment
+    extendedKeyUsage = clientAuth
+    subjectAltName = @alt_names
+    [alt_names]
+    DNS.1 = kubernetes
+    DNS.2 = kubernetes.default
+    DNS.3 = kubernetes.default.svc
+    DNS.4 = kubernetes.default.svc.${internalDomain}
+    DNS.5 = kubernetes.${externalDomain}
+    DNS.6 = *.cluster.${externalDomain}
+    IP.1 = 10.1.10.1
+    ${mkAltNames 1 6}
+  '';
+
+  apiserver_cnf = pkgs.writeText "apiserver-openssl.cnf" ''
+    [req]
+    req_extensions = v3_req
+    distinguished_name = req_distinguished_name
+    [req_distinguished_name]
+    [ v3_req ]
+    basicConstraints = CA:FALSE
+    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+    extendedKeyUsage = serverAuth
+    subjectAltName = @alt_names
+    [alt_names]
+    DNS.1 = kubernetes
+    DNS.2 = kubernetes.default
+    DNS.3 = kubernetes.default.svc
+    DNS.4 = kubernetes.default.svc.${internalDomain}
+    DNS.5 = kubernetes.${externalDomain}
+    DNS.6 = *.cluster.${externalDomain}
+    IP.1 = 10.1.10.1
+    ${mkAltNames 1 6}
+  '';
+
+  worker_cnf = pkgs.writeText "worker-openssl.cnf" ''
+    [req]
+    req_extensions = v3_req
+    distinguished_name = req_distinguished_name
+    [req_distinguished_name]
+    [ v3_req ]
+    basicConstraints = CA:FALSE
+    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+    subjectAltName = @alt_names
+    [alt_names]
+    DNS.1 = *.cluster.${externalDomain}
+    IP.1 = 10.1.10.1
+    ${mkAltNames 1 1}
+  '';
+
+  ln = cert: target: ''
+    cp -v ${cert} ${target}/${cert.file}
+  '';
+in
+  pkgs.stdenv.mkDerivation rec {
+    name = "kubernetes-certs";
+    unpackPhase = "true";
+    installPhase = ''
+      set -xe
+      mkdir -p $out
+      ${ln ca_key "$out"}
+      ${ln ca_pem "$out"}
+
+      ${ln etcd_key "$out"}
+      ${ln etcd_csr "$out"}
+      ${ln etcd_cert "$out"}
+
+      ${ln etcd_client_key "$out"}
+      ${ln etcd_client_csr "$out"}
+      ${ln etcd_client_cert "$out"}
+
+      ${ln apiserver_key "$out"}
+      ${ln apiserver_csr "$out"}
+      ${ln apiserver_cert "$out"}
+
+      ${ln worker_key "$out"}
+      ${ln worker_csr "$out"}
+      ${ln worker_cert "$out"}
+
+      ${ln admin_key "$out"}
+      ${ln admin_csr "$out"}
+      ${ln admin_cert "$out"}
+    '';
+  }
diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix
new file mode 100644
index 000000000000..6ba4f1904ea7
--- /dev/null
+++ b/nixos/tests/kubernetes/default.nix
@@ -0,0 +1,7 @@
+{ }:
+{
+    kubernetes-singlenode = import ./singlenode.nix {};
+    kubernetes-multinode-kubectl = import ./multinode-kubectl.nix {};
+    kubernetes-rbac = import ./rbac.nix {};
+    kubernetes-dns = import ./dns.nix {};
+}
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
new file mode 100644
index 000000000000..4659c520dee3
--- /dev/null
+++ b/nixos/tests/kubernetes/dns.nix
@@ -0,0 +1,103 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  servers.master = "192.168.1.1";
+  servers.one = "192.168.1.10";
+
+  certs = import ./certs.nix { inherit servers; };
+
+  redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "redis";
+    metadata.labels.name = "redis";
+    spec.containers = [{
+      name = "redis";
+      image = "redis";
+      args = ["--bind" "0.0.0.0"];
+      imagePullPolicy = "Never";
+      ports = [{
+        name = "redis-server";
+        containerPort = 6379;
+      }];
+    }];
+  });
+
+  redisService = pkgs.writeText "redis-service.json" (builtins.toJSON {
+    kind = "Service";
+    apiVersion = "v1";
+    metadata.name = "redis";
+    spec = {
+      ports = [{port = 6379; targetPort = 6379;}];
+      selector = {name = "redis";};
+    };
+  });
+
+  redisImage = pkgs.dockerTools.buildImage {
+    name = "redis";
+    tag = "latest";
+    contents = [ pkgs.redis pkgs.bind.dnsutils pkgs.coreutils pkgs.inetutils pkgs.nmap ];
+    config.Entrypoint = "/bin/redis-server";
+  };
+
+  test = ''
+    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
+    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
+
+    $one->execute("docker load < ${redisImage}");
+
+    $master->waitUntilSucceeds("kubectl create -f ${redisPod} || kubectl apply -f ${redisPod}");
+    $master->waitUntilSucceeds("kubectl create -f ${redisService} || kubectl apply -f ${redisService}");
+
+    $master->waitUntilSucceeds("kubectl get pod redis | grep Running");
+
+    $master->succeed("dig \@192.168.1.1 redis.default.svc.cluster.local");
+    $one->succeed("dig \@192.168.1.10 redis.default.svc.cluster.local");
+
+
+    $master->succeed("kubectl exec -ti redis -- cat /etc/resolv.conf | grep 'nameserver 192.168.1.10'");
+
+    $master->succeed("kubectl exec -ti redis -- dig \@192.168.1.10 redis.default.svc.cluster.local");
+  '';
+
+in makeTest {
+  name = "kubernetes-dns";
+
+  nodes = {
+    master =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
+            networking.primaryIPAddress = mkForce servers.master;
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+          (import ./kubernetes-master.nix { inherit pkgs config certs; })
+        ];
+
+    one =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
+            networking.primaryIPAddress = mkForce servers.one;
+            services.kubernetes.roles = ["node"];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+        ];
+  };
+
+  testScript = ''
+    startAll;
+
+    ${test}
+  '';
+}
diff --git a/nixos/tests/kubernetes/kubernetes-common.nix b/nixos/tests/kubernetes/kubernetes-common.nix
new file mode 100644
index 000000000000..bc28244ad5b4
--- /dev/null
+++ b/nixos/tests/kubernetes/kubernetes-common.nix
@@ -0,0 +1,131 @@
+{ config, pkgs, certs, servers }:
+let
+  etcd_key = "${certs}/etcd-key.pem";
+  etcd_cert = "${certs}/etcd.pem";
+  ca_pem = "${certs}/ca.pem";
+  etcd_client_cert = "${certs}/etcd-client.crt";
+  etcd_client_key = "${certs}/etcd-client-key.pem";
+
+  worker_key = "${certs}/worker-key.pem";
+  worker_cert = "${certs}/worker.pem";
+
+  mkDockerOpts = "${pkgs.kubernetes.src}/cluster/centos/node/bin/mk-docker-opts.sh";
+
+  rootCaFile = pkgs.writeScript "rootCaFile.pem" ''
+    ${pkgs.lib.readFile "${certs}/ca.pem"}
+
+    ${pkgs.lib.readFile ("${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt")}
+  '';
+
+  mkHosts =
+    pkgs.lib.concatMapStringsSep "\n" (v: "${v.ip} ${v.name}.nixos.xyz") (pkgs.lib.mapAttrsToList (n: v: {name = n; ip = v;}) servers);
+
+in
+{
+  programs.bash.enableCompletion = true;
+  environment.systemPackages = with pkgs; [ netcat bind etcd.bin ];
+
+  networking = {
+    firewall = {
+      enable = true;
+      allowedTCPPorts = [
+        10250 80 443
+      ];
+      allowedUDPPorts = [
+        8285  # flannel udp
+        8472  # flannel vxlan
+      ];
+    };
+    extraHosts = ''
+      # register "external" domains
+      ${servers.master} etcd.kubernetes.nixos.xyz
+      ${servers.master} kubernetes.nixos.xyz
+      ${mkHosts}
+    '';
+  };
+  virtualisation.docker.extraOptions = ''
+    --iptables=false $DOCKER_OPTS
+  '';
+
+  # lets create environment file for docker startup - network stuff
+  systemd.services."pre-docker" = {
+    description = "Pre-Docker Actions";
+    wantedBy = [ "flannel.service" ];
+    before = [ "docker.service" ];
+    after = [ "flannel.service" ];
+    path = [ pkgs.gawk pkgs.gnugrep ];
+    script = ''
+      mkdir -p /run/flannel
+      # bashInteractive needed for `compgen`
+      ${pkgs.bashInteractive}/bin/bash ${mkDockerOpts} -d /run/flannel/docker
+      cat /run/flannel/docker  # just for debugging
+
+      # allow container to host communication for DNS traffic
+      ${pkgs.iptables}/bin/iptables -I nixos-fw -p tcp -m tcp -i docker0 --dport 53 -j nixos-fw-accept
+      ${pkgs.iptables}/bin/iptables -I nixos-fw -p udp -m udp -i docker0 --dport 53 -j nixos-fw-accept
+    '';
+    serviceConfig.Type = "simple";
+  };
+  systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/docker";
+
+  services.flannel = {
+    enable = true;
+    network = "10.2.0.0/16";
+    iface = "eth1";
+    etcd = {
+      endpoints = ["https://etcd.kubernetes.nixos.xyz:2379"];
+      keyFile = etcd_client_key;
+      certFile = etcd_client_cert;
+      caFile = ca_pem;
+    };
+  };
+  environment.variables = {
+    ETCDCTL_CERT_FILE = "${etcd_client_cert}";
+    ETCDCTL_KEY_FILE = "${etcd_client_key}";
+    ETCDCTL_CA_FILE = "${rootCaFile}";
+    ETCDCTL_PEERS = "https://etcd.kubernetes.nixos.xyz:2379";
+  };
+
+  services.kubernetes = {
+    kubelet = {
+      networkPlugin = "cni";
+      cni.config = [{
+        name = "mynet";
+        type = "flannel";
+        delegate = {
+          isDefaultGateway = true;
+          bridge = "docker0";
+        };
+      }];
+      tlsKeyFile = worker_key;
+      tlsCertFile = worker_cert;
+      hostname = "${config.networking.hostName}.nixos.xyz";
+      extraOpts = "--node-ip ${config.networking.primaryIPAddress}";
+      clusterDns = config.networking.primaryIPAddress;
+    };
+    etcd = {
+      servers = ["https://etcd.kubernetes.nixos.xyz:2379"];
+      keyFile = etcd_client_key;
+      certFile = etcd_client_cert;
+      caFile = ca_pem;
+    };
+    kubeconfig = {
+      server = "https://kubernetes.nixos.xyz:4443";
+      caFile = rootCaFile;
+      certFile = worker_cert;
+      keyFile = worker_key;
+    };
+
+    # make sure you cover kubernetes.apiserver.portalNet and flannel networks
+    clusterCidr = "10.0.0.0/8";
+
+    dns.enable = true;
+    dns.port = 4453;
+  };
+
+  services.dnsmasq.enable = true;
+  services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
+
+  virtualisation.docker.enable = true;
+  virtualisation.docker.storageDriver = "overlay";
+}
diff --git a/nixos/tests/kubernetes/kubernetes-master.nix b/nixos/tests/kubernetes/kubernetes-master.nix
new file mode 100644
index 000000000000..b9577fa0964b
--- /dev/null
+++ b/nixos/tests/kubernetes/kubernetes-master.nix
@@ -0,0 +1,148 @@
+{ config, pkgs, certs }:
+let
+  etcd_key = "${certs}/etcd-key.pem";
+  etcd_cert = "${certs}/etcd.pem";
+  ca_pem = "${certs}/ca.pem";
+  etcd_client_cert = "${certs}/etcd-client.crt";
+  etcd_client_key = "${certs}/etcd-client-key.pem";
+
+  apiserver_key = "${certs}/apiserver-key.pem";
+  apiserver_cert = "${certs}/apiserver.pem";
+  worker_key = "${certs}/worker-key.pem";
+  worker_cert = "${certs}/worker.pem";
+
+
+  rootCaFile = pkgs.writeScript "rootCaFile.pem" ''
+    ${pkgs.lib.readFile "${certs}/ca.pem"}
+
+    ${pkgs.lib.readFile ("${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt")}
+  '';
+in
+{
+  networking = {
+    firewall = {
+      enable = true;
+      allowPing = true;
+      allowedTCPPorts = [
+        2379 2380  # etcd
+        4443  # kubernetes
+      ];
+    };
+  };
+
+  services.etcd = {
+    enable = pkgs.lib.mkForce true;
+    keyFile = etcd_key;
+    certFile = etcd_cert;
+    trustedCaFile = rootCaFile;
+    peerClientCertAuth = true;
+    listenClientUrls = ["https://0.0.0.0:2379"];
+    listenPeerUrls = ["https://0.0.0.0:2380"];
+
+    advertiseClientUrls = ["https://etcd.kubernetes.nixos.xyz:2379"];
+    initialCluster = ["master=https://etcd.kubernetes.nixos.xyz:2380"];
+    initialAdvertisePeerUrls = ["https://etcd.kubernetes.nixos.xyz:2380"];
+  };
+  services.kubernetes = {
+    roles = ["master"];
+    scheduler.leaderElect = true;
+    controllerManager.leaderElect = true;
+    controllerManager.rootCaFile = rootCaFile;
+    controllerManager.serviceAccountKeyFile = apiserver_key;
+    apiserver = {
+      securePort = 4443;
+      publicAddress = "192.168.1.1";
+      advertiseAddress = "192.168.1.1";
+      tlsKeyFile = apiserver_key;
+      tlsCertFile = apiserver_cert;
+      clientCaFile = rootCaFile;
+      kubeletClientCaFile = rootCaFile;
+      kubeletClientKeyFile = worker_key;
+      kubeletClientCertFile = worker_cert;
+      portalNet = "10.1.10.0/24";  # --service-cluster-ip-range
+      runtimeConfig = "";
+      /*extraOpts = "--v=2";*/
+      authorizationMode = ["ABAC"];
+      authorizationPolicy = [
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            user  = "kubecfg";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            user  = "kubelet";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            user  = "kube-worker";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            user  = "kube_proxy";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            user  = "client";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            group  = "system:serviceaccounts";
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+        {
+          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+          kind = "Policy";
+          spec = {
+            group  = "system:authenticated";
+            readonly = true;
+            namespace = "*";
+            resource = "*";
+            apiGroup = "*";
+            nonResourcePath = "*";
+          };
+        }
+      ];
+    };
+  };
+}
diff --git a/nixos/tests/kubernetes/multinode-kubectl.nix b/nixos/tests/kubernetes/multinode-kubectl.nix
new file mode 100644
index 000000000000..97108163d2cc
--- /dev/null
+++ b/nixos/tests/kubernetes/multinode-kubectl.nix
@@ -0,0 +1,147 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  servers.master = "192.168.1.1";
+  servers.one = "192.168.1.10";
+  servers.two = "192.168.1.20";
+  servers.three = "192.168.1.30";
+
+  certs = import ./certs.nix { inherit servers; };
+
+  kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "kubectl";
+    metadata.labels.name = "kubectl";
+    spec.containers = [{
+      name = "kubectl";
+      image = "kubectl:latest";
+      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      imagePullPolicy = "Never";
+      tty = true;
+    }];
+  });
+
+  kubectlImage = pkgs.dockerTools.buildImage {
+    name = "kubectl";
+    tag = "latest";
+    contents = [ pkgs.kubernetes pkgs.busybox certs kubeconfig ];
+    config.Entrypoint = "${pkgs.busybox}/bin/sh";
+  };
+
+  kubeconfig = pkgs.writeTextDir "kubeconfig.json" (builtins.toJSON {
+    apiVersion = "v1";
+    kind = "Config";
+    clusters = [{
+      name = "local";
+      cluster.certificate-authority = "/ca.pem";
+      cluster.server = "https://${servers.master}:4443/";
+    }];
+    users = [{
+      name = "kubelet";
+      user = {
+        client-certificate = "/admin.crt";
+        client-key = "/admin-key.pem";
+      };
+    }];
+    contexts = [{
+      context = {
+        cluster = "local";
+        user = "kubelet";
+      };
+      current-context = "kubelet-context";
+    }];
+  });
+
+  test = ''
+    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
+    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
+    $master->waitUntilSucceeds("kubectl get node two.nixos.xyz | grep Ready");
+    $master->waitUntilSucceeds("kubectl get node three.nixos.xyz | grep Ready");
+
+    $one->execute("docker load < ${kubectlImage}");
+    $two->execute("docker load < ${kubectlImage}");
+    $three->execute("docker load < ${kubectlImage}");
+
+    $master->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
+
+    $master->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
+
+    $master->succeed("kubectl exec -ti kubectl -- kubectl --kubeconfig=/kubeconfig.json version");
+  '';
+
+in makeTest {
+  name = "kubernetes-multinode-kubectl";
+
+  nodes = {
+    master =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            # networking.hostName = mkForce "master";
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
+            # networking.nat.externalIP = "192.168.1.1";
+            networking.primaryIPAddress = mkForce servers.master;
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+          (import ./kubernetes-master.nix { inherit pkgs config certs; })
+        ];
+
+    one =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            # networking.hostName = mkForce "one";
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
+            # networking.nat.externalIP = "192.168.1.2";
+            networking.primaryIPAddress = mkForce servers.one;
+            services.kubernetes.roles = ["node"];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+        ];
+
+    two =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            # networking.hostName = mkForce "two";
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.two; prefixLength = 24;}];
+            # networking.nat.externalIP = "192.168.1.3";
+            networking.primaryIPAddress = mkForce servers.two;
+            services.kubernetes.roles = ["node"];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+        ];
+
+    three =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            # networking.hostName = mkForce "three";
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.three; prefixLength = 24;}];
+            # networking.nat.externalIP = "192.168.1.4";
+            networking.primaryIPAddress = mkForce servers.three;
+            services.kubernetes.roles = ["node"];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+        ];
+  };
+
+  testScript = ''
+    startAll;
+
+    ${test}
+  '';
+}
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
new file mode 100644
index 000000000000..6388fe7ceb95
--- /dev/null
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -0,0 +1,206 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  servers.master = "192.168.1.1";
+  servers.one = "192.168.1.10";
+
+  certs = import ./certs.nix { inherit servers; };
+
+  roServiceAccount = pkgs.writeText "ro-service-account.json" (builtins.toJSON {
+    kind = "ServiceAccount";
+    apiVersion = "v1";
+    metadata = {
+      name = "read-only";
+      namespace = "default";
+    };
+  });
+
+  roRoleBinding = pkgs.writeText "ro-role-binding.json" (builtins.toJSON {
+    "apiVersion" = "rbac.authorization.k8s.io/v1beta1";
+    "kind" = "RoleBinding";
+    "metadata" = {
+      "name" = "read-pods";
+      "namespace" = "default";
+    };
+    "roleRef" = {
+      "apiGroup" = "rbac.authorization.k8s.io";
+      "kind" = "Role";
+      "name" = "pod-reader";
+    };
+    "subjects" = [{
+      "kind" = "ServiceAccount";
+      "name" = "read-only";
+      "namespace" = "default";
+    }];
+  });
+
+  roRole = pkgs.writeText "ro-role.json" (builtins.toJSON {
+    "apiVersion" = "rbac.authorization.k8s.io/v1beta1";
+    "kind" = "Role";
+    "metadata" = {
+      "name" = "pod-reader";
+      "namespace" = "default";
+    };
+    "rules" = [{
+      "apiGroups" = [""];
+      "resources" = ["pods"];
+      "verbs" = ["get" "list" "watch"];
+    }];
+  });
+
+  kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "kubectl";
+    metadata.namespace = "default";
+    metadata.labels.name = "kubectl";
+    spec.serviceAccountName = "read-only";
+    spec.containers = [{
+      name = "kubectl";
+      image = "kubectl:latest";
+      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      imagePullPolicy = "Never";
+      tty = true;
+    }];
+  });
+
+  kubectlPod2 = pkgs.writeTextDir "kubectl-pod-2.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "kubectl-2";
+    metadata.namespace = "default";
+    metadata.labels.name = "kubectl-2";
+    spec.serviceAccountName = "read-only";
+    spec.containers = [{
+      name = "kubectl-2";
+      image = "kubectl:latest";
+      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      imagePullPolicy = "Never";
+      tty = true;
+    }];
+  });
+
+  kubectlImage = pkgs.dockerTools.buildImage {
+    name = "kubectl";
+    tag = "latest";
+    contents = [ pkgs.kubernetes pkgs.busybox kubectlPod2 ];  # certs kubeconfig
+    config.Entrypoint = "${pkgs.busybox}/bin/sh";
+  };
+
+  test = ''
+    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
+    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
+
+    $one->execute("docker load < ${kubectlImage}");
+
+    $master->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
+    $master->waitUntilSucceeds("kubectl apply -f ${roRole}");
+    $master->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
+    $master->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
+
+    $master->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
+
+    $master->succeed("kubectl exec -ti kubectl -- kubectl get pods");
+    $master->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
+    $master->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
+  '';
+
+in makeTest {
+  name = "kubernetes-multinode-rbac";
+
+  nodes = {
+    master =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
+            networking.primaryIPAddress = mkForce servers.master;
+            services.kubernetes.apiserver.authorizationMode = mkForce ["ABAC" "RBAC"];
+            services.kubernetes.apiserver.authorizationPolicy = mkForce [
+              {
+                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+                kind = "Policy";
+                spec = {
+                  user  = "kubecfg";
+                  namespace = "*";
+                  resource = "*";
+                  apiGroup = "*";
+                  nonResourcePath = "*";
+                };
+              }
+              {
+                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+                kind = "Policy";
+                spec = {
+                  user  = "kubelet";
+                  namespace = "*";
+                  resource = "*";
+                  apiGroup = "*";
+                  nonResourcePath = "*";
+                };
+              }
+              {
+                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+                kind = "Policy";
+                spec = {
+                  user  = "kube-worker";
+                  namespace = "*";
+                  resource = "*";
+                  apiGroup = "*";
+                  nonResourcePath = "*";
+                };
+              }
+              {
+                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+                kind = "Policy";
+                spec = {
+                  user  = "kube_proxy";
+                  namespace = "*";
+                  resource = "*";
+                  apiGroup = "*";
+                  nonResourcePath = "*";
+                };
+              }
+              {
+                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+                kind = "Policy";
+                spec = {
+                  user  = "client";
+                  namespace = "*";
+                  resource = "*";
+                  apiGroup = "*";
+                  nonResourcePath = "*";
+                };
+              }
+            ];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+          (import ./kubernetes-master.nix { inherit pkgs config certs; })
+        ];
+
+    one =
+      { config, pkgs, lib, nodes, ... }:
+        mkMerge [
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 4096;
+            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
+            networking.primaryIPAddress = mkForce servers.one;
+            services.kubernetes.roles = ["node"];
+          }
+          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
+        ];
+  };
+
+  testScript = ''
+    startAll;
+
+    ${test}
+  '';
+}
diff --git a/nixos/tests/kubernetes/singlenode-kubectl.nix b/nixos/tests/kubernetes/singlenode-kubectl.nix
new file mode 100644
index 000000000000..d3a78a06e430
--- /dev/null
+++ b/nixos/tests/kubernetes/singlenode-kubectl.nix
@@ -0,0 +1,97 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  certs = import ./certs.nix { servers = {}; };
+
+  kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "kubectl";
+    metadata.labels.name = "kubectl";
+    spec.containers = [{
+      name = "kubectl";
+      image = "kubectl:latest";
+      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      imagePullPolicy = "Never";
+      tty = true;
+    }];
+  });
+
+  kubectlImage = pkgs.dockerTools.buildImage {
+    name = "kubectl";
+    tag = "latest";
+    contents = [ pkgs.kubernetes pkgs.busybox certs kubeconfig ];
+    config.Entrypoint = "${pkgs.busybox}/bin/sh";
+  };
+
+  kubeconfig = pkgs.writeTextDir "kubeconfig.json" (builtins.toJSON {
+    apiVersion = "v1";
+    kind = "Config";
+    clusters = [{
+      name = "local";
+      cluster.certificate-authority = "/ca.pem";
+      cluster.server = "https://192.168.1.1:4443/";
+    }];
+    users = [{
+      name = "kubelet";
+      user = {
+        client-certificate = "/admin.crt";
+        client-key = "/admin-key.pem";
+      };
+    }];
+    contexts = [{
+      context = {
+        cluster = "local";
+        user = "kubelet";
+      };
+      current-context = "kubelet-context";
+    }];
+  });
+
+  test = ''
+    $kubernetes->execute("docker load < ${kubectlImage}");
+    $kubernetes->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
+    $kubernetes->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
+
+    # FIXME: this test fails, for some reason it can not reach host ip address
+    $kubernetes->succeed("kubectl exec -ti kubectl -- kubectl --kubeconfig=/kubeconfig.json version");
+  '';
+in makeTest {
+  name = "kubernetes-singlenode-kubectl";
+
+  nodes = {
+    kubernetes =
+      { config, pkgs, lib, nodes, ... }:
+        {
+          virtualisation.memorySize = 768;
+          virtualisation.diskSize = 4096;
+
+          programs.bash.enableCompletion = true;
+          environment.systemPackages = with pkgs; [ netcat bind ];
+
+          services.kubernetes.roles = ["master" "node"];
+          services.kubernetes.apiserver.securePort = 4443;
+          services.kubernetes.dns.port = 4453;
+          services.kubernetes.clusterCidr = "10.0.0.0/8";
+          virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0";
+
+          networking.interfaces.eth1.ip4 = mkForce [{address = "192.168.1.1"; prefixLength = 24;}];
+          networking.primaryIPAddress = mkForce "192.168.1.1";
+          networking.bridges.cbr0.interfaces = [];
+          networking.interfaces.cbr0 = {};
+
+          services.dnsmasq.enable = true;
+          services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
+        };
+  };
+
+  testScript = ''
+    startAll;
+
+    ${test}
+  '';
+}
diff --git a/nixos/tests/kubernetes/singlenode.nix b/nixos/tests/kubernetes/singlenode.nix
new file mode 100644
index 000000000000..9bab51c49824
--- /dev/null
+++ b/nixos/tests/kubernetes/singlenode.nix
@@ -0,0 +1,82 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "redis";
+    metadata.labels.name = "redis";
+    spec.containers = [{
+      name = "redis";
+      image = "redis";
+      args = ["--bind" "0.0.0.0"];
+      imagePullPolicy = "Never";
+      ports = [{
+        name = "redis-server";
+        containerPort = 6379;
+      }];
+    }];
+  });
+
+  redisService = pkgs.writeText "redis-service.json" (builtins.toJSON {
+    kind = "Service";
+    apiVersion = "v1";
+    metadata.name = "redis";
+    spec = {
+      ports = [{port = 6379; targetPort = 6379;}];
+      selector = {name = "redis";};
+    };
+  });
+
+  redisImage = pkgs.dockerTools.buildImage {
+    name = "redis";
+    tag = "latest";
+    contents = pkgs.redis;
+    config.Entrypoint = "/bin/redis-server";
+  };
+
+  testSimplePod = ''
+    $kubernetes->execute("docker load < ${redisImage}");
+    $kubernetes->waitUntilSucceeds("kubectl create -f ${redisPod}");
+    $kubernetes->succeed("kubectl create -f ${redisService}");
+    $kubernetes->waitUntilSucceeds("kubectl get pod redis | grep Running");
+    $kubernetes->succeed("nc -z \$\(dig redis.default.svc.cluster.local +short\) 6379");
+  '';
+in {
+  # This test runs kubernetes on a single node
+  singlenode = makeTest {
+    name = "kubernetes-singlenode";
+
+    nodes = {
+      kubernetes =
+        { config, pkgs, lib, nodes, ... }:
+          {
+            virtualisation.memorySize = 768;
+            virtualisation.diskSize = 2048;
+
+            programs.bash.enableCompletion = true;
+            environment.systemPackages = with pkgs; [ netcat bind ];
+
+            services.kubernetes.roles = ["master" "node"];
+            services.kubernetes.dns.port = 4453;
+            virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0";
+
+            networking.bridges.cbr0.interfaces = [];
+            networking.interfaces.cbr0 = {};
+
+            services.dnsmasq.enable = true;
+            services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
+          };
+    };
+
+    testScript = ''
+      startAll;
+
+      ${testSimplePod}
+    '';
+  };
+}

From 8e14e978c8965db3378c57450d1177c03865554e Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Wed, 24 May 2017 19:05:54 +0200
Subject: [PATCH 260/533] kubernetes: fix minor issues

---
 .../services/cluster/kubernetes/default.nix   | 174 ++++----
 .../services/cluster/kubernetes/dns.nix       | 240 ----------
 nixos/release.nix                             |   2 +-
 nixos/tests/kubernetes.nix                    | 409 ------------------
 nixos/tests/kubernetes/default.nix            |  10 +-
 nixos/tests/kubernetes/kubernetes-master.nix  |  81 ----
 nixos/tests/kubernetes/multinode-kubectl.nix  |   8 -
 nixos/tests/kubernetes/rbac.nix               |  78 +---
 nixos/tests/kubernetes/singlenode-kubectl.nix |  97 -----
 9 files changed, 104 insertions(+), 995 deletions(-)
 delete mode 100644 nixos/modules/services/cluster/kubernetes/dns.nix
 delete mode 100644 nixos/tests/kubernetes.nix
 delete mode 100644 nixos/tests/kubernetes/singlenode-kubectl.nix

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 7160bcca1533..76b27ac0efba 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -75,13 +75,93 @@ let
       effect = mkOption {
         description = "Effect of taint.";
         example = "NoSchedule";
-        type = types.str;
+        type = types.enum ["NoSchedule" "PreferNoSchedule" "NoExecute"];
       };
     };
   };
 
   taints = concatMapStringsSep "," (v: "${v.key}=${v.value}:${v.effect}") (mapAttrsToList (n: v: v) cfg.kubelet.taints);
 
+  defaultAuthorizationPolicy = (optionals (any (el: el == "ABAC") cfg.apiserver.authorizationMode) [
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "kubecfg";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "kubelet";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "kube-worker";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "kube_proxy";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "client";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+  ]) ++ (optionals (all (el: el != "RBAC") cfg.apiserver.authorizationMode) [
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        user  = "admin";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+    {
+      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
+      kind = "Policy";
+      spec = {
+        group  = "system:serviceaccounts";
+        namespace = "*";
+        resource = "*";
+        apiGroup = "*";
+        nonResourcePath = "*";
+      };
+    }
+  ]);
 in {
 
   ###### interface
@@ -205,7 +285,7 @@ in {
         description = ''
           Kubernetes apiserver storage backend.
         '';
-        default = "etcd2";
+        default = "etcd3";
         type = types.enum ["etcd2" "etcd3"];
       };
 
@@ -264,7 +344,7 @@ in {
           Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/RBAC). See
           <link xlink:href="http://kubernetes.io/docs/admin/authorization.html"/>
         '';
-        default = ["ABAC"];
+        default = ["ABAC" "RBAC"];
         type = types.listOf (types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC" "RBAC"]);
       };
 
@@ -273,89 +353,11 @@ in {
           Kubernetes apiserver authorization policy file. See
           <link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
         '';
-        default = [
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "admin";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "kubecfg";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "kubelet";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "kube-worker";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "kube_proxy";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              user  = "client";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-          {
-            apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-            kind = "Policy";
-            spec = {
-              group  = "system:serviceaccounts";
-              namespace = "*";
-              resource = "*";
-              apiGroup = "*";
-              nonResourcePath = "*";
-            };
-          }
-        ];
+        default = defaultAuthorizationPolicy;
         type = types.listOf types.attrs;
       };
 
-      autorizationRBACSuperAdmin = mkOption {
+      authorizationRBACSuperAdmin = mkOption {
         description = "Role based authorization super admin.";
         default = "admin";
         type = types.str;
@@ -647,7 +649,7 @@ in {
       };
 
       applyManifests = mkOption {
-        description = "Whether to apply manifests.";
+        description = "Whether to apply manifests (this is true for master node).";
         default = false;
         type = types.bool;
       };
@@ -659,7 +661,7 @@ in {
       };
 
       taints = mkOption {
-        description = ".";
+        description = "Node taints (https://kubernetes.io/docs/concepts/configuration/assign-pod-node/).";
         default = {};
         type = types.attrsOf (types.submodule [ taintOptions ]);
       };
@@ -878,7 +880,7 @@ in {
               }"
             } \
             ${optionalString (elem "RBAC" cfg.apiserver.authorizationMode)
-              "--authorization-rbac-super-user=${cfg.apiserver.autorizationRBACSuperAdmin}"} \
+              "--authorization-rbac-super-user=${cfg.apiserver.authorizationRBACSuperAdmin}"} \
             --secure-port=${toString cfg.apiserver.securePort} \
             --service-cluster-ip-range=${cfg.apiserver.portalNet} \
             ${optionalString (cfg.apiserver.runtimeConfig != "")
diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix
deleted file mode 100644
index ac59eaf87250..000000000000
--- a/nixos/modules/services/cluster/kubernetes/dns.nix
+++ /dev/null
@@ -1,240 +0,0 @@
-{ cfg }: {
-    "kubedns-cm" = {
-        "apiVersion" = "v1";
-        "kind" = "ConfigMap";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "EnsureExists";
-            };
-            "name" = "kube-dns";
-            "namespace" = "kube-system";
-        };
-    };
-    "kubedns-controller" = {
-        "apiVersion" = "extensions/v1beta1";
-        "kind" = "Deployment";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "Reconcile";
-                "k8s-app" = "kube-dns";
-                "kubernetes.io/cluster-service" = "true";
-            };
-            "name" = "kube-dns";
-            "namespace" = "kube-system";
-        };
-        "spec" = {
-            "selector" = {
-                "matchLabels" = {
-                    "k8s-app" = "kube-dns";
-                };
-            };
-            "strategy" = {
-                "rollingUpdate" = {
-                    "maxSurge" = "10%";
-                    "maxUnavailable" = 0;
-                };
-            };
-            "template" = {
-                "metadata" = {
-                    "annotations" = {
-                        "scheduler.alpha.kubernetes.io/critical-pod" = "";
-                    };
-                    "labels" = {
-                        "k8s-app" = "kube-dns";
-                    };
-                };
-                "spec" = {
-                    "containers" = [{
-                        "args" = ["--domain=${cfg.dns.domain}."
-                            "--dns-port=10053"
-                            "--config-dir=/kube-dns-config"
-                            "--kube-master-url=${cfg.kubeconfig.server}"
-                            "--v=2"
-                        ];
-                        "env" = [{
-                            "name" = "PROMETHEUS_PORT";
-                            "value" = "10055";
-                        }];
-                        "image" = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1";
-                        "livenessProbe" = {
-                            "failureThreshold" = 5;
-                            "httpGet" = {
-                                "path" = "/healthcheck/kubedns";
-                                "port" = 10054;
-                                "scheme" = "HTTP";
-                            };
-                            "initialDelaySeconds" = 60;
-                            "successThreshold" = 1;
-                            "timeoutSeconds" = 5;
-                        };
-                        "name" = "kubedns";
-                        "ports" = [{
-                            "containerPort" = 10053;
-                            "name" = "dns-local";
-                            "protocol" = "UDP";
-                        } {
-                            "containerPort" = 10053;
-                            "name" = "dns-tcp-local";
-                            "protocol" = "TCP";
-                        } {
-                            "containerPort" = 10055;
-                            "name" = "metrics";
-                            "protocol" = "TCP";
-                        }];
-                        "readinessProbe" = {
-                            "httpGet" = {
-                                "path" = "/readiness";
-                                "port" = 8081;
-                                "scheme" = "HTTP";
-                            };
-                            "initialDelaySeconds" = 3;
-                            "timeoutSeconds" = 5;
-                        };
-                        "resources" = {
-                            "limits" = {
-                                "memory" = "170Mi";
-                            };
-                            "requests" = {
-                                "cpu" = "100m";
-                                "memory" = "70Mi";
-                            };
-                        };
-                        "volumeMounts" = [{
-                            "mountPath" = "/kube-dns-config";
-                            "name" = "kube-dns-config";
-                        }];
-                    } {
-                        "args" = ["-v=2"
-                            "-logtostderr"
-                            "-configDir=/etc/k8s/dns/dnsmasq-nanny"
-                            "-restartDnsmasq=true"
-                            "--"
-                            "-k"
-                            "--cache-size=1000"
-                            "--log-facility=-"
-                            "--server=/${cfg.dns.domain}/127.0.0.1#10053"
-                            "--server=/in-addr.arpa/127.0.0.1#10053"
-                            "--server=/ip6.arpa/127.0.0.1#10053"
-                        ];
-                        "image" = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1";
-                        "livenessProbe" = {
-                            "failureThreshold" = 5;
-                            "httpGet" = {
-                                "path" = "/healthcheck/dnsmasq";
-                                "port" = 10054;
-                                "scheme" = "HTTP";
-                            };
-                            "initialDelaySeconds" = 60;
-                            "successThreshold" = 1;
-                            "timeoutSeconds" = 5;
-                        };
-                        "name" = "dnsmasq";
-                        "ports" = [{
-                            "containerPort" = 53;
-                            "name" = "dns";
-                            "protocol" = "UDP";
-                        } {
-                            "containerPort" = 53;
-                            "name" = "dns-tcp";
-                            "protocol" = "TCP";
-                        }];
-                        "resources" = {
-                            "requests" = {
-                                "cpu" = "150m";
-                                "memory" = "20Mi";
-                            };
-                        };
-                        "volumeMounts" = [{
-                            "mountPath" = "/etc/k8s/dns/dnsmasq-nanny";
-                            "name" = "kube-dns-config";
-                        }];
-                    } {
-                        "args" = ["--v=2"
-                            "--logtostderr"
-                            "--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.${cfg.dns.domain},5,A"
-                            "--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.${cfg.dns.domain},5,A"
-                        ];
-                        "image" = "gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1";
-                        "livenessProbe" = {
-                            "failureThreshold" = 5;
-                            "httpGet" = {
-                                "path" = "/metrics";
-                                "port" = 10054;
-                                "scheme" = "HTTP";
-                            };
-                            "initialDelaySeconds" = 60;
-                            "successThreshold" = 1;
-                            "timeoutSeconds" = 5;
-                        };
-                        "name" = "sidecar";
-                        "ports" = [{
-                            "containerPort" = 10054;
-                            "name" = "metrics";
-                            "protocol" = "TCP";
-                        }];
-                        "resources" = {
-                            "requests" = {
-                                "cpu" = "10m";
-                                "memory" = "20Mi";
-                            };
-                        };
-                    }];
-                    "dnsPolicy" = "Default";
-                    "serviceAccountName" = "kube-dns";
-                    "tolerations" = [{
-                        "key" = "CriticalAddonsOnly";
-                        "operator" = "Exists";
-                    }];
-                    "volumes" = [{
-                        "configMap" = {
-                            "name" = "kube-dns";
-                            "optional" = true;
-                        };
-                        "name" = "kube-dns-config";
-                    }];
-                };
-            };
-        };
-    };
-    "kubedns-sa" = {
-        "apiVersion" = "v1";
-        "kind" = "ServiceAccount";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "Reconcile";
-                "kubernetes.io/cluster-service" = "true";
-            };
-            "name" = "kube-dns";
-            "namespace" = "kube-system";
-        };
-    };
-    "kubedns-svc" = {
-        "apiVersion" = "v1";
-        "kind" = "Service";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "Reconcile";
-                "k8s-app" = "kube-dns";
-                "kubernetes.io/cluster-service" = "true";
-                "kubernetes.io/name" = "KubeDNS";
-            };
-            "name" = "kube-dns";
-            "namespace" = "kube-system";
-        };
-        "spec" = {
-            "clusterIP" = "${cfg.dns.serverIp}";
-            "ports" = [{
-                "name" = "dns";
-                "port" = 53;
-                "protocol" = "UDP";
-            } {
-                "name" = "dns-tcp";
-                "port" = 53;
-                "protocol" = "TCP";
-            }];
-            "selector" = {
-                "k8s-app" = "kube-dns";
-            };
-        };
-    };
-}
diff --git a/nixos/release.nix b/nixos/release.nix
index a200535f3f4a..ac7755a160f4 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -271,7 +271,7 @@ in rec {
   tests.kernel-latest = callTest tests/kernel-latest.nix {};
   tests.kernel-lts = callTest tests/kernel-lts.nix {};
   tests.keystone = callTest tests/keystone.nix {};
-  tests.kubernetes = hydraJob (import tests/kubernetes.nix { system = "x86_64-linux"; });
+  tests.kubernetes = hydraJob (import tests/kubernetes/default.nix { system = "x86_64-linux"; });
   tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; };
   tests.ldap = callTest tests/ldap.nix {};
   #tests.lightdm = callTest tests/lightdm.nix {};
diff --git a/nixos/tests/kubernetes.nix b/nixos/tests/kubernetes.nix
deleted file mode 100644
index dcd25e211971..000000000000
--- a/nixos/tests/kubernetes.nix
+++ /dev/null
@@ -1,409 +0,0 @@
-{ system ? builtins.currentSystem }:
-
-with import ../lib/testing.nix { inherit system; };
-with import ../lib/qemu-flags.nix;
-with pkgs.lib;
-
-let
-  redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON {
-    kind = "Pod";
-    apiVersion = "v1";
-    metadata.name = "redis";
-    metadata.labels.name = "redis";
-    spec.containers = [{
-      name = "redis";
-      image = "redis";
-      args = ["--bind" "0.0.0.0"];
-      imagePullPolicy = "Never";
-      ports = [{
-        name = "redis-server";
-        containerPort = 6379;
-      }];
-    }];
-  });
-
-  redisService = pkgs.writeText "redis-service.json" (builtins.toJSON {
-    kind = "Service";
-    apiVersion = "v1";
-    metadata.name = "redis";
-    spec = {
-      ports = [{port = 6379; targetPort = 6379;}];
-      selector = {name = "redis";};
-    };
-  });
-
-  redisImage = pkgs.dockerTools.buildImage {
-    name = "redis";
-    tag = "latest";
-    contents = pkgs.redis;
-    config.Entrypoint = "/bin/redis-server";
-  };
-
-  testSimplePod = ''
-    $kubernetes->execute("docker load < ${redisImage}");
-    $kubernetes->waitUntilSucceeds("kubectl create -f ${redisPod}");
-    $kubernetes->succeed("kubectl create -f ${redisService}");
-    $kubernetes->waitUntilSucceeds("kubectl get pod redis | grep Running");
-    $kubernetes->succeed("nc -z \$\(dig \@10.10.0.1 redis.default.svc.cluster.local +short\) 6379");
-  '';
-in {
-  # This test runs kubernetes on a single node
-  trivial = makeTest {
-    name = "kubernetes-trivial";
-
-    nodes = {
-      kubernetes =
-        { config, pkgs, lib, nodes, ... }:
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 2048;
-
-            programs.bash.enableCompletion = true;
-            environment.systemPackages = with pkgs; [ netcat bind ];
-
-            services.kubernetes.roles = ["master" "node"];
-            virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0";
-
-            networking.bridges.cbr0.interfaces = [];
-            networking.interfaces.cbr0 = {};
-          };
-    };
-
-    testScript = ''
-      startAll;
-
-      $kubernetes->waitUntilSucceeds("kubectl get nodes | grep kubernetes | grep Ready");
-
-      ${testSimplePod}
-    '';
-  };
-
-  cluster = let
-    runWithOpenSSL = file: cmd: pkgs.runCommand file {
-      buildInputs = [ pkgs.openssl ];
-    } cmd;
-
-    ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
-    ca_pem = runWithOpenSSL "ca.pem" ''
-      openssl req \
-        -x509 -new -nodes -key ${ca_key} \
-        -days 10000 -out $out -subj "/CN=etcd-ca"
-    '';
-    etcd_key = runWithOpenSSL "etcd-key.pem" "openssl genrsa -out $out 2048";
-    etcd_csr = runWithOpenSSL "etcd.csr" ''
-      openssl req \
-        -new -key ${etcd_key} \
-        -out $out -subj "/CN=etcd" \
-        -config ${openssl_cnf}
-    '';
-    etcd_cert = runWithOpenSSL "etcd.pem" ''
-      openssl x509 \
-        -req -in ${etcd_csr} \
-        -CA ${ca_pem} -CAkey ${ca_key} \
-        -CAcreateserial -out $out \
-        -days 365 -extensions v3_req \
-        -extfile ${openssl_cnf}
-    '';
-
-    etcd_client_key = runWithOpenSSL "etcd-client-key.pem"
-      "openssl genrsa -out $out 2048";
-
-    etcd_client_csr = runWithOpenSSL "etcd-client-key.pem" ''
-      openssl req \
-        -new -key ${etcd_client_key} \
-        -out $out -subj "/CN=etcd-client" \
-        -config ${client_openssl_cnf}
-    '';
-
-    etcd_client_cert = runWithOpenSSL "etcd-client.crt" ''
-      openssl x509 \
-        -req -in ${etcd_client_csr} \
-        -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-        -out $out -days 365 -extensions v3_req \
-        -extfile ${client_openssl_cnf}
-    '';
-
-    apiserver_key = runWithOpenSSL "apiserver-key.pem" "openssl genrsa -out $out 2048";
-
-    apiserver_csr = runWithOpenSSL "apiserver.csr" ''
-      openssl req \
-        -new -key ${apiserver_key} \
-        -out $out -subj "/CN=kube-apiserver" \
-        -config ${apiserver_cnf}
-    '';
-
-    apiserver_cert = runWithOpenSSL "apiserver.pem" ''
-      openssl x509 \
-        -req -in ${apiserver_csr} \
-        -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-        -out $out -days 365 -extensions v3_req \
-        -extfile ${apiserver_cnf}
-    '';
-
-    worker_key = runWithOpenSSL "worker-key.pem" "openssl genrsa -out $out 2048";
-
-    worker_csr = runWithOpenSSL "worker.csr" ''
-      openssl req \
-        -new -key ${worker_key} \
-        -out $out -subj "/CN=kube-worker" \
-        -config ${worker_cnf}
-    '';
-
-    worker_cert = runWithOpenSSL "worker.pem" ''
-      openssl x509 \
-        -req -in ${worker_csr} \
-        -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-        -out $out -days 365 -extensions v3_req \
-        -extfile ${worker_cnf}
-    '';
-
-    openssl_cnf = pkgs.writeText "openssl.cnf" ''
-      [req]
-      req_extensions = v3_req
-      distinguished_name = req_distinguished_name
-      [req_distinguished_name]
-      [ v3_req ]
-      basicConstraints = CA:FALSE
-      keyUsage = digitalSignature, keyEncipherment
-      extendedKeyUsage = serverAuth
-      subjectAltName = @alt_names
-      [alt_names]
-      DNS.1 = etcd1
-      DNS.2 = etcd2
-      DNS.3 = etcd3
-      IP.1 = 127.0.0.1
-    '';
-
-    client_openssl_cnf = pkgs.writeText "client-openssl.cnf" ''
-      [req]
-      req_extensions = v3_req
-      distinguished_name = req_distinguished_name
-      [req_distinguished_name]
-      [ v3_req ]
-      basicConstraints = CA:FALSE
-      keyUsage = digitalSignature, keyEncipherment
-      extendedKeyUsage = clientAuth
-    '';
-
-    apiserver_cnf = pkgs.writeText "apiserver-openssl.cnf" ''
-      [req]
-      req_extensions = v3_req
-      distinguished_name = req_distinguished_name
-      [req_distinguished_name]
-      [ v3_req ]
-      basicConstraints = CA:FALSE
-      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-      subjectAltName = @alt_names
-      [alt_names]
-      DNS.1 = kubernetes
-      DNS.2 = kubernetes.default
-      DNS.3 = kubernetes.default.svc
-      DNS.4 = kubernetes.default.svc.cluster.local
-      IP.1 = 10.10.10.1
-    '';
-
-    worker_cnf = pkgs.writeText "worker-openssl.cnf" ''
-      [req]
-      req_extensions = v3_req
-      distinguished_name = req_distinguished_name
-      [req_distinguished_name]
-      [ v3_req ]
-      basicConstraints = CA:FALSE
-      keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-      subjectAltName = @alt_names
-      [alt_names]
-      DNS.1 = kubeWorker1
-      DNS.2 = kubeWorker2
-    '';
-
-    etcdNodeConfig = {
-      virtualisation.memorySize = 128;
-
-      services = {
-        etcd = {
-          enable = true;
-          keyFile = etcd_key;
-          certFile = etcd_cert;
-          trustedCaFile = ca_pem;
-          peerClientCertAuth = true;
-          listenClientUrls = ["https://0.0.0.0:2379"];
-          listenPeerUrls = ["https://0.0.0.0:2380"];
-        };
-      };
-
-      environment.variables = {
-        ETCDCTL_CERT_FILE = "${etcd_client_cert}";
-        ETCDCTL_KEY_FILE = "${etcd_client_key}";
-        ETCDCTL_CA_FILE = "${ca_pem}";
-        ETCDCTL_PEERS = "https://127.0.0.1:2379";
-      };
-
-      networking.firewall.allowedTCPPorts = [ 2379 2380 ];
-    };
-
-    kubeConfig = {
-      virtualisation.diskSize = 2048;
-      programs.bash.enableCompletion = true;
-
-      services.flannel = {
-        enable = true;
-        network = "10.10.0.0/16";
-        iface = "eth1";
-        etcd = {
-          endpoints = ["https://etcd1:2379" "https://etcd2:2379" "https://etcd3:2379"];
-          keyFile = etcd_client_key;
-          certFile = etcd_client_cert;
-          caFile = ca_pem;
-        };
-      };
-
-      # vxlan
-      networking.firewall.allowedUDPPorts = [ 8472 ];
-
-      systemd.services.docker.after = ["flannel.service"];
-      systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/subnet.env";
-      virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false --bip $FLANNEL_SUBNET";
-
-      services.kubernetes.verbose = true;
-      services.kubernetes.etcd = {
-        servers = ["https://etcd1:2379" "https://etcd2:2379" "https://etcd3:2379"];
-        keyFile = etcd_client_key;
-        certFile = etcd_client_cert;
-        caFile = ca_pem;
-      };
-
-      environment.systemPackages = [ pkgs.bind pkgs.tcpdump pkgs.utillinux ];
-    };
-
-    kubeMasterConfig = {pkgs, ...}: {
-      require = [kubeConfig];
-
-      # kube apiserver
-      networking.firewall.allowedTCPPorts = [ 443 ];
-
-      virtualisation.memorySize = 512;
-
-      services.kubernetes = {
-        roles = ["master"];
-        scheduler.leaderElect = true;
-        controllerManager.leaderElect = true;
-
-        apiserver = {
-          publicAddress = "0.0.0.0";
-          advertiseAddress = "192.168.1.8";
-          tlsKeyFile = apiserver_key;
-          tlsCertFile = apiserver_cert;
-          clientCaFile = ca_pem;
-          kubeletClientCaFile = ca_pem;
-          kubeletClientKeyFile = worker_key;
-          kubeletClientCertFile = worker_cert;
-        };
-      };
-    };
-
-    kubeWorkerConfig = { pkgs, ... }: {
-      require = [kubeConfig];
-
-      virtualisation.memorySize = 512;
-
-      # kubelet
-      networking.firewall.allowedTCPPorts = [ 10250 ];
-
-      services.kubernetes = {
-        roles = ["node"];
-        kubeconfig = {
-          server = "https://kubernetes:443";
-          caFile = ca_pem;
-          certFile = worker_cert;
-          keyFile = worker_key;
-        };
-        kubelet = {
-          tlsKeyFile = worker_key;
-          tlsCertFile = worker_cert;
-        };
-      };
-    };
-  in makeTest {
-    name = "kubernetes-cluster";
-
-    nodes = {
-      etcd1 = { config, pkgs, nodes, ... }: {
-        require = [etcdNodeConfig];
-        services.etcd = {
-          advertiseClientUrls = ["https://etcd1:2379"];
-          initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"];
-          initialAdvertisePeerUrls = ["https://etcd1:2380"];
-        };
-      };
-
-      etcd2 = { config, pkgs, ... }: {
-        require = [etcdNodeConfig];
-        services.etcd = {
-          advertiseClientUrls = ["https://etcd2:2379"];
-          initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"];
-          initialAdvertisePeerUrls = ["https://etcd2:2380"];
-        };
-      };
-
-      etcd3 = { config, pkgs, ... }: {
-        require = [etcdNodeConfig];
-        services.etcd = {
-          advertiseClientUrls = ["https://etcd3:2379"];
-          initialCluster = ["etcd1=https://etcd1:2380" "etcd2=https://etcd2:2380" "etcd3=https://etcd3:2380"];
-          initialAdvertisePeerUrls = ["https://etcd3:2380"];
-        };
-      };
-
-      kubeMaster1 = { config, pkgs, lib, nodes, ... }: {
-        require = [kubeMasterConfig];
-      };
-
-      kubeMaster2 = { config, pkgs, lib, nodes, ... }: {
-        require = [kubeMasterConfig];
-      };
-
-      # Kubernetes TCP load balancer
-      kubernetes = { config, pkgs, ... }: {
-        # kubernetes
-        networking.firewall.allowedTCPPorts = [ 443 ];
-
-        services.haproxy.enable = true;
-        services.haproxy.config = ''
-          global
-              log 127.0.0.1 local0 notice
-              user haproxy
-              group haproxy
-
-          defaults
-              log global
-              retries 2
-              timeout connect 3000
-              timeout server 5000
-              timeout client 5000
-
-          listen kubernetes
-              bind 0.0.0.0:443
-              mode tcp
-              option ssl-hello-chk
-              balance roundrobin
-              server kube-master-1 kubeMaster1:443 check
-              server kube-master-2 kubeMaster2:443 check
-        '';
-      };
-
-      kubeWorker1 = { config, pkgs, lib, nodes, ... }: {
-        require = [kubeWorkerConfig];
-      };
-
-      kubeWorker2 = { config, pkgs, lib, nodes, ... }: {
-        require = [kubeWorkerConfig];
-      };
-    };
-
-    testScript = ''
-      startAll;
-
-      ${testSimplePod}
-    '';
-  };
-}
diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix
index 6ba4f1904ea7..2b61980349eb 100644
--- a/nixos/tests/kubernetes/default.nix
+++ b/nixos/tests/kubernetes/default.nix
@@ -1,7 +1,7 @@
-{ }:
+{ system ? builtins.currentSystem }:
 {
-    kubernetes-singlenode = import ./singlenode.nix {};
-    kubernetes-multinode-kubectl = import ./multinode-kubectl.nix {};
-    kubernetes-rbac = import ./rbac.nix {};
-    kubernetes-dns = import ./dns.nix {};
+    kubernetes-singlenode = import ./singlenode.nix { inherit system; };
+    kubernetes-multinode-kubectl = import ./multinode-kubectl.nix { inherit system; };
+    kubernetes-rbac = import ./rbac.nix { inherit system; };
+    kubernetes-dns = import ./dns.nix { inherit system; };
 }
diff --git a/nixos/tests/kubernetes/kubernetes-master.nix b/nixos/tests/kubernetes/kubernetes-master.nix
index b9577fa0964b..15e7e52e4832 100644
--- a/nixos/tests/kubernetes/kubernetes-master.nix
+++ b/nixos/tests/kubernetes/kubernetes-master.nix
@@ -62,87 +62,6 @@ in
       portalNet = "10.1.10.0/24";  # --service-cluster-ip-range
       runtimeConfig = "";
       /*extraOpts = "--v=2";*/
-      authorizationMode = ["ABAC"];
-      authorizationPolicy = [
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            user  = "kubecfg";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            user  = "kubelet";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            user  = "kube-worker";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            user  = "kube_proxy";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            user  = "client";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            group  = "system:serviceaccounts";
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-        {
-          apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-          kind = "Policy";
-          spec = {
-            group  = "system:authenticated";
-            readonly = true;
-            namespace = "*";
-            resource = "*";
-            apiGroup = "*";
-            nonResourcePath = "*";
-          };
-        }
-      ];
     };
   };
 }
diff --git a/nixos/tests/kubernetes/multinode-kubectl.nix b/nixos/tests/kubernetes/multinode-kubectl.nix
index 97108163d2cc..4ea4c272b225 100644
--- a/nixos/tests/kubernetes/multinode-kubectl.nix
+++ b/nixos/tests/kubernetes/multinode-kubectl.nix
@@ -84,9 +84,7 @@ in makeTest {
           {
             virtualisation.memorySize = 768;
             virtualisation.diskSize = 4096;
-            # networking.hostName = mkForce "master";
             networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
-            # networking.nat.externalIP = "192.168.1.1";
             networking.primaryIPAddress = mkForce servers.master;
           }
           (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
@@ -99,9 +97,7 @@ in makeTest {
           {
             virtualisation.memorySize = 768;
             virtualisation.diskSize = 4096;
-            # networking.hostName = mkForce "one";
             networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
-            # networking.nat.externalIP = "192.168.1.2";
             networking.primaryIPAddress = mkForce servers.one;
             services.kubernetes.roles = ["node"];
           }
@@ -114,9 +110,7 @@ in makeTest {
           {
             virtualisation.memorySize = 768;
             virtualisation.diskSize = 4096;
-            # networking.hostName = mkForce "two";
             networking.interfaces.eth1.ip4 = mkForce [{address = servers.two; prefixLength = 24;}];
-            # networking.nat.externalIP = "192.168.1.3";
             networking.primaryIPAddress = mkForce servers.two;
             services.kubernetes.roles = ["node"];
           }
@@ -129,9 +123,7 @@ in makeTest {
           {
             virtualisation.memorySize = 768;
             virtualisation.diskSize = 4096;
-            # networking.hostName = mkForce "three";
             networking.interfaces.eth1.ip4 = mkForce [{address = servers.three; prefixLength = 24;}];
-            # networking.nat.externalIP = "192.168.1.4";
             networking.primaryIPAddress = mkForce servers.three;
             services.kubernetes.roles = ["node"];
           }
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index 6388fe7ceb95..dfb55e7e0580 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -39,16 +39,16 @@ let
   });
 
   roRole = pkgs.writeText "ro-role.json" (builtins.toJSON {
-    "apiVersion" = "rbac.authorization.k8s.io/v1beta1";
-    "kind" = "Role";
-    "metadata" = {
-      "name" = "pod-reader";
-      "namespace" = "default";
+    apiVersion = "rbac.authorization.k8s.io/v1beta1";
+    kind = "Role";
+    metadata = {
+      name = "pod-reader";
+      namespace = "default";
     };
-    "rules" = [{
-      "apiGroups" = [""];
-      "resources" = ["pods"];
-      "verbs" = ["get" "list" "watch"];
+    rules = [{
+      apiGroups = [""];
+      resources = ["pods"];
+      verbs = ["get" "list" "watch"];
     }];
   });
 
@@ -110,7 +110,7 @@ let
   '';
 
 in makeTest {
-  name = "kubernetes-multinode-rbac";
+  name = "kubernetes-rbac";
 
   nodes = {
     master =
@@ -121,64 +121,6 @@ in makeTest {
             virtualisation.diskSize = 4096;
             networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
             networking.primaryIPAddress = mkForce servers.master;
-            services.kubernetes.apiserver.authorizationMode = mkForce ["ABAC" "RBAC"];
-            services.kubernetes.apiserver.authorizationPolicy = mkForce [
-              {
-                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-                kind = "Policy";
-                spec = {
-                  user  = "kubecfg";
-                  namespace = "*";
-                  resource = "*";
-                  apiGroup = "*";
-                  nonResourcePath = "*";
-                };
-              }
-              {
-                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-                kind = "Policy";
-                spec = {
-                  user  = "kubelet";
-                  namespace = "*";
-                  resource = "*";
-                  apiGroup = "*";
-                  nonResourcePath = "*";
-                };
-              }
-              {
-                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-                kind = "Policy";
-                spec = {
-                  user  = "kube-worker";
-                  namespace = "*";
-                  resource = "*";
-                  apiGroup = "*";
-                  nonResourcePath = "*";
-                };
-              }
-              {
-                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-                kind = "Policy";
-                spec = {
-                  user  = "kube_proxy";
-                  namespace = "*";
-                  resource = "*";
-                  apiGroup = "*";
-                  nonResourcePath = "*";
-                };
-              }
-              {
-                apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-                kind = "Policy";
-                spec = {
-                  user  = "client";
-                  namespace = "*";
-                  resource = "*";
-                  apiGroup = "*";
-                  nonResourcePath = "*";
-                };
-              }
-            ];
           }
           (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
           (import ./kubernetes-master.nix { inherit pkgs config certs; })
diff --git a/nixos/tests/kubernetes/singlenode-kubectl.nix b/nixos/tests/kubernetes/singlenode-kubectl.nix
deleted file mode 100644
index d3a78a06e430..000000000000
--- a/nixos/tests/kubernetes/singlenode-kubectl.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{ system ? builtins.currentSystem }:
-
-with import ../../lib/testing.nix { inherit system; };
-with import ../../lib/qemu-flags.nix;
-with pkgs.lib;
-
-let
-  certs = import ./certs.nix { servers = {}; };
-
-  kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON {
-    kind = "Pod";
-    apiVersion = "v1";
-    metadata.name = "kubectl";
-    metadata.labels.name = "kubectl";
-    spec.containers = [{
-      name = "kubectl";
-      image = "kubectl:latest";
-      command = ["${pkgs.busybox}/bin/tail" "-f"];
-      imagePullPolicy = "Never";
-      tty = true;
-    }];
-  });
-
-  kubectlImage = pkgs.dockerTools.buildImage {
-    name = "kubectl";
-    tag = "latest";
-    contents = [ pkgs.kubernetes pkgs.busybox certs kubeconfig ];
-    config.Entrypoint = "${pkgs.busybox}/bin/sh";
-  };
-
-  kubeconfig = pkgs.writeTextDir "kubeconfig.json" (builtins.toJSON {
-    apiVersion = "v1";
-    kind = "Config";
-    clusters = [{
-      name = "local";
-      cluster.certificate-authority = "/ca.pem";
-      cluster.server = "https://192.168.1.1:4443/";
-    }];
-    users = [{
-      name = "kubelet";
-      user = {
-        client-certificate = "/admin.crt";
-        client-key = "/admin-key.pem";
-      };
-    }];
-    contexts = [{
-      context = {
-        cluster = "local";
-        user = "kubelet";
-      };
-      current-context = "kubelet-context";
-    }];
-  });
-
-  test = ''
-    $kubernetes->execute("docker load < ${kubectlImage}");
-    $kubernetes->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
-    $kubernetes->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
-
-    # FIXME: this test fails, for some reason it can not reach host ip address
-    $kubernetes->succeed("kubectl exec -ti kubectl -- kubectl --kubeconfig=/kubeconfig.json version");
-  '';
-in makeTest {
-  name = "kubernetes-singlenode-kubectl";
-
-  nodes = {
-    kubernetes =
-      { config, pkgs, lib, nodes, ... }:
-        {
-          virtualisation.memorySize = 768;
-          virtualisation.diskSize = 4096;
-
-          programs.bash.enableCompletion = true;
-          environment.systemPackages = with pkgs; [ netcat bind ];
-
-          services.kubernetes.roles = ["master" "node"];
-          services.kubernetes.apiserver.securePort = 4443;
-          services.kubernetes.dns.port = 4453;
-          services.kubernetes.clusterCidr = "10.0.0.0/8";
-          virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0";
-
-          networking.interfaces.eth1.ip4 = mkForce [{address = "192.168.1.1"; prefixLength = 24;}];
-          networking.primaryIPAddress = mkForce "192.168.1.1";
-          networking.bridges.cbr0.interfaces = [];
-          networking.interfaces.cbr0 = {};
-
-          services.dnsmasq.enable = true;
-          services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
-        };
-  };
-
-  testScript = ''
-    startAll;
-
-    ${test}
-  '';
-}

From 7dfeac88aca9b83d8a4f5815aa4b88b34dd7ea23 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 26 May 2017 23:21:17 +0200
Subject: [PATCH 261/533] kubernetes module: flannel support, minor fixes

- add flannel support
- remove deprecated authorizationRBACSuperAdmin option
- rename from deprecated poratalNet to serviceClusterIpRange
- add nodeIp option for kubelet
- kubelet, add br_netfilter to kernelModules
- enable firewall by default
- enable dns by default on node and on master
- disable iptables for docker by default on nodes
- dns, restart on failure
- update tests

and other minor changes
---
 .../services/cluster/kubernetes/default.nix   | 117 +++++++++++++++---
 nixos/tests/kubernetes/kubernetes-common.nix  |  75 ++---------
 nixos/tests/kubernetes/kubernetes-master.nix  |   8 +-
 nixos/tests/kubernetes/multinode-kubectl.nix  |  18 +--
 nixos/tests/kubernetes/singlenode.nix         |  49 ++++----
 5 files changed, 133 insertions(+), 134 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 76b27ac0efba..bd37c49486e4 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -162,6 +162,17 @@ let
       };
     }
   ]);
+
+  # needed for flannel to pass options to docker
+  mkDockerOpts = pkgs.runCommand "mk-docker-opts" {
+    buildInputs = [ pkgs.makeWrapper ];
+  } ''
+    mkdir -p $out
+    cp ${pkgs.kubernetes.src}/cluster/centos/node/bin/mk-docker-opts.sh $out/mk-docker-opts.sh
+
+    # bashInteractive needed for `compgen`
+    makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "$out/mk-docker-opts.sh"
+  '';
 in {
 
   ###### interface
@@ -357,20 +368,17 @@ in {
         type = types.listOf types.attrs;
       };
 
-      authorizationRBACSuperAdmin = mkOption {
-        description = "Role based authorization super admin.";
-        default = "admin";
-        type = types.str;
-      };
-
       allowPrivileged = mkOption {
         description = "Whether to allow privileged containers on Kubernetes.";
         default = true;
         type = types.bool;
       };
 
-      portalNet = mkOption {
-        description = "Kubernetes CIDR notation IP range from which to assign portal IPs.";
+      serviceClusterIpRange = mkOption {
+        description = ''
+          A CIDR notation IP range from which to assign service cluster IPs.
+          This must not overlap with any IP ranges assigned to nodes for pods.
+        '';
         default = "10.10.10.10/24";
         type = types.str;
       };
@@ -666,6 +674,12 @@ in {
         type = types.attrsOf (types.submodule [ taintOptions ]);
       };
 
+      nodeIp = mkOption {
+        description = "IP address of the node. If set, kubelet will use this IP address for the node.";
+        default = null;
+        type = types.nullOr types.str;
+      };
+
       extraOpts = mkOption {
         description = "Kubernetes kubelet extra command line options.";
         default = "";
@@ -761,6 +775,12 @@ in {
       type = types.str;
     };
 
+    flannel.enable = mkOption {
+      description = "Whether to enable flannel networking";
+      default = false;
+      type = types.bool;
+    };
+
   };
 
   ###### implementation
@@ -808,6 +828,8 @@ in {
               "--network-plugin=${cfg.kubelet.networkPlugin}"} \
             --cni-conf-dir=${cniConfig} \
             --hairpin-mode=hairpin-veth \
+            ${optionalString (cfg.kubelet.nodeIp != null)
+              "--node-ip=${cfg.kubelet.nodeIp}"} \
             ${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \
             ${cfg.kubelet.extraOpts}
           '';
@@ -817,6 +839,8 @@ in {
 
       # Allways include cni plugins
       services.kubernetes.kubelet.cni.packages = [pkgs.cni];
+
+      boot.kernelModules = ["br_netfilter"];
     })
 
     (mkIf (cfg.kubelet.applyManifests && cfg.kubelet.enable) {
@@ -879,10 +903,8 @@ in {
                 (concatMapStringsSep "\n" (l: builtins.toJSON l) cfg.apiserver.authorizationPolicy)
               }"
             } \
-            ${optionalString (elem "RBAC" cfg.apiserver.authorizationMode)
-              "--authorization-rbac-super-user=${cfg.apiserver.authorizationRBACSuperAdmin}"} \
             --secure-port=${toString cfg.apiserver.securePort} \
-            --service-cluster-ip-range=${cfg.apiserver.portalNet} \
+            --service-cluster-ip-range=${cfg.apiserver.serviceClusterIpRange} \
             ${optionalString (cfg.apiserver.runtimeConfig != "")
               "--runtime-config=${cfg.apiserver.runtimeConfig}"} \
             --admission_control=${concatStringsSep "," cfg.apiserver.admissionControl} \
@@ -981,10 +1003,9 @@ in {
           WorkingDirectory = cfg.dataDir;
         };
       };
-    })
 
-    (mkIf cfg.kubelet.enable {
-      boot.kernelModules = ["br_netfilter"];
+      # kube-proxy needs iptables
+      networking.firewall.enable = mkDefault true;
     })
 
     (mkIf (any (el: el == "master") cfg.roles) {
@@ -999,15 +1020,25 @@ in {
       services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]);
     })
 
+    # if this node is only a master make it unschedulable by default
     (mkIf (all (el: el == "master") cfg.roles) {
       services.kubernetes.kubelet.unschedulable = mkDefault true;
     })
 
     (mkIf (any (el: el == "node") cfg.roles) {
-      virtualisation.docker.enable = mkDefault true;
-      virtualisation.docker.logDriver = mkDefault "json-file";
+      virtualisation.docker = {
+        enable = mkDefault true;
+
+        # kubernetes needs access to logs
+        logDriver = mkDefault "json-file";
+
+        # iptables must be disabled for kubernetes
+        extraOptions = "--iptables=false --ip-masq=false";
+      };
+
       services.kubernetes.kubelet.enable = mkDefault true;
       services.kubernetes.proxy.enable = mkDefault true;
+      services.kubernetes.dns.enable = mkDefault true;
     })
 
     (mkIf cfg.addonManager.enable {
@@ -1035,8 +1066,17 @@ in {
           Group = "kubernetes";
           AmbientCapabilities = "cap_net_bind_service";
           SendSIGHUP = true;
+          RestartSec = "30s";
+          Restart = "always";
+          StartLimitInterval = "1m";
         };
       };
+
+      networking.firewall.extraCommands = ''
+        # allow container to host communication for DNS traffic
+        ${pkgs.iptables}/bin/iptables -I nixos-fw -p tcp -m tcp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
+        ${pkgs.iptables}/bin/iptables -I nixos-fw -p udp -m udp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
+      '';
     })
 
     (mkIf (
@@ -1070,5 +1110,50 @@ in {
       };
       users.extraGroups.kubernetes.gid = config.ids.gids.kubernetes;
     })
+
+    (mkIf cfg.flannel.enable {
+      services.flannel = {
+        enable = mkDefault true;
+        network = mkDefault cfg.clusterCidr;
+        etcd = mkDefault {
+          endpoints = cfg.etcd.servers;
+          inherit (cfg.etcd) caFile certFile keyFile;
+        };
+      };
+
+      services.kubernetes.kubelet = {
+        networkPlugin = mkDefault "cni";
+        cni.config = mkDefault [{
+          name = "mynet";
+          type = "flannel";
+          delegate = {
+            isDefaultGateway = true;
+            bridge = "docker0";
+          };
+        }];
+      };
+
+      systemd.services."mk-docker-opts" = {
+        description = "Pre-Docker Actions";
+        wantedBy = [ "flannel.service" ];
+        before = [ "docker.service" ];
+        after = [ "flannel.service" ];
+        path = [ pkgs.gawk pkgs.gnugrep ];
+        script = ''
+          mkdir -p /run/flannel
+          ${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker
+        '';
+        serviceConfig.Type = "oneshot";
+      };
+      systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/docker";
+
+      # read environment variables generated by mk-docker-opts
+      virtualisation.docker.extraOptions = "$DOCKER_OPTS";
+
+      networking.firewall.allowedUDPPorts = [
+        8285  # flannel udp
+        8472  # flannel vxlan
+      ];
+    })
   ];
 }
diff --git a/nixos/tests/kubernetes/kubernetes-common.nix b/nixos/tests/kubernetes/kubernetes-common.nix
index bc28244ad5b4..9f9e730fa655 100644
--- a/nixos/tests/kubernetes/kubernetes-common.nix
+++ b/nixos/tests/kubernetes/kubernetes-common.nix
@@ -1,4 +1,5 @@
 { config, pkgs, certs, servers }:
+
 let
   etcd_key = "${certs}/etcd-key.pem";
   etcd_cert = "${certs}/etcd.pem";
@@ -9,8 +10,6 @@ let
   worker_key = "${certs}/worker-key.pem";
   worker_cert = "${certs}/worker.pem";
 
-  mkDockerOpts = "${pkgs.kubernetes.src}/cluster/centos/node/bin/mk-docker-opts.sh";
-
   rootCaFile = pkgs.writeScript "rootCaFile.pem" ''
     ${pkgs.lib.readFile "${certs}/ca.pem"}
 
@@ -26,16 +25,9 @@ in
   environment.systemPackages = with pkgs; [ netcat bind etcd.bin ];
 
   networking = {
-    firewall = {
-      enable = true;
-      allowedTCPPorts = [
-        10250 80 443
-      ];
-      allowedUDPPorts = [
-        8285  # flannel udp
-        8472  # flannel vxlan
-      ];
-    };
+    firewall.allowedTCPPorts = [
+      10250 # kubelet
+    ];
     extraHosts = ''
       # register "external" domains
       ${servers.master} etcd.kubernetes.nixos.xyz
@@ -43,42 +35,7 @@ in
       ${mkHosts}
     '';
   };
-  virtualisation.docker.extraOptions = ''
-    --iptables=false $DOCKER_OPTS
-  '';
-
-  # lets create environment file for docker startup - network stuff
-  systemd.services."pre-docker" = {
-    description = "Pre-Docker Actions";
-    wantedBy = [ "flannel.service" ];
-    before = [ "docker.service" ];
-    after = [ "flannel.service" ];
-    path = [ pkgs.gawk pkgs.gnugrep ];
-    script = ''
-      mkdir -p /run/flannel
-      # bashInteractive needed for `compgen`
-      ${pkgs.bashInteractive}/bin/bash ${mkDockerOpts} -d /run/flannel/docker
-      cat /run/flannel/docker  # just for debugging
-
-      # allow container to host communication for DNS traffic
-      ${pkgs.iptables}/bin/iptables -I nixos-fw -p tcp -m tcp -i docker0 --dport 53 -j nixos-fw-accept
-      ${pkgs.iptables}/bin/iptables -I nixos-fw -p udp -m udp -i docker0 --dport 53 -j nixos-fw-accept
-    '';
-    serviceConfig.Type = "simple";
-  };
-  systemd.services.docker.serviceConfig.EnvironmentFile = "/run/flannel/docker";
-
-  services.flannel = {
-    enable = true;
-    network = "10.2.0.0/16";
-    iface = "eth1";
-    etcd = {
-      endpoints = ["https://etcd.kubernetes.nixos.xyz:2379"];
-      keyFile = etcd_client_key;
-      certFile = etcd_client_cert;
-      caFile = ca_pem;
-    };
-  };
+  services.flannel.iface = "eth1";
   environment.variables = {
     ETCDCTL_CERT_FILE = "${etcd_client_cert}";
     ETCDCTL_KEY_FILE = "${etcd_client_key}";
@@ -88,20 +45,10 @@ in
 
   services.kubernetes = {
     kubelet = {
-      networkPlugin = "cni";
-      cni.config = [{
-        name = "mynet";
-        type = "flannel";
-        delegate = {
-          isDefaultGateway = true;
-          bridge = "docker0";
-        };
-      }];
       tlsKeyFile = worker_key;
       tlsCertFile = worker_cert;
       hostname = "${config.networking.hostName}.nixos.xyz";
-      extraOpts = "--node-ip ${config.networking.primaryIPAddress}";
-      clusterDns = config.networking.primaryIPAddress;
+      nodeIp = config.networking.primaryIPAddress;
     };
     etcd = {
       servers = ["https://etcd.kubernetes.nixos.xyz:2379"];
@@ -110,22 +57,16 @@ in
       caFile = ca_pem;
     };
     kubeconfig = {
-      server = "https://kubernetes.nixos.xyz:4443";
+      server = "https://kubernetes.nixos.xyz";
       caFile = rootCaFile;
       certFile = worker_cert;
       keyFile = worker_key;
     };
+    flannel.enable = true;
 
-    # make sure you cover kubernetes.apiserver.portalNet and flannel networks
-    clusterCidr = "10.0.0.0/8";
-
-    dns.enable = true;
     dns.port = 4453;
   };
 
   services.dnsmasq.enable = true;
   services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
-
-  virtualisation.docker.enable = true;
-  virtualisation.docker.storageDriver = "overlay";
 }
diff --git a/nixos/tests/kubernetes/kubernetes-master.nix b/nixos/tests/kubernetes/kubernetes-master.nix
index 15e7e52e4832..28cce6ea6534 100644
--- a/nixos/tests/kubernetes/kubernetes-master.nix
+++ b/nixos/tests/kubernetes/kubernetes-master.nix
@@ -25,7 +25,7 @@ in
       allowPing = true;
       allowedTCPPorts = [
         2379 2380  # etcd
-        4443  # kubernetes
+        443 # kubernetes apiserver
       ];
     };
   };
@@ -43,14 +43,13 @@ in
     initialCluster = ["master=https://etcd.kubernetes.nixos.xyz:2380"];
     initialAdvertisePeerUrls = ["https://etcd.kubernetes.nixos.xyz:2380"];
   };
+
   services.kubernetes = {
     roles = ["master"];
     scheduler.leaderElect = true;
-    controllerManager.leaderElect = true;
     controllerManager.rootCaFile = rootCaFile;
     controllerManager.serviceAccountKeyFile = apiserver_key;
     apiserver = {
-      securePort = 4443;
       publicAddress = "192.168.1.1";
       advertiseAddress = "192.168.1.1";
       tlsKeyFile = apiserver_key;
@@ -59,9 +58,6 @@ in
       kubeletClientCaFile = rootCaFile;
       kubeletClientKeyFile = worker_key;
       kubeletClientCertFile = worker_cert;
-      portalNet = "10.1.10.0/24";  # --service-cluster-ip-range
-      runtimeConfig = "";
-      /*extraOpts = "--v=2";*/
     };
   };
 }
diff --git a/nixos/tests/kubernetes/multinode-kubectl.nix b/nixos/tests/kubernetes/multinode-kubectl.nix
index 4ea4c272b225..c5dd999a01e9 100644
--- a/nixos/tests/kubernetes/multinode-kubectl.nix
+++ b/nixos/tests/kubernetes/multinode-kubectl.nix
@@ -8,7 +8,6 @@ let
   servers.master = "192.168.1.1";
   servers.one = "192.168.1.10";
   servers.two = "192.168.1.20";
-  servers.three = "192.168.1.30";
 
   certs = import ./certs.nix { inherit servers; };
 
@@ -39,7 +38,7 @@ let
     clusters = [{
       name = "local";
       cluster.certificate-authority = "/ca.pem";
-      cluster.server = "https://${servers.master}:4443/";
+      cluster.server = "https://${servers.master}";
     }];
     users = [{
       name = "kubelet";
@@ -61,11 +60,9 @@ let
     $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
     $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
     $master->waitUntilSucceeds("kubectl get node two.nixos.xyz | grep Ready");
-    $master->waitUntilSucceeds("kubectl get node three.nixos.xyz | grep Ready");
 
     $one->execute("docker load < ${kubectlImage}");
     $two->execute("docker load < ${kubectlImage}");
-    $three->execute("docker load < ${kubectlImage}");
 
     $master->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
 
@@ -116,19 +113,6 @@ in makeTest {
           }
           (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
         ];
-
-    three =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.three; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.three;
-            services.kubernetes.roles = ["node"];
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-        ];
   };
 
   testScript = ''
diff --git a/nixos/tests/kubernetes/singlenode.nix b/nixos/tests/kubernetes/singlenode.nix
index 9bab51c49824..d924da155bdc 100644
--- a/nixos/tests/kubernetes/singlenode.nix
+++ b/nixos/tests/kubernetes/singlenode.nix
@@ -46,37 +46,30 @@ let
     $kubernetes->waitUntilSucceeds("kubectl get pod redis | grep Running");
     $kubernetes->succeed("nc -z \$\(dig redis.default.svc.cluster.local +short\) 6379");
   '';
-in {
-  # This test runs kubernetes on a single node
-  singlenode = makeTest {
-    name = "kubernetes-singlenode";
+in makeTest {
+  name = "kubernetes-singlenode";
 
-    nodes = {
-      kubernetes =
-        { config, pkgs, lib, nodes, ... }:
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 2048;
+  nodes = {
+    kubernetes =
+      { config, pkgs, lib, nodes, ... }:
+        {
+          virtualisation.memorySize = 768;
+          virtualisation.diskSize = 2048;
 
-            programs.bash.enableCompletion = true;
-            environment.systemPackages = with pkgs; [ netcat bind ];
+          programs.bash.enableCompletion = true;
+          environment.systemPackages = with pkgs; [ netcat bind ];
 
-            services.kubernetes.roles = ["master" "node"];
-            services.kubernetes.dns.port = 4453;
-            virtualisation.docker.extraOptions = "--iptables=false --ip-masq=false -b cbr0";
+          services.kubernetes.roles = ["master" "node"];
+          services.kubernetes.dns.port = 4453;
 
-            networking.bridges.cbr0.interfaces = [];
-            networking.interfaces.cbr0 = {};
-
-            services.dnsmasq.enable = true;
-            services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
-          };
-    };
-
-    testScript = ''
-      startAll;
-
-      ${testSimplePod}
-    '';
+          services.dnsmasq.enable = true;
+          services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
+        };
   };
+
+  testScript = ''
+    startAll;
+
+    ${testSimplePod}
+  '';
 }

From c96ca5f3bd5f458cdbee4fba25d607fa6c509600 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 11:26:32 +0200
Subject: [PATCH 262/533] kubernetes module: per service kubeconfig support

---
 .../services/cluster/kubernetes/default.nix   | 99 ++++++++++++-------
 1 file changed, 64 insertions(+), 35 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index bd37c49486e4..a37f4fd1d755 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -15,19 +15,19 @@ let
     config.Cmd = "/bin/pause";
   };
 
-  kubeconfig = pkgs.writeText "kubeconfig" (builtins.toJSON {
+  mkKubeConfig = name: cfg: pkgs.writeText "${name}-kubeconfig" (builtins.toJSON {
     apiVersion = "v1";
     kind = "Config";
     clusters = [{
       name = "local";
-      cluster.certificate-authority = cfg.kubeconfig.caFile;
-      cluster.server = cfg.kubeconfig.server;
+      cluster.certificate-authority = cfg.caFile;
+      cluster.server = cfg.server;
     }];
     users = [{
       name = "kubelet";
       user = {
-        client-certificate = cfg.kubeconfig.certFile;
-        client-key = cfg.kubeconfig.keyFile;
+        client-certificate = cfg.certFile;
+        client-key = cfg.keyFile;
       };
     }];
     contexts = [{
@@ -39,6 +39,39 @@ let
     }];
   });
 
+  mkKubeConfigOptions = prefix: {
+    server = mkOption {
+      description = "${prefix} kube-apiserver server address.";
+      default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}";
+      type = types.str;
+    };
+
+    caFile = mkOption {
+      description = "${prefix} certificate authrority file used to connect to kube-apiserver.";
+      type = types.nullOr types.path;
+      default = null;
+    };
+
+    certFile = mkOption {
+      description = "${prefix} client certificate file used to connect to kube-apiserver.";
+      type = types.nullOr types.path;
+      default = null;
+    };
+
+    keyFile = mkOption {
+      description = "${prefix} client key file used to connect to kube-apiserver.";
+      type = types.nullOr types.path;
+      default = null;
+    };
+  };
+
+  kubeConfigDefaults = {
+    server = mkDefault cfg.kubeconfig.server;
+    caFile = mkDefault cfg.kubeconfig.caFile;
+    certFile = mkDefault cfg.kubeconfig.certFile;
+    keyFile = mkDefault cfg.kubeconfig.keyFile;
+  };
+
   cniConfig = pkgs.buildEnv {
     name = "kubernetes-cni-config";
     paths = imap (i: entry:
@@ -228,31 +261,7 @@ in {
       };
     };
 
-    kubeconfig = {
-      server = mkOption {
-        description = "Kubernetes apiserver server address.";
-        default = "http://${cfg.apiserver.address}:${toString cfg.apiserver.port}";
-        type = types.str;
-      };
-
-      caFile = mkOption {
-        description = "Certificate authrority file to use to connect to Kubernetes apiserver.";
-        type = types.nullOr types.path;
-        default = null;
-      };
-
-      certFile = mkOption {
-        description = "Client certificate file to use to connect to Kubernetes.";
-        type = types.nullOr types.path;
-        default = null;
-      };
-
-      keyFile = mkOption {
-        description = "Client key file to use to connect to Kubernetes.";
-        type = types.nullOr types.path;
-        default = null;
-      };
-    };
+    kubeconfig = mkKubeConfigOptions "Default kubeconfig";
 
     dataDir = mkOption {
       description = "Kubernetes root directory for managing kubelet files.";
@@ -472,6 +481,8 @@ in {
         default = false;
       };
 
+      kubeconfig = mkKubeConfigOptions "Kubernetes scheduler";
+
       extraOpts = mkOption {
         description = "Kubernetes scheduler extra command line options.";
         default = "";
@@ -522,6 +533,8 @@ in {
         type = types.nullOr types.path;
       };
 
+      kubeconfig = mkKubeConfigOptions "Kubernetes controller manager";
+
       extraOpts = mkOption {
         description = "Kubernetes controller manager extra command line options.";
         default = "";
@@ -680,6 +693,8 @@ in {
         type = types.nullOr types.str;
       };
 
+      kubeconfig = mkKubeConfigOptions "Kubelet";
+
       extraOpts = mkOption {
         description = "Kubernetes kubelet extra command line options.";
         default = "";
@@ -700,6 +715,8 @@ in {
         type = types.str;
       };
 
+      kubeconfig = mkKubeConfigOptions "Kubernetes proxy";
+
       extraOpts = mkOption {
         description = "Kubernetes proxy extra command line options.";
         default = "";
@@ -756,6 +773,8 @@ in {
         type = types.str;
       };
 
+      kubeconfig = mkKubeConfigOptions "Kubernetes dns";
+
       extraOpts = mkOption {
         description = "Kubernetes DNS extra command line options.";
         default = "";
@@ -804,7 +823,7 @@ in {
               "--pod-manifest-path=${manifests}"} \
             ${optionalString (taints != "")
               "--register-with-taints=${taints}"} \
-            --kubeconfig=${kubeconfig} \
+            --kubeconfig=${mkKubeConfig "kubelet" cfg.kubelet.kubeconfig} \
             --require-kubeconfig \
             --address=${cfg.kubelet.address} \
             --port=${toString cfg.kubelet.port} \
@@ -841,6 +860,8 @@ in {
       services.kubernetes.kubelet.cni.packages = [pkgs.cni];
 
       boot.kernelModules = ["br_netfilter"];
+
+      services.kubernetes.kubelet.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf (cfg.kubelet.applyManifests && cfg.kubelet.enable) {
@@ -936,7 +957,7 @@ in {
             --address=${cfg.scheduler.address} \
             --port=${toString cfg.scheduler.port} \
             --leader-elect=${boolToString cfg.scheduler.leaderElect} \
-            --kubeconfig=${kubeconfig} \
+            --kubeconfig=${mkKubeConfig "kube-scheduler" cfg.scheduler.kubeconfig} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
             ${cfg.scheduler.extraOpts}
@@ -946,6 +967,8 @@ in {
           Group = "kubernetes";
         };
       };
+
+      services.kubernetes.scheduler.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf cfg.controllerManager.enable {
@@ -960,7 +983,7 @@ in {
           ExecStart = ''${cfg.package}/bin/kube-controller-manager \
             --address=${cfg.controllerManager.address} \
             --port=${toString cfg.controllerManager.port} \
-            --kubeconfig=${kubeconfig} \
+            --kubeconfig=${mkKubeConfig "kube-controller-manager" cfg.controllerManager.kubeconfig} \
             --leader-elect=${boolToString cfg.controllerManager.leaderElect} \
             ${if (cfg.controllerManager.serviceAccountKeyFile!=null)
               then "--service-account-private-key-file=${cfg.controllerManager.serviceAccountKeyFile}"
@@ -981,6 +1004,8 @@ in {
         };
         path = cfg.path;
       };
+
+      services.kubernetes.controllerManager.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf cfg.proxy.enable {
@@ -992,7 +1017,7 @@ in {
         serviceConfig = {
           Slice = "kubernetes.slice";
           ExecStart = ''${cfg.package}/bin/kube-proxy \
-            --kubeconfig=${kubeconfig} \
+            --kubeconfig=${mkKubeConfig "kube-proxy" cfg.proxy.kubeconfig} \
             --bind-address=${cfg.proxy.address} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
@@ -1006,6 +1031,8 @@ in {
 
       # kube-proxy needs iptables
       networking.firewall.enable = mkDefault true;
+
+      services.kubernetes.proxy.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf (any (el: el == "master") cfg.roles) {
@@ -1054,7 +1081,7 @@ in {
         serviceConfig = {
           Slice = "kubernetes.slice";
           ExecStart = ''${pkgs.kube-dns}/bin/kube-dns \
-            --kubecfg-file=${kubeconfig} \
+            --kubecfg-file=${mkKubeConfig "kube-dns" cfg.dns.kubeconfig} \
             --dns-port=${toString cfg.dns.port} \
             --domain=${cfg.dns.domain} \
             ${optionalString cfg.verbose "--v=6"} \
@@ -1077,6 +1104,8 @@ in {
         ${pkgs.iptables}/bin/iptables -I nixos-fw -p tcp -m tcp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
         ${pkgs.iptables}/bin/iptables -I nixos-fw -p udp -m udp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
       '';
+
+      services.kubernetes.dns.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf (

From c2622910ab2fe37664ae5effa2b839c46dda7196 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 11:57:52 +0200
Subject: [PATCH 263/533] kubernetes module: add support for common CA file

---
 .../services/cluster/kubernetes/default.nix      | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index a37f4fd1d755..449094175ce8 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -49,7 +49,7 @@ let
     caFile = mkOption {
       description = "${prefix} certificate authrority file used to connect to kube-apiserver.";
       type = types.nullOr types.path;
-      default = null;
+      default = cfg.caFile;
     };
 
     certFile = mkOption {
@@ -256,13 +256,19 @@ in {
 
       caFile = mkOption {
         description = "Etcd ca file.";
-        default = null;
+        default = cfg.caFile;
         type = types.nullOr types.path;
       };
     };
 
     kubeconfig = mkKubeConfigOptions "Default kubeconfig";
 
+    caFile = mkOption {
+      description = "Default kubernetes certificate authority";
+      type = types.nullOr types.path;
+      default = null;
+    };
+
     dataDir = mkOption {
       description = "Kubernetes root directory for managing kubelet files.";
       default = "/var/lib/kubernetes";
@@ -335,7 +341,7 @@ in {
 
       clientCaFile = mkOption {
         description = "Kubernetes apiserver CA file for client auth.";
-        default = null;
+        default = cfg.caFile;
         type = types.nullOr types.path;
       };
 
@@ -427,7 +433,7 @@ in {
 
       kubeletClientCaFile = mkOption {
         description = "Path to a cert file for connecting to kubelet.";
-        default = null;
+        default = cfg.caFile;
         type = types.nullOr types.path;
       };
 
@@ -529,7 +535,7 @@ in {
           Kubernetes controller manager certificate authority file included in
           service account's token secret.
         '';
-        default = null;
+        default = cfg.caFile;
         type = types.nullOr types.path;
       };
 

From b25d1559766836bf106ae48ae8607b00d1da5495 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 13:11:39 +0200
Subject: [PATCH 264/533] kubernetes module: default auth mode to only RBAC

---
 .../services/cluster/kubernetes/default.nix   | 85 +------------------
 1 file changed, 2 insertions(+), 83 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 449094175ce8..0a14340be091 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -115,87 +115,6 @@ let
 
   taints = concatMapStringsSep "," (v: "${v.key}=${v.value}:${v.effect}") (mapAttrsToList (n: v: v) cfg.kubelet.taints);
 
-  defaultAuthorizationPolicy = (optionals (any (el: el == "ABAC") cfg.apiserver.authorizationMode) [
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "kubecfg";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "kubelet";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "kube-worker";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "kube_proxy";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "client";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-  ]) ++ (optionals (all (el: el != "RBAC") cfg.apiserver.authorizationMode) [
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        user  = "admin";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-    {
-      apiVersion = "abac.authorization.kubernetes.io/v1beta1";
-      kind = "Policy";
-      spec = {
-        group  = "system:serviceaccounts";
-        namespace = "*";
-        resource = "*";
-        apiGroup = "*";
-        nonResourcePath = "*";
-      };
-    }
-  ]);
-
   # needed for flannel to pass options to docker
   mkDockerOpts = pkgs.runCommand "mk-docker-opts" {
     buildInputs = [ pkgs.makeWrapper ];
@@ -370,7 +289,7 @@ in {
           Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC/RBAC). See
           <link xlink:href="http://kubernetes.io/docs/admin/authorization.html"/>
         '';
-        default = ["ABAC" "RBAC"];
+        default = ["RBAC"];
         type = types.listOf (types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC" "RBAC"]);
       };
 
@@ -379,7 +298,7 @@ in {
           Kubernetes apiserver authorization policy file. See
           <link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
         '';
-        default = defaultAuthorizationPolicy;
+        default = [];
         type = types.listOf types.attrs;
       };
 

From d842d539d93152ff771d5f6038bf2b4a36d2f035 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 14:54:29 +0200
Subject: [PATCH 265/533] kubernetes module: fix cidr ranges

---
 nixos/modules/services/cluster/kubernetes/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 0a14340be091..b65c5035fc64 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -313,7 +313,7 @@ in {
           A CIDR notation IP range from which to assign service cluster IPs.
           This must not overlap with any IP ranges assigned to nodes for pods.
         '';
-        default = "10.10.10.10/24";
+        default = "10.0.0.0/24";
         type = types.str;
       };
 
@@ -715,7 +715,7 @@ in {
 
     clusterCidr = mkOption {
       description = "Kubernetes controller manager and proxy CIDR Range for Pods in cluster.";
-      default = "10.10.0.0/16";
+      default = "10.1.0.0/16";
       type = types.str;
     };
 

From 856ca7347f16b80609d4bd307d7a5cbabc0b3db9 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 14:55:02 +0200
Subject: [PATCH 266/533] kubernetes module: add storage and tolerations
 addmission controllers

---
 nixos/modules/services/cluster/kubernetes/default.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index b65c5035fc64..3e57fdcf5c03 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -332,10 +332,11 @@ in {
           Kubernetes admission control plugins to use. See
           <link xlink:href="http://kubernetes.io/docs/admin/admission-controllers/"/>
         '';
-        default = ["NamespaceLifecycle" "LimitRanger" "ServiceAccount" "ResourceQuota"];
+        default = ["NamespaceLifecycle" "LimitRanger" "ServiceAccount" "ResourceQuota" "DefaultStorageClass" "DefaultTolerationSeconds"];
         example = [
           "NamespaceLifecycle" "NamespaceExists" "LimitRanger"
           "SecurityContextDeny" "ServiceAccount" "ResourceQuota"
+          "PodSecurityPolicy" "NodeRestriction" "DefaultStorageClass"
         ];
         type = types.listOf types.str;
       };

From 8e48fff26892c9ad43a1a258c0337434aea1243e Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Tue, 30 May 2017 14:55:22 +0200
Subject: [PATCH 267/533] kubernetes module: enable leader elect by default

---
 nixos/modules/services/cluster/kubernetes/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 3e57fdcf5c03..475c8076b200 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -404,7 +404,7 @@ in {
       leaderElect = mkOption {
         description = "Whether to start leader election before executing main loop.";
         type = types.bool;
-        default = false;
+        default = true;
       };
 
       kubeconfig = mkKubeConfigOptions "Kubernetes scheduler";
@@ -438,7 +438,7 @@ in {
       leaderElect = mkOption {
         description = "Whether to start leader election before executing main loop.";
         type = types.bool;
-        default = false;
+        default = true;
       };
 
       serviceAccountKeyFile = mkOption {

From 55dbbfd899c2b286a02099c992b0c8bd13655650 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Sun, 4 Jun 2017 22:41:19 +0200
Subject: [PATCH 268/533] kubernetes module: kubelet, add socat to path for
 kubectl portforward

---
 nixos/modules/services/cluster/kubernetes/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 475c8076b200..51fab51d49c3 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -736,7 +736,7 @@ in {
         description = "Kubernetes Kubelet Service";
         wantedBy = [ "kubernetes.target" ];
         after = [ "network.target" "docker.service" "kube-apiserver.service" ];
-        path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables ] ++ cfg.path;
+        path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ cfg.path;
         preStart = ''
           docker load < ${infraContainer}
           rm /opt/cni/bin/* || true

From ff6413850b818ed9d68f6c70c258a6b3074dddb6 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:34:46 +0200
Subject: [PATCH 269/533] cni: 0.3.0 -> 0.5.2

---
 pkgs/applications/networking/cluster/cni/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/networking/cluster/cni/default.nix b/pkgs/applications/networking/cluster/cni/default.nix
index bdff04cb0738..a7205f1bc7af 100644
--- a/pkgs/applications/networking/cluster/cni/default.nix
+++ b/pkgs/applications/networking/cluster/cni/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "cni-${version}";
-  version = "0.3.0";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "cni";
     rev = "v${version}";
-    sha256 = "1nvixvf5slnsdrfpfs2km64x680wf83jbyp7il12bcim37q2az7m";
+    sha256 = "0n2sc5xf1h0i54am80kj7imrvawddn0kxvgi65w0194dpmyrg5al";
   };
 
   buildInputs = [ go ];
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
   outputs = ["out" "plugins"];
 
   buildPhase = ''
-    patchShebangs build
-    ./build
+    patchShebangs build.sh
+    ./build.sh
   '';
 
   installPhase = ''

From bff428616a4f2478f606fa7641cfcdbdd0711380 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:07:36 +0200
Subject: [PATCH 270/533] kubernetes: 1.6.4 -> 1.7.1

---
 pkgs/applications/networking/cluster/kubernetes/default.nix | 4 ++--
 pkgs/top-level/all-packages.nix                             | 4 +---
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 7e1e3fd42afa..ecce3431e482 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -17,13 +17,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   name = "kubernetes-${version}";
-  version = "1.6.4";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "1waxkr4ycrd23w8pi83gyf6jmawi1nhfzixp70fcwwka5h7p2y91";
+    sha256 = "1frf2nxk45lsbkq73fj72gxgr76icqdrsdqh20f5gpwiqn23n7c3";
   };
 
   buildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 0f317f89b9f5..4355b7305b71 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15115,9 +15115,7 @@ with pkgs;
 
   ktorrent = libsForQt5.callPackage ../applications/networking/p2p/ktorrent { };
 
-  kubernetes = callPackage ../applications/networking/cluster/kubernetes {
-    go = go_1_7;
-  };
+  kubernetes = callPackage ../applications/networking/cluster/kubernetes {  };
 
   kube-dns = callPackage ../applications/networking/cluster/kubernetes/dns.nix { };
 

From f10138bd328e19c2fa8c1b4e53bf16cfc9ce2719 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:08:11 +0200
Subject: [PATCH 271/533] kuberentes: expose kube-addons script

---
 pkgs/applications/networking/cluster/kubernetes/default.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index ecce3431e482..a108648bc4df 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -54,6 +54,10 @@ stdenv.mkDerivation rec {
     cp build/pause/pause "$pause/bin/pause"
     cp -R docs/man/man1 "$man/share/man"
 
+    cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+    patchShebangs $out/bin/kube-addons
+    wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
+
     $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl
   '';
 

From 74f99525e08dcd2d6678bace5c24f7d9aa49daf6 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:14:00 +0200
Subject: [PATCH 272/533] kubernetes module: add featureGates option

---
 .../services/cluster/kubernetes/default.nix   | 46 +++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 51fab51d49c3..b08e25235a5c 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -194,6 +194,12 @@ in {
       type = types.path;
     };
 
+    featureGates = mkOption {
+      description = "List set of feature gates";
+      default = [];
+      type = types.listOf types.str;
+    };
+
     apiserver = {
       enable = mkOption {
         description = "Whether to enable Kubernetes apiserver.";
@@ -201,6 +207,12 @@ in {
         type = types.bool;
       };
 
+      featureGates = mkOption {
+        description = "List set of feature gates";
+        default = cfg.featureGates;
+        type = types.listOf types.str;
+      };
+
       address = mkOption {
         description = "Kubernetes apiserver listening address.";
         default = "127.0.0.1";
@@ -389,6 +401,12 @@ in {
         type = types.bool;
       };
 
+      featureGates = mkOption {
+        description = "List set of feature gates";
+        default = cfg.featureGates;
+        type = types.listOf types.str;
+      };
+
       address = mkOption {
         description = "Kubernetes scheduler listening address.";
         default = "127.0.0.1";
@@ -423,6 +441,12 @@ in {
         type = types.bool;
       };
 
+      featureGates = mkOption {
+        description = "List set of feature gates";
+        default = cfg.featureGates;
+        type = types.listOf types.str;
+      };
+
       address = mkOption {
         description = "Kubernetes controller manager listening address.";
         default = "127.0.0.1";
@@ -475,6 +499,12 @@ in {
         type = types.bool;
       };
 
+      featureGates = mkOption {
+        description = "List set of feature gates";
+        default = cfg.featureGates;
+        type = types.listOf types.str;
+      };
+
       registerNode = mkOption {
         description = "Whether to auto register kubelet with API server.";
         default = true;
@@ -635,6 +665,12 @@ in {
         type = types.bool;
       };
 
+      featureGates = mkOption {
+        description = "List set of feature gates";
+        default = cfg.featureGates;
+        type = types.listOf types.str;
+      };
+
       address = mkOption {
         description = "Kubernetes proxy listening address.";
         default = "0.0.0.0";
@@ -775,6 +811,8 @@ in {
             --hairpin-mode=hairpin-veth \
             ${optionalString (cfg.kubelet.nodeIp != null)
               "--node-ip=${cfg.kubelet.nodeIp}"} \
+            ${optionalString (cfg.kubelet.featureGates != [])
+              "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.kubelet.featureGates}"} \
             ${optionalString cfg.verbose "--v=6 --log_flush_frequency=1s"} \
             ${cfg.kubelet.extraOpts}
           '';
@@ -860,6 +898,8 @@ in {
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
             --storage-backend=${cfg.apiserver.storageBackend} \
+            ${optionalString (cfg.kubelet.featureGates != [])
+              "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.kubelet.featureGates}"} \
             ${cfg.apiserver.extraOpts}
           '';
           WorkingDirectory = cfg.dataDir;
@@ -886,6 +926,8 @@ in {
             --kubeconfig=${mkKubeConfig "kube-scheduler" cfg.scheduler.kubeconfig} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
+            ${optionalString (cfg.scheduler.featureGates != [])
+              "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.scheduler.featureGates}"} \
             ${cfg.scheduler.extraOpts}
           '';
           WorkingDirectory = cfg.dataDir;
@@ -920,6 +962,8 @@ in {
             ${optionalString (cfg.clusterCidr!=null)
               "--cluster-cidr=${cfg.clusterCidr}"} \
             --allocate-node-cidrs=true \
+            ${optionalString (cfg.controllerManager.featureGates != [])
+              "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.controllerManager.featureGates}"} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
             ${cfg.controllerManager.extraOpts}
@@ -945,6 +989,8 @@ in {
           ExecStart = ''${cfg.package}/bin/kube-proxy \
             --kubeconfig=${mkKubeConfig "kube-proxy" cfg.proxy.kubeconfig} \
             --bind-address=${cfg.proxy.address} \
+            ${optionalString (cfg.proxy.featureGates != [])
+              "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.proxy.featureGates}"} \
             ${optionalString cfg.verbose "--v=6"} \
             ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
             ${optionalString (cfg.clusterCidr!=null)

From 7c893623d4f8f540c88a089e5579a813280ff511 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:16:53 +0200
Subject: [PATCH 273/533] kubernetes module: fix documentation links

---
 nixos/modules/services/cluster/kubernetes/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index b08e25235a5c..4ab458b78f46 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -308,7 +308,7 @@ in {
       authorizationPolicy = mkOption {
         description = ''
           Kubernetes apiserver authorization policy file. See
-          <link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
+          <link xlink:href="http://kubernetes.io/docs/admin/authorization.html"/>
         '';
         default = [];
         type = types.listOf types.attrs;
@@ -332,7 +332,7 @@ in {
       runtimeConfig = mkOption {
         description = ''
           Api runtime configuration. See
-          <link xlink:href="http://kubernetes.io/v1.0/docs/admin/cluster-management.html"/>
+          <link xlink:href="http://kubernetes.io/docs/admin/cluster-management.html"/>
         '';
         default = "";
         example = "api/all=false,api/v1=true";

From 9d97c92d68445aab986916c7214c28f824264cd9 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:20:10 +0200
Subject: [PATCH 274/533] kubernetes module: webhook authorization for kubelet

---
 .../modules/services/cluster/kubernetes/default.nix | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 4ab458b78f46..3ebd2a086fd0 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -334,7 +334,7 @@ in {
           Api runtime configuration. See
           <link xlink:href="http://kubernetes.io/docs/admin/cluster-management.html"/>
         '';
-        default = "";
+        default = "authentication.k8s.io/v1beta1=true";
         example = "api/all=false,api/v1=true";
         type = types.str;
       };
@@ -535,6 +535,12 @@ in {
         type = types.nullOr types.path;
       };
 
+      clientCaFile = mkOption {
+        description = "Kubernetes apiserver CA file for client authentication.";
+        default = cfg.caFile;
+        type = types.nullOr types.path;
+      };
+
       healthz = {
         bind = mkOption {
           description = "Kubernetes kubelet healthz listening address.";
@@ -794,6 +800,11 @@ in {
               "--tls-cert-file=${cfg.kubelet.tlsCertFile}"} \
             ${optionalString (cfg.kubelet.tlsKeyFile != null)
               "--tls-private-key-file=${cfg.kubelet.tlsKeyFile}"} \
+            ${optionalString (cfg.kubelet.clientCaFile != null)
+              "--client-ca-file=${cfg.kubelet.clientCaFile}"} \
+            --authentication-token-webhook \
+            --authentication-token-webhook-cache-ttl="10s" \
+            --authorization-mode=Webhook \
             --healthz-bind-address=${cfg.kubelet.healthz.bind} \
             --healthz-port=${toString cfg.kubelet.healthz.port} \
             --hostname-override=${cfg.kubelet.hostname} \

From 2beadcf1818dfeb6aba7b37112c2f409734fee17 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:22:12 +0200
Subject: [PATCH 275/533] kubernetes module: seedDockerImages option for
 seeding docker images built with nix

---
 .../services/cluster/kubernetes/default.nix   | 38 ++++++++++++++++---
 1 file changed, 32 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 3ebd2a086fd0..d799ce292e01 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -505,6 +505,12 @@ in {
         type = types.listOf types.str;
       };
 
+      seedDockerImages = mkOption {
+        description = "List of docker images to preload on system";
+        default = [];
+        type = types.listOf types.package;
+      };
+
       registerNode = mkOption {
         description = "Whether to auto register kubelet with API server.";
         default = true;
@@ -774,16 +780,36 @@ in {
 
   config = mkMerge [
     (mkIf cfg.kubelet.enable {
+      services.kubernetes.kubelet.seedDockerImages = [infraContainer];
+
+      systemd.services.kubelet-bootstrap = {
+        description = "Boostrap Kubelet";
+        wantedBy = ["kubernetes.target"];
+        after = ["docker.service" "network.target"];
+        path = with pkgs; [ docker ];
+        script = ''
+          ${concatMapStrings (img: ''
+            echo "Seeding docker image: ${img}"
+            docker load <${img}
+          '') cfg.kubelet.seedDockerImages}
+
+          rm /opt/cni/bin/* || true
+          ${concatMapStrings (package: ''
+            echo "Linking cni package: ${package}"
+            ln -fs ${package.plugins}/* /opt/cni/bin
+          '') cfg.kubelet.cni.packages}
+        '';
+        serviceConfig = {
+          Slice = "kubernetes.slice";
+          Type = "oneshot";
+        };
+      };
+
       systemd.services.kubelet = {
         description = "Kubernetes Kubelet Service";
         wantedBy = [ "kubernetes.target" ];
-        after = [ "network.target" "docker.service" "kube-apiserver.service" ];
+        after = [ "network.target" "docker.service" "kube-apiserver.service" "kubelet-bootstrap.service" ];
         path = with pkgs; [ gitMinimal openssh docker utillinux iproute ethtool thin-provisioning-tools iptables socat ] ++ cfg.path;
-        preStart = ''
-          docker load < ${infraContainer}
-          rm /opt/cni/bin/* || true
-          ${concatMapStringsSep "\n" (p: "ln -fs ${p.plugins}/* /opt/cni/bin") cfg.kubelet.cni.packages}
-        '';
         serviceConfig = {
           Slice = "kubernetes.slice";
           ExecStart = ''${cfg.package}/bin/kubelet \

From ddf5de5de0e61e9bbd453e38474188f0a93a9ac0 Mon Sep 17 00:00:00 2001
From: Jaka Hudoklin <jakahudoklin@gmail.com>
Date: Fri, 1 Sep 2017 12:31:56 +0200
Subject: [PATCH 276/533] kubernetes module: refactor module system, kube-dns
 as module

---
 nixos/modules/module-list.nix                 |   2 +
 .../services/cluster/kubernetes/dashboard.nix | 233 ++++++++-----
 .../services/cluster/kubernetes/default.nix   |  73 +---
 .../services/cluster/kubernetes/dns.nix       | 311 ++++++++++++++++++
 .../cluster/kubernetes/kube-addon-manager.nix |  54 ---
 .../networking/cluster/kubernetes/dns.nix     |  42 ---
 pkgs/top-level/all-packages.nix               |   2 -
 7 files changed, 478 insertions(+), 239 deletions(-)
 create mode 100644 nixos/modules/services/cluster/kubernetes/dns.nix
 delete mode 100644 nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix
 delete mode 100644 pkgs/applications/networking/cluster/kubernetes/dns.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index cb71e93e578f..d6684ad9511e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -158,6 +158,8 @@
   ./services/backup/znapzend.nix
   ./services/cluster/fleet.nix
   ./services/cluster/kubernetes/default.nix
+  ./services/cluster/kubernetes/dns.nix
+  ./services/cluster/kubernetes/dashboard.nix
   ./services/cluster/panamax.nix
   ./services/computing/boinc/client.nix
   ./services/computing/torque/server.nix
diff --git a/nixos/modules/services/cluster/kubernetes/dashboard.nix b/nixos/modules/services/cluster/kubernetes/dashboard.nix
index 337c2634a374..75d71fccfda4 100644
--- a/nixos/modules/services/cluster/kubernetes/dashboard.nix
+++ b/nixos/modules/services/cluster/kubernetes/dashboard.nix
@@ -1,85 +1,160 @@
-{ cfg }: {
-    "dashboard-controller" = {
-        "apiVersion" = "extensions/v1beta1";
-        "kind" = "Deployment";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "Reconcile";
-                "k8s-app" = "kubernetes-dashboard";
-                "kubernetes.io/cluster-service" = "true";
-            };
-            "name" = "kubernetes-dashboard";
-            "namespace" = "kube-system";
-        };
-        "spec" = {
-            "selector" = {
-                "matchLabels" = {
-                    "k8s-app" = "kubernetes-dashboard";
-                };
-            };
-            "template" = {
-                "metadata" = {
-                    "annotations" = {
-                        "scheduler.alpha.kubernetes.io/critical-pod" = "";
-                    };
-                    "labels" = {
-                        "k8s-app" = "kubernetes-dashboard";
-                    };
-                };
-                "spec" = {
-                    "containers" = [{
-                        "image" = "gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0";
-                        "livenessProbe" = {
-                            "httpGet" = {
-                                "path" = "/";
-                                "port" = 9090;
-                            };
-                            "initialDelaySeconds" = 30;
-                            "timeoutSeconds" = 30;
-                        };
-                        "name" = "kubernetes-dashboard";
-                        "ports" = [{
-                            "containerPort" = 9090;
-                        }];
-                        "resources" = {
-                            "limits" = {
-                                "cpu" = "100m";
-                                "memory" = "50Mi";
-                            };
-                            "requests" = {
-                                "cpu" = "100m";
-                                "memory" = "50Mi";
-                            };
-                        };
-                    }];
-                    "tolerations" = [{
-                        "key" = "CriticalAddonsOnly";
-                        "operator" = "Exists";
-                    }];
-                };
-            };
-        };
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.services.kubernetes.addons.dashboard;
+
+  name = "gcr.io/google_containers/kubernetes-dashboard-amd64";
+	version = "v1.6.3";
+
+  image = pkgs.dockerTools.pullImage {
+    imageName = name;
+    imageTag = version;
+    sha256 = "1sf54d96nkgic9hir9c6p14gw24ns1k5d5a0r1sg414kjrvic0b4";
+  };
+in {
+  options.services.kubernetes.addons.dashboard = {
+    enable = mkEnableOption "kubernetes dashboard addon";
+
+    enableRBAC = mkOption {
+      description = "Whether to enable role based access control is enabled for kubernetes dashboard";
+      type = types.bool;
+      default = elem "RBAC" config.services.kubernetes.apiserver.authorizationMode;
     };
-    "dashboard-service" = {
-        "apiVersion" = "v1";
-        "kind" = "Service";
-        "metadata" = {
-            "labels" = {
-                "addonmanager.kubernetes.io/mode" = "Reconcile";
-                "k8s-app" = "kubernetes-dashboard";
+  };
+
+  config = mkIf cfg.enable {
+    services.kubernetes.kubelet.seedDockerImages = [image];
+
+    services.kubernetes.addonManager.addons = {
+      kubernetes-dashboard-deployment = {
+        kind = "Deployment";
+        apiVersion = "apps/v1beta1";
+        metadata = {
+          labels = {
+            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
+            k8s-app = "kubernetes-dashboard";
+            version = version;
+            "kubernetes.io/cluster-service" = "true";
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+          };
+          name = "kubernetes-dashboard";
+          namespace = "kube-system";
+        };
+        spec = {
+          replicas = 1;
+          revisionHistoryLimit = 10;
+          selector.matchLabels."k8s-app" = "kubernetes-dashboard";
+          template = {
+            metadata = {
+              labels = {
+                k8s-addon = "kubernetes-dashboard.addons.k8s.io";
+                k8s-app = "kubernetes-dashboard";
+                version = version;
                 "kubernetes.io/cluster-service" = "true";
+              };
+              annotations = {
+                "scheduler.alpha.kubernetes.io/critical-pod" = "";
+                #"scheduler.alpha.kubernetes.io/tolerations" = ''[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'';
+              };
             };
-            "name" = "kubernetes-dashboard";
-            "namespace" = "kube-system";
-        };
-        "spec" = {
-            "ports" = [{
-                "port" = 80;
-                "targetPort" = 9090;
-            }];
-            "selector" = {
-                "k8s-app" = "kubernetes-dashboard";
+            spec = {
+              containers = [{
+                name = "kubernetes-dashboard";
+                image = "${name}:${version}";
+                ports = [{
+                  containerPort = 9090;
+                  protocol = "TCP";
+                }];
+                resources = {
+                  limits = {
+                    cpu = "100m";
+                    memory = "50Mi";
+                  };
+                  requests = {
+                    cpu = "100m";
+                    memory = "50Mi";
+                  };
+                };
+                livenessProbe = {
+                  httpGet = {
+                    path = "/";
+                    port = 9090;
+                  };
+                  initialDelaySeconds = 30;
+                  timeoutSeconds = 30;
+                };
+              }];
+              serviceAccountName = "kubernetes-dashboard";
+              tolerations = [{
+                key = "node-role.kubernetes.io/master";
+                effect = "NoSchedule";
+              }];
             };
+          };
         };
-    };
+      };
+
+      kubernetes-dashboard-svc = {
+        apiVersion = "v1";
+        kind = "Service";
+        metadata = {
+          labels = {
+            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
+            k8s-app = "kubernetes-dashboard";
+            "kubernetes.io/cluster-service" = "true";
+            "kubernetes.io/name" = "KubeDashboard";
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+          };
+          name = "kubernetes-dashboard";
+          namespace  = "kube-system";
+        };
+        spec = {
+          ports = [{
+            port = 80;
+            targetPort = 9090;
+          }];
+          selector.k8s-app = "kubernetes-dashboard";
+        };
+      };
+
+      kubernetes-dashboard-sa = {
+        apiVersion = "v1";
+        kind = "ServiceAccount";
+        metadata = {
+          labels = {
+            k8s-app = "kubernetes-dashboard";
+            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
+						"addonmanager.kubernetes.io/mode" = "Reconcile";
+          };
+          name = "kubernetes-dashboard";
+          namespace = "kube-system";
+        };
+      };
+    } // (optionalAttrs cfg.enableRBAC {
+      kubernetes-dashboard-crb = {
+        apiVersion = "rbac.authorization.k8s.io/v1beta1";
+        kind = "ClusterRoleBinding";
+        metadata = {
+          name = "kubernetes-dashboard";
+          labels = {
+            k8s-app = "kubernetes-dashboard";
+            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+          };
+        };
+        roleRef = {
+          apiGroup = "rbac.authorization.k8s.io";
+          kind = "ClusterRole";
+          name = "cluster-admin";
+        };
+        subjects = [{
+          kind = "ServiceAccount";
+          name = "kubernetes-dashboard";
+          namespace = "kube-system";
+        }];
+      };
+    });
+  };
 }
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index d799ce292e01..1584fde5afb6 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -587,7 +587,7 @@ in {
 
       clusterDomain = mkOption {
         description = "Use alternative domain.";
-        default = "cluster.local";
+        default = config.services.kubernetes.addons.dns.clusterDomain;
         type = types.str;
       };
 
@@ -705,16 +705,10 @@ in {
         type = types.bool;
       };
 
-      versionTag = mkOption {
-        description = "Version tag of Kubernetes addon manager image.";
-        default = "v6.4-beta.1";
-        type = types.str;
-      };
-
       addons = mkOption {
         description = "Kubernetes addons (any kind of Kubernetes resource can be an addon).";
         default = { };
-        type = types.attrsOf types.attrs;
+        type = types.attrsOf (types.either types.attrs (types.listOf types.attrs));
         example = literalExample ''
           {
             "my-service" = {
@@ -732,30 +726,6 @@ in {
       };
     };
 
-    dns = {
-      enable = mkEnableOption "Kubernetes DNS service.";
-
-      port = mkOption {
-        description = "Kubernetes DNS listening port.";
-        default = 53;
-        type = types.int;
-      };
-
-      domain = mkOption  {
-        description = "Kubernetes DNS domain under which to create names.";
-        default = cfg.kubelet.clusterDomain;
-        type = types.str;
-      };
-
-      kubeconfig = mkKubeConfigOptions "Kubernetes dns";
-
-      extraOpts = mkOption {
-        description = "Kubernetes DNS extra command line options.";
-        default = "";
-        type = types.str;
-      };
-    };
-
     path = mkOption {
       description = "Packages added to the services' PATH environment variable. Both the bin and sbin subdirectories of each package are added.";
       type = types.listOf types.package;
@@ -1052,8 +1022,8 @@ in {
       services.kubernetes.apiserver.enable = mkDefault true;
       services.kubernetes.scheduler.enable = mkDefault true;
       services.kubernetes.controllerManager.enable = mkDefault true;
-      services.kubernetes.dns.enable = mkDefault true;
       services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]);
+      services.kubernetes.addonManager.enable = mkDefault true;
     })
 
     # if this node is only a master make it unschedulable by default
@@ -1074,47 +1044,24 @@ in {
 
       services.kubernetes.kubelet.enable = mkDefault true;
       services.kubernetes.proxy.enable = mkDefault true;
-      services.kubernetes.dns.enable = mkDefault true;
     })
 
     (mkIf cfg.addonManager.enable {
-      services.kubernetes.kubelet.manifests = import ./kube-addon-manager.nix { inherit cfg addons; };
       environment.etc."kubernetes/addons".source = "${addons}/";
-    })
 
-    (mkIf cfg.dns.enable {
-      systemd.services.kube-dns = {
-        description = "Kubernetes DNS Service";
+      systemd.services.kube-addon-manager = {
+        description = "Kubernetes addon manager";
         wantedBy = [ "kubernetes.target" ];
         after = [ "kube-apiserver.service" ];
+        environment.ADDON_PATH = "/etc/kubernetes/addons/";
         serviceConfig = {
           Slice = "kubernetes.slice";
-          ExecStart = ''${pkgs.kube-dns}/bin/kube-dns \
-            --kubecfg-file=${mkKubeConfig "kube-dns" cfg.dns.kubeconfig} \
-            --dns-port=${toString cfg.dns.port} \
-            --domain=${cfg.dns.domain} \
-            ${optionalString cfg.verbose "--v=6"} \
-            ${optionalString cfg.verbose "--log-flush-frequency=1s"} \
-            ${cfg.dns.extraOpts}
-          '';
+          ExecStart = "${cfg.package}/bin/kube-addons";
           WorkingDirectory = cfg.dataDir;
           User = "kubernetes";
           Group = "kubernetes";
-          AmbientCapabilities = "cap_net_bind_service";
-          SendSIGHUP = true;
-          RestartSec = "30s";
-          Restart = "always";
-          StartLimitInterval = "1m";
         };
       };
-
-      networking.firewall.extraCommands = ''
-        # allow container to host communication for DNS traffic
-        ${pkgs.iptables}/bin/iptables -I nixos-fw -p tcp -m tcp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
-        ${pkgs.iptables}/bin/iptables -I nixos-fw -p udp -m udp -d ${cfg.clusterCidr} --dport 53 -j nixos-fw-accept
-      '';
-
-      services.kubernetes.dns.kubeconfig = kubeConfigDefaults;
     })
 
     (mkIf (
@@ -1122,8 +1069,7 @@ in {
         cfg.scheduler.enable ||
         cfg.controllerManager.enable ||
         cfg.kubelet.enable ||
-        cfg.proxy.enable ||
-        cfg.dns.enable
+        cfg.proxy.enable
     ) {
       systemd.targets.kubernetes = {
         description = "Kubernetes";
@@ -1147,6 +1093,9 @@ in {
         createHome = true;
       };
       users.extraGroups.kubernetes.gid = config.ids.gids.kubernetes;
+
+			# dns addon is enabled by default
+      services.kubernetes.addons.dns.enable = mkDefault true;
     })
 
     (mkIf cfg.flannel.enable {
diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix
new file mode 100644
index 000000000000..743fbdedfc54
--- /dev/null
+++ b/nixos/modules/services/cluster/kubernetes/dns.nix
@@ -0,0 +1,311 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+  version = "1.14.4";
+
+  k8s-dns-kube-dns = pkgs.dockerTools.pullImage {
+    imageName = "gcr.io/google_containers/k8s-dns-kube-dns-amd64";
+    imageTag = version;
+    sha256 = "1zq8xl0rac99r925xmalmx1xc3pgzprh6csrzck9k8fnqp50smdk";
+  };
+
+  k8s-dns-dnsmasq-nanny = pkgs.dockerTools.pullImage {
+    imageName = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64";
+    imageTag = version;
+    sha256 = "1dzw1qb97w2km6c5p564g1r5lnvyblwg5h2cssn09v7x4w3lf732";
+  };
+
+  k8s-dns-sidecar = pkgs.dockerTools.pullImage {
+    imageName = "gcr.io/google_containers/k8s-dns-sidecar-amd64";
+    imageTag = version;
+    sha256 = "1k9k6xklc1b74slpldnjsciikhkfhi0nl2n1vn1xr1y40dggssy4";
+  };
+
+  cfg = config.services.kubernetes.addons.dns;
+in {
+  options.services.kubernetes.addons.dns = {
+    enable = mkEnableOption "kubernetes dns addon";
+
+    clusterIp = mkOption {
+      description = "Dns addon clusterIP";
+
+      # this default is also what kubernetes users
+      default = (
+        concatStringsSep "." (
+          take 3 (splitString "." config.services.kubernetes.apiserver.serviceClusterIpRange
+        ))
+      ) + ".254";
+      type = types.str;
+    };
+
+    clusterDomain = mkOption {
+      description = "Dns cluster domain";
+      default = "cluster.local";
+      type = types.str;
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.kubernetes.kubelet.seedDockerImages = [
+      k8s-dns-kube-dns
+      k8s-dns-dnsmasq-nanny
+      k8s-dns-sidecar
+    ];
+
+    services.kubernetes.addonManager.addons = {
+      kubedns-deployment = {
+        apiVersion = "apps/v1beta1";
+        kind = "Deployment";
+        metadata = {
+          labels = {
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+            "k8s-app" = "kube-dns";
+            "kubernetes.io/cluster-service" = "true";
+          };
+          name = "kube-dns";
+          namespace = "kube-system";
+        };
+        spec = {
+          selector.matchLabels."k8s-app" = "kube-dns";
+          strategy = {
+            rollingUpdate = {
+              maxSurge = "10%";
+              maxUnavailable = 0;
+            };
+          };
+          template = {
+            metadata = {
+              annotations."scheduler.alpha.kubernetes.io/critical-pod" = "";
+              labels.k8s-app = "kube-dns";
+            };
+            spec = {
+              containers = [
+                {
+                  name = "kubedns";
+                  args = [
+                    "--domain=${cfg.clusterDomain}"
+                    "--dns-port=10053"
+                    "--config-dir=/kube-dns-config"
+                    "--v=2"
+                  ];
+                  env = [
+                    {
+                      name = "PROMETHEUS_PORT";
+                      value = "10055";
+                    }
+                  ];
+                  image = "gcr.io/google_containers/k8s-dns-kube-dns-amd64:${version}";
+                  livenessProbe = {
+                    failureThreshold = 5;
+                    httpGet = {
+                      path = "/healthcheck/kubedns";
+                      port = 10054;
+                      scheme = "HTTP";
+                    };
+                    initialDelaySeconds = 60;
+                    successThreshold = 1;
+                    timeoutSeconds = 5;
+                  };
+                  ports = [
+                    {
+                      containerPort = 10053;
+                      name = "dns-local";
+                      protocol = "UDP";
+                    }
+                    {
+                      containerPort = 10053;
+                      name = "dns-tcp-local";
+                      protocol = "TCP";
+                    }
+                    {
+                      containerPort = 10055;
+                      name = "metrics";
+                      protocol = "TCP";
+                    }
+                  ];
+                  readinessProbe = {
+                    httpGet = {
+                      path = "/readiness";
+                      port = 8081;
+                      scheme = "HTTP";
+                    };
+                    initialDelaySeconds = 3;
+                    timeoutSeconds = 5;
+                  };
+                  resources = {
+                    limits.memory = "170Mi";
+                    requests = {
+                      cpu = "100m";
+                      memory = "70Mi";
+                    };
+                  };
+                  volumeMounts = [
+                    {
+                      mountPath = "/kube-dns-config";
+                      name = "kube-dns-config";
+                    }
+                  ];
+                }
+                {
+                  args = [
+                    "-v=2"
+                    "-logtostderr"
+                    "-configDir=/etc/k8s/dns/dnsmasq-nanny"
+                    "-restartDnsmasq=true"
+                    "--"
+                    "-k"
+                    "--cache-size=1000"
+                    "--log-facility=-"
+                    "--server=/${cfg.clusterDomain}/127.0.0.1#10053"
+                    "--server=/in-addr.arpa/127.0.0.1#10053"
+                    "--server=/ip6.arpa/127.0.0.1#10053"
+                  ];
+                  image = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:${version}";
+                  livenessProbe = {
+                    failureThreshold = 5;
+                    httpGet = {
+                      path = "/healthcheck/dnsmasq";
+                      port = 10054;
+                      scheme = "HTTP";
+                    };
+                    initialDelaySeconds = 60;
+                    successThreshold = 1;
+                    timeoutSeconds = 5;
+                  };
+                  name = "dnsmasq";
+                  ports = [
+                    {
+                      containerPort = 53;
+                      name = "dns";
+                      protocol = "UDP";
+                    }
+                    {
+                      containerPort = 53;
+                      name = "dns-tcp";
+                      protocol = "TCP";
+                    }
+                  ];
+                  resources = {
+                    requests = {
+                      cpu = "150m";
+                      memory = "20Mi";
+                    };
+                  };
+                  volumeMounts = [
+                    {
+                      mountPath = "/etc/k8s/dns/dnsmasq-nanny";
+                      name = "kube-dns-config";
+                    }
+                  ];
+                }
+                {
+                  name = "sidecar";
+                  image = "gcr.io/google_containers/k8s-dns-sidecar-amd64:${version}";
+                  args = [
+                    "--v=2"
+                    "--logtostderr"
+                    "--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.${cfg.clusterDomain},5,A"
+                    "--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.${cfg.clusterDomain},5,A"
+                  ];
+                  livenessProbe = {
+                    failureThreshold = 5;
+                    httpGet = {
+                      path = "/metrics";
+                      port = 10054;
+                      scheme = "HTTP";
+                    };
+                    initialDelaySeconds = 60;
+                    successThreshold = 1;
+                    timeoutSeconds = 5;
+                  };
+                  ports = [
+                    {
+                      containerPort = 10054;
+                      name = "metrics";
+                      protocol = "TCP";
+                    }
+                  ];
+                  resources = {
+                    requests = {
+                      cpu = "10m";
+                      memory = "20Mi";
+                    };
+                  };
+                }
+              ];
+              dnsPolicy = "Default";
+              serviceAccountName = "kube-dns";
+              tolerations = [
+                {
+                  key = "CriticalAddonsOnly";
+                  operator = "Exists";
+                }
+              ];
+              volumes = [
+                {
+                  configMap = {
+                    name = "kube-dns";
+                    optional = true;
+                  };
+                  name = "kube-dns-config";
+                }
+              ];
+            };
+          };
+        };
+      };
+
+      kubedns-svc = {
+        apiVersion = "v1";
+        kind = "Service";
+        metadata = {
+          labels = {
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+            "k8s-app" = "kube-dns";
+            "kubernetes.io/cluster-service" = "true";
+            "kubernetes.io/name" = "KubeDNS";
+          };
+          name = "kube-dns";
+          namespace  = "kube-system";
+        };
+        spec = {
+          clusterIP = cfg.clusterIp;
+          ports = [
+            {name = "dns"; port = 53; protocol = "UDP";}
+            {name = "dns-tcp"; port = 53; protocol = "TCP";}
+          ];
+          selector.k8s-app = "kube-dns";
+        };
+      };
+
+      kubedns-sa = {
+        apiVersion = "v1";
+        kind = "ServiceAccount";
+        metadata = {
+          name = "kube-dns";
+          namespace = "kube-system";
+          labels = {
+            "kubernetes.io/cluster-service" = "true";
+            "addonmanager.kubernetes.io/mode" = "Reconcile";
+          };
+        };
+      };
+
+      kubedns-cm = {
+        apiVersion = "v1";
+        kind = "ConfigMap";
+        metadata = {
+          name = "kube-dns";
+          namespace = "kube-system";
+          labels = {
+            "addonmanager.kubernetes.io/mode" = "EnsureExists";
+          };
+        };
+      };
+    };
+
+    services.kubernetes.kubelet.clusterDns = mkDefault cfg.clusterIp;
+  };
+}
diff --git a/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix b/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix
deleted file mode 100644
index f1a367dfff1b..000000000000
--- a/nixos/modules/services/cluster/kubernetes/kube-addon-manager.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ cfg, addons }: {
-    "kube-addon-manager" = {
-        "apiVersion" = "v1";
-        "kind" = "Pod";
-        "metadata" = {
-            "labels" = {
-                "component" = "kube-addon-manager";
-            };
-            "name" = "kube-addon-manager";
-            "namespace" = "kube-system";
-        };
-        "spec" = {
-            "containers" = [{
-                "command" = ["/bin/bash"
-                    "-c"
-                    "/opt/kube-addons.sh | tee /var/log/kube-addon-manager.log"
-                ];
-                "env" = [{
-                    "name" = "KUBECTL_OPTS";
-                    "value" = "--server=${cfg.kubeconfig.server}";
-                }];
-                "image" = "gcr.io/google-containers/kube-addon-manager:${cfg.addonManager.versionTag}";
-                "name" = "kube-addon-manager";
-                "resources" = {
-                    "requests" = {
-                        "cpu" = "5m";
-                        "memory" = "50Mi";
-                    };
-                };
-                "volumeMounts" = [{
-                    "mountPath" = "/etc/kubernetes/addons/";
-                    "name" = "addons";
-                    "readOnly" = true;
-                } {
-                    "mountPath" = "/var/log";
-                    "name" = "varlog";
-                    "readOnly" = false;
-                }];
-            }];
-            "hostNetwork" = true;
-            "volumes" = [{
-                "hostPath" = {
-                    "path" = "${addons}/";
-                };
-                "name" = "addons";
-            } {
-                "hostPath" = {
-                    "path" = "/var/log";
-                };
-                "name" = "varlog";
-            }];
-        };
-    };
-}
diff --git a/pkgs/applications/networking/cluster/kubernetes/dns.nix b/pkgs/applications/networking/cluster/kubernetes/dns.nix
deleted file mode 100644
index 3db9a5141d8a..000000000000
--- a/pkgs/applications/networking/cluster/kubernetes/dns.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, go }:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  name = "kube-dns-${version}";
-  version = "1.14.1";
-
-  src = fetchFromGitHub {
-    owner = "kubernetes";
-    repo = "dns";
-    rev = "${version}";
-    sha256 = "13l42wm2rcz1ina8hhhagbnck6f1gdbwj33dmnrr52pwi1xh52f7";
-  };
-
-  buildInputs = [ go ];
-
-  buildPhase = ''
-    export GOPATH="$(pwd)/.gopath"
-    mkdir $GOPATH
-    ln -s $(pwd)/vendor $GOPATH/src
-    mkdir $GOPATH/src/k8s.io/dns
-    ln -s $(pwd)/cmd $GOPATH/src/k8s.io/dns/cmd
-    ln -s $(pwd)/pkg $GOPATH/src/k8s.io/dns/pkg
-
-    # build only kube-dns, we do not need anything else
-    go build -o kube-dns ./cmd/kube-dns
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp kube-dns $out/bin
-  '';
-
-  meta = {
-    description = "Kubernetes DNS service";
-    license = licenses.asl20;
-    homepage = https://github.com/kubernetes/dns;
-    maintainers = with maintainers; [ matejc ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4355b7305b71..f4940d14f064 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15117,8 +15117,6 @@ with pkgs;
 
   kubernetes = callPackage ../applications/networking/cluster/kubernetes {  };
 
-  kube-dns = callPackage ../applications/networking/cluster/kubernetes/dns.nix { };
-
   kupfer = callPackage ../applications/misc/kupfer { };
 
   lame = callPackage ../development/libraries/lame { };

From 6ea272ced416a867639e83235f77083ff3198900 Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Sat, 9 Sep 2017 01:58:35 +0200
Subject: [PATCH 277/533] kubernetes: fix dns addon hashes, fix clusterDns,
 enable proxy on master

---
 nixos/modules/services/cluster/kubernetes/default.nix | 3 ++-
 nixos/modules/services/cluster/kubernetes/dns.nix     | 6 +++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 1584fde5afb6..077953e4d4f8 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -581,7 +581,7 @@ in {
 
       clusterDns = mkOption {
         description = "Use alternative DNS.";
-        default = "10.10.0.1";
+        default = "10.1.0.1";
         type = types.str;
       };
 
@@ -1024,6 +1024,7 @@ in {
       services.kubernetes.controllerManager.enable = mkDefault true;
       services.etcd.enable = mkDefault (cfg.etcd.servers == ["http://127.0.0.1:2379"]);
       services.kubernetes.addonManager.enable = mkDefault true;
+      services.kubernetes.proxy.enable = mkDefault true;
     })
 
     # if this node is only a master make it unschedulable by default
diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix
index 743fbdedfc54..226fdadffd1a 100644
--- a/nixos/modules/services/cluster/kubernetes/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/dns.nix
@@ -8,19 +8,19 @@ let
   k8s-dns-kube-dns = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-kube-dns-amd64";
     imageTag = version;
-    sha256 = "1zq8xl0rac99r925xmalmx1xc3pgzprh6csrzck9k8fnqp50smdk";
+    sha256 = "0q97xfqrigrfjl2a9cxl5in619py0zv44gch09jm8gqjkxl80imp";
   };
 
   k8s-dns-dnsmasq-nanny = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64";
     imageTag = version;
-    sha256 = "1dzw1qb97w2km6c5p564g1r5lnvyblwg5h2cssn09v7x4w3lf732";
+    sha256 = "051w5ca4qb88mwva4hbnh9xzlsvv7k1mbk3wz50lmig2mqrqqx6c";
   };
 
   k8s-dns-sidecar = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-sidecar-amd64";
     imageTag = version;
-    sha256 = "1k9k6xklc1b74slpldnjsciikhkfhi0nl2n1vn1xr1y40dggssy4";
+    sha256 = "1z0d129bcm8i2cqq36x5jhnrv9hirj8c6kjrmdav8vgf7py78vsm";
   };
 
   cfg = config.services.kubernetes.addons.dns;

From 1febe07de7e584334b4c87304117bbc0b2410cde Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Sat, 9 Sep 2017 01:59:33 +0200
Subject: [PATCH 278/533] kubernetes: build e2e.test

---
 pkgs/applications/networking/cluster/kubernetes/default.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index a108648bc4df..e76d3cf5d08c 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -10,6 +10,7 @@
     "plugin/cmd/kube-scheduler"
     "federation/cmd/federation-apiserver"
     "federation/cmd/federation-controller-manager"
+    "test/e2e/e2e.test"
   ]
 }:
 

From 6ef8cad2a7683e933411a3ff1c1cb70c4e45032b Mon Sep 17 00:00:00 2001
From: Matej Cotman <cotman.matej@gmail.com>
Date: Sat, 9 Sep 2017 02:00:35 +0200
Subject: [PATCH 279/533] kubernetes: fix tests

---
 nixos/tests/kubernetes/base.nix              | 113 ++++++
 nixos/tests/kubernetes/certs.nix             | 400 +++++++++----------
 nixos/tests/kubernetes/default.nix           |   8 +-
 nixos/tests/kubernetes/dns.nix               | 150 ++++---
 nixos/tests/kubernetes/e2e.nix               |  40 ++
 nixos/tests/kubernetes/kubernetes-common.nix | 111 +++--
 nixos/tests/kubernetes/kubernetes-master.nix |  63 ---
 nixos/tests/kubernetes/multinode-kubectl.nix | 123 ------
 nixos/tests/kubernetes/rbac.nix              | 145 ++++---
 nixos/tests/kubernetes/singlenode.nix        |  75 ----
 10 files changed, 538 insertions(+), 690 deletions(-)
 create mode 100644 nixos/tests/kubernetes/base.nix
 create mode 100644 nixos/tests/kubernetes/e2e.nix
 delete mode 100644 nixos/tests/kubernetes/kubernetes-master.nix
 delete mode 100644 nixos/tests/kubernetes/multinode-kubectl.nix
 delete mode 100644 nixos/tests/kubernetes/singlenode.nix

diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
new file mode 100644
index 000000000000..acf2e0250819
--- /dev/null
+++ b/nixos/tests/kubernetes/base.nix
@@ -0,0 +1,113 @@
+{ system ? builtins.currentSystem }:
+
+with import ../../lib/testing.nix { inherit system; };
+with import ../../lib/qemu-flags.nix;
+with pkgs.lib;
+
+let
+  mkKubernetesBaseTest =
+    { name, domain ? "my.zyx", test, machines
+    , pkgs ? import <nixpkgs> { inherit system; }
+    , certs ? import ./certs.nix { inherit pkgs; externalDomain = domain; }
+    , extraConfiguration ? null }:
+    let
+      masterName = head (filter (machineName: any (role: role == "master") machines.${machineName}.roles) (attrNames machines));
+      master = machines.${masterName};
+      extraHosts = ''
+        ${master.ip}  etcd.${domain}
+        ${master.ip}  api.${domain}
+        ${concatMapStringsSep "\n" (machineName: "${machines.${machineName}.ip}  ${machineName}.${domain}") (attrNames machines)}
+      '';
+    in makeTest {
+      inherit name;
+
+      nodes = mapAttrs (machineName: machine:
+        { config, pkgs, lib, nodes, ... }:
+          mkMerge [
+            {
+              virtualisation.memorySize = mkDefault 768;
+              virtualisation.diskSize = mkDefault 4096;
+              networking = {
+                inherit domain extraHosts;
+                primaryIPAddress = mkForce machine.ip;
+
+                firewall = {
+                  allowedTCPPorts = [
+                    10250 # kubelet
+                  ];
+                  trustedInterfaces = ["docker0"];
+
+                  extraCommands = concatMapStrings  (node: ''
+                    iptables -A INPUT -s ${node.config.networking.primaryIPAddress} -j ACCEPT
+                  '') (attrValues nodes);
+                };
+              };
+              programs.bash.enableCompletion = true;
+              environment.variables = {
+                ETCDCTL_CERT_FILE = "${certs.worker}/etcd-client.pem";
+                ETCDCTL_KEY_FILE = "${certs.worker}/etcd-client-key.pem";
+                ETCDCTL_CA_FILE = "${certs.worker}/ca.pem";
+                ETCDCTL_PEERS = "https://etcd.${domain}:2379";
+              };
+              services.flannel.iface = "eth1";
+              services.kubernetes.apiserver.advertiseAddress = master.ip;
+            }
+            (optionalAttrs (any (role: role == "master") machine.roles) {
+              networking.firewall.allowedTCPPorts = [
+                2379 2380  # etcd
+                443 # kubernetes apiserver
+              ];
+              services.etcd = {
+                enable = true;
+                certFile = "${certs.master}/etcd.pem";
+                keyFile = "${certs.master}/etcd-key.pem";
+                trustedCaFile = "${certs.master}/ca.pem";
+                peerClientCertAuth = true;
+                listenClientUrls = ["https://0.0.0.0:2379"];
+                listenPeerUrls = ["https://0.0.0.0:2380"];
+                advertiseClientUrls = ["https://etcd.${config.networking.domain}:2379"];
+                initialCluster = ["${masterName}=https://etcd.${config.networking.domain}:2380"];
+                initialAdvertisePeerUrls = ["https://etcd.${config.networking.domain}:2380"];
+              };
+            })
+            (import ./kubernetes-common.nix { inherit (machine) roles; inherit pkgs config certs; })
+            (optionalAttrs (machine ? "extraConfiguration") (machine.extraConfiguration { inherit config pkgs lib nodes; }))
+            (optionalAttrs (extraConfiguration != null) (extraConfiguration { inherit config pkgs lib nodes; }))
+          ]
+      ) machines;
+
+      testScript = ''
+        startAll;
+
+        ${test}
+      '';
+    };
+
+  mkKubernetesMultiNodeTest = attrs: mkKubernetesBaseTest ({
+    machines = {
+      machine1 = {
+        roles = ["master"];
+        ip = "192.168.1.1";
+      };
+      machine2 = {
+        roles = ["node"];
+        ip = "192.168.1.2";
+      };
+    };
+  } // attrs // {
+    name = "kubernetes-${attrs.name}-multinode";
+  });
+
+  mkKubernetesSingleNodeTest = attrs: mkKubernetesBaseTest ({
+    machines = {
+      machine1 = {
+        roles = ["master" "node"];
+        ip = "192.168.1.1";
+      };
+    };
+  } // attrs // {
+    name = "kubernetes-${attrs.name}-singlenode";
+  });
+in {
+  inherit mkKubernetesBaseTest mkKubernetesSingleNodeTest mkKubernetesMultiNodeTest;
+}
diff --git a/nixos/tests/kubernetes/certs.nix b/nixos/tests/kubernetes/certs.nix
index f167224e549f..f108e35b98cd 100644
--- a/nixos/tests/kubernetes/certs.nix
+++ b/nixos/tests/kubernetes/certs.nix
@@ -1,229 +1,185 @@
 {
   pkgs ? import <nixpkgs> {},
-  servers ? {test = "1.2.3.4";},
-  internalDomain ? "cluster.local",
-  externalDomain ? "nixos.xyz"
+  internalDomain ? "cloud.yourdomain.net",
+  externalDomain ? "myawesomecluster.cluster.yourdomain.net",
+  serviceClusterIp ? "10.0.0.1"
 }:
 let
-  mkAltNames = ipFrom: dnsFrom:
-    pkgs.lib.concatImapStringsSep "\n" (i: v: "IP.${toString (i+ipFrom)} = ${v.ip}\nDNS.${toString (i+dnsFrom)} = ${v.name}.${externalDomain}") (pkgs.lib.mapAttrsToList (n: v: {name = n; ip = v;}) servers);
+  runWithCFSSL = name: cmd:
+    builtins.fromJSON (builtins.readFile (
+      pkgs.runCommand "${name}-cfss.json" {
+        buildInputs = [ pkgs.cfssl ];
+      } "cfssl ${cmd} > $out"
+    ));
 
-  runWithOpenSSL = file: cmd: pkgs.runCommand file {
-    buildInputs = [ pkgs.openssl ];
-    passthru = { inherit file; };
-  } cmd;
-
-  ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
-  ca_pem = runWithOpenSSL "ca.pem" ''
-    openssl req \
-      -x509 -new -nodes -key ${ca_key} \
-      -days 10000 -out $out -subj "/CN=etcd-ca"
-  '';
-
-  etcd_cnf = pkgs.writeText "openssl.cnf" ''
-    [req]
-    req_extensions = v3_req
-    distinguished_name = req_distinguished_name
-    [req_distinguished_name]
-    [ v3_req ]
-    basicConstraints = CA:FALSE
-    keyUsage = digitalSignature, keyEncipherment
-    extendedKeyUsage = serverAuth
-    subjectAltName = @alt_names
-    [alt_names]
-    DNS.1 = etcd.kubernetes.${externalDomain}
-    IP.1 = 127.0.0.1
-  '';
-  etcd_key = runWithOpenSSL "etcd-key.pem" "openssl genrsa -out $out 2048";
-  etcd_csr = runWithOpenSSL "etcd.csr" ''
-    openssl req \
-      -new -key ${etcd_key} \
-      -out $out -subj "/CN=etcd" \
-      -config ${etcd_cnf}
-  '';
-  etcd_cert = runWithOpenSSL "etcd.pem" ''
-    openssl x509 \
-      -req -in ${etcd_csr} \
-      -CA ${ca_pem} -CAkey ${ca_key} \
-      -CAcreateserial -out $out \
-      -days 3650 -extensions v3_req \
-      -extfile ${etcd_cnf}
-  '';
-
-  etcd_client_key = runWithOpenSSL "etcd-client-key.pem"
-    "openssl genrsa -out $out 2048";
-
-  etcd_client_csr = runWithOpenSSL "etcd-client.csr" ''
-    openssl req \
-      -new -key ${etcd_client_key} \
-      -out $out -subj "/CN=etcd-client" \
-      -config ${client_openssl_cnf}
-  '';
-
-  etcd_client_cert = runWithOpenSSL "etcd-client.crt" ''
-    openssl x509 \
-      -req -in ${etcd_client_csr} \
-      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-      -out $out -days 3650 -extensions v3_req \
-      -extfile ${client_openssl_cnf}
-  '';
-
-  admin_key = runWithOpenSSL "admin-key.pem"
-    "openssl genrsa -out $out 2048";
-
-  admin_csr = runWithOpenSSL "admin.csr" ''
-    openssl req \
-      -new -key ${admin_key} \
-      -out $out -subj "/CN=admin/O=system:masters" \
-      -config ${client_openssl_cnf}
-  '';
-
-  admin_cert = runWithOpenSSL "admin.crt" ''
-    openssl x509 \
-      -req -in ${admin_csr} \
-      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-      -out $out -days 3650 -extensions v3_req \
-      -extfile ${client_openssl_cnf}
-  '';
-
-  apiserver_key = runWithOpenSSL "apiserver-key.pem" "openssl genrsa -out $out 2048";
-
-  apiserver_csr = runWithOpenSSL "apiserver.csr" ''
-    openssl req \
-      -new -key ${apiserver_key} \
-      -out $out -subj "/CN=kube-apiserver" \
-      -config ${apiserver_cnf}
-  '';
-
-  apiserver_cert = runWithOpenSSL "apiserver.pem" ''
-    openssl x509 \
-      -req -in ${apiserver_csr} \
-      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-      -out $out -days 3650 -extensions v3_req \
-      -extfile ${apiserver_cnf}
-  '';
-
-  worker_key = runWithOpenSSL "worker-key.pem" "openssl genrsa -out $out 2048";
-
-  worker_csr = runWithOpenSSL "worker.csr" ''
-    openssl req \
-      -new -key ${worker_key} \
-      -out $out -subj "/CN=kube-worker/O=system:authenticated" \
-      -config ${worker_cnf}
-  '';
-
-  worker_cert = runWithOpenSSL "worker.pem" ''
-    openssl x509 \
-      -req -in ${worker_csr} \
-      -CA ${ca_pem} -CAkey ${ca_key} -CAcreateserial \
-      -out $out -days 3650 -extensions v3_req \
-      -extfile ${worker_cnf}
-  '';
-
-  openssl_cnf = pkgs.writeText "openssl.cnf" ''
-    [req]
-    req_extensions = v3_req
-    distinguished_name = req_distinguished_name
-    [req_distinguished_name]
-    [ v3_req ]
-    basicConstraints = CA:FALSE
-    keyUsage = digitalSignature, keyEncipherment
-    extendedKeyUsage = serverAuth
-    subjectAltName = @alt_names
-    [alt_names]
-    DNS.1 = *.cluster.${externalDomain}
-    IP.1 = 127.0.0.1
-    ${mkAltNames 1 1}
-  '';
-
-  client_openssl_cnf = pkgs.writeText "client-openssl.cnf" ''
-    [req]
-    req_extensions = v3_req
-    distinguished_name = req_distinguished_name
-    [req_distinguished_name]
-    [ v3_req ]
-    basicConstraints = CA:FALSE
-    keyUsage = digitalSignature, keyEncipherment
-    extendedKeyUsage = clientAuth
-    subjectAltName = @alt_names
-    [alt_names]
-    DNS.1 = kubernetes
-    DNS.2 = kubernetes.default
-    DNS.3 = kubernetes.default.svc
-    DNS.4 = kubernetes.default.svc.${internalDomain}
-    DNS.5 = kubernetes.${externalDomain}
-    DNS.6 = *.cluster.${externalDomain}
-    IP.1 = 10.1.10.1
-    ${mkAltNames 1 6}
-  '';
-
-  apiserver_cnf = pkgs.writeText "apiserver-openssl.cnf" ''
-    [req]
-    req_extensions = v3_req
-    distinguished_name = req_distinguished_name
-    [req_distinguished_name]
-    [ v3_req ]
-    basicConstraints = CA:FALSE
-    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-    extendedKeyUsage = serverAuth
-    subjectAltName = @alt_names
-    [alt_names]
-    DNS.1 = kubernetes
-    DNS.2 = kubernetes.default
-    DNS.3 = kubernetes.default.svc
-    DNS.4 = kubernetes.default.svc.${internalDomain}
-    DNS.5 = kubernetes.${externalDomain}
-    DNS.6 = *.cluster.${externalDomain}
-    IP.1 = 10.1.10.1
-    ${mkAltNames 1 6}
-  '';
-
-  worker_cnf = pkgs.writeText "worker-openssl.cnf" ''
-    [req]
-    req_extensions = v3_req
-    distinguished_name = req_distinguished_name
-    [req_distinguished_name]
-    [ v3_req ]
-    basicConstraints = CA:FALSE
-    keyUsage = nonRepudiation, digitalSignature, keyEncipherment
-    subjectAltName = @alt_names
-    [alt_names]
-    DNS.1 = *.cluster.${externalDomain}
-    IP.1 = 10.1.10.1
-    ${mkAltNames 1 1}
-  '';
-
-  ln = cert: target: ''
-    cp -v ${cert} ${target}/${cert.file}
-  '';
-in
-  pkgs.stdenv.mkDerivation rec {
-    name = "kubernetes-certs";
-    unpackPhase = "true";
-    installPhase = ''
-      set -xe
+  writeCFSSL = content:
+    pkgs.runCommand content.name {
+      buildInputs = [ pkgs.cfssl ];
+    } ''
       mkdir -p $out
-      ${ln ca_key "$out"}
-      ${ln ca_pem "$out"}
-
-      ${ln etcd_key "$out"}
-      ${ln etcd_csr "$out"}
-      ${ln etcd_cert "$out"}
-
-      ${ln etcd_client_key "$out"}
-      ${ln etcd_client_csr "$out"}
-      ${ln etcd_client_cert "$out"}
-
-      ${ln apiserver_key "$out"}
-      ${ln apiserver_csr "$out"}
-      ${ln apiserver_cert "$out"}
-
-      ${ln worker_key "$out"}
-      ${ln worker_csr "$out"}
-      ${ln worker_cert "$out"}
-
-      ${ln admin_key "$out"}
-      ${ln admin_csr "$out"}
-      ${ln admin_cert "$out"}
+      cd $out
+      cat ${writeFile content} | cfssljson -bare ${content.name}
     '';
-  }
+
+  noCSR = content: pkgs.lib.filterAttrs (n: v: n != "csr") content;
+  noKey = content: pkgs.lib.filterAttrs (n: v: n != "key") content;
+
+  writeFile = content: pkgs.writeText "content" (
+    if pkgs.lib.isAttrs content then builtins.toJSON content
+    else toString content
+  );
+
+  createServingCertKey = { ca, cn, hosts? [], size ? 2048, name ? cn }:
+    noCSR (
+      (runWithCFSSL name "gencert -ca=${writeFile ca.cert} -ca-key=${writeFile ca.key} -profile=server -config=${writeFile ca.config} ${writeFile {
+        CN = cn;
+        hosts = hosts;
+        key = { algo = "rsa"; inherit size; };
+      }}") // { inherit name; }
+    );
+
+  createClientCertKey = { ca, cn, groups ? [], size ? 2048, name ? cn }:
+    noCSR (
+      (runWithCFSSL name "gencert -ca=${writeFile ca.cert} -ca-key=${writeFile ca.key} -profile=client -config=${writeFile ca.config} ${writeFile {
+        CN = cn;
+        names = map (group: {O = group;}) groups;
+        hosts = [""];
+        key = { algo = "rsa"; inherit size; };
+      }}") // { inherit name; }
+    );
+
+  createSigningCertKey = { C ? "xx", ST ? "x", L ? "x", O ? "x", OU ? "x", CN ? "ca", emailAddress ? "x", expiry ? "43800h", size ? 2048, name ? CN }:
+    (noCSR (runWithCFSSL CN "genkey -initca ${writeFile {
+      key = { algo = "rsa"; inherit size; };
+      names = [{ inherit C ST L O OU CN emailAddress; }];
+    }}")) // {
+      inherit name;
+      config.signing = {
+        default.expiry = expiry;
+        profiles = {
+          server = {
+            inherit expiry;
+            usages = [
+              "signing"
+              "key encipherment"
+              "server auth"
+            ];
+          };
+          client = {
+            inherit expiry;
+            usages = [
+              "signing"
+              "key encipherment"
+              "client auth"
+            ];
+          };
+          peer = {
+            inherit expiry;
+            usages = [
+              "signing"
+              "key encipherment"
+              "server auth"
+              "client auth"
+            ];
+          };
+        };
+      };
+    };
+
+  ca = createSigningCertKey {};
+
+  kube-apiserver = createServingCertKey {
+    inherit ca;
+    cn = "kube-apiserver";
+    hosts = ["kubernetes.default" "kubernetes.default.svc" "localhost" "api.${externalDomain}" serviceClusterIp];
+  };
+
+  kubelet = createServingCertKey {
+    inherit ca;
+    cn = "kubelet";
+    hosts = ["*.${externalDomain}"];
+  };
+
+  service-accounts = createServingCertKey {
+    inherit ca;
+    cn = "kube-service-accounts";
+  };
+
+  etcd = createServingCertKey {
+    inherit ca;
+    cn = "etcd";
+    hosts = ["etcd.${externalDomain}"];
+  };
+
+  etcd-client = createClientCertKey {
+    inherit ca;
+    cn = "etcd-client";
+  };
+
+  kubelet-client = createClientCertKey {
+    inherit ca;
+    cn = "kubelet-client";
+    groups = ["system:masters"];
+  };
+
+  apiserver-client = {
+    kubelet = createClientCertKey {
+      inherit ca;
+      cn = "apiserver-client-kubelet";
+      groups = ["system:nodes"];
+    };
+
+    kube-proxy = createClientCertKey {
+      inherit ca;
+      name = "apiserver-client-kube-proxy";
+      cn = "system:kube-proxy";
+      groups = ["system:kube-proxy" "system:nodes"];
+    };
+
+    kube-controller-manager = createClientCertKey {
+      inherit ca;
+      name = "apiserver-client-kube-controller-manager";
+      cn = "system:kube-controller-manager";
+      groups = ["system:masters"];
+    };
+
+    kube-scheduler = createClientCertKey {
+      inherit ca;
+      name = "apiserver-client-kube-scheduler";
+      cn = "system:kube-scheduler";
+      groups = ["system:kube-scheduler"];
+    };
+
+    admin = createClientCertKey {
+      inherit ca;
+      cn = "admin";
+      groups = ["system:masters"];
+    };
+  };
+in {
+  master = pkgs.buildEnv {
+    name = "master-keys";
+    paths = [
+      (writeCFSSL (noKey ca))
+      (writeCFSSL kube-apiserver)
+      (writeCFSSL kubelet-client)
+      (writeCFSSL apiserver-client.kube-controller-manager)
+      (writeCFSSL apiserver-client.kube-scheduler)
+      (writeCFSSL service-accounts)
+      (writeCFSSL etcd)
+    ];
+  };
+
+  worker = pkgs.buildEnv {
+    name = "worker-keys";
+    paths = [
+      (writeCFSSL (noKey ca))
+      (writeCFSSL kubelet)
+      (writeCFSSL apiserver-client.kubelet)
+      (writeCFSSL apiserver-client.kube-proxy)
+      (writeCFSSL etcd-client)
+    ];
+  };
+
+  admin = writeCFSSL apiserver-client.admin;
+}
diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix
index 2b61980349eb..a801759bf582 100644
--- a/nixos/tests/kubernetes/default.nix
+++ b/nixos/tests/kubernetes/default.nix
@@ -1,7 +1,7 @@
 { system ? builtins.currentSystem }:
 {
-    kubernetes-singlenode = import ./singlenode.nix { inherit system; };
-    kubernetes-multinode-kubectl = import ./multinode-kubectl.nix { inherit system; };
-    kubernetes-rbac = import ./rbac.nix { inherit system; };
-    kubernetes-dns = import ./dns.nix { inherit system; };
+  dns = import ./dns.nix { inherit system; };
+  # e2e = import ./e2e.nix { inherit system; };  # TODO: make it pass
+  # the following test(s) can be removed when e2e is working:
+  rbac = import ./rbac.nix { inherit system; };
 }
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
index 4659c520dee3..74d98dabec8d 100644
--- a/nixos/tests/kubernetes/dns.nix
+++ b/nixos/tests/kubernetes/dns.nix
@@ -1,16 +1,11 @@
-{ system ? builtins.currentSystem }:
-
-with import ../../lib/testing.nix { inherit system; };
-with import ../../lib/qemu-flags.nix;
-with pkgs.lib;
-
+{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+with import ./base.nix { inherit system; };
 let
-  servers.master = "192.168.1.1";
-  servers.one = "192.168.1.10";
+  domain = "my.zyx";
 
-  certs = import ./certs.nix { inherit servers; };
+  certs = import ./certs.nix { externalDomain = domain; };
 
-  redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON {
+  redisPod = pkgs.writeText "redis-pod.json" (builtins.toJSON {
     kind = "Pod";
     apiVersion = "v1";
     metadata.name = "redis";
@@ -40,64 +35,93 @@ let
   redisImage = pkgs.dockerTools.buildImage {
     name = "redis";
     tag = "latest";
-    contents = [ pkgs.redis pkgs.bind.dnsutils pkgs.coreutils pkgs.inetutils pkgs.nmap ];
+    contents = [ pkgs.redis pkgs.bind.host ];
     config.Entrypoint = "/bin/redis-server";
   };
 
-  test = ''
-    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
-    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
+  probePod = pkgs.writeText "probe-pod.json" (builtins.toJSON {
+    kind = "Pod";
+    apiVersion = "v1";
+    metadata.name = "probe";
+    metadata.labels.name = "probe";
+    spec.containers = [{
+      name = "probe";
+      image = "probe";
+      args = [ "-f" ];
+      tty = true;
+      imagePullPolicy = "Never";
+    }];
+  });
 
-    $one->execute("docker load < ${redisImage}");
-
-    $master->waitUntilSucceeds("kubectl create -f ${redisPod} || kubectl apply -f ${redisPod}");
-    $master->waitUntilSucceeds("kubectl create -f ${redisService} || kubectl apply -f ${redisService}");
-
-    $master->waitUntilSucceeds("kubectl get pod redis | grep Running");
-
-    $master->succeed("dig \@192.168.1.1 redis.default.svc.cluster.local");
-    $one->succeed("dig \@192.168.1.10 redis.default.svc.cluster.local");
-
-
-    $master->succeed("kubectl exec -ti redis -- cat /etc/resolv.conf | grep 'nameserver 192.168.1.10'");
-
-    $master->succeed("kubectl exec -ti redis -- dig \@192.168.1.10 redis.default.svc.cluster.local");
-  '';
-
-in makeTest {
-  name = "kubernetes-dns";
-
-  nodes = {
-    master =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.master;
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-          (import ./kubernetes-master.nix { inherit pkgs config certs; })
-        ];
-
-    one =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.one;
-            services.kubernetes.roles = ["node"];
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-        ];
+  probeImage = pkgs.dockerTools.buildImage {
+    name = "probe";
+    tag = "latest";
+    contents = [ pkgs.bind.host pkgs.busybox ];
+    config.Entrypoint = "/bin/tail";
   };
 
-  testScript = ''
-    startAll;
+  extraConfiguration = { config, pkgs, lib, nodes, ... }: {
+    environment.systemPackages = [ pkgs.bind.host ];
+    # virtualisation.docker.extraOptions = "--dns=${config.services.kubernetes.addons.dns.clusterIp}";
+    services.dnsmasq.enable = true;
+    services.dnsmasq.servers = [
+      "/cluster.local/${config.services.kubernetes.addons.dns.clusterIp}#53"
+    ];
+  };
 
-    ${test}
-  '';
+  base = {
+    name = "dns";
+    inherit domain certs extraConfiguration;
+  };
+
+  singleNodeTest = {
+    test = ''
+      # prepare machine1 for test
+      $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready");
+      $machine1->execute("docker load < ${redisImage}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${redisService}");
+      $machine1->execute("docker load < ${probeImage}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${probePod}");
+
+      # check if pods are running
+      $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running");
+      $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running");
+      $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'kube-dns.*3/3'");
+
+      # check dns on host (dnsmasq)
+      $machine1->succeed("host redis.default.svc.cluster.local");
+
+      # check dns inside the container
+      $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local");
+    '';
+  };
+
+  multiNodeTest = {
+    test = ''
+      # prepare machines for test
+      $machine1->waitUntilSucceeds("kubectl get node machine1.${domain} | grep -w Ready");
+      $machine1->waitUntilSucceeds("kubectl get node machine2.${domain} | grep -w Ready");
+      $machine2->execute("docker load < ${redisImage}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${redisPod}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${redisService}");
+      $machine2->execute("docker load < ${probeImage}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${probePod}");
+
+      # check if pods are running
+      $machine1->waitUntilSucceeds("kubectl get pod redis | grep Running");
+      $machine1->waitUntilSucceeds("kubectl get pod probe | grep Running");
+      $machine1->waitUntilSucceeds("kubectl get pods -n kube-system | grep 'kube-dns.*3/3'");
+
+      # check dns on hosts (dnsmasq)
+      $machine1->succeed("host redis.default.svc.cluster.local");
+      $machine2->succeed("host redis.default.svc.cluster.local");
+
+      # check dns inside the container
+      $machine1->succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local");
+    '';
+  };
+in {
+  singlenode = mkKubernetesSingleNodeTest (base // singleNodeTest);
+  multinode = mkKubernetesMultiNodeTest (base // multiNodeTest);
 }
diff --git a/nixos/tests/kubernetes/e2e.nix b/nixos/tests/kubernetes/e2e.nix
new file mode 100644
index 000000000000..d9d7ba9bb2cc
--- /dev/null
+++ b/nixos/tests/kubernetes/e2e.nix
@@ -0,0 +1,40 @@
+{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+with import ./base.nix { inherit system; };
+let
+  domain = "my.zyx";
+  certs = import ./certs.nix { externalDomain = domain; };
+  kubeconfig = pkgs.writeText "kubeconfig.json" (builtins.toJSON {
+    apiVersion = "v1";
+    kind = "Config";
+    clusters = [{
+      name = "local";
+      cluster.certificate-authority = "${certs.master}/ca.pem";
+      cluster.server = "https://api.${domain}";
+    }];
+    users = [{
+      name = "kubelet";
+      user = {
+        client-certificate = "${certs.admin}/admin.pem";
+        client-key = "${certs.admin}/admin-key.pem";
+      };
+    }];
+    contexts = [{
+      context = {
+        cluster = "local";
+        user = "kubelet";
+      };
+      current-context = "kubelet-context";
+    }];
+  });
+
+  base = {
+    name = "e2e";
+    inherit domain certs;
+    test = ''
+      $machine1->succeed("e2e.test -kubeconfig ${kubeconfig} -provider local -ginkgo.focus '\\[Conformance\\]' -ginkgo.skip '\\[Flaky\\]|\\[Serial\\]'");
+    '';
+  };
+in {
+  singlenode = mkKubernetesSingleNodeTest base;
+  multinode = mkKubernetesMultiNodeTest base;
+}
diff --git a/nixos/tests/kubernetes/kubernetes-common.nix b/nixos/tests/kubernetes/kubernetes-common.nix
index 9f9e730fa655..00a5c9aba4e3 100644
--- a/nixos/tests/kubernetes/kubernetes-common.nix
+++ b/nixos/tests/kubernetes/kubernetes-common.nix
@@ -1,72 +1,59 @@
-{ config, pkgs, certs, servers }:
-
+{ roles, config, pkgs, certs }:
+with pkgs.lib;
 let
-  etcd_key = "${certs}/etcd-key.pem";
-  etcd_cert = "${certs}/etcd.pem";
-  ca_pem = "${certs}/ca.pem";
-  etcd_client_cert = "${certs}/etcd-client.crt";
-  etcd_client_key = "${certs}/etcd-client-key.pem";
+  base = {
+    inherit roles;
+    featureGates = ["AllAlpha"];
+    flannel.enable = true;
+    addons.dashboard.enable = true;
+    verbose = true;
 
-  worker_key = "${certs}/worker-key.pem";
-  worker_cert = "${certs}/worker.pem";
-
-  rootCaFile = pkgs.writeScript "rootCaFile.pem" ''
-    ${pkgs.lib.readFile "${certs}/ca.pem"}
-
-    ${pkgs.lib.readFile ("${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt")}
-  '';
-
-  mkHosts =
-    pkgs.lib.concatMapStringsSep "\n" (v: "${v.ip} ${v.name}.nixos.xyz") (pkgs.lib.mapAttrsToList (n: v: {name = n; ip = v;}) servers);
-
-in
-{
-  programs.bash.enableCompletion = true;
-  environment.systemPackages = with pkgs; [ netcat bind etcd.bin ];
-
-  networking = {
-    firewall.allowedTCPPorts = [
-      10250 # kubelet
-    ];
-    extraHosts = ''
-      # register "external" domains
-      ${servers.master} etcd.kubernetes.nixos.xyz
-      ${servers.master} kubernetes.nixos.xyz
-      ${mkHosts}
-    '';
-  };
-  services.flannel.iface = "eth1";
-  environment.variables = {
-    ETCDCTL_CERT_FILE = "${etcd_client_cert}";
-    ETCDCTL_KEY_FILE = "${etcd_client_key}";
-    ETCDCTL_CA_FILE = "${rootCaFile}";
-    ETCDCTL_PEERS = "https://etcd.kubernetes.nixos.xyz:2379";
-  };
-
-  services.kubernetes = {
-    kubelet = {
-      tlsKeyFile = worker_key;
-      tlsCertFile = worker_cert;
-      hostname = "${config.networking.hostName}.nixos.xyz";
-      nodeIp = config.networking.primaryIPAddress;
+    caFile = "${certs.master}/ca.pem";
+    apiserver = {
+      tlsCertFile = "${certs.master}/kube-apiserver.pem";
+      tlsKeyFile = "${certs.master}/kube-apiserver-key.pem";
+      kubeletClientCertFile = "${certs.master}/kubelet-client.pem";
+      kubeletClientKeyFile = "${certs.master}/kubelet-client-key.pem";
+      serviceAccountKeyFile = "${certs.master}/kube-service-accounts.pem";
     };
     etcd = {
-      servers = ["https://etcd.kubernetes.nixos.xyz:2379"];
-      keyFile = etcd_client_key;
-      certFile = etcd_client_cert;
-      caFile = ca_pem;
+      servers = ["https://etcd.${config.networking.domain}:2379"];
+      certFile = "${certs.worker}/etcd-client.pem";
+      keyFile = "${certs.worker}/etcd-client-key.pem";
     };
     kubeconfig = {
-      server = "https://kubernetes.nixos.xyz";
-      caFile = rootCaFile;
-      certFile = worker_cert;
-      keyFile = worker_key;
+      server = "https://api.${config.networking.domain}";
+    };
+    kubelet = {
+      tlsCertFile = "${certs.worker}/kubelet.pem";
+      tlsKeyFile = "${certs.worker}/kubelet-key.pem";
+      hostname = "${config.networking.hostName}.${config.networking.domain}";
+      kubeconfig = {
+        certFile = "${certs.worker}/apiserver-client-kubelet.pem";
+        keyFile = "${certs.worker}/apiserver-client-kubelet-key.pem";
+      };
+    };
+    controllerManager = {
+      serviceAccountKeyFile = "${certs.master}/kube-service-accounts-key.pem";
+      kubeconfig = {
+        certFile = "${certs.master}/apiserver-client-kube-controller-manager.pem";
+        keyFile = "${certs.master}/apiserver-client-kube-controller-manager-key.pem";
+      };
+    };
+    scheduler = {
+      kubeconfig = {
+        certFile = "${certs.master}/apiserver-client-kube-scheduler.pem";
+        keyFile = "${certs.master}/apiserver-client-kube-scheduler-key.pem";
+      };
+    };
+    proxy = {
+      kubeconfig = {
+        certFile = "${certs.worker}/apiserver-client-kube-proxy.pem";
+        keyFile = "${certs.worker}//apiserver-client-kube-proxy-key.pem";
+      };
     };
-    flannel.enable = true;
-
-    dns.port = 4453;
   };
 
-  services.dnsmasq.enable = true;
-  services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
+in {
+  services.kubernetes = base;
 }
diff --git a/nixos/tests/kubernetes/kubernetes-master.nix b/nixos/tests/kubernetes/kubernetes-master.nix
deleted file mode 100644
index 28cce6ea6534..000000000000
--- a/nixos/tests/kubernetes/kubernetes-master.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ config, pkgs, certs }:
-let
-  etcd_key = "${certs}/etcd-key.pem";
-  etcd_cert = "${certs}/etcd.pem";
-  ca_pem = "${certs}/ca.pem";
-  etcd_client_cert = "${certs}/etcd-client.crt";
-  etcd_client_key = "${certs}/etcd-client-key.pem";
-
-  apiserver_key = "${certs}/apiserver-key.pem";
-  apiserver_cert = "${certs}/apiserver.pem";
-  worker_key = "${certs}/worker-key.pem";
-  worker_cert = "${certs}/worker.pem";
-
-
-  rootCaFile = pkgs.writeScript "rootCaFile.pem" ''
-    ${pkgs.lib.readFile "${certs}/ca.pem"}
-
-    ${pkgs.lib.readFile ("${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt")}
-  '';
-in
-{
-  networking = {
-    firewall = {
-      enable = true;
-      allowPing = true;
-      allowedTCPPorts = [
-        2379 2380  # etcd
-        443 # kubernetes apiserver
-      ];
-    };
-  };
-
-  services.etcd = {
-    enable = pkgs.lib.mkForce true;
-    keyFile = etcd_key;
-    certFile = etcd_cert;
-    trustedCaFile = rootCaFile;
-    peerClientCertAuth = true;
-    listenClientUrls = ["https://0.0.0.0:2379"];
-    listenPeerUrls = ["https://0.0.0.0:2380"];
-
-    advertiseClientUrls = ["https://etcd.kubernetes.nixos.xyz:2379"];
-    initialCluster = ["master=https://etcd.kubernetes.nixos.xyz:2380"];
-    initialAdvertisePeerUrls = ["https://etcd.kubernetes.nixos.xyz:2380"];
-  };
-
-  services.kubernetes = {
-    roles = ["master"];
-    scheduler.leaderElect = true;
-    controllerManager.rootCaFile = rootCaFile;
-    controllerManager.serviceAccountKeyFile = apiserver_key;
-    apiserver = {
-      publicAddress = "192.168.1.1";
-      advertiseAddress = "192.168.1.1";
-      tlsKeyFile = apiserver_key;
-      tlsCertFile = apiserver_cert;
-      clientCaFile = rootCaFile;
-      kubeletClientCaFile = rootCaFile;
-      kubeletClientKeyFile = worker_key;
-      kubeletClientCertFile = worker_cert;
-    };
-  };
-}
diff --git a/nixos/tests/kubernetes/multinode-kubectl.nix b/nixos/tests/kubernetes/multinode-kubectl.nix
deleted file mode 100644
index c5dd999a01e9..000000000000
--- a/nixos/tests/kubernetes/multinode-kubectl.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-{ system ? builtins.currentSystem }:
-
-with import ../../lib/testing.nix { inherit system; };
-with import ../../lib/qemu-flags.nix;
-with pkgs.lib;
-
-let
-  servers.master = "192.168.1.1";
-  servers.one = "192.168.1.10";
-  servers.two = "192.168.1.20";
-
-  certs = import ./certs.nix { inherit servers; };
-
-  kubectlPod = pkgs.writeText "kubectl-pod.json" (builtins.toJSON {
-    kind = "Pod";
-    apiVersion = "v1";
-    metadata.name = "kubectl";
-    metadata.labels.name = "kubectl";
-    spec.containers = [{
-      name = "kubectl";
-      image = "kubectl:latest";
-      command = ["${pkgs.busybox}/bin/tail" "-f"];
-      imagePullPolicy = "Never";
-      tty = true;
-    }];
-  });
-
-  kubectlImage = pkgs.dockerTools.buildImage {
-    name = "kubectl";
-    tag = "latest";
-    contents = [ pkgs.kubernetes pkgs.busybox certs kubeconfig ];
-    config.Entrypoint = "${pkgs.busybox}/bin/sh";
-  };
-
-  kubeconfig = pkgs.writeTextDir "kubeconfig.json" (builtins.toJSON {
-    apiVersion = "v1";
-    kind = "Config";
-    clusters = [{
-      name = "local";
-      cluster.certificate-authority = "/ca.pem";
-      cluster.server = "https://${servers.master}";
-    }];
-    users = [{
-      name = "kubelet";
-      user = {
-        client-certificate = "/admin.crt";
-        client-key = "/admin-key.pem";
-      };
-    }];
-    contexts = [{
-      context = {
-        cluster = "local";
-        user = "kubelet";
-      };
-      current-context = "kubelet-context";
-    }];
-  });
-
-  test = ''
-    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
-    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
-    $master->waitUntilSucceeds("kubectl get node two.nixos.xyz | grep Ready");
-
-    $one->execute("docker load < ${kubectlImage}");
-    $two->execute("docker load < ${kubectlImage}");
-
-    $master->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
-
-    $master->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
-
-    $master->succeed("kubectl exec -ti kubectl -- kubectl --kubeconfig=/kubeconfig.json version");
-  '';
-
-in makeTest {
-  name = "kubernetes-multinode-kubectl";
-
-  nodes = {
-    master =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.master;
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-          (import ./kubernetes-master.nix { inherit pkgs config certs; })
-        ];
-
-    one =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.one;
-            services.kubernetes.roles = ["node"];
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-        ];
-
-    two =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.two; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.two;
-            services.kubernetes.roles = ["node"];
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-        ];
-  };
-
-  testScript = ''
-    startAll;
-
-    ${test}
-  '';
-}
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index dfb55e7e0580..1966fed3a5fb 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -1,14 +1,6 @@
-{ system ? builtins.currentSystem }:
-
-with import ../../lib/testing.nix { inherit system; };
-with import ../../lib/qemu-flags.nix;
-with pkgs.lib;
-
+{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+with import ./base.nix { inherit system; };
 let
-  servers.master = "192.168.1.1";
-  servers.one = "192.168.1.10";
-
-  certs = import ./certs.nix { inherit servers; };
 
   roServiceAccount = pkgs.writeText "ro-service-account.json" (builtins.toJSON {
     kind = "ServiceAccount";
@@ -20,21 +12,21 @@ let
   });
 
   roRoleBinding = pkgs.writeText "ro-role-binding.json" (builtins.toJSON {
-    "apiVersion" = "rbac.authorization.k8s.io/v1beta1";
-    "kind" = "RoleBinding";
-    "metadata" = {
-      "name" = "read-pods";
-      "namespace" = "default";
+    apiVersion = "rbac.authorization.k8s.io/v1beta1";
+    kind = "RoleBinding";
+    metadata = {
+      name = "read-pods";
+      namespace = "default";
     };
-    "roleRef" = {
-      "apiGroup" = "rbac.authorization.k8s.io";
-      "kind" = "Role";
-      "name" = "pod-reader";
+    roleRef = {
+      apiGroup = "rbac.authorization.k8s.io";
+      kind = "Role";
+      name = "pod-reader";
     };
-    "subjects" = [{
-      "kind" = "ServiceAccount";
-      "name" = "read-only";
-      "namespace" = "default";
+    subjects = [{
+      kind = "ServiceAccount";
+      name = "read-only";
+      namespace = "default";
     }];
   });
 
@@ -62,7 +54,7 @@ let
     spec.containers = [{
       name = "kubectl";
       image = "kubectl:latest";
-      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      command = ["/bin/tail" "-f"];
       imagePullPolicy = "Never";
       tty = true;
     }];
@@ -78,71 +70,68 @@ let
     spec.containers = [{
       name = "kubectl-2";
       image = "kubectl:latest";
-      command = ["${pkgs.busybox}/bin/tail" "-f"];
+      command = ["/bin/tail" "-f"];
       imagePullPolicy = "Never";
       tty = true;
     }];
   });
 
+  kubectl = pkgs.runCommand "copy-kubectl" { buildInputs = [ pkgs.kubernetes ]; } ''
+    mkdir -p $out/bin
+    cp ${pkgs.kubernetes}/bin/kubectl $out/bin/kubectl
+  '';
+
   kubectlImage = pkgs.dockerTools.buildImage {
     name = "kubectl";
     tag = "latest";
-    contents = [ pkgs.kubernetes pkgs.busybox kubectlPod2 ];  # certs kubeconfig
-    config.Entrypoint = "${pkgs.busybox}/bin/sh";
+    contents = [ kubectl pkgs.busybox kubectlPod2 ];
+    config.Entrypoint = "/bin/sh";
   };
 
-  test = ''
-    $master->waitUntilSucceeds("kubectl get node master.nixos.xyz | grep Ready");
-    $master->waitUntilSucceeds("kubectl get node one.nixos.xyz | grep Ready");
-
-    $one->execute("docker load < ${kubectlImage}");
-
-    $master->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
-    $master->waitUntilSucceeds("kubectl apply -f ${roRole}");
-    $master->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
-    $master->waitUntilSucceeds("kubectl create -f ${kubectlPod} || kubectl apply -f ${kubectlPod}");
-
-    $master->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
-
-    $master->succeed("kubectl exec -ti kubectl -- kubectl get pods");
-    $master->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
-    $master->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
-  '';
-
-in makeTest {
-  name = "kubernetes-rbac";
-
-  nodes = {
-    master =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.master; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.master;
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-          (import ./kubernetes-master.nix { inherit pkgs config certs; })
-        ];
-
-    one =
-      { config, pkgs, lib, nodes, ... }:
-        mkMerge [
-          {
-            virtualisation.memorySize = 768;
-            virtualisation.diskSize = 4096;
-            networking.interfaces.eth1.ip4 = mkForce [{address = servers.one; prefixLength = 24;}];
-            networking.primaryIPAddress = mkForce servers.one;
-            services.kubernetes.roles = ["node"];
-          }
-          (import ./kubernetes-common.nix { inherit pkgs config certs servers; })
-        ];
+  base = {
+    name = "rbac";
   };
 
-  testScript = ''
-    startAll;
+  singlenode = base // {
+    test = ''
+      $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready");
 
-    ${test}
-  '';
+      $machine1->execute("docker load < ${kubectlImage}");
+
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}");
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}");
+
+      $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
+
+      $machine1->succeed("kubectl exec -ti kubectl -- kubectl get pods");
+      $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
+      $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
+    '';
+  };
+
+  multinode = base // {
+    test = ''
+      $machine1->waitUntilSucceeds("kubectl get node machine1.my.zyx | grep -w Ready");
+      $machine1->waitUntilSucceeds("kubectl get node machine2.my.zyx | grep -w Ready");
+
+      $machine2->execute("docker load < ${kubectlImage}");
+
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roServiceAccount}");
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roRole}");
+      $machine1->waitUntilSucceeds("kubectl apply -f ${roRoleBinding}");
+      $machine1->waitUntilSucceeds("kubectl create -f ${kubectlPod}");
+
+      $machine1->waitUntilSucceeds("kubectl get pod kubectl | grep Running");
+
+      $machine1->succeed("kubectl exec -ti kubectl -- kubectl get pods");
+      $machine1->fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json");
+      $machine1->fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl");
+    '';
+  };
+
+in {
+  singlenode = mkKubernetesSingleNodeTest singlenode;
+  multinode = mkKubernetesMultiNodeTest multinode;
 }
diff --git a/nixos/tests/kubernetes/singlenode.nix b/nixos/tests/kubernetes/singlenode.nix
deleted file mode 100644
index d924da155bdc..000000000000
--- a/nixos/tests/kubernetes/singlenode.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ system ? builtins.currentSystem }:
-
-with import ../../lib/testing.nix { inherit system; };
-with import ../../lib/qemu-flags.nix;
-with pkgs.lib;
-
-let
-  redisPod = pkgs.writeText "redis-master-pod.json" (builtins.toJSON {
-    kind = "Pod";
-    apiVersion = "v1";
-    metadata.name = "redis";
-    metadata.labels.name = "redis";
-    spec.containers = [{
-      name = "redis";
-      image = "redis";
-      args = ["--bind" "0.0.0.0"];
-      imagePullPolicy = "Never";
-      ports = [{
-        name = "redis-server";
-        containerPort = 6379;
-      }];
-    }];
-  });
-
-  redisService = pkgs.writeText "redis-service.json" (builtins.toJSON {
-    kind = "Service";
-    apiVersion = "v1";
-    metadata.name = "redis";
-    spec = {
-      ports = [{port = 6379; targetPort = 6379;}];
-      selector = {name = "redis";};
-    };
-  });
-
-  redisImage = pkgs.dockerTools.buildImage {
-    name = "redis";
-    tag = "latest";
-    contents = pkgs.redis;
-    config.Entrypoint = "/bin/redis-server";
-  };
-
-  testSimplePod = ''
-    $kubernetes->execute("docker load < ${redisImage}");
-    $kubernetes->waitUntilSucceeds("kubectl create -f ${redisPod}");
-    $kubernetes->succeed("kubectl create -f ${redisService}");
-    $kubernetes->waitUntilSucceeds("kubectl get pod redis | grep Running");
-    $kubernetes->succeed("nc -z \$\(dig redis.default.svc.cluster.local +short\) 6379");
-  '';
-in makeTest {
-  name = "kubernetes-singlenode";
-
-  nodes = {
-    kubernetes =
-      { config, pkgs, lib, nodes, ... }:
-        {
-          virtualisation.memorySize = 768;
-          virtualisation.diskSize = 2048;
-
-          programs.bash.enableCompletion = true;
-          environment.systemPackages = with pkgs; [ netcat bind ];
-
-          services.kubernetes.roles = ["master" "node"];
-          services.kubernetes.dns.port = 4453;
-
-          services.dnsmasq.enable = true;
-          services.dnsmasq.servers = ["/${config.services.kubernetes.dns.domain}/127.0.0.1#4453"];
-        };
-  };
-
-  testScript = ''
-    startAll;
-
-    ${testSimplePod}
-  '';
-}

From 913e770fa819fe8a9395bac30c8c796b944bc2fe Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Sun, 24 Sep 2017 09:47:16 +0100
Subject: [PATCH 280/533] guile-lib: Disable a test which doesn't work with
 Guile 2.2

Error is:

    ERROR: In procedure %resolve-variable:
    ERROR: Unbound variable: use-syntax
    FAIL: sxml.ssax.scm

Also add pkg-config so that configure script can find libguile.

Relevant to #28643
---
 pkgs/development/guile-modules/guile-lib/default.nix | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index de456b4983ad..62482cec7e6c 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, guile, texinfo}:
+{stdenv, fetchurl, guile, texinfo, pkgconfig}:
 
 assert stdenv ? cc && stdenv.cc.isGNU;
 
@@ -10,8 +10,14 @@ stdenv.mkDerivation rec {
     sha256 = "1f9n2b5b5r75lzjinyk6zp6g20g60msa0jpfrk5hhg4j8cy0ih4b";
   };
 
+  nativeBuildInputs = [pkgconfig];
   buildInputs = [guile texinfo];
 
+  # One test doesn't seem to be compatible with guile_2_2
+  patchPhase = ''
+    sed -i -e '/sxml.ssax.scm/d' unit-tests/Makefile*
+  '';
+
   doCheck = true;
 
   preCheck =

From 6aa0307145d1c403624b2b083d7e869d65f23f3a Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Sun, 24 Sep 2017 20:01:47 +1000
Subject: [PATCH 281/533] guile-fibers: init at 1.0.0

---
 .../guile-modules/guile-fibers/default.nix    | 27 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 29 insertions(+)
 create mode 100644 pkgs/development/guile-modules/guile-fibers/default.nix

diff --git a/pkgs/development/guile-modules/guile-fibers/default.nix b/pkgs/development/guile-modules/guile-fibers/default.nix
new file mode 100644
index 000000000000..68e3c4cdf3c7
--- /dev/null
+++ b/pkgs/development/guile-modules/guile-fibers/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, guile, texinfo }:
+
+let
+  version = "1.0.0";
+  name = "guile-fibers-${version}";
+in stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchFromGitHub {
+    owner = "wingo";
+    repo = "fibers";
+    rev = "v${version}";
+    sha256 = "1r47m1m112kxf23xny99f0qkqsk6626iyc5jp7vzndfiyp5yskwi";
+  };
+
+  buildInputs = [ autoreconfHook pkgconfig guile texinfo ];
+
+  autoreconfPhase = "./autogen.sh";
+
+  meta = with stdenv.lib; {
+    description = "Concurrent ML-like concurrency for Guile";
+    homepage = "https://github.com/wingo/fibers";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 61c35ca93b14..925076196d23 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6662,6 +6662,8 @@ with pkgs;
 
   guileCairo = callPackage ../development/guile-modules/guile-cairo { };
 
+  guile-fibers = callPackage ../development/guile-modules/guile-fibers { };
+
   guileGnome = callPackage ../development/guile-modules/guile-gnome {
     gconf = gnome2.GConf;
     inherit (gnome2) gnome_vfs libglade libgnome libgnomecanvas libgnomeui;

From 9ba024f6d85cc9adfac9ceb58f3eed231feb2d62 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sun, 24 Sep 2017 12:09:07 +0200
Subject: [PATCH 282/533] kubernetes: fix hashes after dockerTools change

---
 nixos/modules/services/cluster/kubernetes/dashboard.nix | 2 +-
 nixos/modules/services/cluster/kubernetes/dns.nix       | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/nixos/modules/services/cluster/kubernetes/dashboard.nix b/nixos/modules/services/cluster/kubernetes/dashboard.nix
index 75d71fccfda4..482cbd939cb7 100644
--- a/nixos/modules/services/cluster/kubernetes/dashboard.nix
+++ b/nixos/modules/services/cluster/kubernetes/dashboard.nix
@@ -11,7 +11,7 @@ let
   image = pkgs.dockerTools.pullImage {
     imageName = name;
     imageTag = version;
-    sha256 = "1sf54d96nkgic9hir9c6p14gw24ns1k5d5a0r1sg414kjrvic0b4";
+    sha256 = "0b5v7xa3s91yi9yfsw2b8wijiprnicbb02f5kqa579h4yndb3gfz";
   };
 in {
   options.services.kubernetes.addons.dashboard = {
diff --git a/nixos/modules/services/cluster/kubernetes/dns.nix b/nixos/modules/services/cluster/kubernetes/dns.nix
index 226fdadffd1a..d70663fa5d7b 100644
--- a/nixos/modules/services/cluster/kubernetes/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/dns.nix
@@ -8,19 +8,19 @@ let
   k8s-dns-kube-dns = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-kube-dns-amd64";
     imageTag = version;
-    sha256 = "0q97xfqrigrfjl2a9cxl5in619py0zv44gch09jm8gqjkxl80imp";
+    sha256 = "0g64jc2076ng28xl4w3w9svf7hc6s9h8rq9mhvvwpfy2p6lgj6gy";
   };
 
   k8s-dns-dnsmasq-nanny = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64";
     imageTag = version;
-    sha256 = "051w5ca4qb88mwva4hbnh9xzlsvv7k1mbk3wz50lmig2mqrqqx6c";
+    sha256 = "0sdpsbj1vismihy7ass1cn96nwmav6sf3r5h6i4k2dxha0y0jsh5";
   };
 
   k8s-dns-sidecar = pkgs.dockerTools.pullImage {
     imageName = "gcr.io/google_containers/k8s-dns-sidecar-amd64";
     imageTag = version;
-    sha256 = "1z0d129bcm8i2cqq36x5jhnrv9hirj8c6kjrmdav8vgf7py78vsm";
+    sha256 = "01zpi189hpy2z62awl38fap908s8rrhc3v5gb6m90y2pycl4ad6q";
   };
 
   cfg = config.services.kubernetes.addons.dns;

From 799d28480bccf6ddd4e94ea3fe031aadda6ad087 Mon Sep 17 00:00:00 2001
From: Christopher Rosset <chris@rosset.org.uk>
Date: Sun, 24 Sep 2017 06:17:24 -0400
Subject: [PATCH 283/533] ephem: init at 3.7.6.0 (#29710)

* ephem: init at 3.7.6.0

Compute positions of the planets and stars

* Update default.nix

* python.pkgs.ephem: enable tests for python2 at least
---
 lib/maintainers.nix                           |  1 +
 .../python-modules/ephem/default.nix          | 32 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  1 +
 3 files changed, 34 insertions(+)
 create mode 100644 pkgs/development/python-modules/ephem/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index aba9eb0e2bcf..ec0d49dd35da 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -107,6 +107,7 @@
   choochootrain = "Hurshal Patel <hurshal@imap.cc>";
   chris-martin = "Chris Martin <ch.martin@gmail.com>";
   chrisjefferson = "Christopher Jefferson <chris@bubblescope.net>";
+  chrisrosset = "Christopher Rosset <chris@rosset.org.uk>";
   christopherpoole = "Christopher Mark Poole <mail@christopherpoole.net>";
   ciil = "Simon Lackerbauer <simon@lackerbauer.com>";
   ckampka = "Christian Kampka <christian@kampka.net>";
diff --git a/pkgs/development/python-modules/ephem/default.nix b/pkgs/development/python-modules/ephem/default.nix
new file mode 100644
index 000000000000..231a52c9d7a7
--- /dev/null
+++ b/pkgs/development/python-modules/ephem/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k
+, glibcLocales, pytest }:
+
+buildPythonPackage rec {
+  pname = "ephem";
+  name = "${pname}-${version}";
+  version = "3.7.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7a4c82b1def2893e02aec0394f108d24adb17bd7b0ca6f4bc78eb7120c0212ac";
+  };
+
+  patchFlags = "-p0";
+  checkInputs = [ pytest glibcLocales ];
+  # JPLTest uses assets not distributed in package
+  checkPhase = ''
+    LC_ALL="en_US.UTF-8" py.test --pyargs ephem.tests -k "not JPLTest"
+  '';
+
+  # Unfortunately, the tests are broken for Python 3 in 3.7.6.0. They have been
+  # fixed in https://github.com/brandon-rhodes/pyephem/commit/c8633854e2d251a198b0f701d0528b508baa2411
+  # but there has not been a new release since then.
+  doCheck = !isPy3k;
+
+  meta = with stdenv.lib; {
+    description = "Compute positions of the planets and stars";
+    homepage = https://pypi.python.org/pypi/ephem/;
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ chrisrosset ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index e94da936af31..204b16b5879e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -26694,6 +26694,7 @@ EOF
 
   parse-type = callPackage ../development/python-modules/parse-type { };
 
+  ephem = callPackage ../development/python-modules/ephem { };
 });
 
 in fix' (extends overrides packages)

From 0e71e03583b10182cbd926c8b60acbbff4e4753d Mon Sep 17 00:00:00 2001
From: Michal Rus <m@michalrus.com>
Date: Sun, 24 Sep 2017 12:26:55 +0200
Subject: [PATCH 284/533] xpad: init at 5.0.0 (#29720)

* xpad: init at 5.0.0

* xpad: wrapGAppsHook is required
---
 pkgs/applications/misc/xpad/default.nix | 29 +++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix         |  4 ++++
 2 files changed, 33 insertions(+)
 create mode 100644 pkgs/applications/misc/xpad/default.nix

diff --git a/pkgs/applications/misc/xpad/default.nix b/pkgs/applications/misc/xpad/default.nix
new file mode 100644
index 000000000000..01df5d32ab1a
--- /dev/null
+++ b/pkgs/applications/misc/xpad/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl
+, autoreconfHook, pkgconfig, wrapGAppsHook
+, glib, intltool, gtk3, gtksourceview }:
+
+stdenv.mkDerivation rec {
+  name = "xpad-${version}";
+  version = "5.0.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/xpad/trunk/${version}/+download/xpad-${version}.tar.bz2";
+    sha256 = "02yikxg6z9bwla09ka001ppjlpbv5kbza3za9asazm5aiz376mkb";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ glib intltool gtk3 gtksourceview ];
+
+  autoreconfPhase = ''
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A sticky note application for jotting down things to remember";
+    homepage = https://launchpad.net/xpad;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ michalrus ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f4940d14f064..a48f0a55f7c0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19335,6 +19335,10 @@ with pkgs;
 
   xosd = callPackage ../misc/xosd { };
 
+  xpad = callPackage ../applications/misc/xpad {
+    inherit (gnome3) gtksourceview;
+  };
+
   xsane = callPackage ../applications/graphics/sane/xsane.nix {
     libpng = libpng12;
   };

From 6786ad7db6bacc9b5a1025abdfde80ab781fc826 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Sun, 24 Sep 2017 11:30:43 +0100
Subject: [PATCH 285/533] guile-fibers: nitpicks

---
 pkgs/development/guile-modules/guile-fibers/default.nix | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/guile-modules/guile-fibers/default.nix b/pkgs/development/guile-modules/guile-fibers/default.nix
index 68e3c4cdf3c7..5f82a93c513a 100644
--- a/pkgs/development/guile-modules/guile-fibers/default.nix
+++ b/pkgs/development/guile-modules/guile-fibers/default.nix
@@ -13,13 +13,14 @@ in stdenv.mkDerivation {
     sha256 = "1r47m1m112kxf23xny99f0qkqsk6626iyc5jp7vzndfiyp5yskwi";
   };
 
-  buildInputs = [ autoreconfHook pkgconfig guile texinfo ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  buildInputs = [ guile texinfo ];
 
   autoreconfPhase = "./autogen.sh";
 
   meta = with stdenv.lib; {
     description = "Concurrent ML-like concurrency for Guile";
-    homepage = "https://github.com/wingo/fibers";
+    homepage = https://github.com/wingo/fibers;
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ vyp ];
     platforms = platforms.all;

From f79c0b862783356e474cca50682025653d485bf9 Mon Sep 17 00:00:00 2001
From: David Izquierdo <david@izquierdofernandez.com>
Date: Sun, 17 Sep 2017 13:08:16 +0200
Subject: [PATCH 286/533] tdesktop: 1.1.22 -> 1.1.23

---
 .../instant-messengers/telegram/tdesktop/default.nix   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 90fc4944d804..b56a10128067 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -7,20 +7,20 @@
 
 mkDerivation rec {
   name = "telegram-desktop-${version}";
-  version = "1.1.19";
+  version = "1.1.23";
 
   # Submodules
   src = fetchgit {
     url = "git://github.com/telegramdesktop/tdesktop";
     rev = "v${version}";
-    sha256 = "1zpl71k2lq861k89yp6nzkm4jm6szxrzigmmbxx63rh4v03di3b6";
+    sha256 = "0pdjrypjg015zvg8iydrja8kzvq0jsi1wz77r2cxvyyb4rkgyv7x";
     fetchSubmodules = true;
   };
 
   tgaur = fetchgit {
     url = "https://aur.archlinux.org/telegram-desktop-systemqt.git";
-    rev = "a4ba392309116003bc2b75c1c4c12dc733168d6f";
-    sha256 = "1n0yar8pm050770x36kjr4iap773xjigfbnrk289b51i5vijwhsv";
+    rev = "885d0594d8dfa0a17c14140579a3d27ef2b9bdd0";
+    sha256 = "0cdci8d8j3czhznp7gqn16w32j428njmzxr34pdsv40gggh0lbpn";
   };
 
   buildInputs = [
@@ -93,7 +93,7 @@ mkDerivation rec {
   installPhase = ''
     install -Dm755 Telegram $out/bin/telegram-desktop
     mkdir -p $out/share/applications $out/share/kde4/services
-    sed "s,/usr/bin,$out/bin,g" $tgaur/telegramdesktop.desktop > $out/share/applications/telegramdesktop.desktop
+    sed "s,/usr/bin,$out/bin,g" $tgaur/telegram-desktop.desktop > $out/share/applications/telegram-desktop.desktop
     sed "s,/usr/bin,$out/bin,g" $tgaur/tg.protocol > $out/share/kde4/services/tg.protocol
     for icon_size in 16 32 48 64 128 256 512; do
       install -Dm644 "../../../Telegram/Resources/art/icon''${icon_size}.png" "$out/share/icons/hicolor/''${icon_size}x''${icon_size}/apps/telegram-desktop.png"

From 69698ec11cc0619d84b14764fa9e708fe7e7223c Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sun, 24 Sep 2017 13:15:50 +0200
Subject: [PATCH 287/533] gnome3: only maintain single GNOME 3 package set
 (#29397)

* gnome3: only maintain single GNOME 3 package set

GNOME 3 was split into 3.10 and 3.12 in #2694. Unfortunately, we barely have the resources
to update a single version of GNOME. Maintaining multiple versions just does not make sense.
Additionally, it makes viewing history using most Git tools bothersome.

This commit renames `pkgs/desktops/gnome-3/3.24` to `pkgs/desktops/gnome-3`, removes
the config variable for choosing packageset (`environment.gnome3.packageSet`), updates
the hint in maintainer script, and removes the `gnome3_24` derivation from `all-packages.nix`.

Closes: #29329

* maintainers/scripts/gnome: Use fixed GNOME 3 directory

Since we now allow only a single GNOME 3 package set, specifying
the working directory is not necessary.

This commit sets the directory to `pkgs/desktops/gnome-3`.
---
 maintainers/scripts/gnome.sh                  |  8 ++---
 nixos/maintainers/option-usages.nix           |  1 -
 .../desktops/gnome3/evolution-data-server.nix |  9 ++----
 .../services/desktops/gnome3/gnome-disks.nix  |  7 ++--
 .../desktops/gnome3/gnome-documents.nix       |  7 ++--
 .../desktops/gnome3/gnome-keyring.nix         |  7 ++--
 .../desktops/gnome3/gnome-online-accounts.nix |  7 ++--
 .../desktops/gnome3/gnome-online-miners.nix   |  7 ++--
 .../desktops/gnome3/gnome-terminal-server.nix |  9 ++----
 .../desktops/gnome3/gnome-user-share.nix      |  7 ++--
 .../services/desktops/gnome3/gpaste.nix       | 13 +++-----
 .../modules/services/desktops/gnome3/gvfs.nix |  9 ++----
 .../services/desktops/gnome3/seahorse.nix     |  7 ++--
 .../services/desktops/gnome3/sushi.nix        |  7 ++--
 .../services/desktops/gnome3/tracker.nix      |  9 ++----
 .../services/x11/desktop-managers/gnome3.nix  | 32 +++++++------------
 .../services/x11/display-managers/gdm.nix     | 15 ++++-----
 .../{3.24 => }/apps/accerciser/default.nix    |  0
 .../{3.24 => }/apps/accerciser/src.nix        |  0
 .../{3.24 => }/apps/bijiben/default.nix       |  0
 .../gnome-3/{3.24 => }/apps/bijiben/src.nix   |  0
 .../{3.24 => }/apps/cheese/default.nix        |  0
 .../gnome-3/{3.24 => }/apps/cheese/src.nix    |  0
 .../{3.24 => }/apps/evolution/default.nix     |  0
 .../gnome-3/{3.24 => }/apps/evolution/src.nix |  0
 .../{3.24 => }/apps/file-roller/default.nix   |  0
 .../{3.24 => }/apps/file-roller/src.nix       |  0
 .../gnome-3/{3.24 => }/apps/gedit/default.nix |  0
 .../gnome-3/{3.24 => }/apps/gedit/src.nix     |  0
 .../gnome-3/{3.24 => }/apps/ghex/default.nix  |  0
 .../gnome-3/{3.24 => }/apps/ghex/src.nix      |  0
 .../gnome-3/{3.24 => }/apps/glade/default.nix |  0
 .../gnome-3/{3.24 => }/apps/glade/src.nix     |  0
 .../{3.24 => }/apps/gnome-boxes/default.nix   |  0
 .../{3.24 => }/apps/gnome-boxes/src.nix       |  0
 .../apps/gnome-calendar/default.nix           |  0
 .../{3.24 => }/apps/gnome-calendar/src.nix    |  0
 .../apps/gnome-characters/default.nix         |  0
 .../{3.24 => }/apps/gnome-characters/src.nix  |  0
 .../{3.24 => }/apps/gnome-clocks/default.nix  |  0
 .../{3.24 => }/apps/gnome-clocks/src.nix      |  0
 .../apps/gnome-documents/default.nix          |  0
 .../{3.24 => }/apps/gnome-documents/src.nix   |  0
 .../gnome-getting-started-docs/default.nix    |  0
 .../apps/gnome-getting-started-docs/src.nix   |  0
 .../{3.24 => }/apps/gnome-logs/default.nix    |  0
 .../{3.24 => }/apps/gnome-logs/src.nix        |  0
 .../{3.24 => }/apps/gnome-maps/default.nix    |  0
 .../{3.24 => }/apps/gnome-maps/src.nix        |  0
 .../{3.24 => }/apps/gnome-music/default.nix   |  0
 .../{3.24 => }/apps/gnome-music/src.nix       |  0
 .../{3.24 => }/apps/gnome-nettool/default.nix |  0
 .../{3.24 => }/apps/gnome-photos/default.nix  |  0
 .../{3.24 => }/apps/gnome-photos/src.nix      |  0
 .../{3.24 => }/apps/gnome-weather/default.nix |  0
 .../{3.24 => }/apps/gnome-weather/src.nix     |  0
 .../apps/nautilus-sendto/default.nix          |  0
 .../{3.24 => }/apps/polari/default.nix        |  0
 .../gnome-3/{3.24 => }/apps/polari/src.nix    |  0
 .../{3.24 => }/apps/seahorse/default.nix      |  0
 .../gnome-3/{3.24 => }/apps/seahorse/src.nix  |  0
 .../{3.24 => }/apps/vinagre/default.nix       |  0
 .../gnome-3/{3.24 => }/apps/vinagre/src.nix   |  0
 .../core/adwaita-icon-theme/default.nix       |  0
 .../core/adwaita-icon-theme/src.nix           |  0
 .../{3.24 => }/core/baobab/default.nix        |  0
 .../gnome-3/{3.24 => }/core/baobab/src.nix    |  0
 .../{3.24 => }/core/caribou/default.nix       |  0
 .../{3.24 => }/core/dconf-editor/default.nix  |  0
 .../{3.24 => }/core/dconf-editor/src.nix      |  0
 .../gnome-3/{3.24 => }/core/dconf/default.nix |  0
 .../{3.24 => }/core/empathy/default.nix       |  0
 .../gnome-3/{3.24 => }/core/eog/default.nix   |  0
 .../gnome-3/{3.24 => }/core/eog/src.nix       |  0
 .../{3.24 => }/core/epiphany/default.nix      |  0
 .../gnome-3/{3.24 => }/core/epiphany/src.nix  |  0
 .../{3.24 => }/core/evince/default.nix        |  0
 .../gnome-3/{3.24 => }/core/evince/src.nix    |  0
 .../core/evolution-data-server/default.nix    |  0
 .../core/evolution-data-server/src.nix        |  0
 .../gnome-3/{3.24 => }/core/folks/default.nix |  0
 .../gnome-3/{3.24 => }/core/gconf/default.nix |  0
 .../gnome-3/{3.24 => }/core/gcr/default.nix   |  0
 .../gnome-3/{3.24 => }/core/gcr/src.nix       |  0
 .../gnome-3/{3.24 => }/core/gdm/default.nix   |  0
 .../gdm/gdm-session-worker_xserver-path.patch |  0
 .../core/gdm/gdm-x-session_extra_args.patch   |  0
 .../core/gdm/gdm-x-session_path.patch         |  0
 .../{3.24 => }/core/gdm/sessions_dir.patch    |  0
 .../gnome-3/{3.24 => }/core/gdm/src.nix       |  0
 .../{3.24 => }/core/geocode-glib/default.nix  |  0
 .../{3.24 => }/core/geocode-glib/src.nix      |  0
 .../gnome-3/{3.24 => }/core/gjs/default.nix   |  0
 .../gnome-3/{3.24 => }/core/gjs/src.nix       |  0
 .../core/gnome-backgrounds/default.nix        |  0
 .../{3.24 => }/core/gnome-backgrounds/src.nix |  0
 .../core/gnome-bluetooth/default.nix          |  0
 .../{3.24 => }/core/gnome-bluetooth/src.nix   |  0
 .../core/gnome-calculator/default.nix         |  0
 .../{3.24 => }/core/gnome-calculator/src.nix  |  0
 .../{3.24 => }/core/gnome-common/default.nix  |  0
 .../{3.24 => }/core/gnome-common/src.nix      |  0
 .../core/gnome-contacts/default.nix           |  0
 .../core/gnome-contacts/gio_unix.patch        |  0
 .../{3.24 => }/core/gnome-contacts/src.nix    |  0
 .../core/gnome-control-center/default.nix     |  0
 .../core/gnome-control-center/src.nix         |  0
 .../{3.24 => }/core/gnome-desktop/default.nix |  0
 .../{3.24 => }/core/gnome-desktop/src.nix     |  0
 .../core/gnome-dictionary/default.nix         |  0
 .../{3.24 => }/core/gnome-dictionary/src.nix  |  0
 .../core/gnome-disk-utility/default.nix       |  0
 .../core/gnome-disk-utility/src.nix           |  0
 .../core/gnome-font-viewer/default.nix        |  0
 .../{3.24 => }/core/gnome-font-viewer/src.nix |  0
 .../{3.24 => }/core/gnome-keyring/default.nix |  0
 .../{3.24 => }/core/gnome-keyring/src.nix     |  0
 .../{3.24 => }/core/gnome-menus/default.nix   |  0
 .../core/gnome-online-accounts/default.nix    |  0
 .../core/gnome-online-accounts/src.nix        |  0
 .../core/gnome-online-miners/default.nix      |  0
 .../core/gnome-online-miners/src.nix          |  0
 .../core/gnome-screenshot/default.nix         |  0
 .../{3.24 => }/core/gnome-screenshot/src.nix  |  0
 .../{3.24 => }/core/gnome-session/default.nix |  0
 .../{3.24 => }/core/gnome-session/src.nix     |  0
 .../core/gnome-settings-daemon/default.nix    |  0
 .../core/gnome-settings-daemon/src.nix        |  0
 .../core/gnome-shell-extensions/default.nix   |  0
 .../core/gnome-shell-extensions/src.nix       |  0
 .../{3.24 => }/core/gnome-shell/default.nix   |  0
 .../{3.24 => }/core/gnome-shell/src.nix       |  0
 .../core/gnome-software/default.nix           |  0
 .../{3.24 => }/core/gnome-software/src.nix    |  0
 .../core/gnome-system-log/default.nix         |  0
 .../core/gnome-system-monitor/default.nix     |  0
 .../core/gnome-system-monitor/src.nix         |  0
 .../core/gnome-terminal/default.nix           |  0
 .../{3.24 => }/core/gnome-terminal/src.nix    |  0
 .../core/gnome-themes-standard/default.nix    |  0
 .../core/gnome-themes-standard/src.nix        |  0
 .../core/gnome-user-docs/default.nix          |  0
 .../{3.24 => }/core/gnome-user-docs/src.nix   |  0
 .../core/gnome-user-share/default.nix         |  0
 .../{3.24 => }/core/gnome-user-share/src.nix  |  0
 .../{3.24 => }/core/grilo-plugins/default.nix |  0
 .../gnome-3/{3.24 => }/core/grilo/default.nix |  0
 .../{3.24 => }/core/grilo/setup-hook.sh       |  0
 .../gsettings-desktop-schemas/default.nix     |  0
 .../core/gsettings-desktop-schemas/src.nix    |  0
 .../{3.24 => }/core/gsound/default.nix        |  0
 .../{3.24 => }/core/gtksourceview/default.nix |  0
 .../core/gtksourceview/nix_share_path.patch   |  0
 .../{3.24 => }/core/gtksourceview/src.nix     |  0
 .../core/gtksourceviewmm/default.nix          |  0
 .../{3.24 => }/core/gtksourceviewmm/src.nix   |  0
 .../{3.24 => }/core/gucharmap/default.nix     |  0
 .../gnome-3/{3.24 => }/core/gucharmap/src.nix |  0
 .../{3.24 => }/core/libcroco/default.nix      |  0
 .../{3.24 => }/core/libgdata/default.nix      |  0
 .../{3.24 => }/core/libgee/default.nix        |  0
 .../core/libgee/fix_introspection_paths.patch |  0
 .../{3.24 => }/core/libgepub/default.nix      |  0
 .../core/libgnome-keyring/default.nix         |  0
 .../{3.24 => }/core/libgnomekbd/default.nix   |  0
 .../{3.24 => }/core/libgnomekbd/src.nix       |  0
 .../{3.24 => }/core/libgweather/default.nix   |  0
 .../{3.24 => }/core/libgweather/src.nix       |  0
 .../{3.24 => }/core/libgxps/default.nix       |  0
 .../{3.24 => }/core/libpeas/default.nix       |  0
 .../gnome-3/{3.24 => }/core/libpeas/src.nix   |  0
 .../{3.24 => }/core/libzapojit/default.nix    |  0
 .../{3.24 => }/core/mutter/default.nix        |  0
 .../gnome-3/{3.24 => }/core/mutter/math.patch |  0
 .../gnome-3/{3.24 => }/core/mutter/src.nix    |  0
 .../gnome-3/{3.24 => }/core/mutter/x86.patch  |  0
 .../{3.24 => }/core/nautilus/default.nix      |  0
 .../core/nautilus/extension_dir.patch         |  0
 .../gnome-3/{3.24 => }/core/nautilus/src.nix  |  0
 .../gnome-3/{3.24 => }/core/rest/default.nix  |  0
 .../gnome-3/{3.24 => }/core/sushi/default.nix |  0
 .../gnome-3/{3.24 => }/core/sushi/src.nix     |  0
 .../core/totem-pl-parser/default.nix          |  0
 .../gnome-3/{3.24 => }/core/totem/default.nix |  0
 .../gnome-3/{3.24 => }/core/totem/src.nix     |  0
 .../{3.24 => }/core/tracker/default.nix       |  0
 .../gnome-3/{3.24 => }/core/tracker/src.nix   |  0
 .../gnome-3/{3.24 => }/core/vino/default.nix  |  0
 .../gnome-3/{3.24 => }/core/vino/src.nix      |  0
 .../gnome-3/{3.24 => }/core/vte/2.90.nix      |  0
 .../gnome-3/{3.24 => }/core/vte/default.nix   |  0
 .../core/vte/fix_g_test_init_calls.patch      |  0
 .../vte/fix_vteseq_n_lookup_declaration.patch |  0
 .../gnome-3/{3.24 => }/core/vte/ng.nix        |  0
 .../gnome-3/{3.24 => }/core/vte/src.nix       |  0
 .../{3.24 => }/core/yelp-tools/default.nix    |  0
 .../{3.24 => }/core/yelp-tools/src.nix        |  0
 .../{3.24 => }/core/yelp-xsl/default.nix      |  0
 .../gnome-3/{3.24 => }/core/yelp-xsl/src.nix  |  0
 .../gnome-3/{3.24 => }/core/yelp/default.nix  |  0
 .../gnome-3/{3.24 => }/core/yelp/src.nix      |  0
 .../{3.24 => }/core/zenity/default.nix        |  0
 .../gnome-3/{3.24 => }/core/zenity/src.nix    |  0
 pkgs/desktops/gnome-3/{3.24 => }/default.nix  |  0
 .../{3.24 => }/desktop/rarian/default.nix     |  0
 .../{3.24 => }/devtools/anjuta/default.nix    |  0
 .../{3.24 => }/devtools/anjuta/src.nix        |  0
 .../{3.24 => }/devtools/devhelp/default.nix   |  0
 .../{3.24 => }/devtools/devhelp/src.nix       |  0
 .../{3.24 => }/devtools/gdl/default.nix       |  0
 .../gnome-3/{3.24 => }/devtools/gdl/src.nix   |  0
 .../devtools/gnome-devel-docs/default.nix     |  0
 .../devtools/gnome-devel-docs/src.nix         |  0
 .../devtools/nemiver/bool_slot.patch          |  0
 .../{3.24 => }/devtools/nemiver/default.nix   |  0
 .../devtools/nemiver/safe_ptr.patch           |  0
 .../{3.24 => }/devtools/nemiver/src.nix       |  0
 .../{3.24 => }/games/aisleriot/default.nix    |  0
 .../{3.24 => }/games/aisleriot/src.nix        |  0
 .../{3.24 => }/games/five-or-more/default.nix |  0
 .../{3.24 => }/games/five-or-more/src.nix     |  0
 .../games/four-in-a-row/default.nix           |  0
 .../{3.24 => }/games/four-in-a-row/src.nix    |  0
 .../{3.24 => }/games/gnome-chess/default.nix  |  0
 .../{3.24 => }/games/gnome-chess/src.nix      |  0
 .../games/gnome-klotski/default.nix           |  0
 .../{3.24 => }/games/gnome-klotski/src.nix    |  0
 .../games/gnome-mahjongg/default.nix          |  0
 .../{3.24 => }/games/gnome-mahjongg/src.nix   |  0
 .../{3.24 => }/games/gnome-mines/default.nix  |  0
 .../{3.24 => }/games/gnome-mines/src.nix      |  0
 .../games/gnome-nibbles/default.nix           |  0
 .../{3.24 => }/games/gnome-nibbles/src.nix    |  0
 .../{3.24 => }/games/gnome-robots/default.nix |  0
 .../{3.24 => }/games/gnome-robots/src.nix     |  0
 .../{3.24 => }/games/gnome-sudoku/default.nix |  0
 .../{3.24 => }/games/gnome-sudoku/src.nix     |  0
 .../{3.24 => }/games/gnome-taquin/default.nix |  0
 .../{3.24 => }/games/gnome-taquin/src.nix     |  0
 .../games/gnome-tetravex/default.nix          |  0
 .../{3.24 => }/games/gnome-tetravex/src.nix   |  0
 .../{3.24 => }/games/hitori/default.nix       |  0
 .../gnome-3/{3.24 => }/games/hitori/src.nix   |  0
 .../{3.24 => }/games/iagno/default.nix        |  0
 .../gnome-3/{3.24 => }/games/iagno/src.nix    |  0
 .../{3.24 => }/games/lightsoff/default.nix    |  0
 .../{3.24 => }/games/lightsoff/src.nix        |  0
 .../{3.24 => }/games/quadrapassel/default.nix |  0
 .../{3.24 => }/games/quadrapassel/src.nix     |  0
 .../{3.24 => }/games/swell-foop/default.nix   |  0
 .../{3.24 => }/games/swell-foop/src.nix       |  0
 .../gnome-3/{3.24 => }/games/tali/default.nix |  0
 .../gnome-3/{3.24 => }/games/tali/src.nix     |  0
 .../desktops/gnome-3/{3.24 => }/installer.nix |  0
 ...d-with-evolution-data-server-3.13.90.patch |  0
 .../{3.24 => }/misc/california/default.nix    |  0
 .../gnome-3/{3.24 => }/misc/geary/default.nix |  0
 .../{3.24 => }/misc/gexiv2/default.nix        |  0
 .../{3.24 => }/misc/gfbgraph/default.nix      |  0
 .../gnome-3/{3.24 => }/misc/gitg/default.nix  |  0
 .../gnome-3/{3.24 => }/misc/gitg/src.nix      |  0
 .../{3.24 => }/misc/gnome-autoar/default.nix  |  0
 .../{3.24 => }/misc/gnome-autoar/src.nix      |  0
 .../misc/gnome-packagekit/default.nix         |  0
 .../{3.24 => }/misc/gnome-packagekit/src.nix  |  0
 ...themes-and-icons-in-system-data-dirs.patch |  0
 ...-multiple-entries-for-a-single-theme.patch |  0
 ...reate-config-dir-if-it-doesn-t-exist.patch |  0
 .../misc/gnome-tweak-tool/default.nix         |  0
 .../gnome-tweak-tool/find_gsettings.patch     |  0
 .../{3.24 => }/misc/gnome-tweak-tool/src.nix  |  0
 .../misc/gnome-video-effects/default.nix      |  0
 .../{3.24 => }/misc/gpaste/default.nix        |  0
 .../{3.24 => }/misc/gspell/default.nix        |  0
 .../gnome-3/{3.24 => }/misc/gspell/src.nix    |  0
 .../{3.24 => }/misc/gtkhtml/default.nix       |  0
 .../gnome-3/{3.24 => }/misc/gtkhtml/src.nix   |  0
 .../misc/libgames-support/default.nix         |  0
 .../{3.24 => }/misc/libgda/default.nix        |  0
 .../gnome-3/{3.24 => }/misc/libgda/src.nix    |  0
 .../{3.24 => }/misc/libgit2-glib/default.nix  |  0
 .../{3.24 => }/misc/libgit2-glib/src.nix      |  0
 .../{3.24 => }/misc/libmediaart/default.nix   |  0
 .../{3.24 => }/misc/pidgin/default.nix        |  0
 .../{3.24 => }/misc/pomodoro/default.nix      |  0
 pkgs/top-level/all-packages.nix               |  4 +--
 286 files changed, 56 insertions(+), 109 deletions(-)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/accerciser/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/accerciser/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/bijiben/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/bijiben/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/cheese/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/cheese/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/evolution/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/evolution/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/file-roller/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/file-roller/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gedit/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gedit/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/ghex/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/ghex/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/glade/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/glade/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-boxes/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-boxes/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-calendar/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-calendar/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-characters/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-characters/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-clocks/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-clocks/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-documents/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-documents/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-getting-started-docs/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-getting-started-docs/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-logs/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-logs/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-maps/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-maps/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-music/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-music/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-nettool/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-photos/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-photos/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-weather/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/gnome-weather/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/nautilus-sendto/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/polari/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/polari/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/seahorse/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/seahorse/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/vinagre/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/apps/vinagre/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/adwaita-icon-theme/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/adwaita-icon-theme/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/baobab/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/baobab/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/caribou/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/dconf-editor/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/dconf-editor/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/dconf/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/empathy/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/eog/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/eog/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/epiphany/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/epiphany/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/evince/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/evince/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/evolution-data-server/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/evolution-data-server/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/folks/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gconf/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gcr/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gcr/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/gdm-session-worker_xserver-path.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/gdm-x-session_extra_args.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/gdm-x-session_path.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/sessions_dir.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gdm/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/geocode-glib/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/geocode-glib/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gjs/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gjs/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-backgrounds/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-backgrounds/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-bluetooth/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-bluetooth/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-calculator/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-calculator/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-common/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-common/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-contacts/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-contacts/gio_unix.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-contacts/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-control-center/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-control-center/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-desktop/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-desktop/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-dictionary/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-dictionary/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-disk-utility/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-disk-utility/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-font-viewer/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-font-viewer/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-keyring/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-keyring/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-menus/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-online-accounts/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-online-accounts/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-online-miners/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-online-miners/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-screenshot/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-screenshot/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-session/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-session/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-settings-daemon/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-settings-daemon/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-shell-extensions/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-shell-extensions/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-shell/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-shell/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-software/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-software/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-system-log/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-system-monitor/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-system-monitor/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-terminal/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-terminal/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-themes-standard/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-themes-standard/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-user-docs/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-user-docs/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-user-share/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gnome-user-share/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/grilo-plugins/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/grilo/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/grilo/setup-hook.sh (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gsettings-desktop-schemas/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gsettings-desktop-schemas/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gsound/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gtksourceview/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gtksourceview/nix_share_path.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gtksourceview/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gtksourceviewmm/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gtksourceviewmm/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gucharmap/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/gucharmap/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libcroco/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgdata/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgee/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgee/fix_introspection_paths.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgepub/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgnome-keyring/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgnomekbd/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgnomekbd/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgweather/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgweather/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libgxps/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libpeas/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libpeas/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/libzapojit/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/mutter/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/mutter/math.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/mutter/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/mutter/x86.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/nautilus/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/nautilus/extension_dir.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/nautilus/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/rest/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/sushi/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/sushi/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/totem-pl-parser/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/totem/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/totem/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/tracker/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/tracker/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vino/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vino/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/2.90.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/fix_g_test_init_calls.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/fix_vteseq_n_lookup_declaration.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/ng.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/vte/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp-tools/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp-tools/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp-xsl/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp-xsl/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/yelp/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/zenity/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/core/zenity/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/desktop/rarian/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/anjuta/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/anjuta/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/devhelp/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/devhelp/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/gdl/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/gdl/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/gnome-devel-docs/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/gnome-devel-docs/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/nemiver/bool_slot.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/nemiver/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/nemiver/safe_ptr.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/devtools/nemiver/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/aisleriot/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/aisleriot/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/five-or-more/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/five-or-more/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/four-in-a-row/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/four-in-a-row/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-chess/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-chess/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-klotski/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-klotski/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-mahjongg/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-mahjongg/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-mines/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-mines/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-nibbles/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-nibbles/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-robots/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-robots/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-sudoku/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-sudoku/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-taquin/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-taquin/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-tetravex/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/gnome-tetravex/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/hitori/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/hitori/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/iagno/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/iagno/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/lightsoff/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/lightsoff/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/quadrapassel/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/quadrapassel/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/swell-foop/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/swell-foop/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/tali/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/games/tali/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/installer.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/california/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/geary/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gexiv2/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gfbgraph/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gitg/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gitg/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-autoar/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-autoar/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-packagekit/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-packagekit/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/find_gsettings.patch (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-tweak-tool/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gnome-video-effects/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gpaste/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gspell/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gspell/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gtkhtml/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/gtkhtml/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libgames-support/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libgda/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libgda/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libgit2-glib/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libgit2-glib/src.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/libmediaart/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/pidgin/default.nix (100%)
 rename pkgs/desktops/gnome-3/{3.24 => }/misc/pomodoro/default.nix (100%)

diff --git a/maintainers/scripts/gnome.sh b/maintainers/scripts/gnome.sh
index e5a8d606f1a3..f77dc5a9e64c 100755
--- a/maintainers/scripts/gnome.sh
+++ b/maintainers/scripts/gnome.sh
@@ -9,17 +9,15 @@ GNOME_FTP=ftp.gnome.org/pub/GNOME/sources
 NO_GNOME_MAJOR="ghex gtkhtml gdm"
 
 usage() {
-  echo "Usage: $0 gnome_dir <show project>|<update project>|<update-all> [major.minor]" >&2
-  echo "gnome_dir is for example pkgs/desktops/gnome-3/3.18" >&2
+  echo "Usage: $0 <show project>|<update project>|<update-all> [major.minor]" >&2
   exit 0
 }
 
-if [ "$#" -lt 2 ]; then
+if [ "$#" -lt 1 ]; then
   usage
 fi
 
-GNOME_TOP=$1
-shift
+GNOME_TOP=pkgs/desktops/gnome-3
 
 action=$1
 
diff --git a/nixos/maintainers/option-usages.nix b/nixos/maintainers/option-usages.nix
index 854ecf7eac51..7be0255b35ac 100644
--- a/nixos/maintainers/option-usages.nix
+++ b/nixos/maintainers/option-usages.nix
@@ -77,7 +77,6 @@ let
   excludedOptions = [
     "boot.systemd.services"
     "systemd.services"
-    "environment.gnome3.packageSet"
     "kde.extraPackages"
   ];
   excludeOptions = list:
diff --git a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
index 2db2e2fe1c34..86a47488d865 100644
--- a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
+++ b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,11 +30,11 @@ in
 
   config = mkIf config.services.gnome3.evolution-data-server.enable {
 
-    environment.systemPackages = [ gnome3.evolution_data_server ];
+    environment.systemPackages = [ pkgs.gnome3.evolution_data_server ];
 
-    services.dbus.packages = [ gnome3.evolution_data_server ];
+    services.dbus.packages = [ pkgs.gnome3.evolution_data_server ];
 
-    systemd.packages = [ gnome3.evolution_data_server ];
+    systemd.packages = [ pkgs.gnome3.evolution_data_server ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-disks.nix b/nixos/modules/services/desktops/gnome3/gnome-disks.nix
index 33c4bc49f982..139534cdb892 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-disks.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-disks.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,9 +30,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-disks.enable {
 
-    environment.systemPackages = [ gnome3.gnome-disk-utility ];
+    environment.systemPackages = [ pkgs.gnome3.gnome-disk-utility ];
 
-    services.dbus.packages = [ gnome3.gnome-disk-utility ];
+    services.dbus.packages = [ pkgs.gnome3.gnome-disk-utility ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-documents.nix b/nixos/modules/services/desktops/gnome3/gnome-documents.nix
index 88bbdadfcbdd..f6efb6684240 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-documents.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-documents.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,9 +30,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-documents.enable {
 
-    environment.systemPackages = [ gnome3.gnome-documents ];
+    environment.systemPackages = [ pkgs.gnome3.gnome-documents ];
 
-    services.dbus.packages = [ gnome3.gnome-documents ];
+    services.dbus.packages = [ pkgs.gnome3.gnome-documents ];
 
     services.gnome3.gnome-online-accounts.enable = true;
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix
index a36643a1cfb3..2a68af5a7dd8 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-keyring.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-keyring.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -34,9 +31,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-keyring.enable {
 
-    environment.systemPackages = [ gnome3.gnome_keyring ];
+    environment.systemPackages = [ pkgs.gnome3.gnome_keyring ];
 
-    services.dbus.packages = [ gnome3.gnome_keyring gnome3.gcr ];
+    services.dbus.packages = [ pkgs.gnome3.gnome_keyring pkgs.gnome3.gcr ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
index 82d04c62c70d..0da4aca73ecb 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-online-accounts.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,9 +30,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-online-accounts.enable {
 
-    environment.systemPackages = [ gnome3.gnome_online_accounts ];
+    environment.systemPackages = [ pkgs.gnome3.gnome_online_accounts ];
 
-    services.dbus.packages = [ gnome3.gnome_online_accounts ];
+    services.dbus.packages = [ pkgs.gnome3.gnome_online_accounts ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix
index 6acd633b62c9..d406bf6f5e39 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-online-miners.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,9 +30,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-online-miners.enable {
 
-    environment.systemPackages = [ gnome3.gnome-online-miners ];
+    environment.systemPackages = [ pkgs.gnome3.gnome-online-miners ];
 
-    services.dbus.packages = [ gnome3.gnome-online-miners ];
+    services.dbus.packages = [ pkgs.gnome3.gnome-online-miners ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix b/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix
index 384cede679c6..3ac767bfa00d 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-terminal-server.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,11 +30,11 @@ in
 
   config = mkIf config.services.gnome3.gnome-terminal-server.enable {
 
-    environment.systemPackages = [ gnome3.gnome_terminal ];
+    environment.systemPackages = [ pkgs.gnome3.gnome_terminal ];
 
-    services.dbus.packages = [ gnome3.gnome_terminal ];
+    services.dbus.packages = [ pkgs.gnome3.gnome_terminal ];
 
-    systemd.packages = [ gnome3.gnome_terminal ];
+    systemd.packages = [ pkgs.gnome3.gnome_terminal ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix
index e5c94cff7c84..1f6ce2ae968e 100644
--- a/nixos/modules/services/desktops/gnome3/gnome-user-share.nix
+++ b/nixos/modules/services/desktops/gnome3/gnome-user-share.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,9 +30,9 @@ in
 
   config = mkIf config.services.gnome3.gnome-user-share.enable {
 
-    environment.systemPackages = [ gnome3.gnome-user-share ];
+    environment.systemPackages = [ pkgs.gnome3.gnome-user-share ];
 
-    services.xserver.displayManager.sessionCommands = with gnome3; ''
+    services.xserver.displayManager.sessionCommands = with pkgs.gnome3; ''
       # Don't let gnome-control-center depend upon gnome-user-share
       export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${gnome-user-share}/share/gsettings-schemas/${gnome-user-share.name}
     '';
diff --git a/nixos/modules/services/desktops/gnome3/gpaste.nix b/nixos/modules/services/desktops/gnome3/gpaste.nix
index 0954cd2713aa..5a8258775e0a 100644
--- a/nixos/modules/services/desktops/gnome3/gpaste.nix
+++ b/nixos/modules/services/desktops/gnome3/gpaste.nix
@@ -1,11 +1,8 @@
 # GPaste daemon.
-{ config, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
   ###### interface
   options = {
@@ -22,9 +19,9 @@ in
 
   ###### implementation
   config = mkIf config.services.gnome3.gpaste.enable {
-    environment.systemPackages = [ gnome3.gpaste ];
-    services.dbus.packages = [ gnome3.gpaste ];
-    services.xserver.desktopManager.gnome3.sessionPath = [ gnome3.gpaste ];
-    systemd.packages = [ gnome3.gpaste ];
+    environment.systemPackages = [ pkgs.gnome3.gpaste ];
+    services.dbus.packages = [ pkgs.gnome3.gpaste ];
+    services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ];
+    systemd.packages = [ pkgs.gnome3.gpaste ];
   };
 }
diff --git a/nixos/modules/services/desktops/gnome3/gvfs.nix b/nixos/modules/services/desktops/gnome3/gvfs.nix
index 6bbabe8d3c56..4e99d191f18c 100644
--- a/nixos/modules/services/desktops/gnome3/gvfs.nix
+++ b/nixos/modules/services/desktops/gnome3/gvfs.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,11 +30,11 @@ in
 
   config = mkIf config.services.gnome3.gvfs.enable {
 
-    environment.systemPackages = [ gnome3.gvfs ];
+    environment.systemPackages = [ pkgs.gnome3.gvfs ];
 
-    services.dbus.packages = [ gnome3.gvfs ];
+    services.dbus.packages = [ pkgs.gnome3.gvfs ];
 
-    systemd.packages = [ gnome3.gvfs ];
+    systemd.packages = [ pkgs.gnome3.gvfs ];
 
     services.udev.packages = [ pkgs.libmtp.bin ];
 
diff --git a/nixos/modules/services/desktops/gnome3/seahorse.nix b/nixos/modules/services/desktops/gnome3/seahorse.nix
index 45925aaca9b9..e9ad738269e4 100644
--- a/nixos/modules/services/desktops/gnome3/seahorse.nix
+++ b/nixos/modules/services/desktops/gnome3/seahorse.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -32,9 +29,9 @@ in
 
   config = mkIf config.services.gnome3.seahorse.enable {
 
-    environment.systemPackages = [ gnome3.seahorse ];
+    environment.systemPackages = [ pkgs.gnome3.seahorse ];
 
-    services.dbus.packages = [ gnome3.seahorse ];
+    services.dbus.packages = [ pkgs.gnome3.seahorse ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/sushi.nix b/nixos/modules/services/desktops/gnome3/sushi.nix
index ff7f484602c7..7a4389038b22 100644
--- a/nixos/modules/services/desktops/gnome3/sushi.nix
+++ b/nixos/modules/services/desktops/gnome3/sushi.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -32,9 +29,9 @@ in
 
   config = mkIf config.services.gnome3.sushi.enable {
 
-    environment.systemPackages = [ gnome3.sushi ];
+    environment.systemPackages = [ pkgs.gnome3.sushi ];
 
-    services.dbus.packages = [ gnome3.sushi ];
+    services.dbus.packages = [ pkgs.gnome3.sushi ];
 
   };
 
diff --git a/nixos/modules/services/desktops/gnome3/tracker.nix b/nixos/modules/services/desktops/gnome3/tracker.nix
index dcaa60103a3b..c061f7890499 100644
--- a/nixos/modules/services/desktops/gnome3/tracker.nix
+++ b/nixos/modules/services/desktops/gnome3/tracker.nix
@@ -4,9 +4,6 @@
 
 with lib;
 
-let
-  gnome3 = config.environment.gnome3.packageSet;
-in
 {
 
   ###### interface
@@ -33,11 +30,11 @@ in
 
   config = mkIf config.services.gnome3.tracker.enable {
 
-    environment.systemPackages = [ gnome3.tracker ];
+    environment.systemPackages = [ pkgs.gnome3.tracker ];
 
-    services.dbus.packages = [ gnome3.tracker ];
+    services.dbus.packages = [ pkgs.gnome3.tracker ];
 
-    systemd.packages = [ gnome3.tracker ];
+    systemd.packages = [ pkgs.gnome3.tracker ];
 
   };
 
diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix
index 0abdc27bbfc6..ecf0abb1efd2 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome3.nix
+++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix
@@ -4,7 +4,6 @@ with lib;
 
 let
   cfg = config.services.xserver.desktopManager.gnome3;
-  gnome3 = config.environment.gnome3.packageSet;
 
   # Remove packages of ys from xs, based on their names
   removePackagesByName = xs: ys:
@@ -28,7 +27,7 @@ let
   nixos-gsettings-desktop-schemas = pkgs.runCommand "nixos-gsettings-desktop-schemas" {}
     ''
      mkdir -p $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
-     cp -rf ${gnome3.gsettings_desktop_schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+     cp -rf ${pkgs.gnome3.gsettings_desktop_schemas}/share/gsettings-schemas/gsettings-desktop-schemas*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
 
      ${concatMapStrings (pkg: "cp -rf ${pkg}/share/gsettings-schemas/*/glib-2.0/schemas/*.xml $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas\n") cfg.extraGSettingsOverridePackages}
 
@@ -61,7 +60,7 @@ in {
         example = literalExample "[ pkgs.gnome3.gpaste ]";
         description = "Additional list of packages to be added to the session search path.
                        Useful for gnome shell extensions or gsettings-conditionated autostart.";
-        apply = list: list ++ [ gnome3.gnome_shell gnome3.gnome-shell-extensions ];
+        apply = list: list ++ [ pkgs.gnome3.gnome_shell pkgs.gnome3.gnome-shell-extensions ];
       };
 
       extraGSettingsOverrides = mkOption {
@@ -79,13 +78,6 @@ in {
       debug = mkEnableOption "gnome-session debug messages";
     };
 
-    environment.gnome3.packageSet = mkOption {
-      default = null;
-      example = literalExample "pkgs.gnome3_22";
-      description = "Which GNOME 3 package set to use.";
-      apply = p: if p == null then pkgs.gnome3 else p;
-    };
-
     environment.gnome3.excludePackages = mkOption {
       default = [];
       example = literalExample "[ pkgs.gnome3.totem ]";
@@ -169,26 +161,26 @@ in {
           # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
           ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update
 
-          ${gnome3.gnome_session}/bin/gnome-session ${optionalString cfg.debug "--debug"} &
+          ${pkgs.gnome3.gnome_session}/bin/gnome-session ${optionalString cfg.debug "--debug"} &
           waitPID=$!
         '';
       };
 
     services.xserver.updateDbusEnvironment = true;
 
-    environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib gnome3.dconf}/lib/gio/modules"
-                                                "${gnome3.glib_networking.out}/lib/gio/modules"
-                                                "${gnome3.gvfs}/lib/gio/modules" ];
-    environment.systemPackages = gnome3.corePackages ++ cfg.sessionPath
-      ++ (removePackagesByName gnome3.optionalPackages config.environment.gnome3.excludePackages);
+    environment.variables.GIO_EXTRA_MODULES = [ "${lib.getLib pkgs.gnome3.dconf}/lib/gio/modules"
+                                                "${pkgs.gnome3.glib_networking.out}/lib/gio/modules"
+                                                "${pkgs.gnome3.gvfs}/lib/gio/modules" ];
+    environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath
+      ++ (removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages);
 
     # Use the correct gnome3 packageSet
     networking.networkmanager.basePackages =
       { inherit (pkgs) networkmanager modemmanager wpa_supplicant;
-        inherit (gnome3) networkmanager_openvpn networkmanager_vpnc
-                         networkmanager_openconnect networkmanager_fortisslvpn
-                         networkmanager_pptp networkmanager_iodine
-                         networkmanager_l2tp; };
+        inherit (pkgs.gnome3) networkmanager_openvpn networkmanager_vpnc
+                              networkmanager_openconnect networkmanager_fortisslvpn
+                              networkmanager_pptp networkmanager_iodine
+                              networkmanager_l2tp; };
 
     # Needed for themes and backgrounds
     environment.pathsToLink = [ "/share" ];
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index bd16f2210592..b0a3ff1bb753 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -5,8 +5,7 @@ with lib;
 let
 
   cfg = config.services.xserver.displayManager;
-  gnome3 = config.environment.gnome3.packageSet;
-  gdm = gnome3.gdm;
+  gdm = pkgs.gnome3.gdm;
 
 in
 
@@ -103,7 +102,7 @@ in
             (filter (arg: arg != "-terminate") cfg.xserverArgs);
           GDM_SESSIONS_DIR = "${cfg.session.desktops}";
           # Find the mouse
-          XCURSOR_PATH = "~/.icons:${gnome3.adwaita-icon-theme}/share/icons";
+          XCURSOR_PATH = "~/.icons:${pkgs.gnome3.adwaita-icon-theme}/share/icons";
         };
         execCmd = "exec ${gdm}/bin/gdm";
       };
@@ -127,7 +126,7 @@ in
       StandardError = "inherit";
     };
 
-    systemd.services.display-manager.path = [ gnome3.gnome_session ];
+    systemd.services.display-manager.path = [ pkgs.gnome3.gnome_session ];
 
     services.dbus.packages = [ gdm ];
 
@@ -186,7 +185,7 @@ in
         auth     required       pam_env.so envfile=${config.system.build.pamEnvironment}
 
         auth     required       pam_succeed_if.so uid >= 1000 quiet
-        auth     optional       ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
+        auth     optional       ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
         auth     ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
         ${optionalString config.security.pam.enableEcryptfs
           "auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
@@ -206,7 +205,7 @@ in
           "session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
         session  required       pam_loginuid.so
         session  optional       ${pkgs.systemd}/lib/security/pam_systemd.so
-        session  optional       ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
+        session  optional       ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
       '';
 
       gdm-password.text = ''
@@ -214,7 +213,7 @@ in
         auth     required       pam_env.so envfile=${config.system.build.pamEnvironment}
 
         auth     required       pam_succeed_if.so uid >= 1000 quiet
-        auth     optional       ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
+        auth     optional       ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
         auth     ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
         ${optionalString config.security.pam.enableEcryptfs
           "auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
@@ -233,7 +232,7 @@ in
           "session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
         session  required       pam_loginuid.so
         session  optional       ${pkgs.systemd}/lib/security/pam_systemd.so
-        session  optional       ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
+        session  optional       ${pkgs.gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
       '';
 
       gdm-autologin.text = ''
diff --git a/pkgs/desktops/gnome-3/3.24/apps/accerciser/default.nix b/pkgs/desktops/gnome-3/apps/accerciser/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/accerciser/default.nix
rename to pkgs/desktops/gnome-3/apps/accerciser/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/accerciser/src.nix b/pkgs/desktops/gnome-3/apps/accerciser/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/accerciser/src.nix
rename to pkgs/desktops/gnome-3/apps/accerciser/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/bijiben/default.nix b/pkgs/desktops/gnome-3/apps/bijiben/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/bijiben/default.nix
rename to pkgs/desktops/gnome-3/apps/bijiben/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/bijiben/src.nix b/pkgs/desktops/gnome-3/apps/bijiben/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/bijiben/src.nix
rename to pkgs/desktops/gnome-3/apps/bijiben/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/cheese/default.nix
rename to pkgs/desktops/gnome-3/apps/cheese/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/cheese/src.nix b/pkgs/desktops/gnome-3/apps/cheese/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/cheese/src.nix
rename to pkgs/desktops/gnome-3/apps/cheese/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/evolution/default.nix b/pkgs/desktops/gnome-3/apps/evolution/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/evolution/default.nix
rename to pkgs/desktops/gnome-3/apps/evolution/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/evolution/src.nix b/pkgs/desktops/gnome-3/apps/evolution/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/evolution/src.nix
rename to pkgs/desktops/gnome-3/apps/evolution/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/file-roller/default.nix b/pkgs/desktops/gnome-3/apps/file-roller/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/file-roller/default.nix
rename to pkgs/desktops/gnome-3/apps/file-roller/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/file-roller/src.nix b/pkgs/desktops/gnome-3/apps/file-roller/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/file-roller/src.nix
rename to pkgs/desktops/gnome-3/apps/file-roller/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gedit/default.nix b/pkgs/desktops/gnome-3/apps/gedit/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gedit/default.nix
rename to pkgs/desktops/gnome-3/apps/gedit/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gedit/src.nix b/pkgs/desktops/gnome-3/apps/gedit/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gedit/src.nix
rename to pkgs/desktops/gnome-3/apps/gedit/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/ghex/default.nix b/pkgs/desktops/gnome-3/apps/ghex/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/ghex/default.nix
rename to pkgs/desktops/gnome-3/apps/ghex/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/ghex/src.nix b/pkgs/desktops/gnome-3/apps/ghex/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/ghex/src.nix
rename to pkgs/desktops/gnome-3/apps/ghex/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/glade/default.nix b/pkgs/desktops/gnome-3/apps/glade/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/glade/default.nix
rename to pkgs/desktops/gnome-3/apps/glade/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/glade/src.nix b/pkgs/desktops/gnome-3/apps/glade/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/glade/src.nix
rename to pkgs/desktops/gnome-3/apps/glade/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-boxes/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-boxes/src.nix b/pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-boxes/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-boxes/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-calendar/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-calendar/src.nix b/pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-calendar/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-calendar/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-characters/default.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-characters/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-characters/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-characters/src.nix b/pkgs/desktops/gnome-3/apps/gnome-characters/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-characters/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-characters/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-clocks/default.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-clocks/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-clocks/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-clocks/src.nix b/pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-clocks/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-clocks/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-documents/default.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-documents/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-documents/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-documents/src.nix b/pkgs/desktops/gnome-3/apps/gnome-documents/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-documents/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-documents/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-getting-started-docs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-getting-started-docs/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-getting-started-docs/src.nix b/pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-getting-started-docs/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-getting-started-docs/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-logs/default.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-logs/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-logs/src.nix b/pkgs/desktops/gnome-3/apps/gnome-logs/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-logs/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-logs/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-maps/default.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-maps/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-maps/src.nix b/pkgs/desktops/gnome-3/apps/gnome-maps/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-maps/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-maps/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-music/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-music/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-music/src.nix b/pkgs/desktops/gnome-3/apps/gnome-music/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-music/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-music/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-nettool/default.nix b/pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-nettool/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-nettool/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-photos/default.nix b/pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-photos/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-photos/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-photos/src.nix b/pkgs/desktops/gnome-3/apps/gnome-photos/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-photos/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-photos/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-weather/default.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-weather/default.nix
rename to pkgs/desktops/gnome-3/apps/gnome-weather/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/gnome-weather/src.nix b/pkgs/desktops/gnome-3/apps/gnome-weather/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/gnome-weather/src.nix
rename to pkgs/desktops/gnome-3/apps/gnome-weather/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/nautilus-sendto/default.nix b/pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/nautilus-sendto/default.nix
rename to pkgs/desktops/gnome-3/apps/nautilus-sendto/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/polari/default.nix
rename to pkgs/desktops/gnome-3/apps/polari/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/polari/src.nix b/pkgs/desktops/gnome-3/apps/polari/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/polari/src.nix
rename to pkgs/desktops/gnome-3/apps/polari/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/seahorse/default.nix b/pkgs/desktops/gnome-3/apps/seahorse/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/seahorse/default.nix
rename to pkgs/desktops/gnome-3/apps/seahorse/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/seahorse/src.nix b/pkgs/desktops/gnome-3/apps/seahorse/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/seahorse/src.nix
rename to pkgs/desktops/gnome-3/apps/seahorse/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/vinagre/default.nix b/pkgs/desktops/gnome-3/apps/vinagre/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/vinagre/default.nix
rename to pkgs/desktops/gnome-3/apps/vinagre/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/apps/vinagre/src.nix b/pkgs/desktops/gnome-3/apps/vinagre/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/apps/vinagre/src.nix
rename to pkgs/desktops/gnome-3/apps/vinagre/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/adwaita-icon-theme/default.nix
rename to pkgs/desktops/gnome-3/core/adwaita-icon-theme/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/adwaita-icon-theme/src.nix b/pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/adwaita-icon-theme/src.nix
rename to pkgs/desktops/gnome-3/core/adwaita-icon-theme/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/baobab/default.nix
rename to pkgs/desktops/gnome-3/core/baobab/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/baobab/src.nix b/pkgs/desktops/gnome-3/core/baobab/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/baobab/src.nix
rename to pkgs/desktops/gnome-3/core/baobab/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/caribou/default.nix b/pkgs/desktops/gnome-3/core/caribou/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/caribou/default.nix
rename to pkgs/desktops/gnome-3/core/caribou/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/dconf-editor/default.nix b/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/dconf-editor/default.nix
rename to pkgs/desktops/gnome-3/core/dconf-editor/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/dconf-editor/src.nix b/pkgs/desktops/gnome-3/core/dconf-editor/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/dconf-editor/src.nix
rename to pkgs/desktops/gnome-3/core/dconf-editor/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/dconf/default.nix b/pkgs/desktops/gnome-3/core/dconf/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/dconf/default.nix
rename to pkgs/desktops/gnome-3/core/dconf/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/empathy/default.nix b/pkgs/desktops/gnome-3/core/empathy/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/empathy/default.nix
rename to pkgs/desktops/gnome-3/core/empathy/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/eog/default.nix
rename to pkgs/desktops/gnome-3/core/eog/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/eog/src.nix b/pkgs/desktops/gnome-3/core/eog/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/eog/src.nix
rename to pkgs/desktops/gnome-3/core/eog/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/epiphany/default.nix b/pkgs/desktops/gnome-3/core/epiphany/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/epiphany/default.nix
rename to pkgs/desktops/gnome-3/core/epiphany/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/epiphany/src.nix b/pkgs/desktops/gnome-3/core/epiphany/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/epiphany/src.nix
rename to pkgs/desktops/gnome-3/core/epiphany/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/evince/default.nix b/pkgs/desktops/gnome-3/core/evince/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/evince/default.nix
rename to pkgs/desktops/gnome-3/core/evince/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/evince/src.nix b/pkgs/desktops/gnome-3/core/evince/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/evince/src.nix
rename to pkgs/desktops/gnome-3/core/evince/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/evolution-data-server/default.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/evolution-data-server/default.nix
rename to pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/evolution-data-server/src.nix b/pkgs/desktops/gnome-3/core/evolution-data-server/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/evolution-data-server/src.nix
rename to pkgs/desktops/gnome-3/core/evolution-data-server/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/folks/default.nix b/pkgs/desktops/gnome-3/core/folks/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/folks/default.nix
rename to pkgs/desktops/gnome-3/core/folks/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gconf/default.nix b/pkgs/desktops/gnome-3/core/gconf/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gconf/default.nix
rename to pkgs/desktops/gnome-3/core/gconf/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gcr/default.nix
rename to pkgs/desktops/gnome-3/core/gcr/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gcr/src.nix b/pkgs/desktops/gnome-3/core/gcr/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gcr/src.nix
rename to pkgs/desktops/gnome-3/core/gcr/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/default.nix
rename to pkgs/desktops/gnome-3/core/gdm/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/gdm-session-worker_xserver-path.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/gdm-session-worker_xserver-path.patch
rename to pkgs/desktops/gnome-3/core/gdm/gdm-session-worker_xserver-path.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/gdm-x-session_extra_args.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/gdm-x-session_extra_args.patch
rename to pkgs/desktops/gnome-3/core/gdm/gdm-x-session_extra_args.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/gdm-x-session_path.patch b/pkgs/desktops/gnome-3/core/gdm/gdm-x-session_path.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/gdm-x-session_path.patch
rename to pkgs/desktops/gnome-3/core/gdm/gdm-x-session_path.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/sessions_dir.patch b/pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/sessions_dir.patch
rename to pkgs/desktops/gnome-3/core/gdm/sessions_dir.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gdm/src.nix b/pkgs/desktops/gnome-3/core/gdm/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gdm/src.nix
rename to pkgs/desktops/gnome-3/core/gdm/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/geocode-glib/default.nix b/pkgs/desktops/gnome-3/core/geocode-glib/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/geocode-glib/default.nix
rename to pkgs/desktops/gnome-3/core/geocode-glib/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/geocode-glib/src.nix b/pkgs/desktops/gnome-3/core/geocode-glib/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/geocode-glib/src.nix
rename to pkgs/desktops/gnome-3/core/geocode-glib/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gjs/default.nix b/pkgs/desktops/gnome-3/core/gjs/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gjs/default.nix
rename to pkgs/desktops/gnome-3/core/gjs/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gjs/src.nix b/pkgs/desktops/gnome-3/core/gjs/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gjs/src.nix
rename to pkgs/desktops/gnome-3/core/gjs/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-backgrounds/default.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-backgrounds/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-backgrounds/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-backgrounds/src.nix b/pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-backgrounds/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-backgrounds/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-bluetooth/default.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-bluetooth/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-bluetooth/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-bluetooth/src.nix b/pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-bluetooth/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-bluetooth/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-calculator/default.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-calculator/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-calculator/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-calculator/src.nix b/pkgs/desktops/gnome-3/core/gnome-calculator/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-calculator/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-calculator/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-common/default.nix b/pkgs/desktops/gnome-3/core/gnome-common/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-common/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-common/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-common/src.nix b/pkgs/desktops/gnome-3/core/gnome-common/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-common/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-common/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-contacts/default.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-contacts/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-contacts/gio_unix.patch b/pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-contacts/gio_unix.patch
rename to pkgs/desktops/gnome-3/core/gnome-contacts/gio_unix.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-contacts/src.nix b/pkgs/desktops/gnome-3/core/gnome-contacts/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-contacts/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-contacts/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-control-center/default.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-control-center/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-control-center/src.nix b/pkgs/desktops/gnome-3/core/gnome-control-center/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-control-center/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-control-center/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-desktop/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-desktop/src.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-desktop/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-desktop/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-dictionary/default.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-dictionary/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-dictionary/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-dictionary/src.nix b/pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-dictionary/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-dictionary/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-disk-utility/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-disk-utility/src.nix b/pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-disk-utility/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-disk-utility/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-font-viewer/default.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-font-viewer/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-font-viewer/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-font-viewer/src.nix b/pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-font-viewer/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-font-viewer/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-keyring/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-keyring/src.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-keyring/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-keyring/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-menus/default.nix b/pkgs/desktops/gnome-3/core/gnome-menus/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-menus/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-menus/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-online-accounts/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-online-accounts/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-online-accounts/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-online-accounts/src.nix b/pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-online-accounts/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-online-accounts/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-online-miners/default.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-online-miners/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-online-miners/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-online-miners/src.nix b/pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-online-miners/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-online-miners/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-screenshot/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-screenshot/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-screenshot/src.nix b/pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-screenshot/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-screenshot/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-session/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-session/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-session/src.nix b/pkgs/desktops/gnome-3/core/gnome-session/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-session/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-session/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-settings-daemon/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-settings-daemon/src.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-settings-daemon/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-settings-daemon/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-shell-extensions/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-shell-extensions/src.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-shell-extensions/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-shell-extensions/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-shell/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-shell/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-shell/src.nix b/pkgs/desktops/gnome-3/core/gnome-shell/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-shell/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-shell/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-software/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-software/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-software/src.nix b/pkgs/desktops/gnome-3/core/gnome-software/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-software/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-software/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-system-log/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-system-log/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-system-log/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-system-monitor/default.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-system-monitor/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-system-monitor/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-system-monitor/src.nix b/pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-system-monitor/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-system-monitor/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-terminal/default.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-terminal/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-terminal/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-terminal/src.nix b/pkgs/desktops/gnome-3/core/gnome-terminal/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-terminal/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-terminal/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-themes-standard/default.nix b/pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-themes-standard/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-themes-standard/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-themes-standard/src.nix b/pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-themes-standard/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-themes-standard/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-user-docs/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-user-docs/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-user-docs/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-user-docs/src.nix b/pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-user-docs/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-user-docs/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-user-share/default.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-user-share/default.nix
rename to pkgs/desktops/gnome-3/core/gnome-user-share/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gnome-user-share/src.nix b/pkgs/desktops/gnome-3/core/gnome-user-share/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gnome-user-share/src.nix
rename to pkgs/desktops/gnome-3/core/gnome-user-share/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/grilo-plugins/default.nix b/pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/grilo-plugins/default.nix
rename to pkgs/desktops/gnome-3/core/grilo-plugins/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/grilo/default.nix b/pkgs/desktops/gnome-3/core/grilo/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/grilo/default.nix
rename to pkgs/desktops/gnome-3/core/grilo/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/grilo/setup-hook.sh b/pkgs/desktops/gnome-3/core/grilo/setup-hook.sh
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/grilo/setup-hook.sh
rename to pkgs/desktops/gnome-3/core/grilo/setup-hook.sh
diff --git a/pkgs/desktops/gnome-3/3.24/core/gsettings-desktop-schemas/default.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gsettings-desktop-schemas/default.nix
rename to pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gsettings-desktop-schemas/src.nix b/pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gsettings-desktop-schemas/src.nix
rename to pkgs/desktops/gnome-3/core/gsettings-desktop-schemas/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gsound/default.nix b/pkgs/desktops/gnome-3/core/gsound/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gsound/default.nix
rename to pkgs/desktops/gnome-3/core/gsound/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gtksourceview/default.nix b/pkgs/desktops/gnome-3/core/gtksourceview/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gtksourceview/default.nix
rename to pkgs/desktops/gnome-3/core/gtksourceview/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gtksourceview/nix_share_path.patch b/pkgs/desktops/gnome-3/core/gtksourceview/nix_share_path.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gtksourceview/nix_share_path.patch
rename to pkgs/desktops/gnome-3/core/gtksourceview/nix_share_path.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/gtksourceview/src.nix b/pkgs/desktops/gnome-3/core/gtksourceview/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gtksourceview/src.nix
rename to pkgs/desktops/gnome-3/core/gtksourceview/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gtksourceviewmm/default.nix b/pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gtksourceviewmm/default.nix
rename to pkgs/desktops/gnome-3/core/gtksourceviewmm/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gtksourceviewmm/src.nix b/pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gtksourceviewmm/src.nix
rename to pkgs/desktops/gnome-3/core/gtksourceviewmm/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gucharmap/default.nix b/pkgs/desktops/gnome-3/core/gucharmap/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gucharmap/default.nix
rename to pkgs/desktops/gnome-3/core/gucharmap/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/gucharmap/src.nix b/pkgs/desktops/gnome-3/core/gucharmap/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/gucharmap/src.nix
rename to pkgs/desktops/gnome-3/core/gucharmap/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libcroco/default.nix b/pkgs/desktops/gnome-3/core/libcroco/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libcroco/default.nix
rename to pkgs/desktops/gnome-3/core/libcroco/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgdata/default.nix b/pkgs/desktops/gnome-3/core/libgdata/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgdata/default.nix
rename to pkgs/desktops/gnome-3/core/libgdata/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgee/default.nix b/pkgs/desktops/gnome-3/core/libgee/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgee/default.nix
rename to pkgs/desktops/gnome-3/core/libgee/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgee/fix_introspection_paths.patch b/pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgee/fix_introspection_paths.patch
rename to pkgs/desktops/gnome-3/core/libgee/fix_introspection_paths.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgepub/default.nix b/pkgs/desktops/gnome-3/core/libgepub/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgepub/default.nix
rename to pkgs/desktops/gnome-3/core/libgepub/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgnome-keyring/default.nix
rename to pkgs/desktops/gnome-3/core/libgnome-keyring/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgnomekbd/default.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgnomekbd/default.nix
rename to pkgs/desktops/gnome-3/core/libgnomekbd/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgnomekbd/src.nix b/pkgs/desktops/gnome-3/core/libgnomekbd/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgnomekbd/src.nix
rename to pkgs/desktops/gnome-3/core/libgnomekbd/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgweather/default.nix b/pkgs/desktops/gnome-3/core/libgweather/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgweather/default.nix
rename to pkgs/desktops/gnome-3/core/libgweather/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgweather/src.nix b/pkgs/desktops/gnome-3/core/libgweather/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgweather/src.nix
rename to pkgs/desktops/gnome-3/core/libgweather/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libgxps/default.nix b/pkgs/desktops/gnome-3/core/libgxps/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libgxps/default.nix
rename to pkgs/desktops/gnome-3/core/libgxps/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libpeas/default.nix b/pkgs/desktops/gnome-3/core/libpeas/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libpeas/default.nix
rename to pkgs/desktops/gnome-3/core/libpeas/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libpeas/src.nix b/pkgs/desktops/gnome-3/core/libpeas/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libpeas/src.nix
rename to pkgs/desktops/gnome-3/core/libpeas/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/libzapojit/default.nix b/pkgs/desktops/gnome-3/core/libzapojit/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/libzapojit/default.nix
rename to pkgs/desktops/gnome-3/core/libzapojit/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/mutter/default.nix
rename to pkgs/desktops/gnome-3/core/mutter/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/mutter/math.patch b/pkgs/desktops/gnome-3/core/mutter/math.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/mutter/math.patch
rename to pkgs/desktops/gnome-3/core/mutter/math.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/mutter/src.nix b/pkgs/desktops/gnome-3/core/mutter/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/mutter/src.nix
rename to pkgs/desktops/gnome-3/core/mutter/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/mutter/x86.patch b/pkgs/desktops/gnome-3/core/mutter/x86.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/mutter/x86.patch
rename to pkgs/desktops/gnome-3/core/mutter/x86.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/nautilus/default.nix
rename to pkgs/desktops/gnome-3/core/nautilus/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/nautilus/extension_dir.patch b/pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/nautilus/extension_dir.patch
rename to pkgs/desktops/gnome-3/core/nautilus/extension_dir.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/nautilus/src.nix b/pkgs/desktops/gnome-3/core/nautilus/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/nautilus/src.nix
rename to pkgs/desktops/gnome-3/core/nautilus/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/rest/default.nix b/pkgs/desktops/gnome-3/core/rest/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/rest/default.nix
rename to pkgs/desktops/gnome-3/core/rest/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/sushi/default.nix b/pkgs/desktops/gnome-3/core/sushi/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/sushi/default.nix
rename to pkgs/desktops/gnome-3/core/sushi/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/sushi/src.nix b/pkgs/desktops/gnome-3/core/sushi/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/sushi/src.nix
rename to pkgs/desktops/gnome-3/core/sushi/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/totem-pl-parser/default.nix b/pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/totem-pl-parser/default.nix
rename to pkgs/desktops/gnome-3/core/totem-pl-parser/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/totem/default.nix b/pkgs/desktops/gnome-3/core/totem/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/totem/default.nix
rename to pkgs/desktops/gnome-3/core/totem/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/totem/src.nix b/pkgs/desktops/gnome-3/core/totem/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/totem/src.nix
rename to pkgs/desktops/gnome-3/core/totem/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/tracker/default.nix
rename to pkgs/desktops/gnome-3/core/tracker/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/tracker/src.nix b/pkgs/desktops/gnome-3/core/tracker/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/tracker/src.nix
rename to pkgs/desktops/gnome-3/core/tracker/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vino/default.nix b/pkgs/desktops/gnome-3/core/vino/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vino/default.nix
rename to pkgs/desktops/gnome-3/core/vino/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vino/src.nix b/pkgs/desktops/gnome-3/core/vino/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vino/src.nix
rename to pkgs/desktops/gnome-3/core/vino/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/2.90.nix b/pkgs/desktops/gnome-3/core/vte/2.90.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/2.90.nix
rename to pkgs/desktops/gnome-3/core/vte/2.90.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/default.nix b/pkgs/desktops/gnome-3/core/vte/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/default.nix
rename to pkgs/desktops/gnome-3/core/vte/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/fix_g_test_init_calls.patch b/pkgs/desktops/gnome-3/core/vte/fix_g_test_init_calls.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/fix_g_test_init_calls.patch
rename to pkgs/desktops/gnome-3/core/vte/fix_g_test_init_calls.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/fix_vteseq_n_lookup_declaration.patch b/pkgs/desktops/gnome-3/core/vte/fix_vteseq_n_lookup_declaration.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/fix_vteseq_n_lookup_declaration.patch
rename to pkgs/desktops/gnome-3/core/vte/fix_vteseq_n_lookup_declaration.patch
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/ng.nix b/pkgs/desktops/gnome-3/core/vte/ng.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/ng.nix
rename to pkgs/desktops/gnome-3/core/vte/ng.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/vte/src.nix b/pkgs/desktops/gnome-3/core/vte/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/vte/src.nix
rename to pkgs/desktops/gnome-3/core/vte/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp-tools/default.nix b/pkgs/desktops/gnome-3/core/yelp-tools/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp-tools/default.nix
rename to pkgs/desktops/gnome-3/core/yelp-tools/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp-tools/src.nix b/pkgs/desktops/gnome-3/core/yelp-tools/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp-tools/src.nix
rename to pkgs/desktops/gnome-3/core/yelp-tools/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp-xsl/default.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp-xsl/default.nix
rename to pkgs/desktops/gnome-3/core/yelp-xsl/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp-xsl/src.nix b/pkgs/desktops/gnome-3/core/yelp-xsl/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp-xsl/src.nix
rename to pkgs/desktops/gnome-3/core/yelp-xsl/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp/default.nix
rename to pkgs/desktops/gnome-3/core/yelp/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/yelp/src.nix b/pkgs/desktops/gnome-3/core/yelp/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/yelp/src.nix
rename to pkgs/desktops/gnome-3/core/yelp/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/zenity/default.nix b/pkgs/desktops/gnome-3/core/zenity/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/zenity/default.nix
rename to pkgs/desktops/gnome-3/core/zenity/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/core/zenity/src.nix b/pkgs/desktops/gnome-3/core/zenity/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/core/zenity/src.nix
rename to pkgs/desktops/gnome-3/core/zenity/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/default.nix b/pkgs/desktops/gnome-3/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/default.nix
rename to pkgs/desktops/gnome-3/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/desktop/rarian/default.nix b/pkgs/desktops/gnome-3/desktop/rarian/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/desktop/rarian/default.nix
rename to pkgs/desktops/gnome-3/desktop/rarian/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/anjuta/default.nix b/pkgs/desktops/gnome-3/devtools/anjuta/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/anjuta/default.nix
rename to pkgs/desktops/gnome-3/devtools/anjuta/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/anjuta/src.nix b/pkgs/desktops/gnome-3/devtools/anjuta/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/anjuta/src.nix
rename to pkgs/desktops/gnome-3/devtools/anjuta/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/devhelp/default.nix b/pkgs/desktops/gnome-3/devtools/devhelp/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/devhelp/default.nix
rename to pkgs/desktops/gnome-3/devtools/devhelp/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/devhelp/src.nix b/pkgs/desktops/gnome-3/devtools/devhelp/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/devhelp/src.nix
rename to pkgs/desktops/gnome-3/devtools/devhelp/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/gdl/default.nix b/pkgs/desktops/gnome-3/devtools/gdl/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/gdl/default.nix
rename to pkgs/desktops/gnome-3/devtools/gdl/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/gdl/src.nix b/pkgs/desktops/gnome-3/devtools/gdl/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/gdl/src.nix
rename to pkgs/desktops/gnome-3/devtools/gdl/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/gnome-devel-docs/default.nix b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/gnome-devel-docs/default.nix
rename to pkgs/desktops/gnome-3/devtools/gnome-devel-docs/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/gnome-devel-docs/src.nix b/pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/gnome-devel-docs/src.nix
rename to pkgs/desktops/gnome-3/devtools/gnome-devel-docs/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/nemiver/bool_slot.patch b/pkgs/desktops/gnome-3/devtools/nemiver/bool_slot.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/nemiver/bool_slot.patch
rename to pkgs/desktops/gnome-3/devtools/nemiver/bool_slot.patch
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/nemiver/default.nix b/pkgs/desktops/gnome-3/devtools/nemiver/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/nemiver/default.nix
rename to pkgs/desktops/gnome-3/devtools/nemiver/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/nemiver/safe_ptr.patch b/pkgs/desktops/gnome-3/devtools/nemiver/safe_ptr.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/nemiver/safe_ptr.patch
rename to pkgs/desktops/gnome-3/devtools/nemiver/safe_ptr.patch
diff --git a/pkgs/desktops/gnome-3/3.24/devtools/nemiver/src.nix b/pkgs/desktops/gnome-3/devtools/nemiver/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/devtools/nemiver/src.nix
rename to pkgs/desktops/gnome-3/devtools/nemiver/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/aisleriot/default.nix b/pkgs/desktops/gnome-3/games/aisleriot/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/aisleriot/default.nix
rename to pkgs/desktops/gnome-3/games/aisleriot/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/aisleriot/src.nix b/pkgs/desktops/gnome-3/games/aisleriot/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/aisleriot/src.nix
rename to pkgs/desktops/gnome-3/games/aisleriot/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/five-or-more/default.nix b/pkgs/desktops/gnome-3/games/five-or-more/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/five-or-more/default.nix
rename to pkgs/desktops/gnome-3/games/five-or-more/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/five-or-more/src.nix b/pkgs/desktops/gnome-3/games/five-or-more/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/five-or-more/src.nix
rename to pkgs/desktops/gnome-3/games/five-or-more/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/four-in-a-row/default.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/four-in-a-row/default.nix
rename to pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/four-in-a-row/src.nix b/pkgs/desktops/gnome-3/games/four-in-a-row/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/four-in-a-row/src.nix
rename to pkgs/desktops/gnome-3/games/four-in-a-row/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-chess/default.nix b/pkgs/desktops/gnome-3/games/gnome-chess/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-chess/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-chess/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-chess/src.nix b/pkgs/desktops/gnome-3/games/gnome-chess/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-chess/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-chess/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-klotski/default.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-klotski/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-klotski/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-klotski/src.nix b/pkgs/desktops/gnome-3/games/gnome-klotski/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-klotski/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-klotski/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-mahjongg/default.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-mahjongg/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-mahjongg/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-mahjongg/src.nix b/pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-mahjongg/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-mahjongg/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-mines/default.nix b/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-mines/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-mines/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-mines/src.nix b/pkgs/desktops/gnome-3/games/gnome-mines/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-mines/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-mines/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-nibbles/default.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-nibbles/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-nibbles/src.nix b/pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-nibbles/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-nibbles/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-robots/default.nix b/pkgs/desktops/gnome-3/games/gnome-robots/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-robots/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-robots/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-robots/src.nix b/pkgs/desktops/gnome-3/games/gnome-robots/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-robots/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-robots/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-sudoku/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-sudoku/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-sudoku/src.nix b/pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-sudoku/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-sudoku/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-taquin/default.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-taquin/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-taquin/src.nix b/pkgs/desktops/gnome-3/games/gnome-taquin/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-taquin/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-taquin/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-tetravex/default.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-tetravex/default.nix
rename to pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/gnome-tetravex/src.nix b/pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/gnome-tetravex/src.nix
rename to pkgs/desktops/gnome-3/games/gnome-tetravex/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/hitori/default.nix b/pkgs/desktops/gnome-3/games/hitori/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/hitori/default.nix
rename to pkgs/desktops/gnome-3/games/hitori/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/hitori/src.nix b/pkgs/desktops/gnome-3/games/hitori/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/hitori/src.nix
rename to pkgs/desktops/gnome-3/games/hitori/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/iagno/default.nix b/pkgs/desktops/gnome-3/games/iagno/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/iagno/default.nix
rename to pkgs/desktops/gnome-3/games/iagno/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/iagno/src.nix b/pkgs/desktops/gnome-3/games/iagno/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/iagno/src.nix
rename to pkgs/desktops/gnome-3/games/iagno/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/lightsoff/default.nix b/pkgs/desktops/gnome-3/games/lightsoff/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/lightsoff/default.nix
rename to pkgs/desktops/gnome-3/games/lightsoff/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/lightsoff/src.nix b/pkgs/desktops/gnome-3/games/lightsoff/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/lightsoff/src.nix
rename to pkgs/desktops/gnome-3/games/lightsoff/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/quadrapassel/default.nix b/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/quadrapassel/default.nix
rename to pkgs/desktops/gnome-3/games/quadrapassel/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/quadrapassel/src.nix b/pkgs/desktops/gnome-3/games/quadrapassel/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/quadrapassel/src.nix
rename to pkgs/desktops/gnome-3/games/quadrapassel/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/swell-foop/default.nix b/pkgs/desktops/gnome-3/games/swell-foop/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/swell-foop/default.nix
rename to pkgs/desktops/gnome-3/games/swell-foop/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/swell-foop/src.nix b/pkgs/desktops/gnome-3/games/swell-foop/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/swell-foop/src.nix
rename to pkgs/desktops/gnome-3/games/swell-foop/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/tali/default.nix b/pkgs/desktops/gnome-3/games/tali/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/tali/default.nix
rename to pkgs/desktops/gnome-3/games/tali/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/games/tali/src.nix b/pkgs/desktops/gnome-3/games/tali/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/games/tali/src.nix
rename to pkgs/desktops/gnome-3/games/tali/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/installer.nix b/pkgs/desktops/gnome-3/installer.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/installer.nix
rename to pkgs/desktops/gnome-3/installer.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch b/pkgs/desktops/gnome-3/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch
rename to pkgs/desktops/gnome-3/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch
diff --git a/pkgs/desktops/gnome-3/3.24/misc/california/default.nix b/pkgs/desktops/gnome-3/misc/california/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/california/default.nix
rename to pkgs/desktops/gnome-3/misc/california/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/geary/default.nix b/pkgs/desktops/gnome-3/misc/geary/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/geary/default.nix
rename to pkgs/desktops/gnome-3/misc/geary/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gexiv2/default.nix b/pkgs/desktops/gnome-3/misc/gexiv2/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gexiv2/default.nix
rename to pkgs/desktops/gnome-3/misc/gexiv2/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gfbgraph/default.nix b/pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gfbgraph/default.nix
rename to pkgs/desktops/gnome-3/misc/gfbgraph/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gitg/default.nix b/pkgs/desktops/gnome-3/misc/gitg/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gitg/default.nix
rename to pkgs/desktops/gnome-3/misc/gitg/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gitg/src.nix b/pkgs/desktops/gnome-3/misc/gitg/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gitg/src.nix
rename to pkgs/desktops/gnome-3/misc/gitg/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-autoar/default.nix
rename to pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-autoar/src.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-autoar/src.nix
rename to pkgs/desktops/gnome-3/misc/gnome-autoar/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-packagekit/default.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-packagekit/default.nix
rename to pkgs/desktops/gnome-3/misc/gnome-packagekit/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-packagekit/src.nix b/pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-packagekit/src.nix
rename to pkgs/desktops/gnome-3/misc/gnome-packagekit/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0001-Search-for-themes-and-icons-in-system-data-dirs.patch
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0002-Don-t-show-multiple-entries-for-a-single-theme.patch
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/0003-Create-config-dir-if-it-doesn-t-exist.patch
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/default.nix b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/default.nix
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/find_gsettings.patch b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/find_gsettings.patch
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/find_gsettings.patch
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/src.nix b/pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-tweak-tool/src.nix
rename to pkgs/desktops/gnome-3/misc/gnome-tweak-tool/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gnome-video-effects/default.nix
rename to pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gpaste/default.nix
rename to pkgs/desktops/gnome-3/misc/gpaste/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gspell/default.nix b/pkgs/desktops/gnome-3/misc/gspell/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gspell/default.nix
rename to pkgs/desktops/gnome-3/misc/gspell/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gspell/src.nix b/pkgs/desktops/gnome-3/misc/gspell/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gspell/src.nix
rename to pkgs/desktops/gnome-3/misc/gspell/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gtkhtml/default.nix b/pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gtkhtml/default.nix
rename to pkgs/desktops/gnome-3/misc/gtkhtml/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/gtkhtml/src.nix b/pkgs/desktops/gnome-3/misc/gtkhtml/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/gtkhtml/src.nix
rename to pkgs/desktops/gnome-3/misc/gtkhtml/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libgames-support/default.nix b/pkgs/desktops/gnome-3/misc/libgames-support/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libgames-support/default.nix
rename to pkgs/desktops/gnome-3/misc/libgames-support/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libgda/default.nix b/pkgs/desktops/gnome-3/misc/libgda/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libgda/default.nix
rename to pkgs/desktops/gnome-3/misc/libgda/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libgda/src.nix b/pkgs/desktops/gnome-3/misc/libgda/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libgda/src.nix
rename to pkgs/desktops/gnome-3/misc/libgda/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libgit2-glib/default.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libgit2-glib/default.nix
rename to pkgs/desktops/gnome-3/misc/libgit2-glib/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libgit2-glib/src.nix b/pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libgit2-glib/src.nix
rename to pkgs/desktops/gnome-3/misc/libgit2-glib/src.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/libmediaart/default.nix b/pkgs/desktops/gnome-3/misc/libmediaart/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/libmediaart/default.nix
rename to pkgs/desktops/gnome-3/misc/libmediaart/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/pidgin/default.nix b/pkgs/desktops/gnome-3/misc/pidgin/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/pidgin/default.nix
rename to pkgs/desktops/gnome-3/misc/pidgin/default.nix
diff --git a/pkgs/desktops/gnome-3/3.24/misc/pomodoro/default.nix b/pkgs/desktops/gnome-3/misc/pomodoro/default.nix
similarity index 100%
rename from pkgs/desktops/gnome-3/3.24/misc/pomodoro/default.nix
rename to pkgs/desktops/gnome-3/misc/pomodoro/default.nix
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 74c9df866007..e929ef3a9c15 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17954,9 +17954,7 @@ with pkgs;
     libcanberra = self.libcanberra_gtk2;
   });
 
-  gnome3_24 = recurseIntoAttrs (callPackage ../desktops/gnome-3/3.24 { });
-
-  gnome3 = gnome3_24;
+  gnome3 = recurseIntoAttrs (callPackage ../desktops/gnome-3 { });
 
   gnomeExtensions = {
     caffeine = callPackage ../desktops/gnome-3/extensions/caffeine { };

From 43404d9acf210d940ba5bf015b57b34c8a4a9fb9 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sun, 24 Sep 2017 13:16:38 +0200
Subject: [PATCH 288/533] systemd-tmpfiles: fix docs

We have been doing this since 4e4161c21268d6952f0f0f5130414e30dcf5cd97
---
 nixos/modules/system/boot/systemd.nix | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index d12d0a06f444..ed1f5d20afb6 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -639,11 +639,7 @@ in
         Rules for creating and cleaning up temporary files
         automatically. See
         <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-        for the exact format. You should not use this option to create
-        files required by systemd services, since there is no
-        guarantee that <command>systemd-tmpfiles</command> runs when
-        the system is reconfigured using
-        <command>nixos-rebuild</command>.
+        for the exact format.
       '';
     };
 

From 9fc87cc376427ab5a13ebb779452175c426f9f53 Mon Sep 17 00:00:00 2001
From: Stefan Siegl <stesie@brokenpipe.de>
Date: Sun, 24 Sep 2017 12:37:54 +0200
Subject: [PATCH 289/533] owncloud-client: 2.3.2 -> 2.3.3

---
 pkgs/applications/networking/owncloud-client/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index e0e8622e6431..814dc1bf69a9 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "owncloud-client-${version}";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
-    sha256 = "02az9wq0d1vsgcdipddipdjwj2faf7jag8hizwd0ha3sjlmrs6d1";
+    sha256 = "1r5ddln1wc9iyjizgqb104i0r6qhzsmm2wdnxfaif119cv0vphda";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];

From f069ee7af68ecb6aea4ac9c3cdbd234e714b726e Mon Sep 17 00:00:00 2001
From: zimbatm <zimbatm@zimbatm.com>
Date: Sun, 24 Sep 2017 11:56:24 +0100
Subject: [PATCH 290/533] kubernetes-helm: 2.5.1 -> 2.6.1

---
 pkgs/applications/networking/cluster/helm/default.nix | 6 +++---
 pkgs/top-level/all-packages.nix                       | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index 0ac872c35c90..6767a0bd7240 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -4,10 +4,10 @@ let
          then "linux-amd64"
          else "darwin-amd64";
   checksum = if stdenv.isLinux
-             then "1hkr5s1c72sqf156lk6gsnbfs75jnpqs42f64a7mz046c06kv98f"
-             else "00xw0c66x58g915989fc72mwliysxi5glrkdafi3gcfmlhrnc68i";
+             then "1i22givr52kgr76dd2azcg9avgh70wiw5dcpmmyychms2ynxi42y"
+             else "0phhy3si86ilc6051zfgn8jnniy5lygf1r2gysjpcyfbrc5pw3hj";
   pname = "helm";
-  version = "2.5.1";
+  version = "2.6.1";
 in
 stdenv.mkDerivation {
   name = "${pname}-${version}";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e929ef3a9c15..d406141c41df 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14794,8 +14794,6 @@ with pkgs;
 
   hello = callPackage ../applications/misc/hello { };
 
-  kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
-
   helmholtz = callPackage ../applications/audio/pd-plugins/helmholtz { };
 
   heme = callPackage ../applications/editors/heme { };
@@ -15121,6 +15119,8 @@ with pkgs;
 
   kubernetes = callPackage ../applications/networking/cluster/kubernetes {  };
 
+  kubernetes-helm = callPackage ../applications/networking/cluster/helm { };
+
   kupfer = callPackage ../applications/misc/kupfer { };
 
   lame = callPackage ../development/libraries/lame { };

From 12b1852301853c2440b5f81df62426b87d5a8341 Mon Sep 17 00:00:00 2001
From: Kranium Gikos Mendoza <kranium@gikos.net>
Date: Sun, 24 Sep 2017 21:42:49 +1000
Subject: [PATCH 291/533] gpxsee: 4.9 -> 4.14

---
 pkgs/applications/misc/gpxsee/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 6da16545aa71..00735624ad96 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "gpxsee-${version}";
-  version = "4.9";
+  version = "4.14";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "0jk99yhrms1wzqpcnsjydcl2nysidv639s2j7l53yp60g0zz8174";
+    sha256 = "0yv3hcs5b8a88mp24h8r2sn69phwrahdff5pp74lz24270il3jgb";
   };
 
   nativeBuildInputs = [ qmake qttools ];

From f43baf94a3d323a4410e28a7db35c96fb62b7765 Mon Sep 17 00:00:00 2001
From: Kranium Gikos Mendoza <kranium@gikos.net>
Date: Sun, 24 Sep 2017 21:40:00 +1000
Subject: [PATCH 292/533] pick: 1.7.0 -> 1.9.0

---
 pkgs/tools/misc/pick/default.nix | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/pkgs/tools/misc/pick/default.nix b/pkgs/tools/misc/pick/default.nix
index 5fda26bacad1..747c98376410 100644
--- a/pkgs/tools/misc/pick/default.nix
+++ b/pkgs/tools/misc/pick/default.nix
@@ -1,23 +1,19 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, ncurses }:
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, pkgconfig }:
 
 stdenv.mkDerivation rec {
   name = "pick-${version}";
-  version = "1.7.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "calleerlandsson";
     repo = "pick";
     rev = "v${version}";
-    sha256 = "1x7ql530rj4yj50dzp8526mz92g4hhqxnig1qgiq3h3k815p31qb";
+    sha256 = "0s0mn9iz17ldhvahggh9rsmgfrjh0kvk5bh4p9xhxcn7rcp0h5ka";
   };
 
   buildInputs = [ ncurses ];
 
-  nativeBuildInputs = [ autoreconfHook ];
-
-  postPatch = ''
-    sed -i -e 's/\[curses]/\[ncurses]/g' configure.ac
-  '';
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;

From 0a5d4ca5a8cb1cfdf8bcf7def11e3d1a86d3863b Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Sun, 24 Sep 2017 13:51:20 +0200
Subject: [PATCH 293/533] vimPlugins.xptemplate: init at 2017-04-18

---
 pkgs/misc/vim-plugins/default.nix      | 11 +++++++++++
 pkgs/misc/vim-plugins/vim-plugin-names |  1 +
 2 files changed, 12 insertions(+)

diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 24dd868d64dc..7944533c1129 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -652,6 +652,17 @@ rec {
 
   };
 
+  xptemplate = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "xptemplate-2017-04-18";
+    src = fetchgit {
+      url = "https://github.com/drmingdrmer/xptemplate";
+      rev = "52d84e361e9da53c4309b0d96a1ab667c67b7f07";
+      sha256 = "195r5p4cyiip64zmgcih56c59gwm0irgid6cdrqc2y747gyxmf7m";
+    };
+    dependencies = [];
+
+  };
+
   neco-ghc = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "neco-ghc-2017-07-22";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index f1983e3eeb6a..7e9802e050ed 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -45,6 +45,7 @@
 "github:digitaltoad/vim-jade"
 "github:dleonard0/pony-vim-syntax"
 "github:dracula/vim"
+"github:drmingdrmer/xptemplate"
 "github:eagletmt/neco-ghc"
 "github:editorconfig/editorconfig-vim"
 "github:eikenb/acp"

From d7d33bd17c252b3831f597450eeeeca27d370ff8 Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Sun, 24 Sep 2017 20:19:44 +1000
Subject: [PATCH 294/533] guile-modules: rename top level attributes to be
 consistent

---
 pkgs/development/guile-modules/guile-cairo/default.nix | 4 ++--
 pkgs/development/guile-modules/guile-gnome/default.nix | 8 ++++----
 pkgs/development/tools/guile/g-wrap/default.nix        | 4 ++--
 pkgs/top-level/all-packages.nix                        | 8 ++++----
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index 6ba1a59d545a..ab89fff14af8 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, guile, pkgconfig, cairo, expat, guile_lib }:
+{ fetchurl, stdenv, guile, pkgconfig, cairo, expat, guile-lib }:
 
 stdenv.mkDerivation rec {
   name = "guile-cairo-1.4.1";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ guile pkgconfig cairo expat ]
-    ++ stdenv.lib.optional doCheck guile_lib;
+    ++ stdenv.lib.optional doCheck guile-lib;
 
   doCheck = true;
 
diff --git a/pkgs/development/guile-modules/guile-gnome/default.nix b/pkgs/development/guile-modules/guile-gnome/default.nix
index ec7723f5b7ef..aae44e2f6d84 100644
--- a/pkgs/development/guile-modules/guile-gnome/default.nix
+++ b/pkgs/development/guile-modules/guile-gnome/default.nix
@@ -1,7 +1,7 @@
-{ fetchurl, stdenv, guile, guile_lib, gwrap
+{ fetchurl, stdenv, guile, guile-lib, gwrap
 , pkgconfig, gconf, glib, gnome_vfs, gtk2
 , libglade, libgnome, libgnomecanvas, libgnomeui
-, pango, guileCairo, autoconf, automake, texinfo }:
+, pango, guile-cairo, autoconf, automake, texinfo }:
 
 stdenv.mkDerivation rec {
   name = "guile-gnome-platform-2.16.4";
@@ -27,8 +27,8 @@ stdenv.mkDerivation rec {
     libgnomecanvas
     libgnomeui
     pango
-    guileCairo
-  ] ++ stdenv.lib.optional doCheck guile_lib;
+    guile-cairo
+  ] ++ stdenv.lib.optional doCheck guile-lib;
 
   preConfigure = ''
       ./autogen.sh
diff --git a/pkgs/development/tools/guile/g-wrap/default.nix b/pkgs/development/tools/guile/g-wrap/default.nix
index 030693714f07..da664093d8ac 100644
--- a/pkgs/development/tools/guile/g-wrap/default.nix
+++ b/pkgs/development/tools/guile/g-wrap/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, guile, libffi, pkgconfig, glib, guile_lib }:
+{ fetchurl, stdenv, guile, libffi, pkgconfig, glib, guile-lib }:
 
 stdenv.mkDerivation rec {
   name = "g-wrap-1.9.15";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
 
   # Note: Glib support is optional, but it's quite useful (e.g., it's
   # used by Guile-GNOME).
-  buildInputs = [ guile pkgconfig glib guile_lib ];
+  buildInputs = [ guile pkgconfig glib guile-lib ];
 
   propagatedBuildInputs = [ libffi ];
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d406141c41df..8050fe6a4c4c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6708,18 +6708,18 @@ with pkgs;
 
   jython = callPackage ../development/interpreters/jython {};
 
-  guileCairo = callPackage ../development/guile-modules/guile-cairo { };
+  guile-cairo = callPackage ../development/guile-modules/guile-cairo { };
 
   guile-fibers = callPackage ../development/guile-modules/guile-fibers { };
 
-  guileGnome = callPackage ../development/guile-modules/guile-gnome {
+  guile-gnome = callPackage ../development/guile-modules/guile-gnome {
     gconf = gnome2.GConf;
     inherit (gnome2) gnome_vfs libglade libgnome libgnomecanvas libgnomeui;
   };
 
-  guile_lib = callPackage ../development/guile-modules/guile-lib { };
+  guile-lib = callPackage ../development/guile-modules/guile-lib { };
 
-  guile_ncurses = callPackage ../development/guile-modules/guile-ncurses { };
+  guile-ncurses = callPackage ../development/guile-modules/guile-ncurses { };
 
   guile-opengl = callPackage ../development/guile-modules/guile-opengl { };
 

From 796b69318f422bf3a3275ca2cc82aff252d972c4 Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Sun, 24 Sep 2017 20:23:10 +1000
Subject: [PATCH 295/533] guile-modules: add vyp as maintainer to unmaintained
 guile modules

---
 pkgs/development/guile-modules/guile-cairo/default.nix   | 2 +-
 pkgs/development/guile-modules/guile-lib/default.nix     | 2 +-
 pkgs/development/guile-modules/guile-ncurses/default.nix | 2 +-
 pkgs/development/guile-modules/guile-opengl/default.nix  | 1 +
 pkgs/development/guile-modules/guile-sdl/default.nix     | 1 +
 pkgs/development/guile-modules/guile-xcb/default.nix     | 1 +
 6 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index ab89fff14af8..574dfad1aacd 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
     homepage = http://home.gna.org/guile-cairo/;
 
-    maintainers = [ ];
+    maintainers = [ stdenv.lib.maintainers.vyp ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index 62482cec7e6c..0c5c84925cdb 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     homepage = http://www.nongnu.org/guile-lib/;
     license = stdenv.lib.licenses.gpl3Plus;
 
-    maintainers = [ ];
+    maintainers = [ stdenv.lib.maintainers.vyp ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/development/guile-modules/guile-ncurses/default.nix b/pkgs/development/guile-modules/guile-ncurses/default.nix
index bd6d90751308..4ad0adcf5bdd 100644
--- a/pkgs/development/guile-modules/guile-ncurses/default.nix
+++ b/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
     license = stdenv.lib.licenses.lgpl3Plus;
 
-    maintainers = [ ];
+    maintainers = [ stdenv.lib.maintainers.vyp ];
     platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
   };
 }
diff --git a/pkgs/development/guile-modules/guile-opengl/default.nix b/pkgs/development/guile-modules/guile-opengl/default.nix
index c7704d87fad2..b67d38020d14 100644
--- a/pkgs/development/guile-modules/guile-opengl/default.nix
+++ b/pkgs/development/guile-modules/guile-opengl/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation rec {
     description = "Guile binding for the OpenGL graphics API";
     homepage    = "http://gnu.org/s/guile-opengl";
     license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
     platforms   = platforms.linux;
   };
 
diff --git a/pkgs/development/guile-modules/guile-sdl/default.nix b/pkgs/development/guile-modules/guile-sdl/default.nix
index e2bfe485c5b8..219e440e7b01 100644
--- a/pkgs/development/guile-modules/guile-sdl/default.nix
+++ b/pkgs/development/guile-modules/guile-sdl/default.nix
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     description = "Guile bindings for SDL";
     homepage    = "http://gnu.org/s/guile-sdl";
     license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
     platforms   = platforms.linux;
   };
 
diff --git a/pkgs/development/guile-modules/guile-xcb/default.nix b/pkgs/development/guile-modules/guile-xcb/default.nix
index a60a10c5c042..bd440b4b7baf 100644
--- a/pkgs/development/guile-modules/guile-xcb/default.nix
+++ b/pkgs/development/guile-modules/guile-xcb/default.nix
@@ -7,6 +7,7 @@ stdenv.mkDerivation {
     description = "XCB bindings for Guile";
     homepage    = "http://www.markwitmer.com/guile-xcb/guile-xcb.html";
     license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
     platforms   = platforms.linux;
   };
 

From 3579d7e2b2fb7befcbebc473115c230d3c0781c0 Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Sun, 24 Sep 2017 21:03:56 +1000
Subject: [PATCH 296/533] guile-modules: stylistic nix expression changes to
 modules with sole maintainer vyp

---
 .../guile-modules/guile-cairo/default.nix     | 38 ++++++-------
 .../guile-modules/guile-lib/default.nix       | 49 ++++++++--------
 .../guile-modules/guile-ncurses/default.nix   | 57 ++++++++++---------
 .../guile-modules/guile-opengl/default.nix    | 23 ++++----
 .../guile-modules/guile-sdl/default.nix       | 23 ++++----
 .../guile-modules/guile-xcb/default.nix       | 25 ++++----
 6 files changed, 110 insertions(+), 105 deletions(-)

diff --git a/pkgs/development/guile-modules/guile-cairo/default.nix b/pkgs/development/guile-modules/guile-cairo/default.nix
index 574dfad1aacd..a41d546e9cf0 100644
--- a/pkgs/development/guile-modules/guile-cairo/default.nix
+++ b/pkgs/development/guile-modules/guile-cairo/default.nix
@@ -1,7 +1,8 @@
-{ fetchurl, stdenv, guile, pkgconfig, cairo, expat, guile-lib }:
+{ stdenv, fetchurl, pkgconfig, guile, guile-lib, cairo, expat }:
 
 stdenv.mkDerivation rec {
-  name = "guile-cairo-1.4.1";
+  name = "guile-cairo-${version}";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "http://download.gna.org/guile-cairo/${name}.tar.gz";
@@ -13,25 +14,20 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  meta = {
-    description = "Guile-Cairo, Cairo bindings for GNU Guile";
+  meta = with stdenv.lib; {
+    description = "Cairo bindings for GNU Guile";
+    longDescription = ''
+      Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
 
-    longDescription =
-      '' Guile-Cairo wraps the Cairo graphics library for Guile Scheme.
-
-         Guile-Cairo is complete, wrapping almost all of the Cairo API.  It
-         is API stable, providing a firm base on which to do graphics work.
-         Finally, and importantly, it is pleasant to use.  You get a powerful
-         and well-maintained graphics library with all of the benefits of
-         Scheme: memory management, exceptions, macros, and a dynamic
-         programming environment.
-      '';
-
-    license = stdenv.lib.licenses.lgpl3Plus;
-
-    homepage = http://home.gna.org/guile-cairo/;
-
-    maintainers = [ stdenv.lib.maintainers.vyp ];
-    platforms = stdenv.lib.platforms.linux;
+      Guile-Cairo is complete, wrapping almost all of the Cairo API.  It is API
+      stable, providing a firm base on which to do graphics work.  Finally, and
+      importantly, it is pleasant to use.  You get a powerful and well
+      maintained graphics library with all of the benefits of Scheme: memory
+      management, exceptions, macros, and a dynamic programming environment.
+    '';
+    homepage = "http://home.gna.org/guile-cairo/";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/guile-modules/guile-lib/default.nix b/pkgs/development/guile-modules/guile-lib/default.nix
index 0c5c84925cdb..95741e07600a 100644
--- a/pkgs/development/guile-modules/guile-lib/default.nix
+++ b/pkgs/development/guile-modules/guile-lib/default.nix
@@ -1,44 +1,45 @@
-{stdenv, fetchurl, guile, texinfo, pkgconfig}:
+{ stdenv, fetchurl, guile, texinfo, pkgconfig }:
 
 assert stdenv ? cc && stdenv.cc.isGNU;
 
-stdenv.mkDerivation rec {
-  name = "guile-lib-0.2.2";
+let
+  name = "guile-lib-${version}";
+  version = "0.2.2";
+in stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "mirror://savannah/guile-lib/${name}.tar.gz";
     sha256 = "1f9n2b5b5r75lzjinyk6zp6g20g60msa0jpfrk5hhg4j8cy0ih4b";
   };
 
-  nativeBuildInputs = [pkgconfig];
-  buildInputs = [guile texinfo];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ guile texinfo ];
 
-  # One test doesn't seem to be compatible with guile_2_2
+  # One test doesn't seem to be compatible with guile_2_2.
   patchPhase = ''
     sed -i -e '/sxml.ssax.scm/d' unit-tests/Makefile*
   '';
 
   doCheck = true;
 
-  preCheck =
+  preCheck = ''
     # Make `libgcc_s.so' visible for `pthread_cancel'.
-    '' export LD_LIBRARY_PATH="$(dirname $(echo ${stdenv.cc.cc.lib}/lib*/libgcc_s.so)):$LD_LIBRARY_PATH"
+    export LD_LIBRARY_PATH=\
+    "$(dirname $(echo ${stdenv.cc.cc.lib}/lib*/libgcc_s.so)):$LD_LIBRARY_PATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A collection of useful Guile Scheme modules";
+    longDescription = ''
+      guile-lib is intended as an accumulation place for pure-scheme Guile
+      modules, allowing for people to cooperate integrating their generic Guile
+      modules into a coherent library.  Think "a down-scaled, limited-scope CPAN
+      for Guile".
     '';
-
-  meta = {
-    description = "Guile-Library, a collection of useful Guile Scheme modules";
-
-    longDescription =
-      '' guile-lib is intended as an accumulation place for pure-scheme Guile
-         modules, allowing for people to cooperate integrating their generic
-         Guile modules into a coherent library.  Think "a down-scaled,
-         limited-scope CPAN for Guile".
-      '';
-
-    homepage = http://www.nongnu.org/guile-lib/;
-    license = stdenv.lib.licenses.gpl3Plus;
-
-    maintainers = [ stdenv.lib.maintainers.vyp ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    homepage = "http://www.nongnu.org/guile-lib/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.gnu;
   };
 }
diff --git a/pkgs/development/guile-modules/guile-ncurses/default.nix b/pkgs/development/guile-modules/guile-ncurses/default.nix
index 4ad0adcf5bdd..152a34883045 100644
--- a/pkgs/development/guile-modules/guile-ncurses/default.nix
+++ b/pkgs/development/guile-modules/guile-ncurses/default.nix
@@ -1,7 +1,10 @@
-{ fetchurl, stdenv, pkgconfig, guile, ncurses, libffi }:
+{ stdenv, fetchurl, pkgconfig, guile, ncurses, libffi }:
 
-stdenv.mkDerivation rec {
-  name = "guile-ncurses-1.7";
+let
+  name = "guile-ncurses-${version}";
+  version = "1.7";
+in stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "mirror://gnu/guile-ncurses/${name}.tar.gz";
@@ -11,31 +14,31 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ guile ncurses libffi ];
 
-  preConfigure =
-    '' configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site" '';
+  preConfigure = ''
+    configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site"
+  '';
 
-  postFixup =
-    '' for f in $out/share/guile/site/ncurses/**.scm; do \
-           substituteInPlace $f \
-             --replace "libguile-ncurses" "$out/lib/libguile-ncurses"; \
-       done
+  postFixup = ''
+    for f in $out/share/guile/site/ncurses/**.scm; do \
+      substituteInPlace $f \
+        --replace "libguile-ncurses" "$out/lib/libguile-ncurses"; \
+    done
+  '';
+
+  # XXX: 1 of 65 tests failed.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Scheme interface to the NCurses libraries";
+    longDescription = ''
+      GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
+      provides functions for creating text user interfaces.  The text user
+      interface functionality is built on the ncurses libraries: curses, form,
+      panel, and menu.
     '';
-
-  doCheck = false;  # XXX: 1 of 65 tests failed
-
-  meta = {
-    description = "GNU Guile-Ncurses, Scheme interface to the NCurses libraries";
-
-    longDescription =
-      '' GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
-         provides functions for creating text user interfaces.  The text user
-         interface functionality is built on the ncurses libraries: curses,
-         form, panel, and menu.
-      '';
-
-    license = stdenv.lib.licenses.lgpl3Plus;
-
-    maintainers = [ stdenv.lib.maintainers.vyp ];
-    platforms = stdenv.lib.platforms.gnu;  # arbitrary choice
+    homepage = "https://www.gnu.org/software/guile-ncurses/";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.gnu;
   };
 }
diff --git a/pkgs/development/guile-modules/guile-opengl/default.nix b/pkgs/development/guile-modules/guile-opengl/default.nix
index b67d38020d14..f854c71c240f 100644
--- a/pkgs/development/guile-modules/guile-opengl/default.nix
+++ b/pkgs/development/guile-modules/guile-opengl/default.nix
@@ -1,15 +1,10 @@
 { stdenv, fetchurl, pkgconfig, guile }:
 
-stdenv.mkDerivation rec {
-  name = "guile-opengl-0.1.0";
-
-  meta = with stdenv.lib; {
-    description = "Guile binding for the OpenGL graphics API";
-    homepage    = "http://gnu.org/s/guile-opengl";
-    license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ vyp ];
-    platforms   = platforms.linux;
-  };
+let
+  name = "guile-opengl-${version}";
+  version = "0.1.0";
+in stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
     url = "mirror://gnu/guile-opengl/${name}.tar.gz";
@@ -17,4 +12,12 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig guile ];
+
+  meta = with stdenv.lib; {
+    description = "Guile bindings for the OpenGL graphics API";
+    homepage = "http://gnu.org/s/guile-opengl";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/development/guile-modules/guile-sdl/default.nix b/pkgs/development/guile-modules/guile-sdl/default.nix
index 219e440e7b01..a7f703028bb3 100644
--- a/pkgs/development/guile-modules/guile-sdl/default.nix
+++ b/pkgs/development/guile-modules/guile-sdl/default.nix
@@ -3,15 +3,8 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "guile-sdl-0.5.1";
-
-  meta = with stdenv.lib; {
-    description = "Guile bindings for SDL";
-    homepage    = "http://gnu.org/s/guile-sdl";
-    license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ vyp ];
-    platforms   = platforms.linux;
-  };
+  name = "guile-sdl-${version}";
+  version = "0.5.1";
 
   src = fetchurl {
     url = "mirror://gnu/guile-sdl/${name}.tar.xz";
@@ -20,9 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig guile ];
 
-  buildInputs = [
-    SDL.dev SDL_image SDL_ttf SDL_mixer
-  ];
+  buildInputs = [ SDL.dev SDL_image SDL_ttf SDL_mixer ];
 
   GUILE_AUTO_COMPILE = 0;
 
@@ -32,4 +23,12 @@ stdenv.mkDerivation rec {
       paths = buildInputs;
     };
   in "SDLMINUSI=-I${sdl}/include/SDL";
+
+  meta = with stdenv.lib; {
+    description = "Guile bindings for SDL";
+    homepage = "http://gnu.org/s/guile-sdl";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/development/guile-modules/guile-xcb/default.nix b/pkgs/development/guile-modules/guile-xcb/default.nix
index bd440b4b7baf..e79a4bec8050 100644
--- a/pkgs/development/guile-modules/guile-xcb/default.nix
+++ b/pkgs/development/guile-modules/guile-xcb/default.nix
@@ -1,18 +1,13 @@
 { stdenv, fetchurl, pkgconfig, guile, texinfo }:
 
-stdenv.mkDerivation {
-  name = "guile-xcb-1.3";
-
-  meta = with stdenv.lib; {
-    description = "XCB bindings for Guile";
-    homepage    = "http://www.markwitmer.com/guile-xcb/guile-xcb.html";
-    license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ vyp ];
-    platforms   = platforms.linux;
-  };
+let
+  name = "guile-xcb-${version}";
+  version = "1.3";
+in stdenv.mkDerivation {
+  inherit name;
 
   src = fetchurl {
-    url = "http://www.markwitmer.com/dist/guile-xcb-1.3.tar.gz";
+    url = "http://www.markwitmer.com/dist/${name}.tar.gz";
     sha256 = "04dvbqdrrs67490gn4gkq9zk8mqy3mkls2818ha4p0ckhh0pm149";
   };
 
@@ -24,4 +19,12 @@ stdenv.mkDerivation {
       --with-guile-site-ccache-dir=$out/share/guile/site
     ";
   '';
+
+  meta = with stdenv.lib; {
+    description = "XCB bindings for Guile";
+    homepage = "http://www.markwitmer.com/guile-xcb/guile-xcb.html";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ vyp ];
+    platforms = platforms.linux;
+  };
 }

From 3491f6a873ea2e9595ad771dfdd77b12ca3ba0e4 Mon Sep 17 00:00:00 2001
From: Matthias Beyer <mail@beyermatthias.de>
Date: Sun, 24 Sep 2017 15:06:28 +0200
Subject: [PATCH 297/533] mutt: 1.9.0 -> 1.9.1

---
 pkgs/applications/networking/mailreaders/mutt/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 066338766bcf..b3a68a7fcb98 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -22,11 +22,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "mutt-${version}";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${name}.tar.gz";
-    sha256 = "1m72z5schbagd0a00fv8q0nrnkz9zrgvmdb5yplnmwm1sfapavgc";
+    sha256 = "1c8vv4anl555a03pbnwf8wnf0d8pcnd4p35y3q8f5ikkcflq76vl";
   };
 
   patchPhase = optionalString (openssl != null) ''

From 662478bbef8df5bd65e1b469a6d0bafec6bd4b12 Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Sun, 24 Sep 2017 23:45:11 +1000
Subject: [PATCH 298/533] guile-modules: add aliases for renamed attributes for
 backwards compatibility

---
 pkgs/top-level/aliases.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index c40dcb63bf79..4fafdfb726cb 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -66,6 +66,10 @@ mapAliases (rec {
   gst_plugins_bad = gst-plugins-bad;  # added 2017-02
   gst_plugins_ugly = gst-plugins-ugly;  # added 2017-02
   gst_python = gst-python;  # added 2017-02
+  guileCairo = guile-cairo; # added 2017-09-24
+  guileGnome = guile-gnome; # added 2017-09-24
+  guile_lib = guile-lib; # added 2017-09-24
+  guile_ncurses = guile-ncurses; # added 2017-09-24
   gupnptools = gupnp-tools;  # added 2015-12-19
   gnustep-make = gnustep.make; # added 2016-7-6
   htmlTidy = html-tidy;  # added 2014-12-06

From 4d4c32504a1fe24c94b9823d0fac018d4ad9c690 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Sun, 24 Sep 2017 14:47:14 +0100
Subject: [PATCH 299/533] termite: use wrapGAppsHook

---
 pkgs/applications/misc/termite/default.nix | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/misc/termite/default.nix b/pkgs/applications/misc/termite/default.nix
index 9aba91ba5411..cf99304473c1 100644
--- a/pkgs/applications/misc/termite/default.nix
+++ b/pkgs/applications/misc/termite/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchgit, pkgconfig, vte, gtk3, ncurses, makeWrapper, symlinkJoin
+{ stdenv, fetchgit, pkgconfig, vte, gtk3, ncurses, makeWrapper, wrapGAppsHook, symlinkJoin
 , configFile ? null
 }:
 
-let 
+let
   version = "12";
   termite = stdenv.mkDerivation {
     name = "termite-${version}";
@@ -17,9 +17,9 @@ let
 
     makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ];
 
-    buildInputs = [ pkgconfig vte gtk3 ncurses ];
+    buildInputs = [ vte gtk3 ncurses ];
 
-    nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ wrapGAppsHook pkgconfig ];
 
     outputs = [ "out" "terminfo" ];
 
@@ -29,9 +29,6 @@ let
 
       mkdir -p $out/nix-support
       echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
-
-      wrapProgram $out/bin/termite \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
     '';
 
     meta = with stdenv.lib; {

From d42c06282120ac9378717a331493b4ecc5517055 Mon Sep 17 00:00:00 2001
From: Richard Ipsum <richardipsum@fastmail.co.uk>
Date: Sun, 24 Sep 2017 15:02:02 +0100
Subject: [PATCH 300/533] luxio: init at 13

---
 pkgs/top-level/lua-packages.nix | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 91efa306ce4e..929949ab72dd 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -8,7 +8,7 @@
 { fetchurl, fetchzip, stdenv, lua, callPackage, unzip, zziplib, pkgconfig, libtool
 , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat, cairo
 , perl, gtk2, python, glib, gobjectIntrospection, libevent, zlib, autoreconfHook
-, fetchFromGitHub, libmpack
+, fetchFromGitHub, libmpack, which
 }:
 
 let
@@ -270,6 +270,28 @@ let
     };
   };
 
+  luxio = buildLuaPackage rec {
+    name = "luxio-${version}";
+    version = "13";
+    src = fetchurl {
+      url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-13.tar.bz2";
+      sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
+    };
+    buildInputs = [ which pkgconfig ];
+    meta = {
+      platforms = stdenv.lib.platforms.unix;
+      license = stdenv.lib.licenses.mit;
+      description = "Lightweight UNIX I/O and POSIX binding for Lua";
+    };
+    preBuild = ''
+      makeFlagsArray=(
+        INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
+        INST_LUADIR="$out/share/lua/${lua.luaversion}"
+        LUA_BINDIR="$out/bin"
+        );
+    '';
+  };
+
   luazip = buildLuaPackage rec {
     name = "zip-${version}";
     version = "1.2.3";

From 412fa16bffcb915f796e95b12281bc568be7c1ae Mon Sep 17 00:00:00 2001
From: Kranium Gikos <kranium@gikos.net>
Date: Mon, 25 Sep 2017 00:37:17 +1000
Subject: [PATCH 301/533] influxdb sevice: make postStart test work with
 non-localhost configurations (#29734)

make postStart test work with non-localhost configurations
---
 nixos/modules/services/databases/influxdb.nix | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index eeab33309fda..15b711f57b13 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -170,11 +170,16 @@ in
         mkdir -m 0770 -p ${cfg.dataDir}
         if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
       '';
-      postStart = mkBefore ''
-        until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${if configOptions.http.https-enabled then "-k https" else "http"}://127.0.0.1${toString configOptions.http.bind-address}/ping; do
-          sleep 1;
-        done
-      '';
+      postStart =
+        let
+          scheme = if configOptions.http.https-enabled then "-k https" else "http";
+          bindAddr = (ba: if hasPrefix ":" ba then "127.0.0.1${ba}" else "${ba}")(toString configOptions.http.bind-address);
+        in
+        mkBefore ''
+          until ${pkgs.curl.bin}/bin/curl -s -o /dev/null ${scheme}://${bindAddr}/ping; do
+            sleep 1;
+          done
+        '';
     };
 
     users.extraUsers = optional (cfg.user == "influxdb") {

From 735b41c34f78dc7781cd85d0be6636239af78c4f Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Sun, 24 Sep 2017 15:38:25 +0100
Subject: [PATCH 302/533] nixos/tinydns: default data to empty string

(not strictly required to start the service)
---
 nixos/modules/services/networking/tinydns.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/modules/services/networking/tinydns.nix b/nixos/modules/services/networking/tinydns.nix
index a60a820a09e5..184888ef05da 100644
--- a/nixos/modules/services/networking/tinydns.nix
+++ b/nixos/modules/services/networking/tinydns.nix
@@ -15,6 +15,7 @@ with lib;
 
       data = mkOption {
         type = types.lines;
+        default = "";
         description = "The DNS data to serve, in the format described by tinydns-data(8)";
       };
 

From dd6691aa0583bcdece6462335d442b4ac185eaf4 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Sun, 24 Sep 2017 15:44:43 +0100
Subject: [PATCH 303/533] luxio: fix package build

---
 pkgs/top-level/lua-packages.nix | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 929949ab72dd..1db7c7839009 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -277,7 +277,10 @@ let
       url = "https://git.gitano.org.uk/luxio.git/snapshot/luxio-luxio-13.tar.bz2";
       sha256 = "1hvwslc25q7k82rxk461zr1a2041nxg7sn3sw3w0y5jxf0giz2pz";
     };
-    buildInputs = [ which pkgconfig ];
+    nativeBuildInputs = [ which pkgconfig ];
+    postPatch = ''
+      patchShebangs .
+    '';
     meta = {
       platforms = stdenv.lib.platforms.unix;
       license = stdenv.lib.licenses.mit;
@@ -288,6 +291,7 @@ let
         INST_LIBDIR="$out/lib/lua/${lua.luaversion}"
         INST_LUADIR="$out/share/lua/${lua.luaversion}"
         LUA_BINDIR="$out/bin"
+        INSTALL=install
         );
     '';
   };

From 4105d02f7042a43bde452d6894f22aa3067f9b56 Mon Sep 17 00:00:00 2001
From: David Izquierdo <david@izquierdofernandez.com>
Date: Sun, 24 Sep 2017 12:10:54 +0200
Subject: [PATCH 304/533] latte dock: 0.6.0 -> 0.7.1

---
 pkgs/applications/misc/latte-dock/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index e013754e097e..2695ac1ef7d5 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, cmake, xorg, plasma-framework, fetchFromGitHub
-, extra-cmake-modules, karchive, kwindowsystem, qtx11extras }:
+, extra-cmake-modules, karchive, kwindowsystem, qtx11extras, kcrash }:
 
-let version = "0.6.0"; in
+let version = "0.7.1"; in
 
 mkDerivation {
   name = "latte-dock-${version}";
@@ -10,13 +10,13 @@ mkDerivation {
     owner = "psifidotos";
     repo = "Latte-Dock";
     rev = "v${version}";
-    sha256 = "1967hx4lavy96vvik8d5m2c6ycd2mlf9cmhrv40zr0784ni0ikyv";
+    sha256 = "0vdmsjj1qqlzz26mznb56znv5x7akbvw65ybbzakclp4q1xrsrm2";
   };
 
-  buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp ];
+  buildInputs = [ plasma-framework xorg.libpthreadstubs xorg.libXdmcp xorg.libSM ];
 
   nativeBuildInputs = [ extra-cmake-modules cmake karchive kwindowsystem
-    qtx11extras ];
+    qtx11extras kcrash ];
 
   meta = with lib; {
     description = "Dock-style app launcher based on Plasma frameworks";

From dd9959295205489016e1877f96a0f0c83eef5743 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Sun, 24 Sep 2017 15:57:49 +0100
Subject: [PATCH 305/533] python.pkgs.simanneal: enable tests

---
 .../python-modules/simanneal/default.nix      | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/pkgs/development/python-modules/simanneal/default.nix b/pkgs/development/python-modules/simanneal/default.nix
index 66a9628673b3..e3f65b6660c2 100644
--- a/pkgs/development/python-modules/simanneal/default.nix
+++ b/pkgs/development/python-modules/simanneal/default.nix
@@ -1,19 +1,24 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
 
 buildPythonPackage rec {
   pname = "simanneal";
   version = "0.4.1";
   name = "${pname}-${version}";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1ib1hv2adq6x25z13nb4s1asci6dqarpyhpdq144y2rqqff2m01x";
+  src = fetchFromGitHub {
+    owner = "perrygeo";
+    repo = "simanneal";
+    rev = version;
+    sha256 = "12499wvf7ii7cy8z2f1d472p7q9napg1lj0h9xx8l1mbr1hjlp3q";
   };
 
-  meta = {
+  checkInputs = [ pytest ];
+  checkPhase = "pytest tests";
+
+  meta = with stdenv.lib; {
     description = "A python implementation of the simulated annealing optimization technique";
     homepage = https://github.com/perrygeo/simanneal;
-    license = lib.licenses.isc;
-    maintainers = with lib.maintainers; [ veprbl ];
+    license = licenses.isc;
+    maintainers = with maintainers; [ veprbl ];
   };
 }

From 02d9d40d99d5a47e5e252dfe51451fe445cd2459 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Sat, 23 Sep 2017 11:48:51 +0200
Subject: [PATCH 306/533] testssl.sh: init at 2.9.5-1

Add testssl.sh which is a nice utility for testing TLS/SSL
capabilities of servers without having to use any kind of
web-service. It's very useful for testing setups of services before
deployment and such.
---
 lib/maintainers.nix                           |  1 +
 .../networking/testssl/default.nix            | 45 +++++++++++++++++++
 .../networking/testssl/testssl.patch          | 10 +++++
 pkgs/top-level/all-packages.nix               |  2 +
 4 files changed, 58 insertions(+)
 create mode 100644 pkgs/applications/networking/testssl/default.nix
 create mode 100644 pkgs/applications/networking/testssl/testssl.patch

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 9f4c31a3e4d7..db3c93c7064e 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -190,6 +190,7 @@
   erikryb = "Erik Rybakken <erik.rybakken@math.ntnu.no>";
   ertes = "Ertugrul Söylemez <esz@posteo.de>";
   ethercrow = "Dmitry Ivanov <ethercrow@gmail.com>";
+  etu = "Elis Hirwing <elis@hirwing.se>";
   exi = "Reno Reckling <nixos@reckling.org>";
   exlevan = "Alexey Levan <exlevan@gmail.com>";
   expipiplus1 = "Joe Hermaszewski <nix@monoid.al>";
diff --git a/pkgs/applications/networking/testssl/default.nix b/pkgs/applications/networking/testssl/default.nix
new file mode 100644
index 000000000000..dc7c961856d6
--- /dev/null
+++ b/pkgs/applications/networking/testssl/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, pkgs }:
+
+stdenv.mkDerivation rec {
+  version = "2.9.5-1";
+  name = "testssl.sh-${version}";
+
+  src = fetchFromGitHub {
+    owner = "drwetter";
+    repo = "testssl.sh";
+    rev = "v${version}";
+    sha256 = "0hz6g685jwl0c0jrdca746425xpwiwc8lnlc2gigga5hkcq8qzl9";
+  };
+
+  nativeBuildInputs = with pkgs; [
+    makeWrapper
+  ];
+
+  patches = [ ./testssl.patch ];
+
+  pwdBinPath = "${stdenv.lib.makeBinPath (with pkgs; [ coreutils ])}/pwd";
+  opensslBinPath = "${stdenv.lib.makeBinPath (with pkgs; [ openssl ])}/openssl";
+  postPatch = ''
+    sed -i -e "s|/bin/pwd|${pwdBinPath}|g"                                     \
+           -e "s|TESTSSL_INSTALL_DIR:-\"\"|TESTSSL_INSTALL_DIR:-\"$out\"|g"    \
+           -e "s|OPENSSL:-\"\"|OPENSSL:-\"${opensslBinPath}\"|g" \
+           testssl.sh
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/etc
+    cp -r etc/ $out/
+    cp testssl.sh $out/bin/testssl.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "CLI tool to check a server's TLS/SSL capabilities";
+    longDescription = ''
+      CLI tool which checks a server's service on any port for the support of
+      TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more.
+    '';
+    homepage = https://testssl.sh/;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.etu ];
+  };
+}
diff --git a/pkgs/applications/networking/testssl/testssl.patch b/pkgs/applications/networking/testssl/testssl.patch
new file mode 100644
index 000000000000..d5269c737084
--- /dev/null
+++ b/pkgs/applications/networking/testssl/testssl.patch
@@ -0,0 +1,10 @@
+--- testssl/testssl.sh	2017-09-24 16:53:29.395263437 +0200
++++ testssl-new/testssl.sh	2017-09-24 16:53:41.221154492 +0200
+@@ -165,6 +165,7 @@
+ # following variables make use of $ENV, e.g. OPENSSL=<myprivate_path_to_openssl> ./testssl.sh <host>
+ # 0 means (normally) true here. Some of the variables are also accessible with a command line switch, see --help
+ declare -x OPENSSL OPENSSL_TIMEOUT
++OPENSSL=${OPENSSL:-""}
+ FAST_SOCKET=${FAST_SOCKET:-false}       # EXPERIMENTAL feature to accelerate sockets -- DO NOT USE it for production
+ COLOR=${COLOR:-2}                       # 2: Full color, 1: b/w+positioning, 0: no ESC at all
+ COLORBLIND=${COLORBLIND:-false}         # if true, swap blue and green in the output
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6163482cd403..bcd421ec61b3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16549,6 +16549,8 @@ with pkgs;
 
   twmn = libsForQt5.callPackage ../applications/misc/twmn { };
 
+  testssl = callPackage ../applications/networking/testssl { };
+
   umurmur = callPackage ../applications/networking/umurmur { };
 
   unigine-valley = callPackage ../applications/graphics/unigine-valley { };

From 3d278be9ae2be8dd9cbc5c2b208b8121ae758113 Mon Sep 17 00:00:00 2001
From: Richard Ipsum <richardipsum@fastmail.co.uk>
Date: Sun, 24 Sep 2017 15:59:05 +0100
Subject: [PATCH 307/533] luxio: Add maintainer

---
 lib/maintainers.nix             | 1 +
 pkgs/top-level/lua-packages.nix | 1 +
 2 files changed, 2 insertions(+)

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index ec0d49dd35da..32ec8be0a688 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -497,6 +497,7 @@
   renzo = "Renzo Carbonara <renzocarbonara@gmail.com>";
   retrry = "Tadas Barzdžius <retrry@gmail.com>";
   rht = "rht <rhtbot@protonmail.com>";
+  richardipsum = "Richard Ipsum <richardipsum@fastmail.co.uk>";
   rick68 = "Wei-Ming Yang <rick68@gmail.com>";
   rickynils = "Rickard Nilsson <rickynils@gmail.com>";
   ris = "Robert Scott <code@humanleg.org.uk>";
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 1db7c7839009..98192d2c3d7c 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -285,6 +285,7 @@ let
       platforms = stdenv.lib.platforms.unix;
       license = stdenv.lib.licenses.mit;
       description = "Lightweight UNIX I/O and POSIX binding for Lua";
+      maintainers = [ maintainers.richardipsum ];
     };
     preBuild = ''
       makeFlagsArray=(

From eaa0e19a341ec795c3110208c15edd69b1fa08bc Mon Sep 17 00:00:00 2001
From: zimbatm <zimbatm@zimbatm.com>
Date: Sun, 24 Sep 2017 17:41:32 +0100
Subject: [PATCH 308/533] keybase: add darwin support

Fixes the cyclic dependency issue as described in #18131.
---
 pkgs/tools/security/keybase/default.nix | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index 8f19b2577475..229a45b87314 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -16,12 +16,16 @@ buildGoPackage rec {
     sha256 = "0vivc71xfi4y3ydd29b17qxzi10r3a1ppmjjws6vrs0gz58bz1j8";
   };
 
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -delete_rpath $out/lib $bin/bin/keybase
+  '';
+
   buildFlags = [ "-tags production" ];
 
   meta = with stdenv.lib; {
     homepage = https://www.keybase.io/;
     description = "The Keybase official command-line utility and service.";
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ carlsverre np rvolosatovs ];
   };
 }

From b50ae94ed33f11f8ffafb3b45a74decab4166c23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Roche?= <jfroche@affinitic.be>
Date: Sun, 24 Sep 2017 19:06:31 +0200
Subject: [PATCH 309/533] Update kbfs: 20170429.44efa06 -> 20170922.f76290
 (#29716)

kbfs was not working with the lastest keybase update
(https://github.com/NixOS/nixpkgs/commit/ef3cb5cc4750114a90ade7c0ea17f6967d01df39).

We should enforce update of keybase/keybase-ui and kbfs (like done here:
https://github.com/NixOS/nixpkgs/commit/f74a1e6bcb982ad423075bba28fa888f78dfa152)
all together to avoid API problems.
---
 pkgs/tools/security/kbfs/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/security/kbfs/default.nix b/pkgs/tools/security/kbfs/default.nix
index 28c6caae6c33..7b3e7d99a437 100644
--- a/pkgs/tools/security/kbfs/default.nix
+++ b/pkgs/tools/security/kbfs/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "kbfs-${version}";
-  version = "20170429.44efa06";
+  version = "20170922.f76290";
 
   goPackagePath = "github.com/keybase/kbfs";
   subPackages = [ "kbfsfuse" ];
@@ -12,8 +12,8 @@ buildGoPackage rec {
   src = fetchFromGitHub {
     owner = "keybase";
     repo = "kbfs";
-    rev = "44efa0682d931d8489f5e84542e8d00baeb12592";
-    sha256 = "1q6hklyr6zq3xr1azz1c6rlpsjc036f222cd20vf79m58dn906n5";
+    rev = "f76290f6e1a8cbaa6046980c67c548fbff9e123a";
+    sha256 = "1v086wmc0hly4b91y6xndfdhj981n2yr6nnb3rl6f4kwx291ih54";
   };
 
   buildFlags = [ "-tags production" ];

From 88bef1c0191655a1dd34c6e5fdc567ba318cfdbe Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Fri, 22 Sep 2017 15:52:45 +0200
Subject: [PATCH 310/533] hackage-packages.nix: automatic Haskell package set
 update

This update was generated by hackage2nix v2.6 from Hackage revision
https://github.com/commercialhaskell/all-cabal-hashes/commit/a0cac3c9f26a4b78945f67b832e254ca783df71e.
---
 .../haskell-modules/hackage-packages.nix      | 1256 ++++++++++++++---
 1 file changed, 1040 insertions(+), 216 deletions(-)

diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 82c4a033c856..a8b610239238 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -6077,6 +6077,25 @@ self: {
        hydraPlatforms = [ "i686-linux" "x86_64-linux" ];
      }) {};
 
+  "GPipe_2_2_2" = callPackage
+    ({ mkDerivation, base, Boolean, containers, exception-transformers
+     , gl, hashtables, linear, transformers
+     }:
+     mkDerivation {
+       pname = "GPipe";
+       version = "2.2.2";
+       sha256 = "0z149pix710nlirml2p8ihdijcmg5j9l282flzcd3mrnn27sd11h";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base Boolean containers exception-transformers gl hashtables linear
+         transformers
+       ];
+       homepage = "https://github.com/tobbebex/GPipe-Core#readme";
+       description = "Typesafe functional GPU graphics programming";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "GPipe-Collada" = callPackage
     ({ mkDerivation, array, base, containers, GPipe, HaXml, mtl, Vec }:
      mkDerivation {
@@ -6227,26 +6246,26 @@ self: {
      }) {};
 
   "GenI" = callPackage
-    ({ mkDerivation, base, binary, bytestring, cabal-macosx, containers
-     , deepseq, directory, errors, filepath, hslogger, HUnit, json, mtl
-     , old-locale, ordered, parsec, process, QuickCheck, smallcheck, syb
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
+    ({ mkDerivation, base, binary, bytestring, containers, deepseq
+     , directory, errors, filepath, hslogger, HUnit, json, mtl, ordered
+     , parsec, process, QuickCheck, smallcheck, syb, test-framework
+     , test-framework-hunit, test-framework-quickcheck2
      , test-framework-smallcheck, text, time, transformers, yaml-light
      }:
      mkDerivation {
        pname = "GenI";
-       version = "0.24.3";
-       sha256 = "0gmig362ayxxqgj4m6g1r1i6q5zfg6j8bmvsd7i9kmqn12nl3l0p";
+       version = "0.25.0";
+       sha256 = "1mxx8mcrlq54gb436jyk8g9k2i56ybp3m3gzi7bmjda6qpf7b8l8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base binary bytestring cabal-macosx containers deepseq directory
-         errors filepath hslogger json mtl old-locale ordered parsec process
-         syb text time transformers yaml-light
+         base binary bytestring containers deepseq directory filepath
+         hslogger json mtl ordered parsec process syb text time transformers
+         yaml-light
        ];
        executableHaskellDepends = [
-         base containers directory errors filepath hslogger json mtl process
+         base containers directory filepath hslogger json mtl process
          yaml-light
        ];
        testHaskellDepends = [
@@ -7347,16 +7366,17 @@ self: {
      }) {};
 
   "HGamer3D" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, clock, containers
-     , directory, filepath, fresco-binding, messagepack, text, vect
+    ({ mkDerivation, base, binary-serialise-cbor, bytestring, cereal
+     , clock, containers, directory, filepath, fresco-binding, text
+     , vect
      }:
      mkDerivation {
        pname = "HGamer3D";
-       version = "0.8.0";
-       sha256 = "1779if3g4lcgjsvq9yjrmd5fgc7m00a0p84cm87m28112xvk4kqc";
+       version = "0.9.0";
+       sha256 = "09psrdhlrxhj8459xjr3j8fwv1mxjrlsn9nkfx0srz5sf0s4sj69";
        libraryHaskellDepends = [
-         base bytestring cereal clock containers directory filepath
-         fresco-binding messagepack text vect
+         base binary-serialise-cbor bytestring cereal clock containers
+         directory filepath fresco-binding text vect
        ];
        homepage = "http://www.hgamer3d.org";
        description = "Toolset for the Haskell Game Programmer";
@@ -18573,15 +18593,15 @@ self: {
      }) {advapi32 = null; gdi32 = null; shell32 = null; 
          shfolder = null; user32 = null; winmm = null;};
 
-  "Win32_2_5_4_1" = callPackage
+  "Win32_2_6_0_0" = callPackage
     ({ mkDerivation, advapi32, base, bytestring, filepath, gdi32, imm32
-     , msimg32, shell32, shfolder, shlwapi, user32, winmm
+     , msimg32, shell32, shfolder, shlwapi, unbuildable, user32, winmm
      }:
      mkDerivation {
        pname = "Win32";
-       version = "2.5.4.1";
-       sha256 = "0r1xzm0w3kg8rqq24j17405ic6yix53r9sq9wpl4zl2sajg3w66c";
-       libraryHaskellDepends = [ base bytestring filepath ];
+       version = "2.6.0.0";
+       sha256 = "1swrahwg89c6001cprzfx9fi64kndzmfvwbr34k2f00izv39fn6l";
+       libraryHaskellDepends = [ base bytestring filepath unbuildable ];
        librarySystemDepends = [
          advapi32 gdi32 imm32 msimg32 shell32 shfolder shlwapi user32 winmm
        ];
@@ -19673,6 +19693,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "accelerate_1_1_0_0" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, deepseq, directory
+     , exceptions, fclabels, filepath, ghc-prim, hashable, hashtables
+     , mtl, pretty, template-haskell, time, transformers, unique, unix
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "accelerate";
+       version = "1.1.0.0";
+       sha256 = "02nv7h7qfayw5aggh2jhaccnrx2lq0f0h3aqacw8ml22asffbzj8";
+       libraryHaskellDepends = [
+         base base-orphans containers deepseq directory exceptions fclabels
+         filepath ghc-prim hashable hashtables mtl pretty template-haskell
+         time transformers unique unix unordered-containers
+       ];
+       homepage = "https://github.com/AccelerateHS/accelerate/";
+       description = "An embedded language for accelerated array processing";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "accelerate-arithmetic" = callPackage
     ({ mkDerivation, accelerate, accelerate-utility, base, QuickCheck
      , utility-ht
@@ -19723,6 +19764,33 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "accelerate-blas" = callPackage
+    ({ mkDerivation, accelerate, accelerate-llvm
+     , accelerate-llvm-native, accelerate-llvm-ptx, base, blas-hs
+     , bytestring, containers, criterion, cublas, cuda, deepseq
+     , file-embed, hedgehog, hmatrix, llvm-hs-pure, mtl, mwc-random
+     , mwc-random-accelerate, storable-complex
+     }:
+     mkDerivation {
+       pname = "accelerate-blas";
+       version = "0.1.0.0";
+       sha256 = "0jxcq97z75pqdh9f18lsz4pih693n5ffcx02aa752s6y3qv2s2kb";
+       libraryHaskellDepends = [
+         accelerate accelerate-llvm accelerate-llvm-native
+         accelerate-llvm-ptx base blas-hs bytestring containers cublas cuda
+         file-embed llvm-hs-pure mtl storable-complex
+       ];
+       testHaskellDepends = [
+         accelerate accelerate-llvm-native accelerate-llvm-ptx base hedgehog
+       ];
+       benchmarkHaskellDepends = [
+         accelerate accelerate-llvm-native accelerate-llvm-ptx base
+         criterion deepseq hmatrix mwc-random mwc-random-accelerate
+       ];
+       description = "Numeric Linear Algebra in Accelerate";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "accelerate-cublas" = callPackage
     ({ mkDerivation, accelerate, accelerate-arithmetic, accelerate-cuda
      , accelerate-io, accelerate-utility, base, cublas, cuda, hmatrix
@@ -19812,10 +19880,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-examples";
-       version = "1.0.0.0";
-       sha256 = "1s85mh1grdncxakby200awaa5h79i805ijgsxq524gd2dm4dqnd6";
-       revision = "2";
-       editedCabalFile = "0ckm9ydfdrpwvmi9hdmvfbpfgs0k24rg1xjjskxqzvx79qlph5qn";
+       version = "1.1.0.0";
+       sha256 = "0zpjmk6v314jfda7fy22xghfqlqfh8vyf938qwyp6xjf1mpq1r1x";
        configureFlags = [ "-f-opencl" ];
        isLibrary = true;
        isExecutable = true;
@@ -19848,10 +19914,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-fft";
-       version = "1.0.0.0";
-       sha256 = "1qw4ln9xamv86lvb7y5xfzs12br4jbszai17jlagffmc6rnlhjkq";
-       revision = "2";
-       editedCabalFile = "0vycxsl60rd87ypcbmfkj1sjl4bz60n5lj4bdv6p7f8qpa1hgya1";
+       version = "1.1.0.0";
+       sha256 = "0q2ihnangmm708bwdhfyc5z7s1ng11x8imgb7y06fc5n2m7sxn9l";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base bytestring carray cuda cufft fft
@@ -19946,64 +20010,65 @@ self: {
      }) {};
 
   "accelerate-llvm" = callPackage
-    ({ mkDerivation, abstract-deque, accelerate, base, chaselev-deque
-     , containers, data-default-class, dlist, exceptions, fclabels
-     , llvm-hs, llvm-hs-pure, mtl, mwc-random, unordered-containers
-     , vector
+    ({ mkDerivation, abstract-deque, accelerate, base, bytestring
+     , chaselev-deque, containers, data-default-class, deepseq
+     , directory, dlist, exceptions, fclabels, filepath, llvm-hs
+     , llvm-hs-pure, mtl, mwc-random, template-haskell
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm";
-       version = "1.0.0.0";
-       sha256 = "1kwck1rc2ipcblvjpqblmycm7j4w14635iblfgczydzzyw6x9smh";
-       revision = "7";
-       editedCabalFile = "1m3v55by11q4411wgj9623wdp0i6cnprykgwmklsmxf1gvf9d43x";
+       version = "1.1.0.0";
+       sha256 = "1x42gaafdm998k3x9qfpv8qb5jn7mh5h8rim3ywaj5cm9fk280qw";
        libraryHaskellDepends = [
-         abstract-deque accelerate base chaselev-deque containers
-         data-default-class dlist exceptions fclabels llvm-hs llvm-hs-pure
-         mtl mwc-random unordered-containers vector
+         abstract-deque accelerate base bytestring chaselev-deque containers
+         data-default-class deepseq directory dlist exceptions fclabels
+         filepath llvm-hs llvm-hs-pure mtl mwc-random template-haskell
+         unordered-containers vector
        ];
-       description = "Accelerate backend generating LLVM";
+       description = "Accelerate backend component generating LLVM IR";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "accelerate-llvm-native" = callPackage
-    ({ mkDerivation, accelerate, accelerate-llvm, base, containers
-     , directory, dlist, fclabels, libffi, llvm-hs, llvm-hs-pure, mtl
-     , time
+    ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
+     , c2hs, Cabal, cereal, containers, directory, dlist, fclabels
+     , filepath, ghc, ghc-prim, libffi, llvm-hs, llvm-hs-pure, mtl
+     , template-haskell, time, unix, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm-native";
-       version = "1.0.0.0";
-       sha256 = "0m88pfx5zrr843m48yxlm2bfxl6d1ni27gsvv0qv1pcy9sviijid";
-       revision = "2";
-       editedCabalFile = "13akqlpn0vdxwpd4f4l9l71rx8nb5mkj9zklcv9rs38yay7y3an4";
+       version = "1.1.0.0";
+       sha256 = "0jg46i12vxf4fr5w0s8wwdh701ba088l4ign7yfvmzbhgcpvan5d";
        libraryHaskellDepends = [
-         accelerate accelerate-llvm base containers directory dlist fclabels
-         libffi llvm-hs llvm-hs-pure mtl time
+         accelerate accelerate-llvm base bytestring Cabal cereal containers
+         directory dlist fclabels filepath ghc ghc-prim libffi llvm-hs
+         llvm-hs-pure mtl template-haskell time unix vector
        ];
-       description = "Accelerate backend generating LLVM";
+       libraryToolDepends = [ c2hs ];
+       description = "Accelerate backend for multicore CPUs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "accelerate-llvm-ptx" = callPackage
     ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
-     , containers, cuda, directory, dlist, fclabels, filepath, hashable
-     , llvm-hs, llvm-hs-pure, mtl, pretty, time, unordered-containers
+     , containers, cuda, deepseq, directory, dlist, fclabels, file-embed
+     , filepath, hashable, llvm-hs, llvm-hs-pure, mtl, nvvm, pretty
+     , process, template-haskell, time, unordered-containers
      }:
      mkDerivation {
        pname = "accelerate-llvm-ptx";
-       version = "1.0.0.1";
-       sha256 = "0s01vfqrg6kg2jkg9dkj98b7xr88m519drs73x5ffj6xdgq6b57z";
-       revision = "1";
-       editedCabalFile = "0r9j7pnhfxvx1qv3xn877mbr1pfwqh0nhm436cpqanqrj7sk876n";
+       version = "1.1.0.0";
+       sha256 = "1av0s4wgq7l2jhkmg7cmr1fivwqankqgyjikpwg1q569dapfrasw";
        libraryHaskellDepends = [
-         accelerate accelerate-llvm base bytestring containers cuda
-         directory dlist fclabels filepath hashable llvm-hs llvm-hs-pure mtl
-         pretty time unordered-containers
+         accelerate accelerate-llvm base bytestring containers cuda deepseq
+         directory dlist fclabels file-embed filepath hashable llvm-hs
+         llvm-hs-pure mtl nvvm pretty process template-haskell time
+         unordered-containers
        ];
-       description = "Accelerate backend generating LLVM";
+       description = "Accelerate backend for NVIDIA GPUs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -21195,24 +21260,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "aeson_1_2_1_0" = callPackage
+  "aeson_1_2_2_0" = callPackage
     ({ mkDerivation, attoparsec, base, base-compat, base-orphans
      , base16-bytestring, bytestring, containers, deepseq, directory
      , dlist, filepath, generic-deriving, ghc-prim, hashable
      , hashable-time, HUnit, integer-logarithms, QuickCheck
      , quickcheck-instances, scientific, tagged, template-haskell
      , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , text, time, time-locale-compat, unordered-containers, uuid-types
-     , vector
+     , text, th-abstraction, time, time-locale-compat
+     , unordered-containers, uuid-types, vector
      }:
      mkDerivation {
        pname = "aeson";
-       version = "1.2.1.0";
-       sha256 = "0wwa2i8jy3q7i8mys8hmy1nhis2a7hbs1bbfpmbj7xcvxpdhy5wn";
+       version = "1.2.2.0";
+       sha256 = "1ziwbwy2zkms3sknrq2iz6h0hdd372qvrsjrbnyknxx2p4cfr7hg";
        libraryHaskellDepends = [
          attoparsec base base-compat bytestring containers deepseq dlist
-         ghc-prim hashable scientific tagged template-haskell text time
-         time-locale-compat unordered-containers uuid-types vector
+         ghc-prim hashable scientific tagged template-haskell text
+         th-abstraction time time-locale-compat unordered-containers
+         uuid-types vector
        ];
        testHaskellDepends = [
          attoparsec base base-compat base-orphans base16-bytestring
@@ -21361,35 +21427,6 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "aeson-diff_1_1_0_2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, doctest
-     , edit-distance-vector, filepath, Glob, hashable, hlint, mtl
-     , optparse-applicative, QuickCheck, quickcheck-instances
-     , scientific, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "aeson-diff";
-       version = "1.1.0.2";
-       sha256 = "05kpznfzsa4kvanm8nhj40lz6f8zx6vd4jacih2r05i63ph0qyrd";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring edit-distance-vector hashable mtl scientific
-         text unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         aeson base bytestring optparse-applicative text
-       ];
-       testHaskellDepends = [
-         aeson base bytestring directory doctest filepath Glob hlint
-         QuickCheck quickcheck-instances text unordered-containers vector
-       ];
-       homepage = "https://github.com/thsutton/aeson-diff";
-       description = "Extract and apply patches to JSON documents";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "aeson-diff" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, doctest
      , edit-distance-vector, filepath, Glob, hashable, hlint, mtl
@@ -21418,6 +21455,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-diff_1_1_0_4" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory, doctest
+     , edit-distance-vector, filepath, Glob, hashable, hlint, mtl
+     , optparse-applicative, QuickCheck, quickcheck-instances
+     , scientific, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "aeson-diff";
+       version = "1.1.0.4";
+       sha256 = "03lbghmivvmgj326ha3rxqldd73nyq88hyjigkb09nrd8vwy9wc7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring edit-distance-vector hashable mtl scientific
+         text unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring optparse-applicative text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory doctest filepath Glob hlint
+         QuickCheck quickcheck-instances text unordered-containers vector
+       ];
+       homepage = "https://github.com/thsutton/aeson-diff";
+       description = "Extract and apply patches to JSON documents";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aeson-extra" = callPackage
     ({ mkDerivation, aeson, aeson-compat, attoparsec, base, base-compat
      , bytestring, containers, exceptions, hashable, parsec
@@ -25572,6 +25638,8 @@ self: {
        pname = "ansi-wl-pprint";
        version = "0.6.8.1";
        sha256 = "0qxk0iibbyqk7fmrq5cbkr1269bd6vqbdmj2n8s5bvds0836mnnm";
+       revision = "1";
+       editedCabalFile = "0miriy5zkssjwg8zk1wzg7wx3l5ljzvrhga33m2iz7j4y0sb4fx7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base ];
@@ -25849,10 +25917,10 @@ self: {
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.2.0.3";
-       sha256 = "0bsaxgmkcy4jpvf98frqa6dhdwzk2m59bcshb6rqx8ixllinpyvp";
+       version = "0.2.1.1";
+       sha256 = "1611vwvp5ldminjcj59s4xhvgcrla1n4zk082mh0fbpil4ww2ad9";
        libraryHaskellDepends = [ base containers mtl vector ];
-       testHaskellDepends = [ base QuickCheck ];
+       testHaskellDepends = [ base containers QuickCheck vector ];
        benchmarkHaskellDepends = [ base criterion linear ];
        homepage = "https://github.com/jonascarpay/apecs#readme";
        description = "A fast ECS for game engine programming";
@@ -30377,6 +30445,40 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "b9_0_5_35" = callPackage
+    ({ mkDerivation, aeson, async, base, bifunctors, binary, boxes
+     , bytestring, conduit, conduit-extra, ConfigFile, directory
+     , filepath, free, hashable, hspec, hspec-expectations, mtl
+     , optparse-applicative, parallel, parsec, pretty, pretty-show
+     , process, QuickCheck, random, semigroups, syb, template, text
+     , time, transformers, unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "b9";
+       version = "0.5.35";
+       sha256 = "11j2mr03hn9xz7dq1p7kr448mdj1dva360xf6n7qmq3nq4vrl1av";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base bifunctors binary boxes bytestring conduit
+         conduit-extra ConfigFile directory filepath free hashable mtl
+         parallel parsec pretty pretty-show process QuickCheck random
+         semigroups syb template text time transformers unordered-containers
+         vector yaml
+       ];
+       executableHaskellDepends = [
+         base bytestring directory optparse-applicative
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-expectations QuickCheck
+         semigroups text unordered-containers vector yaml
+       ];
+       homepage = "https://github.com/sheyll/b9-vm-image-builder";
+       description = "A tool and library for building virtual machine images";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "babl" = callPackage
     ({ mkDerivation, babl, base }:
      mkDerivation {
@@ -32947,6 +33049,32 @@ self: {
          inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXxf86vm; 
          inherit (pkgs) mesa;};
 
+  "bindings-GLFW_3_1_2_3" = callPackage
+    ({ mkDerivation, base, bindings-DSL, HUnit, libX11, libXcursor
+     , libXext, libXfixes, libXi, libXinerama, libXrandr, libXxf86vm
+     , mesa, template-haskell, test-framework, test-framework-hunit
+     }:
+     mkDerivation {
+       pname = "bindings-GLFW";
+       version = "3.1.2.3";
+       sha256 = "1xmmwxbjpxwndiacrh2mk3lih6cs8d83ax07vg5sgyp5d7qigvik";
+       libraryHaskellDepends = [ base bindings-DSL template-haskell ];
+       librarySystemDepends = [
+         libX11 libXcursor libXext libXfixes libXi libXinerama libXrandr
+         libXxf86vm mesa
+       ];
+       testHaskellDepends = [
+         base HUnit test-framework test-framework-hunit
+       ];
+       description = "Low-level bindings to GLFW OpenGL library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXcursor; 
+         inherit (pkgs.xorg) libXext; inherit (pkgs.xorg) libXfixes; 
+         inherit (pkgs.xorg) libXi; inherit (pkgs.xorg) libXinerama; 
+         inherit (pkgs.xorg) libXrandr; inherit (pkgs.xorg) libXxf86vm; 
+         inherit (pkgs) mesa;};
+
   "bindings-K8055" = callPackage
     ({ mkDerivation, base, K8055D }:
      mkDerivation {
@@ -34780,8 +34908,8 @@ self: {
        pname = "blank-canvas";
        version = "0.6";
        sha256 = "1cs81ykw1y2q1kwkdni5w9jxa8bc31b118diaqzf870bqm7mq3ia";
-       revision = "11";
-       editedCabalFile = "1n5sf249kcrk276hdj68g7v6fmhfg6wfwaaibqx2am86iz8dvr06";
+       revision = "12";
+       editedCabalFile = "011gssnsg4svv0mz58cvkmy2nr994d4v6ch29yilgh6rna0qfkd9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring colour
@@ -38976,8 +39104,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.5";
-       sha256 = "19ywslwarwk84anfq78y249krqnddi2yyh66l78a88xfsh002abp";
+       version = "2.6";
+       sha256 = "0zy0pf8s2flykpm7419zz393dx92lxpf04gi9d827m5dwrlr0j3z";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -38985,7 +39113,7 @@ self: {
          aeson ansi-wl-pprint base bytestring Cabal containers deepseq
          directory distribution-nixpkgs filepath hackage-db hopenssl
          language-nix lens optparse-applicative pretty process split text
-         transformers yaml
+         time transformers yaml
        ];
        executableHaskellDepends = [
          aeson ansi-wl-pprint base bytestring Cabal containers deepseq
@@ -38998,7 +39126,7 @@ self: {
          aeson ansi-wl-pprint base bytestring Cabal containers deepseq
          directory distribution-nixpkgs doctest filepath hackage-db hopenssl
          language-nix lens optparse-applicative pretty process split text
-         transformers yaml
+         time transformers yaml
        ];
        homepage = "https://github.com/nixos/cabal2nix#readme";
        description = "Convert Cabal files into Nix build instructions";
@@ -40622,6 +40750,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "cassava-embed" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, template-haskell
+     , vector
+     }:
+     mkDerivation {
+       pname = "cassava-embed";
+       version = "0.1.0.0";
+       sha256 = "11ssyv3wkw7l1hc6qa2srdj5ybv67hkclr0lcap4vilfsc4akfww";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring cassava template-haskell vector
+       ];
+       executableHaskellDepends = [ base cassava template-haskell ];
+       homepage = "https://github.com/typeable/cassava-embed#readme";
+       description = "CSV-file embedding library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cassava-megaparsec" = callPackage
     ({ mkDerivation, base, bytestring, cassava, containers, hspec
      , hspec-megaparsec, megaparsec, unordered-containers, vector
@@ -42129,8 +42277,8 @@ self: {
      }:
      mkDerivation {
        pname = "checkmate";
-       version = "0.1.3";
-       sha256 = "1i0hbbgg5lh44azk5vsm6nppazgn657942rcx6h08d6925kn6l7v";
+       version = "0.1.4";
+       sha256 = "0x43mahf8rbk5n6zgdfglj6mxlxs6ky4x12g23knvfrwf933j2lc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45240,8 +45388,8 @@ self: {
      }:
      mkDerivation {
        pname = "coinbase-exchange";
-       version = "0.3.0.0";
-       sha256 = "02wkqp3982y5lhzrp77b25zfq6d9did59zzpzjng2n75w9qqj2lk";
+       version = "0.4.0.0";
+       sha256 = "0592myr7z3yggbpjcanzivvdzkb06pr9il6bsgjc2fcfaggw5j4p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45543,14 +45691,23 @@ self: {
      }) {};
 
   "colorless" = callPackage
-    ({ mkDerivation, base, megaparsec, pregame }:
+    ({ mkDerivation, aeson, base, bytestring, containers, errors
+     , exceptions, hspec, lifted-async, monad-control, monad-logger, mtl
+     , random, scientific, text, unordered-containers, vector
+     }:
      mkDerivation {
        pname = "colorless";
-       version = "0.0.0";
-       sha256 = "0b72bri1nygsvgwhkrmrqvixlwiv2y256gl3a3yq2aajqkzhis0s";
-       libraryHaskellDepends = [ base megaparsec pregame ];
-       homepage = "http://github.com/jxv/colorless#readme";
-       description = "Yet another IDL for RPC";
+       version = "0.0.1";
+       sha256 = "0fzyzlrxkwlcvxps3rrghj7ds47rsrksj8p26prqygar0r0ihp80";
+       libraryHaskellDepends = [
+         aeson base bytestring containers errors exceptions lifted-async
+         monad-control monad-logger mtl random scientific text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base containers hspec scientific text vector
+       ];
+       description = "Colorless";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -45585,10 +45742,8 @@ self: {
     ({ mkDerivation, accelerate, base }:
      mkDerivation {
        pname = "colour-accelerate";
-       version = "0.1.0.0";
-       sha256 = "1clcn0ipcrifcxqqb72k1xnga005v1ih79q8164ycsh2hgkdm4ij";
-       revision = "2";
-       editedCabalFile = "0izp44hlzg267mi2hrf96mfzpyvk8jp0b0p6y9lb1vs624a1gy4c";
+       version = "0.2.0.0";
+       sha256 = "10176caf5j7g8z24d8wmr35p6gg6xv7ma0ibgbc7q6r71qvq0zzc";
        libraryHaskellDepends = [ accelerate base ];
        homepage = "https://github.com/tmcdonell/colour-accelerate";
        description = "Working with colours in Accelerate";
@@ -45663,6 +45818,81 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "comark" = callPackage
+    ({ mkDerivation, base, comark-html, comark-parser, comark-syntax
+     , text
+     }:
+     mkDerivation {
+       pname = "comark";
+       version = "0.1.0";
+       sha256 = "0kkwjz7ycszg4dg7cpcvfv86qm61vzipy55qran9i792psa0rcd0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base comark-html comark-parser comark-syntax text
+       ];
+       executableHaskellDepends = [ base text ];
+       description = "Commonmark processing in pure haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "comark-html" = callPackage
+    ({ mkDerivation, base, cmark, comark-syntax, comark-testutils
+     , criterion, deepseq, hspec, text, transformers
+     }:
+     mkDerivation {
+       pname = "comark-html";
+       version = "0.1.0";
+       sha256 = "1ar9yagwp190b1yxbf2a2d1n62ki3algi0wfqpkn9ad8nmig2g89";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base comark-syntax text transformers ];
+       testHaskellDepends = [ base comark-testutils hspec ];
+       benchmarkHaskellDepends = [
+         base cmark comark-syntax comark-testutils criterion deepseq text
+       ];
+       description = "Commonmark (markdown) to HTML renderer";
+       license = stdenv.lib.licenses.bsd3;
+       broken = true;
+     }) {comark-testutils = null;};
+
+  "comark-parser" = callPackage
+    ({ mkDerivation, base, cmark, comark-syntax, comark-testutils
+     , containers, control-bool, criterion, deepseq, file-embed, hspec
+     , html5-entity, QuickCheck, syb, text, transformers
+     }:
+     mkDerivation {
+       pname = "comark-parser";
+       version = "0.1.0";
+       sha256 = "1g595nak7fpzfvipan928wd5drfa0l4axfdjwk51awb7fxvl1nhp";
+       libraryHaskellDepends = [
+         base comark-syntax containers control-bool html5-entity text
+         transformers
+       ];
+       testHaskellDepends = [
+         base cmark comark-syntax comark-testutils containers deepseq hspec
+         QuickCheck syb text
+       ];
+       benchmarkHaskellDepends = [
+         base comark-syntax comark-testutils criterion deepseq file-embed
+         text
+       ];
+       description = "Parser for Commonmark (markdown)";
+       license = stdenv.lib.licenses.bsd3;
+       broken = true;
+     }) {comark-testutils = null;};
+
+  "comark-syntax" = callPackage
+    ({ mkDerivation, base, containers, deepseq }:
+     mkDerivation {
+       pname = "comark-syntax";
+       version = "0.1.0";
+       sha256 = "0y1fp6griivzzxwp621cm2mrizxmrnjazhayl21aqfp7mb5i4ib2";
+       libraryHaskellDepends = [ base containers deepseq ];
+       description = "Definitions of AST that represents a Commonmark (markdown) document";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "combinat" = callPackage
     ({ mkDerivation, array, base, containers, QuickCheck, random
      , test-framework, test-framework-quickcheck2, transformers
@@ -49720,8 +49950,8 @@ self: {
     ({ mkDerivation, base, containers, parallel }:
      mkDerivation {
        pname = "cpsa";
-       version = "3.3.2";
-       sha256 = "079v1k1m61n3hrmz6lkdg400r3nn9fq8bwmy477vjjnyjvm1j38f";
+       version = "3.4.0";
+       sha256 = "01imn0nnb567m1l48bjaa6nqp0555bw5lp40d9bqz56dalh4lnlk";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -51130,6 +51360,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cryptocompare" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , exceptions, http-conduit, MissingH, text, time, transformers
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "cryptocompare";
+       version = "0.0.3";
+       sha256 = "1w9sf4n91d7qk5dcch1bl4hfpjllfv0z15rv4g65lr1zsnysc3fy";
+       libraryHaskellDepends = [
+         aeson base bytestring containers directory exceptions http-conduit
+         MissingH text time transformers unordered-containers
+       ];
+       testHaskellDepends = [ base ];
+       homepage = "https://github.com/aviaviavi/cryptocompare";
+       description = "Haskell wrapper for the cryptocompare API";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cryptoconditions" = callPackage
     ({ mkDerivation, aeson, aeson-quick, asn1-encoding, asn1-parse
      , asn1-types, base, base16-bytestring, base64-bytestring
@@ -57620,6 +57869,8 @@ self: {
        pname = "diagrams-postscript";
        version = "1.4";
        sha256 = "1d4dbwd4qgrlwm0m9spwqklpg3plf0ghrnrah1k6yw900l0z0n7y";
+       revision = "1";
+       editedCabalFile = "0vmiv3b74nml0ahb7dicq0m0vz2lahzfapln9aby0jb2saa0sf58";
        libraryHaskellDepends = [
          base containers data-default-class diagrams-core diagrams-lib dlist
          filepath hashable lens monoid-extras mtl semigroups split
@@ -60148,8 +60399,8 @@ self: {
      }:
      mkDerivation {
        pname = "docker";
-       version = "0.4.0.1";
-       sha256 = "1nf860admbdhrbyyj8m7ymd9c390rnrn2nqb2gr3i8dk4rcm4hsf";
+       version = "0.4.0.2";
+       sha256 = "1y2bk71zz3m6dm9b1cnkfyvi2x62v1kc08h9pbpxs43r82fz2xa0";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit conduit-combinators
          conduit-extra containers data-default-class directory exceptions
@@ -60647,15 +60898,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "dotenv_0_5_0_1" = callPackage
+  "dotenv_0_5_0_2" = callPackage
     ({ mkDerivation, base, base-compat, exceptions, hspec
      , hspec-megaparsec, megaparsec, optparse-applicative, process, text
      , transformers
      }:
      mkDerivation {
        pname = "dotenv";
-       version = "0.5.0.1";
-       sha256 = "1gbb1h1wzxk6szrciw81kkiljf1gpnaymksspqa955qh4qhxj1bw";
+       version = "0.5.0.2";
+       sha256 = "0jdm8ci2d1iafxiq8r27iclmgrmr9d3md3slc0wv01magsdsl0hb";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -67181,8 +67432,8 @@ self: {
        pname = "extended-reals";
        version = "0.2.2.0";
        sha256 = "14wskq0m3sclb2c1m3aqsaj26rijbzyy021qkvxjdpzskz13higj";
-       revision = "1";
-       editedCabalFile = "1z671zda261gd55ryagpfjnjh1mxrnqfs0paqhml0nwms8f1hw0d";
+       revision = "2";
+       editedCabalFile = "1vsh115lals5sqp2rkj7gp9b1jc0rg92x5fb51p8jckqr4f43pma";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base deepseq HUnit QuickCheck test-framework test-framework-hunit
@@ -67509,18 +67760,40 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fadno" = callPackage
+    ({ mkDerivation, base, comonad, containers, data-default, Decimal
+     , deepseq, event-list, fadno-braids, fadno-xml, hspec
+     , hspec-contrib, HUnit, lens, midi, mtl, process, safe, split, text
+     , unordered-containers, vector, xml
+     }:
+     mkDerivation {
+       pname = "fadno";
+       version = "1.1.0";
+       sha256 = "02qg4gd1f1cldh6bg5nrds67vrmhcxnkn8c57gj7400l60ab3yak";
+       libraryHaskellDepends = [
+         base comonad containers data-default Decimal deepseq event-list
+         fadno-braids fadno-xml HUnit lens midi mtl process safe split text
+         unordered-containers vector xml
+       ];
+       testHaskellDepends = [
+         base containers hspec hspec-contrib HUnit lens
+       ];
+       homepage = "http://github.com/slpopejoy/fadno";
+       description = "Minimal library for music generation and notation";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "fadno-braids" = callPackage
     ({ mkDerivation, base, containers, data-default, diagrams
      , diagrams-lib, diagrams-rasterific, lens, random
-     , transformers-compat
      }:
      mkDerivation {
        pname = "fadno-braids";
-       version = "0.0.5";
-       sha256 = "1n1r1n4l2rgnrcpq8smkhz826ri0xrvv6dabjshcj7s8l8k9kycp";
+       version = "0.1.0";
+       sha256 = "0imf4cd8gl5hq4qrrp5jgfhv4k0vmrm2qm124nbnj65zhgxvm9lz";
        libraryHaskellDepends = [
          base containers data-default diagrams diagrams-lib
-         diagrams-rasterific lens random transformers-compat
+         diagrams-rasterific lens random
        ];
        homepage = "http://github.com/slpopejoy/";
        description = "Braid representations in Haskell";
@@ -67533,8 +67806,8 @@ self: {
      }:
      mkDerivation {
        pname = "fadno-xml";
-       version = "1.0.3";
-       sha256 = "1kycd21gln3xywla83c3brq3f3s93387rvfwizjzxi17i11hwkki";
+       version = "1.1.0";
+       sha256 = "0wm4kj544zyg2rfb0qdcc9m60l5awskcc0w0rs5bw0v5jdzk2d3j";
        libraryHaskellDepends = [
          base containers Decimal lens mtl parsec xml
        ];
@@ -71226,19 +71499,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "foldl_1_3_1" = callPackage
+  "foldl_1_3_2" = callPackage
     ({ mkDerivation, base, bytestring, comonad, containers
      , contravariant, criterion, hashable, mwc-random, primitive
-     , profunctors, text, transformers, unordered-containers, vector
-     , vector-builder
+     , profunctors, semigroups, text, transformers, unordered-containers
+     , vector, vector-builder
      }:
      mkDerivation {
        pname = "foldl";
-       version = "1.3.1";
-       sha256 = "0g9f2lzlv59bzdjkm917fpcfxrmkzhrmh3jgd2xnfwcb7sfrbmma";
+       version = "1.3.2";
+       sha256 = "1z3xjz4khs2kr3mqkbh7dz4kd6gkdk2r67wjkvrxnmp533aqh90n";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable
-         mwc-random primitive profunctors text transformers
+         mwc-random primitive profunctors semigroups text transformers
          unordered-containers vector vector-builder
        ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -71625,6 +71898,26 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "forest-fire" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cli, containers
+     , pretty-tree, process, text
+     }:
+     mkDerivation {
+       pname = "forest-fire";
+       version = "0.1.1.1";
+       sha256 = "1v8lj9bx0hjkhjr4iv672x84016hsn80nhcfqdknl87vz5bk7z9s";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers pretty-tree process text
+       ];
+       executableHaskellDepends = [ base cli ];
+       testHaskellDepends = [ base ];
+       homepage = "https://github.com/toothbrush/forest-fire#readme";
+       description = "Recursively delete CloudFormation stacks and their dependants";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "forger" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -72336,8 +72629,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-functors";
-       version = "0.8";
-       sha256 = "179q79l9pax6wqj5dn6i68fwskaf4kbrndpbnhp8d7ba5i3wywfy";
+       version = "0.8.1";
+       sha256 = "0l9l7292vdwsiqynh62f277ilbill3azws6rajyjrv1lp1ll9ys0";
        libraryHaskellDepends = [
          algebraic-classes base bifunctors comonad constraints contravariant
          profunctors template-haskell transformers
@@ -72714,15 +73007,15 @@ self: {
      }) {};
 
   "fresco-binding" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, containers, messagepack
-     , text, unix
+    ({ mkDerivation, base, binary, binary-serialise-cbor, bytestring
+     , containers, text, unix
      }:
      mkDerivation {
        pname = "fresco-binding";
-       version = "0.2.0";
-       sha256 = "0xd9zh6qg82c71y7mc3j75z2b75zz5ffqhhlbj3vyqdv2al9991l";
+       version = "0.3.0";
+       sha256 = "0zndlwq9k24vvlr5b32jzq1nnmglrz6957sf801z0j4fpi836vb2";
        libraryHaskellDepends = [
-         base bytestring cereal containers messagepack text unix
+         base binary binary-serialise-cbor bytestring containers text unix
        ];
        description = "Fresco binding for Haskell";
        license = "unknown";
@@ -73129,8 +73422,8 @@ self: {
      }:
      mkDerivation {
        pname = "fswatch";
-       version = "0.1.0.1";
-       sha256 = "0vmgqcrn60dv02bqbwaypkypgbzjb2nzv56c81drpalqr21ppcry";
+       version = "0.1.0.2";
+       sha256 = "1k3592nfiy348aqg2q64k3w1vbzl7x7098jy73gp7ipzyfr9k1pp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -74965,16 +75258,19 @@ self: {
      }) {};
 
   "geni-gui" = callPackage
-    ({ mkDerivation, array, base, cabal-macosx, containers, directory
-     , filepath, GenI, graphviz, hslogger, json, mtl, process, text
-     , transformers, wx, wxcore, yaml-light
+    ({ mkDerivation, array, base, Cabal, cabal-macosx, containers
+     , directory, filepath, GenI, graphviz, hslogger, json, mtl, process
+     , text, transformers, wx, wxcore, yaml-light
      }:
      mkDerivation {
        pname = "geni-gui";
-       version = "0.24.1";
-       sha256 = "1kng7bv8amch6bswhica6xhmavc0r5phg402lg76xwz7ywrsc6y3";
+       version = "0.25.1";
+       sha256 = "1ykhliang0hknn1zrhvs9qjgi9lbl18lh5sgrrilr1a2kcqd8pkk";
        isLibrary = true;
        isExecutable = true;
+       setupHaskellDepends = [
+         base Cabal cabal-macosx directory filepath process
+       ];
        libraryHaskellDepends = [
          array base cabal-macosx containers directory filepath GenI graphviz
          hslogger json mtl process text transformers wx wxcore yaml-light
@@ -74993,8 +75289,8 @@ self: {
      }:
      mkDerivation {
        pname = "geni-util";
-       version = "0.24.1.1";
-       sha256 = "1ydxg10s6bk02i3mikb8aqjai099874gby26q50lwf9xp04csbfk";
+       version = "0.25.0";
+       sha256 = "0jpsiydbamyp3c7q61gw8c4jdcdgj7cvavli5x287krpm74s361z";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -75075,8 +75371,8 @@ self: {
      }:
      mkDerivation {
        pname = "geniserver";
-       version = "0.24.1.1";
-       sha256 = "1597ah64rqag20qx8dvjmdhhhsjzsfdq2f43y3jyy2cnzssj953c";
+       version = "0.25";
+       sha256 = "1r7p7blsrp9y4za57fvcjap12f0rbgglx5a724cn1nqhihdcpd5i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -79020,6 +79316,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "gjk2d" = callPackage
+    ({ mkDerivation, base, linear }:
+     mkDerivation {
+       pname = "gjk2d";
+       version = "0.1.0.0";
+       sha256 = "08fqm3may9vvifp3fvqvmv7n3i05w9w01c2dmg930fwlrw5lly9b";
+       libraryHaskellDepends = [ base linear ];
+       testHaskellDepends = [ base linear ];
+       homepage = "https://github.com/suzumiyasmith/gjk2d#readme";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gl" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath
      , fixed, half, hxt, mesa, transformers
@@ -85798,8 +86106,8 @@ self: {
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.5.3";
-       sha256 = "1ywmrr2frvp3pz4c6dvsp9vqwykhbwbdaykjpsyrjq0idn47akhf";
+       version = "0.5.4";
+       sha256 = "1gbn6bnlhaafycyfsfh5j4rbkd56nc65qny34ii9clr34d2cwkaq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -92275,6 +92583,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hasql_0_19_18_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base-prelude, bug, bytestring
+     , bytestring-strict-builder, contravariant, contravariant-extras
+     , criterion, data-default-class, dlist, either, hashable
+     , hashtables, loch-th, mtl, placeholders, postgresql-binary
+     , postgresql-libpq, profunctors, QuickCheck, quickcheck-instances
+     , rebase, rerebase, semigroups, tasty, tasty-hunit
+     , tasty-quickcheck, tasty-smallcheck, text, transformers, vector
+     }:
+     mkDerivation {
+       pname = "hasql";
+       version = "0.19.18.2";
+       sha256 = "064866vgiwpp39g3drw0gralra4via77rcqxri8279svm8m5vmbi";
+       libraryHaskellDepends = [
+         attoparsec base base-prelude bytestring bytestring-strict-builder
+         contravariant contravariant-extras data-default-class dlist either
+         hashable hashtables loch-th mtl placeholders postgresql-binary
+         postgresql-libpq profunctors semigroups text transformers vector
+       ];
+       testHaskellDepends = [
+         bug data-default-class QuickCheck quickcheck-instances rebase
+         rerebase tasty tasty-hunit tasty-quickcheck tasty-smallcheck
+       ];
+       benchmarkHaskellDepends = [ bug criterion rerebase ];
+       homepage = "https://github.com/nikita-volkov/hasql";
+       description = "An efficient PostgreSQL driver and a flexible mapping API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hasql-backend" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, either, free
      , list-t, text, transformers, vector
@@ -92484,6 +92822,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "hasql-simple" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, contravariant, hasql
+     , text, time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hasql-simple";
+       version = "0.1.0.0";
+       sha256 = "15cw3mb5gzzys3n58xs74jx9v9yn55xpdp3wn8dcchpllp68xzw3";
+       libraryHaskellDepends = [
+         aeson base bytestring contravariant hasql text time
+         unordered-containers vector
+       ];
+       homepage = "https://github.com/agrafix/hasql-simple#readme";
+       description = "A somewhat opinionated \"simpler\" API to hasql";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hasql-th" = callPackage
     ({ mkDerivation, base-prelude, bytestring, template-haskell, text
      }:
@@ -100857,8 +101212,8 @@ self: {
      }:
      mkDerivation {
        pname = "hprotoc";
-       version = "2.4.3";
-       sha256 = "1qdk5s1dv3v9pvf8hrr2cwgqsvk7pfiy1k3vvdqcv5cfnknqx0y1";
+       version = "2.4.4";
+       sha256 = "0vijl65rxir61nwx7sdgy6lcwgskyks3cdgcqd814smnavh6nhdn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -113068,6 +113423,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "irc-client_1_0_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, connection, containers
+     , contravariant, exceptions, irc-conduit, irc-ctcp, lens, mtl
+     , network-conduit-tls, old-locale, profunctors, stm, stm-conduit
+     , text, time, tls, transformers, x509, x509-store, x509-validation
+     }:
+     mkDerivation {
+       pname = "irc-client";
+       version = "1.0.0.0";
+       sha256 = "13l1ah90mchg6k0qdlfkjk880q8ikyfps3fsk05sn18jh1xqipnz";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring conduit connection containers contravariant
+         exceptions irc-conduit irc-ctcp mtl network-conduit-tls old-locale
+         profunctors stm stm-conduit text time tls transformers x509
+         x509-store x509-validation
+       ];
+       executableHaskellDepends = [
+         base bytestring conduit connection containers contravariant
+         exceptions irc-conduit irc-ctcp lens mtl network-conduit-tls
+         old-locale profunctors stm stm-conduit text time tls transformers
+         x509 x509-store x509-validation
+       ];
+       homepage = "https://github.com/barrucadu/irc-client";
+       description = "An IRC client library";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "irc-colors" = callPackage
     ({ mkDerivation, base, text }:
      mkDerivation {
@@ -116841,6 +117226,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "katip_0_5_0_2" = callPackage
+    ({ mkDerivation, aeson, async, auto-update, base, blaze-builder
+     , bytestring, containers, criterion, deepseq, directory, either
+     , filepath, hostname, microlens, microlens-th, monad-control, mtl
+     , old-locale, quickcheck-instances, regex-tdfa, resourcet
+     , safe-exceptions, scientific, semigroups, stm, string-conv, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, time, time-locale-compat, transformers, transformers-base
+     , transformers-compat, unix, unordered-containers
+     }:
+     mkDerivation {
+       pname = "katip";
+       version = "0.5.0.2";
+       sha256 = "1kiangj6l29ddchfzfp4xjnpnddyc9jzrg08b70z3jxbdv2vgvyg";
+       libraryHaskellDepends = [
+         aeson async auto-update base bytestring containers either hostname
+         microlens microlens-th monad-control mtl old-locale resourcet
+         safe-exceptions scientific semigroups stm string-conv
+         template-haskell text time transformers transformers-base
+         transformers-compat unix unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory microlens
+         quickcheck-instances regex-tdfa safe-exceptions stm tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         time time-locale-compat unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         aeson async base blaze-builder criterion deepseq directory filepath
+         safe-exceptions text time transformers unix
+       ];
+       homepage = "https://github.com/Soostone/katip";
+       description = "A structured logging framework";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "katip-elasticsearch" = callPackage
     ({ mkDerivation, aeson, async, base, bloodhound, bytestring
      , containers, criterion, deepseq, enclosed-exceptions, exceptions
@@ -117862,15 +118284,15 @@ self: {
 
   "knead" = callPackage
     ({ mkDerivation, base, llvm-extra, llvm-tf, storable-record
-     , storable-tuple, transformers, utility-ht
+     , storable-tuple, tfp, transformers, utility-ht
      }:
      mkDerivation {
        pname = "knead";
-       version = "0.2.2";
-       sha256 = "0vkynmxm5cql7bv8m5s44a1gpwahya4hp8p6n6j20ninfcc69xkg";
+       version = "0.2.3";
+       sha256 = "14wi37i3y8hvfiwfs82mg7nanin84if4wlxi3rdg4w3fkdqm9ycl";
        libraryHaskellDepends = [
-         base llvm-extra llvm-tf storable-record storable-tuple transformers
-         utility-ht
+         base llvm-extra llvm-tf storable-record storable-tuple tfp
+         transformers utility-ht
        ];
        homepage = "http://hub.darcs.net/thielema/knead/";
        description = "Repa array processing using LLVM JIT";
@@ -118049,6 +118471,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "kraken_0_1_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, http-client
+     , http-client-tls, mtl
+     }:
+     mkDerivation {
+       pname = "kraken";
+       version = "0.1.0";
+       sha256 = "12l24z6alscbdicp11nfc8fwmlhk5mjdjyh6xdqyvlzphp5yfp1k";
+       libraryHaskellDepends = [
+         aeson base bytestring http-client http-client-tls mtl
+       ];
+       description = "Kraken.io API client";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "krapsh" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base16-bytestring
      , binary, bytestring, containers, cryptohash-sha256, deepseq
@@ -127634,6 +128072,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mallard" = callPackage
+    ({ mkDerivation, base, byteable, bytestring, cryptohash, exceptions
+     , fgl, file-embed, hashable, hasql, hasql-optparse-applicative
+     , hasql-pool, hasql-transaction, Interpolation, lens, megaparsec
+     , mtl, optparse-applicative, optparse-text, path, path-io, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "mallard";
+       version = "0.6.0.4";
+       sha256 = "0dqaxi1990vzi1vx5smlwkyr0mjyqp3a4qffhhfi0nv92h537lkh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base byteable bytestring cryptohash exceptions fgl file-embed
+         hashable hasql hasql-pool hasql-transaction Interpolation lens
+         megaparsec mtl path path-io text unordered-containers
+       ];
+       executableHaskellDepends = [
+         base exceptions fgl hasql hasql-optparse-applicative hasql-pool
+         lens mtl optparse-applicative optparse-text path path-io text
+         unordered-containers
+       ];
+       homepage = "https://github.com/AndrewRademacher/mallard";
+       description = "Database migration and testing as a library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "managed" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
@@ -128569,6 +129035,42 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "marvin_0_2_4" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, configurator
+     , deepseq, directory, filepath, hashable, haskeline, hspec
+     , http-client, http-client-tls, http-types, irc-conduit, lens
+     , lifted-async, lifted-base, marvin-interpolate, monad-control
+     , monad-logger, monad-loops, mtl, mustache, network-uri
+     , optparse-applicative, random, stm, text, text-icu, time
+     , transformers, transformers-base, unordered-containers, vector
+     , wai, warp, warp-tls, websockets, wreq, wuss
+     }:
+     mkDerivation {
+       pname = "marvin";
+       version = "0.2.4";
+       sha256 = "13racl9vqnwm5x641c08qp5j67fw9i37dwcvbsvh5p7bggizzwgw";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring conduit configurator deepseq hashable
+         haskeline http-client http-client-tls http-types irc-conduit lens
+         lifted-async lifted-base marvin-interpolate monad-control
+         monad-logger monad-loops mtl network-uri optparse-applicative
+         random stm text text-icu time transformers transformers-base
+         unordered-containers vector wai warp warp-tls websockets wreq wuss
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring configurator directory filepath mustache
+         optparse-applicative text
+       ];
+       testHaskellDepends = [ base hspec ];
+       homepage = "https://marvin.readthedocs.io";
+       description = "A framework for modular, portable chat bots";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "marvin-interpolate" = callPackage
     ({ mkDerivation, base, haskell-src-meta, hspec, mtl, parsec
      , template-haskell, text
@@ -129816,7 +130318,7 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
-  "megaparsec_6_1_1" = callPackage
+  "megaparsec_6_2_0" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, hspec, hspec-expectations, mtl
      , parser-combinators, QuickCheck, scientific, text, transformers
@@ -129824,8 +130326,8 @@ self: {
      }:
      mkDerivation {
        pname = "megaparsec";
-       version = "6.1.1";
-       sha256 = "08vwcxh3538bsgcmghssg87p7nvyi49vmr3zf8mqh52wxh65ygl4";
+       version = "6.2.0";
+       sha256 = "1kyn7fcyckbjngpyxd2d4mny95sy71rk2s22yrkwyjgkza0fvslg";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers deepseq mtl
          parser-combinators scientific text transformers
@@ -131798,14 +132300,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_0_7_5_0" = callPackage
+  "miso_0_7_7_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, lucid
      , servant, servant-lucid, text, vector
      }:
      mkDerivation {
        pname = "miso";
-       version = "0.7.5.0";
-       sha256 = "1nfnsmhiqncahasm21y3m5626ra9glq2nvwjv15a5i6h3qw5m328";
+       version = "0.7.7.0";
+       sha256 = "1vbf43diffwd6bj7j1n9y165rdbp7x7sxmkfw43q4nwnnikvkkp6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132413,22 +132915,20 @@ self: {
     ({ mkDerivation, attoparsec, base, base64-bytestring, bytestring
      , containers, cryptohash, css-syntax, directory, filemanip
      , filepath, fsnotify, hspec, hspec-smallcheck, kraken, mtl
-     , network-uri, optparse-applicative, process, smallcheck, snap
+     , network-uri, optparse-applicative, process, smallcheck, snap-core
      , snap-server, stm, tagsoup, text, time, transformers, unix
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "mole";
-       version = "0.0.5";
-       sha256 = "14vqa4mszb37rlpimlqir4g39lv66bfvg9jp4hcqzj5gsny3a1qb";
-       revision = "4";
-       editedCabalFile = "1565y432g3xy8q9db5sg4nsrb4pn25sxjlb0d6psgfhajb0qlh3l";
+       version = "0.0.6";
+       sha256 = "0shsx1sc6rc5jxijvrc4bzqpjw4xdjq5ghlj8jnmm7gp8b6h6y5b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          attoparsec base base64-bytestring bytestring containers cryptohash
          css-syntax directory filemanip filepath fsnotify kraken mtl
-         network-uri optparse-applicative process snap snap-server stm
+         network-uri optparse-applicative process snap-core snap-server stm
          tagsoup text time transformers unix
        ];
        testHaskellDepends = [
@@ -135270,6 +135770,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "multi-instance" = callPackage
+    ({ mkDerivation, base, doctest }:
+     mkDerivation {
+       pname = "multi-instance";
+       version = "0.0.0.1";
+       sha256 = "09kqgh966z2n54mkrm1hbllfl8cws6s8caqlld1p8z502axmy5sk";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base doctest ];
+       homepage = "https://github.com/chris-martin/multi-instance#readme";
+       description = "Typeclasses augmented with a phantom type parameter";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "multi-trie" = callPackage
     ({ mkDerivation, base, composition, containers, HTF }:
      mkDerivation {
@@ -136615,6 +137128,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mysql-simple_0_4_3" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
+     , blaze-textual, bytestring, hspec, mysql, old-locale, pcre-light
+     , text, time
+     }:
+     mkDerivation {
+       pname = "mysql-simple";
+       version = "0.4.3";
+       sha256 = "12zryyrjkrglp0r8ra3kcmyksq8g864c5nfxa5d7w3rn9532lzjj";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring blaze-builder blaze-textual
+         bytestring mysql old-locale pcre-light text time
+       ];
+       testHaskellDepends = [ base hspec ];
+       homepage = "https://github.com/paul-rouse/mysql-simple";
+       description = "A mid-level MySQL client library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mysql-simple-quasi" = callPackage
     ({ mkDerivation, base, haskell-src-meta, mysql-simple
      , template-haskell
@@ -139459,15 +139992,15 @@ self: {
      }) {};
 
   "ngx-export" = callPackage
-    ({ mkDerivation, async, base, binary, bytestring, template-haskell
-     , unix
+    ({ mkDerivation, async, base, binary, bytestring, monad-loops
+     , template-haskell, unix
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "0.7.0.1";
-       sha256 = "1c1wp2wjbi36yf3m2zpvijyi0yy3mvi4zhgkijilyfc4i34arh7n";
+       version = "0.8.0.0";
+       sha256 = "0l4g7nxa2lhf804q17my3fz7hblzidn1rp2si0b9nnbl9h7264sq";
        libraryHaskellDepends = [
-         async base binary bytestring template-haskell unix
+         async base binary bytestring monad-loops template-haskell unix
        ];
        homepage = "http://github.com/lyokha/nginx-haskell-module";
        description = "Helper module for Nginx haskell module";
@@ -141777,6 +142310,24 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "ombra" = callPackage
+    ({ mkDerivation, base, Boolean, gl, hashable, hashtables, MemoTrie
+     , monad-control, transformers, transformers-base
+     , unordered-containers, vector-space
+     }:
+     mkDerivation {
+       pname = "ombra";
+       version = "1.0.0.0";
+       sha256 = "1mksrvidrl3nxfx5xy915sma23csw1iw959l5xl78r683kf4bkj7";
+       libraryHaskellDepends = [
+         base Boolean gl hashable hashtables MemoTrie monad-control
+         transformers transformers-base unordered-containers vector-space
+       ];
+       homepage = "https://github.com/ziocroc/Ombra";
+       description = "Render engine";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "omega" = callPackage
     ({ mkDerivation, array, base, containers, directory, filepath
      , pretty, time
@@ -144302,6 +144853,8 @@ self: {
        pname = "palette";
        version = "0.1.0.5";
        sha256 = "04lqmd0c02fp3x57gbga9qf05f4a6hr8p2ywlasm0dkr740m6d3l";
+       revision = "1";
+       editedCabalFile = "1a5qsbd43wmw1f3dj6vnmzd9imh9gsnz29jc47ivbgj4x6mdmsq1";
        libraryHaskellDepends = [ array base colour containers ];
        homepage = "http://projects.haskell.org/diagrams";
        description = "Utilities for choosing and creating color schemes";
@@ -144841,8 +145394,8 @@ self: {
      }:
      mkDerivation {
        pname = "panhandle";
-       version = "0.2.0.0";
-       sha256 = "1xkpivyw3r83hrksbq4vyf1ahqp86ck7m2ijgynbb962ifvwqrg0";
+       version = "0.3.0.0";
+       sha256 = "0bnqfxp451b935gsmaqc5j7cgs061bjsmz66g8sw00ycnjrvdk0a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base pandoc pandoc-types syb ];
@@ -146879,8 +147432,8 @@ self: {
      }:
      mkDerivation {
        pname = "pcf-font";
-       version = "0.2.1.1";
-       sha256 = "0746y3kqkh13cps9swgf9pp2kbrybxjbhs5wh38aqgpj64dwgcdc";
+       version = "0.2.2.0";
+       sha256 = "1vwqy2zkj0yb0b7hx3hrcfdcg46j67sv9l8ljik8wrm7811d0rwa";
        libraryHaskellDepends = [
          base binary bytestring containers vector zlib
        ];
@@ -146895,8 +147448,8 @@ self: {
      }:
      mkDerivation {
        pname = "pcf-font-embed";
-       version = "0.1.0.0";
-       sha256 = "0qbbsphl39k90j0cg45g9rzv3pnk6kzkjibkaa7qq70xb7i4didy";
+       version = "0.1.1.0";
+       sha256 = "0mp4kwx77vx6l2cl7kzqw4pa4wdwdm58g8imph814waygxkbrj4g";
        libraryHaskellDepends = [
          base bytestring pcf-font template-haskell vector
        ];
@@ -151301,6 +151854,30 @@ self: {
        license = "unknown";
      }) {};
 
+  "pointfree-fancy" = callPackage
+    ({ mkDerivation, array, base, containers, haskell-src-exts, HUnit
+     , QuickCheck, transformers
+     }:
+     mkDerivation {
+       pname = "pointfree-fancy";
+       version = "1.1.1.4";
+       sha256 = "1llqlxcgafbgzb84gzgwldb0lsa9nnqsn3irbrlljralx2zfhxk3";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base containers haskell-src-exts transformers
+       ];
+       executableHaskellDepends = [
+         array base containers haskell-src-exts transformers
+       ];
+       testHaskellDepends = [
+         array base containers haskell-src-exts HUnit QuickCheck
+         transformers
+       ];
+       description = "Tool for refactoring expressions into pointfree form";
+       license = "unknown";
+     }) {};
+
   "pointful" = callPackage
     ({ mkDerivation, base, containers, haskell-src-exts-simple, mtl
      , syb, transformers
@@ -153213,6 +153790,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "pragmatic-show" = callPackage
+    ({ mkDerivation, base, tasty, tasty-hunit, tasty-quickcheck
+     , vector-space
+     }:
+     mkDerivation {
+       pname = "pragmatic-show";
+       version = "0.1.0.2";
+       sha256 = "0wyn4rdhv8flhcaa41bv7yabs2l5sm5fp7znsdjr137g3v190xpl";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base tasty tasty-hunit tasty-quickcheck vector-space
+       ];
+       homepage = "https://github.com/leftaroundabout/pragmatic-show";
+       description = "Alternative Show class that gives shorter view if possible";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "preamble" = callPackage
     ({ mkDerivation, aeson, base, basic-prelude, exceptions
      , fast-logger, lens, monad-control, monad-logger, MonadRandom, mtl
@@ -155680,6 +156274,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers_2_4_4" = callPackage
+    ({ mkDerivation, array, base, binary, bytestring, containers
+     , directory, filepath, mtl, parsec, syb, utf8-string
+     }:
+     mkDerivation {
+       pname = "protocol-buffers";
+       version = "2.4.4";
+       sha256 = "1qlkilnxfx5grim0hxf7drg2m48z76f88d4r61sy71npybf3mqnv";
+       libraryHaskellDepends = [
+         array base binary bytestring containers directory filepath mtl
+         parsec syb utf8-string
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Parse Google Protocol Buffer specifications";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor" = callPackage
     ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
      mkDerivation {
@@ -155695,6 +156307,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "protocol-buffers-descriptor_2_4_4" = callPackage
+    ({ mkDerivation, base, bytestring, containers, protocol-buffers }:
+     mkDerivation {
+       pname = "protocol-buffers-descriptor";
+       version = "2.4.4";
+       sha256 = "0jr1clff6vn8lpx2rbc72angn0glc2v18ji5lqgzijri8zya9nqj";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers protocol-buffers
+       ];
+       homepage = "https://github.com/k-bx/protocol-buffers";
+       description = "Text.DescriptorProto.Options and code generated from the Google Protocol Buffer specification";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protocol-buffers-descriptor-fork" = callPackage
     ({ mkDerivation, base, bytestring, containers
      , protocol-buffers-fork
@@ -170888,6 +171516,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-checked-exceptions_0_4_1_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, doctest, Glob
+     , hspec-wai, http-api-data, http-client, http-media
+     , natural-transformation, optparse-applicative, profunctors
+     , servant, servant-client, servant-docs, servant-server, tagged
+     , tasty, tasty-hspec, tasty-hunit, text, wai, warp
+     }:
+     mkDerivation {
+       pname = "servant-checked-exceptions";
+       version = "0.4.1.0";
+       sha256 = "19h0vywlh6b41mdjpka4b7rz4l6gxmjlvji8nzbgkllsjgr81g3g";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring deepseq http-media profunctors servant
+         servant-client servant-docs servant-server tagged text
+       ];
+       executableHaskellDepends = [
+         aeson base http-api-data http-client natural-transformation
+         optparse-applicative servant servant-client servant-docs
+         servant-server text wai warp
+       ];
+       testHaskellDepends = [
+         base bytestring doctest Glob hspec-wai servant servant-server tasty
+         tasty-hspec tasty-hunit wai
+       ];
+       homepage = "https://github.com/cdepillabout/servant-checked-exceptions";
+       description = "Checked exceptions for Servant APIs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "servant-client" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-compat
      , base64-bytestring, bytestring, deepseq, exceptions, generics-sop
@@ -171708,14 +172368,14 @@ self: {
      , directory, either, errors, exceptions, filepath, heist, hspec
      , hspec-core, hspec-snap, http-api-data, http-types, HUnit
      , io-streams, lens, map-syntax, mmorph, mtl, network, network-uri
-     , parsec, process, QuickCheck, servant, snap, snap-core
+     , parsec, process, QuickCheck, servant, snap, snap-core, snap-cors
      , snap-server, string-conversions, temporary, text, time
      , transformers, word8
      }:
      mkDerivation {
        pname = "servant-snap";
-       version = "0.8";
-       sha256 = "00wc6kzk01jj1kfapqijffbws9x7cwvddxir0b5yy9dpbz56zfg8";
+       version = "0.8.0.1";
+       sha256 = "06n9zvz18hwizi5iqldlhgwr1m83fg5l3dzlaarl2rgvr1dnkh2i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -171732,8 +172392,8 @@ self: {
          aeson base base64-bytestring bytestring case-insensitive containers
          digestive-functors directory either exceptions hspec hspec-core
          hspec-snap http-types HUnit lens mtl network parsec process
-         QuickCheck servant snap snap-core snap-server string-conversions
-         temporary text time transformers
+         QuickCheck servant snap snap-core snap-cors snap-server
+         string-conversions temporary text time transformers
        ];
        homepage = "http://haskell-servant.github.io/";
        description = "A family of combinators for defining webservices APIs and serving them";
@@ -172839,6 +173499,40 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shake_0_16" = callPackage
+    ({ mkDerivation, base, binary, bytestring, deepseq, directory
+     , extra, filepath, hashable, js-flot, js-jquery, primitive, process
+     , QuickCheck, random, time, transformers, unix
+     , unordered-containers, utf8-string
+     }:
+     mkDerivation {
+       pname = "shake";
+       version = "0.16";
+       sha256 = "039b8yrp7nskya30fahzcf8w2rl8jj277hddrcfx3zwbxlcfldcg";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base binary bytestring deepseq directory extra filepath hashable
+         js-flot js-jquery primitive process random time transformers unix
+         unordered-containers utf8-string
+       ];
+       executableHaskellDepends = [
+         base binary bytestring deepseq directory extra filepath hashable
+         js-flot js-jquery primitive process random time transformers unix
+         unordered-containers utf8-string
+       ];
+       testHaskellDepends = [
+         base binary bytestring deepseq directory extra filepath hashable
+         js-flot js-jquery primitive process QuickCheck random time
+         transformers unix unordered-containers utf8-string
+       ];
+       homepage = "http://shakebuild.com";
+       description = "Build system library, like Make, but more accurate dependencies";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shake-cabal-build" = callPackage
     ({ mkDerivation, base, Cabal, directory, filepath, process }:
      mkDerivation {
@@ -176789,6 +177483,55 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "snap-server_1_0_3_3" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
+     , bytestring, bytestring-builder, case-insensitive, clock
+     , containers, criterion, deepseq, directory, filepath, HsOpenSSL
+     , http-common, http-streams, HUnit, io-streams, io-streams-haproxy
+     , lifted-base, monad-control, mtl, network, old-locale
+     , openssl-streams, parallel, QuickCheck, random, snap-core
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, threads, time, transformers, unix, unix-compat, vector
+     }:
+     mkDerivation {
+       pname = "snap-server";
+       version = "1.0.3.3";
+       sha256 = "1vjfpgcl09l974mdsvgxdlqcl68xmn33z1scx3sfyvcnz32xnnkl";
+       configureFlags = [ "-fopenssl" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         attoparsec base blaze-builder bytestring bytestring-builder
+         case-insensitive clock containers filepath HsOpenSSL io-streams
+         io-streams-haproxy lifted-base mtl network old-locale
+         openssl-streams snap-core text time unix unix-compat vector
+       ];
+       executableHaskellDepends = [
+         attoparsec base blaze-builder bytestring bytestring-builder
+         case-insensitive clock containers directory HsOpenSSL io-streams
+         io-streams-haproxy lifted-base mtl network old-locale
+         openssl-streams snap-core text time transformers unix unix-compat
+         vector
+       ];
+       testHaskellDepends = [
+         attoparsec base base16-bytestring blaze-builder bytestring
+         bytestring-builder case-insensitive clock containers deepseq
+         directory filepath HsOpenSSL http-common http-streams HUnit
+         io-streams io-streams-haproxy lifted-base monad-control mtl network
+         old-locale openssl-streams parallel QuickCheck random snap-core
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+         threads time transformers unix unix-compat vector
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base blaze-builder bytestring bytestring-builder
+         criterion io-streams io-streams-haproxy snap-core vector
+       ];
+       homepage = "http://snapframework.com/";
+       description = "A web server for the Snap Framework";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "snap-templates" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , directory-tree, filepath, hashable, old-time, template-haskell
@@ -183278,6 +184021,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-types" = callPackage
+    ({ mkDerivation, array, base, bytestring, containers, foundation
+     , text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "strict-types";
+       version = "0.1.0.1";
+       sha256 = "13lrk23045k576lh0ijyw4w903nzs9si980g24xcax3aqdw42iwz";
+       libraryHaskellDepends = [
+         array base bytestring containers foundation text
+         unordered-containers vector
+       ];
+       homepage = "https://github.com/pepeiborra/strict-types";
+       description = "A type level predicate ranging over strict types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "strict-writer" = callPackage
     ({ mkDerivation, base, doctest, mtl }:
      mkDerivation {
@@ -184896,6 +185656,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "swagger2_2_1_6" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, base-compat, bytestring
+     , Cabal, cabal-doctest, containers, doctest, generics-sop, Glob
+     , hashable, hspec, http-media, HUnit, insert-ordered-containers
+     , lens, mtl, network, QuickCheck, scientific, template-haskell
+     , text, time, transformers, transformers-compat
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "swagger2";
+       version = "2.1.6";
+       sha256 = "01a29h56vfyw0ilij1pn6qwy50ca90kyj884vs1q52vvh572758j";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson base base-compat bytestring containers generics-sop hashable
+         http-media insert-ordered-containers lens mtl network scientific
+         template-haskell text time transformers transformers-compat
+         unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base base-compat bytestring containers doctest Glob
+         hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
+         text time unordered-containers vector
+       ];
+       homepage = "https://github.com/GetShopTV/swagger2";
+       description = "Swagger 2.0 data model";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "swapper" = callPackage
     ({ mkDerivation, base, binary, bytestring, deepseq, happstack-data
      , happstack-state, parallel, tokyocabinet
@@ -185061,8 +185851,8 @@ self: {
      }:
      mkDerivation {
        pname = "syb-with-class";
-       version = "0.6.1.7";
-       sha256 = "1fvawrlipr3rybbrmldcdlsw46vyi695a0c30jxxlcy5v1q1hljw";
+       version = "0.6.1.8";
+       sha256 = "01b187jhhfp77l4zgks5gszkn9jmgjc44mw9yympw1fsfskljiz3";
        libraryHaskellDepends = [
          array base bytestring containers template-haskell
        ];
@@ -194916,6 +195706,35 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "tree-diff" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
+     , base-compat, bytestring, Cabal, cabal-doctest, containers
+     , doctest, generics-sop, hashable, MemoTrie, parsec, parsers
+     , pretty, QuickCheck, scientific, tagged, tasty, tasty-golden
+     , tasty-quickcheck, template-haskell, text, time, trifecta
+     , unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "tree-diff";
+       version = "0";
+       sha256 = "1xiwnq1rrbkzarz5ylnq0p8xk3ldjg7cj7cbmdalr1507qg7wdn7";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       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 doctest parsec
+         QuickCheck tasty tasty-golden tasty-quickcheck template-haskell
+         trifecta
+       ];
+       homepage = "https://github.com/phadej/tree-diff";
+       description = "Diffing of (expression) trees";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tree-fun" = callPackage
     ({ mkDerivation, base, containers, mtl }:
      mkDerivation {
@@ -195972,8 +196791,8 @@ self: {
      }:
      mkDerivation {
        pname = "tweet-hs";
-       version = "1.0.1.7";
-       sha256 = "026hmzrc80mc2jpvd0cnxa6kj4lfirh7ygdh1xaw51svrql8320j";
+       version = "1.0.1.8";
+       sha256 = "0ryj00ml2sd28d1hscz2fz396x2xwbdl1ncv7mj9gm9mfby9zb24";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -196472,10 +197291,12 @@ self: {
        pname = "twitter-types-lens";
        version = "0.7.2";
        sha256 = "04mjrwd5f960kd7v5xq4wlyzksw06d3qj52ql1lhjki3f3papzjg";
+       revision = "1";
+       editedCabalFile = "0rag7vz1irirnqxh18xwvp8rg7ysx4lwrb9ysv5wcfjdggp6b6gs";
        libraryHaskellDepends = [
          base lens template-haskell text time twitter-types
        ];
-       homepage = "https://github.com/himura/twitter-types-lens";
+       homepage = "https://github.com/himura/twitter-types";
        description = "Twitter JSON types (lens powered)";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -200188,8 +201009,8 @@ self: {
      }:
      mkDerivation {
        pname = "userid";
-       version = "0.1.3";
-       sha256 = "02vcgm7n4s5lljp93q6a3b7xgw6vm6m0hm8qz9qfzgllb2d8b353";
+       version = "0.1.3.1";
+       sha256 = "12alrvzh1z15md5gbvci58xffw35g4626qr30v7cz6sz4pplfnb9";
        libraryHaskellDepends = [
          aeson base boomerang cereal safecopy web-routes web-routes-th
        ];
@@ -201680,17 +202501,20 @@ self: {
      }) {};
 
   "vector-builder" = callPackage
-    ({ mkDerivation, base, base-prelude, quickcheck-instances, rebase
-     , semigroups, tasty, tasty-hunit, tasty-quickcheck, vector
+    ({ mkDerivation, base, base-prelude, bug, criterion, foldl
+     , quickcheck-instances, rebase, rerebase, semigroups, tasty
+     , tasty-hunit, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "vector-builder";
-       version = "0.3.1";
-       sha256 = "1l6sfgd2s107zkp1qd1w6jdjcbznp31769qf99pxar087f697wvp";
+       version = "0.3.3.1";
+       sha256 = "03z461123b59z0r2fzhjpb4jxv4wkjkaqbsci526brkazl4qk0x8";
        libraryHaskellDepends = [ base base-prelude semigroups vector ];
        testHaskellDepends = [
-         quickcheck-instances rebase tasty tasty-hunit tasty-quickcheck
+         bug criterion foldl quickcheck-instances rebase rerebase tasty
+         tasty-hunit tasty-quickcheck
        ];
+       benchmarkHaskellDepends = [ criterion foldl rerebase ];
        homepage = "https://github.com/nikita-volkov/vector-builder";
        description = "Vector builder";
        license = stdenv.lib.licenses.mit;
@@ -203991,8 +204815,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-middleware-json-errors";
-       version = "0.1.1";
-       sha256 = "0704hyfzc8jqvdny9wz3j0b204vq7b07c1wwcin9ir9d6hha7aih";
+       version = "0.1.2";
+       sha256 = "0zid8by1d4rqnbigvj6wbikfnq5gc0k3k75is46zf66y8i3bcd4l";
        libraryHaskellDepends = [
          aeson base binary bytestring http-types text wai
        ];
@@ -206285,8 +207109,8 @@ self: {
      }:
      mkDerivation {
        pname = "werewolf";
-       version = "1.5.1.1";
-       sha256 = "0s2b8dqbmcx6yc9z68n2s7yb2iyvg9azw1pb5da15lkdhalnd0bh";
+       version = "1.5.2.0";
+       sha256 = "19gkbnj8abfh79vyaa9j2ca90g386npfwqkdi4wrl240v8x8as78";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -207517,8 +208341,8 @@ self: {
      }:
      mkDerivation {
        pname = "wrecker-ui";
-       version = "2.4.0.0";
-       sha256 = "1229wwbp9ml5l36n9z0cmhx4fx70mhgf01jw26w0m66q1g3gxb1n";
+       version = "2.4.1.0";
+       sha256 = "07agqw6pwhly4qhkyiij9zlxisls1lhsblld4bjswaziicab2p3m";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -213959,8 +214783,8 @@ self: {
      }:
      mkDerivation {
        pname = "yst";
-       version = "0.5.1.1";
-       sha256 = "1b33q6k76bwg5614b670mvls0iwyp2yqfdqc9r86m95x7ar7brq8";
+       version = "0.5.1.2";
+       sha256 = "0q185phadgi8m45ii90x5k7mpw2xqf021q55q00nqyw8l7yai8pr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;

From 2a1c656c54aad3ac0634cb5d6eadd733c8cdbbe3 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Sun, 24 Sep 2017 20:48:27 +0200
Subject: [PATCH 311/533] cabal2nix: update to version 2.6

 - Add support for the 01-index tarball of cabal-install 2.x.
 - Add shell completions for fish and zsh.
---
 pkgs/development/haskell-modules/configuration-common.nix | 7 +++++++
 pkgs/top-level/all-packages.nix                           | 4 +++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index d983934e83a5..c6faec61b541 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -957,4 +957,11 @@ self: super: {
     protolude = super.protolude_0_2;
   };
 
+  # This tool needs the latest hackage-db version. Using the latest version of
+  # optparse-applicative allows us to generate completions for fish and zsh.
+  cabal2nix = super.cabal2nix.overrideScope (self: super: {
+    hackage-db = self.hackage-db_2_0;
+    optparse-applicative = self.optparse-applicative_0_14_0_0;
+  });
+
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2ba0c3add19a..7ad1b54dd5cb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -808,8 +808,10 @@ with pkgs;
       makeWrapper $exe $out/bin/${drv.pname} \
         --prefix PATH ":" "${nix}/bin" \
         --prefix PATH ":" "${nix-prefetch-scripts}/bin"
-      mkdir -p $out/share/bash-completion/completions
+      mkdir -p $out/share/{bash-completion/completions,zsh/vendor-completions,fish/completions}
       $exe --bash-completion-script $exe >$out/share/bash-completion/completions/${drv.pname}
+      $exe --zsh-completion-script $exe >$out/share/zsh/vendor-completions/_${drv.pname}
+      $exe --fish-completion-script $exe >$out/share/fish/completions/${drv.pname}.fish
     '';
   });
 

From 62597385c349068bf9421afb1f97af0576bca1d7 Mon Sep 17 00:00:00 2001
From: Tristan Helmich <tristan.helmich@gmail.com>
Date: Sun, 24 Sep 2017 21:04:33 +0200
Subject: [PATCH 312/533] oath-toolkit: 2.6.1 -> 2.6.2

---
 pkgs/tools/security/oath-toolkit/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/security/oath-toolkit/default.nix b/pkgs/tools/security/oath-toolkit/default.nix
index 98635f8cc85d..965ecda164be 100644
--- a/pkgs/tools/security/oath-toolkit/default.nix
+++ b/pkgs/tools/security/oath-toolkit/default.nix
@@ -6,14 +6,14 @@ let
     else pam;
 in
 stdenv.mkDerivation rec {
-  name = "oath-toolkit-2.6.1";
+  name = "oath-toolkit-2.6.2";
 
   src = fetchurl {
     url = "mirror://savannah/oath-toolkit/${name}.tar.gz";
-    sha256 = "0ybg0gnddmhxga0jwdipyz8jv5mxs0kiiflhvzffl9mw0wcq6mww";
+    sha256 = "182ah8vfbg0yhv6mh1b6ap944d0na6x7lpfkwkmzb6jl9gx4cd5h";
   };
 
-  
+
   buildInputs = [ securityDependency ];
 
   meta = {

From cd4eba7c0eeb2977270c23bedd9b6e1e707e7ca2 Mon Sep 17 00:00:00 2001
From: William Casarin <jb55@jb55.com>
Date: Sun, 24 Sep 2017 12:10:20 -0700
Subject: [PATCH 313/533] swift: remove me as maintainer

I don't use this anymore
---
 pkgs/development/compilers/swift/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix
index 96b22b630f4f..6cc9f372b978 100644
--- a/pkgs/development/compilers/swift/default.nix
+++ b/pkgs/development/compilers/swift/default.nix
@@ -259,7 +259,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "The Swift Programming Language";
     homepage = https://github.com/apple/swift;
-    maintainers = with maintainers; [ jb55 dtzWill ];
+    maintainers = with maintainers; [ dtzWill ];
     license = licenses.asl20;
     # Swift doesn't support 32bit Linux, unknown on other platforms.
     platforms = [ "x86_64-linux" ];

From ec075b40ec5127cd1dc42601309e32254c00a993 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Sun, 24 Sep 2017 23:00:40 +0200
Subject: [PATCH 314/533] fscryptctl: init at 2017-09-12

---
 pkgs/os-specific/linux/fscryptctl/default.nix | 32 +++++++++++++++++++
 .../linux/fscryptctl/install.patch            | 22 +++++++++++++
 pkgs/top-level/all-packages.nix               |  1 +
 3 files changed, 55 insertions(+)
 create mode 100644 pkgs/os-specific/linux/fscryptctl/default.nix
 create mode 100644 pkgs/os-specific/linux/fscryptctl/install.patch

diff --git a/pkgs/os-specific/linux/fscryptctl/default.nix b/pkgs/os-specific/linux/fscryptctl/default.nix
new file mode 100644
index 000000000000..81cd95332c81
--- /dev/null
+++ b/pkgs/os-specific/linux/fscryptctl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub }:
+
+# Don't use this for anything important yet!
+
+stdenv.mkDerivation rec {
+  name = "fscryptctl-unstable-${version}";
+  version = "2017-09-12";
+
+  goPackagePath = "github.com/google/fscrypt";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "fscryptctl";
+    rev = "f037dcf4354ce8f25d0f371b58dfe7a7ac27576f";
+    sha256 = "1dw1y6jbm2ibn7npvpw6cl28rcz0jz4as2yl6walz7ppmqbj9scf";
+  };
+
+  patches = [ ./install.patch ];
+
+  makeFlags = [ "DESTDIR=$(out)/bin" ];
+
+  meta = with stdenv.lib; {
+    description = ''
+      A low-level tool that handles raw keys and manages policies for Linux
+      filesystem encryption
+    '';
+    inherit (src.meta) homepage;
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/pkgs/os-specific/linux/fscryptctl/install.patch b/pkgs/os-specific/linux/fscryptctl/install.patch
new file mode 100644
index 000000000000..11f9843bbfb0
--- /dev/null
+++ b/pkgs/os-specific/linux/fscryptctl/install.patch
@@ -0,0 +1,22 @@
+--- a/Makefile	2017-09-24 22:48:19.322116085 +0200
++++ b/Makefile	2017-09-24 22:50:07.655725022 +0200
+@@ -19,7 +19,7 @@
+ CFLAGS += -O2 -Wall
+ 
+ INSTALL = install
+-DESTDIR = /usr/local/bin
++DESTDIR ?= /usr/local/bin
+ 
+ OBJECTS = $(NAME).o sha512.o
+ 
+@@ -38,8 +38,8 @@
+ 	@python -m pytest test.py -s -q
+ 
+ install: $(NAME)
+-	$(INSTALL) -d $(DEST_DIR)
+-	$(INSTALL) $(NAME) $(DEST_DIR)
++	$(INSTALL) -d $(DESTDIR)
++	$(INSTALL) $(NAME) $(DESTDIR)
+ 
+ clean:
+ 	rm -f $(OBJECTS)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e753b9d9630d..f9074468095a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12034,6 +12034,7 @@ with pkgs;
 
   # unstable until the first 1.x release
   fscrypt-experimental = callPackage ../os-specific/linux/fscrypt { };
+  fscryptctl-experimental = callPackage ../os-specific/linux/fscryptctl { };
 
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { inherit (gnome2) gtk_doc; inherit (python3Packages) pygobject3 pillow; };
 

From 7055b4aa452f19a8b234e81eff46b6e4ff227135 Mon Sep 17 00:00:00 2001
From: Dario Bertini <berdario@google.com>
Date: Sun, 24 Sep 2017 13:53:16 +0100
Subject: [PATCH 315/533] Fix tests for Sshuttle on Darwin.

---
 pkgs/tools/security/sshuttle/darwin.patch | 588 ++++++++++++++++++++++
 pkgs/tools/security/sshuttle/default.nix  |   2 +-
 2 files changed, 589 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/tools/security/sshuttle/darwin.patch

diff --git a/pkgs/tools/security/sshuttle/darwin.patch b/pkgs/tools/security/sshuttle/darwin.patch
new file mode 100644
index 000000000000..ccd2ab047474
--- /dev/null
+++ b/pkgs/tools/security/sshuttle/darwin.patch
@@ -0,0 +1,588 @@
+diff --git a/sshuttle/tests/client/test_firewall.py b/sshuttle/tests/client/test_firewall.py
+index 6201601..927ea61 100644
+--- a/sshuttle/tests/client/test_firewall.py
++++ b/sshuttle/tests/client/test_firewall.py
+@@ -7,17 +7,17 @@ import sshuttle.firewall
+ 
+ def setup_daemon():
+     stdin = io.StringIO(u"""ROUTES
+-2,24,0,1.2.3.0,8000,9000
+-2,32,1,1.2.3.66,8080,8080
+-10,64,0,2404:6800:4004:80c::,0,0
+-10,128,1,2404:6800:4004:80c::101f,80,80
++{inet},24,0,1.2.3.0,8000,9000
++{inet},32,1,1.2.3.66,8080,8080
++{inet6},64,0,2404:6800:4004:80c::,0,0
++{inet6},128,1,2404:6800:4004:80c::101f,80,80
+ NSLIST
+-2,1.2.3.33
+-10,2404:6800:4004:80c::33
++{inet},1.2.3.33
++{inet6},2404:6800:4004:80c::33
+ PORTS 1024,1025,1026,1027
+ GO 1
+ HOST 1.2.3.3,existing
+-""")
++""".format(inet=socket.AF_INET, inet6=socket.AF_INET6))
+     stdout = Mock()
+     return stdin, stdout
+ 
+@@ -117,18 +117,18 @@ def test_main(mock_get_method, mock_setup_daemon, mock_rewrite_etc_hosts):
+         call('not_auto'),
+         call().setup_firewall(
+             1024, 1026,
+-            [(10, u'2404:6800:4004:80c::33')],
+-            10,
+-            [(10, 64, False, u'2404:6800:4004:80c::', 0, 0),
+-                (10, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
++            [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++            socket.AF_INET6,
++            [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 0, 0),
++                (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
+             True),
+         call().setup_firewall(
+             1025, 1027,
+-            [(2, u'1.2.3.33')],
+-            2,
+-            [(2, 24, False, u'1.2.3.0', 8000, 9000),
+-                (2, 32, True, u'1.2.3.66', 8080, 8080)],
++            [(socket.AF_INET, u'1.2.3.33')],
++            socket.AF_INET,
++            [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
++                (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
+             True),
+-        call().restore_firewall(1024, 10, True),
+-        call().restore_firewall(1025, 2, True),
++        call().restore_firewall(1024, socket.AF_INET6, True),
++        call().restore_firewall(1025, socket.AF_INET, True),
+     ]
+diff --git a/sshuttle/tests/client/test_helpers.py b/sshuttle/tests/client/test_helpers.py
+index 67c6682..527983b 100644
+--- a/sshuttle/tests/client/test_helpers.py
++++ b/sshuttle/tests/client/test_helpers.py
+@@ -132,10 +132,10 @@ nameserver 2404:6800:4004:80c::4
+ 
+     ns = sshuttle.helpers.resolvconf_nameservers()
+     assert ns == [
+-        (2, u'192.168.1.1'), (2, u'192.168.2.1'),
+-        (2, u'192.168.3.1'), (2, u'192.168.4.1'),
+-        (10, u'2404:6800:4004:80c::1'), (10, u'2404:6800:4004:80c::2'),
+-        (10, u'2404:6800:4004:80c::3'), (10, u'2404:6800:4004:80c::4')
++        (socket.AF_INET, u'192.168.1.1'), (socket.AF_INET, u'192.168.2.1'),
++        (socket.AF_INET, u'192.168.3.1'), (socket.AF_INET, u'192.168.4.1'),
++        (socket.AF_INET6, u'2404:6800:4004:80c::1'), (socket.AF_INET6, u'2404:6800:4004:80c::2'),
++        (socket.AF_INET6, u'2404:6800:4004:80c::3'), (socket.AF_INET6, u'2404:6800:4004:80c::4')
+     ]
+ 
+ 
+@@ -155,10 +155,10 @@ nameserver 2404:6800:4004:80c::4
+ """)
+     ns = sshuttle.helpers.resolvconf_random_nameserver()
+     assert ns in [
+-        (2, u'192.168.1.1'), (2, u'192.168.2.1'),
+-        (2, u'192.168.3.1'), (2, u'192.168.4.1'),
+-        (10, u'2404:6800:4004:80c::1'), (10, u'2404:6800:4004:80c::2'),
+-        (10, u'2404:6800:4004:80c::3'), (10, u'2404:6800:4004:80c::4')
++        (socket.AF_INET, u'192.168.1.1'), (socket.AF_INET, u'192.168.2.1'),
++        (socket.AF_INET, u'192.168.3.1'), (socket.AF_INET, u'192.168.4.1'),
++        (socket.AF_INET6, u'2404:6800:4004:80c::1'), (socket.AF_INET6, u'2404:6800:4004:80c::2'),
++        (socket.AF_INET6, u'2404:6800:4004:80c::3'), (socket.AF_INET6, u'2404:6800:4004:80c::4')
+     ]
+ 
+ 
+diff --git a/sshuttle/tests/client/test_methods_nat.py b/sshuttle/tests/client/test_methods_nat.py
+index 4ae571b..91d7e45 100644
+--- a/sshuttle/tests/client/test_methods_nat.py
++++ b/sshuttle/tests/client/test_methods_nat.py
+@@ -84,10 +84,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+     with pytest.raises(Exception) as excinfo:
+         method.setup_firewall(
+             1024, 1026,
+-            [(10, u'2404:6800:4004:80c::33')],
+-            10,
+-            [(10, 64, False, u'2404:6800:4004:80c::', 0, 0),
+-                (10, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
++            [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++            socket.AF_INET6,
++            [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 0, 0),
++                (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
+             True)
+     assert str(excinfo.value) \
+         == 'Address family "AF_INET6" unsupported by nat method_name'
+@@ -98,10 +98,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+     with pytest.raises(Exception) as excinfo:
+         method.setup_firewall(
+             1025, 1027,
+-            [(2, u'1.2.3.33')],
+-            2,
+-            [(2, 24, False, u'1.2.3.0', 8000, 9000),
+-                (2, 32, True, u'1.2.3.66', 8080, 8080)],
++            [(socket.AF_INET, u'1.2.3.33')],
++            socket.AF_INET,
++            [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
++                (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
+             True)
+     assert str(excinfo.value) == 'UDP not supported by nat method_name'
+     assert mock_ipt_chain_exists.mock_calls == []
+@@ -110,10 +110,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+ 
+     method.setup_firewall(
+         1025, 1027,
+-        [(2, u'1.2.3.33')],
+-        2,
+-        [(2, 24, False, u'1.2.3.0', 8000, 9000),
+-            (2, 32, True, u'1.2.3.66', 8080, 8080)],
++        [(socket.AF_INET, u'1.2.3.33')],
++        socket.AF_INET,
++        [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
++            (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
+         False)
+     assert mock_ipt_chain_exists.mock_calls == [
+         call(2, 'nat', 'sshuttle-1025')
+diff --git a/sshuttle/tests/client/test_methods_pf.py b/sshuttle/tests/client/test_methods_pf.py
+index 5df57af..fef54e0 100644
+--- a/sshuttle/tests/client/test_methods_pf.py
++++ b/sshuttle/tests/client/test_methods_pf.py
+@@ -180,10 +180,10 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1024, 1026,
+-        [(10, u'2404:6800:4004:80c::33')],
+-        10,
+-        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
+-            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
++        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++        socket.AF_INET6,
++        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
++            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
+         False)
+     assert mock_ioctl.mock_calls == [
+         call(mock_pf_get_dev(), 0xC4704433, ANY),
+@@ -218,10 +218,10 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+     with pytest.raises(Exception) as excinfo:
+         method.setup_firewall(
+             1025, 1027,
+-            [(2, u'1.2.3.33')],
+-            2,
+-            [(2, 24, False, u'1.2.3.0', 0, 0),
+-                (2, 32, True, u'1.2.3.66', 80, 80)],
++            [(socket.AF_INET, u'1.2.3.33')],
++            socket.AF_INET,
++            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
++                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+             True)
+     assert str(excinfo.value) == 'UDP not supported by pf method_name'
+     assert mock_pf_get_dev.mock_calls == []
+@@ -230,9 +230,9 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1025, 1027,
+-        [(2, u'1.2.3.33')],
+-        2,
+-        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
++        [(socket.AF_INET, u'1.2.3.33')],
++        socket.AF_INET,
++        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+         False)
+     assert mock_ioctl.mock_calls == [
+         call(mock_pf_get_dev(), 0xC4704433, ANY),
+@@ -262,7 +262,7 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+     mock_ioctl.reset_mock()
+     mock_pfctl.reset_mock()
+ 
+-    method.restore_firewall(1025, 2, False)
++    method.restore_firewall(1025, socket.AF_INET, False)
+     assert mock_ioctl.mock_calls == []
+     assert mock_pfctl.mock_calls == [
+         call('-a sshuttle-1025 -F all'),
+@@ -286,10 +286,10 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1024, 1026,
+-        [(10, u'2404:6800:4004:80c::33')],
+-        10,
+-        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
+-            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
++        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++        socket.AF_INET6,
++        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
++            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
+         False)
+ 
+     assert mock_pfctl.mock_calls == [
+@@ -315,10 +315,10 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+     with pytest.raises(Exception) as excinfo:
+         method.setup_firewall(
+             1025, 1027,
+-            [(2, u'1.2.3.33')],
+-            2,
+-            [(2, 24, False, u'1.2.3.0', 0, 0),
+-                (2, 32, True, u'1.2.3.66', 80, 80)],
++            [(socket.AF_INET, u'1.2.3.33')],
++            socket.AF_INET,
++            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
++                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+             True)
+     assert str(excinfo.value) == 'UDP not supported by pf method_name'
+     assert mock_pf_get_dev.mock_calls == []
+@@ -327,9 +327,9 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1025, 1027,
+-        [(2, u'1.2.3.33')],
+-        2,
+-        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
++        [(socket.AF_INET, u'1.2.3.33')],
++        socket.AF_INET,
++        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+         False)
+     assert mock_ioctl.mock_calls == [
+         call(mock_pf_get_dev(), 0xC4704433, ANY),
+@@ -381,10 +381,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1024, 1026,
+-        [(10, u'2404:6800:4004:80c::33')],
+-        10,
+-        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
+-            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
++        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++        socket.AF_INET6,
++        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
++            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
+         False)
+ 
+     assert mock_ioctl.mock_calls == [
+@@ -416,10 +416,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+     with pytest.raises(Exception) as excinfo:
+         method.setup_firewall(
+             1025, 1027,
+-            [(2, u'1.2.3.33')],
+-            2,
+-            [(2, 24, False, u'1.2.3.0', 0, 0),
+-                (2, 32, True, u'1.2.3.66', 80, 80)],
++            [(socket.AF_INET, u'1.2.3.33')],
++            socket.AF_INET,
++            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
++                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+             True)
+     assert str(excinfo.value) == 'UDP not supported by pf method_name'
+     assert mock_pf_get_dev.mock_calls == []
+@@ -428,10 +428,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
+ 
+     method.setup_firewall(
+         1025, 1027,
+-        [(2, u'1.2.3.33')],
+-        2,
+-        [(2, 24, False, u'1.2.3.0', 0, 0),
+-            (2, 32, True, u'1.2.3.66', 80, 80)],
++        [(socket.AF_INET, u'1.2.3.33')],
++        socket.AF_INET,
++        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
++            (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+         False)
+     assert mock_ioctl.mock_calls == [
+         call(mock_pf_get_dev(), 0xcd48441a, ANY),
+diff --git a/sshuttle/tests/client/test_methods_tproxy.py b/sshuttle/tests/client/test_methods_tproxy.py
+index 268e60c..acc45fd 100644
+--- a/sshuttle/tests/client/test_methods_tproxy.py
++++ b/sshuttle/tests/client/test_methods_tproxy.py
+@@ -1,3 +1,5 @@
++import socket
++
+ from mock import Mock, patch, call
+ 
+ from sshuttle.methods import get_method
+@@ -49,7 +51,7 @@ def test_send_udp(mock_socket):
+     assert sock.mock_calls == []
+     assert mock_socket.mock_calls == [
+         call(sock.family, 2),
+-        call().setsockopt(1, 2, 1),
++        call().setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1),
+         call().setsockopt(0, 19, 1),
+         call().bind('127.0.0.2'),
+         call().sendto("2222222", '127.0.0.1'),
+@@ -100,71 +102,71 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+ 
+     method.setup_firewall(
+         1024, 1026,
+-        [(10, u'2404:6800:4004:80c::33')],
+-        10,
+-        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
+-            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
++        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
++        socket.AF_INET6,
++        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
++            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
+         True)
+     assert mock_ipt_chain_exists.mock_calls == [
+-        call(10, 'mangle', 'sshuttle-m-1024'),
+-        call(10, 'mangle', 'sshuttle-t-1024'),
+-        call(10, 'mangle', 'sshuttle-d-1024')
++        call(socket.AF_INET6, 'mangle', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', 'sshuttle-d-1024')
+     ]
+     assert mock_ipt_ttl.mock_calls == []
+     assert mock_ipt.mock_calls == [
+-        call(10, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-X', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-X', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-d-1024'),
+-        call(10, 'mangle', '-X', 'sshuttle-d-1024'),
+-        call(10, 'mangle', '-N', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-N', 'sshuttle-d-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-d-1024'),
+-        call(10, 'mangle', '-N', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-F', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1024'),
+-        call(10, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1024'),
+-        call(10, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'MARK',
++        call(socket.AF_INET6, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1024'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-d-1024'),
++        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-d-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1024'),
++        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1024'),
++        call(socket.AF_INET6, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1024'),
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'MARK',
+              '--set-mark', '1'),
+-        call(10, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'ACCEPT'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'ACCEPT'),
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
+              '-j', 'sshuttle-d-1024', '-m', 'tcp', '-p', 'tcp'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
+              '-j', 'sshuttle-d-1024', '-m', 'udp', '-p', 'udp'),
+-        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::33/32',
+              '-m', 'udp', '-p', 'udp', '--dport', '53'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1',
+              '--dest', u'2404:6800:4004:80c::33/32',
+              '-m', 'udp', '-p', 'udp', '--dport', '53', '--on-port', '1026'),
+-        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
+              '--dest', u'2404:6800:4004:80c::101f/128',
+              '-m', 'tcp', '-p', 'tcp', '--dport', '8080:8080'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
+              '--dest', u'2404:6800:4004:80c::101f/128',
+              '-m', 'tcp', '-p', 'tcp', '--dport', '8080:8080'),
+-        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
+              '--dest', u'2404:6800:4004:80c::101f/128',
+              '-m', 'udp', '-p', 'udp', '--dport', '8080:8080'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
+              '--dest', u'2404:6800:4004:80c::101f/128',
+              '-m', 'udp', '-p', 'udp', '--dport', '8080:8080'),
+-        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::/64',
+              '-m', 'tcp', '-p', 'tcp', '--dport', '8000:9000'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1', '--dest', u'2404:6800:4004:80c::/64',
+              '-m', 'tcp', '-p', 'tcp', '--dport', '8000:9000',
+              '--on-port', '1024'),
+-        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::/64',
+              '-m', 'udp', '-p', 'udp'),
+-        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
++        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1', '--dest', u'2404:6800:4004:80c::/64',
+              '-m', 'udp', '-p', 'udp', '--dport', '8000:9000',
+              '--on-port', '1024')
+@@ -173,22 +175,22 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+     mock_ipt_ttl.reset_mock()
+     mock_ipt.reset_mock()
+ 
+-    method.restore_firewall(1025, 10, True)
++    method.restore_firewall(1025, socket.AF_INET6, True)
+     assert mock_ipt_chain_exists.mock_calls == [
+-        call(10, 'mangle', 'sshuttle-m-1025'),
+-        call(10, 'mangle', 'sshuttle-t-1025'),
+-        call(10, 'mangle', 'sshuttle-d-1025')
++        call(socket.AF_INET6, 'mangle', 'sshuttle-m-1025'),
++        call(socket.AF_INET6, 'mangle', 'sshuttle-t-1025'),
++        call(socket.AF_INET6, 'mangle', 'sshuttle-d-1025')
+     ]
+     assert mock_ipt_ttl.mock_calls == []
+     assert mock_ipt.mock_calls == [
+-        call(10, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
+-        call(10, 'mangle', '-F', 'sshuttle-m-1025'),
+-        call(10, 'mangle', '-X', 'sshuttle-m-1025'),
+-        call(10, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
+-        call(10, 'mangle', '-F', 'sshuttle-t-1025'),
+-        call(10, 'mangle', '-X', 'sshuttle-t-1025'),
+-        call(10, 'mangle', '-F', 'sshuttle-d-1025'),
+-        call(10, 'mangle', '-X', 'sshuttle-d-1025')
++        call(socket.AF_INET6, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1025'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-m-1025'),
++        call(socket.AF_INET6, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1025'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-t-1025'),
++        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1025'),
++        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-d-1025')
+     ]
+     mock_ipt_chain_exists.reset_mock()
+     mock_ipt_ttl.reset_mock()
+@@ -198,68 +200,68 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+ 
+     method.setup_firewall(
+         1025, 1027,
+-        [(2, u'1.2.3.33')],
+-        2,
+-        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
++        [(socket.AF_INET, u'1.2.3.33')],
++        socket.AF_INET,
++        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
+         True)
+     assert mock_ipt_chain_exists.mock_calls == [
+-        call(2, 'mangle', 'sshuttle-m-1025'),
+-        call(2, 'mangle', 'sshuttle-t-1025'),
+-        call(2, 'mangle', 'sshuttle-d-1025')
++        call(socket.AF_INET, 'mangle', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', 'sshuttle-d-1025')
+     ]
+     assert mock_ipt_ttl.mock_calls == []
+     assert mock_ipt.mock_calls == [
+-        call(2, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-d-1025'),
+-        call(2, 'mangle', '-N', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-N', 'sshuttle-d-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
+-        call(2, 'mangle', '-N', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-A', 'sshuttle-d-1025',
++        call(socket.AF_INET, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-d-1025'),
++        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-d-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
++        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-d-1025',
+              '-j', 'MARK', '--set-mark', '1'),
+-        call(2, 'mangle', '-A', 'sshuttle-d-1025', '-j', 'ACCEPT'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-d-1025', '-j', 'ACCEPT'),
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
+              '-j', 'sshuttle-d-1025', '-m', 'tcp', '-p', 'tcp'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
+              '-j', 'sshuttle-d-1025', '-m', 'udp', '-p', 'udp'),
+-        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'1.2.3.33/32',
+              '-m', 'udp', '-p', 'udp', '--dport', '53'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.33/32',
+              '-m', 'udp', '-p', 'udp', '--dport', '53', '--on-port', '1027'),
+-        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
+              '--dest', u'1.2.3.66/32', '-m', 'tcp', '-p', 'tcp', 
+              '--dport', '80:80'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
+              '--dest', u'1.2.3.66/32', '-m', 'tcp', '-p', 'tcp',
+              '--dport', '80:80'),
+-        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
+              '--dest', u'1.2.3.66/32', '-m', 'udp', '-p', 'udp',
+              '--dport', '80:80'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
+              '--dest', u'1.2.3.66/32', '-m', 'udp', '-p', 'udp',
+              '--dport', '80:80'),
+-        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'1.2.3.0/24',
+              '-m', 'tcp', '-p', 'tcp'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.0/24',
+              '-m', 'tcp', '-p', 'tcp', '--on-port', '1025'),
+-        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
+              '--set-mark', '1', '--dest', u'1.2.3.0/24',
+              '-m', 'udp', '-p', 'udp'),
+-        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
++        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
+              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.0/24',
+              '-m', 'udp', '-p', 'udp', '--on-port', '1025')
+     ]
+@@ -267,22 +269,22 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
+     mock_ipt_ttl.reset_mock()
+     mock_ipt.reset_mock()
+ 
+-    method.restore_firewall(1025, 2, True)
++    method.restore_firewall(1025, socket.AF_INET, True)
+     assert mock_ipt_chain_exists.mock_calls == [
+-        call(2, 'mangle', 'sshuttle-m-1025'),
+-        call(2, 'mangle', 'sshuttle-t-1025'),
+-        call(2, 'mangle', 'sshuttle-d-1025')
++        call(socket.AF_INET, 'mangle', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', 'sshuttle-d-1025')
+     ]
+     assert mock_ipt_ttl.mock_calls == []
+     assert mock_ipt.mock_calls == [
+-        call(2, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-m-1025'),
+-        call(2, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-t-1025'),
+-        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
+-        call(2, 'mangle', '-X', 'sshuttle-d-1025')
++        call(socket.AF_INET, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-m-1025'),
++        call(socket.AF_INET, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-t-1025'),
++        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
++        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-d-1025')
+     ]
+     mock_ipt_chain_exists.reset_mock()
+     mock_ipt_ttl.reset_mock()
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index 2d663175ec9d..dc8f5b25c41e 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -10,7 +10,7 @@ python3Packages.buildPythonApplication rec {
     url = "mirror://pypi/s/sshuttle/${name}.tar.gz";
   };
 
-  patches = [ ./sudo.patch ];
+  patches = [ ./sudo.patch ./darwin.patch ];
 
   nativeBuildInputs = [ makeWrapper pandoc python3Packages.setuptools_scm ];
   buildInputs =

From 00422b227968b698c3f109c46b8cd1a4c8590b4e Mon Sep 17 00:00:00 2001
From: ibor <ibor@efil.de>
Date: Mon, 25 Sep 2017 02:32:19 +0200
Subject: [PATCH 316/533] js_of_ocaml: fix jbuild (explicitly call bash)
 (#29749)

* js_of_ocaml: fix jbuild (explicitly call bash)

* js_of_ocaml: Use patchShebangs instead of manual patch
---
 pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix b/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix
index a4852a8aba07..d8c289015b2f 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/3.0.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
 
 	buildInputs = [ ocaml findlib jbuilder ocaml-migrate-parsetree ppx_tools_versioned ];
 
+  postPatch = "patchShebangs lib/generate_stubs.sh";
+
 	propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
 
 	buildPhase = "jbuilder build -p js_of_ocaml";

From 4f25b7b6b3be5b22e6e1bd623e4a4843c0413e9e Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Tue, 15 Aug 2017 17:24:41 +0800
Subject: [PATCH 317/533] open-vm-tools: 10.1.0 -> 10.1.10

---
 .../virtualization/open-vm-tools/default.nix       | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix
index 14aaef5709a9..bc280823a3ce 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.1.0";
+  version = "10.1.10";
 
   src = fetchFromGitHub {
-    owner = "vmware";
-    repo = "open-vm-tools";
-    rev = "stable-${version}";
-    sha256 = "1qzk4mvw618ca4j9agsfpqch9jgwghvdc4rpkvlyz8kirvh9iniz";
+    owner  = "vmware";
+    repo   = "open-vm-tools";
+    rev    = "stable-${version}";
+    sha256 = "13ifpi53rc2463ka8xw9zx407d1fz119x8sb9k48g5mwxm6c85fm";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
@@ -52,8 +52,8 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/vmware/open-vm-tools;
     description = "Set of tools for VMWare guests to improve host-guest interaction";
     longDescription = ''
-      A set of services and modules that enable several features in VMware products for 
-      better management of, and seamless user interactions with, guests. 
+      A set of services and modules that enable several features in VMware products for
+      better management of, and seamless user interactions with, guests.
     '';
     license = licenses.gpl2;
     platforms = platforms.linux;

From 4c496c0232712ace8b4a1199700c36b6aa8bc042 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Wed, 6 Sep 2017 23:19:12 +0800
Subject: [PATCH 318/533] pywbem: make the tests pass again with patch from
 upstream

---
 pkgs/development/python-modules/pywbem/default.nix | 11 ++++++++++-
 pkgs/top-level/python-packages.nix                 |  4 +++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index b728d4f6b943..c9963acf0d8e 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, libxml2
+{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, libxml2
 , m2crypto, ply, pyyaml, six
 , httpretty, lxml, mock, pytest, requests
 }:
@@ -14,6 +14,15 @@ buildPythonPackage rec {
     sha256 = "0jcwklip03xcni0dvsk9va8ilqz21g4fxwqd5kzvv91slaadfcym";
   };
 
+  patches = [
+    # fix timezone handling so the tests pass again. Can go when 0.11.0 is released
+    # https://github.com/pywbem/pywbem/issues/755#issuecomment-327508681
+    (fetchpatch {
+      url = "https://github.com/pywbem/pywbem/commit/bb7fa19d636d999bf844d80939e155b8f212ef3e.patch";
+      sha256 = "1c5fsz4zdbgwwni7njdixbwhb5i9bw11mabqpzivrh7z9wna6ab9";
+    })
+  ];
+
   propagatedBuildInputs = [ m2crypto ply pyyaml six ];
 
   checkInputs = [ httpretty lxml mock pytest requests ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7f6793158a1d..1af49ba3da38 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -26528,7 +26528,9 @@ EOF
   ROPGadget = callPackage ../development/python-modules/ROPGadget { };
 
   # We need "normal" libxml2 and not the python package by the same name.
-  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+  pywbem = if !(isPy36)
+    then callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; }
+    else throw "pywbem not supported for interpreter ${python.executable}";
 
   unicorn = callPackage ../development/python-modules/unicorn { };
 

From 0353ddc5c528e4fe7503a70b0dd5ca410f19c785 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Mon, 25 Sep 2017 09:50:41 +0800
Subject: [PATCH 319/533] pywbem: changed hash

---
 pkgs/development/python-modules/pywbem/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index c9963acf0d8e..fed159380b81 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     # https://github.com/pywbem/pywbem/issues/755#issuecomment-327508681
     (fetchpatch {
       url = "https://github.com/pywbem/pywbem/commit/bb7fa19d636d999bf844d80939e155b8f212ef3e.patch";
-      sha256 = "1c5fsz4zdbgwwni7njdixbwhb5i9bw11mabqpzivrh7z9wna6ab9";
+      sha256 = "1zd5f9qrb8rnaahmazkjnf3hqsc4f7n63z44k0wcwhz7fskpqza0";
     })
   ];
 

From 0b1c73f4da6fcf88c544f3e15e56e282838df5ef Mon Sep 17 00:00:00 2001
From: Samuel Dionne-Riel <samuel@dionne-riel.com>
Date: Sun, 24 Sep 2017 22:49:22 -0400
Subject: [PATCH 320/533] mediawiki: 1.27.3 -> 1.29.1

---
 .../modules/services/web-servers/apache-httpd/mediawiki.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
index aa0fe4f14796..02695c1c43a1 100644
--- a/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/mediawiki.nix
@@ -83,11 +83,11 @@ let
 
   # Unpack Mediawiki and put the config file in its root directory.
   mediawikiRoot = pkgs.stdenv.mkDerivation rec {
-    name= "mediawiki-1.27.3";
+    name= "mediawiki-1.29.1";
 
     src = pkgs.fetchurl {
-      url = "http://download.wikimedia.org/mediawiki/1.27/${name}.tar.gz";
-      sha256 = "08x8mvc0y1gwq8rg0zm98wc6hc5j8imb6dcpx6s7392j5dc71m0i";
+      url = "http://download.wikimedia.org/mediawiki/1.29/${name}.tar.gz";
+      sha256 = "03mpazbxvb011s2nmlw5p6dc43yjgl5yrsilmj1imyykm57bwb3m";
     };
 
     skins = config.skins;

From 5a9e28190cd69dc766c5b9c7308491ab030426a9 Mon Sep 17 00:00:00 2001
From: Silvan Mosberger <infinisil@icloud.com>
Date: Mon, 25 Sep 2017 05:01:16 +0200
Subject: [PATCH 321/533] xwinwrap: init at 4

---
 lib/licenses.nix                    |  5 +++
 pkgs/tools/X11/xwinwrap/default.nix | 54 +++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix     |  2 ++
 3 files changed, 61 insertions(+)
 create mode 100644 pkgs/tools/X11/xwinwrap/default.nix

diff --git a/lib/licenses.nix b/lib/licenses.nix
index a790b576032d..1bb153ce4c31 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -281,6 +281,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
     url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception;
   };
 
+  hpnd = spdx {
+    spdxId = "HPND";
+    fullName = "Historic Permission Notice and Disclaimer";
+  };
+
   # Intel's license, seems free
   iasl = {
     fullName = "iASL";
diff --git a/pkgs/tools/X11/xwinwrap/default.nix b/pkgs/tools/X11/xwinwrap/default.nix
new file mode 100644
index 000000000000..6ea24ad2c6aa
--- /dev/null
+++ b/pkgs/tools/X11/xwinwrap/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchbzr, x11 }:
+
+let
+  version = "4";
+in
+stdenv.mkDerivation {
+  name = "xwinwrap-${version}";
+
+  src = fetchbzr {
+    url = https://code.launchpad.net/~shantanu-goel/xwinwrap/devel;
+    rev = version;
+    sha256 = "1annhqc71jcgx5zvcy31c1c488ygx4q1ygrwyy2y0ww743smbchw";
+  };
+
+  buildInputs = [
+    x11
+  ];
+
+  buildPhase = if stdenv.system == "x86_64-linux" then ''
+    make all64
+  '' else if stdenv.system == "i686-linux" then ''
+    make all32
+  '' else throw "xwinwrap is not supported on ${stdenv.system}";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mv */xwinwrap $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A utility that allows you to use an animated X window as the wallpaper";
+    longDescription = ''
+      XWinWrap is a small utility written a loooong time ago that allowed you to
+      stick most of the apps to your desktop background. What this meant was you
+      could use an animated screensaver (like glmatrix, electric sheep, etc) or
+      even a movie, and use it as your wallpaper. But only one version of this
+      app was ever released, and it had a few problems, like:
+
+      - Well, sticking didn’t work. So if you did a “minimize all” or “go to
+      desktop” kind of thing, your “wallpaper” got minimized as well.
+
+      - The geometry option didn’t work, so you could not create, e.g., a small
+      matrix window surrounded by your original wallpaper.
+
+      Seeing no-one picking it up, I decided to give it a bit of polish last
+      weekend by fixing the above problems and also add a few features. And here
+      it is, in its new avatar “Shantz XWinWrap”.
+    '';
+    license = licenses.hpnd;
+    homepage = https://shantanugoel.com/2008/09/03/shantz-xwinwrap/;
+    maintainers = with maintainers; [ infinisil ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d406141c41df..ea8befd26edb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5144,6 +5144,8 @@ with pkgs;
 
   xwinmosaic = callPackage ../tools/X11/xwinmosaic {};
 
+  xwinwrap = callPackage ../tools/X11/xwinwrap {};
+
   yaft = callPackage ../applications/misc/yaft { };
 
   yarn = callPackage ../development/tools/yarn  { };

From 32e4e2c47ba464baa32b92c53eba6d5d169125c0 Mon Sep 17 00:00:00 2001
From: Kai Harries <kai.harries@gmail.com>
Date: Sun, 24 Sep 2017 20:18:17 +0200
Subject: [PATCH 322/533] libvirt: Add qemu to runtime closure

The program `qemu-img` is needed during creation of virtual machines
with qcow2 images. Otherwise creation of such VMs (e.g. with
virt-manager) are failing.
---
 pkgs/development/libraries/libvirt/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index a625399cc63c..86e858e569cc 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -4,7 +4,7 @@
 , iproute, iptables, readline, lvm2, utillinux, systemd, libpciaccess, gettext
 , libtasn1, ebtables, libgcrypt, yajl, pmutils, libcap_ng, libapparmor
 , dnsmasq, libnl, libpcap, libxslt, xhtml1, numad, numactl, perlPackages
-, curl, libiconv, gmp, xen, zfs, parted
+, curl, libiconv, gmp, xen, zfs, parted, qemu
 }:
 
 with stdenv.lib;
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/lib/systemd/system/libvirtd.service --replace /bin/kill ${coreutils}/bin/kill
     rm $out/lib/systemd/system/{virtlockd,virtlogd}.*
     wrapProgram $out/sbin/libvirtd \
-      --prefix PATH : ${makeBinPath [ iptables iproute pmutils numad numactl ]}
+      --prefix PATH : ${makeBinPath [ iptables iproute pmutils numad numactl qemu ]}
   '';
 
   enableParallelBuilding = true;

From ff4d7f0fd2122e0e8bffeb10bc32927c280a1fd9 Mon Sep 17 00:00:00 2001
From: Antoine Eiche <lewo@abesis.fr>
Date: Mon, 25 Sep 2017 09:39:15 +0200
Subject: [PATCH 323/533] dockerTools.examples.nix: set NIX_PAGER=cat
 environment variable

---
 pkgs/build-support/docker/examples.nix | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 1a8b9c7f8ed4..498028fb0886 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -107,11 +107,13 @@ rec {
   nix = buildImageWithNixDb {
     name = "nix";
     contents = [
-      # nix-store -qR uses the 'more' program which is not included in
-      # the pkgs.nix dependencies. We then have to manually get it
-      # from the 'eject' package:/
-      pkgs.eject
+      # nix-store uses cat program to display results as specified by
+      # the image env variable NIX_PAGER.
+      pkgs.coreutils
       pkgs.nix
     ];
+    config = {
+      Env = [ "NIX_PAGER=cat" ];
+    };
   };
 }

From de3d26165f15219dfd007798b2c8085ba4795c30 Mon Sep 17 00:00:00 2001
From: Philipp Hausmann <ph_git@314.ch>
Date: Thu, 10 Aug 2017 09:46:29 +0200
Subject: [PATCH 324/533] FusionInventory: Init at 2.3.18

---
 .../monitoring/fusion-inventory/default.nix   | 67 ++++++++++++++
 .../remove_software_test.patch                | 25 ++++++
 pkgs/top-level/all-packages.nix               |  2 +
 pkgs/top-level/perl-packages.nix              | 90 +++++++++++++++++++
 4 files changed, 184 insertions(+)
 create mode 100644 pkgs/servers/monitoring/fusion-inventory/default.nix
 create mode 100644 pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch

diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
new file mode 100644
index 000000000000..8b3f902b00cb
--- /dev/null
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -0,0 +1,67 @@
+{ stdenv, fetchurl, gnused, buildPerlPackage, perl, perlPackages
+}:
+
+buildPerlPackage rec {
+  version = "2.3.18";
+  name = "FusionInventory-Agent-${version}";
+  src = fetchurl {
+    url = "mirror://cpan/authors/id/G/GR/GROUSSE/${name}.tar.gz";
+    sha256 = "543d96fa61b8f2a2bc599fe9f694f19d1f2094dc5506bc514d00b8a445bc5401";
+  };
+
+  patches = [ ./remove_software_test.patch ];
+
+  postPatch = ''
+    patchShebangs bin
+  '';
+
+  buildTools = [];
+  buildInputs = with perlPackages; [
+    CGI
+    DataStructureUtil
+    FileCopyRecursive
+    HTTPProxy
+    HTTPServerSimple
+    HTTPServerSimpleAuthen
+    IOCapture
+    IOSocketSSL
+    IPCRun
+    JSON
+    LWPProtocolhttps
+    NetSNMP
+    TestCompile
+    TestDeep
+    TestException
+    TestMockModule
+    TestMockObject
+    TestNoWarnings
+  ];
+  propagatedBuildInputs = with perlPackages; [
+    FileWhich
+    LWP
+    NetIP
+    TextTemplate
+    UNIVERSALrequire
+    XMLTreePP
+  ];
+
+  installPhase = ''
+    mkdir -p $out
+
+    cp -r bin $out
+    cp -r lib $out
+
+    for cur in $out/bin/*; do
+      sed -e "s|./lib|$out/lib|" -i "$cur"
+    done
+  '';
+
+  outputs = [ "out" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.fusioninventory.org;
+    description = "FusionInventory unified Agent for UNIX, Linux, Windows and MacOSX";
+    license = stdenv.lib.licenses.gpl2;
+    maintainers = [ maintainers.phile314 ];
+  };
+}
diff --git a/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch b/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
new file mode 100644
index 000000000000..ba6fd54eb183
--- /dev/null
+++ b/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
@@ -0,0 +1,25 @@
+diff --git a/t/apps/agent.t b/t/apps/agent.t
+index c0f6fc52f..c83837d70 100755
+--- a/t/apps/agent.t
++++ b/t/apps/agent.t
+@@ -12,7 +12,7 @@ use XML::TreePP;
+ use FusionInventory::Agent::Tools;
+ use FusionInventory::Test::Utils;
+ 
+-plan tests => 34;
++plan tests => 33;
+ 
+ my ($content, $out, $err, $rc);
+ 
+@@ -72,11 +72,6 @@ subtest "first inventory execution and content" => sub {
+ };
+ 
+ ok(
+-    exists $content->{REQUEST}->{CONTENT}->{SOFTWARES},
+-    'inventory has software'
+-);
+-
+-ok(
+     exists $content->{REQUEST}->{CONTENT}->{ENVS},
+     'inventory has environment variables'
+ );
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d406141c41df..42d29de1d766 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11369,6 +11369,8 @@ with pkgs;
     openssl = openssl_1_0_2;
   };
 
+  fusionInventory = callPackage ../servers/monitoring/fusion-inventory { };
+
   gatling = callPackage ../servers/http/gatling { };
 
   glabels = callPackage ../applications/graphics/glabels { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index ed78f67739e3..91cd9fc05759 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -549,6 +549,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  AuthenSimple = buildPerlPackage rec {
+    name = "Authen-Simple-0.5";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/${name}.tar.gz";
+      sha256 = "02cddab47f8bf1a1cbd4c9bf8d258f6d05111499c33f8315e7244812f72613aa";
+    };
+    propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
+    meta = {
+      description = "Simple Authentication";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   autobox = buildPerlPackage rec {
     name = "autobox-2.84";
     src = fetchurl {
@@ -3177,6 +3190,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  DataStructureUtil = buildPerlPackage rec {
+    name = "Data-Structure-Util-0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AN/ANDYA/${name}.tar.gz";
+      sha256 = "9cd42a13e65cb15f3a76296eb9a134da220168ec747c568d331a50ae7a2ddbc6";
+    };
+    buildInputs = [ TestPod ];
+    meta = {
+      description = "Change nature of data within a structure";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   DataTaxi = buildPerlPackage {
     name = "Data-Taxi-0.96";
     propagatedBuildInputs = [DebugShowStuff];
@@ -6824,6 +6850,20 @@ let self = _self // overrides; _self = with self; {
     buildInputs = [ TestMore ];
   };
 
+  HTTPProxy = buildPerlPackage rec {
+    name = "HTTP-Proxy-0.304";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/${name}.tar.gz";
+      sha256 = "b05290534ec73625c21a0565fc35170890dab163843d95331c292c23f504c69d";
+    };
+    buildInputs = [ HTMLParser ];
+    propagatedBuildInputs = [ HTTPDaemon HTTPDate HTTPMessage LWP ];
+    meta = {
+      description = "A pure Perl HTTP proxy";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HTTPRequestAsCGI = buildPerlPackage rec {
     name = "HTTP-Request-AsCGI-1.2";
     src = fetchurl {
@@ -6857,6 +6897,18 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  HTTPServerSimpleAuthen = buildPerlPackage rec {
+    name = "HTTP-Server-Simple-Authen-0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/${name}.tar.gz";
+      sha256 = "2dddc8ab9dc8986980151e4ba836a6bbf091f45cf195be1768ebdb4a993ed59b";
+    };
+    propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HTTPServerSimpleMason = buildPerlPackage {
     name = "HTTP-Server-Simple-Mason-0.14";
     src = fetchurl {
@@ -6995,6 +7047,17 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  IOCapture = buildPerlPackage rec {
+    name = "IO-Capture-0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REYNOLDS/${name}.tar.gz";
+      sha256 = "c2c15a254ca74fb8c57d25d7b6cbcaff77a3b4fb5695423f1f80bb423abffea9";
+    };
+    meta = {
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   IOCaptureOutput = buildPerlPackage rec {
     name = "IO-CaptureOutput-1.1104";
     src = fetchurl {
@@ -13314,6 +13377,20 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  TestCompile = buildPerlPackage rec {
+    name = "Test-Compile-v1.3.0";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/EG/EGILES/${name}.tar.gz";
+      sha256 = "77527e9477ac5260443c756367a7f7bc3d8f6c6ebbc561b0b2fb3f79303bad33";
+    };
+    buildInputs = [ ModuleBuild ];
+    propagatedBuildInputs = [ UNIVERSALrequire ];
+    meta = {
+      description = "Check whether Perl files compile correctly";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestCPANMeta = buildPerlPackage {
     name = "Test-CPAN-Meta-0.23";
     src = fetchurl {
@@ -15852,6 +15929,19 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  XMLTreePP = buildPerlPackage rec {
+    name = "XML-TreePP-0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAWASAKI/${name}.tar.gz";
+      sha256 = "7fbe2d6430860059894aeeebf75d4cacf1bf8d7b75294eb87d8e1502f81bd760";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Pure Perl implementation for parsing/writing XML documents";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   XMLTwig = buildPerlPackage rec {
     name = "XML-Twig-3.49";
     src = fetchurl {

From 6b788e36dff4cdcb31c2e9ed526797e8fd1f0799 Mon Sep 17 00:00:00 2001
From: Philipp Hausmann <ph_git@314.ch>
Date: Thu, 10 Aug 2017 13:13:35 +0200
Subject: [PATCH 325/533] FusionInventory: Add NixOS module.

---
 nixos/modules/module-list.nix                 |  1 +
 .../services/monitoring/fusion-inventory.nix  | 71 +++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 100644 nixos/modules/services/monitoring/fusion-inventory.nix

diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index d6684ad9511e..c5fc71bcb01e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -355,6 +355,7 @@
   ./services/monitoring/collectd.nix
   ./services/monitoring/das_watchdog.nix
   ./services/monitoring/dd-agent/dd-agent.nix
+  ./services/monitoring/fusion-inventory.nix
   ./services/monitoring/grafana.nix
   ./services/monitoring/graphite.nix
   ./services/monitoring/hdaps.nix
diff --git a/nixos/modules/services/monitoring/fusion-inventory.nix b/nixos/modules/services/monitoring/fusion-inventory.nix
new file mode 100644
index 000000000000..fdd27938ea7b
--- /dev/null
+++ b/nixos/modules/services/monitoring/fusion-inventory.nix
@@ -0,0 +1,71 @@
+# Fusion Inventory daemon.
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.fusionInventory;
+
+  configFile = pkgs.writeText "fusion_inventory.conf" ''
+    server = ${concatStringsSep ", " cfg.servers}
+
+    logger = stderr
+
+    ${cfg.extraConfig}
+  '';
+
+in {
+
+  ###### interface
+
+  options = {
+
+    services.fusionInventory = {
+
+      enable = mkOption {
+        default = false;
+        description = ''
+          Whether to run the Fusion Inventory agent on this machine.
+        '';
+      };
+
+      servers = mkOption {
+        type = types.listOf types.string;
+        description = ''
+          The urls of the OCS/GLPI servers to connect to.
+        '';
+      };
+
+      extraConfig = mkOption {
+        default = "";
+        type = types.lines;
+        description = ''
+          Configuration that is injected verbatim into the configuration file.
+        '';
+      };
+    };
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    users.extraUsers = singleton {
+      name = "fusion-inventory";
+      description = "FusionInventory user";
+    };
+
+    systemd.services."fusion-inventory" = {
+      description = "Fusion Inventory Agent";
+      wantedBy = [ "multi-user.target" ];
+
+      environment = {
+        OPTIONS = "--no-category=software";
+      };
+      serviceConfig = {
+        ExecStart = "${pkgs.fusionInventory}/bin/fusioninventory-agent --conf-file=${configFile} --daemon --no-fork";
+      };
+    };
+  };
+}

From 1a23ff8a13e4f833d3d9eea2837394e712736149 Mon Sep 17 00:00:00 2001
From: Philipp Hausmann <ph_git@314.ch>
Date: Fri, 25 Aug 2017 08:57:42 +0200
Subject: [PATCH 326/533] FusionInventory: Code cleanup

---
 nixos/modules/services/monitoring/fusion-inventory.nix | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/nixos/modules/services/monitoring/fusion-inventory.nix b/nixos/modules/services/monitoring/fusion-inventory.nix
index fdd27938ea7b..1c00f3c299e9 100644
--- a/nixos/modules/services/monitoring/fusion-inventory.nix
+++ b/nixos/modules/services/monitoring/fusion-inventory.nix
@@ -22,15 +22,10 @@ in {
 
     services.fusionInventory = {
 
-      enable = mkOption {
-        default = false;
-        description = ''
-          Whether to run the Fusion Inventory agent on this machine.
-        '';
-      };
+      enable = mkEnableOption "Fusion Inventory Agent";
 
       servers = mkOption {
-        type = types.listOf types.string;
+        type = types.listOf types.str;
         description = ''
           The urls of the OCS/GLPI servers to connect to.
         '';

From 2490dea9d0cb25979f738f5abaf02cfb9008c670 Mon Sep 17 00:00:00 2001
From: Philipp Hausmann <ph_git@314.ch>
Date: Fri, 25 Aug 2017 13:59:51 +0200
Subject: [PATCH 327/533] FusionInventory: Disable tests requiring network
 access.

---
 .../remove_software_test.patch                | 33 +++++++++++++++++--
 pkgs/top-level/perl-packages.nix              |  2 ++
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch b/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
index ba6fd54eb183..5449f4d3740f 100644
--- a/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
+++ b/pkgs/servers/monitoring/fusion-inventory/remove_software_test.patch
@@ -1,5 +1,34 @@
+diff --git a/t/agent/snmp/live.t b/t/agent/snmp/live.t
+index 8ee7ff02c..bd5551ab3 100755
+--- a/t/agent/snmp/live.t
++++ b/t/agent/snmp/live.t
+@@ -11,7 +11,7 @@ use Test::More;
+ use FusionInventory::Agent::XML::Response;
+ use FusionInventory::Agent::SNMP::Live;
+ 
+-plan tests => 12;
++plan tests => 11;
+ 
+ my $snmp;
+ throws_ok {
+@@ -52,15 +52,6 @@ throws_ok {
+ } qr/^Unable to resolve the UDP\/IPv4 address "none"/,
+ 'instanciation: unresolvable host';
+ 
+-throws_ok {
+-    $snmp = FusionInventory::Agent::SNMP::Live->new(
+-        version   => 1,
+-        community => 'public',
+-        hostname  => '1.1.1.1'
+-    );
+-} qr/no response from host 1.1.1.1/,
+-'instanciation: unresponding host';
+-
+ SKIP: {
+ skip 'live SNMP test disabled', 6 unless $ENV{TEST_LIVE_SNMP};
+ 
 diff --git a/t/apps/agent.t b/t/apps/agent.t
-index c0f6fc52f..c83837d70 100755
+index f417b4106..12207f192 100755
 --- a/t/apps/agent.t
 +++ b/t/apps/agent.t
 @@ -12,7 +12,7 @@ use XML::TreePP;
@@ -11,7 +40,7 @@ index c0f6fc52f..c83837d70 100755
  
  my ($content, $out, $err, $rc);
  
-@@ -72,11 +72,6 @@ subtest "first inventory execution and content" => sub {
+@@ -73,11 +73,6 @@ subtest "first inventory execution and content" => sub {
  };
  
  ok(
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 91cd9fc05759..4ee98ad2dd48 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -6862,6 +6862,8 @@ let self = _self // overrides; _self = with self; {
       description = "A pure Perl HTTP proxy";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    # tests fail because they require network access
+    doCheck = false;
   };
 
   HTTPRequestAsCGI = buildPerlPackage rec {

From 00bc46b72271c26d4af8df98c653335d38a18b6d Mon Sep 17 00:00:00 2001
From: Philipp Hausmann <ph_git@314.ch>
Date: Sun, 27 Aug 2017 11:51:02 +0200
Subject: [PATCH 328/533] FusionInventory: Remove unused parameters

---
 pkgs/servers/monitoring/fusion-inventory/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
index 8b3f902b00cb..2e694ede497f 100644
--- a/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gnused, buildPerlPackage, perl, perlPackages
+{ stdenv, fetchurl, buildPerlPackage, perlPackages
 }:
 
 buildPerlPackage rec {

From 1d73878e884ea0583ce86522c8963190bc252346 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 Sep 2017 10:05:18 +0200
Subject: [PATCH 329/533] hackage2nix: update list of broken builds

---
 .../configuration-hackage2nix.yaml            | 1692 +++++++++--------
 1 file changed, 867 insertions(+), 825 deletions(-)

diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 62686086c27c..0636db8eec00 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2734,27 +2734,29 @@ dont-distribute-packages:
   abstract-par-accelerate:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   abt:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   AC-BuildPlatform:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AC-EasyRaster-GTK:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AC-HalfInteger:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ac-machine-conduit:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ac-machine:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AC-MiniTest:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AC-Terminal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AC-VanillaArray:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-arithmetic:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-fftw:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-fourier:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  accelerate-llvm:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-llvm-native:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  accelerate-llvm:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-random:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-typelits:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-utility:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   accentuateus:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   access-time:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AC-EasyRaster-GTK:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AC-HalfInteger:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   acid-state-dist:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   acid-state-tls:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ac-machine-conduit:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ac-machine:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-all-monad:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-comonad:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-flipping-tables:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-hq9plus:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ACME:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-inator:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-io:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-left-pad:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2767,35 +2769,34 @@ dont-distribute-packages:
   acme-strfry:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-stringly-typed:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   acme-zero:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AC-MiniTest:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AC-Terminal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ACME:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ActionKid:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   activehs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   activitystreams-aeson:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   actor:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AC-VanillaArray:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   Adaptive-Blaisorblade:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   adaptive-containers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Adaptive:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   adaptive-tuple:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Adaptive:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   adb:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   adblock2privoxy:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   adhoc-network:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   adict:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   adobe-swatch-exchange:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  adp-multi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   adp-multi-monadiccp:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  adp-multi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Advgame:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-Basics:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-Net:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-Real-Double:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AERN-Real:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-Real-Interval:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AERN-RnToRm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AERN-Real:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-RnToRm-Plot:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AERN-RnToRm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-mp:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-real:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-applicative:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-bson:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AesonBson:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-flowtyped:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-native:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-quick:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2804,6 +2805,7 @@ dont-distribute-packages:
   aeson-streams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-t:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-yak:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AesonBson:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   affection:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   affine-invariant-ensemble-mcmc:               [ i686-linux, x86_64-linux, x86_64-darwin ]
   afv:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2816,29 +2818,29 @@ dont-distribute-packages:
   AGI:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   AhoCorasick:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   aip:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  airbrake:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   air-th:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  airbrake:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   aivika-distributed:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   ajhc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  al:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   AlanDeniseEricLauren:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   alga:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  algebra-sql:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   algebraic-classes:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   algebraic:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  algebra-sql:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AlgorithmW:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   algo-s:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  al:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  AlignmentAlgorithms:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AlgorithmW:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   align-text:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  AlignmentAlgorithms:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   alms:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  alphachar:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   alpha:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  alphachar:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   alpino-tools:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   alsa-gui:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  alsa:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   alsa-midi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   alsa-pcm-tests:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   alsa-seq-tests:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  alsa:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   alternative-io:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   altfloat:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   alure:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2853,8 +2855,8 @@ dont-distribute-packages:
   analyze-client:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   anansi-pandoc:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   anatomy:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  android:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   android-lint-summary:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  android:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   AndroidViewHierarchyImporter:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   angel:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   angle:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2871,13 +2873,14 @@ dont-distribute-packages:
   anydbm:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   aosd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   apelsin:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  api-builder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  api-tools:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-authenticate:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-clientsession:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-cookie:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-eventsource:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-helics:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-http-client:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  apiary:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-logger:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-memcached:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-mongoDB:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2885,25 +2888,24 @@ dont-distribute-packages:
   apiary-purescript:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-session:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   apiary-websockets:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  api-builder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  apiary:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   apis:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  api-tools:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   apotiki:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  appc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   app-lens:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  appc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ApplePush:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   AppleScript:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   applicative-fail:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   applicative-parsec:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   applicative-splice:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ApproxFun-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   approx-rand-test:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  arbb-vm:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ApproxFun-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   arb-fft:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  arbb-vm:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   arbtt:                                        [ "x86_64-darwin" ]
   archiver:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  archlinux:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   archlinux-web:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  archlinux:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   arff:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   arghwxhaskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   argon2:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2914,21 +2916,21 @@ dont-distribute-packages:
   arion:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   arith-encode:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   armada:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  arpack:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   arpa:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  arpack:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   array-forth:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   array-primops:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ArrayRef:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  arrowapply-utils:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   arrow-improve:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  arrowp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  arrowapply-utils:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   arrowp-qq:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  arrowp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ArrowVHDL:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   artery:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ascii85-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   ascii-flatten:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ascii:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ascii-vector-avc:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ascii85-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ascii:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   asic:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   asil:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   asn1-codec:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2937,15 +2939,15 @@ dont-distribute-packages:
   astrds:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   astview:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   async-dejafu:                                 [ "x86_64-darwin" ]
-  asynchronous-exceptions:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   async-manager:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  asynchronous-exceptions:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aterm-utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   atlassian-connect-core:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   atlassian-connect-descriptor:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   atndapi:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  atom-msp430:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   atomic-primops-foreign:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   atomic-primops-vector:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  atom-msp430:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   atomo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   attic-schedule:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   AttoBencode:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2973,16 +2975,16 @@ dont-distribute-packages:
   avatar-generator:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   avers-api-docs:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   avers-api:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  avers:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   avers-server:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  avers:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   avl-static:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   AvlTree:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  avro:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   avr-shake:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  avro:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   awesome-prelude:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   awesomium-glut:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  awesomium:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   awesomium-raw:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  awesomium:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-configuration-tools:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-dynamodb-conduit:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-dynamodb-streams:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2990,14 +2992,14 @@ dont-distribute-packages:
   aws-elastic-transcoder:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-general:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-kinesis-client:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  aws-kinesis:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-kinesis-reshard:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aws-kinesis:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-lambda:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-performance-tests:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-route53:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  aws-sdk:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-sdk-text-converter:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-sdk-xml-unordered:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aws-sdk:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-sign4:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   aws-sns:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   axiom:                                        [ "x86_64-darwin" ]
@@ -3005,19 +3007,20 @@ dont-distribute-packages:
   azure-service-api:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   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 ]
   babylon:                                      [ "x86_64-darwin" ]
   backdropper:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   backtracking-exceptions:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   backward-state:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Baggins:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   bag:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Baggins:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ballast:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bamboo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamboo-launcher:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamboo-plugin-highlight:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamboo-plugin-photo:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamboo-theme-blueprint:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamboo-theme-mini-html5:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bamboo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bamse:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Bang:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   banwords:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3028,21 +3031,22 @@ dont-distribute-packages:
   Barracuda:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   barrie:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   barrier-monad:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  base32-bytestring:                            [ "x86_64-darwin" ]
-  base64-conduit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   base-generics:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   base-io-access:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  base32-bytestring:                            [ "x86_64-darwin" ]
+  base64-conduit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   BASIC:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   baskell:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   batchd:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  battlenet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   battlenet-yesod:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  battlenet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   battleships:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   bayes-stack:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   BCMtools:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  beamable:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  beam:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   beam-th:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  beam:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  beamable:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bearriver:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   beautifHOL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   bed-and-breakfast:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   beeminder-api:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3055,8 +3059,8 @@ dont-distribute-packages:
   BerlekampAlgorithm:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   berp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   besout:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  betacode:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   bet:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  betacode:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   bff:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   bgzf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   bibdb:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3072,12 +3076,14 @@ dont-distribute-packages:
   binary-derive:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   binary-file:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   binary-indexed-tree:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  binary-protocol:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   binary-protocol-zmq:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  binary-protocol:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   binary-streams:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bind-marshal:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   binding-gtk:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bindings-apr:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  binding-wx:                                   [ "x86_64-darwin" ]
   bindings-apr-util:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bindings-apr:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindings-bfd:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindings-cctools:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindings-codec2:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3109,22 +3115,20 @@ dont-distribute-packages:
   bindings-sc3:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindings-sipc:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindings-wlc:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  binding-wx:                                   [ "x86_64-darwin" ]
-  bind-marshal:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bindynamic:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   binembed-example:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   binembed:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bio:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Biobase:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseDotP:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseFasta:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseFR3D:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Biobase:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseInfernal:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseMAF:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseTrainingData:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseTurner:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   BiobaseVienna:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   biohazard:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bio:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   bioinformatics-toolkit:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   biophd:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   biosff:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3132,15 +3136,15 @@ dont-distribute-packages:
   bird:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   BirdPP:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bit-array:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bit-stream:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   bitcoin-rpc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   bitly-cli:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Bitly:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   bitmaps:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   bits-conduit:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bitset:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bits-extras:                                  [ "x86_64-darwin" ]
+  bitset:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   bitspeak:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bit-stream:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   bitstream:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   bittorrent:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   bkr:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3168,8 +3172,8 @@ dont-distribute-packages:
   blogination:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   bloomfilter-redis:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   bloxorz:                                      [ "x86_64-darwin" ]
-  blubber:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   blubber-server:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  blubber:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Blueprint:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   bluetile:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   bluetileutils:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3181,8 +3185,8 @@ dont-distribute-packages:
   bond-haskell-compiler:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   bond-haskell:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bond:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bookkeeper:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   bookkeeper-permissions:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bookkeeper:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Bookshelf:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   boolean-list:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   boolean-normal-forms:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3202,7 +3206,6 @@ dont-distribute-packages:
   bson-generic:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   bson-generics:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   btree-concurrent:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  b-tree:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   btree:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   btrfs:                                        [ "x86_64-darwin" ]
   buchhaltung:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3216,25 +3219,24 @@ dont-distribute-packages:
   burnt-explorer:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   burst-detection:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   buster-gtk:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  buster-network:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   buster:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Buster:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  buster-network:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   bustle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   butcher:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   butterflies:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytable:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytestring-class:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytestring-csv:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bytestringparser:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytestring-read:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  bytestringreadp:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytestring-rematch:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   bytestring-typenats:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bytestringparser:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  bytestringreadp:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  c-dsl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  c-io:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  c-mosquitto:                                  [ "x86_64-darwin" ]
   c2hsc:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabal2arch:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabal2doap:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabal2ghci:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabal2spec:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-audit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-constraints:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-db:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3242,33 +3244,37 @@ dont-distribute-packages:
   cabal-ghc-dynflags:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-ghci:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-graphdeps:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabalgraph:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Cabal-ide-backend:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-install-bundle:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-install-ghc72:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-install-ghc74:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabalish:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabalmdvrpm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-mon:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-nirvana:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-plan:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-progdeps:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-query:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabalQuery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cabalrpmdeps:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  CabalSearch:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-setup:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-sort:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-test:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabal-upload:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabal2arch:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabal2doap:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabal2ghci:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabal2spec:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabalgraph:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabalish:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabalmdvrpm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabalQuery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cabalrpmdeps:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  CabalSearch:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabalvchk:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cabocha:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   caffegraph:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cake3:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cakyrespa:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cal3d-examples:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cal3d:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cal3d-opengl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cal3d:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   calc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   calculator:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   caldims:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3281,32 +3287,32 @@ dont-distribute-packages:
   canteven-parsedate:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   cantor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   cao:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Capabilities:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   cap:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Capabilities:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   capri:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  car-pool:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   caramia:                                      [ "x86_64-darwin" ]
   carboncopy:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  car-pool:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   carte:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Cartesian:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   casadi-bindings-control:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   casadi-bindings-core:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  casadi-bindings:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   casadi-bindings-internal:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   casadi-bindings-ipopt-interface:              [ i686-linux, x86_64-linux, x86_64-darwin ]
   casadi-bindings-snopt-interface:              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  casadi-bindings:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   Cascade:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   cascading:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cash:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-html:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  casr-logbook:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-meta-html:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-meta:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-reports-html:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  casr-logbook-reports:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-reports-meta-html:               [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-reports-meta:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  casr-logbook-reports:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   casr-logbook-types:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  casr-logbook:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   cassandra-cql:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   cassandra-thrift:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   cassava-megaparsec:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3324,16 +3330,15 @@ dont-distribute-packages:
   cayley-client:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   cblrepo:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   CBOR:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  CCA:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   CC-delcont-alt:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   CC-delcont-cxe:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   CC-delcont-exc:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  CC-delcont-ref:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   CC-delcont-ref-tf:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  CC-delcont-ref:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  CCA:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   cci:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ccnx:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cctools-workqueue:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  c-dsl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cedict:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   cef3-raw:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   cef3-simple:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3351,12 +3356,12 @@ dont-distribute-packages:
   cfipu:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cflp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cfopu:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cgen:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cg:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cgen:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cgi-utils:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cgrep:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  chalkboard:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   chalkboard-viewer:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chalkboard:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   charade:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   chart-histogram:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   Chart-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3365,9 +3370,10 @@ dont-distribute-packages:
   chatty-text:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chatwork:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   cheapskate-terminal:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  check-pvp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   checked:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Checked:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  check-pvp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  checkmate:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   chell-hunit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chell-quickcheck:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   chevalier-common:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3375,11 +3381,11 @@ dont-distribute-packages:
   Chitra:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   chorale-geo:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chorale:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  chp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-mtl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-plus:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-spec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-transformers:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ChristmasTree:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   chronograph:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chronos:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3390,12 +3396,11 @@ dont-distribute-packages:
   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 ]
-  c-io:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   cio:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   circlehs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   citation-resolve:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  citeproc-hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   citeproc-hs-pandoc-filter:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  citeproc-hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cjk:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   clac:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   clafer:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3405,14 +3410,13 @@ dont-distribute-packages:
   clanki:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   clarifai:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   CLASE:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  clash:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   clash-prelude-quickcheck:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clash:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ClassLaws:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   classy-parallel:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   ClassyPrelude:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-cli:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-dot-com:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  clckwrks:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-plugin-bugs:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-plugin-ircbot:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-plugin-mailinglist:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3421,16 +3425,17 @@ dont-distribute-packages:
   clckwrks-theme-bootstrap:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-theme-clckwrks:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   clckwrks-theme-geo-bootstrap:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clckwrks:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   cld2:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Clean:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   clean-unions:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Clean:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cless:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   clevercss:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cli-builder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  click-clack:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  clifford:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  clif:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   CLI:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  click-clack:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clif:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clifford:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clingo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   clippard:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clipper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3441,10 +3446,10 @@ dont-distribute-packages:
   clogparse:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   clone-all:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   closure:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cloudfront-signer:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   cloud-haskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cloudi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   cloud-seeder:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cloudfront-signer:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cloudi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   cloudyfs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clr-bindings:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   clr-inline:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3458,25 +3463,24 @@ dont-distribute-packages:
   cmath:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cmathml3:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   CMCompare:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cmdargs-browser:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   cmd-item:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cmdargs-browser:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   cmdtheline:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   cmonad:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  c-mosquitto:                                  [ "x86_64-darwin" ]
   cmph:                                         [ 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 ]
   cndict:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Coadjute:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   codec-libevent:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  codecov-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   codec-rpm:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  codecov-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   codemonitor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   codepad:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   codeworld-api:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   cognimeta-utils:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  coinbase-exchange:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   coin:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  coinbase-exchange:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   colada:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   colchis:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   collada-output:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3487,31 +3491,33 @@ dont-distribute-packages:
   collections:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   colonnade:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   color-counter:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  colour-accelerate:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   colour-space:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   coltrane:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   columbia:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  combinatorial-problems:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  com:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  comark:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   combinator-interactive:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  combinatorial-problems:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Combinatorrent:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   combobuffer:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  com:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   commander:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Commando:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  commsec:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   commsec-keyexchange:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  commsec:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   commutative:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   comonad-extras:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   comonad-random:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ComonadSheet:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  compact:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   compact-map:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   compact-mutable:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   compact-socket:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   compact-string:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  compact:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   compdata-automata:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   compdata-dags:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  compdata:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   compdata-param:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  compdata:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   competition:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   compilation:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   complexity:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3524,17 +3530,17 @@ dont-distribute-packages:
   comptrans:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   computational-algebra:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   concraft-hr:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  concraft:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   concraft-pl:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  concraft:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   concrete-haskell-autogen:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   concrete-haskell:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   concrete-typerep:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Concurrential:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   concurrent-state:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Concurrential:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ConcurrentUtils:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  condorcet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   condor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Condor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  condorcet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   conductive-hsc3:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   conduit-algorithms:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   conduit-audio-lame:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3542,13 +3548,13 @@ dont-distribute-packages:
   conduit-find:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   conduit-network-stream:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   conduit-resumablesink:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  conffmt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   conf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  conffmt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  config-ini:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  config-select:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ConfigFileTH:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   Configger:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   configifier:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  config-ini:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  config-select:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   Configurable:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   congruence-relation:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   conjure:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3566,8 +3572,8 @@ dont-distribute-packages:
   container:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   containers-benchmark:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ContArrow:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ContextAlgebra:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   context-stack:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ContextAlgebra:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   continue:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   continuum-client:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   continuum:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3575,8 +3581,8 @@ dont-distribute-packages:
   control-event:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   control-monad-attempt:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   control-monad-exception-monadsfd:             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  control-monad-failure:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   control-monad-failure-mtl:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  control-monad-failure:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Control-Monad-MultiPass:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Control-Monad-ST2:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   contstuff-monads-tf:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3586,27 +3592,28 @@ dont-distribute-packages:
   convertible-ascii:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   convertible-text:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   copilot-cbmc:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  copilot:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   copilot-language:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   copilot-libraries:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   copilot-theorem:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  copilot:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   copr:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   COrdering:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  core-haskell:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  core:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   corebot-bliki:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   CoreDump:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   CoreErlang:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   CoreFoundation:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  core-haskell:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  core:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   coroutine-enumerator:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Coroutine:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   coroutine-iteratee:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Coroutine:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  couch-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  couch-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   couchdb-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   couchdb-enumerator:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   CouchDB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  couch-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  couch-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   counter:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  courier:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   court:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   coverage:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   CPBrainfuck:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3622,6 +3629,7 @@ dont-distribute-packages:
   cqrs-sqlite3:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   cqrs-test:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cqrs-testkit:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cr:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   crack:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Craft3e:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   craft:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3633,17 +3641,16 @@ dont-distribute-packages:
   crc16:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   crc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   creatur:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  credentials-cli:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   credential-store:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  credentials-cli:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   crf-chain1-constrained:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   crf-chain1:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   crf-chain2-generic:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   crf-chain2-tiers:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cr:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   criterion-plus:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   criterion-to-html:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  criu-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   criu-rpc-types:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  criu-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   crjdt-haskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   crocodile:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   cron-compat:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3651,26 +3658,27 @@ dont-distribute-packages:
   crunghc:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-cipher-benchmarks:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-classical:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cryptoconditions:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-conduit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-multihash:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-random-effect:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   crypto-simple:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cryptocompare:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cryptoconditions:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   cryptsy-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   crystalfontz:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   cse-ghc-plugin:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   csound-catalog:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   csound-expression-dynamic:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  csound-expression:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   csound-expression-opcodes:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   csound-expression-typed:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  csound-expression:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   csound-sampler:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  cspmchecker:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   CSPM-cspm:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   CSPM-FiringRules:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   CSPM-Frontend:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   CSPM-Interpreter:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   CSPM-ToProlog:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  cspmchecker:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cspretty:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   css:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ctemplate:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3680,67 +3688,65 @@ dont-distribute-packages:
   cudd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   currency-convert:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   curry-base:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  CurryDB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   curry-frontend:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  CurryDB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   curryrs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   curve25519:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   curves:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   custom-prelude:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   CV:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   cypher:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  d-bus:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   d3js:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dag:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   DAG-Tournament:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dag:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   damnpacket:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dangerous:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   dao:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dao:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   dapi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  darcs2dot:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-benchmark:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-beta:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-buildpackage:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-cabalized:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  darcsden:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-fastconvert:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-graph:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DarcsHelpers:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcs-monitor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  darcs2dot:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  darcsden:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DarcsHelpers:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   darcswatch:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   darkplaces-demo:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  darkplaces-rcon:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   darkplaces-rcon-util:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  darkplaces-rcon:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   dash-haskell:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-accessor-monadLib:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-accessor-monads-fd:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-accessor-monads-tf:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  database-study:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-concurrent-queue:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-construction:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-cycle:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-dispersal:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  datadog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-easy:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-embed:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-filepath:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  data-fin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-fin-simple:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  data-fin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-flagset:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-interval:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-ivar:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-kiln:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-layer:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-lens-fd:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  data-lens:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-lens-ixset:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-lens-template:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  datalog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  data-lens:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-map-multikey:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-nat:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  data-object:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-object-json:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-object-yaml:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  data-object:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-quotientref:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-repr:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-result:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3751,10 +3757,13 @@ dont-distribute-packages:
   data-spacepart:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-store:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-structure-inferrer:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DataTreeView:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   data-type:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  datetime:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  database-study:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  datadog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  datalog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DataTreeView:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   datetime-sb:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  datetime:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dawdle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbcleaner:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbjava:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3763,10 +3772,9 @@ dont-distribute-packages:
   dbmigrations-postgresql:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbus-client:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbus-core:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  d-bus:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DBus:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbus-qq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dbus-th-introspection:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DBus:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dclabel:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dcpu16:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-base:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3774,17 +3782,17 @@ dont-distribute-packages:
   ddc-core-babel:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-eval:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-flow:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ddc-core:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-llvm:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-salt:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-simpl:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-core-tetra:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ddc-core:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-driver:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ddci-core:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-interface:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-source-tetra:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-tools:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   ddc-war:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ddci-core:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   dead-code-detection:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   dead-simple-json:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   debug-me:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3808,12 +3816,12 @@ dont-distribute-packages:
   definitive-sound:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   deiko-config:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   dejafu:                                       [ "x86_64-darwin" ]
-  deka:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   deka-tests:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  deka:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   delicious:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   delta-h:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  delta:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Delta-Lambda:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  delta:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   demarcate:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   denominate:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   dependent-state:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3825,8 +3833,8 @@ dont-distribute-packages:
   derive-enumerable:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   derive-gadt:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   derive-IG:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  derive-storable:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   derive-storable-plugin:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  derive-storable:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   derive-topdown:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   derive-trie:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   derp-lib:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3847,12 +3855,12 @@ dont-distribute-packages:
   diagrams-canvas:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-contrib:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-hsqml:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  diagrams:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-pandoc:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-pdf:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-qrcode:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-tikz:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-wx:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  diagrams:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dice-entropy-conduit:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dicom:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   dictparser:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3864,8 +3872,8 @@ dont-distribute-packages:
   digestive-functors-blaze:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   digestive-functors-heist:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   digestive-functors-hsp:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DigitalOcean:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   digitalocean-kzs:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DigitalOcean:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   dimensional-codata:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   DimensionalHash:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   dimensions:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3873,24 +3881,24 @@ dont-distribute-packages:
   dingo-example:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   dingo-widgets:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   diophantine:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  diplomacy:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   diplomacy-server:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  diplomacy:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   direct-binary-files:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  directed-cubical:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   direct-fastcgi:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   direct-http:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   direct-plugins:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  directed-cubical:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   dirfiles:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   discogs-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   discord-hs:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  discordian-calendar:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   discord-rest:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  discordian-calendar:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   DiscussionSupportSystem:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dish:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   disjoint-set:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   diskhash:                                     [ "x86_64-darwin" ]
-  distance-of-time:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dist:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  distance-of-time:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   DisTract:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-async:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-azure:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3899,7 +3907,6 @@ dont-distribute-packages:
   distributed-process-execution:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-extras:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-fsm:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  distributed-process:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-lifted:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-monad-control:            [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-p2p:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3911,6 +3918,7 @@ dont-distribute-packages:
   distributed-process-task:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-tests:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   distributed-process-zookeeper:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  distributed-process:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   distribution-plot:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   dixi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   djembe:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3920,11 +3928,11 @@ dont-distribute-packages:
   dnscache:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dnsrbl:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dnssd:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  doc-review:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   doccheck:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   docidx:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dockercook:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   docker:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  doc-review:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dockercook:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   doctest-discover-configurator:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   DocTest:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   docvim:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3932,12 +3940,13 @@ dont-distribute-packages:
   doi:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   DOM:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   domplate:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dotfs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   dot-linker:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  download-media-content:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dotfs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   dow:                                          [ "x86_64-darwin" ]
+  download-media-content:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dozenal:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dozens:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DP:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   dph-base:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dph-examples:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   dph-lifted-base:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3946,40 +3955,39 @@ dont-distribute-packages:
   dph-prim-interface:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   dph-prim-par:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   dph-prim-seq:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DP:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   dpkg:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   DPM:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   drClickOn:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   dresdner-verkehrsbetriebe:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   DrHylo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   DrIFT-cabalized:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  drifter-postgresql:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   DrIFT:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  drifter-postgresql:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   drmaa:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   dropbox-sdk:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   dropsolve:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  DSH:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dsh-sql:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ds-kanren:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dsmc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dsh-sql:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  DSH:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   dsmc-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dson:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dsmc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dson-parsec:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dson:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   DSTM:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dstring:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dtab:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   DTC:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  dtd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   dtd-text:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dtd-types:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dtd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   dtw:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   duckling:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dumb-cas:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   duplo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dust-crypto:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Dust:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Dust-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Dust-tools-pcap:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Dust-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Dust:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dvda:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   dvdread:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   dvi-processing:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4014,13 +4022,13 @@ dont-distribute-packages:
   edenskel:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   edentv:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   edge:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  editable:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   edit-lenses:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  editable:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   editline:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   EditTimeReport:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   EEConfig:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  effective-aspects:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   effective-aspects-mzv:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  effective-aspects:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   egison-quote:                                 [ 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 ]
@@ -4038,10 +4046,10 @@ dont-distribute-packages:
   elocrypt:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   elsa:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   emacs-keys:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  email:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  emailparse:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   email-postmark:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   email-validator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  email:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  emailparse:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   embeddock-example:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   embeddock:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   embroidery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4063,8 +4071,8 @@ dont-distribute-packages:
   epass:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   epic:                                         [ "x86_64-darwin" ]
   epoll:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  epubname:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   epub-tools:                                   [ "x86_64-darwin" ]
+  epubname:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Eq:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   EqualitySolver:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   erd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4077,8 +4085,8 @@ dont-distribute-packages:
   error-loc:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   error-message:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   error-util:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ersatz:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ersatz-toysat:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ersatz:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ert:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   escape-artist:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   esotericbot:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4094,22 +4102,23 @@ dont-distribute-packages:
   Etherbunny:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-analyzer-cli:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-analyzer-deps:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ethereum-analyzer:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-analyzer-webui:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ethereum-analyzer:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-client-haskell:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ethereum-merkle-patricia-db:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   eurofxref:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Euterpea:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   event-driven:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  event-monad:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   eventful-dynamodb:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   eventful-postgresql:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   eventloop:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  event-monad:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   EventSocket:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   eventsource-geteventstore-store:              [ i686-linux, x86_64-linux, x86_64-darwin ]
   eventstore:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   every-bit-counts:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ewe:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ex-pool:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   exact-real:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   exception-hierarchy:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   exception-monads-fd:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4127,12 +4136,12 @@ dont-distribute-packages:
   explain:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   explicit-determinant:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   explicit-iomodes-bytestring:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  explicit-iomodes:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   explicit-iomodes-text:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  explicit-iomodes:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   explicit-sharing:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   explore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ex-pool:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   exposed-containers:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  expressions-z3:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   expressions:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   extcore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   extemp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4140,8 +4149,8 @@ dont-distribute-packages:
   extended-reals:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   extensible-data:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   extensible-effects:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  extractelf:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Extra:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  extractelf:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   extralife:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   extrapolate:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   ez-couch:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4150,10 +4159,11 @@ dont-distribute-packages:
   factual-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   fadno-braids:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   fadno-xml:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fadno:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   FailureT:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   fake-type:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fallingblocks:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   falling-turnip:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fallingblocks:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   family-tree:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   fastbayes:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   fastedit:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4166,14 +4176,14 @@ dont-distribute-packages:
   fay-dom:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-geoposition:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-hsx:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fay:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-jquery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-ref:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-simplejson:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-text:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   fay-uri:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fbmessenger-api:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fay:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fb-persistent:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fbmessenger-api:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   fca:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fcd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fckeditor:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4182,12 +4192,12 @@ dont-distribute-packages:
   fdo-trash:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   feature-flipper-postgres:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   fedora-packages:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  feed2lj:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  feed2twitter:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   feed-cli:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   feed-crawl:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   feed-gipeda:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   feed-translator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  feed2lj:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  feed2twitter:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   feldspar-compiler:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   feldspar-language:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   fenfire:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4204,21 +4214,21 @@ dont-distribute-packages:
   fields:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   FieldTrip:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   fieldwise:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  filecache:                                    [ "x86_64-darwin" ]
   file-collection:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   file-command-qq:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  filediff:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   file-location:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  FileManipCompat:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  filecache:                                    [ "x86_64-darwin" ]
+  filediff:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   FileManip:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  FileManipCompat:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  filepath-io-access:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   filepather:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   FilePather:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  filepath-io-access:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   Files:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   filesystem-conduit:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   filesystem-enumerator:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  FileSystem:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   filesystem-trees:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  FileSystem:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   fillit:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   filtrable:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Finance-Quote-Yahoo:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4231,40 +4241,40 @@ dont-distribute-packages:
   fit:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   fitsio:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   fitspec:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fixed-point:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fixed-point-vector:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fix-parser-simple:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fix-symbols-gitit:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixed-point-vector-space:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fixed-point-vector:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fixed-point:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixed-precision:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixed-storable-array:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixed-width:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixfile:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fix-parser-simple:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   fixplate:                                     [ "x86_64-darwin" ]
-  fix-symbols-gitit:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  flac:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   flac-picture:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  flac:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   flamethrower:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   flamingra:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   flat-maybe:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   flexible-time:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  flexiwrap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   flexiwrap-smallcheck:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  flexiwrap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   flickr:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Flippi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   flite:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   floating-bits:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  flow-er:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   flow2dot:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   flowdock-api:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  flowdock:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   flowdock-rest:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  flow-er:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  flowdock:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   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 ]
   fluidsynth:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  FM-SBLEX:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   fmark:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   FModExRaw:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  FM-SBLEX:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   fn-extra:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   foldl-incremental:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   foldl-statistics:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4273,22 +4283,22 @@ dont-distribute-packages:
   foma:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   font-opengl-basic4x6:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   foo:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  for-free:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   forbidden-fruit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   fordo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   forecast-io:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   foreign-var:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  for-free:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   forger:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   forkable-monad:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ForkableT:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  FormalGrammars:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   formal:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  format:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  FormalGrammars:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   format-status:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  format:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   formattable:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  forml:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   formlets-hsp:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   formlets:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  forml:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   formura:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ForSyDe:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   forth-hll:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4310,17 +4320,17 @@ dont-distribute-packages:
   free-functors:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   free-game:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   free-http:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  freekick2:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   free-operational:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  free-theorems-counterexamples:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  free-theorems-seq-webui:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  free-theorems-seq:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  free-theorems-webui:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  free-theorems:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  freekick2:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   freesect:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   freesound:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  free-theorems-counterexamples:                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  free-theorems:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  free-theorems-seq:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  free-theorems-seq-webui:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  free-theorems-webui:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  FreeTypeGL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   freetype-simple:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  FreeTypeGL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   fresh:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   friday-devil:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   friday-scale-dct:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4331,6 +4341,7 @@ dont-distribute-packages:
   fsmActions:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   fsnotify-conduit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   fsutils:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fswatch:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   fswatcher:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   ftdi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   FTGL-bytestring:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4338,17 +4349,17 @@ dont-distribute-packages:
   FTPLine:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ftshell:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   full-sessions:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fullstop:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   full-text-search:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fullstop:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   funbot-client:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   funbot-git-hook:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   funbot:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   funcons-tools:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  functional-arrow:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   function-combine:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   function-instances-algebra:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  functorm:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  functional-arrow:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   functor-utils:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  functorm:                                     [ 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 ]
   funpat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4356,15 +4367,16 @@ dont-distribute-packages:
   fusion:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   futun:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   future:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fuzzytime:                                    [ "x86_64-darwin" ]
   fuzzy-timings:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fuzzytime:                                    [ "x86_64-darwin" ]
   fwgl-glfw:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  fwgl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   fwgl-javascript:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  fwgl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  g-npm:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   g4ip:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gact:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gameclock:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   game-probability:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gameclock:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Gamgine:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Ganymede:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   garepinoh:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4374,11 +4386,12 @@ dont-distribute-packages:
   gdiff-ig:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   gdiff-th:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   GeBoP:                                        [ "x86_64-darwin" ]
-  geek:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   geek-server:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  geek:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gegl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gelatin:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   gemstone:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gen-passwd:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gencheck:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   gender:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   genders:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4391,33 +4404,32 @@ dont-distribute-packages:
   generic-lens:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-maybe:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-pretty:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  genericserialize:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-storable:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   generic-xml:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  genesis:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  genericserialize:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   genesis-test:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  genesis:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   genetics:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  geniconvert:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   geni-gui:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  geni-util:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   GenI:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  geniconvert:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   geniplate:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   geniserver:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  geni-util:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gen-passwd:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   genprog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   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-hashable:                   [ 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 ]
   GeoIp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  geojson:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   geojson-types:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  geojson:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   geolite-csv:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   geom2d:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   GeomPredicates-SSE:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  geo-resolver:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   getemx:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   getflag:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   GGg:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4428,17 +4440,7 @@ dont-distribute-packages:
   ghc-events-analyze:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-events-parallel:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-generic-instances:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghci-diagrams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghci-haskeline:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghci-history-parser:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghci-lib:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-imported-from:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghci-ng:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghcjs-dom-jsffi:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghcjs-hplay:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghcjs-promise:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghcjs-xhr:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ghclive:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-man-completion:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-parser:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-pkg-autofix:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4449,48 +4451,58 @@ dont-distribute-packages:
   ghc-syb:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-usage:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   ghc-vis:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghci-diagrams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghci-haskeline:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghci-history-parser:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghci-lib:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghci-ng:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghcjs-dom-jsffi:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghcjs-hplay:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghcjs-promise:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghcjs-xhr:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ghclive:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ght:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  giak:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-cairo:                                     [ "x86_64-darwin" ]
-  Gifcurry:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gi-gdkx11:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-gdk:                                       [ "x86_64-darwin" ]
+  gi-gdkx11:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-ggit:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-gstpbutils:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-gsttag:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-gtk-hs:                                    [ "x86_64-darwin" ]
+  gi-gtk:                                       [ "x86_64-darwin" ]
   gi-gtkosxapplication:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-gtksource:                                 [ "x86_64-darwin" ]
-  gi-gtk:                                       [ "x86_64-darwin" ]
   gi-notify:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-pangocairo:                                [ "x86_64-darwin" ]
-  gipeda:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gi-poppler:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gi-vte:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  giak:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Gifcurry:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gipeda:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gist:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   GiST:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-all:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-checklist:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-date:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitdo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-fmt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-freq:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-gpush:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  github-backup:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  github-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitignore:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitit:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-jump:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitlib-cross:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitlib-s3:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gitlib-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-monitor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-object:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-repair:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   git-sanity:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  git-vogue:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitdo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  github-backup:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  github-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitignore:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitit:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitlib-cross:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitlib-s3:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gitlib-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   gitson:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gitter:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  git-vogue:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gi-vte:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   glade:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   gladexml-accessor:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   glapp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4503,10 +4515,10 @@ dont-distribute-packages:
   glirc:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   gll:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   GLMatrix:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  global-config:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  global:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  global-variables:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   glob-posix:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  global-config:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  global-variables:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  global:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   glome-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   GlomeTrace:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   GlomeVec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4521,7 +4533,6 @@ dont-distribute-packages:
   gnome-desktop:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   gnome-keyring:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   gnomevfs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  g-npm:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   gnss-converters:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   gnuidn:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   goa:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4529,18 +4540,18 @@ dont-distribute-packages:
   goal-geometry:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   goal-probability:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   goal-simulation:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  goat:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   goatee-gtk:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   goatee:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  goat:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gofer-prelude:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   gogol-analytics:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   gogol-servicemanagement:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   gooey:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  GoogleDirections:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   google-drive:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   google-html5-slide:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   google-oauth2-for-cli:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   google-oauth2:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  GoogleDirections:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   googleplus:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   googlepolyline:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   GoogleSB:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4570,6 +4581,10 @@ dont-distribute-packages:
   GrammarProducts:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   grammatical-parsers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   grapefruit-ui-gtk:                            [ "x86_64-darwin" ]
+  graph-rewriting-cl:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  graph-rewriting-trs:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  graph-utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  graph-visit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Graph500:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   graphbuilder:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   graphene:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4579,24 +4594,21 @@ dont-distribute-packages:
   graphics-formats-collada:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   graphicsFormats:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   graphicstools:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  graph-rewriting-cl:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  graph-rewriting-trs:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  graphite:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   graphtype:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  graph-utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  graph-visit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   graql:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   grasp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   gray-extended:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   graylog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  greencard:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   greencard-lib:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  greencard:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   greg-client:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   gremlin-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   Grempa:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   grenade:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  grid:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gridbounds:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gridfs:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  grid:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gridland:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   grm:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   GroteTrap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4610,32 +4622,32 @@ dont-distribute-packages:
   gruff:                                        [ 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 ]
-  gssapi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gssapi-wai:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gssapi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gstreamer:                                    [ "x86_64-darwin" ]
   GTALib:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtfs:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gtk-largeTreeStore:                           [ "x86_64-darwin" ]
+  gtk-mac-integration:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gtk-serialized-event:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gtk-toy:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gtk-traymanager:                              [ "x86_64-darwin" ]
   gtk2hs-cast-glade:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-cast-gnomevfs:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gtk2hs-cast-gtkglext:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-cast-gtk:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  gtk2hs-cast-gtkglext:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-cast-gtksourceview2:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-cast-th:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Gtk2hsGenerics:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-hello:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk2hs-rpn:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Gtk2hsGenerics:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk3-mac-integration:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtk3:                                         [ "x86_64-darwin" ]
   gtkglext:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   GtkGLTV:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtkimageview:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gtk-largeTreeStore:                           [ "x86_64-darwin" ]
-  gtk-mac-integration:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtkrsync:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gtk-serialized-event:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   gtksourceview3:                               [ "x86_64-darwin" ]
-  gtk-toy:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  gtk-traymanager:                              [ "x86_64-darwin" ]
   guarded-rewriting:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   guess-combinator:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   guid:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4643,24 +4655,17 @@ dont-distribute-packages:
   GuiTV:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   gulcii:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   gyah-bin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  h-booru:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  h-gpgme:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  h-reversi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2048:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2c:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  H:                                            [ "x86_64-darwin" ]
   haar:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   habit:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hach:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hack2-handler-happstack-server:               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hack2-handler-mongrel2-http:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hack2-handler-snap-server:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hack2-handler-warp:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage2twitter:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage-diff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage-mirror:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage-proxy:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage-server:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackage-whatsnew:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hack-contrib:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-contrib-press:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackernews:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hack-contrib:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-frontend-happstack:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-handler-cgi:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-handler-epoll:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4670,11 +4675,22 @@ dont-distribute-packages:
   hack-handler-hyena:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-handler-kibro:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-handler-simpleserver:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HackMail:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hackmanager:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-middleware-cleanpath:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-middleware-clientsession:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hack-middleware-jsonp:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hack2-handler-happstack-server:               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hack2-handler-mongrel2-http:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hack2-handler-snap-server:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hack2-handler-warp:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage-diff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage-mirror:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage-proxy:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage-server:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage-whatsnew:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackage2twitter:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackernews:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HackMail:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hackmanager:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hactor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hactors:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haddock-leksah:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4695,8 +4711,8 @@ dont-distribute-packages:
   hakyll-contrib-csv:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-contrib-elm:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-contrib-hyphenation:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hakyll-contrib:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-contrib-links:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hakyll-contrib:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-ogmarkup:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-R:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hakyll-sass:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4705,8 +4721,8 @@ dont-distribute-packages:
   halipeto:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   halive:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   halma-gui:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  halma:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   halma-telegram-bot:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  halma:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hamid:                                        [ "x86_64-darwin" ]
   HaMinitel:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hampp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4717,20 +4733,22 @@ dont-distribute-packages:
   handsy:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hangman:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hannahci:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hans:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hans-pcap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hans:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   haphviz:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   happindicator3:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   happindicator:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   happraise:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HAppS-Data:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happs-hsp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   happs-hsp-template:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happs-hsp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HAppS-IxSet:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   HAppS-Server:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   HAppS-State:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happstack-authenticate:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happs-tutorial:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HAppS-Util:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-auth:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happstack-authenticate:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-contrib:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-data:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-dlg:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4741,7 +4759,6 @@ dont-distribute-packages:
   happstack-heist:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-helpers:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-hstringtemplate:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happstack:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-ixset:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-monad-peel:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-plugins:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4749,11 +4766,10 @@ dont-distribute-packages:
   happstack-state:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-util:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   happstack-yui:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happs-tutorial:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HAppS-Util:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happybara:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  happybara-webkit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happstack:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   happybara-webkit-server:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happybara-webkit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  happybara:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hapstone:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HaPy:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   harchive:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4767,33 +4783,33 @@ dont-distribute-packages:
   haroonga-httpd:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haroonga:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   harvest-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  has-th:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  has:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   HasCacBDD:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hascar:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hascas:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hascat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hascat-lib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hascat-setup:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hascat-system:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hascat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Haschoo:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HasGP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hash:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hashable-extras:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hashable-generics:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   hashed-storage:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hashell:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hash:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hashring:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hashtables-plus:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  has:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasim:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hask-home:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hask:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskades:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskarrow:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskbot-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskdeep:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskeem:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskeline-class:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskell2010:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskell98:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskell98libraries:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-abci:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-aliyun:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-awk:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4801,39 +4817,16 @@ dont-distribute-packages:
   haskell-cnc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-coffee:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-course-preludes:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-connect-hdbc-catchio-mtl:           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-connect-hdbc-catchio-tf:            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-connect-hdbc-catchio-transformers:  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-connect-hdbc:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-connect-hdbc-lifted:                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-dynamic:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-flat:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hdbc:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hdbc-mysql:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hdbc-odbc:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hdbc-postgresql:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hdbc-sqlite3:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hsql:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hsql-mysql:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hsql-odbc:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hsql-postgresql:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-hsql-sqlite3:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-th:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskelldb-wx:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-eigen-util:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-formatter:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-ftp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-generate:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-igraph:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-kubernetes:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HaskellLM:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-lsp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-mpfr:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-names:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-neo4j-client:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HaskellNN:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Haskelloids:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-openflow:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-pdf-presenter:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-platform-test:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4842,8 +4835,6 @@ dont-distribute-packages:
   haskell-read-editor:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-reflect:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-rules:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskellscrabble:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskellscript:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-src-exts-observe:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-src-exts-prisms:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-src-exts-qq:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4854,52 +4845,81 @@ dont-distribute-packages:
   haskell-tools-ast-trf:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-tools-cli:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-tor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HaskellTorrent:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HaskellTutorials:                             [ 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 ]
   haskell-tyrant:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskell-xmpp:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskell2010:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskell98:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskell98libraries:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-connect-hdbc-catchio-mtl:           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-connect-hdbc-catchio-tf:            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-connect-hdbc-catchio-transformers:  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-connect-hdbc-lifted:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-connect-hdbc:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-dynamic:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-flat:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hdbc-mysql:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hdbc-odbc:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hdbc-postgresql:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hdbc-sqlite3:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hdbc:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hsql-mysql:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hsql-odbc:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hsql-postgresql:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hsql-sqlite3:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-hsql:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-th:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb-wx:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskelldb:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HaskellLM:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HaskellNN:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Haskelloids:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskellscrabble:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskellscript:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HaskellTorrent:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HaskellTutorials:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskgame:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskheap:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskhol-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hask-home:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hask:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskmon:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-crypto:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskoin:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-node:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-protocol:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-script:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-util:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoin-wallet:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskoin:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoon-httpspec:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskoon:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskoon-salvia:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haskore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskoon:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskore-realtime:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskore-supercollider:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   haskore-synthesizer:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haskore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HaskRel:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hasloGUI:                                     [ 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 ]
   hasparql-client:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-backend:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-class:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-cursor-query:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-generic:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hasql-postgres:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hasql-postgres-options:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hasql-postgres:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haste-app:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   haste-compiler:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   haste-gapi:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  haste:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haste-lib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haste-markup:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   haste-perch:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  has-th:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haste-prim:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  haste:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hate:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   HaTeX-meta:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   HaTeX-qq:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hats:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   haverer:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HaVSA:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4921,7 +4941,6 @@ dont-distribute-packages:
   hbeat:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hblas:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hblock:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  h-booru:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HCard:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hcc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hcheat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4940,10 +4959,10 @@ dont-distribute-packages:
   hdbc-postgresql-hstore:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HDBC-postgresql-hstore:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdbi-conduit:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hdbi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdbi-postgresql:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdbi-sqlite:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdbi-tests:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hdbi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hDFA:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdigest:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hdirect:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4964,31 +4983,31 @@ dont-distribute-packages:
   heist-aeson:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   heist-async:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   heist:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  helics:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   helics-wai:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  helics:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   helium:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   helix:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hellage:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hell:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hellage:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hellnet:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   help-esb:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hemkay:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hemokit:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  henet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hen:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  henet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hepevt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  her-lexer-parsec:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  her-lexer:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HERA:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   herbalizer:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   HerbiePlugin:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   heredocs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  her-lexer:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  her-lexer-parsec:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hermes:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hermit:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hermit-syb:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hermit:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   herringbone-embed:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  herringbone:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   herringbone-wai:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  herringbone:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hesh:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hesql:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hetris:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4999,8 +5018,8 @@ dont-distribute-packages:
   hexml-lens:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hexpat-iteratee:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hexpat-pickle-generic:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hexpress:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hexpr:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hexpress:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hexquote:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hF2:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hfann:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5013,6 +5032,7 @@ dont-distribute-packages:
   hfractal:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HFrequencyQueue:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hfusion:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hg-buildpackage:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgalib:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-API:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-Audio:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5024,7 +5044,6 @@ dont-distribute-packages:
   HGamer3D-Enet-Binding:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-Graphics3D:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-GUI:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HGamer3D:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-InputSystem:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-Network:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-Ogre-Binding:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5033,7 +5052,7 @@ dont-distribute-packages:
   HGamer3D-SFML-Binding:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-WinEvent:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGamer3D-Wire:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hg-buildpackage:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HGamer3D:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgdbmi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGE2D:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgearman:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5046,13 +5065,13 @@ dont-distribute-packages:
   hgithub:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgom:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgopher:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  h-gpgme:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HGraphStorage:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgrev:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hgrib:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hharp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HHDL:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hi3status:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hiccup:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hichi:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hid:                                          [ "x86_64-darwin" ]
@@ -5066,7 +5085,6 @@ dont-distribute-packages:
   higher-leveldb:                               [ "x86_64-darwin" ]
   higherorder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   highWaterMark:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   himg:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   himpy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hindley-milner:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5076,27 +5094,27 @@ dont-distribute-packages:
   hint-server:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hinvaders:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hinze-streams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hip:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hipbot:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hipchat-hs:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hipe:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hip:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HipmunkPlayground:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hipmunk-Utils:                                [ "x86_64-darwin" ]
   Hipmunk:                                      [ "x86_64-darwin" ]
+  HipmunkPlayground:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   hircules:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hirt:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hish:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hissmetrics:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  historian:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hist-pl-fusion:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hist-pl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hist-pl-lexicon:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hist-pl-lmf:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hist-pl-types:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hist-pl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  historian:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HJavaScript:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hjcase:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HJScript:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hjs:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HJScript:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HJVM:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hlatex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hlbfgsb:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5107,6 +5125,7 @@ dont-distribute-packages:
   HLearn-classification:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HLearn-datastructures:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HLearn-distributions:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hledger-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hledger-chart:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hledger-iadd:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hledger-vty:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5132,8 +5151,8 @@ dont-distribute-packages:
   hmatrix-special:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hmatrix-static:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hmatrix-syntax:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hmeap:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hmeap-utils:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hmeap:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hmenu:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hmidi:                                        [ "x86_64-darwin" ]
   hmk:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5148,22 +5167,24 @@ dont-distribute-packages:
   hnix:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   HNM:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hnormalise:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ho-rewriting:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoauth:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hob:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hobbes:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hobbits:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hob:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hocilib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hodatime:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HODE:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hoed:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hofix-mtl:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hogg:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hog:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hogg:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hogre-examples:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hogre:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hois:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hol:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hold-em:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hole:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hol:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Holumbus-Distribution:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Holumbus-MapReduce:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   Holumbus-Searchengine:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5175,23 +5196,22 @@ dont-distribute-packages:
   honi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   honk:                                         [ "x86_64-darwin" ]
   hoobuddy:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hood-off:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoodie:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoodle-core:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoodle-extra:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hoodle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoodle-publish:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoodle-render:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hood-off:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hoodle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoogle-index:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hooks-dir:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoovie:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hopencc:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hopencl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hOpenPGP:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hopenpgp-tools:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hOpenPGP:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hopfield:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hoq:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ho-rewriting:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   horizon:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   horname:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hosts-server:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5202,14 +5222,14 @@ dont-distribute-packages:
   hp2any-core:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hp2any-graph:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hp2any-manager:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hpaco:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpaco-lib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hpaco:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpage:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpapi:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpaste:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpasteit:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HPath:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpath:                                        [ "x86_64-darwin" ]
+  HPath:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpc-tracer:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hpdft:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HPi:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5229,20 +5249,44 @@ dont-distribute-packages:
   hpylos:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hquantlib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hquery:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hR:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hranker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   HRay:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  h-reversi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hR:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hricket:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hricket:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hriemann:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-core:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-graf:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-hist:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  HROOT:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-io:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-math:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   HROOT-tree:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  HROOT:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-blake2:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-carbon-examples:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-cdb:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-di:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-dotnet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-excelx:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-ffmpeg:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-fltk:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-gchart:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-gen-iface:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-gizapp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-java:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-json-rpc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-logo:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-mesos:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-multiaddr:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-nombre-generator:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-pgms:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-pkpass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-re:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-scrape:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-twitter:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-twitterarchiver:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-vcard:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hs-watchman:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hs2bf:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hs2dot:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hs2lib:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5252,7 +5296,6 @@ dont-distribute-packages:
   hsbencher-codespeed:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsbencher-fusion:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsbencher:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-blake2:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsc3-cairo:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsc3-data:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsc3-forth:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5267,34 +5310,24 @@ dont-distribute-packages:
   hsc3-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hscaffold:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hscamwire:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-carbon-examples:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   hscassandra:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-cdb:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hscd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsclock:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hscope:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hScraper:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsdif:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-di:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsdip:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsdns-cache:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-dotnet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hsed:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsemail-ns:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsenv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-excelx:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfacter:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfcsh:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSFFIG:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-ffmpeg:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfilt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-fltk:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-gchart:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-gen-iface:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSGEP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-gizapp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsgnutls:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsgnutls-yj:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsgnutls:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsgsom:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HsHaruPDF:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSHHelpers:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5302,24 +5335,18 @@ dont-distribute-packages:
   HsHyperEstraier:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsI2C:                                        [ "x86_64-darwin" ]
   hSimpleDB:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-java:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-json-rpc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   HsJudy:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hskeleton:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hslackbuilder:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hslibsvm:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSlippyMap:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hslogger-reader:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-logo:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hslogstash:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsmagick:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSmarty:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-mesos:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hsmtlib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsmtpclient:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-multiaddr:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsnock:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-nombre-generator:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsns:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsnsq:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsntp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5327,8 +5354,8 @@ dont-distribute-packages:
   hsoptions:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSoundFile:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsoz:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsparql:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsp-cgi:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsparql:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspear:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspec-expectations-pretty:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspec-experimental:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5340,24 +5367,20 @@ dont-distribute-packages:
   hspec-snap:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspec-test-sandbox:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   HsPerl5:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-pgms:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspkcs11:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-pkpass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspread:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hspresent:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsprocess:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsql-mysql:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsqml-datamodel:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-datamodel-vinyl:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsqml-datamodel:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-demo-manic:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-demo-morris:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-demo-notes:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-demo-samples:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsqml:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsqml-morris:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsqml:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsreadability:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-re:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-scrape:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsseccomp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsshellscript:                                [ "x86_64-darwin" ]
   hssourceinfo:                                 [ "x86_64-darwin" ]
@@ -5370,19 +5393,15 @@ dont-distribute-packages:
   hstox:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hstradeking:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   HStringTemplateHelpers:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-twitterarchiver:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-twitter:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   hstyle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hstzaar:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsubconvert:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsudoku:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-vcard:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSvm:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hs-watchman:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hswip:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsXenCtrl:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hsx:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsx-xhtml:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsx:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsXenCtrl:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsyscall:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsyslog-tcp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsyslog-udp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5406,11 +5425,12 @@ dont-distribute-packages:
   http-enumerator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   http-kinder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   http-proxy:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  https-everywhere-rules:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  https-everywhere-rules-raw:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   http-shed:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  httpspec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   http-wget:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  http2-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  https-everywhere-rules-raw:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  https-everywhere-rules:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  httpspec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   htune:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   htzaar:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hubris:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5436,21 +5456,20 @@ dont-distribute-packages:
   huttons-razor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   huzzy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hVOIDP:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hwall-auth-iitk:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hw-kafka-avro:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hw-kafka-client:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hw-kafka-conduit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hworker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hw-xml:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwall-auth-iitk:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hworker-ses:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hworker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hws:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hwsl2-bytevector:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hwsl2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hwsl2-reducers:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hw-xml:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  H:                                            [ "x86_64-darwin" ]
+  hwsl2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hXmixer:                                      [ "x86_64-darwin" ]
-  hxmppc:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HXMPP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hxmppc:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxournal:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   HXQ:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxt-binary:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5464,14 +5483,14 @@ dont-distribute-packages:
   hydrogen-cli-args:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-cli:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-data:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hydrogen:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Hydrogen:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-multimap:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-parsing:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  hydrogen-prelude:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-prelude-parsec:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hydrogen-prelude:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-syntax:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   hydrogen-util:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hydrogen:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Hydrogen:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hyena:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hylolib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hylotab:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5487,10 +5506,10 @@ dont-distribute-packages:
   ib-api:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   IcoGrid:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   iconv-typed:                                  [ "x86_64-darwin" ]
-  ideas-math:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ide-backend-common:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ide-backend:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   ide-backend-server:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ide-backend:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ideas-math:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   idempotent:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   idiii:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   idna2008:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5499,8 +5518,8 @@ dont-distribute-packages:
   iException:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ifcxt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   IFS:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ige-mac-integration:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ig:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ige-mac-integration:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   igraph:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   igrf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-aeson:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5510,7 +5529,6 @@ dont-distribute-packages:
   ihaskell-diagrams:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-display:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-hatex:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ihaskell:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-inline-r:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-juicypixels:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-magic:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5518,21 +5536,22 @@ dont-distribute-packages:
   ihaskell-plot:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-rlangqq:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-widgets:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ihaskell:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihttp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   illuminate:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   imagemagick:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   imagepaste:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  imapget:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   imap:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  imapget:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   imbib:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   imgurder:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   imparse:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  imperative-edsl:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   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 ]
-  implicit:                                     [ 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 ]
+  implicit:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   imports:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   impossible:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   improve:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5545,12 +5564,12 @@ dont-distribute-packages:
   IndexedList:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   indices:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   indieweb-algorithms:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  infernu:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  infer-upstream:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  infinity:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   inf-interval:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  InfixApplicative:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  infer-upstream:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  infernu:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  infinity:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   infix:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  InfixApplicative:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   inflist:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   informative:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   inject-function:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5568,26 +5587,27 @@ dont-distribute-packages:
   interleavableGen:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   interleavableIO:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   internetmarke:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  interpolatedstring-qq:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  interpolatedstring-qq-mwotton:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpol:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  interpolatedstring-qq-mwotton:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  interpolatedstring-qq:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   interruptible:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   intricacy:                                    [ "x86_64-darwin" ]
-  introduction-test:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   intro-prelude:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  introduction-test:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  introduction:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   intset:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   invertible-hlist:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   io-capture:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ion:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   io-reactive:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  IORefCAS:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ion:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   IOR:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  IORefCAS:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   iothread:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   iotransaction:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   ip2location:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ip:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   ipatch:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ipc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ip:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   ipopt-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   iptables-helpers:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   iptadmin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5598,8 +5618,8 @@ dont-distribute-packages:
   irc-fun-color:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   Irc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   iridium:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ironforge:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   iron-mq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ironforge:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   isevaluated:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   isiz:                                         [ "x86_64-darwin" ]
   ismtp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5607,14 +5627,14 @@ dont-distribute-packages:
   iso8583-bitmaps:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   isobmff-builder:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   isohunt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  iter-stats:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   iteratee-compress:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  iteratee:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   iteratee-mtl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   iteratee-parsec:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   iteratee-stm:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  iterIO:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  iteratee:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   iterio-server:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  iter-stats:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  iterIO:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ivor:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ivory-backend-c:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   ivory-bitdata:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5626,10 +5646,10 @@ dont-distribute-packages:
   iyql:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   j2hs:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   jack-bindings:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  jack:                                         [ "x86_64-darwin" ]
   jack:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   jackminimix:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   JackMiniMix:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  jack:                                         [ "x86_64-darwin" ]
   jacobi-roots:                                 [ 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 ]
@@ -5640,6 +5660,7 @@ dont-distribute-packages:
   java-bridge-extras:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   java-bridge:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   java-reflect:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  javaclass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   javasf:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Javasf:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   javav:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5654,35 +5675,35 @@ dont-distribute-packages:
   joinlist:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   jonathanscard:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   jort:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  js-good-parts:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsaddle-hello:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsaddle-warp:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsaddle-wkwebview:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   JsContracts:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  js-good-parts:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsmw:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  json2-hdbc:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  json2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-api:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-ast-quickcheck:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-autotype:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-b:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  JSONb:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   JSON-Combinator-Examples:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   JSON-Combinator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-enumerator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-extra:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-feed:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  JsonGrammar:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-incremental-decoder:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-litobj:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-pointer-hasql:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-python:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   json-qq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  json-togo:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  json-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  json2-hdbc:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  json2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  JSONb:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  JsonGrammar:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsonresume:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsonrpc-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsonsql:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  json-togo:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  json-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsontsv:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   jsonxlsx:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   jspath:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5696,28 +5717,28 @@ dont-distribute-packages:
   JYU-Utils:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-glut:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  kafka-device:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-joystick:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-leap:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-spacenav:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   kafka-device-vrpn:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  kafka-device:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kaleidoscope:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kalman:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Kalman:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   kangaroo:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   kanji:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   kansas-lava-cores:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  kansas-lava:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   kansas-lava-papilio:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   kansas-lava-shake:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  kansas-lava:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   karakuri:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   karps:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   katip-elasticsearch:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   katt:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   kawaii:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   kazura-queue:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  kdesrc-build-extra:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   kd-tree:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  kdesrc-build-extra:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-i18n:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-mvc-environment-gtk:              [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-mvc-model-lightmodel:             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5725,12 +5746,12 @@ dont-distribute-packages:
   keera-hails-mvc-solutions-gtk:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-fs:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-gtk:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  keera-hails-reactivelenses:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-network:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-polling:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  keera-hails-reactivevalues:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-wx:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-hails-reactive-yampa:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  keera-hails-reactivelenses:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  keera-hails-reactivevalues:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   keera-posture:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   keiretsu:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Ketchup:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5744,8 +5765,8 @@ dont-distribute-packages:
   kicad-data:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   kickass-torrents-dump-parser:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   KiCS-debugger:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  KiCS:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   KiCS-prophecy:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  KiCS:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   kif-parser:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   kit:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   kmeans-par:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5762,19 +5783,23 @@ dont-distribute-packages:
   KSP:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ktx:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   kure-your-boilerplate:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  KyotoCabinet:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   kyotocabinet:                                 [ "x86_64-darwin" ]
+  KyotoCabinet:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  l-bfgs-b:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  L-seed:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   labeled-graph:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   laborantin-hs:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  labyrinth:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   labyrinth-server:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  labyrinth:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lagrangian:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   laika:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambda-bridge:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambda-canvas:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambda-devs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambda-toolbox:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   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 ]
-  lambda-bridge:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lambda-canvas:                                [ 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 ]
@@ -5784,56 +5809,55 @@ dont-distribute-packages:
   lambdacube-engine:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacube-examples:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacube-gl:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lambdacube:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacube-ir:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdacube-samples:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lambda-devs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lambdacube:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdaFeed:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   LambdaINet:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Lambdajudge:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdaLit:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   LambdaNet:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   LambdaPrettyQuote:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lambda-toolbox:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdatwit:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdaya-bus:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   Lambdaya:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lambdiff:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lame:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lame-tester:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lame:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-bash:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-boogie:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-c-comments:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-c-inline:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-conf:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-eiffel:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  language-elm:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-gcl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-go:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-guess:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-java-classfile:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-kort:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  language-lua2:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-lua-qq:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  language-lua2:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-mixal:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-ninja:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-objc:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-pig:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-puppet:                              [ "x86_64-darwin" ]
   language-python-colour:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  language-python:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-python-test:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  language-python:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-qux:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-sh:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-spelling:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   language-sqlite:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   LargeCardinalHierarchy:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Lastik:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   latest-npm-version:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   latex-formulae-hakyll:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   latex-formulae-image:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   latex-formulae-pandoc:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   latex-function-tables:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   LATS:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   launchpad-control:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   layers-game:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5843,7 +5867,6 @@ dont-distribute-packages:
   lazyset:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   lazysplines:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   LazyVault:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  l-bfgs-b:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lcs:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   LDAP:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ldapply:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5861,13 +5884,13 @@ dont-distribute-packages:
   legion:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   leksah-server:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lendingclub:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lenses:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   lens-properties:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lensref:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   lens-text-encoding:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   lens-time:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lens-tutorial:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lens-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lenses:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lensref:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   lenz-template:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   Level0:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   leveldb-haskell-fork:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5875,8 +5898,8 @@ dont-distribute-packages:
   levmar-chart:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   levmar:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   lgtk:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lhae:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lha:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lhae:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lhc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   lhe:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   lhs2TeX-hl:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5910,8 +5933,8 @@ dont-distribute-packages:
   lifter:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ligature:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lightning-haskell:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lighttpd-conf:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lighttpd-conf-qq:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lighttpd-conf:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   lilypond:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Limit:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   limp-cbc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5922,9 +5945,9 @@ dont-distribute-packages:
   linear-circuit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   linear-maps:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   linear-opengl:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  linear-vect:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   linearscan-hoopl:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   LinearSplit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  linear-vect:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   LinkChecker:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   linkchk:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   linkcore:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5944,60 +5967,60 @@ dont-distribute-packages:
   lio-eci11:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lio-simple:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   lipsum-gen:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  liquid:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal-demo:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  liquid:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  listlike-instances:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-mux:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-t-attoparsec:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-t-html-parser:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-t-http-client:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-t-text:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-zip-def:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  literals:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  listlike-instances:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   lit:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  literals:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   live-sequencer:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ll-picosat:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   llsd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-analysis:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  llvm-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-base-types:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-base-util:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  llvm-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-data-interop:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-extra:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-ffi:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  llvm-general:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-general-pure:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-general-quote:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  llvm-general:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-hs:                                      [ "x86_64-darwin" ]
   llvm-ht:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  llvm:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-tf:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   llvm-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  llvm:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lmdb-high-level:                              [ "x86_64-darwin" ]
   lmdb-simple:                                  [ "x86_64-darwin" ]
   lmdb:                                         [ "x86_64-darwin" ]
-  lmonad:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   lmonad-yesod:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lmonad:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  loc:                                          [ "x86_64-darwin" ]
   local-search:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   loch:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   locked-poll:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  loc:                                          [ "x86_64-darwin" ]
-  log2json:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   log-effect:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  log-postgres:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  log-utils:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  log2json:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  log:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   logentries:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   logger:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  log:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   logic-classes:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  LogicGrowsOnTrees:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Logic:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   LogicGrowsOnTrees-MPI:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   LogicGrowsOnTrees-network:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   LogicGrowsOnTrees-processes:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Logic:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  LogicGrowsOnTrees:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   logplex-parse:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  log-postgres:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  log-utils:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lojban:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   lojbanParser:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   lojbanXiragan:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6006,11 +6029,11 @@ dont-distribute-packages:
   lol-benches:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   lol-calculus:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   lol-cpp:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lol:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  loli:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lol-repa:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   lol-tests:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lol-typing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lol:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  loli:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lookup-tables:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   loop-effin:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   loop-while:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6023,10 +6046,9 @@ dont-distribute-packages:
   loup:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lowgl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   lp-diagrams-svg:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lscabal:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  L-seed:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  LslPlus:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ls-usb:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lscabal:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  LslPlus:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   lsystem:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ltk:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   luachunk:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6035,8 +6057,8 @@ dont-distribute-packages:
   lui:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   luis-client:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   luka:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  luminance:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   luminance-samples:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  luminance:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   lushtags:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   luthor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   lvish:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6046,8 +6068,8 @@ dont-distribute-packages:
   Lykah:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   lz4-conduit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   lzma-enumerator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  lzma:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   lzma-streams:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  lzma:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   maam:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   macbeth-lib:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   machines-amazonka:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6060,21 +6082,21 @@ dont-distribute-packages:
   magma:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mahoro:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   maid:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mailchimp-subscribe:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   mailchimp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   MailchimpSimple:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mailchimp-subscribe:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   mailgun:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   majordomo:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   majority:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  makedo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   make-hard-links:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   make-package:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  makedo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mallard:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-anything:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-curl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-editor:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-filemanager:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  manatee:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-imageviewer:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-ircclient:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-mplayer:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6083,14 +6105,15 @@ dont-distribute-packages:
   manatee-template:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-terminal:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   manatee-welcome:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  manatee:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mandulia:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   mangopay:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   manifold-random:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   manifolds:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mappy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   marionetta:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  markdown2svg:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   markdown-kate:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  markdown2svg:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   markov-processes:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   marmalade-upload:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   marquise:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6105,16 +6128,16 @@ dont-distribute-packages:
   matplotlib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   matsuri:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   matterhorn:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mattermost-api:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   mattermost-api-qc:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mattermost-api:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   maude:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  maxent:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   maxent-learner-hw-gui:                        [ "x86_64-darwin" ]
+  maxent:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   maxsharing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   maybench:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MaybeT:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   MaybeT-monads-tf:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   MaybeT-transformers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MaybeT:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   MazesOfMonad:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   mbox-tools:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   MC-Fold-DP:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6131,8 +6154,8 @@ dont-distribute-packages:
   MeanShift:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Measure:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mecab:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Mecha:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mech:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Mecha:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mechs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Mechs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mediabus-fdk-aac:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6146,26 +6169,27 @@ dont-distribute-packages:
   memcached-binary:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   memcached:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   memis:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  memoization-utils:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   memo-ptr:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   memo-sqlite:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  memoization-utils:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   merge-bash-history:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   merkle-patricia-db:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   messente:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  metadata:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MetaHDBC:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   meta-misc:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   meta-par-accelerate:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  metadata:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MetaHDBC:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   metaplug:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   metric:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  metricsd-client:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   metrics:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Metrics:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  metricsd-client:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   metronome:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mezzolens:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mgeneric:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Mhailist:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   MHask:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   Michelangelo:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   microformats2-types:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   microlens-each:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6174,14 +6198,13 @@ dont-distribute-packages:
   mida:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   midair:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   midi-alsa:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  midi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  midimory:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   midi-music-box:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  midisurface:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   midi-util:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   midi-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  midi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  midimory:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  midisurface:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mighttpd:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   mime-string:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   minecraft-data:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   minesweeper:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6201,8 +6224,8 @@ dont-distribute-packages:
   MissingPy:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mixed-strategies:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   mkbndl:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mlist:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ml-w:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mlist:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mmtf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   mmtl-base:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mmtl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6219,27 +6242,15 @@ dont-distribute-packages:
   mohws:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mole:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   mollie-api-haskell:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monadacme:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monad-atom:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-atom-simple:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadCatchIO-mtl-foreign:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadCatchIO-mtl:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadCatchIO-transformers-foreign:            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadCatchIO-transformers:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monad-atom:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-codec:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadCompose:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-dijkstra:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-exception:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-fork:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monadiccp-gecode:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monadiccp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-interleave:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Monadius:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadLab:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-levels:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-lgbt:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monadLib-compose:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monadloc-pp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-log:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-lrs:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-memo:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6247,8 +6258,6 @@ dont-distribute-packages:
   monad-open:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-ran:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-resumption:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  monads-fd:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MonadStack:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-state:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-statevar:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-ste:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6257,18 +6266,32 @@ dont-distribute-packages:
   monad-task:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-tx:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   monad-unify:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monadacme:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadCatchIO-mtl-foreign:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadCatchIO-mtl:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadCatchIO-transformers-foreign:            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadCatchIO-transformers:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadCompose:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monadiccp-gecode:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monadiccp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Monadius:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadLab:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monadLib-compose:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monadloc-pp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  monads-fd:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MonadStack:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monarch:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Monaris:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Monatron:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Monatron-IO:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Monatron:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   mondo:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   monetdb-mapi:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   money:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mongodb-queue:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   mongrel2-handler:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   monky:                                        [ "x86_64-darwin" ]
-  Monocle:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mono-foldable:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Monocle:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   monoid-owns:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   monoidplus:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   monoids:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6283,8 +6306,8 @@ dont-distribute-packages:
   mount:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   movie-monad:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mp3decoder:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mpdmate:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mp:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mpdmate:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mpppc:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mpretty:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mpris:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6292,12 +6315,12 @@ dont-distribute-packages:
   mps:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   mpvguihs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   mrm:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ms:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   msgpack-aeson:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  msgpack:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   msgpack-idl:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   msgpack-rpc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  msgpack:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   msh:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ms:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   msi-kb-backlit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   MSQueue:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   MTGBuilder:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6308,20 +6331,20 @@ dont-distribute-packages:
   mtp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   MuCheck-Hspec:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   MuCheck-HUnit:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  MuCheck:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   MuCheck-QuickCheck:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   MuCheck-SmallCheck:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mudbath:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  MuCheck:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mud:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mudbath:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   mulang:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   multext-east-msd:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  multiaddr:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   multi-cabal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  multiaddr:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   multifocal:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   multihash:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   multipass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  multiplate:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   multiplate-simplified:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  multiplate:                                   [ 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 ]
@@ -6331,9 +6354,8 @@ dont-distribute-packages:
   Munkres-simple:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   muon:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   murder:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  murmurhash3:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   murmur:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  musicbrainz-email:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  murmurhash3:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   music-graphics:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   music-parts:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   music-pitch:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6341,18 +6363,19 @@ dont-distribute-packages:
   music-score:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   music-sibelius:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   music-suite:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  musicbrainz-email:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   musicxml:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mustache2hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mustache-haskell:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mustache2hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mutable-iter:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   MutationOrder:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   mute-unmute:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mvc-updates:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mvc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   mvclient:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mvc-updates:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   mxnet-examples:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  mxnet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   mxnet-nnvm:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  mxnet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   myo:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   MyPrimes:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   mysnapsession-example:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6365,14 +6388,15 @@ dont-distribute-packages:
   myTestlll:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   mzv:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   nagios-plugin-ekg:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nakadi-client:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   named-lock:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   NameGenerator:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   namelist:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nanoAgda:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   nano-cryptr:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nanocurses:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   nano-hmac:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   nano-md5:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nanoAgda:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nanocurses:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanomsg-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanomsg:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanoparsec:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6380,8 +6404,8 @@ dont-distribute-packages:
   nanovg:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nanq:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   narc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  native:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nat-sized-numbers:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  native:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nats-queue:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   natural-number:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   naver-translate:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6394,12 +6418,12 @@ dont-distribute-packages:
   Neks:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   nemesis-titan:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   nerf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nero:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   nero-wai:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   nero-warp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nero:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nested-routes:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   NestedFunctor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   nestedmap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nested-routes:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   netcore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   netease-fm:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   netlines:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6408,9 +6432,9 @@ dont-distribute-packages:
   netspec:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   netstring-enumerator:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   nettle-frp:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nettle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nettle-netkit:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   nettle-openflow:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nettle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   netwire-input-javascript:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   netwire-vinylglfw-examples:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   network-address:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6439,9 +6463,9 @@ dont-distribute-packages:
   network-uri-static:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   network-wai-router:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   network-websocket:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  neural:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   neural-network-blashs:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   neural-network-hmatrix:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  neural:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   newports:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   newsynth:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   newt:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6449,8 +6473,8 @@ dont-distribute-packages:
   newtype-th:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   next-ref:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   nfc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  NGrams:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ngrams-loader:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  NGrams:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   niagra:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nibblestring:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   nicovideo-translator:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6458,38 +6482,38 @@ dont-distribute-packages:
   nimber:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Ninjas:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nitro:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nixfromnpm:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   nix-paths:                                    [ "x86_64-darwin" ]
+  nixfromnpm:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   nkjp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   nlopt-haskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   nlp-scores-scripts:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nme:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   nm:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nme:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   nntp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  no-role-annots:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   noether:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   nofib-analyze:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   noise:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nomyx-Core:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Nomyx:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nomyx-Language:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nomyx-Rules:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nomyx-Web:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Nomyx:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   NonEmptyList:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   nonlinear-optimization-ad:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   nonlinear-optimization:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   noodle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  no-role-annots:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   NoSlow:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  notcpp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   not-gloss-examples:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  notcpp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   notmuch-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   notmuch-web:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   np-linear:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   nptools:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ntrip-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   NTRU:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  nullary:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   null-canvas:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  nullary:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   nullpipe:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   number-length:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   NumberSieves:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6497,22 +6521,23 @@ dont-distribute-packages:
   numerals-base:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   numeric-ode:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   numeric-ranges:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  numhask:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  numhask-array:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   numhask-range:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  numhask:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nussinov78:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Nutri:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  NXTDSL:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   NXT:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  NXTDSL:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   nylas:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   nymphaea:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   oauthenticated:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  obdd:                                         [ 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 ]
   oberon0:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  obj:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Object:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   objectid:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ObjectIO:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  obj:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   octane:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   octohat:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   octopus:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6523,8 +6548,8 @@ dont-distribute-packages:
   OGL:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   ogmarkup:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ohloh-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  oidc-client:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   oi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  oidc-client:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   ois-input-manager:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   old-version:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   olwrapper:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6541,21 +6566,23 @@ dont-distribute-packages:
   onu-course:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   opaleye-classy:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   opaleye-sqlite:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  open-haddock:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  open-pandoc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenAL:                                       [ "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 ]
   OpenCLWrappers:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   opencog-atomspace:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  opencv-extra:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   opencv-raw:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  opencv:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   opendatatable:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   openexchangerates:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   openflow:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenGLCheck:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   opengles:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenGLRaw21:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  open-haddock:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  open-pandoc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   openpgp-crypto-api:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   openpgp-Crypto:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   OpenSCAD:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6571,14 +6598,14 @@ dont-distribute-packages:
   optimization:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   optimusprime:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   optparse-applicative-simple:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  OrchestrateDB:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   orchestrate:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  OrchestrateDB:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   orchid-demo:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   orchid:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   order-maintenance:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  orders:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  order-statistics:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   order-statistic-tree:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  order-statistics:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  orders:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ordrea:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   organize-imports:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   orgmode:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6595,10 +6622,10 @@ dont-distribute-packages:
   ot:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   otp-authenticator:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   overture:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pack:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   package-vt:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   packed-dawg:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   packedstring:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pack:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   packman:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pacman-memcache:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   padKONTROL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6606,13 +6633,13 @@ dont-distribute-packages:
   PageIO:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Paillier:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   panda:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  PandocAgda:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-crossref:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-include-code:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-japanese-filters:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-placetable:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-plantuml-diagrams:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-unlit:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  PandocAgda:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pang-a-lambda:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   panpipe:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pansite:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6624,23 +6651,23 @@ dont-distribute-packages:
   parallel-tasks:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   paranoia:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   parco-attoparsec:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  parco-parsec:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   parco:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   parconc-examples:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  parco-parsec:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pareto:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   parport:                                      [ "x86_64-darwin" ]
   Parry:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  parse-help:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   parsec-parsers:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   parseerror-eq:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  parse-help:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   parsely:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  parser-helper:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   parser241:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   parsergen:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  parser-helper:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   parsestar:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   partage:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  partial:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   partial-lens:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  partial:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   partly:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   passage:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   PasswordGenerator:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6656,8 +6683,8 @@ dont-distribute-packages:
   paypal-adaptive-hoops:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   paypal-api:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   paypal-rest-client:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pbc4hs:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   pb:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pbc4hs:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   PBKDF2:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   pcf:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   PCLT-DB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6669,24 +6696,24 @@ dont-distribute-packages:
   peakachu:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   PeanoWitnesses:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   pec:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  peggy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   peg:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  peggy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pell:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   penny-bin:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  penny:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   penny-lib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  penny:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   penrose:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   peparser:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   perceptron:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   perdure:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   peregrin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  perf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   perfecthash:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   PerfectHash:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  perf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   periodic:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   perm:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  PermuteEffects:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   permute:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  PermuteEffects:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   persist2er:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-cereal:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-database-url:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6696,19 +6723,19 @@ dont-distribute-packages:
   persistent-protobuf:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-relational-record:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-zookeeper:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  persona:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   persona-idp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  persona:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pesca:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   peyotls-codec:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   peyotls:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pez:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pg-harness:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pg-harness-server:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pg-harness:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pg-recorder:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pgsql-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pg-store:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pgstream:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pg-transact:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pgsql-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pgstream:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   phasechange:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   phoityne:                                     [ "x86_64-darwin" ]
   phone-numbers:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6718,20 +6745,20 @@ dont-distribute-packages:
   phraskell:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Phsu:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   phybin:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pi-calculus:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pi-forall:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   pia-forward:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   pianola:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pi-calculus:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   picologic:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   picosat:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   piet:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pi-forall:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   piki:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   Pipe:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-attoparsec-streaming:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-bgzf:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-binary:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pipes-cereal:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-cereal-plus:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pipes-cereal:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-conduit:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-core:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-courier:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6752,8 +6779,8 @@ dont-distribute-packages:
   pipes-sqlite-simple:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-zlib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pisigma:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pitchtrack:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pit:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pitchtrack:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pivotal-tracker:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pixelated-avatar-generator:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pkggraph:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6778,9 +6805,10 @@ dont-distribute-packages:
   pngload:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   pocket-dns:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pocket:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  point-octree:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pointfree-fancy:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pointless-lenses:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   pointless-rewrite:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  point-octree:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pokemon-go-protobuf-types:                    [ 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 ]
@@ -6792,8 +6820,8 @@ dont-distribute-packages:
   polynom:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   polynomial:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   polyseq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  polytypeable:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   polytypeable-utils:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  polytypeable:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   pomodoro:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ponder:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   pong-server:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6809,24 +6837,25 @@ dont-distribute-packages:
   porter:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   PortFusion:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   ports:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  positron:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   posix-pty:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   posix-realtime:                               [ "x86_64-darwin" ]
   posix-timer:                                  [ "x86_64-darwin" ]
   posix-waitpid:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   postcodes:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  PostgreSQL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-named:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-orm:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-query:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-simple-queue:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-simple-sop:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-simple-typed:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  postgresql-typed:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgresql-typed-lifted:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  postgresql-typed:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  PostgreSQL:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   postgrest:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   postie:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  postmark:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   postmark-streams:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  postmark:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   potato-tool:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   powermate:                                    [ "x86_64-darwin" ]
   powerpc:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6838,8 +6867,8 @@ dont-distribute-packages:
   praglude:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   preamble:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   precis:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  prednote-test:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   pred-trie:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  prednote-test:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   prefork:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   prelude-generalize:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   prelude-plus:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6849,35 +6878,36 @@ dont-distribute-packages:
   presto-hdbc:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   prettyprinter-convert-ansi-wl-pprint:         [ i686-linux, x86_64-linux, x86_64-darwin ]
   prettyprinter-vty:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  PrimitiveArray-Pretty:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  primesieve:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   primitive-simd:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  PrimitiveArray-Pretty:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   primula-board:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   primula-bot:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   print-debugger:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Printf-TH:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  PriorityChansConverger:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   priority-queue:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  PriorityChansConverger:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ProbabilityMonads:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  processing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  proc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-iterio:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-leksah:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-listlike:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-progress:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-qq:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  proc:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  processing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-structure:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-variable:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   procstat:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   prof2dot:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   prof2pretty:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  progressbar:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   progress:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  progressbar:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   progression:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   progressive:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   proj4-hs-bindings:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   project-m36:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  prolog-graph:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   prolog-graph-lib:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  prolog-graph:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   prolog:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   prologue:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   promise:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6888,11 +6918,11 @@ dont-distribute-packages:
   proplang:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   prosper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   proteaaudio:                                  [ "x86_64-darwin" ]
+  proto-lens-combinators:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  proto-lens-protobuf-types:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   protobuf-native:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   protocol-buffers-descriptor-fork:             [ i686-linux, x86_64-linux, x86_64-darwin ]
   protocol-buffers-fork:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  proto-lens-combinators:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  proto-lens-protobuf-types:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   protolude-lifted:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   proton-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   prove-everywhere-server:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6910,17 +6940,18 @@ dont-distribute-packages:
   punkt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Pup-Events-Demo:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   puppetresources:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pure-priority-queue:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-priority-queue-tests:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pure-priority-queue:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pure-zlib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   purescript-bundle-fast:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   purescript:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pure-zlib:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   pursuit-client:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pusher-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  pushme:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  push-notify-apn:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   push-notify-ccs:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   push-notify-general:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   push-notify:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pusher-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pushme:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   putlenses:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   puzzle-draw-cmdline:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   puzzle-draw:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6929,8 +6960,8 @@ dont-distribute-packages:
   pyfi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   python-pickle:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   qc-oi-testgenerator:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  qd:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   qd-vec:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  qd:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   qed:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   qhull-simple:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   qif:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6938,11 +6969,11 @@ dont-distribute-packages:
   qm-interpolated-string:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   qr-imager:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   qr-repa:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  qt:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   qtah-cpp-qt5:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   qtah-examples:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   qtah-generator:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   qtah-qt5:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  qt:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   QuadEdge:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   quadratic-irrational:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   QuadTree:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6954,6 +6985,7 @@ dont-distribute-packages:
   quenya-verb:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   querystring-pickle:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   queuelike:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  quick-schema:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   QuickAnnotate:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   quickbooks:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   quickcheck-poly:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6967,13 +6999,12 @@ dont-distribute-packages:
   quickcheck-webdriver:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   QuickPlot:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   quickpull:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  quick-schema:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   quickset:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Quickson:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   quicktest:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   quickwebapp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  quipper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   quipper-rendering:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  quipper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   quiver-binary:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   quiver-groups:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   quiver-http:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6981,6 +7012,7 @@ dont-distribute-packages:
   quiver-sort:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   quoridor-hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   qux:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  R-pandoc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   rad:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   radium-formula-parser:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   radix:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6994,18 +7026,18 @@ dont-distribute-packages:
   ralist:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   rallod:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   raml:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  rand-vars:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   randfile:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-access-list:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-derive:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  RandomDotOrg:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-eff:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-effin:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-hypergeometric:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   random-stream:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  rand-vars:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  RandomDotOrg:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  range-space:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Range:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rangemin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  range-space:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   rank2classes:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   Ranka:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rasa-example-config:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7033,6 +7065,7 @@ dont-distribute-packages:
   rdf4h:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rdioh:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   react-haskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  react-tutorial-haskell-server:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   reaction-logic:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-bacon:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-balsa:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7043,13 +7076,12 @@ dont-distribute-packages:
   reactive-banana-wx:                           [ "x86_64-darwin" ]
   reactive-fieldtrip:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-glut:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  reactive:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  reactive-jack:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-jack:                                [ "x86_64-darwin" ]
+  reactive-jack:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-midyim:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactive-thread:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reactive:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   reactor:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  react-tutorial-haskell-server:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   read-io:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   readline-statevar:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   readme-lhs:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7059,72 +7091,72 @@ dont-distribute-packages:
   reasonable-lens:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   record-aeson:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   record-gl:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  record:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   record-preprocessor:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  records:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  records-th:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   record-syntax:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  record:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  records-th:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  records:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   recursors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   reddit:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   redHandlers:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reduce-equations:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   reedsolomon:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reenact:                                      [ "x86_64-darwin" ]
+  ref-mtl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ref:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Ref:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   refcount:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   Referees:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   refh:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ref:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Ref:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflection-extras:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-animation:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  reflex-gloss:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-gloss-scene:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  reflex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reflex-gloss:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-orphans:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-sdl2:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-transformers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ref-mtl:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reflex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   refresht:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-deriv:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-dfa:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-genex:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-parsec:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-pderiv:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  regexpr-symbolic:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  regexp-tries:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  regexqq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-tdfa-pipes:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-tdfa-quasiquoter:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-tdfa-utf8:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-tre:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-type:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-xmlschema:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  regexp-tries:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  regexpr-symbolic:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  regexqq:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   regional-pointers:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  regions:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   regions-monadsfd:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   regions-monadstf:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   regions-mtl:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  regions:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   register-machine-typelevel:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   regress:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   regular-extras:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  regular:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   regular-web:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   regular-xmlpickler:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  regular:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   reheat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   reified-records:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   reify:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  relational-postgresql8:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   relation:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  relational-postgresql8:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   relative-date:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   reload:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   remark:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   remarks:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   remote-debugger:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  remote:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   remote-json-client:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  remote-json:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   remote-json-server:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  remote-json:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   remote-monad:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  remote:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   remotion:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   reorderable:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   repa-algorithms:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7144,13 +7176,13 @@ dont-distribute-packages:
   repl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   replicant:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   repo-based-blog:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  repr:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   representable-functors:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   representable-tries:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  repr:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   reprinter:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  reqcatcher:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   req-conduit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   req:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reqcatcher:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   request-monad:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   resin:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   resistor-cube:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7161,6 +7193,7 @@ dont-distribute-packages:
   respond:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   rest-example:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   restful-snap:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  restless-git:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   RESTng:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   restricted-workers:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   restyle:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7187,9 +7220,9 @@ dont-distribute-packages:
   ripple:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   risc386:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   rivers:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  rivet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rivet-migration:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   rivet-simple-deploy:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  rivet:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   RJson:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Rlang-QQ:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   rlglue:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7223,13 +7256,12 @@ dont-distribute-packages:
   route-generator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   route-planning:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   rowrecord:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  R-pandoc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   rpc-framework:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   rpc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   rpm:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   rsagl-frp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  rsagl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rsagl-math:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  rsagl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   rset:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   rspp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   rss2irc:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7247,41 +7279,42 @@ dont-distribute-packages:
   rws:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   RxHaskell:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   SableCC2Hs:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  safecopy-store:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-freeze:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-globals:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  safeint:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-lazy-io:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-length:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-plugins:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   safe-printf:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  safecopy-store:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  safeint:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  safepath:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   safer-file-handles-bytestring:                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  safer-file-handles:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   safer-file-handles-text:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  safer-file-handles:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   saferoute:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sai-shape-syb:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   Salsa:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  saltine:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   saltine-quickcheck:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  saltine:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   salvia-demo:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   salvia-extras:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  salvia:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   salvia-protocol:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   salvia-sessions:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   salvia-websocket:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  salvia:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   samtools-conduit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   samtools-iteratee:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   sandlib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sarasvati:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sarsi:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sasl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sat-micro-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   satchmo-backends:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   satchmo-examples:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   satchmo-funsat:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   satchmo-minisat:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   satchmo-toysat:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sat:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sat-micro-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   SBench:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sbvPlugin:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   scalable-server:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7294,9 +7327,9 @@ dont-distribute-packages:
   schedevr:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   schedyield:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   scholdoc-citeproc:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  scholdoc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   scholdoc-texmath:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   scholdoc-types:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  scholdoc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   science-constants-dimensional:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   science-constants:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   SciFlow:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7315,42 +7348,43 @@ dont-distribute-packages:
   scotty-view:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   scp-streams:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   scrabble-bot:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  scrape-changes:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ScratchFs:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   scrobble:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   scrz:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   Scurry:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   scyther-proof:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sdl2-cairo-image:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sdl2-compositor:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sdl2-gfx:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   SDL-gfx:                                      [ "x86_64-darwin" ]
   SDL-image:                                    [ "x86_64-darwin" ]
   SDL-mixer:                                    [ "x86_64-darwin" ]
   SDL-mpeg:                                     [ "x86_64-darwin" ]
   SDL-ttf:                                      [ "x86_64-darwin" ]
+  sdl2-cairo-image:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sdl2-compositor:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sdl2-gfx:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   sdr:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   seacat:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   search:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  secdh:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sec:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  secdh:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   seclib:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   second-transfer:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   secret-santa:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   secret-sharing:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   secrm:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sednaDBXML:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  selectors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   select:                                       [ "x86_64-darwin" ]
-  selenium:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  selectors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   selenium-server:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  selenium:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   selinux:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Semantique:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   semdoc:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  semi-iso:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   semigroupoids-syntax:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   semigroups-actions:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  semi-iso:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  semiring:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   semiring-num:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  semiring:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   semver-range:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   sensei:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sensenet:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7363,6 +7397,8 @@ dont-distribute-packages:
   sequent-core:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   sequor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   serpentine:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  serv-wai:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  serv:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-aeson-specs:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-auth-client:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-auth-docs:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7373,8 +7409,8 @@ dont-distribute-packages:
   servant-auth-token-leveldb:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-auth-token-persistent:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-csharp:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  servant-db:                                   [ 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 ]
   servant-ekg:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-examples:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-github:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7394,17 +7430,15 @@ dont-distribute-packages:
   servant-zeppelin-server:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   server-generic:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   serversession-frontend-snap:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  serv:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   services:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  serv-wai:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ses-html:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ses-html-snaplet:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ses-html:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   SessionLogger:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   sessions:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  set-with:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   setgame:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sets:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   setters:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  set-with:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   sexp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   sexpr:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sfml-audio:                                   [ "x86_64-darwin" ]
@@ -7413,11 +7447,12 @@ dont-distribute-packages:
   sfmt:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   sfnt2woff:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   SFont:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SGdemo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sgd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sgf:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   SG:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sgd:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SGdemo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sgf:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   sgrep:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sha-streams:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   shadower:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   shadowsocks:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   shady-gen:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7434,13 +7469,12 @@ dont-distribute-packages:
   shared-buffer:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   shared-fields:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   shared-memory:                                [ "x86_64-darwin" ]
-  sha-streams:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   she:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   shelduck:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Shellac-editline:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   shell-conduit:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  shellish:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   shell-pipe:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Shellac-editline:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  shellish:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   shelltestrunner:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   shikensu:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   shoap:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7450,60 +7484,60 @@ dont-distribute-packages:
   shpider:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Shu-thing:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   si-clock:                                     [ "x86_64-darwin" ]
-  sifflet:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sifflet-lib:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sifflet:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   signals:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   signed-multiset:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   simd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   simgi:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-atom:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-bluetooth:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simple-c-value:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-config:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-css:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simple-c-value:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-eval:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-firewire:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-form:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-genetic-algorithm:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SimpleGL:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SimpleH:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-index:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simpleirc:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simpleirc-lens:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simple-logging:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SimpleLog:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-log-syslog:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simple-logging:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-neural-networks:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-nix:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simplenote:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-pascal:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   simple-postgresql-orm:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simple-tabular:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SimpleGL:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SimpleH:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simpleirc-lens:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simpleirc:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SimpleLog:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  simplenote:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   simpleprelude:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   SimpleServer:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   simplessh:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   simplest-sqlite:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   SimpleTableGenerator:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  simple-tabular:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   simseq:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sink:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   siphon:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sirkel:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sitemap:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sixfiguregroup:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sized:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sized-vector:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sized:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sjsp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   skeleton:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   skell:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   skemmtun:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   skylark-client:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   skype4hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  slack:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   slack-web:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  slack:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   slidemews:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   Slides:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sloth:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   slot-lambda:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sloth:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   smallarray:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   smallcheck-laws:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   smallcheck-lens:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7516,13 +7550,13 @@ dont-distribute-packages:
   sme:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   smerdyakov:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Smooth:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  smt-lib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   smtlib2-debug:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   smtlib2-pipe:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  smt-lib:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   SmtLib:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  smtp-mail-ng:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   smtp2mta:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   SMTPClient:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  smtp-mail-ng:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   snake-game:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   snake:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   snap-auth-cli:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7531,6 +7565,12 @@ dont-distribute-packages:
   snap-cors:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   snap-error-collector:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   snap-extras:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-loader-dynamic:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-predicates:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-routes:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-testing:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snap-web-routes:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   snap:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-acid-state:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-actionlog:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7548,8 +7588,8 @@ dont-distribute-packages:
   snaplet-i18n:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-influxdb:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-mandrill:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snaplet-mongoDB:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-mongodb-minimalistic:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snaplet-mongoDB:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-mysql-simple:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-oauth:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-persistent:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7565,21 +7605,15 @@ dont-distribute-packages:
   snaplet-scoped-session:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-sedna:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-ses-html:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snaplet-sqlite-simple:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-sqlite-simple-jwt-auth:               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snaplet-sqlite-simple:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-stripe:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-tasks:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-typed-sessions:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   snaplet-wordpress:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-loader-dynamic:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-predicates:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   snappy-conduit:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   snappy-framing:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   snappy-iteratee:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-routes:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-testing:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-utils:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snap-web-routes:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   sndfile-enumerators:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   sneakyterm:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   sneathlane-haste:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7587,16 +7621,16 @@ dont-distribute-packages:
   snm:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   snmp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   snorkels:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  snow-white:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   snowflake-core:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   snowflake-server:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  snow-white:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Snusmumrik:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SoccerFunGL:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   SoccerFun:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SoccerFunGL:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   sock2stream:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  socket-sctp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   socketed:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   socketio:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  socket-sctp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   socketson:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sodium:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   soegtk:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7617,9 +7651,9 @@ dont-distribute-packages:
   spaceprobe:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   spanout:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sparkle:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sparse:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   sparsebit:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sparsecheck:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sparse:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   spata:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   special-functors:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   specialize-th:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7641,34 +7675,34 @@ dont-distribute-packages:
   Sprig:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   spritz:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   spsa:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sqlcipher:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sqlite-simple-typed:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sql-simple:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   sql-simple-mysql:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   sql-simple-pool:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   sql-simple-postgresql:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sql-simple-sqlite:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sql-simple:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sqlcipher:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sqlite-simple-typed:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   sqlvalue-list:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   sqsd-local:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   squeal-postgresql:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   srcinst:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   sscan:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   sscgi:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sshd-lint:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   ssh:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sshd-lint:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sssp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   sstable:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stable-heap:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   stable-maps:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   stable-tree:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stack2nix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stackage2nix:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stackage-build-plan:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stackage-cabal:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stackage:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stackage-setup:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   stack-bump:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   stack-hpc-coveralls:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stack2nix:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stackage-build-plan:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stackage-cabal:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stackage-setup:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stackage2nix:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stackage:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   standalone-derive-topdown:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   standalone-haddock:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   starling:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7676,15 +7710,16 @@ dont-distribute-packages:
   stash:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Stasis:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   state-bag:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stateful-mtl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  state:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   state-record:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  state:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stateful-mtl:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   statgrab:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  static-tensor:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-dirichlet:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-fusion:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   statistics-hypergeometric-genvar:             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  statsd:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   stats:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  statsd:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   stb-truetype:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   stdata:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   stdf:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7694,32 +7729,33 @@ dont-distribute-packages:
   stepwise:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   stgi:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   stm-chunked-queues:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stmcontrol:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   stm-firehose:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stmcontrol:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   stochastic:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   Stomp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   storable-static-array:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   storablevector-streamfusion:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  str:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Strafunski-ATermLib:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   Strafunski-Sdf2Haskell:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   StrappedTemplates:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   stratum-tool:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   stratux-http:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stratux:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stratux-types:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   stratux-websockets:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  streamed:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stratux:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stream-fusion:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stream:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  streaming-cassava:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   stream-monad:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stream:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  streamed:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  streaming-cassava:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   strelka:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  str:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  StrictBench:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   strict-concurrency:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  strict-types:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  StrictBench:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   strictly:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  stringlike:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   string-typelits:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  stringlike:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   stripe-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   stripe-http-streams:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   stripe:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7731,9 +7767,9 @@ dont-distribute-packages:
   stunts:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   stutter:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stylized:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sub-state:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   subhask:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   subleq-toolchain:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sub-state:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   suffixarray:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   SuffixStructures:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   suitable:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7742,12 +7778,12 @@ dont-distribute-packages:
   sunroof-compiler:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   sunroof-examples:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   sunroof-server:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  super-user-spark:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   supercollider-ht:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   supercollider-midi:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   superconstraints:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   superdoc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   supero:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  super-user-spark:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   supervisor:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   supplemented:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   svg2q:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7763,32 +7799,32 @@ dont-distribute-packages:
   SWMMoutGetMB:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   sws:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   syb-extras:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SybWidget:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   syb-with-class-instances-text:                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SybWidget:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   sylvia:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sym-plot:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sym:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   symantic-lib:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   symengine-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   symengine:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sym:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sym-plot:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  sync:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   sync-mht:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  sync:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   syncthing-hs:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-attoparsec:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  syntax-example:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-example-json:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  syntax:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  SyntaxMacros:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  syntaxnet-haskell:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  syntax-example:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-pretty:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-printer:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-trees-fork-bairyn:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   syntax-trees:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  syntax:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  SyntaxMacros:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  syntaxnet-haskell:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   synthesizer-alsa:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   synthesizer-filter:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  synthesizer:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   synthesizer-llvm:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   synthesizer-midi:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  synthesizer:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   sysinfo:                                      [ "x86_64-darwin" ]
   Sysmon:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   system-canonicalpath:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7796,16 +7832,18 @@ dont-distribute-packages:
   system-lifted:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   system-locale:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   system-random-effect:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  systemstats:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   system-time-monotonic:                        [ "x86_64-darwin" ]
+  systemstats:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  t-regex:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   t3-client:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   t3-server:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  table:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ta:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   table-layout:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  table-tennis:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  table:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   tables:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tables:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tablestorage:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  table-tennis:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   tablize:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tabloid:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   taffybar:                                     [ "x86_64-darwin" ]
@@ -7813,25 +7851,25 @@ dont-distribute-packages:
   tagged-list:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagged-th:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagged-timers:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  taggy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   taggy-lens:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  taggy:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   taglib-api:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagset-positional:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagsoup-ht:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagsoup-parsec:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   tagsoup-selection:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tahin:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  ta:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tailfile-hinotify:                            [ "x86_64-darwin" ]
   tai:                                          [ "x86_64-darwin" ]
-  Takusen:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tailfile-hinotify:                            [ "x86_64-darwin" ]
   takusen-oracle:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tamarin-prover:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Takusen:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tamarin-prover-term:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   tamarin-prover-theory:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   tamarin-prover-utils:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tamarin-prover:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tape:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   target:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tart:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   task-distribution:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   task:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tasty-auto:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7847,8 +7885,8 @@ dont-distribute-packages:
   tbox:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tccli:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   tcod-haskell:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tcp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   tcp-streams-openssl:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tcp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   tdd-util:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   TeaHS:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   teams:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7861,46 +7899,46 @@ dont-distribute-packages:
   template-default:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   template-haskell-util:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   template-hsml:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  template-yj:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   templateify:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   templatepg:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  template-yj:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   tempodb:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   temporal-csound:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   temporary-resourcet:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   tempus:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tensor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-core-ops:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tensorflow:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-logging:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-opgen:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-ops:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-proto:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-records-conduit:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   tensorflow-records:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tensor:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tensorflow:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  term-rewriting:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   termbox-bindings:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   termination-combinators:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   termplot:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  term-rewriting:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   terntup:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   terrahs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tersmu:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testbench:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-framework-doctest:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-framework-quickcheck:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-framework-sandbox:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-framework-skip:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-framework-th-prime:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testloop:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testpack:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testpattern:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-pkg:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testPkg:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  testrunner:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-sandbox-compose:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-sandbox-hunit:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   test-shouldbe:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tex2txt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testbench:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testloop:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testpack:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testpattern:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testPkg:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  testrunner:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   TeX-my-math:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tex2txt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-and-plots:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-generic-pretty:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-icu-normalized:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7908,45 +7946,47 @@ dont-distribute-packages:
   text-ldap:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-lens:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-markup:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  textmatetags:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-normal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  textocat-api:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-position:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-register-machine:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-render:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-short:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  textual:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-xml-generic:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-xml-qq:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   text-zipper-monad:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  textmatetags:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  textocat-api:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  textual:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tfp-th:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tftp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tga:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-build:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-context:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-fold:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-instance-reification:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-instances:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-kinds-fork:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-sccs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-traced:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-typegraph:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  thank-you-stars:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   thentos-cookie-session:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Theora:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   theoremquest-client:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   theoremquest:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-fold:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   thih:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   thimk:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Thingie:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-instance-reification:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-instances:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-kinds-fork:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   thorn:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   threadscope:                                  [ "x86_64-darwin" ]
   threepenny-gui-contextmenu:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   thrift:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Thrift:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   throttled-io-loop:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-sccs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-traced:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  th-typegraph:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   tibetan-utils:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tictactoe3d:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   tic-tac-toe:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tickle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tictactoe3d:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   TicTacToe:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tidal-midi:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   tidal-serial:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7956,21 +7996,21 @@ dont-distribute-packages:
   tightrope:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tighttp:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   timberc:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  timecalc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-extras:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-exts:                                    [ "x86_64-darwin" ]
   time-http:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-io-access:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  timeout:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  timeparsers:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-patterns:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  TimePiece:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  timeprint:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-recurrence:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-series:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  timeseries:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-w3c:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   time-warp:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  timecalc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  timeout:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  timeparsers:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  TimePiece:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  timeprint:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  timeseries:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   timezone-unix:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   TinyLaunchbury:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   tinyMesh:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7985,10 +8025,12 @@ dont-distribute-packages:
   tls-extra:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tmp-postgres:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   tn:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  to-haskell:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  to-string-class:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  to-string-instances:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   toboggan:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   todos:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   tofromxml:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  to-haskell:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   toilet:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tokenify:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   toktok:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7998,17 +8040,15 @@ dont-distribute-packages:
   Top:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   topkata:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   torch:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  to-string-class:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  to-string-instances:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   touched:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tournament:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   toxcore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   toysolver:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tpar:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   trace-call:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  traced:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   trace-function-call:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   trace:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  traced:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tracker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   traildb:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   trajectory:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8028,12 +8068,12 @@ dont-distribute-packages:
   travis-meta-yaml:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   trawl:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   traypoweroff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tree-diff:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   TreeCounter:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  treemap-html:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   treemap-html-tools:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  treemap-html:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   treersec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   TreeStructures:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  t-regex:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   Treiber:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tremulous-query:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   TrendGraph:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8049,20 +8089,20 @@ dont-distribute-packages:
   tsession:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   tskiplist:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tslib:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tsparse:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tsp-viz:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tsparse:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   tsvsql:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tuntap:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tuntap-simple:                                [ "x86_64-darwin" ]
+  tuntap:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tup-functor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   tuple-gen:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   tuple-hlist:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  tupleinstances:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   tuple-lenses:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   tuple-morph:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  turingMachine:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  tupleinstances:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   turing-machines:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   turing-music:                                 [ "x86_64-darwin" ]
+  turingMachine:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   tweak:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   twee:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tweet-hs:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8086,46 +8126,46 @@ dont-distribute-packages:
   txtblk:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   TYB:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   typalyze:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typeable-th:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-cache:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-cereal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  TypeClass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-combinators-quote:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-digits:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typedquery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typed-spreadsheet:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typed-streams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typed-wire:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typed-wire-utils:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typehash:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  TypeIlluminator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-int:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-level-bst:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typelevel:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-level-natural-number-induction:          [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-level-natural-number-operations:         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typelevel-tensor:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  TypeNat:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-of-html:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  type-ord:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-ord-spine-cereal:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typeparams:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  type-ord:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-prelude:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typesafe-precure:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  types-compat:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  typescript-docs:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-settheory:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-spine:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-structure:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   type-sub-th:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typeable-th:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  TypeClass:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typed-spreadsheet:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typed-streams:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typed-wire-utils:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typed-wire:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typedquery:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typehash:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  TypeIlluminator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typelevel-tensor:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typelevel:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  TypeNat:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typeparams:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  types-compat:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typesafe-precure:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  typescript-docs:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   tz:                                           [ "x86_64-darwin" ]
   u2f:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   uAgda:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   uber:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   uberlast:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   uconv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  udbus:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   udbus-model:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  udbus:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   udp-conduit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   uhc-light:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   uhexdump:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8141,9 +8181,9 @@ dont-distribute-packages:
   unicode-symbols:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   uniform-io:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   union-map:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  uniqueid:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  unique-logic:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   unique-logic-tf:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  unique-logic:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  uniqueid:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   units-attoparsec:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   unittyped:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   universe-th:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8156,8 +8196,8 @@ dont-distribute-packages:
   unsafely:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   unscramble:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   unsequential:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  update-nix-fetchgit:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   up:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  update-nix-fetchgit:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   uploadcare:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   upskirt:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ureader:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8165,15 +8205,15 @@ dont-distribute-packages:
   uri-conduit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   uri-enumerator-file:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   uri-enumerator:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  url-decoders:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  url-generic:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   urlcheck:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   urldecode:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  url-decoders:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   urldisp-happstack:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   UrlDisp:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  url-generic:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   URLT:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  urn:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   urn-random:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  urn:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   urxml:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   usb-enumerator:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   usb-hid:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8184,34 +8224,36 @@ dont-distribute-packages:
   utc:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   utf8-prelude:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   UTFTConverter:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  uu-options:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   uuagc-diagrams:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   uuid-aeson:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  uu-options:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   uvector-algorithms:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   uvector:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   v4l2-examples:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   v4l2:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   vacuum-cairo:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   vacuum-graphviz:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  vacuum:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   vacuum-opengl:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   vacuum-ubigraph:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  vacuum:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  valid-names:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   validated-literals:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   Validation:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  validation:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   validations:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
-  valid-names:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   vampire:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   var:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   variable-precision:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   variables:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
-  vaultaire-common:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   vault-tool-server:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  vaultaire-common:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcache-trie:                                  [ "x86_64-darwin" ]
   vcache:                                       [ "x86_64-darwin" ]
   vcatt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcsgui:                                       [ "x86_64-darwin" ]
   Vec-Boolean:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Vec-OpenGLRaw:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Vec-Transform:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   vect-floating-accelerate:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   vect-floating:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   vect-opengl:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8226,11 +8268,10 @@ dont-distribute-packages:
   vector-read-instances:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   vector-space-opengl:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   vector-static:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Vec-Transform:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   Verba:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   verbalexpressions:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  verdict:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   verdict-json:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  verdict:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   verilog:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   vgrep:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   views:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8251,8 +8292,8 @@ dont-distribute-packages:
   vowpal-utils:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   voyeur:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   vrpn:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  vtegtk3:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   vte:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  vtegtk3:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   vty-examples:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   vty-menu:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   vty-ui-extras:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8274,8 +8315,8 @@ dont-distribute-packages:
   wai-lite:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-logger-prefork:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-make-assets:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  wai-middleware-cache:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-middleware-cache-redis:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  wai-middleware-cache:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-middleware-catch:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-middleware-consul:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   wai-middleware-content-type:                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8308,6 +8349,16 @@ dont-distribute-packages:
   wavesurfer:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wavy:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   weather-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-css:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-encodings:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-fpco:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-mongrel2:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-output:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-push:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-routes-quasi:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-routes-regular:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-routes-transformers:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  web-routing:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   web3:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   webapi:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   webapp:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8316,36 +8367,26 @@ dont-distribute-packages:
   webcloud:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   WebCont:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   webcrank-dispatch:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
-  webcrank:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   webcrank-wai:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-css:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  webcrank:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   webdriver-snoy:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-encodings:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   WeberLogic:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   webfinger-client:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-fpco:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  webkit2gtk3-javascriptcore:                   [ "x86_64-darwin" ]
   webkit-javascriptcore:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-mongrel2:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-output:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-push:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  webkit2gtk3-javascriptcore:                   [ "x86_64-darwin" ]
   Webrexp:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-routes-quasi:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-routes-regular:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-routes-transformers:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  web-routing:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   webserver:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   webwire:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   wedged:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  weighted:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   weighted-regexp:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  weighted:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   welshy:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  werewolf:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   werewolf-slack:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Wheb:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  werewolf:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   wheb-mongo:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wheb-redis:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wheb-strapped:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Wheb:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   while-lang-parser:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   whim:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   whiskers:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8361,10 +8402,10 @@ dont-distribute-packages:
   Wired:                                        [ "x86_64-darwin" ]
   wires:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   wkt:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  wl-pprint-ansiterm:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   WL500gPControl:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   WL500gPLib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wlc-hs:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
-  wl-pprint-ansiterm:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   WMSigner:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   wobsurv:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   woffex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8381,6 +8422,7 @@ dont-distribute-packages:
   workflow-windows:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   wp-archivebot:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   wraxml:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  wrecker-ui:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wrecker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   wreq-sb:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   wreq-stringless:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8395,17 +8437,18 @@ dont-distribute-packages:
   wumpus-microprint:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   wumpus-tree:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   WURFL:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  wx:                                           [ "x86_64-darwin" ]
   wxAsteroids:                                  [ "x86_64-darwin" ]
-  wxcore:                                       [ "x86_64-darwin" ]
   wxc:                                          [ "x86_64-darwin" ]
+  wxcore:                                       [ "x86_64-darwin" ]
   WXDiffCtrl:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wxFruit:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   WxGeneric:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   wxhnotepad:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   wxSimpleCanvas:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   wxturtle:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  wx:                                           [ "x86_64-darwin" ]
   wyvern:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  x-dsp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   X11-extras:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   X11-rm:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   X11-xdamage:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8417,7 +8460,6 @@ dont-distribute-packages:
   xchat-plugin:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   xcp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   xdot:                                         [ "x86_64-darwin" ]
-  x-dsp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Xec:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   xfconf:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   xhaskell-library:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8428,18 +8470,14 @@ dont-distribute-packages:
   xing-api:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   xkbcommon:                                    [ "x86_64-darwin" ]
   xkcd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
-  xlsior:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   xls:                                          [ "x86_64-darwin" ]
+  xlsior:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   xlsx-templater:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
-  xml2json:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  xml2x:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-catalog:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-conduit-decode:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-enumerator-combinators:                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-enumerator:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-html-conduit-lens:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
-  xmlhtml:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  XmlHtmlWriter:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-isogen:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-monad:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-parsec:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8448,8 +8486,12 @@ dont-distribute-packages:
   xml-push:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-query-xml-conduit:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-query-xml-types:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  xmltv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   xml-tydom-conduit:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  xml2json:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  xml2x:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  xmlhtml:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  XmlHtmlWriter:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  xmltv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   xmms2-client-glib:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   xmms2-client:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   XMMS:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8481,20 +8523,20 @@ dont-distribute-packages:
   yahoo-web-search:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   yajl-enumerator:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   yajl:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yaml-rpc-scotty:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yaml-rpc-snap:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yaml-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yaml2owl:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yamlkeysdiff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   YamlReference:                                [ "x86_64-darwin" ]
-  yaml-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yaml-rpc-scotty:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yaml-rpc-snap:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yampa2048:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-canvas:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glfw:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glut:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yampa2048:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   yaop:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   yap:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yarr:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   yarr-image-io:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yarr:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   yate:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   yavie:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ycextra:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8508,9 +8550,9 @@ dont-distribute-packages:
   yesod-auth-deskcom:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-hmac-keccak:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-kerberos:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yesod-auth-ldap:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-ldap-mediocre:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-ldap-native:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yesod-auth-ldap:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-oauth2:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-oauth:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-auth-pam:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8520,8 +8562,8 @@ dont-distribute-packages:
   yesod-comments:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-content-pdf:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-continuations:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yesod-crud:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-crud-persist:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yesod-crud:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-datatables:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-examples:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-fay:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8540,8 +8582,8 @@ dont-distribute-packages:
   yesod-raml-bin:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-raml-mock:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-recaptcha:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yesod-routes:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-routes-typescript:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yesod-routes:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-rst:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-s3:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yesod-sass:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8554,17 +8596,17 @@ dont-distribute-packages:
   yesod-worker:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   YFrob:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   yhccore:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yices:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   yi-contrib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yi-dynamic-configuration:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   yi-monokai:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yi-solarized:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yi-spolsky:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  yjftp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yi:                                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yices:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   yjftp-libs:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
-  Yogurt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yjftp:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Yogurt-Standalone:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  Yogurt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   yoko:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   york-lava:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   yql:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8577,10 +8619,10 @@ dont-distribute-packages:
   ZEBEDDE:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   zendesk-api:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   zeno:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  zeromq-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   zeromq3-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   zeromq3-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   zeromq4-conduit:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
-  zeromq-haskell:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   zeroth:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   ZFS:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   zifter-cabal:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8588,8 +8630,8 @@ dont-distribute-packages:
   zifter-google-java-format:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   zifter-hindent:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   zifter-hlint:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
-  zifter:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   zifter-stack:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  zifter:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   zim-parser:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   zip-conduit:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   zipedit:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8603,11 +8645,11 @@ dont-distribute-packages:
   zmidi-score:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   zmqat:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   zoneinfo:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
-  zoom-cache:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   zoom-cache-pcm:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   zoom-cache-sndfile:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
-  zoom:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  zoom-cache:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   zoom-refs:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  zoom:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   zot:                                          [ "x86_64-darwin" ]
   zsh-battery:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   zstd:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]

From 69c4f038dedf0cab294c63fa46504186042f6a7d Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 Sep 2017 09:39:55 +0200
Subject: [PATCH 330/533] haskell-accelerate-blas: don't distribute via Hydra

Depends on CUDA, which has a non-free license.
---
 pkgs/development/haskell-modules/configuration-hackage2nix.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 0636db8eec00..2f1abe68dce1 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2656,6 +2656,7 @@ dont-distribute-packages:
 
   # these packages depend on software with an unfree license
   accelerate-bignum:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  accelerate-blas:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-cublas:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-cuda:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-cufft:                             [ i686-linux, x86_64-linux, x86_64-darwin ]

From 92576b77e9e7d28dc917e0e48cd9b6f57028a2ab Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 Sep 2017 09:45:27 +0200
Subject: [PATCH 331/533] haskell: provide a meta package "unbuildable" to fix
 evaluation of Win32

---
 pkgs/development/haskell-modules/configuration-common.nix | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index c6faec61b541..9cbbe236a2f1 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -34,6 +34,11 @@ self: super: {
   ghcjs-base = null;
   ghcjs-prim = null;
 
+  # Some packages add this (non-existent) dependency to express that they
+  # cannot compile in a given configuration. Win32 does this, for example, when
+  # compiled on Linux. We provide the name to avoid evaluation errors.
+  unbuildable = throw "package depends on meta package 'unbuildable'";
+
   # cabal-install needs Cabal 2.x. hackage-security's test suite does not compile with
   # Cabal 2.x, though. See https://github.com/haskell/hackage-security/issues/188.
   cabal-install = super.cabal-install.overrideScope (self: super: { Cabal = self.Cabal_2_0_0_2; });

From 6a020b7448717b6fd7e15fc8fd35a1fa7a22b6e5 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 Sep 2017 10:37:59 +0200
Subject: [PATCH 332/533] jhc: mark build as broken

Some dependencies of this build no longer compile with GHC 7.6.x.
---
 pkgs/development/compilers/jhc/default.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/development/compilers/jhc/default.nix b/pkgs/development/compilers/jhc/default.nix
index cfeff329fb56..6b8c6599062e 100644
--- a/pkgs/development/compilers/jhc/default.nix
+++ b/pkgs/development/compilers/jhc/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.bsd3;
     platforms = ["x86_64-linux"]; # 32 bit builds are broken
     maintainers = with stdenv.lib.maintainers; [ aforemny thoughtpolice ];
+    broken = true; # https://hydra.nixos.org/build/61700723
   };
 }

From 042ca21c812ae3c3fd52f3fdec41699b193dcfbf Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Mon, 25 Sep 2017 03:00:56 +0200
Subject: [PATCH 333/533] hackage-packages.nix: automatic Haskell package set
 update

This update was generated by hackage2nix v2.6-7-g3c87c13 from Hackage revision
https://github.com/commercialhaskell/all-cabal-hashes/commit/8158338ed8fce5a8ab4377f95f84043646cc0671.
---
 .../haskell-modules/hackage-packages.nix      | 495 +++++++++++++-----
 1 file changed, 355 insertions(+), 140 deletions(-)

diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index a8b610239238..3399ce8dd9b2 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -6077,14 +6077,14 @@ self: {
        hydraPlatforms = [ "i686-linux" "x86_64-linux" ];
      }) {};
 
-  "GPipe_2_2_2" = callPackage
+  "GPipe_2_2_3" = callPackage
     ({ mkDerivation, base, Boolean, containers, exception-transformers
      , gl, hashtables, linear, transformers
      }:
      mkDerivation {
        pname = "GPipe";
-       version = "2.2.2";
-       sha256 = "0z149pix710nlirml2p8ihdijcmg5j9l282flzcd3mrnn27sd11h";
+       version = "2.2.3";
+       sha256 = "19bn3471h6p7a34l3ydgyvqn118f4wb6l3djldlx0cvrga6wmfkp";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base Boolean containers exception-transformers gl hashtables linear
@@ -19789,6 +19789,7 @@ self: {
        ];
        description = "Numeric Linear Algebra in Accelerate";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "accelerate-cublas" = callPackage
@@ -21142,6 +21143,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Multi-precision floats via MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aern2-real" = callPackage
@@ -21166,6 +21168,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Exact real numbers via Cauchy sequences and MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aeson_0_7_0_6" = callPackage
@@ -31704,6 +31707,7 @@ self: {
        homepage = "keera.co.uk";
        description = "A replacement of Yampa based on Monadic Stream Functions";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "beautifHOL" = callPackage
@@ -37410,8 +37414,8 @@ self: {
      }:
      mkDerivation {
        pname = "butcher";
-       version = "1.1.0.1";
-       sha256 = "0j2qknsgq11nc3n0hjx9ck76014sg7if0d75vjjsw1kjlr3rykn5";
+       version = "1.1.0.2";
+       sha256 = "0pwlmz3ns4fiq1w0c0a9di0q1z9jc009si0imh7j48iswakm0la1";
        libraryHaskellDepends = [
          base bifunctors containers deque either extra free microlens
          microlens-th mtl multistate pretty transformers unsafe void
@@ -42277,8 +42281,8 @@ self: {
      }:
      mkDerivation {
        pname = "checkmate";
-       version = "0.1.4";
-       sha256 = "0x43mahf8rbk5n6zgdfglj6mxlxs6ky4x12g23knvfrwf933j2lc";
+       version = "0.2.0";
+       sha256 = "0xa420vgyykzxphzy79qlraq36kkxdj8iqx9rhhx1rl3sz3d2ndh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -42297,6 +42301,7 @@ self: {
        homepage = "https://github.com/spoqa/checkmate#readme";
        description = "Generate checklists relevant to a given patch";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chell" = callPackage
@@ -44909,6 +44914,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cmdargs_0_10_18" = callPackage
+    ({ mkDerivation, base, filepath, process, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "cmdargs";
+       version = "0.10.18";
+       sha256 = "1lnmcsf6p9yrwwz1zvrw5lbc32xpff7b70yz4ylawaflnlz6wrlh";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base filepath process template-haskell transformers
+       ];
+       executableHaskellDepends = [
+         base filepath process template-haskell transformers
+       ];
+       homepage = "https://github.com/ndmitchell/cmdargs#readme";
+       description = "Command line argument processing";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cmdargs-browser" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, directory, filepath
      , http-types, process, text, transformers, wai, wai-handler-launch
@@ -45697,8 +45724,8 @@ self: {
      }:
      mkDerivation {
        pname = "colorless";
-       version = "0.0.1";
-       sha256 = "0fzyzlrxkwlcvxps3rrghj7ds47rsrksj8p26prqygar0r0ihp80";
+       version = "0.0.2";
+       sha256 = "0bmyiziqw4jsjf7wk0ckdvlmnrzqwhi78x3hknw8kzh6y8c0qyk9";
        libraryHaskellDepends = [
          aeson base bytestring containers errors exceptions lifted-async
          monad-control monad-logger mtl random scientific text
@@ -45748,6 +45775,7 @@ self: {
        homepage = "https://github.com/tmcdonell/colour-accelerate";
        description = "Working with colours in Accelerate";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "colour-space" = callPackage
@@ -45834,6 +45862,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "Commonmark processing in pure haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "comark-html" = callPackage
@@ -49791,6 +49820,7 @@ self: {
        homepage = "http://github.com/hargettp/courier";
        description = "A message-passing library for simplifying network applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "court" = callPackage
@@ -50461,15 +50491,16 @@ self: {
      }) {};
 
   "crdt" = callPackage
-    ({ mkDerivation, base, QuickCheck, tasty, tasty-quickcheck, vector
+    ({ mkDerivation, base, containers, QuickCheck, tasty
+     , tasty-quickcheck
      }:
      mkDerivation {
        pname = "crdt";
-       version = "0.2";
-       sha256 = "1wh0abhnc69q4mkjxzhw3j3k3xwp9bwbccy4bwz70qn39g44q8nz";
-       libraryHaskellDepends = [ base vector ];
+       version = "0.3";
+       sha256 = "12n311m8maj72hg8dvnjj1mmfas45a8iipi6sd4dq808cq5nbx7z";
+       libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [
-         base QuickCheck tasty tasty-quickcheck vector
+         base containers QuickCheck tasty tasty-quickcheck
        ];
        homepage = "https://github.com/cblp/crdt#readme";
        description = "Conflict-free replicated data types";
@@ -51362,21 +51393,22 @@ self: {
 
   "cryptocompare" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , exceptions, http-conduit, MissingH, text, time, transformers
-     , unordered-containers
+     , exceptions, hspec, hspec-expectations, http-conduit, MissingH
+     , text, time, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "cryptocompare";
-       version = "0.0.3";
-       sha256 = "1w9sf4n91d7qk5dcch1bl4hfpjllfv0z15rv4g65lr1zsnysc3fy";
+       version = "0.1.0";
+       sha256 = "0ghdaf5m3axxzxbq3zm9klrnzh354maf82389aryskglr9l11fv4";
        libraryHaskellDepends = [
          aeson base bytestring containers directory exceptions http-conduit
          MissingH text time transformers unordered-containers
        ];
-       testHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec hspec-expectations MissingH ];
        homepage = "https://github.com/aviaviavi/cryptocompare";
        description = "Haskell wrapper for the cryptocompare API";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cryptoconditions" = callPackage
@@ -58909,12 +58941,12 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "directory_1_3_1_2" = callPackage
+  "directory_1_3_1_3" = callPackage
     ({ mkDerivation, base, filepath, time, unix }:
      mkDerivation {
        pname = "directory";
-       version = "1.3.1.2";
-       sha256 = "1y7dzq7naa0fmhacxwvblwqk6ljn131ggzxq104iy3xk9iknsq07";
+       version = "1.3.1.3";
+       sha256 = "1ai5qaj20f26gyg8yb34q45rlzcqziis20xlqfff18626mgl154a";
        libraryHaskellDepends = [ base filepath time unix ];
        testHaskellDepends = [ base filepath time unix ];
        description = "Platform-agnostic library for filesystem operations";
@@ -67366,6 +67398,7 @@ self: {
        ];
        description = "Encode and Decode expressions from Z3 ASTs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extcore" = callPackage
@@ -67781,6 +67814,7 @@ self: {
        homepage = "http://github.com/slpopejoy/fadno";
        description = "Minimal library for music generation and notation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fadno-braids" = callPackage
@@ -68790,6 +68824,8 @@ self: {
        pname = "feed";
        version = "1.0.0.0";
        sha256 = "05rgg7x1984mgfhkmz792xj8lhwjgznixhygzr8blf517lns2nck";
+       revision = "1";
+       editedCabalFile = "19sckdba9c7pz7hhmjqv4hjm16bi5d1dsnknlh3y3f5n86ybj0pr";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
@@ -73435,6 +73471,7 @@ self: {
        homepage = "https://github.com/kelemzol/watch";
        description = "File System watching tool with cli and slave functionalities";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fswatcher" = callPackage
@@ -75418,10 +75455,8 @@ self: {
     ({ mkDerivation, base, hspec, QuickCheck, validity }:
      mkDerivation {
        pname = "genvalidity";
-       version = "0.3.2.0";
-       sha256 = "0nwhp429dvaf04zwb3k4h1m8dbqpdk6hir0zi4sf22cz3ld654hs";
-       revision = "1";
-       editedCabalFile = "09lgp8v5i5ys56vigq80r1vgxglk7v50v3f5488kry92r5xl7z88";
+       version = "0.4.0.0";
+       sha256 = "006kd5172vra1nyjh7lzkn2rj6jlkk1rarmzipq16fkwx5s8p5br";
        libraryHaskellDepends = [ base QuickCheck validity ];
        testHaskellDepends = [ base hspec QuickCheck ];
        homepage = "https://github.com/NorfairKing/validity#readme";
@@ -75437,8 +75472,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-aeson";
-       version = "0.0.0.0";
-       sha256 = "0pb84fg17vwmy95naaw1bl77pjvs9rzwgqnp8p0abh04qr9bxgh2";
+       version = "0.1.0.0";
+       sha256 = "141khs49k352w79p034rcfkdmyd1j4mxy0kbk3vwbwk1i48ri1sg";
        libraryHaskellDepends = [
          aeson base genvalidity genvalidity-scientific genvalidity-text
          genvalidity-unordered-containers genvalidity-vector QuickCheck
@@ -75458,8 +75493,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-bytestring";
-       version = "0.0.0.1";
-       sha256 = "0rvdh1pzj98f84j1pnvx6zwanp1mkf58wg7jz5ny7f1dj0f56kii";
+       version = "0.1.0.0";
+       sha256 = "1blwjkfcf2ah0d4nb8yaff4j6rpqa2hh5f34k7aalh1p2y5a32jb";
        libraryHaskellDepends = [
          base bytestring genvalidity QuickCheck validity validity-bytestring
        ];
@@ -75477,8 +75512,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-containers";
-       version = "0.2.0.1";
-       sha256 = "0adg1v7ylwnakcjyrybiw2ajaps3g3k4lvykgajra490fj01dylp";
+       version = "0.3.0.0";
+       sha256 = "09z0jg12kkrmrgpaykfnwc86piv94cza8kr93sn3njwpc5g5fy8c";
        libraryHaskellDepends = [
          base containers genvalidity QuickCheck validity validity-containers
        ];
@@ -75496,10 +75531,11 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec";
-       version = "0.4.0.0";
-       sha256 = "1bb7f24kk5sly7vac2lvpzlprpw40f0zrfb380xbcp4lwmq56gsf";
+       version = "0.5.0.0";
+       sha256 = "1g0cicmkymw3n1k42rhicx0d91sghjf46vqcdmkahpas8bhwl3xm";
        libraryHaskellDepends = [
-         base genvalidity genvalidity-property hspec QuickCheck validity
+         base genvalidity genvalidity-property hspec hspec-core QuickCheck
+         validity
        ];
        testHaskellDepends = [
          base doctest genvalidity hspec hspec-core QuickCheck
@@ -75511,19 +75547,20 @@ self: {
 
   "genvalidity-hspec-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, deepseq, doctest
-     , genvalidity, genvalidity-hspec, genvalidity-text, hspec
-     , QuickCheck, text
+     , genvalidity, genvalidity-aeson, genvalidity-hspec
+     , genvalidity-text, hspec, QuickCheck, text
      }:
      mkDerivation {
        pname = "genvalidity-hspec-aeson";
-       version = "0.0.1.1";
-       sha256 = "0drx76mxmc7fkxd1vp466hnnirjsn2i8qb8wb80942nxj2hp9j3q";
+       version = "0.1.0.0";
+       sha256 = "0kyajiqhfnq5cm0qly18sjzz7c6gdf3kp9dzxq67virgkih3hzfw";
        libraryHaskellDepends = [
          aeson base bytestring deepseq genvalidity genvalidity-hspec hspec
          QuickCheck
        ];
        testHaskellDepends = [
-         aeson base doctest genvalidity genvalidity-text hspec text
+         aeson base doctest genvalidity genvalidity-aeson genvalidity-hspec
+         genvalidity-text hspec text
        ];
        homepage = "http://cs-syd.eu";
        description = "Standard spec's for aeson-related instances";
@@ -75536,8 +75573,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec-binary";
-       version = "0.0.0.0";
-       sha256 = "1dip56yxpd3ilahcaxl5hdvd6agjqgyc838qv046aj1ykb81xfgx";
+       version = "0.1.0.0";
+       sha256 = "15d53hd9wyvm89c8n3l3xmr568vw810q581nzsllp8rb1rb5mxnl";
        libraryHaskellDepends = [
          base binary deepseq genvalidity genvalidity-hspec hspec QuickCheck
        ];
@@ -75553,8 +75590,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec-cereal";
-       version = "0.0.0.1";
-       sha256 = "0y7x47xlskr0z85blms1xfgpd1hwk6ql8y71y1v03c5cd781dnkj";
+       version = "0.1.0.0";
+       sha256 = "01gdk8g3ci709zzqyqb5knfq8g67qf184hz60qbgv31hd2hgqc7k";
        libraryHaskellDepends = [
          base cereal deepseq genvalidity genvalidity-hspec hspec QuickCheck
        ];
@@ -75571,8 +75608,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-hspec-hashable";
-       version = "0.0.0.0";
-       sha256 = "1smgzbjl3mc2lq5q3khk6sgym4p2zgcfin55d53c3zcsxg3hpbnc";
+       version = "0.1.0.0";
+       sha256 = "0026ms1l4f216vg80pfc3sx92yl1c72fsyygy7ya94y7p0qn33nf";
        libraryHaskellDepends = [
          base genvalidity genvalidity-hspec genvalidity-property hashable
          hspec QuickCheck validity
@@ -75593,8 +75630,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-path";
-       version = "0.1.0.2";
-       sha256 = "1gpbms3ih8zcvs9dpfhxriwyws19kppx6nwsl3qfip7yggivig9x";
+       version = "0.2.0.0";
+       sha256 = "1a4h6kgaqb4y52gdqp7baqgs18zllmrnkpk1412m4hmakqykljxm";
        libraryHaskellDepends = [ base genvalidity path validity-path ];
        testHaskellDepends = [ base genvalidity-hspec hspec path ];
        homepage = "https://github.com/NorfairKing/validity#readme";
@@ -75608,8 +75645,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-property";
-       version = "0.0.0.0";
-       sha256 = "044gf9fcih3d5qwr5nk5c534nh814q7p6s9l4wq8crf38n12w82x";
+       version = "0.1.0.0";
+       sha256 = "1xbai5cr5qskyjrbzsll2a74szbfyzvpj1xc6p3q5w90j3z39myz";
        libraryHaskellDepends = [
          base genvalidity hspec QuickCheck validity
        ];
@@ -75625,8 +75662,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-scientific";
-       version = "0.0.0.0";
-       sha256 = "1s4gca2nkfhs5yzp0xnjy0fbadg4bphfd533z8zachh2ycwi69kh";
+       version = "0.1.0.0";
+       sha256 = "18b66syzkh3y08mdi1jn5kr2488s2b9n17v60cc98jwf41mbncgj";
        libraryHaskellDepends = [
          base genvalidity QuickCheck scientific validity validity-scientific
        ];
@@ -75644,8 +75681,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-text";
-       version = "0.3.1.1";
-       sha256 = "0ymfnhqbdsgclc7l96rncn37rdj45impzbhil58v8bz8xpxa7887";
+       version = "0.4.0.0";
+       sha256 = "1vdc1x1nhn7f3jmiamr7v3hwrycfksr03ps93dap80vpv0rkd6vn";
        libraryHaskellDepends = [
          array base genvalidity QuickCheck text validity validity-text
        ];
@@ -75663,8 +75700,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-time";
-       version = "0.0.0.2";
-       sha256 = "0fck7f6ipizd05v56kgmsbkqr8nkxzb18kv1wmw9n7n6mdimjqv0";
+       version = "0.1.0.0";
+       sha256 = "0jgfrrspyawvymp2p55ba56pxggqkg352c1n2bmyyi9hs99fp0jf";
        libraryHaskellDepends = [
          base genvalidity QuickCheck time validity-time
        ];
@@ -75681,8 +75718,8 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-unordered-containers";
-       version = "0.0.0.0";
-       sha256 = "1yvav983wq3rff5k9fpjw6m8hsn3jxymfqklw4vc5m0g5v4al8f9";
+       version = "0.1.0.0";
+       sha256 = "12pkwy161byi04kgiirk47s4zr8j718il4m73xl22vl06q9c7yp8";
        libraryHaskellDepends = [
          base genvalidity hashable QuickCheck unordered-containers validity
          validity-unordered-containers
@@ -75695,14 +75732,33 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "genvalidity-uuid" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
+     , QuickCheck, uuid, validity, validity-uuid
+     }:
+     mkDerivation {
+       pname = "genvalidity-uuid";
+       version = "0.0.0.0";
+       sha256 = "1dd90ym534b5dwvdvrxx1q0cfv8f3bf834df2smbyps6n2dlny5b";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck uuid validity validity-uuid
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec QuickCheck uuid
+       ];
+       homepage = "https://github.com/NorfairKing/validity#readme";
+       description = "GenValidity support for UUID";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "genvalidity-vector" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
      , QuickCheck, validity, validity-vector, vector
      }:
      mkDerivation {
        pname = "genvalidity-vector";
-       version = "0.0.0.0";
-       sha256 = "032dkx4wzla7aap31122f0cw31h8f5j36dq7xmvd2q9ssrcr39h7";
+       version = "0.1.0.0";
+       sha256 = "1ii07ywx0j5b7dgihfi1micjcp7r8x9dp0b0yzm31ajvkpqc83lr";
        libraryHaskellDepends = [
          base genvalidity QuickCheck validity validity-vector vector
        ];
@@ -83117,6 +83173,7 @@ self: {
        homepage = "https://github.com/alx741/graphite#readme";
        description = "Graphs and networks library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "graphmod" = callPackage
@@ -88531,6 +88588,8 @@ self: {
        pname = "happy";
        version = "1.19.7";
        sha256 = "16vg292pp12wnkny7znsv7bichh9ghny7swl7v55qafmcfg2lcdv";
+       revision = "1";
+       editedCabalFile = "1w0sm3qn1icxiiif6355pr6cwd9bqfh56g8qc5hycagcnms8hip1";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -92747,8 +92806,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-optparse-applicative";
-       version = "0.2.1";
-       sha256 = "1snmj627l3180csnm8641ppbl6w89z89rh85bn6h8vw6489ql38p";
+       version = "0.2.2";
+       sha256 = "1ymx36v267ypjx76n9pp8rpmb99z0llpajs0i2z4fkziz7dvjjbf";
        libraryHaskellDepends = [
          base-prelude hasql hasql-pool optparse-applicative
        ];
@@ -92951,6 +93010,7 @@ self: {
        homepage = "http://haste-lang.org";
        description = "Framework for type-safe, distributed web applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haste-compiler" = callPackage
@@ -93015,6 +93075,7 @@ self: {
        homepage = "http://github.com/valderman/haste-compiler";
        description = "Base libraries for haste-compiler";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haste-markup" = callPackage
@@ -93030,6 +93091,7 @@ self: {
        homepage = "http://github.com/ajnsit/haste-markup";
        description = "A port of blaze-markup and blaze-html to Haste";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haste-perch" = callPackage
@@ -93055,6 +93117,7 @@ self: {
        homepage = "http://haste-lang.org";
        description = "Low level primitives for the Haste compiler";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hastily" = callPackage
@@ -98016,6 +98079,8 @@ self: {
        pname = "hledger";
        version = "1.3.1";
        sha256 = "0h2ljdncxg5f17llnck6136mn9dn83ql85apnm04sm9cxq7iqqxd";
+       revision = "1";
+       editedCabalFile = "165jja9hj9f949g26issn8qra7zairm3s48q5kamy6qshbhfy0km";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -98076,6 +98141,7 @@ self: {
        homepage = "http://hledger.org";
        description = "Web API server for the hledger accounting tool";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hledger-chart" = callPackage
@@ -98124,6 +98190,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.2.6";
        sha256 = "1l5vzhyya5h6sc3l74iy0mnys8bcjp6m5z0m3lqabk37ik31ld36";
+       revision = "1";
+       editedCabalFile = "1mr997ryvxv3aq0km3f1h2y0i79m0lb7pl8mn3way5wa82x10kbg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98196,6 +98264,8 @@ self: {
        pname = "hledger-lib";
        version = "1.3.2";
        sha256 = "1qlfzw8nh4isfjqmnq16qrfas9flhyn2b6mf9nvcg0bgm4m7hs7n";
+       revision = "1";
+       editedCabalFile = "1frcbzksnpxl6m7jn6sj9am3f65gs5zp1pzr6jb7a5kxkdkpmyv1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-terminal array base base-compat blaze-markup bytestring
@@ -98228,6 +98298,8 @@ self: {
        pname = "hledger-ui";
        version = "1.3.1";
        sha256 = "1mnvqhp32m9xfyabzl19djy74v5nr9mwaanpnwxqp1wkifq7cmxs";
+       revision = "1";
+       editedCabalFile = "0va8jvqakgsra3za7k9j8mjmn6k39881zv0l8hh069dhk7yqd49r";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -98275,6 +98347,8 @@ self: {
        pname = "hledger-web";
        version = "1.3.2";
        sha256 = "0lcrgg6d0gpi9z855byjibzr82bbvmr6bbca5k3ivigd0yzc467d";
+       revision = "1";
+       editedCabalFile = "11imvlhh7lxml59fncmx5dw76gjfby75czfqz3ywk6zcsznjbl80";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -99089,6 +99163,8 @@ self: {
        pname = "hnix";
        version = "0.3.4";
        sha256 = "1wnvbal093c207vr68i0zyrxvmb3yyxdr8p7lbw2yy4ari2hi2gc";
+       revision = "1";
+       editedCabalFile = "01svkjznkz51742k3hcc0ssz5m0kymk53ydrdwg4a24ygvb408iw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -99344,6 +99420,7 @@ self: {
        homepage = "https://github.com/jason-johnson/hodatime";
        description = "A fully featured date/time library based on Nodatime";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hoe" = callPackage
@@ -106925,6 +107002,7 @@ self: {
        homepage = "https://github.com/lucasdicioccio/http2-client";
        description = "A native HTTP2 client library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "httpd-shed" = callPackage
@@ -112703,6 +112781,7 @@ self: {
        homepage = "https://github.com/NorfairKing/introduction";
        description = "A prelude for safe new projects";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "introduction-test" = callPackage
@@ -113423,30 +113502,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "irc-client_1_0_0_0" = callPackage
+  "irc-client_1_0_0_1" = callPackage
     ({ mkDerivation, base, bytestring, conduit, connection, containers
-     , contravariant, exceptions, irc-conduit, irc-ctcp, lens, mtl
+     , contravariant, exceptions, irc-conduit, irc-ctcp, mtl
      , network-conduit-tls, old-locale, profunctors, stm, stm-conduit
      , text, time, tls, transformers, x509, x509-store, x509-validation
      }:
      mkDerivation {
        pname = "irc-client";
-       version = "1.0.0.0";
-       sha256 = "13l1ah90mchg6k0qdlfkjk880q8ikyfps3fsk05sn18jh1xqipnz";
-       isLibrary = true;
-       isExecutable = true;
+       version = "1.0.0.1";
+       sha256 = "0qg4bvl82wwm7jlrxsmc4aw51rfdygq8qzm6x7j4121av5wbk095";
        libraryHaskellDepends = [
          base bytestring conduit connection containers contravariant
          exceptions irc-conduit irc-ctcp mtl network-conduit-tls old-locale
          profunctors stm stm-conduit text time tls transformers x509
          x509-store x509-validation
        ];
-       executableHaskellDepends = [
-         base bytestring conduit connection containers contravariant
-         exceptions irc-conduit irc-ctcp lens mtl network-conduit-tls
-         old-locale profunctors stm stm-conduit text time tls transformers
-         x509 x509-store x509-validation
-       ];
        homepage = "https://github.com/barrucadu/irc-client";
        description = "An IRC client library";
        license = stdenv.lib.licenses.mit;
@@ -114566,7 +114637,7 @@ self: {
        homepage = "http://www.haskell.org/haskellwiki/JACK";
        description = "Bindings for the JACK Audio Connection Kit";
        license = "GPL";
-       hydraPlatforms = [ "i686-linux" "x86_64-linux" ];
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) libjack2;};
 
   "jack-bindings" = callPackage
@@ -114889,6 +114960,7 @@ self: {
        homepage = "https://github.com/NICTA/javaclass";
        description = "Java class files";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "javascript-extras" = callPackage
@@ -116694,6 +116766,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "jvm-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, criterion
+     , directory, filepath, tasty, tasty-discover, tasty-hspec
+     , tasty-quickcheck, text, vector
+     }:
+     mkDerivation {
+       pname = "jvm-binary";
+       version = "0.0.1";
+       sha256 = "0lhk31d0a369jnmyw253wkm1ymdc80a3iw67av4x3d4jajq68kys";
+       libraryHaskellDepends = [
+         base binary bytestring containers text vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers directory filepath tasty
+         tasty-discover tasty-hspec tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       homepage = "https://github.com/kalhauge/jvm-binary#readme";
+       description = "A library for reading Java class-files";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "jvm-parser" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , data-binary-ieee754, fgl, fingertree, pretty, zlib
@@ -119953,6 +120047,7 @@ self: {
        homepage = "https://github.com/eliaslfox/language-elm#readme";
        description = "Generate elm code";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "language-fortran" = callPackage
@@ -123268,6 +123363,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "light" = callPackage
+    ({ mkDerivation, base, containers, gjk2d, lens, linear, mtl }:
+     mkDerivation {
+       pname = "light";
+       version = "0.1.0.0";
+       sha256 = "1zzf5bi8b6in6dvfv4wfmghcvibia5c0waji9y734kp617lsjxl3";
+       libraryHaskellDepends = [ base containers gjk2d lens linear mtl ];
+       testHaskellDepends = [ base containers lens linear ];
+       homepage = "https://github.com/suzumiyasmith/light#readme";
+       description = "a simple physics engine";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "lightning-haskell" = callPackage
     ({ mkDerivation, aeson, api-builder, base, blaze-html, bytestring
      , data-default-class, free, hspec, http-client, http-client-tls
@@ -128081,8 +128189,8 @@ self: {
      }:
      mkDerivation {
        pname = "mallard";
-       version = "0.6.0.4";
-       sha256 = "0dqaxi1990vzi1vx5smlwkyr0mjyqp3a4qffhhfi0nv92h537lkh";
+       version = "0.6.1.1";
+       sha256 = "02miq5kv3348316h8sxggwk8f8ijr51s8yws1cnliy2wqxfsg50m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -128098,6 +128206,7 @@ self: {
        homepage = "https://github.com/AndrewRademacher/mallard";
        description = "Database migration and testing as a library";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "managed" = callPackage
@@ -129035,7 +129144,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "marvin_0_2_4" = callPackage
+  "marvin_0_2_5" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, configurator
      , deepseq, directory, filepath, hashable, haskeline, hspec
      , http-client, http-client-tls, http-types, irc-conduit, lens
@@ -129047,8 +129156,8 @@ self: {
      }:
      mkDerivation {
        pname = "marvin";
-       version = "0.2.4";
-       sha256 = "13racl9vqnwm5x641c08qp5j67fw9i37dwcvbsvh5p7bggizzwgw";
+       version = "0.2.5";
+       sha256 = "0lgmw8gs7alahv9n36fkxzc6fk0485f566vyyjshqfnh019vpgah";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -132300,14 +132409,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_0_7_7_0" = callPackage
+  "miso_0_7_8_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, lucid
      , servant, servant-lucid, text, vector
      }:
      mkDerivation {
        pname = "miso";
-       version = "0.7.7.0";
-       sha256 = "1vbf43diffwd6bj7j1n9y165rdbp7x7sxmkfw43q4nwnnikvkkp6";
+       version = "0.7.8.0";
+       sha256 = "1rzfdd2wcmmc2vmrh5v0blqkjszbpmvx5yhq99c5zss8ir7x4a9w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137355,6 +137464,7 @@ self: {
        homepage = "https://github.com/mtesseract/nakadi-haskell#readme";
        description = "Client library for the Nakadi Event Broker";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "namecoin-update" = callPackage
@@ -141501,6 +141611,7 @@ self: {
        homepage = "https://github.com/tonyday567/numhask-array";
        description = "See readme.md";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "numhask-range" = callPackage
@@ -142876,6 +142987,7 @@ self: {
        homepage = "https://github.com/LumiGuide/haskell-opencv";
        description = "Haskell binding to OpenCV-3.x";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) opencv3;};
 
   "opencv-extra" = callPackage
@@ -142903,6 +143015,7 @@ self: {
        homepage = "https://github.com/LumiGuide/haskell-opencv";
        description = "Haskell binding to OpenCV-3.x extra modules";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "opencv-raw" = callPackage
@@ -145292,22 +145405,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-types_1_17_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, deepseq
-     , ghc-prim, HUnit, QuickCheck, string-qq, syb, test-framework
-     , test-framework-hunit, test-framework-quickcheck2
+  "pandoc-types_1_17_2" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , transformers
      }:
      mkDerivation {
        pname = "pandoc-types";
-       version = "1.17.1";
-       sha256 = "0sqk4sjpyl9k54kaxrk52in2sqhy62cakhca9k5i9c6gjhqh0rrb";
+       version = "1.17.2";
+       sha256 = "0wgd83xjpkc73xiig1n7wpfaa67widka7q1kx83pz8liswdqxq73";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
+         transformers
        ];
        testHaskellDepends = [
          aeson base bytestring containers HUnit QuickCheck string-qq syb
          test-framework test-framework-hunit test-framework-quickcheck2
        ];
+       benchmarkHaskellDepends = [ base criterion ];
        homepage = "http://johnmacfarlane.net/pandoc";
        description = "Types for representing a structured document";
        license = stdenv.lib.licenses.bsd3;
@@ -151876,6 +151992,7 @@ self: {
        ];
        description = "Tool for refactoring expressions into pointfree form";
        license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pointful" = callPackage
@@ -152706,6 +152823,7 @@ self: {
        homepage = "https://github.com/xtendo-org/positron#readme";
        description = "Experiment";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "posix-acl" = callPackage
@@ -154685,6 +154803,7 @@ self: {
        homepage = "https://github.com/sighingnow/computations/tree/master/primesieve#readme";
        description = "FFI bindings for the primesieve library";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {primesieve = null;};
 
   "primitive_0_5_1_0" = callPackage
@@ -157276,6 +157395,7 @@ self: {
        homepage = "https://github.com/memrange/apn#readme";
        description = "Send push notifications to mobile iOS devices";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "push-notify-ccs" = callPackage
@@ -161063,7 +161183,7 @@ self: {
        homepage = "http://www.haskell.org/haskellwiki/Reactive-balsa";
        description = "Process MIDI events via reactive-banana and JACK";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = [ "i686-linux" "x86_64-linux" ];
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "reactive-midyim" = callPackage
@@ -164981,6 +165101,7 @@ self: {
        homepage = "https://github.com/lessrest/restless-git";
        description = "Easy Git repository serialization";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "restricted-workers" = callPackage
@@ -167580,6 +167701,7 @@ self: {
        homepage = "https://github.com/githubuser/safepath#readme";
        description = "Safe Paths in Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "safer-file-handles" = callPackage
@@ -169350,6 +169472,7 @@ self: {
        ];
        description = "Scrape websites for changes";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "scrobble" = callPackage
@@ -170493,8 +170616,8 @@ self: {
      }:
      mkDerivation {
        pname = "sensei";
-       version = "0.2.0";
-       sha256 = "1c7lghr05r5ny4xx2jwngxx1n97yf78lr9m4m1p2bfrc16mwyf5a";
+       version = "0.3.0";
+       sha256 = "0ya5pb7plr3qgh2vh8yqffwcb6alk2k581wv3yfp0zwxpflwppvh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -182173,6 +182296,7 @@ self: {
        homepage = "https://github.com/vagarenko/static-tensor";
        description = "Tensors of statically known size";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "staticanalysis" = callPackage
@@ -184022,20 +184146,21 @@ self: {
      }) {};
 
   "strict-types" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, foundation
-     , text, unordered-containers, vector
+    ({ mkDerivation, array, base, bytestring, containers, deepseq
+     , foundation, hashable, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "strict-types";
-       version = "0.1.0.1";
-       sha256 = "13lrk23045k576lh0ijyw4w903nzs9si980g24xcax3aqdw42iwz";
+       version = "0.1.0.6";
+       sha256 = "0dp0179g20g62vn6c5wv2d7d9kwwix40rxzwfig6f0pi8rm16jxj";
        libraryHaskellDepends = [
-         array base bytestring containers foundation text
+         array base bytestring containers deepseq foundation hashable text
          unordered-containers vector
        ];
        homepage = "https://github.com/pepeiborra/strict-types";
        description = "A type level predicate ranging over strict types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "strict-writer" = callPackage
@@ -184865,6 +184990,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "submark" = callPackage
+    ({ mkDerivation, base, cmark, hlint, hspec, optparse-applicative
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "submark";
+       version = "0.1.0";
+       sha256 = "0ywan4j2b6zyrsgk2s25mhc3cwx5nxg93hq4gkfcmaxlhp6rmbrq";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base cmark text ];
+       executableHaskellDepends = [
+         base cmark optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base cmark hlint hspec template-haskell text
+       ];
+       homepage = "https://github.com/dahlia/submark#readme";
+       description = "Extract a part from CommonMark/Markdown docs";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "subnet" = callPackage
     ({ mkDerivation, base, split }:
      mkDerivation {
@@ -185639,6 +185786,8 @@ self: {
        pname = "swagger2";
        version = "2.1.5";
        sha256 = "1sxv03fgafr21824wcz68l4nvazk6j31z74xa7njg7d3mc5w66pw";
+       revision = "1";
+       editedCabalFile = "1jv3jbnz0hsfvqnvv6diq4yav85jsqs9b5k1rx7b96nvh1ik3p4q";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson base base-compat bytestring containers generics-sop hashable
@@ -188071,6 +188220,7 @@ self: {
        homepage = "https://github.com/jtdaugherty/tart/";
        description = "Terminal Art";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "task" = callPackage
@@ -189049,25 +189199,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "teardown_0_2_0_0" = callPackage
+  "teardown_0_3_0_0" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, criterion, deepseq, doctest
-     , Glob, protolude, QuickCheck, tasty, tasty-hspec, tasty-hunit
-     , tasty-rerun, tasty-smallcheck, text, time
+     , exceptions, Glob, protolude, QuickCheck, safe-exceptions, tasty
+     , tasty-hspec, tasty-hunit, tasty-rerun, tasty-smallcheck, text
+     , time
      }:
      mkDerivation {
        pname = "teardown";
-       version = "0.2.0.0";
-       sha256 = "1ir84hm9z5n4dv1qvfs5f3qzmhdymcaak2whbvdz189kkziwhqsf";
+       version = "0.3.0.0";
+       sha256 = "0v47863md56nbkq0dwq4v7fw6krjjnz9m6fgag6qcbd3yx4lydc2";
        libraryHaskellDepends = [
-         ansi-wl-pprint base deepseq protolude text time
+         ansi-wl-pprint base deepseq exceptions protolude safe-exceptions
+         text time
        ];
        testHaskellDepends = [
-         base doctest Glob protolude QuickCheck tasty tasty-hspec
-         tasty-hunit tasty-rerun tasty-smallcheck text time
+         base doctest Glob protolude QuickCheck safe-exceptions tasty
+         tasty-hspec tasty-hunit tasty-rerun tasty-smallcheck text time
+       ];
+       benchmarkHaskellDepends = [
+         base criterion protolude safe-exceptions text time
        ];
-       benchmarkHaskellDepends = [ base criterion protolude text time ];
        homepage = "https://github.com/roman/Haskell-teardown#readme";
-       description = "Build composable, idempotent & transparent application cleanup sub-routines";
+       description = "Build composable components for your application with clear teardown semantics";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -190382,6 +190536,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "testCom" = callPackage
+    ({ mkDerivation, base, haskell-src-meta, template-haskell }:
+     mkDerivation {
+       pname = "testCom";
+       version = "0.1.0";
+       sha256 = "0wwh32sn5vgsm1yy741mp57ng17dwsailkz6isa37r71lcvaqj98";
+       libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
+       testHaskellDepends = [ base haskell-src-meta template-haskell ];
+       description = "Write your tests in comments";
+       license = "GPL";
+     }) {};
+
   "testPkg" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -191998,6 +192164,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "th-strict-compat" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "th-strict-compat";
+       version = "0.1.0.1";
+       sha256 = "0jmajcnw832df503jbg2fmrmnskc43i07214vpc4fw359cgd7yn3";
+       libraryHaskellDepends = [ base template-haskell ];
+       homepage = "https://gitlab.com/igrep/th-strict-compat";
+       description = "Compatibility shim for Bang and Strict in Template Haskell";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "th-to-exp" = callPackage
     ({ mkDerivation, base, hspec, template-haskell }:
      mkDerivation {
@@ -192085,6 +192263,7 @@ self: {
        homepage = "https://github.com/y-taka-23/thank-you-stars#readme";
        description = "Give your dependencies stars on GitHub!";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "themoviedb" = callPackage
@@ -192896,6 +193075,7 @@ self: {
        homepage = "https://github.com/NICTA/tickle";
        description = "A port of @Data.Binary@";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tictactoe3d" = callPackage
@@ -194345,6 +194525,27 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "tmp-postgres_0_1_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hspec, hspec-discover
+     , network, postgresql-simple, process, temporary, unix
+     }:
+     mkDerivation {
+       pname = "tmp-postgres";
+       version = "0.1.1.0";
+       sha256 = "1afmj859c1yl2lfvjqzvwx24hdrp8lf3v9zp7n56p9n6q74mknr0";
+       libraryHaskellDepends = [
+         base directory network process temporary unix
+       ];
+       testHaskellDepends = [
+         base bytestring directory hspec hspec-discover postgresql-simple
+         process temporary
+       ];
+       homepage = "https://github.com/jfischoff/tmp-postgres#readme";
+       description = "Start and stop a temporary postgres for testing";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tmpl" = callPackage
     ({ mkDerivation, base, bytestring, directory, template, text }:
      mkDerivation {
@@ -195733,6 +195934,7 @@ self: {
        homepage = "https://github.com/phadej/tree-diff";
        description = "Diffing of (expression) trees";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "tree-fun" = callPackage
@@ -196791,8 +196993,8 @@ self: {
      }:
      mkDerivation {
        pname = "tweet-hs";
-       version = "1.0.1.8";
-       sha256 = "0ryj00ml2sd28d1hscz2fz396x2xwbdl1ncv7mj9gm9mfby9zb24";
+       version = "1.0.1.9";
+       sha256 = "1s9gg1247xa2rl30s9i4rza04107s7awrx7pbmd4vc436mv4624z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201785,6 +201987,7 @@ self: {
        homepage = "https://github.com/qfpl/validation";
        description = "A data-type like Either but with an accumulating Applicative";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "validations" = callPackage
@@ -201832,8 +202035,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "validity";
-       version = "0.3.3.0";
-       sha256 = "1cayhhycmfj9ri2k8j4ndbqxv67w9ibf9v44w8lfkwp2zm8my5zz";
+       version = "0.4.0.0";
+       sha256 = "0ngivfphp468bp6djj8r76rwv2pcwgmawx04pnaw89m0wa5n27vw";
        libraryHaskellDepends = [ base ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity typeclass";
@@ -201846,8 +202049,8 @@ self: {
      }:
      mkDerivation {
        pname = "validity-aeson";
-       version = "0.0.0.0";
-       sha256 = "1a7yh87vlngd4f6j5al7zrfy5pkgfgpbjr00fbpaqk56z87328nh";
+       version = "0.1.0.0";
+       sha256 = "1bzqy6c85r3nsqmmvb06fmll7m7qjzgwk6mq25ivs5vqmfhv6kig";
        libraryHaskellDepends = [
          aeson base validity validity-scientific validity-text
          validity-unordered-containers validity-vector
@@ -201861,8 +202064,8 @@ self: {
     ({ mkDerivation, base, bytestring, validity }:
      mkDerivation {
        pname = "validity-bytestring";
-       version = "0.1.0.1";
-       sha256 = "1kz998gjia77xqkgp5xisn0gp7wrp9c1s8wvhnmmajn5i4nxakmw";
+       version = "0.2.0.0";
+       sha256 = "118g7as13kvfbwid1qy461vswzgl7bbdclapi6hr2majmwvrlgl7";
        libraryHaskellDepends = [ base bytestring validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for bytestring";
@@ -201873,8 +202076,8 @@ self: {
     ({ mkDerivation, base, containers, validity }:
      mkDerivation {
        pname = "validity-containers";
-       version = "0.1.0.3";
-       sha256 = "13s595d67mdv0238v0zr2ar2r379fdxsibyc05vxnz54km108wdd";
+       version = "0.2.0.0";
+       sha256 = "02kzrz78ikp3hx5szvflixmyddh30iipbapfrc8ypp5k5qar3sgh";
        libraryHaskellDepends = [ base containers validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for containers";
@@ -201885,8 +202088,8 @@ self: {
     ({ mkDerivation, base, filepath, path, validity }:
      mkDerivation {
        pname = "validity-path";
-       version = "0.1.0.1";
-       sha256 = "0mqfcy28fwawnz85k29h47xr660q8q6h48lp5likx5dxw42p5l0z";
+       version = "0.2.0.0";
+       sha256 = "1n84mnvyi1zf3888xvy2vvmca5fq594g0gqql5nisd3w1mrczw1f";
        libraryHaskellDepends = [ base filepath path validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for Path";
@@ -201897,8 +202100,8 @@ self: {
     ({ mkDerivation, base, scientific, validity }:
      mkDerivation {
        pname = "validity-scientific";
-       version = "0.0.0.0";
-       sha256 = "1k68lp33z0w1ari6i2wdcgypv9viynya5bi8bqs7ybic7h7cs3i5";
+       version = "0.1.0.0";
+       sha256 = "0pd5kjdb8nwj8rwvqa3wr377fmcs6wad7zmdv7r41bxzch1qf5zc";
        libraryHaskellDepends = [ base scientific validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for scientific";
@@ -201909,8 +202112,8 @@ self: {
     ({ mkDerivation, base, bytestring, text, validity }:
      mkDerivation {
        pname = "validity-text";
-       version = "0.1.2.1";
-       sha256 = "06wxqf283fy9i89pk0gg7b8bf89q0lvac8qys0wc9lygr4hqbmar";
+       version = "0.2.0.0";
+       sha256 = "1h123s8hbsimd3l05s217lncimfhzvy4xmwqafl4qw9dbmcxnsah";
        libraryHaskellDepends = [ base bytestring text validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for text";
@@ -201921,10 +202124,8 @@ self: {
     ({ mkDerivation, base, time, validity }:
      mkDerivation {
        pname = "validity-time";
-       version = "0.0.0.1";
-       sha256 = "0sdvqplgp57f04d54njyabp20fmrpa23jkx1mx3k0cj1aywpap8p";
-       revision = "1";
-       editedCabalFile = "1w7sjxsrjf3mfnssnvfvn2qbhg9j520cfxcn2m9gawrb4h20rwm9";
+       version = "0.1.0.0";
+       sha256 = "1mwyh92vfjq5s2p54vqfyawvvwqvpl2g4f6bqmnk149qqqgxv32z";
        libraryHaskellDepends = [ base time validity ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for time";
@@ -201935,8 +202136,8 @@ self: {
     ({ mkDerivation, base, hashable, unordered-containers, validity }:
      mkDerivation {
        pname = "validity-unordered-containers";
-       version = "0.0.0.0";
-       sha256 = "162xv4mip8awj214gdybhp2m3skjs0pg10gf9abj3h017wf046vd";
+       version = "0.1.0.0";
+       sha256 = "1cz5xk427rl8x2nm7xbsspcjnx6w6cib0f5qjs18m912qxyh1g9d";
        libraryHaskellDepends = [
          base hashable unordered-containers validity
        ];
@@ -201945,12 +202146,24 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "validity-uuid" = callPackage
+    ({ mkDerivation, base, uuid, validity }:
+     mkDerivation {
+       pname = "validity-uuid";
+       version = "0.0.0.0";
+       sha256 = "12v1r92skk4acnd8s3kqj1la24anvs5w1h9cjxzgs2j0pqmzdrbf";
+       libraryHaskellDepends = [ base uuid validity ];
+       homepage = "https://github.com/NorfairKing/validity#readme";
+       description = "Validity instances for uuid";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "validity-vector" = callPackage
     ({ mkDerivation, base, hashable, validity, vector }:
      mkDerivation {
        pname = "validity-vector";
-       version = "0.0.0.0";
-       sha256 = "0iz3qxk73k4ci337h4y9n94vahs9pfl060pdkx4bkg9wpar6fqr1";
+       version = "0.1.0.0";
+       sha256 = "0z74m1arw92f96156zxgpbkv1x6fll22hysn2iwrk4i3642127h1";
        libraryHaskellDepends = [ base hashable validity vector ];
        homepage = "https://github.com/NorfairKing/validity#readme";
        description = "Validity instances for vector";
@@ -207985,19 +208198,20 @@ self: {
      }) {};
 
   "wordchoice" = callPackage
-    ({ mkDerivation, base, bytestring, Chart, Chart-diagrams
-     , containers, criterion, Glob, lens, optparse-applicative, pandoc
-     , system-filepath, text
+    ({ mkDerivation, base, binary, bytestring, Chart, Chart-diagrams
+     , composition-prelude, containers, criterion, directory, Glob, lens
+     , optparse-applicative, pandoc, system-filepath, text
      }:
      mkDerivation {
        pname = "wordchoice";
-       version = "0.1.1.1";
-       sha256 = "1n1frb1c3fv808sb5w7j8gv86pva7fryq6f3j2c7z1p32v9xcnza";
+       version = "0.1.2.0";
+       sha256 = "01zmgxs09dplk8hf41cfqjcm6w9mjnd6szn22kz2ycjxxdd7kncv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring Chart Chart-diagrams containers Glob lens
-         optparse-applicative pandoc system-filepath text
+         base binary bytestring Chart Chart-diagrams composition-prelude
+         containers directory Glob lens optparse-applicative pandoc
+         system-filepath text
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
@@ -208358,6 +208572,7 @@ self: {
        ];
        description = "A web interface for Wrecker, the HTTP Performance Benchmarker";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wreq" = callPackage
@@ -215199,8 +215414,8 @@ self: {
      }:
      mkDerivation {
        pname = "zifter";
-       version = "0.0.1.2";
-       sha256 = "0yrcyzcjszcqj54n8k3jp6glz4nsn5vr61a0wmdaz5sxdjsrsnqy";
+       version = "0.0.1.3";
+       sha256 = "0hams2ayxm73p2m032vjxnrdpg7d8iz293sx29h011siv1xjyaab";
        libraryHaskellDepends = [
          ansi-terminal async base directory exceptions filepath
          optparse-applicative path path-io process safe stm validity

From f8078db863bf43a1d2dffa845d884e25a996a679 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Mon, 25 Sep 2017 10:58:08 +0100
Subject: [PATCH 334/533] gmime3: reduce propagated closure

only libraries required pkg-config files
---
 pkgs/development/libraries/gmime/3.nix | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/gmime/3.nix b/pkgs/development/libraries/gmime/3.nix
index 548772ea6507..d6877e72a1f9 100644
--- a/pkgs/development/libraries/gmime/3.nix
+++ b/pkgs/development/libraries/gmime/3.nix
@@ -11,8 +11,9 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
-  propagatedBuildInputs = [ glib zlib gpgme libidn ];
+  buildInputs = [ gobjectIntrospection zlib gpgme libidn ];
+  nativeBuildInputs = [ pkgconfig ];
+  propagatedBuildInputs = [ glib ];
   configureFlags = [ "--enable-introspection=yes" ];
 
   enableParallelBuilding = true;

From a8c97ad23e21284d4e05b4de1a5e19cbb061d777 Mon Sep 17 00:00:00 2001
From: Silvan Mosberger <infinisil@icloud.com>
Date: Mon, 25 Sep 2017 12:18:42 +0200
Subject: [PATCH 335/533] nixos/radicale: fix default version (#29743)

---
 nixos/modules/services/networking/radicale.nix | 2 +-
 nixos/tests/radicale.nix                       | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix
index 56f2e976cff5..391f4bdebbab 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -9,7 +9,7 @@ let
   confFile = pkgs.writeText "radicale.conf" cfg.config;
 
   # This enables us to default to version 2 while still not breaking configurations of people with version 1
-  defaultPackage = if versionAtLeast "17.09" config.system.stateVersion then {
+  defaultPackage = if versionAtLeast config.system.stateVersion "17.09" then {
     pkg = pkgs.radicale2;
     text = "pkgs.radicale2";
   } else {
diff --git a/nixos/tests/radicale.nix b/nixos/tests/radicale.nix
index 2c888469d0a4..f694fc75ef77 100644
--- a/nixos/tests/radicale.nix
+++ b/nixos/tests/radicale.nix
@@ -43,6 +43,7 @@ in
             });
           })
         ];
+        system.stateVersion = "17.03";
       };
       radicale1_export = lib.recursiveUpdate radicale1 {
         services.radicale.extraArgs = [

From 5835b1a156d5df993404205a9a4e56792da6c009 Mon Sep 17 00:00:00 2001
From: Kamil Chmielewski <kamil.chm@gmail.com>
Date: Sun, 24 Sep 2017 22:49:44 +0200
Subject: [PATCH 336/533] ponyc: 0.19.1 -> 0.19.2

https://github.com/ponylang/ponyc/issues/2248
---
 pkgs/development/compilers/ponyc/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/compilers/ponyc/default.nix b/pkgs/development/compilers/ponyc/default.nix
index 69a8243b6662..19ebd522a4f7 100644
--- a/pkgs/development/compilers/ponyc/default.nix
+++ b/pkgs/development/compilers/ponyc/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation ( rec {
   name = "ponyc-${version}";
-  version = "0.19.1";
+  version = "0.19.2";
 
   src = fetchFromGitHub {
     owner = "ponylang";
     repo = "ponyc";
     rev = version;
-    sha256 = "1zd051syn0n6ign4nnxb40xj2s5vqp0s349nkjqv7051xzvlzf1p";
+    sha256 = "04vbhkkgpjh19pv2bq4b60lgnk5ck8axqs6fgw4l44j3lvxwlwrh";
   };
 
   buildInputs = [ llvm makeWrapper which ];

From cd501e33bab4979d7e46c0eb8d5ab3adfcb64bee Mon Sep 17 00:00:00 2001
From: Dario Bertini <berdario@gmail.com>
Date: Sat, 23 Sep 2017 17:02:58 +0100
Subject: [PATCH 337/533] gcj: use from gcc6

---
 pkgs/top-level/all-packages.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f9074468095a..a39d24ae9f13 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5602,8 +5602,8 @@ with pkgs;
     profiledCompiler = false;
   });
 
-  gcj = gcj49;
-  gcj49 = wrapCC (gcc49.cc.override {
+  gcj = gcj6;
+  gcj6 = wrapCC (gcc6.cc.override {
     name = "gcj";
     langJava = true;
     langFortran = false;

From 4429559aa15e59731462a91784d7c66b345d219e Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Mon, 25 Sep 2017 14:00:48 +0200
Subject: [PATCH 338/533] mg: 20161005 -> 20170828

---
 pkgs/applications/editors/mg/default.nix | 27 +++++++++++-------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/pkgs/applications/editors/mg/default.nix b/pkgs/applications/editors/mg/default.nix
index b8bfd40c079b..f4bdee830e19 100644
--- a/pkgs/applications/editors/mg/default.nix
+++ b/pkgs/applications/editors/mg/default.nix
@@ -1,33 +1,30 @@
-{ fetchurl, stdenv, ncurses, pkgconfig, libbsd }:
+{ stdenv, fetchurl, pkgconfig, libbsd, ncurses }:
+
 stdenv.mkDerivation rec {
   name = "mg-${version}";
-  version = "20161005";
+  version = "20170828";
 
   src = fetchurl {
     url = "http://homepage.boetes.org/software/mg/${name}.tar.gz";
-    sha256 = "0qaydk2cy765n9clghmi5gdnpwn15y2v0fj6r0jcm0v7d89vbz5p";
+    sha256 = "139nc58l5ifj3d3478nhqls0lic52skmxfxggznzxaz9camqd20z";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error";
-  
-  preConfigure = ''
-    substituteInPlace GNUmakefile \
-      --replace /usr/bin/pkg-config ${pkgconfig}/bin/pkg-config
-      '';
+  enableParallelBuilding = true;
+
+  makeFlags = [ "PKG_CONFIG=${pkgconfig}/bin/pkg-config" ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp mg $out/bin
-    mkdir -p $out/share/man/man1
-    cp mg.1 $out/share/man/man1
+    install -m 555 -Dt $out/bin mg
+    install -m 444 -Dt $out/share/man/man1 mg.1
   '';
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ ncurses libbsd ];
+
+  buildInputs = [ libbsd ncurses ];
 
   meta = with stdenv.lib; {
-    homepage = http://homepage.boetes.org/software/mg/;
     description = "Micro GNU/emacs, a portable version of the mg maintained by the OpenBSD team";
+    homepage = "https://homepage.boetes.org/software/mg";
     license = licenses.publicDomain;
     platforms = platforms.all;
   };

From 3a670daa9882de4c7a95f81a36e988c5771c1724 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Sun, 24 Sep 2017 15:55:02 +0200
Subject: [PATCH 339/533] nixos/network-interfaces: IPs must always be set

Previously, depending on the environment and the type of interface that
was created, the configured IPs of an interface wouldn't be applied on a
nixos-rebuild switch. It works after a reboot.

This patch ensures that the network-addresses service is started
either via the network-link service or if the networking target is
activated (i.e. on system activation).

Fixes #28474 #16230.
---
 nixos/modules/tasks/network-interfaces-scripted.nix | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 7ede8752bcc3..26fba1d5adbb 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -152,7 +152,11 @@ let
           in
           nameValuePair "network-addresses-${i.name}"
           { description = "Address configuration of ${i.name}";
-            wantedBy = [ "network-setup.service" ];
+            wantedBy = [
+              "network-setup.service"
+              "network-link-${i.name}.service"
+              "network.target"
+            ];
             # propagate stop and reload from network-setup
             partOf = [ "network-setup.service" ];
             # order before network-setup because the routes that are configured

From 13a110e69655d78930999ecb6b0a03a8991ab302 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Sun, 24 Sep 2017 16:01:07 +0200
Subject: [PATCH 340/533] nixos/network-interfaces: cannot delay device units

Systemd is complaining that it can't delay the startup of device units.
We have a before dependency on the respective device unit for every
netdev service, which doesn't make any sense because we create the
actual interface in this service.
---
 nixos/modules/tasks/network-interfaces-scripted.nix | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 26fba1d5adbb..b432ef38d410 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -210,7 +210,7 @@ let
             after = [ "dev-net-tun.device" "network-pre.target" ];
             wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
             partOf = [ "network-setup.service" ];
-            before = [ "network-setup.service" (subsystemDevice i.name) ];
+            before = [ "network-setup.service" ];
             path = [ pkgs.iproute ];
             serviceConfig = {
               Type = "oneshot";
@@ -236,7 +236,7 @@ let
             partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service";
             after = [ "network-pre.target" ] ++ deps ++ optional v.rstp "mstpd.service"
               ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
-            before = [ "network-setup.service" (subsystemDevice n) ];
+            before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -335,7 +335,7 @@ let
             partOf = [ "network-setup.service" ];
             after = [ "network-pre.target" ] ++ deps
               ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
-            before = [ "network-setup.service" (subsystemDevice n) ];
+            before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute pkgs.gawk ];
@@ -373,7 +373,7 @@ let
             bindsTo = deps;
             partOf = [ "network-setup.service" ];
             after = [ "network-pre.target" ] ++ deps;
-            before = [ "network-setup.service" (subsystemDevice n) ];
+            before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -398,7 +398,7 @@ let
             bindsTo = deps;
             partOf = [ "network-setup.service" ];
             after = [ "network-pre.target" ] ++ deps;
-            before = [ "network-setup.service" (subsystemDevice n) ];
+            before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];
@@ -426,7 +426,7 @@ let
             bindsTo = deps;
             partOf = [ "network-setup.service" ];
             after = [ "network-pre.target" ] ++ deps;
-            before = [ "network-setup.service" (subsystemDevice n) ];
+            before = [ "network-setup.service" ];
             serviceConfig.Type = "oneshot";
             serviceConfig.RemainAfterExit = true;
             path = [ pkgs.iproute ];

From 263185aa6860f5a420171d02bfa05d7ba716fc32 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Sun, 24 Sep 2017 16:54:48 +0200
Subject: [PATCH 341/533] nixos/network-interfaces: ensure slave interfaces are
 up

Fixes #28620.
---
 nixos/modules/tasks/network-interfaces-scripted.nix | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index b432ef38d410..3512296dff4a 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -9,6 +9,12 @@ let
   interfaces = attrValues cfg.interfaces;
   hasVirtuals = any (i: i.virtual) interfaces;
 
+  slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds)
+    ++ concatMap (i: i.interfaces) (attrValues cfg.bridges)
+    ++ concatMap (i: i.interfaces) (attrValues cfg.vswitches)
+    ++ concatMap (i: [i.interface]) (attrValues cfg.macvlans)
+    ++ concatMap (i: [i.interface]) (attrValues cfg.vlans);
+
   # We must escape interfaces due to the systemd interpretation
   subsystemDevice = interface:
     "sys-subsystem-net-devices-${escapeSystemdPath interface}.device";
@@ -469,5 +475,8 @@ in
   config = mkMerge [
     bondWarnings
     (mkIf (!cfg.useNetworkd) normalConfig)
+    { # Ensure slave interfaces are brought up
+      networking.interfaces = genAttrs slaves (i: {});
+    }
   ];
 }

From 9d9a28f0144a70651aa402c8caafc594471e4eba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <Mic92@users.noreply.github.com>
Date: Mon, 25 Sep 2017 14:00:47 +0100
Subject: [PATCH 342/533] docs/python: more infos regarding failing tests

---
 doc/languages-frameworks/python.md | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/doc/languages-frameworks/python.md b/doc/languages-frameworks/python.md
index 298da8f9f0d2..7bdbbbd903a0 100644
--- a/doc/languages-frameworks/python.md
+++ b/doc/languages-frameworks/python.md
@@ -785,7 +785,20 @@ example of such a situation is when `py.test` is used.
 
 #### Common issues
 
-- Non-working tests can often be deselected. In the case of `py.test`: `py.test -k 'not function_name and not other_function'`.
+- Non-working tests can often be deselected. By default `buildPythonPackage` runs `python setup.py test`.
+  Most python modules follows the standard test protocol where the pytest runner can be used instead.
+  `py.test` supports a `-k` parameter to ignore test methods or classes: 
+  
+  ```nix
+  buildPythonPackage {
+    # ...
+    # assumes the tests are located in tests
+    checkInputs = [ pytest ];
+    checkPhase = ''
+      py.test -k 'not function_name and not other_function' tests
+    '';
+  }
+  ```
 - Unicode issues can typically be fixed by including `glibcLocales` in `buildInputs` and exporting `LC_ALL=en_US.utf-8`.
 - Tests that attempt to access `$HOME` can be fixed by using the following work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)`
 

From b13a6d5720ba1de73d26f974f8bd3c927978b8d2 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Mon, 25 Sep 2017 09:24:23 -0400
Subject: [PATCH 343/533] linux: 4.14-rc1 -> 4.14-rc2

---
 pkgs/os-specific/linux/kernel/linux-testing.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index e97d5c47da25..7d67bc2ff605 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.14-rc1";
-  modDirVersion = "4.14.0-rc1";
+  version = "4.14-rc2";
+  modDirVersion = "4.14.0-rc2";
   extraMeta.branch = "4.14";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "0dhcsjgcy28pyyzwf2s0862p92bwb324kapli2y9n90bw0kl53gi";
+    sha256 = "0ahcmr0y9i47lwjn140w436hg68apnh8rl66y56qdvdic8f61mj4";
   };
 
   # Should the testing kernels ever be built on Hydra?

From 23ef8261396c9b27b72461f32532a7f72e25588d Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Mon, 25 Sep 2017 21:29:10 +0800
Subject: [PATCH 344/533] pywbem: hash keeps changing - why? Embed the patch

---
 .../python-modules/pywbem/default.nix         |   7 +-
 .../make_cimdatetime_timezone_aware.patch     | 491 ++++++++++++++++++
 2 files changed, 493 insertions(+), 5 deletions(-)
 create mode 100644 pkgs/development/python-modules/pywbem/make_cimdatetime_timezone_aware.patch

diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index fed159380b81..8e10fbb22581 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -15,12 +15,9 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # fix timezone handling so the tests pass again. Can go when 0.11.0 is released
+    # fix timezone handling so the tests pass again. Can go when 0.10.1 is released
     # https://github.com/pywbem/pywbem/issues/755#issuecomment-327508681
-    (fetchpatch {
-      url = "https://github.com/pywbem/pywbem/commit/bb7fa19d636d999bf844d80939e155b8f212ef3e.patch";
-      sha256 = "1zd5f9qrb8rnaahmazkjnf3hqsc4f7n63z44k0wcwhz7fskpqza0";
-    })
+    ./make_cimdatetime_timezone_aware.patch
   ];
 
   propagatedBuildInputs = [ m2crypto ply pyyaml six ];
diff --git a/pkgs/development/python-modules/pywbem/make_cimdatetime_timezone_aware.patch b/pkgs/development/python-modules/pywbem/make_cimdatetime_timezone_aware.patch
new file mode 100644
index 000000000000..55fb9bbb12d7
--- /dev/null
+++ b/pkgs/development/python-modules/pywbem/make_cimdatetime_timezone_aware.patch
@@ -0,0 +1,491 @@
+From bb7fa19d636d999bf844d80939e155b8f212ef3e Mon Sep 17 00:00:00 2001
+From: Andreas Maier <maiera@de.ibm.com>
+Date: Fri, 23 Jun 2017 19:13:51 +0200
+Subject: [PATCH] Made CIMDateTime always timezone-aware, re-enabled
+ test_cim_types.py
+
+Details:
+- Ensured that 'CIMDateTime' objects for point in time values are
+  timezone-aware when supplied with a timezone-naive 'datetime'
+  object. This does not change the behavior, but increases code
+  clarity.
+- Clarified that in the documentation of 'CIMDateTime'.
+- Added testcases for CIMDateTime.
+- Re-enabled the testing of test_cim_types.py. Since its change
+  to using pytest it was not run because the test methods were
+  all static methods which apparently does not work. Not sure
+  this ever worked.
+
+Signed-off-by: Andreas Maier <maiera@de.ibm.com>
+---
+ docs/changes.rst            |   5 +
+ pywbem/cim_types.py         |  22 +--
+ testsuite/test_cim_types.py | 369 +++++++++++++++++++++++---------------------
+ 3 files changed, 207 insertions(+), 189 deletions(-)
+
+diff --git a/docs/changes.rst b/docs/changes.rst
+index 272ed30d..6fdfbcf4 100644
+--- a/docs/changes.rst
++++ b/docs/changes.rst
+@@ -72,6 +72,11 @@ Enhancements
+
+ * Added unit test for recorder. See issue #676
+
++* Ensured that `CIMDateTime` objects for point in time values are
++  timezone-aware when supplied with a timezone-naive `datetime` object.
++  This does not change the behavior, but increases code clarity.
++  Clarified that in the documentation of  `CIMDateTime`. See issue #698.
++
+ Bug fixes
+ ^^^^^^^^^
+
+diff --git a/pywbem/cim_types.py b/pywbem/cim_types.py
+index 6d1f140c..5ecc7707 100644
+--- a/pywbem/cim_types.py
++++ b/pywbem/cim_types.py
+@@ -74,6 +74,7 @@
+ import re
+ import warnings
+ import six
++import copy
+
+ from . import config
+
+@@ -294,9 +295,11 @@ def __init__(self, dtarg):
+             * A :term:`string` object will be
+               interpreted as CIM datetime format (see :term:`DSP0004`) and
+               will result in a point in time or a time interval.
+-            * A :class:`py:datetime.datetime` object must be timezone-aware
+-              (see :class:`~pywbem.MinutesFromUTC`) and will result in a point
+-              in time.
++            * A :class:`py:datetime.datetime` object will result in a point
++              in time. If the :class:`py:datetime.datetime` object is
++              timezone-aware (see :class:`~pywbem.MinutesFromUTC`), the
++              specified timezone will be used. Otherwise, a default timezone
++              of UTC will be assumed.
+             * A :class:`py:datetime.timedelta` object will result in a time
+               interval.
+             * Another :class:`~pywbem.CIMDateTime` object will be copied.
+@@ -342,14 +345,15 @@ def __init__(self, dtarg):
+                     raise ValueError('dtarg argument "%s" has an invalid CIM '
+                                      'datetime format' % dtarg)
+         elif isinstance(dtarg, datetime):
+-            self.__datetime = dtarg
++            if dtarg.tzinfo is None:
++                self.__datetime = dtarg.replace(tzinfo=MinutesFromUTC(0))
++            else:
++                self.__datetime = copy.copy(dtarg)
+         elif isinstance(dtarg, timedelta):
+-            self.__timedelta = dtarg
++            self.__timedelta = copy.copy(dtarg)
+         elif isinstance(dtarg, CIMDateTime):
+-            # pylint: disable=protected-access
+-            self.__datetime = dtarg.__datetime
+-            # pylint: disable=protected-access
+-            self.__timedelta = dtarg.__timedelta
++            self.__datetime = copy.copy(dtarg.datetime)
++            self.__timedelta = copy.copy(dtarg.timedelta)
+         else:
+             raise TypeError('dtarg argument "%s" has an invalid type: %s '
+                             '(expected datetime, timedelta, string, or '
+diff --git a/testsuite/test_cim_types.py b/testsuite/test_cim_types.py
+index 4ae354d3..b1f54d06 100755
+--- a/testsuite/test_cim_types.py
++++ b/testsuite/test_cim_types.py
+@@ -43,105 +43,99 @@ def integer_tuple(request):
+     return request.param
+
+
+-class TestIntegers:
+-    """
+-    Test CIM integer data type classes.
+-    """
+-
+-    @staticmethod
+-    def test_class_attrs_class(integer_tuple):
+-        """Test class attrs via class level"""
+-        obj_type, exp_cimtype, exp_minvalue, exp_maxvalue = integer_tuple
+-        assert obj_type.cimtype == exp_cimtype
+-        assert obj_type.minvalue == exp_minvalue
+-        assert obj_type.maxvalue == exp_maxvalue
+-
+-    @staticmethod
+-    def test_class_attrs_inst(integer_tuple):
+-        """Test class attrs via instance level"""
+-        obj_type, exp_cimtype, exp_minvalue, exp_maxvalue = integer_tuple
+-        obj = obj_type(42)
+-        assert obj.cimtype == exp_cimtype
+-        assert obj.minvalue == exp_minvalue
+-        assert obj.maxvalue == exp_maxvalue
+-
+-    @staticmethod
+-    def test_inheritance(integer_tuple):
+-        """Test inheritance"""
+-        obj_type = integer_tuple[0]
+-        obj = obj_type(42)
+-        assert isinstance(obj, obj_type)
+-        assert isinstance(obj, CIMType)
+-        assert isinstance(obj, CIMInt)
+-        assert not isinstance(obj, CIMFloat)
+-
+-    @staticmethod
+-    def test_init_int(integer_tuple):
+-        """Test initialization from integer value"""
+-        obj_type = integer_tuple[0]
+-        obj = obj_type(42)
+-        assert obj == 42
+-
+-    @staticmethod
+-    def test_init_str(integer_tuple):
+-        """Test initialization from string value"""
+-        obj_type = integer_tuple[0]
+-        obj = obj_type('42')
+-        assert obj == 42
+-
+-    @staticmethod
+-    def test_init_str_base10(integer_tuple):
+-        """Test initialization from string value with base 10"""
+-        obj_type = integer_tuple[0]
+-        obj = obj_type('42', 10)
+-        assert obj == 42
+-
+-    @staticmethod
+-    def test_init_str_base16(integer_tuple):
+-        """Test initialization from string value with base 16"""
+-        obj_type = integer_tuple[0]
+-        obj = obj_type('2A', 16)
+-        assert obj == 42
+-
+-    @staticmethod
+-    def test_init_minimum(integer_tuple):
+-        """Test initialization from integer value at minimum"""
+-        obj_type = integer_tuple[0]
+-        exp_minvalue = integer_tuple[2]
+-        obj = obj_type(exp_minvalue)
+-        assert obj == exp_minvalue
+-
+-    @staticmethod
+-    def test_init_maximum(integer_tuple):
+-        """Test initialization from integer value at maximum"""
+-        obj_type = integer_tuple[0]
+-        exp_maxvalue = integer_tuple[3]
+-        obj = obj_type(exp_maxvalue)
+-        assert obj == exp_maxvalue
+-
+-    @staticmethod
+-    def test_init_too_low(integer_tuple):
+-        """Test initialization from integer value below minimum"""
+-        obj_type = integer_tuple[0]
+-        exp_minvalue = integer_tuple[2]
+-        try:
+-            obj_type(exp_minvalue - 1)
+-        except ValueError:
+-            pass
+-        else:
+-            raise AssertionError("ValueError was not raised.")
+-
+-    @staticmethod
+-    def test_init_too_high(integer_tuple):
+-        """Test initialization from integer value above maximum"""
+-        obj_type = integer_tuple[0]
+-        exp_maxvalue = integer_tuple[3]
+-        try:
+-            obj_type(exp_maxvalue + 1)
+-        except ValueError:
+-            pass
+-        else:
+-            raise AssertionError("ValueError was not raised.")
++def test_integer_class_attrs_class(integer_tuple):
++    """Test class attrs via class level"""
++    obj_type, exp_cimtype, exp_minvalue, exp_maxvalue = integer_tuple
++    assert obj_type.cimtype == exp_cimtype
++    assert obj_type.minvalue == exp_minvalue
++    assert obj_type.maxvalue == exp_maxvalue
++
++
++def test_integer_class_attrs_inst(integer_tuple):
++    """Test class attrs via instance level"""
++    obj_type, exp_cimtype, exp_minvalue, exp_maxvalue = integer_tuple
++    obj = obj_type(42)
++    assert obj.cimtype == exp_cimtype
++    assert obj.minvalue == exp_minvalue
++    assert obj.maxvalue == exp_maxvalue
++
++
++def test_integer_inheritance(integer_tuple):
++    """Test inheritance"""
++    obj_type = integer_tuple[0]
++    obj = obj_type(42)
++    assert isinstance(obj, obj_type)
++    assert isinstance(obj, CIMType)
++    assert isinstance(obj, CIMInt)
++    assert not isinstance(obj, CIMFloat)
++
++
++def test_integer_init_int(integer_tuple):
++    """Test initialization from integer value"""
++    obj_type = integer_tuple[0]
++    obj = obj_type(42)
++    assert obj == 42
++
++
++def test_integer_init_str(integer_tuple):
++    """Test initialization from string value"""
++    obj_type = integer_tuple[0]
++    obj = obj_type('42')
++    assert obj == 42
++
++
++def test_integer_init_str_base10(integer_tuple):
++    """Test initialization from string value with base 10"""
++    obj_type = integer_tuple[0]
++    obj = obj_type('42', 10)
++    assert obj == 42
++
++
++def test_integer_init_str_base16(integer_tuple):
++    """Test initialization from string value with base 16"""
++    obj_type = integer_tuple[0]
++    obj = obj_type('2A', 16)
++    assert obj == 42
++
++
++def test_integer_init_minimum(integer_tuple):
++    """Test initialization from integer value at minimum"""
++    obj_type = integer_tuple[0]
++    exp_minvalue = integer_tuple[2]
++    obj = obj_type(exp_minvalue)
++    assert obj == exp_minvalue
++
++
++def test_integer_init_maximum(integer_tuple):
++    """Test initialization from integer value at maximum"""
++    obj_type = integer_tuple[0]
++    exp_maxvalue = integer_tuple[3]
++    obj = obj_type(exp_maxvalue)
++    assert obj == exp_maxvalue
++
++
++def test_integer_init_too_low(integer_tuple):
++    """Test initialization from integer value below minimum"""
++    obj_type = integer_tuple[0]
++    exp_minvalue = integer_tuple[2]
++    try:
++        obj_type(exp_minvalue - 1)
++    except ValueError:
++        pass
++    else:
++        raise AssertionError("ValueError was not raised.")
++
++
++def test_integer_init_too_high(integer_tuple):
++    """Test initialization from integer value above maximum"""
++    obj_type = integer_tuple[0]
++    exp_maxvalue = integer_tuple[3]
++    try:
++        obj_type(exp_maxvalue + 1)
++    except ValueError:
++        pass
++    else:
++        raise AssertionError("ValueError was not raised.")
+
+
+ #
+@@ -164,47 +158,41 @@ def real_tuple(request):
+     return request.param
+
+
+-class TestReals:
+-    """
+-    Test CIM real data type classes.
+-    """
+-
+-    @staticmethod
+-    def test_class_attrs_class(real_tuple):
+-        """Test class attrs via class level"""
+-        obj_type, exp_cimtype = real_tuple
+-        assert obj_type.cimtype == exp_cimtype
+-
+-    @staticmethod
+-    def test_class_attrs_inst(real_tuple):
+-        """Test class attrs via instance level"""
+-        obj_type, exp_cimtype = real_tuple
+-        obj = obj_type(42)
+-        assert obj.cimtype == exp_cimtype
+-
+-    @staticmethod
+-    def test_inheritance(real_tuple):
+-        """Test inheritance"""
+-        obj_type = real_tuple[0]
+-        obj = obj_type(42)
+-        assert isinstance(obj, obj_type)
+-        assert isinstance(obj, CIMType)
+-        assert isinstance(obj, CIMFloat)
+-        assert not isinstance(obj, CIMInt)
+-
+-    @staticmethod
+-    def test_init_float(real_tuple):
+-        """Test initialization from floating point value"""
+-        obj_type = real_tuple[0]
+-        obj = obj_type(42.0)
+-        assert obj == 42.0
+-
+-    @staticmethod
+-    def test_init_str(real_tuple):
+-        """Test initialization from string value"""
+-        obj_type = real_tuple[0]
+-        obj = obj_type('42.0')
+-        assert obj == 42.0
++def test_real_class_attrs_class(real_tuple):
++    """Test class attrs via class level"""
++    obj_type, exp_cimtype = real_tuple
++    assert obj_type.cimtype == exp_cimtype
++
++
++def test_real_class_attrs_inst(real_tuple):
++    """Test class attrs via instance level"""
++    obj_type, exp_cimtype = real_tuple
++    obj = obj_type(42)
++    assert obj.cimtype == exp_cimtype
++
++
++def test_real_inheritance(real_tuple):
++    """Test inheritance"""
++    obj_type = real_tuple[0]
++    obj = obj_type(42)
++    assert isinstance(obj, obj_type)
++    assert isinstance(obj, CIMType)
++    assert isinstance(obj, CIMFloat)
++    assert not isinstance(obj, CIMInt)
++
++
++def test_real_init_float(real_tuple):
++    """Test initialization from floating point value"""
++    obj_type = real_tuple[0]
++    obj = obj_type(42.0)
++    assert obj == 42.0
++
++
++def test_real_init_str(real_tuple):
++    """Test initialization from string value"""
++    obj_type = real_tuple[0]
++    obj = obj_type('42.0')
++    assert obj == 42.0
+
+
+ #
+@@ -271,6 +259,26 @@ def test_init_str(real_tuple):
+         '20140924193040.654321+120'
+     ),
+     (
++        datetime(year=2014, month=9, day=24, hour=19, minute=30, second=40,
++                 microsecond=654321, tzinfo=MinutesFromUTC(0)),
++        'timestamp',
++        datetime(year=2014, month=9, day=24, hour=19, minute=30, second=40,
++                 microsecond=654321, tzinfo=MinutesFromUTC(0)),
++        None,
++        0,
++        '20140924193040.654321+000'
++    ),
++    (
++        datetime(year=2014, month=9, day=24, hour=19, minute=30, second=40,
++                 microsecond=654321),
++        'timestamp',
++        datetime(year=2014, month=9, day=24, hour=19, minute=30, second=40,
++                 microsecond=654321, tzinfo=MinutesFromUTC(0)),
++        None,
++        0,
++        '20140924193040.654321+000'
++    ),
++    (
+         '20140924193040.654321+120',
+         'timestamp',
+         datetime(year=2014, month=9, day=24, hour=19, minute=30, second=40,
+@@ -325,46 +333,47 @@ def datetime_init_tuple(request):
+     return request.param
+
+
+-class TestDatetime:
+-    """
+-    Test CIM real data type classes.
+-    """
+-
+-    @staticmethod
+-    def test_class_attrs_class():
+-        """Test class attrs via class level"""
+-        assert CIMDateTime.cimtype == 'datetime'
+-
+-    @staticmethod
+-    def test_class_attrs_inst():
+-        """Test class attrs via instance level"""
+-        obj = CIMDateTime('00000000000000.000000:000')
+-        assert obj.cimtype == 'datetime'
+-
+-    @staticmethod
+-    def test_inheritance():
+-        """Test inheritance"""
+-        obj = CIMDateTime('00000000000000.000000:000')
+-        assert isinstance(obj, CIMDateTime)
+-        assert isinstance(obj, CIMType)
+-        assert not isinstance(obj, CIMFloat)
+-        assert not isinstance(obj, CIMInt)
+-
+-    @staticmethod
+-    def test_init(datetime_init_tuple):
+-        """Test initialization from all input types"""
+-        (dtarg, exp_kind, exp_datetime, exp_timedelta, exp_minutesfromutc,
+-         exp_str) = datetime_init_tuple
+-        try:
+-            obj = CIMDateTime(dtarg)
+-        except Exception as exc:
+-            assert isinstance(exc, exp_kind)
+-        else:
+-            assert obj.is_interval == (exp_kind == 'interval')
+-            assert obj.datetime == exp_datetime
+-            assert obj.timedelta == exp_timedelta
+-            assert obj.minutes_from_utc == exp_minutesfromutc
+-            assert str(obj) == exp_str
++def test_datetime_class_attrs_class():
++    """Test class attrs via class level"""
++    assert CIMDateTime.cimtype == 'datetime'
++
++
++def test_datetime_class_attrs_inst():
++    """Test class attrs via instance level"""
++    obj = CIMDateTime('00000000000000.000000:000')
++    assert obj.cimtype == 'datetime'
++
++
++def test_datetime_inheritance():
++    """Test inheritance"""
++    obj = CIMDateTime('00000000000000.000000:000')
++    assert isinstance(obj, CIMDateTime)
++    assert isinstance(obj, CIMType)
++    assert not isinstance(obj, CIMFloat)
++    assert not isinstance(obj, CIMInt)
++
++
++def test_datetime_init(datetime_init_tuple):
++    """Test initialization from all input types"""
++    (dtarg, exp_kind, exp_datetime, exp_timedelta, exp_minutesfromutc,
++     exp_str) = datetime_init_tuple
++    try:
++        obj = CIMDateTime(dtarg)
++    except Exception as exc:
++        assert isinstance(exc, exp_kind)
++    else:
++        assert obj.is_interval == (exp_kind == 'interval')
++        assert obj.datetime == exp_datetime
++        if obj.datetime is not None:
++            assert isinstance(obj.datetime, datetime)
++            # We ensure that the datetime is always timezone-aware:
++            assert obj.datetime.tzinfo is not None
++        assert obj.timedelta == exp_timedelta
++        if obj.timedelta is not None:
++            assert isinstance(obj.timedelta, timedelta)
++        assert obj.minutes_from_utc == exp_minutesfromutc
++        assert str(obj) == exp_str
++
+
+ # TODO: Add testcases for get_local_utcoffset()
+ # TODO: Add testcases for now()

From d706fc953d0afe6bd060459f23f5e41a83c63a59 Mon Sep 17 00:00:00 2001
From: Roberto Di Remigio <roberto.diremigio@gmail.com>
Date: Mon, 25 Sep 2017 14:50:31 +0100
Subject: [PATCH 345/533] sort maintainers.nix

---
 lib/maintainers.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 32ec8be0a688..2d33a34a5630 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -197,8 +197,8 @@
   exlevan = "Alexey Levan <exlevan@gmail.com>";
   expipiplus1 = "Joe Hermaszewski <nix@monoid.al>";
   fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
-  fare = "Francois-Rene Rideau <fahree@gmail.com>";
   falsifian = "James Cook <james.cook@utoronto.ca>";
+  fare = "Francois-Rene Rideau <fahree@gmail.com>";
   florianjacob = "Florian Jacob <projects+nixos@florianjacob.de>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
   fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
@@ -290,12 +290,12 @@
   jonafato = "Jon Banafato <jon@jonafato.com>";
   jpierre03 = "Jean-Pierre PRUNARET <nix@prunetwork.fr>";
   jpotier = "Martin Potier <jpo.contributes.to.nixos@marvid.fr>";
-  jyp = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";
   jraygauthier = "Raymond Gauthier <jraygauthier@gmail.com>";
   jtojnar = "Jan Tojnar <jtojnar@gmail.com>";
   juliendehos = "Julien Dehos <dehos@lisic.univ-littoral.fr>";
   jwiegley = "John Wiegley <johnw@newartisans.com>";
   jwilberding = "Jordan Wilberding <jwilberding@afiniate.com>";
+  jyp = "Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>";
   jzellner = "Jeff Zellner <jeffz@eml.cc>";
   kaiha = "Kai Harries <kai.harries@gmail.com>";
   kamilchm = "Kamil Chmielewski <kamil.chm@gmail.com>";
@@ -335,6 +335,7 @@
   lovek323 = "Jason O'Conal <jason@oconal.id.au>";
   lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
   lsix = "Lancelot SIX <lsix@lancelotsix.com>";
+  ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>";
   lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
   ludo = "Ludovic Courtès <ludo@gnu.org>";
   lufia = "Kyohei Kadota <lufia@lufia.org>";
@@ -580,10 +581,9 @@
   taku0 = "Takuo Yonezawa <mxxouy6x3m_github@tatapa.org>";
   tari = "Peter Marheine <peter@taricorp.net>";
   tavyc = "Octavian Cerna <octavian.cerna@gmail.com>";
-  ltavard = "Laure Tavard <laure.tavard@univ-grenoble-alpes.fr>";
   teh = "Tom Hunger <tehunger@gmail.com>";
-  teto = "Matthieu Coudron <mcoudron@hotmail.com>";
   telotortium = "Robert Irelan <rirelan@gmail.com>";
+  teto = "Matthieu Coudron <mcoudron@hotmail.com>";
   thall = "Niclas Thall <niclas.thall@gmail.com>";
   thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
   the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
@@ -612,6 +612,7 @@
   #urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>"; inactive since 2012
   uwap = "uwap <me@uwap.name>";
   vaibhavsagar = "Vaibhav Sagar <vaibhavsagar@gmail.com>";
+  valeriangalliat = "Valérian Galliat <val@codejam.info>";
   vandenoever = "Jos van den Oever <jos@vandenoever.info>";
   vanschelven = "Klaas van Schelven <klaas@vanschelven.com>";
   vanzef = "Ivan Solyankin <vanzef@gmail.com>";
@@ -628,7 +629,6 @@
   vlstill = "Vladimír Štill <xstill@fi.muni.cz>";
   vmandela = "Venkateswara Rao Mandela <venkat.mandela@gmail.com>";
   vmchale = "Vanessa McHale <tmchale@wisc.edu>";
-  valeriangalliat = "Valérian Galliat <val@codejam.info>";
   volhovm = "Mikhail Volkhov <volhovm.cs@gmail.com>";
   volth = "Jaroslavas Pocepko <jaroslavas@volth.com>";
   vozz = "Oliver Hunt <oliver.huntuk@gmail.com>";

From d1aed97aa03cb1e28096a78a4dd90d0e56bdf9aa Mon Sep 17 00:00:00 2001
From: Roberto Di Remigio <roberto.diremigio@gmail.com>
Date: Mon, 25 Sep 2017 14:50:51 +0100
Subject: [PATCH 346/533] maintainers.nix: add robertodr

---
 lib/maintainers.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 2d33a34a5630..ebbb801d590d 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -508,6 +508,7 @@
   robberer = "Longrin Wischnewski <robberer@freakmail.de>";
   robbinch = "Robbin C. <robbinch33@gmail.com>";
   roberth = "Robert Hensing <nixpkgs@roberthensing.nl>";
+  robertodr = "Roberto Di Remigio <roberto.diremigio@gmail.com>";
   robgssp = "Rob Glossop <robgssp@gmail.com>";
   roblabla = "Robin Lambertz <robinlambertz+dev@gmail.com>";
   roconnor = "Russell O'Connor <roconnor@theorem.ca>";

From 932bd985105a535d4f142449620a7df0f5a1de1b Mon Sep 17 00:00:00 2001
From: Roberto Di Remigio <roberto.diremigio@gmail.com>
Date: Mon, 25 Sep 2017 14:51:16 +0100
Subject: [PATCH 347/533] watson-ruby: init at 1.6.3

---
 .../development/tools/misc/watson-ruby/Gemfile |  2 ++
 .../tools/misc/watson-ruby/Gemfile.lock        | 15 +++++++++++++++
 .../tools/misc/watson-ruby/default.nix         | 18 ++++++++++++++++++
 .../tools/misc/watson-ruby/gemset.nix          | 18 ++++++++++++++++++
 pkgs/top-level/all-packages.nix                |  2 ++
 5 files changed, 55 insertions(+)
 create mode 100644 pkgs/development/tools/misc/watson-ruby/Gemfile
 create mode 100644 pkgs/development/tools/misc/watson-ruby/Gemfile.lock
 create mode 100644 pkgs/development/tools/misc/watson-ruby/default.nix
 create mode 100644 pkgs/development/tools/misc/watson-ruby/gemset.nix

diff --git a/pkgs/development/tools/misc/watson-ruby/Gemfile b/pkgs/development/tools/misc/watson-ruby/Gemfile
new file mode 100644
index 000000000000..fc739389e84e
--- /dev/null
+++ b/pkgs/development/tools/misc/watson-ruby/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'watson-ruby'
diff --git a/pkgs/development/tools/misc/watson-ruby/Gemfile.lock b/pkgs/development/tools/misc/watson-ruby/Gemfile.lock
new file mode 100644
index 000000000000..fa157d794f73
--- /dev/null
+++ b/pkgs/development/tools/misc/watson-ruby/Gemfile.lock
@@ -0,0 +1,15 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    json (2.1.0)
+    watson-ruby (1.6.3)
+      json
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  watson-ruby
+
+BUNDLED WITH
+   1.14.4
diff --git a/pkgs/development/tools/misc/watson-ruby/default.nix b/pkgs/development/tools/misc/watson-ruby/default.nix
new file mode 100644
index 000000000000..860358354540
--- /dev/null
+++ b/pkgs/development/tools/misc/watson-ruby/default.nix
@@ -0,0 +1,18 @@
+{ lib, bundlerEnv, ruby }:
+
+bundlerEnv rec {
+  name = "watson-ruby-${version}";
+
+  version = (import ./gemset.nix).watson-ruby.version;
+  inherit ruby;
+  # expects Gemfile, Gemfile.lock and gemset.nix in the same directory
+  gemdir = ./.;
+
+  meta = with lib; {
+    description = "An inline issue manager";
+    homepage    = http://goosecode.com/watson/;
+    license     = with licenses; mit;
+    maintainers = with maintainers; [ robertodr ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/misc/watson-ruby/gemset.nix b/pkgs/development/tools/misc/watson-ruby/gemset.nix
new file mode 100644
index 000000000000..a3bb144899c7
--- /dev/null
+++ b/pkgs/development/tools/misc/watson-ruby/gemset.nix
@@ -0,0 +1,18 @@
+{
+  json = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  watson-ruby = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d5m29nr0i030q8ygmbapwri5ndcg2q6lf8a15bk79lfcp9xyj9w";
+      type = "gem";
+    };
+    version = "1.6.3";
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2ba0c3add19a..e13a15d1b01d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -7574,6 +7574,8 @@ with pkgs;
     pythonPackages = python3Packages;
   };
 
+  watson-ruby = callPackage ../development/tools/misc/watson-ruby {};
+
   xc3sprog = callPackage ../development/tools/misc/xc3sprog { };
 
   xcbuild  = callPackage ../development/tools/xcbuild/wrapper.nix {

From b790a31204e8fad49d95637ce298f2dcef1f2f67 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Mon, 25 Sep 2017 14:32:27 +0200
Subject: [PATCH 348/533] kdoctools: Move bin stuff to the "out" output

In particular, this moves share/kf5 to the "out" output. This prevents
kdelibs4support from pulling kdoctools.dev into its closure (via
share/kf5/kdoctools/customization/dtd/kdex.dtd, which references
${kdoctools}/share/kf5).

This reduces the closure size of kdelibs4support by 156 MiB.
---
 .../development/libraries/kde-frameworks/kdoctools/default.nix | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
index 55d719e8d8c0..661e89e30782 100644
--- a/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdoctools/default.nix
@@ -14,9 +14,6 @@ mkDerivation {
   propagatedBuildInputs = [ qtbase ];
   outputs = [ "out" "dev" ];
   patches = [ ./kdoctools-no-find-docbook-xml.patch ];
-  preConfigure = ''
-    outputBin=dev
-  '';
   cmakeFlags = [
     "-DDocBookXML4_DTD_DIR=${docbook_xml_dtd_45}/xml/dtd/docbook"
     "-DDocBookXSL_DIR=${docbook5_xsl}/xml/xsl/docbook"

From b0280f598e4b3f6ebf33ad2115734e4735df443a Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Mon, 25 Sep 2017 15:24:28 +0200
Subject: [PATCH 349/533] postgresql: Add dev output

This reduces the closure size of postgresql.out by 72 MiB.
---
 pkgs/servers/sql/postgresql/default.nix | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 8a3097ae9dee..022ac15aee7b 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -11,7 +11,7 @@ let
       inherit sha256;
     };
 
-    outputs = [ "out" "lib" "doc" "man" ];
+    outputs = [ "out" "dev" "lib" "doc" "man" ];
     setOutputFlags = false; # $out retains configureFlags :-/
 
     buildInputs =
@@ -51,13 +51,11 @@ let
 
     postInstall =
       ''
-        moveToOutput "lib/pgxs" "$out" # looks strange, but not deleting it
+        moveToOutput "bin/pg_config" "$dev"
+        moveToOutput "lib/pgxs" "$dev" # looks strange, but not deleting it
         moveToOutput "lib/*.a" "$out"
         moveToOutput "lib/libecpg*" "$out"
 
-        # Prevent a retained dependency on gcc-wrapper.
-        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv.cc}/bin/ld ld
-
         # Remove static libraries in case dynamic are available.
         for i in $out/lib/*.a; do
           name="$(basename "$i")"

From 60aaced9a0de31c3dd408732c1a848f5e096e5c0 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Mon, 25 Sep 2017 15:40:41 +0200
Subject: [PATCH 350/533] Add some dev outputs

---
 pkgs/applications/kde/dolphin-plugins.nix                | 1 +
 pkgs/applications/kde/filelight.nix                      | 1 +
 pkgs/applications/kde/print-manager.nix                  | 1 +
 pkgs/desktops/plasma-5/polkit-kde-agent.nix              | 1 +
 pkgs/development/libraries/webkitgtk/2.16.nix            | 2 ++
 pkgs/development/libraries/webkitgtk/2.17.nix            | 2 ++
 pkgs/tools/networking/network-manager-applet/default.nix | 2 ++
 pkgs/tools/networking/openconnect/default.nix            | 8 +++-----
 8 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/kde/dolphin-plugins.nix b/pkgs/applications/kde/dolphin-plugins.nix
index eb823641ae44..5580952f40a0 100644
--- a/pkgs/applications/kde/dolphin-plugins.nix
+++ b/pkgs/applications/kde/dolphin-plugins.nix
@@ -14,4 +14,5 @@ mkDerivation {
   propagatedBuildInputs = [
     dolphin kdelibs4support ki18n kio kxmlgui
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/filelight.nix b/pkgs/applications/kde/filelight.nix
index 6eb219d8da96..a3be5be7f0a2 100644
--- a/pkgs/applications/kde/filelight.nix
+++ b/pkgs/applications/kde/filelight.nix
@@ -14,4 +14,5 @@ mkDerivation {
   propagatedBuildInputs = [
     kio kparts kxmlgui qtscript solid
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/print-manager.nix b/pkgs/applications/kde/print-manager.nix
index 085b53de0f39..8ace4562cbd7 100644
--- a/pkgs/applications/kde/print-manager.nix
+++ b/pkgs/applications/kde/print-manager.nix
@@ -19,4 +19,5 @@ mkDerivation {
     kconfig kconfigwidgets kdbusaddons kiconthemes kcmutils knotifications
     kwidgetsaddons kitemviews kio kwindowsystem plasma-framework qtdeclarative
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/desktops/plasma-5/polkit-kde-agent.nix b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
index bd3e5d6e1f4b..c25b3d2744b7 100644
--- a/pkgs/desktops/plasma-5/polkit-kde-agent.nix
+++ b/pkgs/desktops/plasma-5/polkit-kde-agent.nix
@@ -11,4 +11,5 @@ mkDerivation {
     kdbusaddons kwidgetsaddons kcoreaddons kcrash kconfig ki18n kiconthemes
     knotifications kwindowsystem polkit-qt
   ];
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/webkitgtk/2.16.nix b/pkgs/development/libraries/webkitgtk/2.16.nix
index 7d7424d914de..094c3596d4b7 100644
--- a/pkgs/development/libraries/webkitgtk/2.16.nix
+++ b/pkgs/development/libraries/webkitgtk/2.16.nix
@@ -101,4 +101,6 @@ stdenv.mkDerivation rec {
   ];
 
   enableParallelBuilding = true;
+
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/development/libraries/webkitgtk/2.17.nix b/pkgs/development/libraries/webkitgtk/2.17.nix
index 53718f696cb4..fc0e13436bc0 100644
--- a/pkgs/development/libraries/webkitgtk/2.17.nix
+++ b/pkgs/development/libraries/webkitgtk/2.17.nix
@@ -103,4 +103,6 @@ stdenv.mkDerivation rec {
   ];
 
   enableParallelBuilding = true;
+
+  outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index 35678061b672..c0c4950f4471 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
     "--without-selinux"
   ];
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [
     gnome3.gtk libglade networkmanager libnotify libsecret gsettings_desktop_schemas
     polkit isocodes makeWrapper udev libgudev gnome3.gconf gnome3.libgnome_keyring
diff --git a/pkgs/tools/networking/openconnect/default.nix b/pkgs/tools/networking/openconnect/default.nix
index 5e38aee7f833..4fccb107771a 100644
--- a/pkgs/tools/networking/openconnect/default.nix
+++ b/pkgs/tools/networking/openconnect/default.nix
@@ -1,10 +1,6 @@
 { stdenv, fetchurl, pkgconfig, vpnc, openssl ? null, gnutls ? null, gmp, libxml2, stoken, zlib } :
 
-let
-  xor = a: b: (a || b) && (!(a && b));
-in
-
-assert xor (openssl != null) (gnutls != null);
+assert (openssl != null) == (gnutls == null);
 
 stdenv.mkDerivation rec {
   name = "openconnect-7.08";
@@ -16,6 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "00wacb79l2c45f94gxs63b9z25wlciarasvjrb8jb8566wgyqi0w";
   };
 
+  outputs = [ "out" "dev" ];
+
   preConfigure = ''
       export PKG_CONFIG=${pkgconfig}/bin/pkg-config
       export LIBXML2_CFLAGS="-I ${libxml2.dev}/include/libxml2"

From 799c1218cd31e9d16d3ff36d5ab0208c26250944 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Mon, 25 Sep 2017 15:37:56 +0200
Subject: [PATCH 351/533] tor-browser-bundle-bin: default to dmix

To support multiple playback streams
---
 .../networking/browsers/tor-browser-bundle-bin/default.nix      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 28cc273c679c..29a73beeec8f 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -349,7 +349,7 @@ stdenv.mkDerivation rec {
       PULSE_SERVER="\''${PULSE_SERVER:-}" \
       PULSE_COOKIE="\''${PULSE_COOKIE:-}" \
       \
-      APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plughw:0,0}" \
+      APULSE_PLAYBACK_DEVICE="\''${APULSE_PLAYBACK_DEVICE:-plug:dmix}" \
       \
       TOR_SKIP_LAUNCH="\''${TOR_SKIP_LAUNCH:-}" \
       TOR_CONTROL_PORT="\''${TOR_CONTROL_PORT:-}" \

From 30c380556ca5959da6732db5ee13cfb7b28a8a5e Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Mon, 25 Sep 2017 15:20:53 +0100
Subject: [PATCH 352/533] libproxy: 0.4.13 -> 0.4.15

reduces closure size from ~200mb to ~100mb

fixes #29775
---
 .../libraries/libproxy/default.nix            | 20 ++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix
index c493dd678ad5..614890e929f7 100644
--- a/pkgs/development/libraries/libproxy/default.nix
+++ b/pkgs/development/libraries/libproxy/default.nix
@@ -1,28 +1,30 @@
 { stdenv, lib, fetchFromGitHub, pkgconfig, cmake
-, dbus, networkmanager, webkitgtk216x, pcre, python2 }:
+, dbus, networkmanager, spidermonkey_38, pcre, python2, python3 }:
 
 stdenv.mkDerivation rec {
   name = "libproxy-${version}";
-  version = "0.4.13";
+  version = "0.4.15";
 
   src = fetchFromGitHub {
     owner = "libproxy";
     repo = "libproxy";
     rev = version;
-    sha256 = "0yg4wr44ync6x3p107ic00m1l04xqhni9jn1vzvkw3nfjd0k6f92";
+    sha256 = "10swd3x576pinx33iwsbd4h15fbh2snmfxzcmab4c56nb08qlbrs";
   };
 
   outputs = [ "out" "dev" ]; # to deal with propagatedBuildInputs
 
   nativeBuildInputs = [ pkgconfig cmake ];
 
-  buildInputs = [ dbus networkmanager webkitgtk216x pcre ];
+  buildInputs = [ dbus networkmanager spidermonkey_38 pcre python2 python3 ];
 
-  cmakeFlags = [
-    "-DWITH_WEBKIT3=ON"
-    "-DWITH_MOZJS=OFF"
-    "-DPYTHON_SITEPKG_DIR=$(out)/${python2.sitePackages}"
-  ];
+  preConfigure = ''
+    cmakeFlagsArray+=(
+      "-DWITH_MOZJS=ON"
+      "-DPYTHON2_SITEPKG_DIR=$out/${python2.sitePackages}"
+      "-DPYTHON3_SITEPKG_DIR=$out/${python3.sitePackages}"
+    )
+  '';
 
   meta = with stdenv.lib; {
     platforms = platforms.linux;

From 407d8dac85e9a1901091955e078345ee9d5313c6 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Mon, 25 Sep 2017 15:49:14 +0100
Subject: [PATCH 353/533] watson-ruby: hide bundlerEnv to avoid collisions

bundlerEnv also comes with a bundle script and ruby libraries
---
 .../tools/misc/watson-ruby/default.nix        | 25 +++++++++++++------
 1 file changed, 18 insertions(+), 7 deletions(-)

diff --git a/pkgs/development/tools/misc/watson-ruby/default.nix b/pkgs/development/tools/misc/watson-ruby/default.nix
index 860358354540..32f94a1f2285 100644
--- a/pkgs/development/tools/misc/watson-ruby/default.nix
+++ b/pkgs/development/tools/misc/watson-ruby/default.nix
@@ -1,14 +1,25 @@
-{ lib, bundlerEnv, ruby }:
+{ stdenv, bundlerEnv, ruby }:
 
-bundlerEnv rec {
+
+stdenv.mkDerivation rec {
   name = "watson-ruby-${version}";
-
   version = (import ./gemset.nix).watson-ruby.version;
-  inherit ruby;
-  # expects Gemfile, Gemfile.lock and gemset.nix in the same directory
-  gemdir = ./.;
 
-  meta = with lib; {
+  env = bundlerEnv rec {
+    name = "watson-ruby-gems-${version}";
+    inherit ruby;
+    # expects Gemfile, Gemfile.lock and gemset.nix in the same directory
+    gemdir = ./.;
+  };
+
+  phases = [ "installPhase" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${env}/bin/watson $out/bin/watson
+  '';
+
+  meta = with stdenv.lib; {
     description = "An inline issue manager";
     homepage    = http://goosecode.com/watson/;
     license     = with licenses; mit;

From 0ef6f5f22ea97a187aaf6d5aaecebe27527adfbb Mon Sep 17 00:00:00 2001
From: Frank Doepper <woffs@woffs.de>
Date: Sat, 23 Sep 2017 16:24:34 +0200
Subject: [PATCH 354/533] youtube-viewer: init at 3.3.0

---
 pkgs/top-level/all-packages.nix  |  2 ++
 pkgs/top-level/perl-packages.nix | 26 ++++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8fcf0f8fedea..308499944a8d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -17239,6 +17239,8 @@ with pkgs;
 
   inherit (pythonPackages) youtube-dl;
 
+  youtube-viewer = perlPackages.WWWYoutubeViewer;
+
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
 
   zanshin = libsForQt5.callPackage ../applications/office/zanshin {
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 14c00504d40a..d8c69ae44e9b 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -15580,6 +15580,32 @@ let self = _self // overrides; _self = with self; {
     };
   };
 
+  WWWYoutubeViewer = buildPerlPackage rec {
+    name = "WWW-YoutubeViewer-${version}";
+    version = "3.3.0";
+
+    src = fetchFromGitHub {
+      owner  = "trizen";
+      repo   = "youtube-viewer";
+      rev    = "${version}";
+      sha256 = "15xyrwv08fw8jmpydwzks26ipxnzliwddgyjcfqiaj0p7lwlhmx1";
+    };
+
+    propagatedBuildInputs = [
+      LWP
+      LWPProtocolHttps
+      DataDump
+      JSON
+    ];
+
+    meta = {
+      description = "A lightweight application for searching and streaming videos from YouTube";
+      homepage = https://github.com/trizen/youtube-viewer;
+      maintainers = with maintainers; [ woffs ];
+      license = with stdenv.lib.licenses; [ artistic2 ];
+    };
+  };
+
   Want = buildPerlPackage rec {
     name = "Want-0.29";
     src = fetchurl {

From cf599d3f991d23b37dc3783f2b2539c8c0dc064f Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Mon, 25 Sep 2017 19:10:21 +0200
Subject: [PATCH 355/533] emacs: Clear the environment while dumping

This reduces the closure size of Emacs from 575 to 279 MiB. Dumping
Emacs had a chance of leaking parts of the environment (such as $PATH)
into the dumped executable. This hopefully fixes it. (It's a bit hard
to tell since the effect is not deterministic.)
---
 pkgs/applications/editors/emacs/clean-env.patch | 15 +++++++++++++++
 pkgs/applications/editors/emacs/default.nix     |  6 +++++-
 2 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 pkgs/applications/editors/emacs/clean-env.patch

diff --git a/pkgs/applications/editors/emacs/clean-env.patch b/pkgs/applications/editors/emacs/clean-env.patch
new file mode 100644
index 000000000000..f80efeeef706
--- /dev/null
+++ b/pkgs/applications/editors/emacs/clean-env.patch
@@ -0,0 +1,15 @@
+Dump temacs in an empty environment to prevent -dev paths from ending
+up in the dumped image.
+
+diff -ru -x '*~' emacs-25.3/src/Makefile.in emacs-25.3-new/src/Makefile.in
+--- emacs-25.3/src/Makefile.in	2017-04-14 17:02:47.000000000 +0200
++++ emacs-25.3-new/src/Makefile.in	2017-09-25 19:03:02.173861038 +0200
+@@ -532,7 +532,7 @@
+ ifeq ($(CANNOT_DUMP),yes)
+ 	ln -f temacs$(EXEEXT) $@
+ else
+-	LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
++	env -i LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
+   ifneq ($(PAXCTL_dumped),)
+ 	$(PAXCTL_dumped) $@
+   endif
diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix
index a00826b98214..af3298a5883e 100644
--- a/pkgs/applications/editors/emacs/default.nix
+++ b/pkgs/applications/editors/emacs/default.nix
@@ -34,7 +34,11 @@ stdenv.mkDerivation rec {
     sha256 = "02y00y9q42g1iqgz5qhmsja75hwxd88yrn9zp14lanay0zkwafi5";
   };
 
-  patches = (lib.optional stdenv.isDarwin ./at-fdcwd.patch);
+  enableParallelBuilding = true;
+
+  patches =
+    [ ./clean-env.patch ]
+    ++ lib.optional stdenv.isDarwin ./at-fdcwd.patch;
 
   nativeBuildInputs = [ pkgconfig ]
     ++ lib.optionals srcRepo [ autoconf automake texinfo ]

From 8ccce8de891923b40b897c11f9a494c6b3722a58 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Mon, 25 Sep 2017 19:49:21 +0200
Subject: [PATCH 356/533] Add more dev outputs

---
 pkgs/desktops/gnome-2/platform/libbonoboui/default.nix | 2 ++
 pkgs/desktops/gnome-2/platform/libgnomeui/default.nix  | 2 ++
 pkgs/development/libraries/xmlsec/default.nix          | 8 ++++++++
 3 files changed, 12 insertions(+)

diff --git a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
index efdc28aac424..a71d6eb789ba 100644
--- a/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libbonoboui/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     sha256 = "1kbgqh7bw0fdx4f1a1aqwpff7gp5mwhbaz60c6c98bc4djng5dgs";
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs = [ bison popt gtk libxml2 GConf libglade libtool ];
   propagatedBuildInputs = [ libbonobo libgnomecanvas libgnome ];
diff --git a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index 961fb1c0a199..d30c38a2cfc4 100644
--- a/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "03rwbli76crkjl6gp422wrc9lqpl174k56cp9i96b7l8jlj2yddf";
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pkgconfig intltool ];
   buildInputs =
     [ xorg.xlibsWrapper libxml2 GConf pango glib libgnome_keyring libglade libtool ];
diff --git a/pkgs/development/libraries/xmlsec/default.nix b/pkgs/development/libraries/xmlsec/default.nix
index c64970f8f86e..c55a3020b442 100644
--- a/pkgs/development/libraries/xmlsec/default.nix
+++ b/pkgs/development/libraries/xmlsec/default.nix
@@ -12,7 +12,10 @@ stdenv.mkDerivation rec {
     sha256 = "1lpwj8dxwhha54sby0v5axjk79h56jnhjjiwiasbbk15vwzahz4n";
   };
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [ makeWrapper libxml2 gnutls libxslt pkgconfig libgcrypt libtool openssl nss ];
+
   enableParallelBuilding = true;
   doCheck = true;
 
@@ -23,6 +26,11 @@ stdenv.mkDerivation rec {
   # otherwise libxmlsec1-gnutls.so won't find libgcrypt.so, after #909
   NIX_LDFLAGS = [ "-lgcrypt" ];
 
+  postInstall = ''
+    moveToOutput "bin/xmlsec1-config" "$dev"
+    moveToOutput "lib/xmlsec1Conf.sh" "$dev"
+  '';
+
   postFixup = ''
     wrapProgram "$out/bin/xmlsec1" --prefix LD_LIBRARY_PATH ":" "$out/lib"
   '';

From 846070e028a6ce6213dc4af3477dc67d73ec3364 Mon Sep 17 00:00:00 2001
From: Andreas Rammhold <andreas@rammhold.de>
Date: Fri, 22 Sep 2017 23:37:54 +0200
Subject: [PATCH 357/533] networking.wireguard: added `allowedIpsAsRoutes`
 boolean to control peer routes

Sometimes (especially in the default route case) it is required to NOT
add routes for all allowed IP ranges. One might run it's own custom
routing on-top of wireguard and only use the wireguard addresses to
exchange prefixes with the remote host.
---
 nixos/modules/services/networking/wireguard.nix | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 4f54b45639f6..27ca0bcc5747 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -95,6 +95,14 @@ let
         type = with types; listOf (submodule peerOpts);
       };
 
+      allowedIPsAsRoutes = mkOption {
+        example = false;
+        default = true;
+        type = types.bool;
+        description = ''
+          Determines whether to add allowed IPs as routes or not.
+        '';
+      };
     };
 
   };
@@ -217,11 +225,11 @@ let
 
             "${ipCommand} link set up dev ${name}"
 
-            (map (peer:
+            (lib.optional (values.allowedIPsAsRoutes != false) (map (peer:
             (map (allowedIP:
             "${ipCommand} route replace ${allowedIP} dev ${name} table ${values.table}"
             ) peer.allowedIPs)
-            ) values.peers)
+            ) values.peers))
 
             values.postSetup
           ]);

From 01d53df77f26d0e87fea568c612f3aec8280a266 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com>
Date: Mon, 11 Sep 2017 11:23:40 +0200
Subject: [PATCH 358/533] pythonPackages.tensorflow 1.1 -> 1.3

---
 .../python-modules/tensorflow/default.nix     | 58 ++++++++-----------
 pkgs/top-level/python-packages.nix            |  2 +-
 2 files changed, 26 insertions(+), 34 deletions(-)

diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 5019f17f788a..e1cde4d7403b 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , fetchurl
 , buildPythonPackage
-, isPy36, isPy35, isPy27
+, isPy36, isPy27
 , cudaSupport ? false
 , cudatoolkit ? null
 , cudnn ? null
@@ -9,9 +9,8 @@
 , numpy
 , six
 , protobuf
-, swig
-, werkzeug
 , mock
+, backports_weakref
 , zlib
 }:
 
@@ -29,10 +28,10 @@ assert ! (stdenv.isDarwin && cudaSupport);
 
 buildPythonPackage rec {
   pname = "tensorflow";
-  version = "1.1.0";
+  version = "1.3.0";
   name = "${pname}-${version}";
   format = "wheel";
-  disabled = ! (isPy36 || isPy35 || isPy27);
+  disabled = ! (isPy36 || isPy27);
 
   src = let
       tfurl = sys: proc: pykind:
@@ -47,59 +46,45 @@ buildPythonPackage rec {
         darwin.cpu = {
           py2 = {
             url = tfurl "mac" "cpu" "py2-none-any" ;
-            sha256 = "1fgf26lw0liqxc9pywc8y2mj8l1mv48nhkav0pag9vavdacb9mqr";
+            sha256 = "0nkymqbqjx8rsmc8vkc26cfsg4hpr6lj9zrwhjnfizvkzbbsh5z4";
           };
           py3 = {
             url = tfurl "mac" "cpu" "py3-none-any" ;
-            sha256 = "0z5p1fra7bih0vqn618i2w3vyy8d1rkc72k7bmjq0rw8msl717ia";
+            sha256 = "1rj4m817w3lajnb1lgn3bwfwwk3qwvypyx11dim1ybakbmsc1j20";
           };
         };
         linux-x86_64.cpu = {
           py2 = {
             url = tfurl "linux" "cpu" "cp27-none-linux_x86_64";
-            sha256 = "0ld3hqx3idxk0zcrvn3p9yqnmx09zsj3mw66jlfw6fkv5hznx8j2";
+            sha256 = "09pcyx0yfil4dm6cij8n3907pfgva07a38avrbai4qk5h6hxm8w9";
           };
-          py35 = {
-            url = tfurl "linux" "cpu" "cp35-cp35m-linux_x86_64";
-            sha256 = "0ahz9222rzqrk43lb9w4m351klkm6mlnnvw8xfqip28vbmymw90b";
-          };
-          py36 = {
+          py3 = {
             url = tfurl "linux" "cpu" "cp36-cp36m-linux_x86_64";
-            sha256 = "1a2cc8ihl94iqff76nxg6bq85vfb7sj5cvvi9sxy2f43k32fi4lv";
+            sha256 = "1qm8lm2f6bf9d462ybgwrz0dn9i6cnisgwdvyq9ssmy2f1gp8hxk";
           };
-
         };
         linux-x86_64.cuda = {
           py2 = {
             url = tfurl "linux" "gpu" "cp27-none-linux_x86_64";
-            sha256 = "1baa9jwr6f8f62dyx6isbw8yyrd0pi1dz1srjblfqsyk1x3pnfvh";
+            sha256 = "10yyyn4g2fsv1xgmw99bbr0fg7jvykay4gb5pxrrylh7h38h6wah";
           };
-          py35 = {
-            url = tfurl "linux" "gpu" "cp35-cp35m-linux_x86_64";
-            sha256 = "0606m2awy0ifhniy8lsyhd0xc388dgrwksn87989xlgy90wpxi92";
-          };
-          py36 = {
+          py3 = {
             url = tfurl "linux" "gpu" "cp36-cp36m-linux_x86_64";
-            sha256 = "0lvbmfa87qzrajadpsf13gi3l71vryzkryzqfvkykivqrdjsvj8q";
+            sha256 = "12g3akkr083gs3sisjbmm0lpsk8phn3dvy7jjfadfxshqc7za14i";
           };
-
         };
       };
     in
     fetchurl (
       if stdenv.isDarwin then
-        if isPy27 then
-          dls.darwin.cpu.py2
-        else
+        if isPy36 then
           dls.darwin.cpu.py3
+        else
+          dls.darwin.cpu.py2
       else if isPy36 then
         if cudaSupport then
-          dls.linux-x86_64.cuda.py36
-        else dls.linux-x86_64.cpu.py36
-      else if isPy35 then
-        if cudaSupport then
-          dls.linux-x86_64.cuda.py35
-        else dls.linux-x86_64.cpu.py35
+          dls.linux-x86_64.cuda.py3
+        else dls.linux-x86_64.cpu.py3
       else
         if cudaSupport then
           dls.linux-x86_64.cuda.py2
@@ -108,9 +93,16 @@ buildPythonPackage rec {
     );
 
   propagatedBuildInputs = with stdenv.lib;
-    [ numpy six protobuf swig werkzeug mock ]
+    [ numpy six protobuf mock ]
     ++ optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ];
 
+  installFlags = "--no-dependencies";
+  # tensorflow-gpu depends on tensorflow_tensorboard, which cannot be
+  # built at the moment (some of its dependencies do not build
+  # [htlm5lib9999999 (seven nines) -> tensorboard], and it depends on an old version of
+  # bleach) Hence we disable dependency checking for now.
+
+
   # Note that we need to run *after* the fixup phase because the
   # libraries are loaded at runtime. If we run in preFixup then
   # patchelf --shrink-rpath will remove the cuda libraries.
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1af49ba3da38..5c68efa56fb6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -26057,7 +26057,7 @@ EOF
   tensorflowWithCuda = callPackage ../development/python-modules/tensorflow {
     cudaSupport = true;
     cudatoolkit = pkgs.cudatoolkit8;
-    cudnn = pkgs.cudnn51_cudatoolkit80;
+    cudnn = pkgs.cudnn60_cudatoolkit80;
   };
 
   tflearn = buildPythonPackage rec {

From 3353de310dc18b468ca2483cd2ba275bb70d3f53 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Tue, 5 Sep 2017 22:48:21 +0300
Subject: [PATCH 359/533] Revert "pythonPkgs.html5lib_0_9999999: remove"

This reverts commit 0b2f9d1ce12d49439472045df8da3acadacc6fea.

Needed as a transitive dependency for tensorflow-tensorboard.

Mark as broken on Python 3.6
---
 pkgs/top-level/python-packages.nix | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5c68efa56fb6..f4159f166c5a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1944,6 +1944,23 @@ in {
 
   blaze = callPackage ../development/python-modules/blaze { };
 
+  # Needed for bleach 1.5.0
+  html5lib_0_9999999 = self.html5lib.overridePythonAttrs rec {
+    name = "html5lib-${version}";
+    disabled = isPy3k && pythonAtLeast "3.6";
+    buildInputs = with self; [ nose flake8 ];
+    propagatedBuildInputs = with self; [ six ];
+    checkPhase = ''
+      nosetests
+    '';
+
+    version = "0.9999999";
+    src = pkgs.fetchurl {
+      url = "https://github.com/html5lib/html5lib-python/archive/0.9999999.tar.gz";
+      sha256 = "1s6wdbrjzw5jhyfbskf4nj1i5bjpjqq9f89a7r1rl59rhpwmfhhq";
+    };
+  };
+
   html5-parser = callPackage ../development/python-modules/html5-parser {};
 
   httpserver = callPackage ../development/python-modules/httpserver {};
@@ -16808,7 +16825,7 @@ in {
     };
 
     disabled = !isPy3k;
-
+    
     # No tests in archive
     doCheck = false;
 

From c27dd88d804386e19b4e1003b97a97c784dbf7b2 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Tue, 5 Sep 2017 18:11:54 +0300
Subject: [PATCH 360/533] python.pkgs.bleach1_5_0: init at 1.5.0

---
 pkgs/top-level/python-packages.nix | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f4159f166c5a..5c9e5a1e59ec 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1998,6 +1998,24 @@ in {
     };
   };
 
+  # needed for tensorflow-tensorboard
+  bleach_1_5_0 = self.bleach.overridePythonAttrs rec {
+    version = "1.5.0";
+    pname = "bleach";
+    name = "${pname}-${version}";
+
+    propagatedBuildInputs = with self; [ six html5lib_0_9999999 ];
+
+    preCheck = ''
+      sed -i 's,pytest==[0-9.]*,pytest,' setup.py
+    '';
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0rdwb3piwwl30wfqg4ywm07276w7090xfq71lb5d6k5mk62pb3lp";
+    };
+  };
+
   blinker = buildPythonPackage rec {
     name = "blinker-${version}";
     version = "1.4";

From 3d11dc7ca26eecadf3f4720bff9c1a52e8bb7586 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Tue, 5 Sep 2017 18:12:59 +0300
Subject: [PATCH 361/533] python.pkgs.tensorflow-tensorboard: init at 0.1.5

---
 .../tensorflow-tensorboard/default.nix        | 43 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 +
 2 files changed, 45 insertions(+)
 create mode 100644 pkgs/development/python-modules/tensorflow-tensorboard/default.nix

diff --git a/pkgs/development/python-modules/tensorflow-tensorboard/default.nix b/pkgs/development/python-modules/tensorflow-tensorboard/default.nix
new file mode 100644
index 000000000000..9f48b8fb971a
--- /dev/null
+++ b/pkgs/development/python-modules/tensorflow-tensorboard/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, isPy3k
+, bleach_1_5_0
+, numpy
+, werkzeug
+, protobuf
+, markdown
+}:
+
+# tensorflow is built from a downloaded wheel, because the upstream
+# project's build system is an arcane beast based on
+# bazel. Untangling it and building the wheel from source is an open
+# problem.
+
+buildPythonPackage rec {
+  pname = "tensorflow-tensorboard";
+  version = "0.1.5";
+  name = "${pname}-${version}";
+  format = "wheel";
+
+  src = fetchPypi ({
+    pname = "tensorflow_tensorboard";
+    inherit version;
+    format = "wheel";
+  } // (if isPy3k then {
+    python = "py3";
+    sha256 = "0sfia05y1mzgy371faj96vgzhag1rgpa3gnbz9w1fay13jryw26x";
+  } else {
+    python = "py2";
+    sha256 = "0qx4f55zp54x079kxir4zz5b1ckiglsdcb9afz5wcdj6af4a6czg";
+  }));
+
+  propagatedBuildInputs = [ bleach_1_5_0 numpy werkzeug protobuf markdown ];
+
+  meta = with stdenv.lib; {
+    description = "TensorFlow helps the tensors flow";
+    homepage = http://tensorflow.org;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ abbradar ];
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 5c9e5a1e59ec..78394e5e88fa 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -26085,6 +26085,8 @@ EOF
     };
   };
 
+  tensorflow-tensorboard = callPackage ../development/python-modules/tensorflow-tensorboard { };
+
   tensorflow = self.tensorflowWithoutCuda;
 
   tensorflowWithoutCuda = callPackage ../development/python-modules/tensorflow { };

From 864643ba276ccd0af80f846e81d4f9be79ba9a81 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sat, 16 Sep 2017 18:00:48 +0300
Subject: [PATCH 362/533] tensorflow: support Python 3.5, fix dependencies

TensorBoard on Python 3 only works with 3.5.
---
 .../python-modules/tensorflow/default.nix     | 51 ++++++++++++-------
 1 file changed, 34 insertions(+), 17 deletions(-)

diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index e1cde4d7403b..ab604c173004 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,7 +1,8 @@
 { stdenv
+, lib
 , fetchurl
 , buildPythonPackage
-, isPy36, isPy27
+, isPy3k, isPy35, isPy36, isPy27
 , cudaSupport ? false
 , cudatoolkit ? null
 , cudnn ? null
@@ -12,6 +13,7 @@
 , mock
 , backports_weakref
 , zlib
+, tensorflow-tensorboard
 }:
 
 assert cudaSupport -> cudatoolkit != null
@@ -31,7 +33,7 @@ buildPythonPackage rec {
   version = "1.3.0";
   name = "${pname}-${version}";
   format = "wheel";
-  disabled = ! (isPy36 || isPy27);
+  disabled = ! (isPy35 || isPy36 || isPy27);
 
   src = let
       tfurl = sys: proc: pykind:
@@ -58,7 +60,11 @@ buildPythonPackage rec {
             url = tfurl "linux" "cpu" "cp27-none-linux_x86_64";
             sha256 = "09pcyx0yfil4dm6cij8n3907pfgva07a38avrbai4qk5h6hxm8w9";
           };
-          py3 = {
+          py35 = {
+            url = tfurl "linux" "cpu" "cp35-cp35m-linux_x86_64";
+            sha256 = "0p10zcf41pi33bi025fibqkq9rpd3v0rrbdmc9i9yd7igy076a07";
+          };
+          py36 = {
             url = tfurl "linux" "cpu" "cp36-cp36m-linux_x86_64";
             sha256 = "1qm8lm2f6bf9d462ybgwrz0dn9i6cnisgwdvyq9ssmy2f1gp8hxk";
           };
@@ -68,7 +74,11 @@ buildPythonPackage rec {
             url = tfurl "linux" "gpu" "cp27-none-linux_x86_64";
             sha256 = "10yyyn4g2fsv1xgmw99bbr0fg7jvykay4gb5pxrrylh7h38h6wah";
           };
-          py3 = {
+          py35 = {
+            url = tfurl "linux" "gpu" "cp35-cp35m-linux_x86_64";
+            sha256 = "0icwnhkcf3fxr6bmbihqzipnn4pxybd06qv7l3k0p4xdgycwzmzk";
+          };
+          py36 = {
             url = tfurl "linux" "gpu" "cp36-cp36m-linux_x86_64";
             sha256 = "12g3akkr083gs3sisjbmm0lpsk8phn3dvy7jjfadfxshqc7za14i";
           };
@@ -77,31 +87,38 @@ buildPythonPackage rec {
     in
     fetchurl (
       if stdenv.isDarwin then
-        if isPy36 then
+        if isPy3k then
           dls.darwin.cpu.py3
         else
           dls.darwin.cpu.py2
-      else if isPy36 then
-        if cudaSupport then
-          dls.linux-x86_64.cuda.py3
-        else dls.linux-x86_64.cpu.py3
       else
-        if cudaSupport then
-          dls.linux-x86_64.cuda.py2
+        if isPy35 then
+          if cudaSupport then
+            dls.linux-x86_64.cuda.py35
+          else
+            dls.linux-x86_64.cpu.py35
+        else if isPy36 then
+          if cudaSupport then
+            dls.linux-x86_64.cuda.py36
+          else
+            dls.linux-x86_64.cpu.py36
         else
-          dls.linux-x86_64.cpu.py2
+          if cudaSupport then
+            dls.linux-x86_64.cuda.py2
+          else
+            dls.linux-x86_64.cpu.py2
     );
 
-  propagatedBuildInputs = with stdenv.lib;
-    [ numpy six protobuf mock ]
-    ++ optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ];
+  propagatedBuildInputs =
+    [ numpy six protobuf mock backports_weakref ]
+    ++ lib.optional (!isPy36) tensorflow-tensorboard
+    ++ lib.optionals cudaSupport [ cudatoolkit cudnn stdenv.cc ];
 
-  installFlags = "--no-dependencies";
   # tensorflow-gpu depends on tensorflow_tensorboard, which cannot be
   # built at the moment (some of its dependencies do not build
   # [htlm5lib9999999 (seven nines) -> tensorboard], and it depends on an old version of
   # bleach) Hence we disable dependency checking for now.
-
+  installFlags = lib.optional isPy36 "--no-dependencies";
 
   # Note that we need to run *after* the fixup phase because the
   # libraries are loaded at runtime. If we run in preFixup then

From 74c3cdd893dd8d22875e713cde8bc0c12162787d Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sat, 16 Sep 2017 18:07:49 +0300
Subject: [PATCH 363/533] python.buildEnv: add extraOutputsToInstall attribute

---
 pkgs/development/interpreters/python/wrapper.nix | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/interpreters/python/wrapper.nix b/pkgs/development/interpreters/python/wrapper.nix
index 9f355ddefda7..f42caf92c170 100644
--- a/pkgs/development/interpreters/python/wrapper.nix
+++ b/pkgs/development/interpreters/python/wrapper.nix
@@ -1,5 +1,6 @@
 { stdenv, python, buildEnv, makeWrapper
 , extraLibs ? []
+, extraOutputsToInstall ? []
 , postBuild ? ""
 , ignoreCollisions ? false }:
 
@@ -12,7 +13,7 @@ let
     name = "${python.name}-env";
 
     inherit paths;
-    inherit ignoreCollisions;
+    inherit ignoreCollisions extraOutputsToInstall;
 
     postBuild = ''
       . "${makeWrapper}/nix-support/setup-hook"

From 194c4002b640b8f4023c05ecb6e932006bbea829 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Mon, 25 Sep 2017 20:39:37 +0100
Subject: [PATCH 364/533] wireguard: fix function for adding routes

---
 nixos/modules/services/networking/wireguard.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 27ca0bcc5747..eb08e7f90c0d 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -225,7 +225,7 @@ let
 
             "${ipCommand} link set up dev ${name}"
 
-            (lib.optional (values.allowedIPsAsRoutes != false) (map (peer:
+            (optionals (values.allowedIPsAsRoutes != false) (map (peer:
             (map (allowedIP:
             "${ipCommand} route replace ${allowedIP} dev ${name} table ${values.table}"
             ) peer.allowedIPs)

From 8d53efb19c0c9924afa5729340f29d9c6f23d6c0 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sun, 17 Sep 2017 08:20:30 +0300
Subject: [PATCH 365/533] google-compute-engine: 20170523 -> 20170914

---
 .../0001-allow-nologin-other-paths.patch      | 27 -------------------
 .../google-compute-engine/default.nix         | 19 +++++++------
 pkgs/top-level/all-packages.nix               |  2 +-
 pkgs/top-level/python-packages.nix            | 12 +--------
 4 files changed, 11 insertions(+), 49 deletions(-)
 delete mode 100644 pkgs/tools/virtualization/google-compute-engine/0001-allow-nologin-other-paths.patch

diff --git a/pkgs/tools/virtualization/google-compute-engine/0001-allow-nologin-other-paths.patch b/pkgs/tools/virtualization/google-compute-engine/0001-allow-nologin-other-paths.patch
deleted file mode 100644
index 650e80c24fbe..000000000000
--- a/pkgs/tools/virtualization/google-compute-engine/0001-allow-nologin-other-paths.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 2e9ac201af238b742c7032962b9b12a8b66bab0c Mon Sep 17 00:00:00 2001
-From: zimbatm <zimbatm@zimbatm.com>
-Date: Mon, 29 May 2017 22:36:15 +0100
-Subject: [PATCH] allow nologin on other paths
-
----
- google_compute_engine/accounts/accounts_utils.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/google_compute_engine/accounts/accounts_utils.py b/google_compute_engine/accounts/accounts_utils.py
-index 57e62be..d7eda06 100644
---- a/google_compute_engine/accounts/accounts_utils.py
-+++ b/google_compute_engine/accounts/accounts_utils.py
-@@ -295,8 +295,8 @@ class AccountsUtils(object):
-     # logins. This helps avoid problems caused by operator and root sharing
-     # a home directory in CentOS and RHEL.
-     pw_entry = self._GetUser(user)
--    if pw_entry and pw_entry.pw_shell == '/sbin/nologin':
--      message = 'Not updating user %s. User set /sbin/nologin as login shell.'
-+    if pw_entry and os.path.basename(pw_entry.pw_shell) == 'nologin':
-+      message = 'Not updating user %s. User set `nologin` as login shell.'
-       self.logger.debug(message, user)
-       return True
- 
--- 
-2.13.0
-
diff --git a/pkgs/tools/virtualization/google-compute-engine/default.nix b/pkgs/tools/virtualization/google-compute-engine/default.nix
index 7a5350fe2eb9..bd766d7c5a9f 100644
--- a/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -1,27 +1,26 @@
 { lib
 , fetchFromGitHub
-, pythonPackages
+, buildPythonApplication
 , bash
 , shadow
 , systemd
 , utillinux
+, boto
+, setuptools
 }:
-let
-  version = "20170523";
-in
-pythonPackages.buildPythonApplication {
+
+buildPythonApplication rec {
   name = "google-compute-engine-${version}";
+  version = "20170914";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "compute-image-packages";
     rev = version;
-    sha256 = "1qxyj3lj9in6m8yi6y6wcmc3662h9z4qax07v97rdnay99mxdv68";
+    sha256 = "0hlzcrf6yhzan25f4wzy1vbncak9whhqzrzza026ly3sq0smmjpg";
   };
 
-  patches = [ ./0001-allow-nologin-other-paths.patch ];
-
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
       substituteInPlace "$file" \
@@ -44,11 +43,11 @@ pythonPackages.buildPythonApplication {
     cp -r google_config/udev/*.rules $out/lib/udev/rules.d
   '';
 
-  propagatedBuildInputs = with pythonPackages; [ boto setuptools ];
+  propagatedBuildInputs = [ boto setuptools ];
 
   meta = with lib; {
     description = "Google Compute Engine tools and services";
-    homepage = https://github.com/GoogleCloudPlatform/compute-image-packages;
+    homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages";
     license = licenses.asl20;
     maintainers = with maintainers; [ zimbatm ];
   };
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 87e83839d1d3..4ed40d18c9f5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2305,7 +2305,7 @@ with pkgs;
 
   google-fonts = callPackage ../data/fonts/google-fonts { };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine {  };
+  google-compute-engine = python2.pkgs.google-compute-engine;
 
   gource = callPackage ../applications/version-management/gource { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 78394e5e88fa..d7c1fb1fb621 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5849,17 +5849,7 @@ in {
     };
   };
 
-  google-compute-engine = buildPythonPackage rec {
-    version = "2.3.0";
-    name    = "google-compute-engine-${version}";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/g/google-compute-engine/google-compute-engine-${version}.tar.gz";
-      sha256 = "1pjj95b3l61h8xz5kjfcgnql066cr8bq5wl480a6dxd2inw8mynf";
-    };
-
-    propagatedBuildInputs = with self; [ boto ];
-  };
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
   googlecl = buildPythonPackage rec {
     version = "0.9.14";

From 098c6825e0a343b66181950f49cd49bbb12ff3f2 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sun, 17 Sep 2017 09:11:46 +0300
Subject: [PATCH 366/533] blas: 3.5.0 -> 3.7.1

---
 .../libraries/science/math/blas/default.nix            | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/libraries/science/math/blas/default.nix b/pkgs/development/libraries/science/math/blas/default.nix
index e7c254359942..4455a9488c00 100644
--- a/pkgs/development/libraries/science/math/blas/default.nix
+++ b/pkgs/development/libraries/science/math/blas/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, gfortran }:
-let
-  version = "3.5.0";
-in
+
 stdenv.mkDerivation rec {
   name = "blas-${version}";
+  version = "3.7.1";
+
   src = fetchurl {
     url = "http://www.netlib.org/blas/${name}.tgz";
-    sha256 = "096a3apnh899abjymjjg8m34hncagkzp9qxw08cms98g71fpfzgg";
+    sha256 = "1hvmwp488hd6sdxdbmhjhmyrrd4s1ds1cjzh5d86l10b3wsm99n5";
   };
 
-  buildInputs = [gfortran];
+  buildInputs = [ gfortran ];
 
   configurePhase = ''
     echo >make.inc  "SHELL = ${stdenv.shell}"

From 67bbe467a46e8614b8cf469399f944c491a94e70 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sun, 17 Sep 2017 19:35:47 +0300
Subject: [PATCH 367/533] mxnet: disable GPU autodetection

---
 pkgs/applications/science/math/mxnet/default.nix | 9 +++++----
 pkgs/top-level/all-packages.nix                  | 4 +++-
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index 67183c9dd551..d2f3d0c5f337 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchgit, cmake
 , opencv, gtest, openblas, liblapack
-, cudaSupport ? false, cudatoolkit
+, cudaSupport ? false, cudatoolkit, nvidia_x11
 , cudnnSupport ? false, cudnn
 }:
 
@@ -20,11 +20,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ opencv gtest openblas liblapack ]
-              ++ lib.optional cudaSupport cudatoolkit
+              ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
               ++ lib.optional cudnnSupport cudnn;
 
-  cmakeFlags = lib.optional (!cudaSupport) "-DUSE_CUDA=OFF"
-            ++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
+  cmakeFlags = [
+    (if cudaSupport then "-DCUDA_ARCH_NAME=All" else "-DUSE_CUDA=OFF")
+  ] ++ lib.optional (!cudnnSupport) "-DUSE_CUDNN=OFF";
 
   installPhase = ''
     install -Dm755 libmxnet.so $out/lib/libmxnet.so
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4ed40d18c9f5..ffef24e0ff22 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18559,7 +18559,9 @@ with pkgs;
     sbcl = null;
   };
 
-  mxnet = callPackage ../applications/science/math/mxnet { };
+  mxnet = callPackage ../applications/science/math/mxnet {
+    inherit (linuxPackages) nvidia_x11;
+  };
 
   wxmaxima = callPackage ../applications/science/math/wxmaxima { wxGTK = wxGTK30; };
 

From b241bcf38881be764180c66fa9c713d0d44135c5 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Sun, 17 Sep 2017 08:21:02 +0300
Subject: [PATCH 368/533] google-cloud-sdk: 161.0.0 -> 171.0.0

---
 pkgs/tools/admin/google-cloud-sdk/default.nix | 34 ++++++++-----------
 pkgs/top-level/all-packages.nix               |  2 +-
 pkgs/top-level/python-packages.nix            |  2 ++
 3 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index d31f3023c969..f1165f6172b2 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -1,33 +1,33 @@
-{stdenv, fetchurl, python27, python27Packages, makeWrapper}:
-
-with python27Packages;
+{ stdenv, lib, fetchurl, python, cffi, cryptography, pyopenssl, crcmod, google-compute-engine, makeWrapper }:
 
 # other systems not supported yet
-assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux" || stdenv.system == "x86_64-darwin";
+let
+  pythonInputs = [ cffi cryptography pyopenssl crcmod google-compute-engine ];
+  pythonPath = lib.makeSearchPath python.sitePackages pythonInputs;
 
-stdenv.mkDerivation rec {
+in stdenv.mkDerivation rec {
   name = "google-cloud-sdk-${version}";
-  version = "161.0.0";
+  version = "171.0.0";
 
   src =
     if stdenv.system == "i686-linux" then
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86.tar.gz";
-        sha256 = "43a78a9d2c3ee9d9e50200b1e90512cd53ded40b56e05effe31fe9847b1bdd4c";
+        sha256 = "0scp9nhd46mrnd02bw7skm5fa04i7azf68g08js8kawvjgbwq0sb";
       }
     else if stdenv.system == "x86_64-darwin" then
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-darwin-x86_64.tar.gz";
-        sha256 = "0706dbea1279be2bc98a497d1bfed61a9cc29c305d908a376bcdb4403035b323";
+        sha256 = "0xvrqsg0vqws9n20lvipxilb45aln5p9iy0ldjfxx8vvi0s42298";
       }
     else
       fetchurl {
         url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/${name}-linux-x86_64.tar.gz";
-        sha256 = "7aa6094d1f9c87f4c2c4a6bdad6a1113aac5e72ea673e659d9acbb059dfd037e";
+        sha256 = "0b9rqhwd30hn5l82a2x10rz86jz1j03b19di7bc3bqn4x041qii5";
       };
 
 
-  buildInputs = [python27 makeWrapper];
+  buildInputs = [ python makeWrapper ];
 
   phases = [ "installPhase" "fixupPhase" ];
 
@@ -46,16 +46,13 @@ stdenv.mkDerivation rec {
         programPath="$out/google-cloud-sdk/bin/$program"
         binaryPath="$out/bin/$program"
         wrapProgram "$programPath" \
-            --set CLOUDSDK_PYTHON "${python27}/bin/python" \
-            --prefix PYTHONPATH : "$(toPythonPath ${cffi}):$(toPythonPath ${cryptography}):$(toPythonPath ${pyopenssl}):$(toPythonPath ${crcmod})"
+            --set CLOUDSDK_PYTHON "${python}/bin/python" \
+            --prefix PYTHONPATH : "${pythonPath}"
 
         mkdir -p $out/bin
         ln -s $programPath $binaryPath
     done
 
-    # install man pages
-    mv "$out/google-cloud-sdk/help/man" "$out"
-
     # setup bash completion
     mkdir -p "$out/etc/bash_completion.d/"
     mv "$out/google-cloud-sdk/completion.bash.inc" "$out/etc/bash_completion.d/gcloud.inc"
@@ -68,11 +65,10 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Tools for the google cloud platform";
     longDescription = "The Google Cloud SDK. This package has the programs: gcloud, gsutil, and bq";
-    version = version;
     # This package contains vendored dependencies. All have free licenses.
     license = licenses.free;
-    homepage = https://cloud.google.com/sdk/;
-    maintainers = with maintainers; [stephenmw zimbatm];
-    platforms = with platforms; linux ++ darwin;
+    homepage = "https://cloud.google.com/sdk/";
+    maintainers = with maintainers; [ stephenmw zimbatm ];
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ffef24e0ff22..751aaf73216b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2301,7 +2301,7 @@ with pkgs;
 
   google-authenticator = callPackage ../os-specific/linux/google-authenticator { };
 
-  google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { };
+  google-cloud-sdk = python2.pkgs.google-cloud-sdk;
 
   google-fonts = callPackage ../data/fonts/google-fonts { };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d7c1fb1fb621..b3269b5230c6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -5849,6 +5849,8 @@ in {
     };
   };
 
+  google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { };
+
   google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
   googlecl = buildPythonPackage rec {

From 332dc7c719f805812eb5f33ab3e4670bb5b10d69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Mon, 25 Sep 2017 21:50:10 +0200
Subject: [PATCH 369/533] mesa: maintenance 17.1.9 -> 17.1.10

---
 pkgs/development/libraries/mesa/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index c9cb0b36bc50..2d253f7cd45c 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -67,7 +67,7 @@ let
 in
 
 let
-  version = "17.1.9";
+  version = "17.1.10";
   branch  = head (splitString "." version);
   driverLink = "/run/opengl-driver" + optionalString stdenv.isi686 "-32";
 in
@@ -82,7 +82,7 @@ stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
       "https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
     ];
-    sha256 = "5f51ad94341696097d5df7b838183534478216858ac0fc8de183671a36ffea1a";
+    sha256 = "cbc0d681cc4df47d8deb5a36f45b420978128522fd665b2cd4c7096316f11bdb";
   };
 
   prePatch = "patchShebangs .";

From cee657f9a338cb9fa7505fd02fb69e46449da16d Mon Sep 17 00:00:00 2001
From: Pavel Goran <me@pvgoran.name>
Date: Sat, 23 Sep 2017 14:56:26 +0700
Subject: [PATCH 370/533] nixos/gitolite: add enableGitAnnex option

---
 nixos/modules/services/misc/gitolite.nix | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/misc/gitolite.nix b/nixos/modules/services/misc/gitolite.nix
index 6bb8adeccf79..f395b9558b5a 100644
--- a/nixos/modules/services/misc/gitolite.nix
+++ b/nixos/modules/services/misc/gitolite.nix
@@ -41,6 +41,15 @@ in
         '';
       };
 
+      enableGitAnnex = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Enable git-annex support. Uses the <literal>extraGitoliteRc</literal> option
+          to apply the necessary configuration.
+        '';
+      };
+
       commonHooks = mkOption {
         type = types.listOf types.path;
         default = [];
@@ -75,6 +84,8 @@ in
           will need to take any customizations you may have in
           <literal>~/.gitolite.rc</literal>, convert them to appropriate Perl
           statements, add them to this option, and remove the file.
+
+          See also the <literal>enableGitAnnex</literal> option.
         '';
       };
 
@@ -124,6 +135,11 @@ in
         ''} >>"$out/gitolite.rc"
       '';
   in {
+    services.gitolite.extraGitoliteRc = optionalString cfg.enableGitAnnex ''
+      # Enable git-annex support:
+      push( @{$RC{ENABLE}}, 'git-annex-shell ua');
+    '';
+
     users.extraUsers.${cfg.user} = {
       description     = "Gitolite user";
       home            = cfg.dataDir;
@@ -198,6 +214,7 @@ in
         '';
     };
 
-    environment.systemPackages = [ pkgs.gitolite pkgs.git ];
+    environment.systemPackages = [ pkgs.gitolite pkgs.git ]
+        ++ optional cfg.enableGitAnnex pkgs.gitAndTools.git-annex;
   });
 }

From 5fb2184bd333d8ea72ebb452539955ee2b347835 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Mon, 25 Sep 2017 14:24:01 +0200
Subject: [PATCH 371/533] vim-plugins: add {pre,post}Install hooks to
 `buildVimPlugin`

---
 pkgs/misc/vim-plugins/vim-utils.nix | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index 87b2f9d3e188..b659266ace7f 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -383,6 +383,8 @@ rec {
     unpackPhase ? "",
     configurePhase ? "",
     buildPhase ? "",
+    preInstall ? "",
+    postInstall ? "",
     path ? (builtins.parseDrvName name).name,
     addonInfo ? null,
     ...
@@ -390,9 +392,11 @@ rec {
     addRtp "${rtpPath}/${path}" (stdenv.mkDerivation (a // {
       name = namePrefix + name;
 
-      inherit unpackPhase configurePhase buildPhase addonInfo;
+      inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
 
       installPhase = ''
+        runHook preInstall
+
         target=$out/${rtpPath}/${path}
         mkdir -p $out/${rtpPath}
         cp -r . $target
@@ -401,6 +405,8 @@ rec {
         if [ -n "$addonInfo" ]; then
           echo "$addonInfo" > $target/addon-info.json
         fi
+
+        runHook postInstall
       '';
     }));
 

From 67a42ae2a12676376c44e0b3134475ca3a2c2443 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Mon, 25 Sep 2017 14:24:36 +0200
Subject: [PATCH 372/533] vim-plugins: document `nix-shell -I` usage for
 `vim-plugin-names-to-nix` usage

I use my own fork for NixOS development/testing, but `nixos-unstable`
for my system configuration.

Whenever I add a new plugin and I regenerate the expressions I need to
change the `NIX_PATH` variable to my own fork. As this is something I
tend to forget I think it's better to document this.
---
 pkgs/misc/vim-plugins/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 7944533c1129..0bfa6c89a152 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -16,7 +16,7 @@ in
 
 # TL;DR
 # Add your plugin to ./vim-plugin-names
-# Regenerate via `nix-shell -p vimPlugins.pluginnames2nix --command "vim-plugin-names-to-nix"`
+# Regenerate via `nix-shell -I nixpkgs=/path/to/your/local/fork -p vimPlugins.pluginnames2nix --command "vim-plugin-names-to-nix"`
 # Copy the generated expression(s) into this file.
 # If plugin is complicated then make changes to ./vim2nix/additional-nix-code
 

From d757d8142e88187388fbea4e884feadb0e33d36f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
Date: Mon, 25 Sep 2017 22:24:13 +0200
Subject: [PATCH 373/533] vimPlugins.robotframework-vim: init at 2017-04-14

---
 pkgs/misc/vim-plugins/default.nix      | 11 +++++++++++
 pkgs/misc/vim-plugins/vim-plugin-names |  1 +
 2 files changed, 12 insertions(+)

diff --git a/pkgs/misc/vim-plugins/default.nix b/pkgs/misc/vim-plugins/default.nix
index 7944533c1129..30c742c3218c 100644
--- a/pkgs/misc/vim-plugins/default.nix
+++ b/pkgs/misc/vim-plugins/default.nix
@@ -1173,6 +1173,17 @@ rec {
 
   };
 
+  robotframework-vim = buildVimPluginFrom2Nix { # created by nix#NixDerivation
+    name = "robotframework-vim-2017-04-14";
+    src = fetchgit {
+      url = "https://github.com/mfukar/robotframework-vim";
+      rev = "75d5b371a4da2a090a2872d55bd0dead013f334e";
+      sha256 = "091ac5rq6f1a7j2q3dy9rc00vckv21m4wd29ijj63jannr02v5ad";
+    };
+    dependencies = [];
+
+  };
+
   vim-startify = buildVimPluginFrom2Nix { # created by nix#NixDerivation
     name = "vim-startify-2017-06-15";
     src = fetchgit {
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 7e9802e050ed..acde3cf2e5b6 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -92,6 +92,7 @@
 "github:martinda/Jenkinsfile-vim-syntax"
 "github:megaannum/forms"
 "github:megaannum/self"
+"github:mfukar/robotframework-vim"
 "github:mhinz/vim-startify"
 "github:michaeljsmith/vim-indent-object"
 "github:mileszs/ack.vim"

From 91983a3f2565d6c0a0daffc120048106247f8ba8 Mon Sep 17 00:00:00 2001
From: Langston Barrett <langston.barrett@gmail.com>
Date: Mon, 25 Sep 2017 20:35:35 +0000
Subject: [PATCH 374/533] latinmodern-math: init at 1.959

---
 pkgs/data/fonts/lm-math/default.nix | 33 +++++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix     |  2 ++
 2 files changed, 35 insertions(+)
 create mode 100644 pkgs/data/fonts/lm-math/default.nix

diff --git a/pkgs/data/fonts/lm-math/default.nix b/pkgs/data/fonts/lm-math/default.nix
new file mode 100644
index 000000000000..348373b89276
--- /dev/null
+++ b/pkgs/data/fonts/lm-math/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "latinmodern-math-${version}";
+  version = "1.959";
+
+  src = fetchzip {
+    url = "www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
+    sha256 = "15l3lxjciyjmbh0q6jjvzz16ibk4ij79in9fs47qhrfr2wrddpvs";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/${name}/
+    cp otf/*.otf $out/share/fonts/opentype/
+    cp doc/*.txt $out/share/doc/${name}/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "05k145bxgxjh7i9gx1ahigxfpc2v2vwzsy2mc41jvvg51kjr8fnn";
+
+  meta = with stdenv.lib; {
+    description = "The Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth.";
+    homepage = http://www.gust.org.pl/projects/e-foundry/lm-math;
+    # "The Latin Modern Math font is licensed under the GUST Font License (GFL),
+    # which is a free license, legally equivalent to the LaTeX Project Public
+    # License (LPPL), version 1.3c or later." - GUST website
+    license = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 751aaf73216b..8d421aef44f6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13170,6 +13170,8 @@ with pkgs;
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  latinmodern-math = callPackage ../data/fonts/lm-math {};
+
   lato = callPackage ../data/fonts/lato {};
 
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};

From 714a138857e00b2a996a8b61e1b31f45f7cf4b60 Mon Sep 17 00:00:00 2001
From: Langston Barrett <langston.barrett@gmail.com>
Date: Mon, 25 Sep 2017 20:59:28 +0000
Subject: [PATCH 375/533] tex-gyre-termes-math: init at 1.543

---
 .../fonts/tex-gyre-termes-math/default.nix    | 37 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 2 files changed, 39 insertions(+)
 create mode 100644 pkgs/data/fonts/tex-gyre-termes-math/default.nix

diff --git a/pkgs/data/fonts/tex-gyre-termes-math/default.nix b/pkgs/data/fonts/tex-gyre-termes-math/default.nix
new file mode 100644
index 000000000000..83b157b085bc
--- /dev/null
+++ b/pkgs/data/fonts/tex-gyre-termes-math/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchzip }:
+
+stdenv.mkDerivation rec {
+  name = "tex-gyre-termes-math-${version}";
+  version = "1.543";
+
+  src = fetchzip {
+    url = "www.gust.org.pl/projects/e-foundry/tg-math/download/texgyretermes-math-1543.zip";
+    sha256 = "10ayqfpryfn1l35hy0vwyjzw3a6mfsnzgf78vsnccgk2gz1g9vhz";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/opentype/
+    mkdir -p $out/share/doc/${name}/
+    cp -v opentype/*.otf $out/share/fonts/opentype/
+    cp -v doc/*.txt $out/share/doc/${name}/
+  '';
+
+  outputHashAlgo = "sha256";
+  outputHashMode = "recursive";
+  outputHash = "0pa433cgshlypbyrrlp3qq0wg972rngcp37pr8pxdfshgz13q1mm";
+
+  meta = with stdenv.lib; {
+    longDescription = ''
+      TeX Gyre Termes Math is a math companion for the TeX Gyre Termes family
+      of fonts (see http://www.gust.org.pl/projects/e-foundry/tex-gyre/) in
+      the OpenType format.
+    '';
+    homepage = http://www.gust.org.pl/projects/e-foundry/tg-math;
+    # "The TeX Gyre Math fonts are licensed under the GUST Font License (GFL),
+    # which is a free license, legally equivalent to the LaTeX Project Public
+    # License (LPPL), version 1.3c or later." - GUST website
+    license = licenses.lppl13c;
+    maintainers = with maintainers; [ siddharthist ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 751aaf73216b..697cee222dcb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -13377,6 +13377,8 @@ with pkgs;
 
   terminus_font_ttf = callPackage ../data/fonts/terminus-font-ttf { };
 
+  tex-gyre-termes-math = callPackage ../data/fonts/tex-gyre-termes-math { };
+
   tipa = callPackage ../data/fonts/tipa { };
 
   ttf_bitstream_vera = callPackage ../data/fonts/ttf-bitstream-vera { };

From 72516990814a3636eac00cb0874dc29166d1e440 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 20 Sep 2017 14:52:04 +0200
Subject: [PATCH 376/533] oslo-config: 4.11.0 -> 4.12.0, fix build

also updated the following dependencies:
keystoneauth1: 3.1.0 -> 3.2.0
  disabled tests which require oslo-config, oslo-test or requests-kerberos
oslo-i18n: 2.7.0 -> 3.18.0
oslotest: 1.12.0 -> 2.18.0
os-client-config: 1.8.1 -> 1.28.0
  needed to disable testing due to circular dependency with oslotest
mox3: 0.11.0 -> 0.23.0
  disable tests for py36 due to upstream bug
debtcollector: 0.9.0 -> 1.17.0
  tests enabled

extra packages:
requestsexceptions: init at 1.3.0
---
 .../python-modules/keystoneauth1/default.nix  |  9 ++--
 .../python-modules/oslo-config/default.nix    | 11 ++---
 .../requestsexceptions/default.nix            | 27 +++++++++++
 pkgs/top-level/python-packages.nix            | 47 ++++++++++---------
 4 files changed, 63 insertions(+), 31 deletions(-)
 create mode 100644 pkgs/development/python-modules/requestsexceptions/default.nix

diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix
index 17792723e4a3..130671360488 100644
--- a/pkgs/development/python-modules/keystoneauth1/default.nix
+++ b/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -6,20 +6,21 @@
 
 buildPythonPackage rec {
   pname = "keystoneauth1";
-  version = "3.1.0";
+  version = "3.2.0";
   name = "${pname}-${version}";
   disabled = isPyPy; # a test fails
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5abfa8bbe866d52ca56afbe528d15214a60033cc1dc9804478cae7424f0f8fb";
+    sha256 = "0rg3harfyvai34lrjiqnl1crmvswjvj8nsviasnz4b9pcvp3d03n";
   };
 
   buildInputs = [ pbr testtools testresources testrepository mock
                   pep8 fixtures mox3 requests-mock ];
-  propagatedBuildInputs = [ iso8601 requests six stevedore
-                            webob oslo-config ];
+  propagatedBuildInputs = [ iso8601 requests six stevedore webob ];
 
+  # oslo_config is required but would create a circular dependency
+  doCheck = false;
   postPatch = ''
     sed -i 's@python@${python.interpreter}@' .testr.conf
     substituteInPlace requirements.txt --replace "argparse" ""
diff --git a/pkgs/development/python-modules/oslo-config/default.nix b/pkgs/development/python-modules/oslo-config/default.nix
index 51b2f0df75dc..0e77f9b65f9d 100644
--- a/pkgs/development/python-modules/oslo-config/default.nix
+++ b/pkgs/development/python-modules/oslo-config/default.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage, fetchPypi, pbr, six, netaddr, stevedore, mock }:
+{ buildPythonPackage, fetchPypi, pbr, six, netaddr, stevedore, mock,
+debtcollector, rfc3986, pyyaml, oslo-i18n }:
 
 buildPythonPackage rec {
   pname = "oslo.config";
-  version = "4.11.0";
+  version = "4.12.0";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1be8aaba466a3449fdb21ee8f7025b0d3d252c8c7568b8d5d05ceff58617cd05";
+    sha256 = "1pa9lajsadyq47bmxx12dxlcmnqsqlgnb55hwqas26lgnb2073dx";
   };
 
-  propagatedBuildInputs = [ pbr six netaddr stevedore ];
+  propagatedBuildInputs = [ pbr six netaddr stevedore debtcollector rfc3986 pyyaml oslo-i18n ];
   buildInputs = [ mock ];
 
   # TODO: circular import on oslo-i18n
@@ -20,6 +21,4 @@ buildPythonPackage rec {
     substituteInPlace requirements.txt --replace "argparse" ""
   '';
 
-  # Requires a bunch of new packages
-  meta.broken = true;
 }
diff --git a/pkgs/development/python-modules/requestsexceptions/default.nix b/pkgs/development/python-modules/requestsexceptions/default.nix
new file mode 100644
index 000000000000..35d723836c95
--- /dev/null
+++ b/pkgs/development/python-modules/requestsexceptions/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, pbr }:
+
+buildPythonPackage rec {
+  pname = "requestsexceptions";
+  version = "1.3.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gim00vi7vfq16y8b9m1vpy01grqvrdrbh88jb98qx6n6sk1n54g";
+  };
+
+  propagatedBuildInputs = [ pbr ];
+
+  # upstream hacking package is not required for functional testing
+  patchPhase = ''
+    sed -i '/^hacking/d' test-requirements.txt
+  '';
+
+  meta = with lib; {
+    description = "Import exceptions from potentially bundled packages in requests.";
+    homepage = "https://pypi.python.org/pypi/requestsexceptions";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ makefu ];
+    patforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b3269b5230c6..d055af91fe45 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -14852,14 +14852,14 @@ in {
 
   oslo-i18n = buildPythonPackage rec {
     name = "oslo.i18n-${version}";
-    version = "2.7.0";
+    version = "3.18.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/o/oslo.i18n/${name}.tar.gz";
-      sha256 = "11jgcvj36g97awh7fpar4xxgwrvzfahq6rw7xxqac32ia790ylcz";
+      sha256 = "19w6wil588fgppc7d42fqkrjs0y81ap62svzbij8hlb3w2d4a91n";
     };
 
-    propagatedBuildInputs = with self; [ pbr Babel six oslo-config ];
+    propagatedBuildInputs = with self; [ pbr Babel six ];
     buildInputs = with self; [ mock coverage oslotest ];
     patchPhase = ''
       sed -i 's@python@${python.interpreter}@' .testr.conf
@@ -14870,11 +14870,11 @@ in {
 
   oslotest = buildPythonPackage rec {
     name = "oslotest-${version}";
-    version = "1.12.0";
+    version = "2.18.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/o/oslotest/${name}.tar.gz";
-      sha256 = "17i92hymw1dwmmb5yv90m2gam2x21mc960q1pr7bly93x49h8666";
+      sha256 = "0a0zhpb4yp7g6d290jk7a4pfci4ciwhsrqzhbwbl2szi50gp7km1";
     };
 
     patchPhase = ''
@@ -14882,28 +14882,27 @@ in {
     '';
 
     propagatedBuildInputs = with self; [ pbr fixtures subunit six testrepository
-      testscenarios testtools mock mox3 oslo-config os-client-config ];
+      os-client-config debtcollector testscenarios testtools mock mox3 os-client-config ];
   };
 
   os-client-config = buildPythonPackage rec {
     name = "os-client-config-${version}";
-    version = "1.8.1";
+    version = "1.28.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/o/os-client-config/${name}.tar.gz";
-      sha256 = "10hz4yp594mi1p7v1pvgsmx5w2rnb9y8d0jvb2lfv03ljnwzv8jz";
+      sha256 = "1f7q384b9drp3fqcg0w8aihv9k4idaay8vr3an187zjpgbx9rgp5";
     };
 
-    buildInputs = with self; [ pbr testtools testscenarios testrepository fixtures ];
-    propagatedBuildInputs = with self; [ appdirs pyyaml keystoneauth1 ];
+    # requires oslotest but is a dependency of that package ...
+    doCheck = false;
+
+    buildInputs = with self; [ pbr testtools testscenarios testrepository fixtures jsonschema ];
+    propagatedBuildInputs = with self; [ appdirs pyyaml keystoneauth1 requestsexceptions ];
 
     patchPhase = ''
       sed -i 's@python@${python.interpreter}@' .testr.conf
     '';
-    # TODO: circular import on oslotest
-    preCheck = ''
-      rm os_client_config/tests/{test_config,test_cloud_config,test_environ}.py
-    '';
   };
 
   keystoneauth1 = callPackage ../development/python-modules/keystoneauth1 {};
@@ -14927,38 +14926,42 @@ in {
 
   mox3 = buildPythonPackage rec {
     name = "mox3-${version}";
-    version = "0.11.0";
+    version = "0.23.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/m/mox3/${name}.tar.gz";
-      sha256 = "09dkgki21v5zqrx575h1aazxsq5akkv0a90z644bk1ry9a4zg1pn";
+      sha256 = "0q26sg0jasday52a7y0cch13l0ssjvr4yqnvswqxsinj1lv5ld88";
     };
 
     patchPhase = ''
       sed -i 's@python@${python.interpreter}@' .testr.conf
     '';
 
+    #  FAIL: mox3.tests.test_mox.RegexTest.testReprWithFlags
+    #  ValueError: cannot use LOCALE flag with a str pattern
+    doCheck = !isPy36;
+
     buildInputs = with self; [ subunit testrepository testtools six ];
     propagatedBuildInputs = with self; [ pbr fixtures ];
   };
 
   debtcollector = buildPythonPackage rec {
     name = "debtcollector-${version}";
-    version = "0.9.0";
+    version = "1.17.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/d/debtcollector/${name}.tar.gz";
-      sha256 = "1mvdxdrnwlgfqg26s5himkjq6f06r2khlrignx36kkbyaix6j9xb";
+      sha256 = "0rh47fd5kgjcdv9dxr7xf0x308cvfic3h2zk03ifvb4pdc5kbqvi";
     };
     patchPhase = ''
       sed -i 's@python@${python.interpreter}@' .testr.conf
     '';
 
     buildInputs = with self; [ pbr ];
-    propagatedBuildInputs = with self; [ wrapt Babel six doc8 ];
+    propagatedBuildInputs = with self; [ wrapt Babel six doc8 ] ++
+                              (optional (isPy26 || isPy27) funcsigs);
     checkInputs = with self; [ pbr Babel six wrapt testtools testscenarios
-       testrepository subunit coverage oslotest ];
-    doCheck = false; # oslo is broken
+                               testrepository subunit coverage ];
   };
 
   doc8 = callPackage ../development/python-modules/doc8 { };
@@ -18363,6 +18366,8 @@ in {
     };
   };
 
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions {};
+
   requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
   requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib.nix { };

From 97644a9f4f160e4a5eba77e462701f516a46b5ad Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 20 Sep 2017 16:12:22 +0200
Subject: [PATCH 377/533] keystoneauth1: enable tests

requires a later version of betamax, bumped to 0.8.0
---
 .../python-modules/keystoneauth1/default.nix    | 17 +++++++++++++----
 pkgs/top-level/python-packages.nix              |  4 ++--
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix
index 130671360488..7405f7f74cd5 100644
--- a/pkgs/development/python-modules/keystoneauth1/default.nix
+++ b/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -2,6 +2,7 @@
 , pbr, testtools, testresources, testrepository, mock
 , pep8, fixtures, mox3, requests-mock
 , iso8601, requests, six, stevedore, webob, oslo-config
+, pyyaml, betamax, oauthlib
 }:
 
 buildPythonPackage rec {
@@ -15,12 +16,20 @@ buildPythonPackage rec {
     sha256 = "0rg3harfyvai34lrjiqnl1crmvswjvj8nsviasnz4b9pcvp3d03n";
   };
 
-  buildInputs = [ pbr testtools testresources testrepository mock
-                  pep8 fixtures mox3 requests-mock ];
+  buildInputs = [ pbr  ];
+  checkInputs = [ pyyaml betamax oauthlib testtools testresources
+                  testrepository mock pep8 fixtures mox3 requests-mock ];
   propagatedBuildInputs = [ iso8601 requests six stevedore webob ];
 
-  # oslo_config is required but would create a circular dependency
-  doCheck = false;
+  doCheck = true;
+  # 1. oslo-config
+  # 2. oslo-utils
+  # 3. requests-kerberos
+  preCheck = ''
+    rm keystoneauth1/tests/unit/loading/test_{session,conf,adapter}.py
+    rm keystoneauth1/tests/unit/access/test_v{2,3}_access.py
+    rm keystoneauth1/tests/unit/extras/kerberos/test_fedkerb_loading.py
+  '';
   postPatch = ''
     sed -i 's@python@${python.interpreter}@' .testr.conf
     substituteInPlace requirements.txt --replace "argparse" ""
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d055af91fe45..09365ce14239 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1313,11 +1313,11 @@ in {
   };
 
   betamax = buildPythonPackage rec {
-    name = "betamax-0.6.0";
+    name = "betamax-0.8.0";
 
     src = pkgs.fetchurl {
       url = "mirror://pypi/b/betamax/${name}.tar.gz";
-      sha256 = "0vw4d53jbbb2kdl7l891h8iyxklqcd6ldvgcyhw9hl40ljdhv1wz";
+      sha256 = "18f8v5gng3j773jlbbzx4rg1i4y2zw3m2l1zpmbvp8bh5a2q1i42";
     };
 
     propagatedBuildInputs = [ self.requests ];

From 42edc6f35e817b4995530779f0f82ba37a76cb03 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 20 Sep 2017 16:12:46 +0200
Subject: [PATCH 378/533] sqlalchemy-migrate: re-enable tests

---
 .../python-modules/sqlalchemy-migrate/default.nix            | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index 9b431f29acb8..ec63bc3c71e1 100644
--- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     sha256 = "0ld2bihp9kmf57ykgzrfgxs4j9kxlw79sgdj9sfn47snw3izb2p6";
   };
 
-  checkInputs = [ unittest2 scripttest pytz pylint  mock testtools ];
+  checkInputs = [ unittest2 scripttest pytz pylint mock testtools tempest-lib ];
   propagatedBuildInputs = [ pbr tempita decorator sqlalchemy six sqlparse ];
 
   checkPhase = ''
@@ -27,8 +27,7 @@ buildPythonPackage rec {
     ${python.interpreter} setup.py test
   '';
 
-  # Tests require tempest-lib which requires the broken oslo-config
-  doCheck = false;
+  doCheck = true;
 
   meta = with stdenv.lib; {
     homepage = http://code.google.com/p/sqlalchemy-migrate/;

From 78621e384c3489c6d04b87e4e71a9508bff4c044 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Sat, 23 Sep 2017 14:53:23 +0200
Subject: [PATCH 379/533] oslo-service: 0.10.0 -> 1.26.0, with dependencies

oslo-service:
  needs to disable tests due to network errors when importing eventlet
  for tests ( socket.getprotobyname('tcp') -> no such protocol )
eventlet: 0.17.4 -> 0.20.0
  cannot update to 0.21.0 due to version pinning ( < 0.21.0 ) of oslo-service
monotonic: 0.4 -> 1.3
oslo-serialization: 1.10.0 -> 2.20.0
oslo-utils: 2.6.0 -> 3.29.0
oslo-concurrency: 2.7.0 -> 3.22.0
oslo-log: 1.12.1 -> 3.31.0
oslo-context: 0.7.0 -> 2.18.1
routes: 1.12.3 -> 2.4.1
webob: 1.4.1 -> 1.7.3

when updating i rewrote the package to use fetchPypi for making future
updating easier
---
 pkgs/top-level/python-packages.nix | 132 ++++++++++++++++-------------
 1 file changed, 73 insertions(+), 59 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 09365ce14239..ecd9e5d2a6e5 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -8856,18 +8856,21 @@ in {
   };
 
   eventlet = buildPythonPackage rec {
-    name = "eventlet-0.17.4";
+    pname = "eventlet";
+    version = "0.20.0";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/e/eventlet/${name}.tar.gz";
-      sha256 = "0vam0qfm8p5jkpp2cv12r5bnpnv902ld7q074h7x5y5g9rqyj8c7";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "15bq5ybbigxnp5xwkps53zyhlg15lmcnq3ny2dppj0r0bylcs5rf";
     };
 
     buildInputs = with self; [ nose httplib2 pyopenssl  ];
 
     doCheck = false;  # too much transient errors to bother
 
-    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ];
+    propagatedBuildInputs = optionals (!isPyPy) [ self.greenlet ] ++
+      (with self; [ enum-compat ]) ;
 
     meta = {
       homepage = http://pypi.python.org/pypi/eventlet/;
@@ -12623,13 +12626,15 @@ in {
   };
 
   monotonic = buildPythonPackage rec {
-    name = "monotonic-0.4";
+    pname = "monotonic";
+    version = "1.3";
+    name = "${pname}-${version}";
 
     __propagatedImpureHostDeps = stdenv.lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/m/monotonic/${name}.tar.gz";
-      sha256 = "1diab6hfh3jpa1f0scpqaqrawk4g97ss4v7gkn2yw8znvdm6abw5";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "06vw7jwq96106plhlc5vz1v1xvjismdgw9wjyzvzf0ylglnrwiib";
     };
 
     patchPhase = optionalString stdenv.isLinux ''
@@ -13846,12 +13851,13 @@ in {
   };
 
   oslo-serialization = buildPythonPackage rec {
-    name = "oslo.serialization-${version}";
-    version = "1.10.0";
+    pname = "oslo.serialization";
+    version = "2.20.0";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.serialization/${name}.tar.gz";
-      sha256 = "15k8aql2rx5jzv3hfvmd48vsyw172qa64bs3fmsyx25p37zyfy8a";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "00j8hn8f0shk4anzb6zwn8w1sfxcil9a3jgxljwalq6ma2rzp9pw";
     };
 
     patchPhase = ''
@@ -13893,12 +13899,13 @@ in {
 
 
   oslo-utils = buildPythonPackage rec {
-    name = "oslo.utils-${version}";
-    version = "2.6.0";
+    pname = "oslo.utils";
+    version = "3.29.0";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.utils/${name}.tar.gz";
-      sha256 = "1prgi03nxkcykyja821qkycsqlnpyzw17mpvj8qf3pjmgb9gv1fy";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0l90ijw96czjd6z8bw88983rsnq5753iw86rhk1wi064w4rs19ig";
     };
 
     propagatedBuildInputs = with self; [ pbr Babel six iso8601 pytz netaddr netifaces
@@ -14254,12 +14261,14 @@ in {
 
 
   oslo-service = buildPythonPackage rec {
-    name = "oslo.service-${version}";
-    version = "0.10.0";
+    pname = "oslo.service";
+    version = "1.26.0";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.service/oslo.service-0.10.0.tar.gz";
-      sha256 = "1pcnimc2a50arcgq355ad9lramf6y1yv974swgfj6w90v5c6p9gz";
+    name = "${pname}-${version}";
+
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "083q7z6nrska5fq12vnd70blphxscd7ivca2d78jk84d99h0m5n5";
     };
 
     propagatedBuildInputs = with self; [
@@ -14267,16 +14276,15 @@ in {
       oslo-concurrency wrapt eventlet six oslo-serialization greenlet paste
       oslo-config monotonic iso8601 oslo-log pytz routes msgpack
       oslo-i18n argparse oslo-utils pbr enum34 netaddr stevedore netifaces
-      pyinotify webob retrying pyinotify ];
+      pyinotify webob retrying pyinotify oslo-log ];
     buildInputs = with self; [
       oslosphinx oslotest pkgs.procps mock mox3 fixtures subunit testrepository
       testtools testscenarios
     ];
 
-    # failing tests
-    preCheck = ''
-      rm oslo_service/tests/test_service.py
-    '';
+    ## cannot import eventlet due to:
+    # _proto_tcp = socket.getprotobyname('tcp')
+    doCheck = false;
 
     meta = with stdenv.lib; {
       homepage = "http://wiki.openstack.org/wiki/Oslo#oslo.service";
@@ -14721,13 +14729,14 @@ in {
 
 
   oslo-concurrency = buildPythonPackage rec {
-   name = "oslo-concurrency-${version}";
-   version = "2.7.0";
+    pname = "oslo.concurrency";
+    version = "3.22.0";
+    name = "${pname}-${version}";
 
-   src = pkgs.fetchurl {
-     url = "mirror://pypi/o/oslo.concurrency/oslo.concurrency-2.7.0.tar.gz";
-     sha256 = "1yp8c87yi6fx1qbq4y1xkx47iiifg7jqzpcghivhxqra8vna185d";
-   };
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0nh1ycc2s6w05g5w63bsmmda0gw7qsrwlax3as8a0piai99z4m51";
+    };
 
    propagatedBuildInputs = with self; [
      oslo-i18n argparse six wrapt oslo-utils pbr enum34 Babel netaddr monotonic
@@ -14735,8 +14744,8 @@ in {
      eventlet
    ];
    buildInputs = with self; [
-     oslosphinx fixtures futures coverage oslotest
-   ];
+     oslosphinx fixtures coverage oslotest
+   ] ++ (optional (!isPy3k) futures);
 
    # too much magic in tests
    doCheck = false;
@@ -14816,16 +14825,17 @@ in {
   olefile = callPackage ../development/python-modules/olefile { };
 
   oslo-log = buildPythonPackage rec {
-    name = "oslo.log-${version}";
-    version = "1.12.1";
+    name = "${pname}-${version}";
+    pname = "oslo.log";
+    version = "3.31.0";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.log/${name}.tar.gz";
-      sha256 = "10x596r19zjla5n1bf04j5vncx0c9gpc5wc2jlmgjbl3cyx3vgsv";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "1w08cl98n8592pvb2gw01mqlwi8nnnpg1zy10mvj6xdpvfk2yqzz";
     };
 
     propagatedBuildInputs = with self; [
-      pbr Babel six iso8601 debtcollector
+      pbr Babel six iso8601 debtcollector dateutil
       oslo-utils oslo-i18n oslo-config oslo-serialization oslo-context
     ] ++ stdenv.lib.optional stdenv.isLinux pyinotify;
     buildInputs = with self; [ oslotest oslosphinx ];
@@ -14835,12 +14845,13 @@ in {
   };
 
   oslo-context = buildPythonPackage rec {
-    name = "oslo.context-${version}";
-    version = "0.7.0";
+    name = "${pname}-${version}";
+    pname = "oslo.context";
+    version = "2.18.1";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/o/oslo.context/${name}.tar.gz";
-      sha256 = "18fmg9dhgngshk63wfb3ddrgx5br8jxkk3x30z40741mslp1fdjy";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "1sc7qrwffsm15m91c17k0xiglv6bxh9sbksvxvrrgja82m57mgh6";
     };
 
     propagatedBuildInputs = with self; [ pbr Babel ];
@@ -19050,14 +19061,16 @@ in {
   ropper = callPackage ../development/python-modules/ropper { };
 
   routes = buildPythonPackage rec {
-    name = "routes-1.12.3";
+    pname = "Routes";
+    version = "2.4.1";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = mirror://pypi/R/Routes/Routes-1.12.3.tar.gz;
-      sha256 = "eacc0dfb7c883374e698cebaa01a740d8c78d364b6e7f3df0312de042f77aa36";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "1zamff3m0kc4vyfniyhxpkkcqv1rrgnmh37ykxv34nna1ws47vi6";
     };
 
-    propagatedBuildInputs = with self; [ paste webtest ];
+    propagatedBuildInputs = with self; [ paste webtest repoze_lru ];
 
     meta = {
       description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
@@ -22492,15 +22505,16 @@ EOF
   };
 
   webob = buildPythonPackage rec {
-    version = "1.4.1";
-    name = "webob-${version}";
+    pname = "WebOb";
+    version = "1.7.3";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/W/WebOb/WebOb-${version}.tar.gz";
-      sha256 = "1nz9m6ijf46wfn33zfza13c0k1n4kjnmn3icdlrlgz5yj21vky0j";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "10vjp2rvqiyvw157fk3sy7yds1gknzw97z4gk0qv1raskx5s2p76";
     };
 
-    propagatedBuildInputs = with self; [ nose ];
+    propagatedBuildInputs = with self; [ nose pytest ];
 
     meta = {
       description = "WSGI request and response object";

From d7c26f24b95a3eb558722fe0f0b3bf16df6e446d Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Sat, 23 Sep 2017 15:08:28 +0200
Subject: [PATCH 380/533] oslo-config,sqlalchemy: add makefu to list of
 maintainers

---
 .../development/python-modules/oslo-config/default.nix | 10 +++++++++-
 .../python-modules/sqlalchemy-migrate/default.nix      |  1 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/pkgs/development/python-modules/oslo-config/default.nix b/pkgs/development/python-modules/oslo-config/default.nix
index 0e77f9b65f9d..fce8c21284c7 100644
--- a/pkgs/development/python-modules/oslo-config/default.nix
+++ b/pkgs/development/python-modules/oslo-config/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, fetchPypi, pbr, six, netaddr, stevedore, mock,
+{ lib, buildPythonPackage, fetchPypi, pbr, six, netaddr, stevedore, mock,
 debtcollector, rfc3986, pyyaml, oslo-i18n }:
 
 buildPythonPackage rec {
@@ -21,4 +21,12 @@ buildPythonPackage rec {
     substituteInPlace requirements.txt --replace "argparse" ""
   '';
 
+  meta = with lib; {
+    description = "Oslo Configuration API";
+    homepage = "https://docs.openstack.org/oslo.config/latest/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ makefu ];
+  };
+
+
 }
diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index ec63bc3c71e1..258f84e8c72a 100644
--- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -33,5 +33,6 @@ buildPythonPackage rec {
     homepage = http://code.google.com/p/sqlalchemy-migrate/;
     description = "Schema migration tools for SQLAlchemy";
     license = licenses.asl20;
+    maintainers = with maintainers; [ makefu ];
   };
 }

From d00ba8091f0a97e63ebdc426eb20eb95e42bba10 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Mon, 25 Sep 2017 11:11:43 +0200
Subject: [PATCH 381/533] celery: disable eventlet tests

eventlet cannot be imported in any tests because it fails to be imported
inside the sandboxed environment
---
 pkgs/top-level/python-packages.nix | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index ecd9e5d2a6e5..366145642dab 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2606,6 +2606,13 @@ in {
     # https://github.com/celery/celery/pull/3736#issuecomment-274155454 from upstream
     patches = [ ../development/python-modules/celery/fix_endless_python3.6_loop_logger_isa.patch ];
 
+    ## importing of eventlet fails because of:
+    # _proto_tcp = socket.getprotobyname('tcp')
+    ## raises an exception in the sandbox
+    preCheck = ''
+      rm ./t/unit/concurrency/test_eventlet.py
+    '';
+
     buildInputs = with self; [ pytest case ];
     propagatedBuildInputs = with self; [ kombu billiard pytz anyjson amqp eventlet ];
 

From dcc36a4a043c9c7a94afedae2685f7df1c7356dc Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Mon, 25 Sep 2017 13:39:07 +0200
Subject: [PATCH 382/533] pyramid: 1.7 -> 1.9.1

---
 .../python-modules/hupper/default.nix         | 20 +++++++++++++++++
 .../plaster-pastedeploy/default.nix           | 22 +++++++++++++++++++
 .../python-modules/plaster/default.nix        | 20 +++++++++++++++++
 pkgs/top-level/python-packages.nix            | 19 ++++++++++++----
 4 files changed, 77 insertions(+), 4 deletions(-)
 create mode 100644 pkgs/development/python-modules/hupper/default.nix
 create mode 100644 pkgs/development/python-modules/plaster-pastedeploy/default.nix
 create mode 100644 pkgs/development/python-modules/plaster/default.nix

diff --git a/pkgs/development/python-modules/hupper/default.nix b/pkgs/development/python-modules/hupper/default.nix
new file mode 100644
index 000000000000..3a8426e201f8
--- /dev/null
+++ b/pkgs/development/python-modules/hupper/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, fetchPypi, python
+, pytest, pytestcov, watchdog, mock
+}:
+
+buildPythonPackage rec {
+  pname = "hupper";
+  version = "1.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02lj6kgaf9xpr0binxwac3gpdhljglyj9fr78s165jc7qd7mifdg";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  checkInputs = [ pytest pytestcov watchdog mock ];
+}
diff --git a/pkgs/development/python-modules/plaster-pastedeploy/default.nix b/pkgs/development/python-modules/plaster-pastedeploy/default.nix
new file mode 100644
index 000000000000..330ecfc7c672
--- /dev/null
+++ b/pkgs/development/python-modules/plaster-pastedeploy/default.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, python
+, plaster, PasteDeploy
+, pytest, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "plaster_pastedeploy";
+  version = "0.4.1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lrbkya5birfmg9gnfcnsa9id28klmjcqbm33rcg69pv9sfld4jv";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  propagatedBuildInputs = [ plaster PasteDeploy ];
+  checkInputs = [ pytest pytestcov ];
+}
diff --git a/pkgs/development/python-modules/plaster/default.nix b/pkgs/development/python-modules/plaster/default.nix
new file mode 100644
index 000000000000..9f370a9c0fb3
--- /dev/null
+++ b/pkgs/development/python-modules/plaster/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, fetchPypi, python
+, pytest, pytestcov
+}:
+
+buildPythonPackage rec {
+  pname = "plaster";
+  version = "0.5";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0z48pis4qyhyqj3ia82r04diaa153dw66wrpbly06hdzvhw8j0ia";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  checkInputs = [ pytest pytestcov ];
+}
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 366145642dab..d2f5fc934d5f 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -6061,6 +6061,8 @@ in {
 
   };
 
+  hupper = callPackage ../development/python-modules/hupper {};
+
   hovercraft = buildPythonPackage rec {
     disabled = ! isPy3k;
     name = "hovercraft-${version}";
@@ -7049,6 +7051,10 @@ in {
 
   phpserialize = callPackage ../development/python-modules/phpserialize { };
 
+  plaster = callPackage ../development/python-modules/plaster {};
+
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
+
   plotly = callPackage ../development/python-modules/plotly { };
 
   podcastparser = callPackage ../development/python-modules/podcastparser { };
@@ -7327,11 +7333,13 @@ in {
   };
 
   pyramid = buildPythonPackage rec {
-    name = "pyramid-1.7";
+    pname = "pyramid";
+    version = "1.9.1";
+    name = "${pname}-${version}";
 
-    src = pkgs.fetchurl {
-      url = "mirror://pypi/p/pyramid/${name}.tar.gz";
-      sha256 = "161qacv7qqln3q02kcqll0q2mmaypm701hn1llwdwnkaywkb3xi6";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0dhbzc4q0vsnv3aihy728aczg56xs6h9s1rmvr096q4lb6yln3w4";
     };
 
     buildInputs = with self; [
@@ -7340,6 +7348,9 @@ in {
       webtest
       zope_component
       zope_interface
+      plaster
+      plaster-pastedeploy
+      hupper
     ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = with self; [

From 1b628fb02322f1cf6ada397361e19fde55834f85 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Mon, 25 Sep 2017 21:42:20 +0100
Subject: [PATCH 383/533] celery: fix eventlet tests

---
 pkgs/top-level/python-packages.nix | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index d2f5fc934d5f..efd5e6d90398 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2606,11 +2606,13 @@ in {
     # https://github.com/celery/celery/pull/3736#issuecomment-274155454 from upstream
     patches = [ ../development/python-modules/celery/fix_endless_python3.6_loop_logger_isa.patch ];
 
-    ## importing of eventlet fails because of:
-    # _proto_tcp = socket.getprotobyname('tcp')
-    ## raises an exception in the sandbox
+    # make /etc/protocols accessible to fix socket.getprotobyname('tcp') in sandbox
     preCheck = ''
-      rm ./t/unit/concurrency/test_eventlet.py
+      export NIX_REDIRECTS=/etc/protocols=${pkgs.iana-etc}/etc/protocols \
+        LD_PRELOAD=${pkgs.libredirect}/lib/libredirect.so
+    '';
+    postCheck = ''
+      unset NIX_REDIRECTS LD_PRELOAD
     '';
 
     buildInputs = with self; [ pytest case ];

From 032c50d45b3fd1ebb4af592b83e776ed7004b4c0 Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Mon, 25 Sep 2017 23:22:18 +0200
Subject: [PATCH 384/533] gdal: fix path to pg_config

---
 pkgs/development/libraries/gdal/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 984d3da81198..600e9314cd4c 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     "--with-png=${libpng.dev}"      # optional
     "--with-poppler=${poppler.dev}" # optional
     "--with-libz=${zlib.dev}"       # optional
-    "--with-pg=${postgresql}/bin/pg_config"
+    "--with-pg=${postgresql.dev}/bin/pg_config"
     "--with-mysql=${mysql.lib.dev}/bin/mysql_config"
     "--with-geotiff=${libgeotiff}"
     "--with-sqlite3=${sqlite.dev}"

From feb397d55f28c2b82dd2814104a3df25aa4d37ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Robert=20Sch=C3=BCtz?=
 <robert.schuetz@stud.uni-heidelberg.de>
Date: Mon, 25 Sep 2017 23:42:00 +0200
Subject: [PATCH 385/533] gpx-viewer: init at 0.4.0

---
 pkgs/applications/misc/gpx-viewer/default.nix | 33 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 35 insertions(+)
 create mode 100644 pkgs/applications/misc/gpx-viewer/default.nix

diff --git a/pkgs/applications/misc/gpx-viewer/default.nix b/pkgs/applications/misc/gpx-viewer/default.nix
new file mode 100644
index 000000000000..a7485c4ee681
--- /dev/null
+++ b/pkgs/applications/misc/gpx-viewer/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, intltool, pkgconfig, gnome3, shared_mime_info, desktop_file_utils, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "gpx-viewer-${version}";
+  version = "0.4.0";
+
+  src = fetchurl {
+    url = "https://launchpad.net/gpx-viewer/trunk/${version}/+download/${name}.tar.gz";
+    sha256 = "956acfaf870ac436300cd9953dece630df7fd7dff8e4ae2577a6002884466f80";
+  };
+
+  patches = fetchurl {
+    url = "https://code.launchpad.net/~chkr/gpx-viewer/gtk3-bugfix/+merge/260766/+preview-diff/628965/+files/preview.diff";
+    sha256 = "1yl7jk7skkcx10nny5zdixswcymjd9s9c1zhm1i5y3aqhchvmfs7";
+  };
+  patchFlags = [ "-p0" ];
+
+  nativeBuildInputs = [
+    intltool pkgconfig
+    shared_mime_info # For update-mime-database
+    desktop_file_utils # For update-desktop-database
+    wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system
+  ];
+  buildInputs = with gnome3; [ gdl libchamplain defaultIconTheme ];
+
+  meta = with stdenv.lib; {
+    homepage = https://blog.sarine.nl/tag/gpxviewer/;
+    description = "Simple tool to visualize tracks and waypoints stored in a gpx file";
+    platforms = with platforms; linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 751aaf73216b..9f290cda2903 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14387,6 +14387,8 @@ with pkgs;
 
   gqrx = qt5.callPackage ../applications/misc/gqrx { };
 
+  gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
+
   grass = callPackage ../applications/gis/grass { };
 
   grepm = callPackage ../applications/search/grepm { };

From b8915ebcc7a5be0bc11a879c4c1f667c3ce8c8b1 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Tue, 26 Sep 2017 00:31:02 +0200
Subject: [PATCH 386/533] pythonPackages.keyutils: init at 0.5

---
 pkgs/top-level/python-packages.nix | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b3269b5230c6..ed7af87bfed7 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -10859,6 +10859,28 @@ in {
 
   keyring = callPackage ../development/python-modules/keyring { };
 
+  keyutils = buildPythonPackage rec {
+    name = "${pname}-${version}";
+    pname = "keyutils";
+    version = "0.5";
+
+    src = pkgs.fetchurl {
+      url = "mirror://pypi/k/${pname}/${name}.tar.gz";
+      sha256 = "0dskys71vkn59vlsfs1ljli0qnzk7b10iv4pawxawnk2hvyjrf10";
+    };
+
+    buildInputs = with self; [ pkgs.keyutils pytestrunner ];
+
+    doCheck = false;
+
+    meta = {
+      description = "A set of python bindings for keyutils";
+      homepage = https://github.com/sassoftware/python-keyutils;
+      license = licenses.asl20;
+      maintainers = with maintainers; [ primeos ];
+    };
+  };
+
   klaus = buildPythonPackage rec {
     version = "0.9.1";
     name = "klaus-${version}";

From 2ceb7ad9f99be5947cc46486951140ecb1d16cbe Mon Sep 17 00:00:00 2001
From: The Admin <jakahudoklin@gmail.com>
Date: Wed, 26 Apr 2017 00:57:08 +0200
Subject: [PATCH 387/533] numix-solarized-gtk-theme: init at 20160919

---
 .../numix-solarized-gtk-theme/default.nix     | 35 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 37 insertions(+)
 create mode 100644 pkgs/misc/themes/gtk3/numix-solarized-gtk-theme/default.nix

diff --git a/pkgs/misc/themes/gtk3/numix-solarized-gtk-theme/default.nix b/pkgs/misc/themes/gtk3/numix-solarized-gtk-theme/default.nix
new file mode 100644
index 000000000000..4ede14d3bb39
--- /dev/null
+++ b/pkgs/misc/themes/gtk3/numix-solarized-gtk-theme/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, sass, glib, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  version = "20160919";
+  name = "numix-solarized-gtk-theme-${version}";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = "numix-solarized-gtk-theme";
+    rev = version;
+    sha256 = "0243w918ycmf9vnkzfvwnrxz9zc6xxk7167h8ywxj901pqy59kad";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile --replace \
+      'INSTALL_DIR=$(DESTDIR)/usr/share/themes' "INSTALL_DIR=$out/share/themes"
+    patchShebangs .
+  '';
+
+  buildInputs = [sass glib gdk_pixbuf];
+
+  meta = with stdenv.lib; {
+    description = "GTK3.20-compatible version of bitterologist's Numix Solarized from deviantart";
+    longDescription = ''
+      This is a fork of the Numix GTK theme that replaces the colors of the theme
+      and icons to use the solarized theme with a solarized green accent color.
+      This theme supports both the dark and light theme, just as Numix proper.
+    '';
+    homepage = https://github.com/Ferdi265/numix-solarized-gtk-theme;
+    downloadPage = https://github.com/Ferdi265/numix-solarized-gtk-theme/releases;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.offline ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 257d116ec79d..6cd98d23b4aa 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -18019,6 +18019,8 @@ with pkgs;
 
   numix-gtk-theme = callPackage ../misc/themes/numix { };
 
+  numix-solarized-gtk-theme = callPackage ../misc/themes/gtk3/numix-solarized-gtk-theme {  };
+
   numix-sx-gtk-theme = callPackage ../misc/themes/numix-sx { };
 
   theme-vertex = callPackage ../misc/themes/vertex { };

From b196241f42a328b4f293887aa8a75c0a02e386c2 Mon Sep 17 00:00:00 2001
From: Daiderd Jordan <daiderd@gmail.com>
Date: Tue, 26 Sep 2017 00:57:48 +0200
Subject: [PATCH 388/533] reattach-to-user-namespace: 2.5 -> 2.6

---
 .../reattach-to-user-namespace/default.nix    | 21 +++++++++++--------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
index e2776475432f..b14008e11f10 100644
--- a/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
+++ b/pkgs/os-specific/darwin/reattach-to-user-namespace/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "reattach-to-user-namespace-2.5";
+stdenv.mkDerivation rec {
+  name = "reattach-to-user-namespace-${version}";
+  version = "2.6";
 
-  src = fetchgit {
-    url = "https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git";
-    sha256 = "0kv11vi54g6waf9941hy1pwmwyab0y7hbmbkcgwhzb5ja21ysc2a";
-    rev = "3689998acce9990726c8a68a85298ab693a62458";
+  src = fetchurl {
+    url = "https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/archive/v2.6.tar.gz";
+    sha256 = "1d8ynzkdlxyyky9f88f7z50g9lwdydkpb2n7gkw3jgl2ac569xc0";
   };
 
   buildFlags = "ARCHES=x86_64";
@@ -16,7 +16,10 @@ stdenv.mkDerivation {
     cp reattach-to-user-namespace $out/bin/
   '';
 
-  meta = {
-    platforms = stdenv.lib.platforms.darwin;
+  meta = with stdenv.lib; {
+    description = "A wrapper that provides access to the Mac OS X pasteboard service";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ lnl7 ];
+    platforms = platforms.darwin;
   };
 }

From b064137b7b1cca141ec9f8fee8bf820ce569a875 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Tue, 26 Sep 2017 00:15:22 +0100
Subject: [PATCH 389/533] sysdig: 0.17.0 -> 0.18.0

---
 pkgs/os-specific/linux/sysdig/default.nix | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index ca5cea0a0128..fbd2cff1b17c 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -3,13 +3,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "sysdig-${version}";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "0xw4in2yb3ynpc8jwl95j92kbyr7fzda3mab8nyxcyld7gshrlvd";
+    sha256 = "1hmkjvfg3371hp873mnkjq9cirqszw2ji4p7mb6jcn9ihwxil2z2";
   };
 
   buildInputs = [
@@ -29,12 +29,6 @@ stdenv.mkDerivation rec {
     "-DluaL_getn(L,i)=((int)lua_objlen(L,i))"
   ];
 
-  postPatch = ''
-    sed 's|curl/curlbuild\.h|curl/system.h|' -i \
-        userspace/libsinsp/marathon_http.cpp \
-        userspace/libsinsp/mesos_http.cpp
- '';
-
   preConfigure = ''
     export INSTALL_MOD_PATH="$out"
   '' + optionalString (kernel != null) ''

From 3766637bddb20b80203441fc1cc1b196e2548c04 Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Tue, 26 Sep 2017 01:20:22 +0100
Subject: [PATCH 390/533] gnuradio: fix build for gcc6 and newer boost (#29740)

---
 pkgs/applications/misc/gnuradio/default.nix | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix
index e10cb30d1874..bd951c2a9a76 100644
--- a/pkgs/applications/misc/gnuradio/default.nix
+++ b/pkgs/applications/misc/gnuradio/default.nix
@@ -41,8 +41,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  postPatch = ''
+    substituteInPlace \
+        gr-fec/include/gnuradio/fec/polar_decoder_common.h \
+        --replace BOOST_CONSTEXPR_OR_CONST const
+  '';
+
   preConfigure = ''
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable"
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -Wno-unused-variable -std=c++11"
   '';
 
   # - Ensure we get an interactive backend for matplotlib. If not the gr_plot_*

From 151b34460c9c2c75ad27290baf0bba8456737b60 Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Sat, 23 Sep 2017 14:24:55 +0100
Subject: [PATCH 391/533] nixos/release-notes: MySQL declarative
 users/databases

Documents a possible migration step required to use the new options.
---
 nixos/doc/manual/release-notes/rl-1709.xml | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index 55b39209f0d5..6fc84a57cffd 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -202,6 +202,45 @@ rmdir /var/lib/ipfs/.ipfs
       <command>gpgv</command>, etc.
     </para>
   </listitem>
+
+  <listitem>
+    <para>
+      <literal>services.mysql</literal> now has declarative
+      configuration of databases and users with the <literal>ensureDatabases</literal> and
+      <literal>ensureUsers</literal> options.
+    </para>
+
+    <para>
+      These options will never delete existing databases and users,
+      especially not when the value of the options are changed.
+    </para>
+
+    <para>
+      The MySQL users will be identified using
+      <link xlink:href="https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/">
+        Unix socket authentication</link>. This authenticates the
+        Unix user with the same name only, and that without the need
+        for a password.
+    </para>
+
+    <para>
+      If you have previously created a MySQL <literal>root</literal>
+      user <emphasis>with a password</emphasis>, you will need to add
+      <literal>root</literal> user for unix socket authentication
+      before using the new options. This can be done by running the
+      following SQL script:
+
+<programlisting language="sql">
+CREATE USER 'root'@'%' IDENTIFIED BY '';
+GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
+FLUSH PRIVILEGES;
+
+-- Optionally, delete the password-authenticated user:
+-- DROP USER 'root'@'localhost';
+</programlisting>
+
+    </para>
+  </listitem>
 </itemizedlist>
 
 <para>Other notable improvements:</para>

From 3414265efa7557bbc7ddd18876888011f2159cf5 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Tue, 26 Sep 2017 03:26:02 +0200
Subject: [PATCH 392/533] 17.09 release notes: add module changes

---
 nixos/doc/manual/release-notes/rl-1709.xml | 100 +++++++++++++++++++--
 1 file changed, 91 insertions(+), 9 deletions(-)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index 6fc84a57cffd..c951934e6236 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -45,6 +45,33 @@ has the following highlights: </para>
       even though <literal>HDMI-0</literal> is the first head in the list.
     </para>
   </listitem>
+  <listitem>
+    <para>
+      The handling of SSL in the nginx module has been cleaned up, renaming
+      the misnomed <literal>enableSSL</literal> to <literal>onlySSL</literal>
+      which reflects its original intention. This is not to be used with the
+      already existing <literal>forceSSL</literal> which creates a second
+      non-SSL virtual host redirecting to the SSL virtual host. This by
+      chance had worked earlier due to specific implementation details. In
+      case you had specified both please remove the <literal>enableSSL</literal>
+      option to keep the previous behaviour.
+    </para>
+    <para>
+      Another <literal>addSSL</literal> option has been introduced to configure
+      both a non-SSL virtual host and an SSL virtual host.
+    </para>
+    <para>
+      Options to configure <literal>resolver</literal>s and
+      <literal>upstream</literal>s have been introduced. See their information
+      for further details.
+    </para>
+    <para>
+      The <literal>port</literal> option has been replaced by a more generic
+      <literal>listen</literal> option which makes it possible to specify
+      multiple addresses, ports and SSL configs dependant on the new SSL
+      handling mentioned above.
+    </para>
+  </listitem>
 </itemizedlist>
 
 <para>The following new services were added since the last release:</para>
@@ -62,10 +89,17 @@ following incompatible changes:</para>
 <itemizedlist>
   <listitem>
     <para>
-      <literal>aiccu</literal> package was removed. This is due to SixXS
+      The <literal>aiccu</literal> package was removed. This is due to SixXS
       <link xlink:href="https://www.sixxs.net/main/"> sunsetting</link> its IPv6 tunnel.
     </para>
   </listitem>
+  <listitem>
+    <para>
+      The <literal>fanctl</literal> package and <literal>fan</literal> module
+      have been removed due to the developers not upstreaming their iproute2
+      patches and lagging with compatibility to recent iproute2 versions.
+    </para>
+  </listitem>
   <listitem>
     <para>
       Top-level <literal>idea</literal> package collection was renamed.
@@ -202,7 +236,6 @@ rmdir /var/lib/ipfs/.ipfs
       <command>gpgv</command>, etc.
     </para>
   </listitem>
-
   <listitem>
     <para>
       <literal>services.mysql</literal> now has declarative
@@ -238,7 +271,22 @@ FLUSH PRIVILEGES;
 -- Optionally, delete the password-authenticated user:
 -- DROP USER 'root'@'localhost';
 </programlisting>
-
+    </para>
+  </listitem>
+  <listitem>
+    <para>
+      <literal>sha256</literal> argument value of
+      <literal>dockerTools.pullImage</literal> expression must be
+      updated since the mechanism to download the image has been
+      changed. Skopeo is now used to pull the image instead of the
+      Docker daemon.
+    </para>
+  </listitem>
+  <listitem>
+    <para>
+      Templated systemd services e.g <literal>container@name</literal> are
+      now handled currectly when switching to a new configuration, resulting
+      in them being reloaded.
     </para>
   </listitem>
 </itemizedlist>
@@ -296,14 +344,48 @@ FLUSH PRIVILEGES;
   </listitem>
   <listitem>
     <para>
-      <literal>sha256</literal> argument value of
-      <literal>dockerTools.pullImage</literal> expression must be
-      updated since the mechanism to download the image has been
-      changed. Skopeo is now used to pull the image instead of the
-      Docker daemon.
+      Definitions for <filename>/etc/hosts</filename> can now be sped
+      declaratively with <literal>networking.hosts</literal>.
+    </para>
+  </listitem>
+  <listitem>
+    <para>
+      Two new options have been added to the installer loader, in addition
+      to the default having changed. The kernel log verbosity has been lowered
+      to the upstream default for the default options, in order to not spam
+      the console when e.g. joining a network.
+    </para>
+    <para>
+      This therefore leads to adding a new <literal>debug</literal> option
+      to set the log level to the previous verbose mode, to make debugging
+      easier, but still accessible easily.
+    </para>
+    <para>
+      Additionally a <literal>copytoram</literal> option has been added,
+      which makes it possible to remove the install medium after booting.
+      This allows tethering from your phone after booting from it.
+    </para>
+    <para>
+      <literal>services.gitlab-runner.configOptions</literal> has been added
+      to specify the configuration of gitlab-runners declaratively.
+    </para>
+    <para>
+      <literal>services.jenkins.plugins</literal> has been added
+      to install plugins easily, this can be generated with jenkinsPlugins2nix.
+    </para>
+    <para>
+      <literal>services.postfix.config</literal> has been added
+      to specify the main.cf with NixOS options. Additionally other options
+      have been added to the postfix module and has been improved further.
+    </para>
+    <para>
+        The GitLab package and module have been updated to the latest 9.5 release.
+    </para>
+    <para>
+      The <literal>systemd-boot</literal> boot loader now lists the NixOS
+      version, kernel version and build date of all bootable generations.
     </para>
   </listitem>
-
 </itemizedlist>
 
 </section>

From 8ac4682e85248419c63402f7ebdd4cdd20ff7f8e Mon Sep 17 00:00:00 2001
From: Alastair Pharo <asppsa@gmail.com>
Date: Tue, 26 Sep 2017 11:58:36 +1000
Subject: [PATCH 393/533] purePackages.gen: Don't build on Hydra (#29763)

Until https://github.com/agraef/pure-lang/issues/8 is resolved, this
package can't be compiled.  This patch turns off Hydra builds of this
package as part of #28643 (zero Hydra failures)
---
 pkgs/development/pure-modules/gen/default.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/development/pure-modules/gen/default.nix b/pkgs/development/pure-modules/gen/default.nix
index 082a8c88c61e..9bb65d042b96 100644
--- a/pkgs/development/pure-modules/gen/default.nix
+++ b/pkgs/development/pure-modules/gen/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = http://puredocs.bitbucket.org/pure-gen.html;
     license = stdenv.lib.licenses.free;
     platforms = stdenv.lib.platforms.linux;
+    hydraPlatforms = [];
     maintainers = with stdenv.lib.maintainers; [ asppsa ];
   };
 }

From 08d05f1ef5fff39c89e1a53b53e83bfc119cc18b Mon Sep 17 00:00:00 2001
From: Dario Bertini <berdario@gmail.com>
Date: Tue, 26 Sep 2017 07:16:14 +0100
Subject: [PATCH 394/533] Fetch sshuttle-darwin patch from github

---
 pkgs/tools/security/sshuttle/darwin.patch | 588 ----------------------
 pkgs/tools/security/sshuttle/default.nix  |  14 +-
 2 files changed, 10 insertions(+), 592 deletions(-)
 delete mode 100644 pkgs/tools/security/sshuttle/darwin.patch

diff --git a/pkgs/tools/security/sshuttle/darwin.patch b/pkgs/tools/security/sshuttle/darwin.patch
deleted file mode 100644
index ccd2ab047474..000000000000
--- a/pkgs/tools/security/sshuttle/darwin.patch
+++ /dev/null
@@ -1,588 +0,0 @@
-diff --git a/sshuttle/tests/client/test_firewall.py b/sshuttle/tests/client/test_firewall.py
-index 6201601..927ea61 100644
---- a/sshuttle/tests/client/test_firewall.py
-+++ b/sshuttle/tests/client/test_firewall.py
-@@ -7,17 +7,17 @@ import sshuttle.firewall
- 
- def setup_daemon():
-     stdin = io.StringIO(u"""ROUTES
--2,24,0,1.2.3.0,8000,9000
--2,32,1,1.2.3.66,8080,8080
--10,64,0,2404:6800:4004:80c::,0,0
--10,128,1,2404:6800:4004:80c::101f,80,80
-+{inet},24,0,1.2.3.0,8000,9000
-+{inet},32,1,1.2.3.66,8080,8080
-+{inet6},64,0,2404:6800:4004:80c::,0,0
-+{inet6},128,1,2404:6800:4004:80c::101f,80,80
- NSLIST
--2,1.2.3.33
--10,2404:6800:4004:80c::33
-+{inet},1.2.3.33
-+{inet6},2404:6800:4004:80c::33
- PORTS 1024,1025,1026,1027
- GO 1
- HOST 1.2.3.3,existing
--""")
-+""".format(inet=socket.AF_INET, inet6=socket.AF_INET6))
-     stdout = Mock()
-     return stdin, stdout
- 
-@@ -117,18 +117,18 @@ def test_main(mock_get_method, mock_setup_daemon, mock_rewrite_etc_hosts):
-         call('not_auto'),
-         call().setup_firewall(
-             1024, 1026,
--            [(10, u'2404:6800:4004:80c::33')],
--            10,
--            [(10, 64, False, u'2404:6800:4004:80c::', 0, 0),
--                (10, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
-+            [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+            socket.AF_INET6,
-+            [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 0, 0),
-+                (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
-             True),
-         call().setup_firewall(
-             1025, 1027,
--            [(2, u'1.2.3.33')],
--            2,
--            [(2, 24, False, u'1.2.3.0', 8000, 9000),
--                (2, 32, True, u'1.2.3.66', 8080, 8080)],
-+            [(socket.AF_INET, u'1.2.3.33')],
-+            socket.AF_INET,
-+            [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
-+                (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
-             True),
--        call().restore_firewall(1024, 10, True),
--        call().restore_firewall(1025, 2, True),
-+        call().restore_firewall(1024, socket.AF_INET6, True),
-+        call().restore_firewall(1025, socket.AF_INET, True),
-     ]
-diff --git a/sshuttle/tests/client/test_helpers.py b/sshuttle/tests/client/test_helpers.py
-index 67c6682..527983b 100644
---- a/sshuttle/tests/client/test_helpers.py
-+++ b/sshuttle/tests/client/test_helpers.py
-@@ -132,10 +132,10 @@ nameserver 2404:6800:4004:80c::4
- 
-     ns = sshuttle.helpers.resolvconf_nameservers()
-     assert ns == [
--        (2, u'192.168.1.1'), (2, u'192.168.2.1'),
--        (2, u'192.168.3.1'), (2, u'192.168.4.1'),
--        (10, u'2404:6800:4004:80c::1'), (10, u'2404:6800:4004:80c::2'),
--        (10, u'2404:6800:4004:80c::3'), (10, u'2404:6800:4004:80c::4')
-+        (socket.AF_INET, u'192.168.1.1'), (socket.AF_INET, u'192.168.2.1'),
-+        (socket.AF_INET, u'192.168.3.1'), (socket.AF_INET, u'192.168.4.1'),
-+        (socket.AF_INET6, u'2404:6800:4004:80c::1'), (socket.AF_INET6, u'2404:6800:4004:80c::2'),
-+        (socket.AF_INET6, u'2404:6800:4004:80c::3'), (socket.AF_INET6, u'2404:6800:4004:80c::4')
-     ]
- 
- 
-@@ -155,10 +155,10 @@ nameserver 2404:6800:4004:80c::4
- """)
-     ns = sshuttle.helpers.resolvconf_random_nameserver()
-     assert ns in [
--        (2, u'192.168.1.1'), (2, u'192.168.2.1'),
--        (2, u'192.168.3.1'), (2, u'192.168.4.1'),
--        (10, u'2404:6800:4004:80c::1'), (10, u'2404:6800:4004:80c::2'),
--        (10, u'2404:6800:4004:80c::3'), (10, u'2404:6800:4004:80c::4')
-+        (socket.AF_INET, u'192.168.1.1'), (socket.AF_INET, u'192.168.2.1'),
-+        (socket.AF_INET, u'192.168.3.1'), (socket.AF_INET, u'192.168.4.1'),
-+        (socket.AF_INET6, u'2404:6800:4004:80c::1'), (socket.AF_INET6, u'2404:6800:4004:80c::2'),
-+        (socket.AF_INET6, u'2404:6800:4004:80c::3'), (socket.AF_INET6, u'2404:6800:4004:80c::4')
-     ]
- 
- 
-diff --git a/sshuttle/tests/client/test_methods_nat.py b/sshuttle/tests/client/test_methods_nat.py
-index 4ae571b..91d7e45 100644
---- a/sshuttle/tests/client/test_methods_nat.py
-+++ b/sshuttle/tests/client/test_methods_nat.py
-@@ -84,10 +84,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
-     with pytest.raises(Exception) as excinfo:
-         method.setup_firewall(
-             1024, 1026,
--            [(10, u'2404:6800:4004:80c::33')],
--            10,
--            [(10, 64, False, u'2404:6800:4004:80c::', 0, 0),
--                (10, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
-+            [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+            socket.AF_INET6,
-+            [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 0, 0),
-+                (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 80, 80)],
-             True)
-     assert str(excinfo.value) \
-         == 'Address family "AF_INET6" unsupported by nat method_name'
-@@ -98,10 +98,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
-     with pytest.raises(Exception) as excinfo:
-         method.setup_firewall(
-             1025, 1027,
--            [(2, u'1.2.3.33')],
--            2,
--            [(2, 24, False, u'1.2.3.0', 8000, 9000),
--                (2, 32, True, u'1.2.3.66', 8080, 8080)],
-+            [(socket.AF_INET, u'1.2.3.33')],
-+            socket.AF_INET,
-+            [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
-+                (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
-             True)
-     assert str(excinfo.value) == 'UDP not supported by nat method_name'
-     assert mock_ipt_chain_exists.mock_calls == []
-@@ -110,10 +110,10 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
- 
-     method.setup_firewall(
-         1025, 1027,
--        [(2, u'1.2.3.33')],
--        2,
--        [(2, 24, False, u'1.2.3.0', 8000, 9000),
--            (2, 32, True, u'1.2.3.66', 8080, 8080)],
-+        [(socket.AF_INET, u'1.2.3.33')],
-+        socket.AF_INET,
-+        [(socket.AF_INET, 24, False, u'1.2.3.0', 8000, 9000),
-+            (socket.AF_INET, 32, True, u'1.2.3.66', 8080, 8080)],
-         False)
-     assert mock_ipt_chain_exists.mock_calls == [
-         call(2, 'nat', 'sshuttle-1025')
-diff --git a/sshuttle/tests/client/test_methods_pf.py b/sshuttle/tests/client/test_methods_pf.py
-index 5df57af..fef54e0 100644
---- a/sshuttle/tests/client/test_methods_pf.py
-+++ b/sshuttle/tests/client/test_methods_pf.py
-@@ -180,10 +180,10 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1024, 1026,
--        [(10, u'2404:6800:4004:80c::33')],
--        10,
--        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
--            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-+        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+        socket.AF_INET6,
-+        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
-+            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-         False)
-     assert mock_ioctl.mock_calls == [
-         call(mock_pf_get_dev(), 0xC4704433, ANY),
-@@ -218,10 +218,10 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
-     with pytest.raises(Exception) as excinfo:
-         method.setup_firewall(
-             1025, 1027,
--            [(2, u'1.2.3.33')],
--            2,
--            [(2, 24, False, u'1.2.3.0', 0, 0),
--                (2, 32, True, u'1.2.3.66', 80, 80)],
-+            [(socket.AF_INET, u'1.2.3.33')],
-+            socket.AF_INET,
-+            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
-+                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-             True)
-     assert str(excinfo.value) == 'UDP not supported by pf method_name'
-     assert mock_pf_get_dev.mock_calls == []
-@@ -230,9 +230,9 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1025, 1027,
--        [(2, u'1.2.3.33')],
--        2,
--        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
-+        [(socket.AF_INET, u'1.2.3.33')],
-+        socket.AF_INET,
-+        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-         False)
-     assert mock_ioctl.mock_calls == [
-         call(mock_pf_get_dev(), 0xC4704433, ANY),
-@@ -262,7 +262,7 @@ def test_setup_firewall_darwin(mock_pf_get_dev, mock_ioctl, mock_pfctl):
-     mock_ioctl.reset_mock()
-     mock_pfctl.reset_mock()
- 
--    method.restore_firewall(1025, 2, False)
-+    method.restore_firewall(1025, socket.AF_INET, False)
-     assert mock_ioctl.mock_calls == []
-     assert mock_pfctl.mock_calls == [
-         call('-a sshuttle-1025 -F all'),
-@@ -286,10 +286,10 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1024, 1026,
--        [(10, u'2404:6800:4004:80c::33')],
--        10,
--        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
--            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-+        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+        socket.AF_INET6,
-+        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
-+            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-         False)
- 
-     assert mock_pfctl.mock_calls == [
-@@ -315,10 +315,10 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
-     with pytest.raises(Exception) as excinfo:
-         method.setup_firewall(
-             1025, 1027,
--            [(2, u'1.2.3.33')],
--            2,
--            [(2, 24, False, u'1.2.3.0', 0, 0),
--                (2, 32, True, u'1.2.3.66', 80, 80)],
-+            [(socket.AF_INET, u'1.2.3.33')],
-+            socket.AF_INET,
-+            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
-+                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-             True)
-     assert str(excinfo.value) == 'UDP not supported by pf method_name'
-     assert mock_pf_get_dev.mock_calls == []
-@@ -327,9 +327,9 @@ def test_setup_firewall_freebsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1025, 1027,
--        [(2, u'1.2.3.33')],
--        2,
--        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
-+        [(socket.AF_INET, u'1.2.3.33')],
-+        socket.AF_INET,
-+        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-         False)
-     assert mock_ioctl.mock_calls == [
-         call(mock_pf_get_dev(), 0xC4704433, ANY),
-@@ -381,10 +381,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1024, 1026,
--        [(10, u'2404:6800:4004:80c::33')],
--        10,
--        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
--            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-+        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+        socket.AF_INET6,
-+        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
-+            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-         False)
- 
-     assert mock_ioctl.mock_calls == [
-@@ -416,10 +416,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
-     with pytest.raises(Exception) as excinfo:
-         method.setup_firewall(
-             1025, 1027,
--            [(2, u'1.2.3.33')],
--            2,
--            [(2, 24, False, u'1.2.3.0', 0, 0),
--                (2, 32, True, u'1.2.3.66', 80, 80)],
-+            [(socket.AF_INET, u'1.2.3.33')],
-+            socket.AF_INET,
-+            [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
-+                (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-             True)
-     assert str(excinfo.value) == 'UDP not supported by pf method_name'
-     assert mock_pf_get_dev.mock_calls == []
-@@ -428,10 +428,10 @@ def test_setup_firewall_openbsd(mock_pf_get_dev, mock_ioctl, mock_pfctl):
- 
-     method.setup_firewall(
-         1025, 1027,
--        [(2, u'1.2.3.33')],
--        2,
--        [(2, 24, False, u'1.2.3.0', 0, 0),
--            (2, 32, True, u'1.2.3.66', 80, 80)],
-+        [(socket.AF_INET, u'1.2.3.33')],
-+        socket.AF_INET,
-+        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0),
-+            (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-         False)
-     assert mock_ioctl.mock_calls == [
-         call(mock_pf_get_dev(), 0xcd48441a, ANY),
-diff --git a/sshuttle/tests/client/test_methods_tproxy.py b/sshuttle/tests/client/test_methods_tproxy.py
-index 268e60c..acc45fd 100644
---- a/sshuttle/tests/client/test_methods_tproxy.py
-+++ b/sshuttle/tests/client/test_methods_tproxy.py
-@@ -1,3 +1,5 @@
-+import socket
-+
- from mock import Mock, patch, call
- 
- from sshuttle.methods import get_method
-@@ -49,7 +51,7 @@ def test_send_udp(mock_socket):
-     assert sock.mock_calls == []
-     assert mock_socket.mock_calls == [
-         call(sock.family, 2),
--        call().setsockopt(1, 2, 1),
-+        call().setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1),
-         call().setsockopt(0, 19, 1),
-         call().bind('127.0.0.2'),
-         call().sendto("2222222", '127.0.0.1'),
-@@ -100,71 +102,71 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
- 
-     method.setup_firewall(
-         1024, 1026,
--        [(10, u'2404:6800:4004:80c::33')],
--        10,
--        [(10, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
--            (10, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-+        [(socket.AF_INET6, u'2404:6800:4004:80c::33')],
-+        socket.AF_INET6,
-+        [(socket.AF_INET6, 64, False, u'2404:6800:4004:80c::', 8000, 9000),
-+            (socket.AF_INET6, 128, True, u'2404:6800:4004:80c::101f', 8080, 8080)],
-         True)
-     assert mock_ipt_chain_exists.mock_calls == [
--        call(10, 'mangle', 'sshuttle-m-1024'),
--        call(10, 'mangle', 'sshuttle-t-1024'),
--        call(10, 'mangle', 'sshuttle-d-1024')
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-d-1024')
-     ]
-     assert mock_ipt_ttl.mock_calls == []
-     assert mock_ipt.mock_calls == [
--        call(10, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-X', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-X', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-d-1024'),
--        call(10, 'mangle', '-X', 'sshuttle-d-1024'),
--        call(10, 'mangle', '-N', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-N', 'sshuttle-d-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-d-1024'),
--        call(10, 'mangle', '-N', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-F', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1024'),
--        call(10, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1024'),
--        call(10, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'MARK',
-+        call(socket.AF_INET6, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1024'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-d-1024'),
-+        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-d-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1024'),
-+        call(socket.AF_INET6, 'mangle', '-N', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1024'),
-+        call(socket.AF_INET6, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1024'),
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'MARK',
-              '--set-mark', '1'),
--        call(10, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'ACCEPT'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-d-1024', '-j', 'ACCEPT'),
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
-              '-j', 'sshuttle-d-1024', '-m', 'tcp', '-p', 'tcp'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-m', 'socket',
-              '-j', 'sshuttle-d-1024', '-m', 'udp', '-p', 'udp'),
--        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::33/32',
-              '-m', 'udp', '-p', 'udp', '--dport', '53'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1',
-              '--dest', u'2404:6800:4004:80c::33/32',
-              '-m', 'udp', '-p', 'udp', '--dport', '53', '--on-port', '1026'),
--        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
-              '--dest', u'2404:6800:4004:80c::101f/128',
-              '-m', 'tcp', '-p', 'tcp', '--dport', '8080:8080'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
-              '--dest', u'2404:6800:4004:80c::101f/128',
-              '-m', 'tcp', '-p', 'tcp', '--dport', '8080:8080'),
--        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'RETURN',
-              '--dest', u'2404:6800:4004:80c::101f/128',
-              '-m', 'udp', '-p', 'udp', '--dport', '8080:8080'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'RETURN',
-              '--dest', u'2404:6800:4004:80c::101f/128',
-              '-m', 'udp', '-p', 'udp', '--dport', '8080:8080'),
--        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::/64',
-              '-m', 'tcp', '-p', 'tcp', '--dport', '8000:9000'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1', '--dest', u'2404:6800:4004:80c::/64',
-              '-m', 'tcp', '-p', 'tcp', '--dport', '8000:9000',
-              '--on-port', '1024'),
--        call(10, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-m-1024', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'2404:6800:4004:80c::/64',
-              '-m', 'udp', '-p', 'udp'),
--        call(10, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-+        call(socket.AF_INET6, 'mangle', '-A', 'sshuttle-t-1024', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1', '--dest', u'2404:6800:4004:80c::/64',
-              '-m', 'udp', '-p', 'udp', '--dport', '8000:9000',
-              '--on-port', '1024')
-@@ -173,22 +175,22 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
-     mock_ipt_ttl.reset_mock()
-     mock_ipt.reset_mock()
- 
--    method.restore_firewall(1025, 10, True)
-+    method.restore_firewall(1025, socket.AF_INET6, True)
-     assert mock_ipt_chain_exists.mock_calls == [
--        call(10, 'mangle', 'sshuttle-m-1025'),
--        call(10, 'mangle', 'sshuttle-t-1025'),
--        call(10, 'mangle', 'sshuttle-d-1025')
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-m-1025'),
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-t-1025'),
-+        call(socket.AF_INET6, 'mangle', 'sshuttle-d-1025')
-     ]
-     assert mock_ipt_ttl.mock_calls == []
-     assert mock_ipt.mock_calls == [
--        call(10, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
--        call(10, 'mangle', '-F', 'sshuttle-m-1025'),
--        call(10, 'mangle', '-X', 'sshuttle-m-1025'),
--        call(10, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
--        call(10, 'mangle', '-F', 'sshuttle-t-1025'),
--        call(10, 'mangle', '-X', 'sshuttle-t-1025'),
--        call(10, 'mangle', '-F', 'sshuttle-d-1025'),
--        call(10, 'mangle', '-X', 'sshuttle-d-1025')
-+        call(socket.AF_INET6, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-m-1025'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-m-1025'),
-+        call(socket.AF_INET6, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-t-1025'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-t-1025'),
-+        call(socket.AF_INET6, 'mangle', '-F', 'sshuttle-d-1025'),
-+        call(socket.AF_INET6, 'mangle', '-X', 'sshuttle-d-1025')
-     ]
-     mock_ipt_chain_exists.reset_mock()
-     mock_ipt_ttl.reset_mock()
-@@ -198,68 +200,68 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
- 
-     method.setup_firewall(
-         1025, 1027,
--        [(2, u'1.2.3.33')],
--        2,
--        [(2, 24, False, u'1.2.3.0', 0, 0), (2, 32, True, u'1.2.3.66', 80, 80)],
-+        [(socket.AF_INET, u'1.2.3.33')],
-+        socket.AF_INET,
-+        [(socket.AF_INET, 24, False, u'1.2.3.0', 0, 0), (socket.AF_INET, 32, True, u'1.2.3.66', 80, 80)],
-         True)
-     assert mock_ipt_chain_exists.mock_calls == [
--        call(2, 'mangle', 'sshuttle-m-1025'),
--        call(2, 'mangle', 'sshuttle-t-1025'),
--        call(2, 'mangle', 'sshuttle-d-1025')
-+        call(socket.AF_INET, 'mangle', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', 'sshuttle-d-1025')
-     ]
-     assert mock_ipt_ttl.mock_calls == []
-     assert mock_ipt.mock_calls == [
--        call(2, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-d-1025'),
--        call(2, 'mangle', '-N', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-N', 'sshuttle-d-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
--        call(2, 'mangle', '-N', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-A', 'sshuttle-d-1025',
-+        call(socket.AF_INET, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-d-1025'),
-+        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-d-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
-+        call(socket.AF_INET, 'mangle', '-N', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-I', 'OUTPUT', '1', '-j', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-I', 'PREROUTING', '1', '-j', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-d-1025',
-              '-j', 'MARK', '--set-mark', '1'),
--        call(2, 'mangle', '-A', 'sshuttle-d-1025', '-j', 'ACCEPT'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-d-1025', '-j', 'ACCEPT'),
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
-              '-j', 'sshuttle-d-1025', '-m', 'tcp', '-p', 'tcp'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-m', 'socket',
-              '-j', 'sshuttle-d-1025', '-m', 'udp', '-p', 'udp'),
--        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'1.2.3.33/32',
-              '-m', 'udp', '-p', 'udp', '--dport', '53'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.33/32',
-              '-m', 'udp', '-p', 'udp', '--dport', '53', '--on-port', '1027'),
--        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
-              '--dest', u'1.2.3.66/32', '-m', 'tcp', '-p', 'tcp', 
-              '--dport', '80:80'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
-              '--dest', u'1.2.3.66/32', '-m', 'tcp', '-p', 'tcp',
-              '--dport', '80:80'),
--        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'RETURN',
-              '--dest', u'1.2.3.66/32', '-m', 'udp', '-p', 'udp',
-              '--dport', '80:80'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'RETURN',
-              '--dest', u'1.2.3.66/32', '-m', 'udp', '-p', 'udp',
-              '--dport', '80:80'),
--        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'1.2.3.0/24',
-              '-m', 'tcp', '-p', 'tcp'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.0/24',
-              '-m', 'tcp', '-p', 'tcp', '--on-port', '1025'),
--        call(2, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-m-1025', '-j', 'MARK',
-              '--set-mark', '1', '--dest', u'1.2.3.0/24',
-              '-m', 'udp', '-p', 'udp'),
--        call(2, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-+        call(socket.AF_INET, 'mangle', '-A', 'sshuttle-t-1025', '-j', 'TPROXY',
-              '--tproxy-mark', '0x1/0x1', '--dest', u'1.2.3.0/24',
-              '-m', 'udp', '-p', 'udp', '--on-port', '1025')
-     ]
-@@ -267,22 +269,22 @@ def test_setup_firewall(mock_ipt_chain_exists, mock_ipt_ttl, mock_ipt):
-     mock_ipt_ttl.reset_mock()
-     mock_ipt.reset_mock()
- 
--    method.restore_firewall(1025, 2, True)
-+    method.restore_firewall(1025, socket.AF_INET, True)
-     assert mock_ipt_chain_exists.mock_calls == [
--        call(2, 'mangle', 'sshuttle-m-1025'),
--        call(2, 'mangle', 'sshuttle-t-1025'),
--        call(2, 'mangle', 'sshuttle-d-1025')
-+        call(socket.AF_INET, 'mangle', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', 'sshuttle-d-1025')
-     ]
-     assert mock_ipt_ttl.mock_calls == []
-     assert mock_ipt.mock_calls == [
--        call(2, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-m-1025'),
--        call(2, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-t-1025'),
--        call(2, 'mangle', '-F', 'sshuttle-d-1025'),
--        call(2, 'mangle', '-X', 'sshuttle-d-1025')
-+        call(socket.AF_INET, 'mangle', '-D', 'OUTPUT', '-j', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-m-1025'),
-+        call(socket.AF_INET, 'mangle', '-D', 'PREROUTING', '-j', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-t-1025'),
-+        call(socket.AF_INET, 'mangle', '-F', 'sshuttle-d-1025'),
-+        call(socket.AF_INET, 'mangle', '-X', 'sshuttle-d-1025')
-     ]
-     mock_ipt_chain_exists.reset_mock()
-     mock_ipt_ttl.reset_mock()
diff --git a/pkgs/tools/security/sshuttle/default.nix b/pkgs/tools/security/sshuttle/default.nix
index dc8f5b25c41e..960d11521a74 100644
--- a/pkgs/tools/security/sshuttle/default.nix
+++ b/pkgs/tools/security/sshuttle/default.nix
@@ -1,6 +1,6 @@
 { stdenv, python3Packages, fetchurl, makeWrapper, pandoc
-, coreutils, iptables, nettools, openssh, procps }:
-  
+, coreutils, iptables, nettools, openssh, procps, fetchpatch }:
+
 python3Packages.buildPythonApplication rec {
   name = "sshuttle-${version}";
   version = "0.78.3";
@@ -10,7 +10,13 @@ python3Packages.buildPythonApplication rec {
     url = "mirror://pypi/s/sshuttle/${name}.tar.gz";
   };
 
-  patches = [ ./sudo.patch ./darwin.patch ];
+  patches = [
+    ./sudo.patch
+    (fetchpatch {
+      url = "https://github.com/sshuttle/sshuttle/commit/91aa6ff625f7c89a19e6f8702425cfead44a146f.patch";
+      sha256 = "0sqcc6kj53wlas2d3klbyilhns6vakzwbbp8y7j9wlmbnc530pks";
+    })
+  ];
 
   nativeBuildInputs = [ makeWrapper pandoc python3Packages.setuptools_scm ];
   buildInputs =
@@ -29,7 +35,7 @@ python3Packages.buildPythonApplication rec {
   wrapProgram $out/bin/sshuttle \
     --prefix PATH : "${mapPath (x: "${x}/bin") buildInputs}" \
   '';
-  
+
   meta = with stdenv.lib; {
     homepage = https://github.com/sshuttle/sshuttle/;
     description = "Transparent proxy server that works as a poor man's VPN";

From 95f3e6ca320556e8ced5582fd0ca46d726282ade Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Sun, 17 Sep 2017 15:32:51 +0200
Subject: [PATCH 395/533] stupidterm: init at 2017-03-15

Stupidterm is a simple and fast VTE-Based terminal emulator which is
configured by a simple ini-file.

fixes #29779
---
 pkgs/applications/misc/stupidterm/default.nix | 36 +++++++++++++++++++
 .../misc/stupidterm/stupidterm.desktop        |  9 +++++
 pkgs/top-level/all-packages.nix               |  5 +++
 3 files changed, 50 insertions(+)
 create mode 100644 pkgs/applications/misc/stupidterm/default.nix
 create mode 100644 pkgs/applications/misc/stupidterm/stupidterm.desktop

diff --git a/pkgs/applications/misc/stupidterm/default.nix b/pkgs/applications/misc/stupidterm/default.nix
new file mode 100644
index 000000000000..5701997fd299
--- /dev/null
+++ b/pkgs/applications/misc/stupidterm/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, pkgconfig, vte, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "stupidterm-2017-03-15";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ vte gtk ];
+
+  src = fetchFromGitHub {
+    owner = "esmil";
+    repo = "stupidterm";
+    rev = "752316a783f52317ffd9f05d32e208dbcafc5ba6";
+    sha256 = "1d8fyhr9sgpxgkwzkyiws0kvhmqfwwyycvcr1qf2wjldiax222lv";
+  };
+
+  makeFlags = "PKGCONFIG=${pkgconfig}/bin/pkg-config binary=stupidterm";
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/applications $out/share/stupidterm
+    cp stupidterm $out/bin
+    substituteAll ${./stupidterm.desktop} $out/share/applications/stupidterm.desktop
+    substituteAll stupidterm.ini $out/share/stupidterm/stupidterm.ini
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple wrapper around the VTE terminal emulator widget for GTK+";
+    longDescription = ''
+      Simple wrapper around the VTE terminal emulator widget for GTK+
+    '';
+    homepage = https://github.com/esmil/stupidterm;
+    license = licenses.lgpl3Plus;
+    maintainers = [ maintainers.etu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/stupidterm/stupidterm.desktop b/pkgs/applications/misc/stupidterm/stupidterm.desktop
new file mode 100644
index 000000000000..c26d46060183
--- /dev/null
+++ b/pkgs/applications/misc/stupidterm/stupidterm.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=20170315
+Name=stupidterm
+Comment=VTE based terminal emulator
+Exec=stupidterm
+Icon=utilities-terminal
+Terminal=false
+Type=Application
+Categories=System;TerminalEmulator;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 77c449c95627..8b656248c3f0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16238,6 +16238,11 @@ with pkgs;
 
   ssvnc = callPackage ../applications/networking/remote/ssvnc { };
 
+  stupidterm = callPackage ../applications/misc/stupidterm {
+    vte = gnome3.vte;
+    gtk = gtk3;
+  };
+
   styx = callPackage ../applications/misc/styx { };
 
   tecoc = callPackage ../applications/editors/tecoc { };

From f1a2b8627e82326293d725bbd6be29eaf2c6ed5e Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix+github@lancelotsix.com>
Date: Tue, 26 Sep 2017 08:51:54 +0200
Subject: [PATCH 396/533] pythonPackages.channels: 1.1.6 -> 1.1.8 (#29772)

---
 pkgs/development/python-modules/channels/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index 4dfe83f6758b..e5c92ffcde26 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildPythonPackage, fetchurl,
+{ stdenv, buildPythonPackage, fetchPypi,
   asgiref, django, daphne
 }:
 buildPythonPackage rec {
   pname = "channels";
   name = "${pname}-${version}";
-  version = "1.1.6";
+  version = "1.1.8";
 
-  src = fetchurl {
-    url = "mirror://pypi/c/channels/${name}.tar.gz";
-    sha256 = "44ab9a1f610ecc9ac25d5f90e7a44f49b18de28a05a26fe34e935af257f1eefe";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gsy3hwn1vd709jkw8ay44qrm6aw7qggr312z8xwzq0x4ihjda02";
   };
 
   # Files are missing in the distribution

From 9164517c18bce89df5ffbfd662b8f7e051de0820 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Fri, 15 Sep 2017 16:18:09 +0100
Subject: [PATCH 397/533] nixos/zfs: import encrypted datasets by default for
 zfsUnstable

---
 nixos/modules/tasks/filesystems/zfs.nix | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 145fae432c65..7fee99115329 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -140,6 +140,17 @@ in
           this once.
         '';
       };
+
+      requestEncryptionCredentials = mkOption {
+        type = types.bool;
+        default = config.boot.zfs.enableUnstable;
+        description = ''
+          Request encryption keys or passwords for all encrypted datasets on import.
+
+          Dataset encryption is only supported in zfsUnstable at the moment.
+        '';
+      };
+
     };
 
     services.zfs.autoSnapshot = {
@@ -263,6 +274,10 @@ in
           assertion = !cfgZfs.forceImportAll || cfgZfs.forceImportRoot;
           message = "If you enable boot.zfs.forceImportAll, you must also enable boot.zfs.forceImportRoot";
         }
+        {
+          assertion = cfgZfs.requestEncryptionCredentials -> cfgZfs.enableUnstable;
+          message = "This feature is only available for zfs unstable. Set the NixOS option boot.zfs.enableUnstable.";
+        }
       ];
 
       boot = {
@@ -306,6 +321,9 @@ in
             done
             echo
             if [[ -n "$msg" ]]; then echo "$msg"; fi
+            ${lib.optionalString cfgZfs.requestEncryptionCredentials ''
+              zfs load-key -a
+            ''}
         '') rootPools));
       };
 

From 8fcf95f102f6ff58a7363eb18a7aed4a3b1c54b5 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Tue, 26 Sep 2017 09:06:51 +0100
Subject: [PATCH 398/533] {zfsUnstable,splUnstable}: 2017-09-12 -> 2017-09-26

---
 pkgs/os-specific/linux/spl/default.nix | 6 +++---
 pkgs/os-specific/linux/zfs/default.nix | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 2d8ee2719da9..31af8a49de12 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -68,8 +68,8 @@ in
     };
 
     splUnstable = common {
-      version = "2017-08-11";
-      rev = "9df9692637aeee416f509c7f39655beb2d35b549";
-      sha256 = "1dggf6xqgk2f7vccv6cgvr8krj7h9f921szp1j2qbxnnq41m37mi";
+      version = "2017-09-26";
+      rev = "e8474f9ad3b3d23c3277535c4f53f8fd1e6cbd74";
+      sha256 = "1hydfhmngpq31gxkxipqxnin74l760d1ia202h12vsgix9sp32h7";
     };
 }
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index c3af49e08f20..6ab9063d7194 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -157,10 +157,10 @@ in {
     incompatibleKernelVersion = null;
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "2017-09-12";
+    version = "2017-09-26";
 
-    rev = "ded8f06a3cfee60b3a8ea5309e9c4d0e567ed3b5";
-    sha256 = "0yn4fg4a00hpflmmr0jbbhfb921nygpw2xbbjy35abl57k6zk375";
+    rev = "7e98073379353a05498ac5a2f1a5df2a2257d6b0";
+    sha256 = "1hydfhmngpq31gxkxipqxnin74l760d1ia202h12vsgix9sp32h7";
     isUnstable = true;
 
     extraPatches = [

From 2f23a83920107678ca1792a11d19e1cb37df3ace Mon Sep 17 00:00:00 2001
From: Stefan Siegl <stefan.siegl@mayflower.de>
Date: Tue, 26 Sep 2017 10:14:27 +0200
Subject: [PATCH 399/533] php: fix build wrt. new postgres.dev build output

Refs commit b0280f598e4b3f6ebf33ad2115734e4735df443a
---
 pkgs/development/interpreters/php/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index ed018a942273..7b832fa6eed7 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -99,12 +99,12 @@ let
         };
 
         postgresql = {
-          configureFlags = ["--with-pgsql=${postgresql}"];
+          configureFlags = ["--with-pgsql=${postgresql.dev}"];
           buildInputs = [ postgresql ];
         };
 
         pdo_pgsql = {
-          configureFlags = ["--with-pdo-pgsql=${postgresql}"];
+          configureFlags = ["--with-pdo-pgsql=${postgresql.dev}"];
           buildInputs = [ postgresql ];
         };
 

From dd6591c5067cab6097ad1576ebfc14d55cfb5913 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Tue, 26 Sep 2017 08:14:37 +0800
Subject: [PATCH 400/533] uchiwa: 0.25.3 -> 0.26.0

---
 pkgs/servers/monitoring/uchiwa/bower-packages.nix | 12 ++++++------
 pkgs/servers/monitoring/uchiwa/src.nix            |  4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/pkgs/servers/monitoring/uchiwa/bower-packages.nix b/pkgs/servers/monitoring/uchiwa/bower-packages.nix
index 8a4e0e571b18..95218c76ea76 100644
--- a/pkgs/servers/monitoring/uchiwa/bower-packages.nix
+++ b/pkgs/servers/monitoring/uchiwa/bower-packages.nix
@@ -1,15 +1,15 @@
 # Generated by bower2nix v3.1.1 (https://github.com/rvl/bower2nix)
 { fetchbower, buildEnv }:
 buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
-  (fetchbower "uchiwa-web" "0.25.3" "0.25.3" "065qyrm1vyi8fp5d5b0b8q5nk8gwh0kcrckl2q1d30c6zlqshg0v")
-  (fetchbower "angular" "1.6.5" "~1.6.3" "0iy7crwr2akh6pmfslbnsrw8m91rffqjibjmzza78xmpk1f4hs73")
+  (fetchbower "uchiwa-web" "0.26.0" "0.26.0" "1p091rsb78wixpj5h5n4sm0a5ad60w6wi1lq7ljy31x5c5srd3l8")
+  (fetchbower "angular" "1.6.6" "~1.6.3" "1h0irwglk6qybnn5j7g25m01fx61bzjb2ina4l50a73x617s8a7v")
   (fetchbower "angular-bootstrap" "2.2.0" "~2.2.0" "0zbimxmrmgbz60xg5rnkhv4gd0zvp5fdjdx5407r6a942irfy2x7")
-  (fetchbower "angular-cookies" "1.6.5" "~1.6.3" "135yipc576gl9svsk30q62mbf70yp9hy0mbsmvx4jrl9kais495p")
+  (fetchbower "angular-cookies" "1.6.6" "~1.6.3" "0fkhm885mcqvy9c8hb072gby3yay1hcs5d391pshikwam98d093c")
   (fetchbower "angular-gravatar" "0.4.2" "~0.4.2" "19q40hsjhwz8y3phmyrrg27f20qpaknvw44cfx4gliin2zqwwsfk")
   (fetchbower "angular-moment" "1.0.1" "~1.0.1" "1ydnilyf6nysxxjir51lhn92k7mjqii5277xxdqnpcvc376la244")
-  (fetchbower "angular-resource" "1.6.5" "~1.6.3" "02jiqnkn14kn69ybb74ajhaxxwh71fh5b1g67fajhirkiimpnmxy")
-  (fetchbower "angular-route" "1.6.5" "~1.6.3" "1n1q9a9khvqjas0jb277pzk44zjziblrflvh6w0s6im3ljcb6a7g")
-  (fetchbower "angular-sanitize" "1.6.5" "~1.6.3" "0jj56xwrlyslr3pi94xnbz7xy5g7pwg47p2pnbwhr1a1piwfzh87")
+  (fetchbower "angular-resource" "1.6.6" "~1.6.3" "119ly273fa0ygb416d03av6z9zb78m618nbdqim7p6vhn07h3sww")
+  (fetchbower "angular-route" "1.6.6" "~1.6.3" "1gzndkaqjgg2cjmch71nlcf1l0lwkjjjh2xaq1yhgcbj47k0j878")
+  (fetchbower "angular-sanitize" "1.6.6" "~1.6.3" "1pyw0prnm6pca563kn0cg1sx0mxs7hyhmg06161mjr3n8c978x3y")
   (fetchbower "angular-toastr" "1.6.0" "1.6.0" "1yksx3a4c3cva5liq087z4j196p0vxp1mzhbr27qr9wmyy6z84z1")
   (fetchbower "angular-tools/ng-jsoneditor" "ea138469f157d8f2b54ec5b8dcf4b08a55b61459" "ea138469f157d8f2b54ec5b8dcf4b08a55b61459" "1rr7xf3a2l15g2nmd9svq8ijy1v0igc5jdpwp21kna1kzc65jg3m")
   (fetchbower "angular-ua-parser" "0.0.2" "0.0.2" "0z24747b0sywjyzl5chcwr96mpmyr595bry63c4d35mp186ail5z")
diff --git a/pkgs/servers/monitoring/uchiwa/src.nix b/pkgs/servers/monitoring/uchiwa/src.nix
index c0ddf9cb7a4a..4b14eea17ff8 100644
--- a/pkgs/servers/monitoring/uchiwa/src.nix
+++ b/pkgs/servers/monitoring/uchiwa/src.nix
@@ -1,4 +1,4 @@
 {
-  version = "0.25.3-1";
-  sha256  = "1sgr9fpjfx7qn7dbiaxhsw7iagcrqi39bjc0ba1lh1db5jh7ymks";
+  version = "0.26.0-1";
+  sha256  = "10f71wsv43jbbwvw3wicr8r1bml51smfakf4r10mi4zq1l37h77z";
 }

From 472bb9681d50f263ac092e634070ddd6fcb3f03f Mon Sep 17 00:00:00 2001
From: berdario <berdario@gmail.com>
Date: Tue, 26 Sep 2017 10:58:20 +0100
Subject: [PATCH 401/533] rhino: remove dependency on GCJ (#29759)

---
 pkgs/development/libraries/java/rhino/default.nix | 3 +--
 pkgs/top-level/all-packages.nix                   | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix
index f106bbe6ebca..c3e80fe87f48 100644
--- a/pkgs/development/libraries/java/rhino/default.nix
+++ b/pkgs/development/libraries/java/rhino/default.nix
@@ -2,7 +2,6 @@
 
 let
   version = "1.7R2";
-  options = "-Dbuild.compiler=gcj";   # FIXME: We assume GCJ here.
 
   xbeans  = fetchurl {
     url = "http://archive.apache.org/dist/xmlbeans/binaries/xmlbeans-2.2.0.zip";
@@ -33,7 +32,7 @@ stdenv.mkDerivation {
 
   buildInputs = [ unzip ant javac jvm ];
 
-  buildPhase = "ant ${options} jar";
+  buildPhase = "ant jar";
   doCheck    = false;
 
   # FIXME: Install javadoc as well.
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8b656248c3f0..47f84558e3f6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10383,8 +10383,8 @@ with pkgs;
   resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { };
 
   rhino = callPackage ../development/libraries/java/rhino {
-    javac = gcj;
-    jvm = gcj;
+    javac = jdk;
+    jvm = jre;
   };
 
   rlog = callPackage ../development/libraries/rlog { };

From 1d163835c8c681f3fc56fc488c67edbbf8f63fe4 Mon Sep 17 00:00:00 2001
From: Francesco Gazzetta <fgaz@users.noreply.github.com>
Date: Tue, 26 Sep 2017 12:01:11 +0200
Subject: [PATCH 402/533] bash-supergenpass: init at 2012-11-02 (#29797)

* Add fgaz to mantainers

* bash-supergenpass: init at 2012-11-02
---
 lib/maintainers.nix                           |  1 +
 .../security/bash-supergenpass/default.nix    | 39 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 +
 3 files changed, 42 insertions(+)
 create mode 100644 pkgs/tools/security/bash-supergenpass/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 1feb528fd87b..af1882f8c2c8 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -200,6 +200,7 @@
   fadenb = "Tristan Helmich <tristan.helmich+nixos@gmail.com>";
   falsifian = "James Cook <james.cook@utoronto.ca>";
   fare = "Francois-Rene Rideau <fahree@gmail.com>";
+  fgaz = "Francesco Gazzetta <francygazz@gmail.com>";
   florianjacob = "Florian Jacob <projects+nixos@florianjacob.de>";
   flosse = "Markus Kohlhase <mail@markus-kohlhase.de>";
   fluffynukeit = "Daniel Austin <dan@fluffynukeit.com>";
diff --git a/pkgs/tools/security/bash-supergenpass/default.nix b/pkgs/tools/security/bash-supergenpass/default.nix
new file mode 100644
index 000000000000..f85d847f5f95
--- /dev/null
+++ b/pkgs/tools/security/bash-supergenpass/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchFromGitHub, makeWrapper, openssl, coreutils, gnugrep }:
+
+stdenv.mkDerivation rec {
+  name = "bash-supergenpass-unstable-${version}";
+  version = "2012-11-02";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  src = fetchFromGitHub {
+    owner = "lanzz";
+    repo = "bash-supergenpass";
+    rev = "c84eaa22fb59ab6c390e7f2de7984513347e3a9a";
+    sha256 = "0d3l55kdrf6arb98vwwz9ww55ing5w323fg7546v56hlq3hs5qc9";
+  };
+
+  installPhase = ''
+    install -m755 -D supergenpass.sh "$out/bin/supergenpass"
+    wrapProgram "$out/bin/supergenpass" --prefix PATH : "${stdenv.lib.makeBinPath [ openssl coreutils gnugrep ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Bash shell-script implementation of SuperGenPass password generation";
+    longDescription = ''
+      Bash shell-script implementation of SuperGenPass password generation
+      Usage: ./supergenpass.sh <domain> [ <length> ]
+
+      Default <length> is 10, which is also the original SuperGenPass default length.
+
+      The <domain> parameter is also optional, but it does not make much sense to omit it.
+
+      supergenpass will ask for your master password interactively, and it will not be displayed on your terminal.
+    '';
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ fgaz ];
+    homepage = https://github.com/lanzz/bash-supergenpass;
+  };
+}
+
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 47f84558e3f6..9894612eab9a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1152,6 +1152,8 @@ with pkgs;
 
   stagit = callPackage ../development/tools/stagit { };
 
+  bash-supergenpass = callPackage ../tools/security/bash-supergenpass { };
+
   syscall_limiter = callPackage ../os-specific/linux/syscall_limiter {};
 
   syslogng = callPackage ../tools/system/syslog-ng { };

From 086c636eb7f894a55f752b6164dac4a87d8bcee9 Mon Sep 17 00:00:00 2001
From: Stefan Siegl <stefan.siegl@mayflower.de>
Date: Tue, 26 Sep 2017 12:50:18 +0200
Subject: [PATCH 403/533] kea: fix path to pg_config

refs commit b0280f598e4b3f6ebf33ad2115734e4735df443a
---
 pkgs/tools/networking/kea/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index e1829bcaf7d8..cd4c45121692 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--localstatedir=/var"
     "--with-botan-config=${botan}/bin/botan-config-1.10"
-    "--with-dhcp-pgsql=${postgresql}/bin/pg_config"
+    "--with-dhcp-pgsql=${postgresql.dev}/bin/pg_config"
     "--with-dhcp-mysql=${mysql.client.dev}/bin/mysql_config"
   ];
 

From 8815b819264e17b094767e8dfdc49ccdc92070f7 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Tue, 26 Sep 2017 12:28:02 +0000
Subject: [PATCH 404/533] libmirage: add to top level

---
 pkgs/top-level/all-packages.nix | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 751aaf73216b..44e9be12c29b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9259,6 +9259,8 @@ with pkgs;
 
   libminc = callPackage ../development/libraries/libminc { };
 
+  libmirage = callPackage ../misc/emulators/cdemu/libmirage.nix { }; 
+  
   libmkv = callPackage ../development/libraries/libmkv { };
 
   libmms = callPackage ../development/libraries/libmms { };

From 2f3af251be07f7411b75e324eb025092f0c102df Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Tue, 26 Sep 2017 12:38:26 +0000
Subject: [PATCH 405/533] clojure: correct license (three-clause BSD ->
 EPLv1.0)

This is retroactive. See: https://clojure.org/community/license
---
 pkgs/development/interpreters/clojure/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index 8c724577359b..ed2c4db20f7c 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -20,10 +20,10 @@ stdenv.mkDerivation {
     makeWrapper ${jdk.jre}/bin/java $out/bin/clojure --add-flags "-cp $out/share/java/clojure.jar clojure.main"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A Lisp dialect for the JVM";
     homepage = https://clojure.org/;
-    license = stdenv.lib.licenses.bsd3;
+    license = licenses.epl10;
     longDescription = ''
       Clojure is a dynamic programming language that targets the Java
       Virtual Machine. It is designed to be a general-purpose language,
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
       offers a software transactional memory system and reactive Agent
       system that ensure clean, correct, multithreaded designs.
     '';
-    maintainers = with stdenv.lib.maintainers; [ the-kenny ];
-    platforms = with stdenv.lib.platforms; unix;
+    maintainers = with maintainers; [ the-kenny ];
+    platforms = platforms.unix;
   };
 }

From 5a2a35aef3fbb9f392ee8ac7e3d7727af86f0ceb Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 26 Sep 2017 08:50:00 -0400
Subject: [PATCH 406/533] git: 2.14.1 -> 2.14.2

---
 .../version-management/git-and-tools/git/default.nix          | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 46c48fd1579f..fcf35a9ca34e 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -13,7 +13,7 @@
 }:
 
 let
-  version = "2.14.1";
+  version = "2.14.2";
   svn = subversionClient.override { perlBindings = true; };
 in
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1iic3wiihxp3l3k6d4z886v3869c3dzgddjxnd5124wy1rnlqwkg";
+    sha256 = "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah";
   };
 
   hardeningDisable = [ "format" ];

From bec98b765d90e209bff7cba7793fdc28df5c455b Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 26 Sep 2017 08:52:44 -0400
Subject: [PATCH 407/533] kotlin: 1.1.4-2 -> 1.1.50

---
 pkgs/development/compilers/kotlin/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 65c2125dfbca..bc24cdfb87e9 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.4-2";
+  version = "1.1.50";
   name = "kotlin-${version}";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "09sikwk5xxn4b30icbq28mjs4lm9xbj0bv5yjx75r165iz65g2cv";
+    sha256 = "01y7m0r5wa2apd05c38h77060javgbj8072vd08lz4qaw6c6445m";
   };
 
   propagatedBuildInputs = [ jre ] ;

From 19ecb7f287c8a85775a099aec1ce5866fefd38b9 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 04:58:12 +0200
Subject: [PATCH 408/533] tor-browser-bundle: init at 7.0.1 (from source)

The original browser bundle expects to run from a bundled directory,
typically under user's home.  This version creates a firefox distribution
with preloaded extensions and settings that functions more like an
ordinary firefox installation.

The approach used here could be generalized to allow specification of
custom firefox distributions.  Eventually, the code will be factored so
that the tbb is just an instance of that more general construct (firefox
base + extensions + prefs).

Currently, we use the latest upstream versions of extensions and so on.
Eventually we want to track the upstream bundle more closely and ideally
use the exact same inputs (firefox source, extension sources).

To avoid mixing up profile data, all runtime state is stored under
$XDG_DATA_HOME/tor-browser.

Major TODO items
- Pluggable transports
- Upstream TBB version parity
- Avoid fetchgit
- Build NoScript from source (no upstream source repo, however, must rely
  on third-parties)
- Improved notation for packaging extensions
- Feature parity with the binary bundle (apulse and runtime purity, in
  particular)
---
 .../browsers/tor-browser-bundle/default.nix   | 209 ++++++++++++++++++
 pkgs/top-level/all-packages.nix               |   5 +
 2 files changed, 214 insertions(+)
 create mode 100644 pkgs/applications/networking/browsers/tor-browser-bundle/default.nix

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
new file mode 100644
index 000000000000..048017cae5b2
--- /dev/null
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -0,0 +1,209 @@
+{ stdenv
+, lib
+, fetchurl
+, fetchgit
+
+, tor
+, tor-browser-unwrapped
+
+# Extensions, common
+, zip
+
+# HTTPS Everywhere
+, git
+, libxml2 # xmllint
+, python27
+, python27Packages
+, rsync
+}:
+
+let
+  tor-browser-build_src = fetchgit {
+    url = "https://git.torproject.org/builders/tor-browser-build.git";
+    rev = "refs/tags/tbb-7.5a5-build5";
+    sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9";
+  };
+
+  firefoxExtensions = {
+    https-everywhere = stdenv.mkDerivation rec {
+      name = "https-everywhere-${version}";
+      version = "5.2.21";
+
+      src = fetchgit {
+        url = "https://git.torproject.org/https-everywhere.git";
+        rev = "refs/tags/${version}";
+        sha256 = "0z9madihh4b4z4blvfmh6w1hsv8afyi0x7b243nciq9r4w55xgfa";
+      };
+
+      nativeBuildInputs = [
+        git
+        libxml2 # xmllint
+        python27
+        python27Packages.lxml
+        rsync
+        zip
+      ];
+
+      buildCommand = ''
+        cp -dR --no-preserve=mode "$src" src
+        cd src
+
+        sed -i makexpi.sh -e '104d' # cp -a translations/* fails because the dir is empty ...
+        $shell ./makexpi.sh ${version} --no-recurse
+        install -m 444 -Dt $out pkg"/"*.xpi
+      '';
+
+      meta = {
+        homepage = https://gitweb.torproject.org/https-everywhere.git/;
+      };
+    };
+
+    noscript = fetchurl {
+      url = https://secure.informaction.com/download/releases/noscript-5.0.10.xpi;
+      sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
+    };
+
+    torbutton = stdenv.mkDerivation rec {
+      name = "torbutton-${version}";
+      version = "1.9.8.1";
+
+      src = fetchgit {
+        url = "https://git.torproject.org/torbutton.git";
+        rev = "refs/tags/${version}";
+        sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
+      };
+
+      nativeBuildInputs = [ zip ];
+
+      buildCommand = ''
+        cp -dR --no-preserve=mode "$src" src
+        cd src
+
+        $shell ./makexpi.sh
+        install -m 444 -Dt $out pkg"/"*.xpi
+      '';
+    };
+
+    tor-launcher = stdenv.mkDerivation rec {
+      name = "tor-launcher-${version}";
+      version = "0.2.12.3";
+
+      src = fetchgit {
+        url = "https://git.torproject.org/tor-launcher.git";
+        rev = "refs/tags/${version}";
+        sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q";
+      };
+
+      nativeBuildInputs = [ zip ];
+
+      buildCommand = ''
+        cp -dR --no-preserve=mode "$src" src
+        cd src
+
+        make package
+        install -m 444 -Dt $out pkg"/"*.xpi
+      '';
+    };
+  };
+in
+stdenv.mkDerivation rec {
+  name = "tor-browser-bundle-${version}";
+  version = tor-browser-unwrapped.version;
+
+  buildInputs = [ tor-browser-unwrapped tor ];
+
+  unpackPhase = ":";
+
+  buildPhase = ":";
+
+  installPhase = ''
+    TBBUILD=${tor-browser-build_src}/projects/tor-browser
+
+    self=$out/lib/tor-browser
+    mkdir -p $self && cd $self
+
+    cp -dR ${tor-browser-unwrapped}/lib"/"*"/"* .
+    chmod -R +w .
+
+    # Prepare for autoconfig
+    cat >defaults/pref/autoconfig.js <<EOF
+    pref("general.config.filename", "mozilla.cfg");
+    pref("general.config.obscure_value", 0);
+    EOF
+
+    # Hardcoded configuration
+    cat >mozilla.cfg <<EOF
+    // First line must be a comment
+
+    // Always update via Nixpkgs
+    lockPref("app.update.auto", false);
+    lockPref("app.update.enabled", false);
+    lockPref("extensions.update.autoUpdateDefault", false);
+    lockPref("extensions.update.enabled", false);
+    lockPref("extensions.torbutton.versioncheck_enabled", false);
+
+    // Where to find the Nixpkgs tor executable & config
+    lockPref("extensions.torlauncher.tor_path", "${tor}/bin/tor");
+    lockPref("extensions.torlauncher.torrc-defaults_path", "$self/torrc-defaults");
+
+    // Captures store paths
+    clearPref("extensions.xpiState");
+
+    // Insist on using IPC for communicating with Tor
+    //
+    // Defaults to $XDG_RUNTIME_DIR/Tor/{socks,control}.socket
+    lockPref("extensions.torlauncher.control_port_use_ipc", true);
+    lockPref("extensions.torlauncher.socks_port_use_ipc", true);
+    EOF
+
+    # Preload extensions
+    install -m 444 -D \
+      ${firefoxExtensions.tor-launcher}/tor-launcher-*.xpi \
+      browser/extensions/tor-launcher@torproject.org.xpi
+    install -m 444 -D \
+      ${firefoxExtensions.torbutton}/torbutton-*.xpi \
+      browser/extensions/torbutton@torproject.org.xpi
+    install -m 444 -D \
+      ${firefoxExtensions.https-everywhere}/https-everywhere-*-eff.xpi \
+      browser/extensions/https-everywhere-eff@eff.org.xpi
+    install -m 444 -D \
+      ${firefoxExtensions.noscript} \
+      browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
+
+    # Copy bundle data
+    cat \
+      $TBBUILD/Bundle-Data/linux/Data/Tor/torrc-defaults \
+      $TBBUILD/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix \
+      >> torrc-defaults
+
+    cat \
+      $TBBUILD/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js \
+      $TBBUILD/Bundle-Data/PTConfigs/bridge_prefs.js >> defaults/pref/extension-overrides.js \
+      >> defaults/pref/extension-overrides.js
+
+    # Generate a suitable wrapper
+    mkdir -p $out/bin
+    cat >$out/bin/tor-browser <<EOF
+    #! ${stdenv.shell} -e
+
+    THE_HOME=\$HOME
+    TBB_HOME=\''${TBB_HOME:-\''${XDG_DATA_HOME:-$HOME/.local/share}/tor-browser}
+    mkdir -p "\$TBB_HOME"
+
+    HOME=\$TBB_HOME
+    cd "\$HOME"
+
+    exec $self/firefox -no-remote about:tor
+    EOF
+    chmod +x $out/bin/tor-browser
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An unofficial version of the tor browser bundle, built from source";
+    homepage = https://torproject.org/;
+    license = licenses.unfreeRedistributable; # TODO: check this
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+    maintainers = with maintainers; [ joachifm ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9894612eab9a..9cbcc90a24d9 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4636,6 +4636,11 @@ with pkgs;
 
   tor-browser-bundle-bin = callPackage ../applications/networking/browsers/tor-browser-bundle-bin { };
 
+  tor-browser-bundle = callPackage ../applications/networking/browsers/tor-browser-bundle {
+    stdenv = stdenvNoCC;
+    tor-browser-unwrapped = firefoxPackages.tor-browser;
+  };
+
   touchegg = callPackage ../tools/inputmethods/touchegg { };
 
   torsocks = callPackage ../tools/security/tor/torsocks.nix { };

From ff5626652d421f595fcb56bf9d3d37bf59105df7 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 26 Sep 2017 08:58:58 -0400
Subject: [PATCH 409/533] oh-my-zsh: 2017-06-22 -> 2017-09-24

---
 pkgs/shells/oh-my-zsh/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/shells/oh-my-zsh/default.nix b/pkgs/shells/oh-my-zsh/default.nix
index 22f5aa48d610..8b8a67c2452a 100644
--- a/pkgs/shells/oh-my-zsh/default.nix
+++ b/pkgs/shells/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2017-06-22";
+  version = "2017-09-24";
   name = "oh-my-zsh-${version}";
 
   src = fetchgit {
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    rev = "d848c94804918138375041a9f800f401bec12068";
-    sha256 = "0mxmqkdpimwrskqjri3lp3haj1hzf583g7psnv34y3hyymzcx1h6";
+    rev = "accdcb2f1c3cca40527fef1fe4ab2d39eb6cf897";
+    sha256 = "0jrixz02mdab63yr0s16sr8gzwzhf9xnhad852swnfp3c7qlq06z";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];

From 44beb565409b496fa6763a246e15edf5d0155ea0 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Tue, 26 Sep 2017 11:04:27 +0000
Subject: [PATCH 410/533] sct: fix segfault when DISPLAY is empty, clean up
 derivation

---
 pkgs/tools/X11/sct/DISPLAY-segfault.patch | 10 ++++++
 pkgs/tools/X11/sct/default.nix            | 41 ++++++++++-------------
 2 files changed, 28 insertions(+), 23 deletions(-)
 create mode 100644 pkgs/tools/X11/sct/DISPLAY-segfault.patch

diff --git a/pkgs/tools/X11/sct/DISPLAY-segfault.patch b/pkgs/tools/X11/sct/DISPLAY-segfault.patch
new file mode 100644
index 000000000000..6b83afa332ba
--- /dev/null
+++ b/pkgs/tools/X11/sct/DISPLAY-segfault.patch
@@ -0,0 +1,10 @@
+--- a/sct.c	2017-09-22 00:44:20.270421881 +0000
++++ b/sct.c	2017-09-26 10:50:38.964562740 +0000
+@@ -36,6 +36,7 @@
+ main(int argc, char **argv)
+ {
+ 	Display *dpy = XOpenDisplay(NULL);
++	if (!dpy) exit(1);
+ 	int screen = DefaultScreen(dpy);
+ 	Window root = RootWindow(dpy, screen);
+ 
diff --git a/pkgs/tools/X11/sct/default.nix b/pkgs/tools/X11/sct/default.nix
index 1890e9c5266b..9f45bbe30871 100644
--- a/pkgs/tools/X11/sct/default.nix
+++ b/pkgs/tools/X11/sct/default.nix
@@ -1,31 +1,26 @@
-{stdenv, fetchurl, libX11, libXrandr}:
+{ stdenv, fetchurl, libX11, libXrandr }:
+
 stdenv.mkDerivation rec {
   name = "sct";
-  buildInputs = [libX11 libXrandr];
+
   src = fetchurl {
     url = http://www.tedunangst.com/flak/files/sct.c;
     sha256 = "01f3ndx3s6d2qh2xmbpmhd4962dyh8yp95l87xwrs4plqdz6knhd";
-    
-    # Discussion regarding the checksum and the source code can be found in issue #17163 
-    # The code seems unmaintained, yet an unknown (probably small change) in the code caused 
-    # failed builds as the checksum had changed.
-    # The checksum is updated for now, however, this is unpractical and potentially unsafe 
-    # so any future changes might warrant a fork of the (feature complete) project. 
-    # The code is under public domain.
-    
   };
-  phases = ["patchPhase" "buildPhase" "installPhase"];
-  patchPhase = ''
-    sed -re "/Xlibint/d" ${src} > sct.c 
-  '';
-  buildPhase = "gcc -std=c99 sct.c -o sct -lX11 -lXrandr -lm";
-  installPhase = ''
-    mkdir -p "$out/bin"
-    cp sct "$out/bin"
-  '';
-  meta = {
-    description = ''A minimal utility to set display colour temperature'';
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = with stdenv.lib.platforms; linux ++ freebsd ++ openbsd;
+
+  unpackPhase = "cat ${src} > sct.c";
+  patches = [ ./DISPLAY-segfault.patch ];
+
+  buildInputs = [ libX11 libXrandr ];
+  buildPhase = "cc sct.c -o sct -lm -lX11 -lXrandr";
+
+  installPhase = "install -Dt $out/bin sct";
+
+  meta = with stdenv.lib; {
+    homepage = https://www.tedunangst.com/flak/post/sct-set-color-temperature;
+    description = "A minimal utility to set display colour temperature";
+    maintainers = [ maintainers.raskin ];
+    license = licenses.publicDomain;
+    platforms = with platforms; linux ++ freebsd ++ openbsd;
   };
 }

From 4ec02cc3321b968ca265c3b0475d1e18485acfb2 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Tue, 26 Sep 2017 10:12:22 -0400
Subject: [PATCH 411/533] skopeo: 0.1.22 -> 0.1.23

---
 pkgs/development/tools/skopeo/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 9028a796381c..2c3fb763dc52 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -4,7 +4,7 @@ with stdenv.lib;
 
 buildGoPackage rec {
   name = "skopeo-${version}";
-  version = "0.1.22";
+  version = "0.1.23";
   rev = "v${version}";
 
   goPackagePath = "github.com/projectatomic/skopeo";
@@ -16,7 +16,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "projectatomic";
     repo = "skopeo";
-    sha256 = "0aivs37bcvx3g22a9r3q1vj2ahw323g1vaq9jzbmifm9k0pb07jy";
+    sha256 = "1axxnm87fpsd7q28v951ilhmzd42k8wyh741gdfdcajjwglfj0nn";
   };
 
   patches = [

From 186c120bed6b5d4a9b1549159aa567005402000c Mon Sep 17 00:00:00 2001
From: Dan Peebles <pumpkin@me.com>
Date: Wed, 30 Aug 2017 21:57:05 -0400
Subject: [PATCH 412/533] nixos-install: re-enable --chroot option

I forgot to implement it the first time around. Whoops!
---
 .../modules/installer/tools/nixos-install.sh  | 33 ++++++++++++++++---
 1 file changed, 28 insertions(+), 5 deletions(-)

diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index 087fbcd4512f..bd6c342ee277 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -102,7 +102,7 @@ fi
 extraBuildFlags+=(--option "build-users-group" "$buildUsersGroup")
 
 # Inherit binary caches from the host
-# TODO: will this still work with Nix 1.12 now that it has no perl? Probably not... 
+# TODO: will this still work with Nix 1.12 now that it has no perl? Probably not...
 binary_caches="$(@perl@/bin/perl -I @nix@/lib/perl5/site_perl/*/* -e 'use Nix::Config; Nix::Config::readConfig; print $Nix::Config::config{"binary-caches"};')"
 extraBuildFlags+=(--option "binary-caches" "$binary_caches")
 
@@ -110,8 +110,33 @@ nixpkgs="$(readlink -f "$(nix-instantiate --find-file nixpkgs)")"
 export NIX_PATH="nixpkgs=$nixpkgs:nixos-config=$mountPoint/$NIXOS_CONFIG"
 unset NIXOS_CONFIG
 
-# TODO: do I need to set NIX_SUBSTITUTERS here or is the --option binary-caches above enough?
+# These get created in nixos-prepare-root as well, but we want to make sure they're here in case we're
+# running with --chroot. TODO: --chroot should just be split into a separate tool.
+mkdir -m 0755 -p "$mountPoint/dev" "$mountPoint/proc" "$mountPoint/sys"
 
+# Set up some bind mounts we'll want regardless of chroot or not
+mount --rbind /dev "$mountPoint/dev"
+mount --rbind /proc "$mountPoint/proc"
+mount --rbind /sys "$mountPoint/sys"
+
+# If we asked for a chroot, that means we're not actually installing anything (yeah I was confused too)
+# and we just want to run a command in the context of a $mountPoint that we're assuming has already been
+# set up by a previous nixos-install invocation. In that case we set up some remaining bind mounts and
+# exec the requested command, skipping the rest of the installation procedure.
+if [ -n "$runChroot" ]; then
+    mount -t tmpfs -o "mode=0755" none $mountPoint/run
+    rm -rf $mountPoint/var/run
+    ln -s /run $mountPoint/var/run
+    for f in /etc/resolv.conf /etc/hosts; do rm -f $mountPoint/$f; [ -f "$f" ] && cp -Lf $f $mountPoint/etc/; done
+    for f in /etc/passwd /etc/group;      do touch $mountPoint/$f; [ -f "$f" ] && mount --rbind -o ro $f $mountPoint/$f; done
+
+    if ! [ -L $mountPoint/nix/var/nix/profiles/system ]; then
+        echo "$0: installation not finished; cannot chroot into installation directory"
+        exit 1
+    fi
+    ln -s /nix/var/nix/profiles/system $mountPoint/run/current-system
+    exec chroot $mountPoint "${chrootCommand[@]}"
+fi
 
 # A place to drop temporary closures
 trap "rm -rf $tmpdir" EXIT
@@ -145,9 +170,7 @@ nix-store --export $channel_root > $channel_closure
 # nixos-prepare-root doesn't currently do anything with file ownership, so we set it up here instead
 chown @root_uid@:@nixbld_gid@ $mountPoint/nix/store
 
-mount --rbind /dev $mountPoint/dev
-mount --rbind /proc $mountPoint/proc
-mount --rbind /sys $mountPoint/sys
+
 
 # Grub needs an mtab.
 ln -sfn /proc/mounts $mountPoint/etc/mtab

From 6498ac609acb2db60a75556315de27bd982132af Mon Sep 17 00:00:00 2001
From: Vaibhav Sagar <vaibhavsagar@gmail.com>
Date: Tue, 26 Sep 2017 22:48:09 +0800
Subject: [PATCH 413/533] vim: 8.0.0442 -> 8.0.1150

---
 pkgs/applications/editors/vim/common.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index 1d661014c772..18e1df4575da 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.0.0442";
+  version = "8.0.1150";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "1pyyrkb7k5vhm1ijrh4v2f50lxhrgga5mm0gvmz4v704z0h585yg";
+    sha256 = "1k1qkmb2jbymqikrp99q1yjagdf508xzabrw7b08dlh926b2v23j";
   };
 
   enableParallelBuilding = true;

From 4b85b235348698460f6b0f90b312c6c097d247a7 Mon Sep 17 00:00:00 2001
From: Michael Weiss <root@tracer.primeos.eu>
Date: Tue, 26 Sep 2017 16:53:42 +0200
Subject: [PATCH 414/533] wlc: Refactor the code

The code was a bit messy (unused parameters, etc.) and caused some
warnings/errors which could potentially cause some problems.
---
 pkgs/development/libraries/wlc/default.nix | 35 +++++++++++-----------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
index 832600fed874..2c0f8c784183 100644
--- a/pkgs/development/libraries/wlc/default.nix
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -1,36 +1,37 @@
-{ lib, stdenv, fetchgit, cmake, pkgconfig
-, glibc, wayland, pixman, libxkbcommon, libinput, libxcb, xcbutilwm, xcbutilimage, mesa, libdrm, udev, systemd, dbus_libs
-, libpthreadstubs, libX11, libXau, libXdmcp, libXext, libXdamage, libxshmfence, libXxf86vm
-, wayland-protocols
+{ stdenv, fetchFromGitHub, cmake, pkgconfig
+, wayland, pixman, libxkbcommon, libinput, libxcb, xcbutilwm, xcbutilimage, mesa
+, libdrm, udev, libX11, libXdamage, systemd, dbus_libs, wayland-protocols
+, libpthreadstubs, libXau, libXdmcp, libXext, libXxf86vm
 }:
 
 stdenv.mkDerivation rec {
   name = "wlc-${version}";
   version = "0.0.9";
 
-  src = fetchgit {
-    url = "https://github.com/Cloudef/wlc";
-    rev = "refs/tags/v${version}";
-    sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
+  src = fetchFromGitHub {
+    owner = "Cloudef";
+    repo = "wlc";
+    rev = "v${version}";
     fetchSubmodules = true;
-   };
+    sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
+  };
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [
-    wayland pixman libxkbcommon libinput libxcb xcbutilwm xcbutilimage mesa libdrm udev
-    libX11 libXdamage systemd dbus_libs wayland-protocols
+    wayland pixman libxkbcommon libinput libxcb xcbutilwm xcbutilimage mesa
+    libdrm udev libX11 libXdamage systemd dbus_libs wayland-protocols
+    libpthreadstubs libXau libXdmcp libXext libXxf86vm
   ];
 
-
   doCheck = true;
   checkTarget = "test";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A library for making a simple Wayland compositor";
-    homepage    = https://github.com/Cloudef/wlc;
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ ];
+    inherit (src.meta) homepage;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.
   };
 }

From 05d79c03ec36f8d49d1e2bf2b750c3943c348377 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Tue, 26 Sep 2017 17:06:33 +0200
Subject: [PATCH 415/533] wlc: 0.0.9 -> 0.0.10

Initially the build was failing but it seems like
4b85b235348698460f6b0f90b312c6c097d247a7 already fixed it.
---
 pkgs/development/libraries/wlc/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
index 2c0f8c784183..06e5af6cd5a7 100644
--- a/pkgs/development/libraries/wlc/default.nix
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   name = "wlc-${version}";
-  version = "0.0.9";
+  version = "0.0.10";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = "wlc";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
+    sha256 = "09kvwhrpgkxlagn9lgqxc80jbg56djn29a6z0n6h0dsm90ysyb2k";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];

From bc0aec5d974a6a3269aeb4cec582e51baa433853 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Wed, 20 Sep 2017 11:33:29 -0400
Subject: [PATCH 416/533] doc: Document forthcomming NIX_DEBUG degredations

---
 doc/stdenv.xml | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/doc/stdenv.xml b/doc/stdenv.xml
index dac53bc2b800..a097762130a5 100644
--- a/doc/stdenv.xml
+++ b/doc/stdenv.xml
@@ -1,4 +1,3 @@
-
 <chapter xmlns="http://docbook.org/ns/docbook"
          xmlns:xlink="http://www.w3.org/1999/xlink"
          xml:id="chap-stdenv">
@@ -188,11 +187,13 @@ genericBuild
 
   <varlistentry>
     <term><varname>NIX_DEBUG</varname></term>
-    <listitem><para>If set, <literal>stdenv</literal> will print some
-    debug information during the build.  In particular, the
-    <command>gcc</command> and <command>ld</command> wrapper scripts
-    will print out the complete command line passed to the wrapped
-    tools.</para></listitem>
+    <listitem><para>
+      A natural number indicating how much information to log.
+      If set to 1 or higher, <literal>stdenv</literal> will print moderate debug information during the build.
+      In particular, the <command>gcc</command> and <command>ld</command> wrapper scripts will print out the complete command line passed to the wrapped tools.
+      If set to 6 or higher, the <literal>stdenv</literal> setup script will be run with <literal>set -x</literal> tracing.
+      If set to 7 or higher, the <command>gcc</command> and <command>ld</command> wrapper scripts will also be run with <literal>set -x</literal> tracing.
+    </para></listitem>
   </varlistentry>
 
 </variablelist>

From 127a5f3357eeebc4797fdce66b99b02b831a3a3f Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Tue, 19 Sep 2017 19:10:49 -0400
Subject: [PATCH 417/533] treewide: Use `(( "${NIX_DEBUG:-0}" >= 1) ))`
 consistently

---
 .../build-support/cc-wrapper/add-hardening.sh | 22 +++++++++----------
 pkgs/build-support/cc-wrapper/cc-wrapper.sh   |  2 +-
 pkgs/build-support/cc-wrapper/gnat-wrapper.sh |  2 +-
 .../cc-wrapper/gnatlink-wrapper.sh            |  2 +-
 pkgs/build-support/cc-wrapper/ld-wrapper.sh   |  2 +-
 pkgs/build-support/cc-wrapper/utils.sh        |  2 +-
 pkgs/stdenv/generic/setup.sh                  |  6 ++---
 7 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh
index 34358e04194a..b0e39e455ffc 100644
--- a/pkgs/build-support/cc-wrapper/add-hardening.sh
+++ b/pkgs/build-support/cc-wrapper/add-hardening.sh
@@ -16,14 +16,14 @@ do
   hardeningDisableMap[$flag]=1
 done
 
-if [[ -n "${NIX_DEBUG:-}" ]]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
   printf 'HARDENING: disabled flags:' >&2
   (( "${#hardeningDisableMap[@]}" )) && printf ' %q' "${!hardeningDisableMap[@]}" >&2
   echo >&2
 fi
 
 if [[ -z "${hardeningDisableMap[all]:-}" ]]; then
-  if [[ -n "${NIX_DEBUG:-}" ]]; then
+  if (( "${NIX_DEBUG:-0}" >= 1 )); then
     echo 'HARDENING: Is active (not completely disabled with "all" flag)' >&2;
   fi
   for flag in "${hardeningFlags[@]}"
@@ -31,40 +31,40 @@ if [[ -z "${hardeningDisableMap[all]:-}" ]]; then
     if [[ -z "${hardeningDisableMap[$flag]:-}" ]]; then
       case $flag in
         fortify)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling fortify >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling fortify >&2; fi
           hardeningCFlags+=('-O2' '-D_FORTIFY_SOURCE=2')
           ;;
         stackprotector)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling stackprotector >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling stackprotector >&2; fi
           hardeningCFlags+=('-fstack-protector-strong' '--param' 'ssp-buffer-size=4')
           ;;
         pie)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling CFlags -fPIE >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling CFlags -fPIE >&2; fi
           hardeningCFlags+=('-fPIE')
           if [[ ! ("$*" =~ " -shared " || "$*" =~ " -static ") ]]; then
-            if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling LDFlags -pie >&2; fi
+            if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling LDFlags -pie >&2; fi
             hardeningCFlags+=('-pie')
             hardeningLDFlags+=('-pie')
           fi
           ;;
         pic)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling pic >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling pic >&2; fi
           hardeningCFlags+=('-fPIC')
           ;;
         strictoverflow)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling strictoverflow >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling strictoverflow >&2; fi
           hardeningCFlags+=('-fno-strict-overflow')
           ;;
         format)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling format >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling format >&2; fi
           hardeningCFlags+=('-Wformat' '-Wformat-security' '-Werror=format-security')
           ;;
         relro)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling relro >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling relro >&2; fi
           hardeningLDFlags+=('-z' 'relro')
           ;;
         bindnow)
-          if [[ -n "${NIX_DEBUG:-}" ]]; then echo HARDENING: enabling bindnow >&2; fi
+          if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling bindnow >&2; fi
           hardeningLDFlags+=('-z' 'now')
           ;;
         *)
diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index aacaf196f313..f5bcfc9f9851 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -161,7 +161,7 @@ if [ "$*" = -v ]; then
 fi
 
 # Optionally print debug info.
-if [ -n "${NIX_DEBUG:-}" ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     # Old bash workaround, see ld-wrapper for explanation.
     echo "extra flags before to @prog@:" >&2
     printf "  %q\n" ${extraBefore+"${extraBefore[@]}"}  >&2
diff --git a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
index f0c922a3d5b4..42df660211b9 100644
--- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
@@ -109,7 +109,7 @@ fi
 #fi
 
 # Optionally print debug info.
-if [ -n "${NIX_DEBUG:-}" ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     echo "extra flags before to @prog@:" >&2
     printf "  %q\n" "${extraBefore[@]}"  >&2
     echo "original flags to @prog@:" >&2
diff --git a/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh b/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
index 2de748b5f31e..b0615731b282 100644
--- a/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
@@ -24,7 +24,7 @@ extraBefore=()
 #export NIX_@infixSalt@_LDFLAGS_SET=1
 
 # Optionally print debug info.
-if [ -n "${NIX_DEBUG:-}" ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     echo "extra flags before to @prog@:" >&2
     printf "  %q\n" "${extraBefore[@]}"  >&2
     echo "original flags to @prog@:" >&2
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
index a9cc1e3f9e6f..a849df86ef0e 100644
--- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
@@ -156,7 +156,7 @@ fi
 
 
 # Optionally print debug info.
-if [ -n "${NIX_DEBUG:-}" ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     # Old bash workaround, see above.
     echo "extra flags before to @prog@:" >&2
     printf "  %q\n" ${extraBefore+"${extraBefore[@]}"}  >&2
diff --git a/pkgs/build-support/cc-wrapper/utils.sh b/pkgs/build-support/cc-wrapper/utils.sh
index c84a094e26b0..c43c2e12d74a 100644
--- a/pkgs/build-support/cc-wrapper/utils.sh
+++ b/pkgs/build-support/cc-wrapper/utils.sh
@@ -1,5 +1,5 @@
 skip () {
-    if [ -n "${NIX_DEBUG:-}" ]; then
+    if (( "${NIX_DEBUG:-0}" >= 1 )); then
         echo "skipping impure path $1" >&2
     fi
 }
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index ce8c3ecef829..524caafc8720 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -269,7 +269,7 @@ for i in $initialPath; do
     addToSearchPath PATH "$i/bin"
 done
 
-if [ "${NIX_DEBUG:-}" = 1 ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     echo "initial path: $PATH"
 fi
 
@@ -429,7 +429,7 @@ fi
 
 
 PATH="${_PATH-}${_PATH:+${PATH:+:}}$PATH"
-if [ "${NIX_DEBUG:-}" = 1 ]; then
+if (( "${NIX_DEBUG:-0}" >= 1 )); then
     echo "final path: $PATH"
 fi
 
@@ -539,7 +539,7 @@ substituteAll() {
     local -a args=()
 
     for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); do
-        if [ "${NIX_DEBUG:-}" = "1" ]; then
+        if (( "${NIX_DEBUG:-0}" >= 1 )); then
             printf "@%s@ -> %q\n" "${varName}" "${!varName}"
         fi
         args+=("--subst-var" "$varName")

From f6fcb9bc0d33e59b09d1b4b9e15d83260954f850 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Tue, 19 Sep 2017 19:11:29 -0400
Subject: [PATCH 418/533] stdenv: Turn on `set -x` if NIX_DEBUG >= 6

Why 6? It seems a decently high number, giving us room for more degrees
of debugging before the `set -x` sledgehammer without incurring a
mass-rebuild.
---
 pkgs/stdenv/generic/setup.sh | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 524caafc8720..02da3829c5ae 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -1,6 +1,10 @@
 set -eu
 set -o pipefail
 
+if (( "${NIX_DEBUG:-0}" >= 6 )); then
+    set -x
+fi
+
 : ${outputs:=out}
 
 

From 0d3d2a01d20d88dde3696ead43c557c1f3043ee7 Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Wed, 20 Sep 2017 11:35:58 -0400
Subject: [PATCH 419/533] cc-wrapper: Add `set -x` tracing for NIX_DEBUG >= 7

---
 pkgs/build-support/cc-wrapper/cc-wrapper.sh         | 4 ++++
 pkgs/build-support/cc-wrapper/gnat-wrapper.sh       | 4 ++++
 pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh   | 4 ++++
 pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh | 4 ++++
 pkgs/build-support/cc-wrapper/ld-wrapper.sh         | 4 ++++
 5 files changed, 20 insertions(+)

diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
index f5bcfc9f9851..e6f5a5a9f7d8 100644
--- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh
@@ -2,6 +2,10 @@
 set -eu -o pipefail
 shopt -s nullglob
 
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
 path_backup="$PATH"
 
 # That @-vars are substituted separately from bash evaluation makes
diff --git a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
index 42df660211b9..b15f1e461e5f 100644
--- a/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnat-wrapper.sh
@@ -2,6 +2,10 @@
 set -eu -o pipefail
 shopt -s nullglob
 
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
 # N.B. Gnat is not used during bootstrapping, so we don't need to
 # worry about the old bash empty array `set -u` workarounds.
 
diff --git a/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh b/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
index b0615731b282..88e644dc54dc 100644
--- a/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/gnatlink-wrapper.sh
@@ -2,6 +2,10 @@
 set -eu -o pipefail
 shopt -s nullglob
 
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
 # N.B. Gnat is not used during bootstrapping, so we don't need to
 # worry about the old bash empty array `set -u` workarounds.
 
diff --git a/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
index 72c999ff8bc8..5d81e34a047f 100755
--- a/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-solaris-wrapper.sh
@@ -2,6 +2,10 @@
 set -eu -o pipefail
 shopt -s nullglob
 
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
 declare -a args=("$@")
 # I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'(
 # Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3
diff --git a/pkgs/build-support/cc-wrapper/ld-wrapper.sh b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
index a849df86ef0e..355ea8818981 100644
--- a/pkgs/build-support/cc-wrapper/ld-wrapper.sh
+++ b/pkgs/build-support/cc-wrapper/ld-wrapper.sh
@@ -2,6 +2,10 @@
 set -eu -o pipefail
 shopt -s nullglob
 
+if (( "${NIX_DEBUG:-0}" >= 7 )); then
+    set -x
+fi
+
 path_backup="$PATH"
 
 # phase separation makes this look useless

From 2d854c4c920ed6e81bdf2a22548fc11272ad6944 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Tue, 26 Sep 2017 14:39:10 +0200
Subject: [PATCH 420/533] imagemagick: 6.9.9-7 -> 6.9.9-15 for multiple CVEs

Too many CVEs to list because they are not tracked upstream by release
versions.
---
 pkgs/applications/graphics/ImageMagick/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/graphics/ImageMagick/default.nix b/pkgs/applications/graphics/ImageMagick/default.nix
index 1cf08f286ef3..d01bfa1d9507 100644
--- a/pkgs/applications/graphics/ImageMagick/default.nix
+++ b/pkgs/applications/graphics/ImageMagick/default.nix
@@ -14,8 +14,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "6.9.9-7";
-    sha256 = "1lwsz9b8clygdppgawv2hsry4aykgmawjlwhg3fj70rndv4a8rw4";
+    version = "6.9.9-15";
+    sha256 = "0bxgdc1qiyvag6a2iiqcbwp4ak0m1mzi9qhs51fbrvv6syy12m6c";
     patches = [];
   }
     # Freeze version on mingw so we don't need to port the patch too often.

From de4abf7054f677cc692c19dc0589b741d60d9bad Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Tue, 26 Sep 2017 14:45:22 +0200
Subject: [PATCH 421/533] imagemagick7: 7.0.6-4 -> 7.0.7-4 for multiple CVEs

Too many CVEs to list because they are not tracked upstream by release
versions.
---
 pkgs/applications/graphics/ImageMagick/7.0.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index cd99861ea7b6..a70a67d548f5 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -14,8 +14,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.6-4";
-    sha256 = "0fvkx9lf8g0sa9bccd9s5qyhcy0g1mqnkbpqly55ryxyg1ywxqaz";
+    version = "7.0.7-4";
+    sha256 = "074w4jm5s98b8dxwjl8lljvdhmm3mbg1ikgjy1mw3c1sb08z3nc8";
     patches = [];
   };
 in

From 4d7d5c8c34e9324c557ddeb4bf9f31a5a72b5afe Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Tue, 26 Sep 2017 17:28:16 +0200
Subject: [PATCH 422/533] libressl_2_6: 2.6.0 -> 2.6.2

---
 pkgs/development/libraries/libressl/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index 4ce1b664725a..4818a720a30c 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -33,7 +33,7 @@ in {
   };
 
   libressl_2_6 = generic {
-    version = "2.6.0";
-    sha256 = "0lwapvfda4zj4r0kxn9ys43l5wyfgpljmhq0j1lr45spfis5b3g4";
+    version = "2.6.2";
+    sha256 = "0y64grb2zx98rjp2lbwihyhbml4z5ih3v7ydbxdvmabj5d4x4adh";
   };
 }

From 676f5cb02cdbb2761abdf7108ff35586eccf3e9a Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Tue, 26 Sep 2017 17:24:13 +0200
Subject: [PATCH 423/533] sway: Fix the build

While the last wlc upgrade (05d79c03ec36f8d49d1e2bf2b750c3943c348377)
makes it possible to build sway 0.14.0 it also breaks the current build
of sway 0.13.0.

Unfortunately sway 0.14.0 segfaults on launch and I couldn't fix it yet
(there are multiple upstream issues as well). I'll overwrite the wlc
version for sway in order to have a usable version in nixpkgs for the
meantime.
---
 .../window-managers/sway/default.nix          | 83 ++++++++++++-------
 1 file changed, 51 insertions(+), 32 deletions(-)

diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index ac725733d647..274325b67858 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -1,45 +1,64 @@
-{ stdenv, fetchFromGitHub, pango, libinput
-, makeWrapper, cmake, pkgconfig, asciidoc, libxslt, docbook_xsl, cairo
-, wayland, wlc, libxkbcommon, pixman, fontconfig, pcre, json_c, dbus_libs, libcap
-, xwayland, pam, gdk_pixbuf
+{ stdenv, fetchFromGitHub
+, makeWrapper, cmake, pkgconfig, asciidoc, libxslt, docbook_xsl
+, wayland, wlc, libxkbcommon, pixman, fontconfig, pcre, json_c, dbus_libs
+, pango, cairo, libinput, libcap, xwayland, pam, gdk_pixbuf, libpthreadstubs
+, libXdmcp
 }:
 
 let
   version = "0.13.0";
-in
-  stdenv.mkDerivation rec {
-    name = "sway-${version}";
+  # Temporary workaround (0.14.0 segfaults)
+  wlc_009 = stdenv.lib.overrideDerivation wlc (oldAttrs: rec {
+    name = "wlc-${version}";
+    version = "0.0.9";
 
     src = fetchFromGitHub {
-      owner = "Sircmpwn";
-      repo = "sway";
-      rev = "${version}";
-      sha256 = "1vgk4rl51nx66yzpwg4yhnbj7wc30k5q0hh5lf8y0i1nvpal0p3q";
+      owner = "Cloudef";
+      repo = "wlc";
+      rev = "v${version}";
+      fetchSubmodules = true;
+      sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
     };
+  });
+in stdenv.mkDerivation rec {
+  name = "sway-${version}";
 
-    nativeBuildInputs = [ makeWrapper cmake pkgconfig asciidoc libxslt docbook_xsl ];
+  src = fetchFromGitHub {
+    owner = "Sircmpwn";
+    repo = "sway";
+    rev = "${version}";
+    sha256 = "1vgk4rl51nx66yzpwg4yhnbj7wc30k5q0hh5lf8y0i1nvpal0p3q";
+  };
 
-    buildInputs = [ wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs pango cairo libinput libcap xwayland pam gdk_pixbuf ];
+  nativeBuildInputs = [
+    makeWrapper cmake pkgconfig
+    asciidoc libxslt docbook_xsl
+  ];
+  buildInputs = [
+    wayland wlc_009 libxkbcommon pixman fontconfig pcre json_c dbus_libs
+    pango cairo libinput libcap xwayland pam gdk_pixbuf libpthreadstubs
+    libXdmcp
+  ];
 
-    patchPhase = ''
-      sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;
-    '';
+  patchPhase = ''
+    sed -i s@/etc/sway@$out/etc/sway@g CMakeLists.txt;
+  '';
 
-    makeFlags = "PREFIX=$(out)";
-    cmakeFlags = "-DVERSION=${version}";
-    installPhase = "PREFIX=$out make install";
+  makeFlags = "PREFIX=$(out)";
+  cmakeFlags = "-DVERSION=${version}";
+  installPhase = "PREFIX=$out make install";
 
-    LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc dbus_libs ];
-    preFixup = ''
-      wrapProgram $out/bin/sway \
-        --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
-    '';
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc_009 dbus_libs ];
+  preFixup = ''
+    wrapProgram $out/bin/sway \
+      --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
+  '';
 
-    meta = with stdenv.lib; {
-      description = "i3-compatible window manager for Wayland";
-      homepage    = "http://swaywm.org";
-      license     = licenses.mit;
-      platforms   = platforms.linux;
-      maintainers = with maintainers; [ ];
-    };
-  }
+  meta = with stdenv.lib; {
+    description = "i3-compatible window manager for Wayland";
+    homepage    = http://swaywm.org;
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.
+  };
+}

From 61fbdb47a69f78998f55207e64122a0798047b5d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Domen=20Ko=C5=BEar?= <domen@dev.si>
Date: Tue, 26 Sep 2017 19:00:13 +0200
Subject: [PATCH 424/533] haskellPackages.foundation: disable tests on darwin

---
 pkgs/development/haskell-modules/configuration-nix.nix | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 6b0eb8c70025..91e95de94af5 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -227,6 +227,12 @@ self: super: builtins.intersectAttrs super {
   # /homeless-shelter. Disabled.
   purescript = dontCheck super.purescript;
 
+  # https://github.com/haskell-foundation/foundation/pull/412
+  foundation =
+    if pkgs.stdenv.isDarwin
+    then dontCheck super.foundation
+    else super.foundation;
+
   # Hardcoded include path
   poppler = overrideCabal super.poppler (drv: {
     postPatch = ''

From fbc8fa8b42447b0014d8838e36494f3aebe4dec1 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Thu, 21 Sep 2017 15:12:36 +0000
Subject: [PATCH 425/533] mba6x_bl: update to 2016-12-08

---
 pkgs/os-specific/linux/mba6x_bl/default.nix | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/pkgs/os-specific/linux/mba6x_bl/default.nix b/pkgs/os-specific/linux/mba6x_bl/default.nix
index 3116c50435a7..a656db306459 100644
--- a/pkgs/os-specific/linux/mba6x_bl/default.nix
+++ b/pkgs/os-specific/linux/mba6x_bl/default.nix
@@ -1,23 +1,16 @@
 { fetchFromGitHub, kernel, stdenv }:
 
-with stdenv.lib;
-
-let pkgName = "mba6x_bl";
-in
-
 stdenv.mkDerivation rec {
-  name = "${pkgName}-${version}";
-  version = "2016-04-22";
+  name = "mba6x_bl-2016-12-08";
 
   src = fetchFromGitHub {
     owner = "patjak";
-    repo = pkgName;
-    rev = "d05c125efe182376ddab30d486994ec00e144650";
-    sha256 = "15h90z3ijq4lv37nmx70xqggcvn21vr7mki2psk1jyj88in3j3xn";
+    repo = "mba6x_bl";
+    rev = "b96aafd30c18200b4ad1f6eb995bc19200f60c47";
+    sha256 = "10payvfxahazdxisch4wm29fhl8y07ki72q4c78sl4rn73sj6yjq";
   };
 
   enableParallelBuilding = true;
-
   hardeningDisable = [ "pic" ];
 
   makeFlags = [
@@ -25,7 +18,7 @@ stdenv.mkDerivation rec {
     "INSTALL_MOD_PATH=$(out)"
   ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "MacBook Air 6,1 and 6,2 (mid 2013) backlight driver";
     homepage = https://github.com/patjak/mba6x_bl;
     license = licenses.gpl2;

From a33402b89009094d7c7b43d9f3c542120a8b55d2 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Tue, 26 Sep 2017 19:31:30 +0200
Subject: [PATCH 426/533] wlc: fix homepage / eval

---
 pkgs/development/libraries/wlc/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
index 06e5af6cd5a7..936c88034aad 100644
--- a/pkgs/development/libraries/wlc/default.nix
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "A library for making a simple Wayland compositor";
-    inherit (src.meta) homepage;
+    homepage    = https://github.com/Cloudef/wlc;
     license     = licenses.mit;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ primeos ]; # Trying to keep it up-to-date.

From d349f9a34006cc484b5e7509a3f227d52d6e2a5d Mon Sep 17 00:00:00 2001
From: John Ericson <John.Ericson@Obsidian.Systems>
Date: Wed, 20 Sep 2017 11:07:52 -0400
Subject: [PATCH 427/533] cc-wrapper: Use stdenvNoCC to build

cc-wrapper may wrap a cc-compiler, but it doesn't need one to build
itself. (c.f. expand-response-params is a separate derivation.) This
helps avoid cycles on the cross stuff, in addition to removing a
useless dependency edge.

I could have been super careful with overrides in the stdenv to avoid
the mass rebuild, but I don't think it's worth it.
---
 pkgs/build-support/cc-wrapper/default.nix |  7 ++++---
 pkgs/stdenv/darwin/default.nix            |  4 ++--
 pkgs/stdenv/freebsd/default.nix           |  2 +-
 pkgs/stdenv/linux/default.nix             |  4 ++--
 pkgs/stdenv/native/default.nix            |  3 ++-
 pkgs/stdenv/nix/default.nix               | 13 +++++--------
 pkgs/top-level/all-packages.nix           |  4 ++--
 7 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 866be9cded9e..489fb02dcb5d 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -5,15 +5,15 @@
 # script that sets up the right environment variables so that the
 # compiler and the linker just "work".
 
-{ name ? "", stdenv, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
-, cc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenv.shell
+{ name ? "", stdenvNoCC, nativeTools, noLibc ? false, nativeLibc, nativePrefix ? ""
+, cc ? null, libc ? null, binutils ? null, coreutils ? null, shell ? stdenvNoCC.shell
 , zlib ? null, extraPackages ? [], extraBuildCommands ? ""
 , isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
 , buildPackages ? {}
 , useMacosReexportHack ? false
 }:
 
-with stdenv.lib;
+with stdenvNoCC.lib;
 
 assert nativeTools -> nativePrefix != "";
 assert !nativeTools ->
@@ -25,6 +25,7 @@ assert (noLibc || nativeLibc) == (libc == null);
 assert cc.langVhdl or false -> zlib != null;
 
 let
+  stdenv = stdenvNoCC;
   inherit (stdenv) hostPlatform targetPlatform;
 
   # Prefix for binaries. Customarily ends with a dash separator.
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index b7f750508e8c..a67ca53e1c54 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -77,7 +77,7 @@ in rec {
 
         cc = if isNull last then "/dev/null" else import ../../build-support/cc-wrapper {
           inherit shell;
-          inherit (last) stdenv;
+          inherit (last) stdenvNoCC;
 
           nativeTools  = false;
           nativeLibc   = false;
@@ -324,7 +324,7 @@ in rec {
     shell       = "${pkgs.bash}/bin/bash";
 
     cc = lib.callPackageWith {} ../../build-support/cc-wrapper {
-      inherit (pkgs) stdenv;
+      inherit (pkgs) stdenvNoCC;
       inherit shell;
       nativeTools = false;
       nativeLibc  = false;
diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix
index c10d1515a3d5..6ab8bf217269 100644
--- a/pkgs/stdenv/freebsd/default.nix
+++ b/pkgs/stdenv/freebsd/default.nix
@@ -77,7 +77,7 @@ let inherit (localSystem) system; in
         nativeTools  = true;
         nativePrefix = "/usr";
         nativeLibc   = true;
-        inherit (prevStage) stdenv;
+        stdenvNoCC = prevStage.stdenv;
         cc           = {
           name    = "clang-9.9.9";
           cc      = "/usr";
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index e79ec48e9f42..a114ab609e6c 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -84,7 +84,7 @@ let
           libc = prevStage.glibc;
           inherit (prevStage) binutils coreutils gnugrep;
           name = name;
-          stdenv = prevStage.ccWrapperStdenv;
+          stdenvNoCC = prevStage.ccWrapperStdenv;
         };
 
         extraAttrs = {
@@ -244,7 +244,7 @@ in
         };
         cc = prevStage.gcc-unwrapped;
         libc = self.glibc;
-        inherit (self) stdenv binutils coreutils gnugrep;
+        inherit (self) stdenvNoCC binutils coreutils gnugrep;
         name = "";
         shell = self.bash + "/bin/bash";
       };
diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix
index 9ecb56028bc0..558a77281edb 100644
--- a/pkgs/stdenv/native/default.nix
+++ b/pkgs/stdenv/native/default.nix
@@ -117,6 +117,7 @@ in
       cc = null;
       fetchurl = null;
     };
+    stdenvNoCC = stdenv;
 
     cc = import ../../build-support/cc-wrapper {
       name = "cc-native";
@@ -126,7 +127,7 @@ in
         "i686-solaris" = "/usr/gnu";
         "x86_64-solaris" = "/opt/local/gcc47";
       }.${system} or "/usr";
-      inherit stdenv;
+      inherit stdenvNoCC;
     };
 
     fetchurl = import ../../build-support/fetchurl {
diff --git a/pkgs/stdenv/nix/default.nix b/pkgs/stdenv/nix/default.nix
index c736442dc0a4..ffff8bdf51d4 100644
--- a/pkgs/stdenv/nix/default.nix
+++ b/pkgs/stdenv/nix/default.nix
@@ -1,5 +1,5 @@
 { lib
-, crossSystem, config
+, crossSystem, config, overlays
 , bootStages
 , ...
 }:
@@ -7,9 +7,7 @@
 assert crossSystem == null;
 
 bootStages ++ [
-  (prevStage: let
-    inherit (prevStage) stdenv;
-  in {
+  (prevStage: {
     inherit config overlays;
 
     stdenv = import ../generic rec {
@@ -27,10 +25,9 @@ bootStages ++ [
 
       cc = import ../../build-support/cc-wrapper {
         nativeTools = false;
-        nativePrefix = stdenv.lib.optionalString hostPlatform.isSunOS "/usr";
+        nativePrefix = lib.optionalString hostPlatform.isSunOS "/usr";
         nativeLibc = true;
-        inherit stdenv;
-        inherit (prevStage) binutils coreutils gnugrep;
+        inherit (prevStage) stdenvNoCC binutils coreutils gnugrep;
         cc = prevStage.gcc.cc;
         isGNU = true;
         shell = prevStage.bash + "/bin/sh";
@@ -38,7 +35,7 @@ bootStages ++ [
 
       shell = prevStage.bash + "/bin/sh";
 
-      fetchurlBoot = stdenv.fetchurlBoot;
+      fetchurlBoot = prevStage.stdenv.fetchurlBoot;
 
       overrides = self: super: {
         inherit cc;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 860567283b86..94aebfe7fb7b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -6207,11 +6207,11 @@ with pkgs;
 
   wla-dx = callPackage ../development/compilers/wla-dx { };
 
-  wrapCCWith = { name ? "", cc, libc, extraBuildCommands ? "" }: ccWrapperFun {
+  wrapCCWith = { name ? "", cc, libc, extraBuildCommands ? "" }: ccWrapperFun rec {
     nativeTools = targetPlatform == hostPlatform && stdenv.cc.nativeTools or false;
     nativeLibc = targetPlatform == hostPlatform && stdenv.cc.nativeLibc or false;
     nativePrefix = stdenv.cc.nativePrefix or "";
-    noLibc = (libc == null);
+    noLibc = !nativeLibc && (libc == null);
 
     isGNU = cc.isGNU or false;
     isClang = cc.isClang or false;

From f27feb548164a0b510f5f79feece1542ef7c4844 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
Date: Wed, 20 Sep 2017 12:01:13 +0100
Subject: [PATCH 428/533] dino: 2017-06-21 -> 2017-09-20

---
 .../networking/instant-messengers/dino/default.nix       | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index eff9b71daa63..80e6af9c1ef5 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -2,7 +2,7 @@
 , vala, cmake, wrapGAppsHook, pkgconfig, gettext
 , gobjectIntrospection, gnome3, glib, gdk_pixbuf, gtk3, glib_networking
 , xorg, libXdmcp, libxkbcommon
-, libnotify
+, libnotify, libsoup
 , libgcrypt
 , epoxy
 , at_spi2_core
@@ -13,13 +13,13 @@
  }:
 
 stdenv.mkDerivation rec {
-  name = "dino-unstable-2017-06-21";
+  name = "dino-unstable-2017-09-26";
 
   src = fetchFromGitHub {
     owner = "dino";
     repo = "dino";
-    rev = "3f0089db86e2057293a33453361678989919147f";
-    sha256 = "011wd6qi8nagig8418hibgnsmznd76dvp3p2dzzr4wyrb7d6cgcb";
+    rev = "9d8e1e88ec61403659a8cc410d5c4414e3bd3a96";
+    sha256 = "1p8sda99n8zsb49qd6wzwb8hddlgrzr2hp7il5v7yqxjjm2vgqfl";
     fetchSubmodules = true;
   };
 
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
     libnotify
     gpgme
     libgcrypt
+    libsoup
     pcre
     xorg.libxcb
     xorg.libpthreadstubs

From 0ddca0715acd90491db27286adb9b459e24403f8 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Tue, 26 Sep 2017 19:06:22 +0000
Subject: [PATCH 429/533] epsxe: init at 2.0.5 (#29810)

* epsxe: init at 2.0.5

* epsxe: nitpicks
---
 lib/maintainers.nix                   |  1 +
 pkgs/misc/emulators/epsxe/default.nix | 55 +++++++++++++++++++++++++++
 pkgs/top-level/all-packages.nix       |  2 +
 3 files changed, 58 insertions(+)
 create mode 100644 pkgs/misc/emulators/epsxe/default.nix

diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index af1882f8c2c8..a978313c42c1 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -653,6 +653,7 @@
   xvapx = "Marti Serra <marti.serra.coscollano@gmail.com>";
   xwvvvvwx = "David Terry <davidterry@posteo.de>";
   yarr = "Dmitry V. <savraz@gmail.com>";
+  yegortimoshenko = "Yegor Timoshenko <yegortimoshenko@gmail.com>";
   yochai = "Yochai <yochai@titat.info>";
   yorickvp = "Yorick van Pelt <yorickvanpelt@gmail.com>";
   yuriaisaka = "Yuri Aisaka <yuri.aisaka+nix@gmail.com>";
diff --git a/pkgs/misc/emulators/epsxe/default.nix b/pkgs/misc/emulators/epsxe/default.nix
new file mode 100644
index 000000000000..1d49dee55896
--- /dev/null
+++ b/pkgs/misc/emulators/epsxe/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl, alsaLib, curl, gdk_pixbuf, gcc, glib, gtk3,
+  libX11, openssl, ncurses5, SDL, SDL_ttf, unzip, zlib, wrapGAppsHook }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "epsxe-${version}";
+  version = "2.0.5";
+
+  src = with stdenv.lib; let
+    version2 = concatStrings (splitString "." version);
+    platform = "linux" + (optionalString stdenv.is64bit "_x64");
+  in fetchurl {
+    url = "http://www.epsxe.com/files/ePSXe${version2}${platform}.zip";
+    sha256 = if stdenv.is64bit
+             then "16fa9qc2xhaz1f6294m0b56s5l86cbmclwm9w3mqnch0yjsrvab0"
+             else "1677lclam557kp8jwvchdrk27zfj50fqx2q9i3bcx26d9k61q3kl";
+  };
+
+  nativeBuildInputs = [ unzip wrapGAppsHook ];
+  sourceRoot = ".";
+
+  buildInputs = [
+    alsaLib
+    curl
+    gdk_pixbuf
+    glib
+    gtk3
+    libX11
+    openssl
+    ncurses5
+    SDL
+    SDL_ttf
+    stdenv.cc.cc.lib
+    zlib
+  ];
+
+  dontStrip = true;
+
+  installPhase = ''
+    install -D epsxe${optionalString stdenv.is64bit "_x64"} $out/bin/epsxe
+    patchelf \
+      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
+      --set-rpath ${makeLibraryPath buildInputs} \
+      $out/bin/epsxe
+  '';
+
+  meta = {
+    homepage = http://epsxe.com/;
+    description = "Enhanced PSX (PlayStation 1) emulator";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ yegortimoshenko ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 833322f3fd2d..bbd6a59088dc 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1883,6 +1883,8 @@ with pkgs;
 
   epstool = callPackage ../tools/graphics/epstool { };
 
+  epsxe = callPackage ../misc/emulators/epsxe { };
+
   ethtool = callPackage ../tools/misc/ethtool { };
 
   ettercap = callPackage ../applications/networking/sniffers/ettercap { };

From c3e6e9b7656f9a77b5ad7015732f848dfba80b2d Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Tue, 26 Sep 2017 19:20:30 +0000
Subject: [PATCH 430/533] epsxe: fix install, 32-bit executable uses mixed case

---
 pkgs/misc/emulators/epsxe/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/misc/emulators/epsxe/default.nix b/pkgs/misc/emulators/epsxe/default.nix
index 1d49dee55896..e367d6a14984 100644
--- a/pkgs/misc/emulators/epsxe/default.nix
+++ b/pkgs/misc/emulators/epsxe/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   installPhase = ''
-    install -D epsxe${optionalString stdenv.is64bit "_x64"} $out/bin/epsxe
+    install -D ${if stdenv.is64bit then "epsxe_x64" else "ePSXe"} $out/bin/epsxe
     patchelf \
       --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
       --set-rpath ${makeLibraryPath buildInputs} \

From 4ec3d311cb0271e72420045622688b701a3b61a3 Mon Sep 17 00:00:00 2001
From: Jan Solanti <jhs@psonet.com>
Date: Tue, 26 Sep 2017 02:32:06 +0300
Subject: [PATCH 431/533] nvidia-x11: generate nvidia_icd.json from template

---
 pkgs/os-specific/linux/nvidia-x11/builder.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 99813d38236b..cd7733f43a48 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -46,7 +46,8 @@ installPhase() {
 
     # Install ICDs.
     install -Dm644 nvidia.icd $out/etc/OpenCL/vendors/nvidia.icd
-    if [ -e nvidia_icd.json ]; then
+    if [ -e nvidia_icd.json.template ]; then
+        sed "s#__NV_VK_ICD__#libGLX_nvidia.so#" nvidia_icd.json.template > nvidia_icd.json
         install -Dm644 nvidia_icd.json $out/share/vulkan/icd.d/nvidia.json
     fi
     if [ "$useGLVND" = "1" ]; then

From 6ab200b066befbe86b3f9349531100edbf5130c4 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Tue, 26 Sep 2017 22:40:02 +0200
Subject: [PATCH 432/533] 17.09 release notes: fix typo

---
 nixos/doc/manual/release-notes/rl-1709.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index c951934e6236..d5ab6ab0c247 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -344,7 +344,7 @@ FLUSH PRIVILEGES;
   </listitem>
   <listitem>
     <para>
-      Definitions for <filename>/etc/hosts</filename> can now be sped
+      Definitions for <filename>/etc/hosts</filename> can now be specified
       declaratively with <literal>networking.hosts</literal>.
     </para>
   </listitem>

From 8984a761234504e9866443c0458589acfb259233 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Tue, 26 Sep 2017 22:52:14 +0200
Subject: [PATCH 433/533] clangWrapSelf: fixup evaluation after #29617

---
 pkgs/top-level/all-packages.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 43cec9a5a9f3..e8c1c2b3e04b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5351,7 +5351,7 @@ with pkgs;
   clangWrapSelf = build: ccWrapperFun {
     cc = build;
     isClang = true;
-    stdenv = clangStdenv;
+    inherit stdenvNoCC;
     libc = glibc;
     extraPackages = [ libcxx libcxxabi ];
     nativeTools = false;

From c03326445b067dca37ea323d998ffa3d520adb6d Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Tue, 26 Sep 2017 22:37:38 +0200
Subject: [PATCH 434/533] firefox: Remove about:buildconfig

Storing the build configuration caused Firefox to retain a dependency
on gcc, glibc.dev and icu4c.dev.

This reduces the size of the firefox closure from 587 to 415 MiB.
---
 .../browsers/firefox/no-buildconfig.patch     | 25 +++++++++++++++++++
 .../networking/browsers/firefox/packages.nix  | 10 +++++---
 .../networking/browsers/firefox/wrapper.nix   |  2 ++
 3 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 pkgs/applications/networking/browsers/firefox/no-buildconfig.patch

diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch
new file mode 100644
index 000000000000..83f9a1329bea
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig.patch
@@ -0,0 +1,25 @@
+diff -ru -x '*~' firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp firefox-55.0.3/docshell/base/nsAboutRedirector.cpp
+--- firefox-55.0.3-orig/docshell/base/nsAboutRedirector.cpp	2017-07-31 18:20:51.000000000 +0200
++++ firefox-55.0.3/docshell/base/nsAboutRedirector.cpp	2017-09-26 22:02:00.814151731 +0200
+@@ -40,10 +40,6 @@
+     nsIAboutModule::ALLOW_SCRIPT
+   },
+   {
+-    "buildconfig", "chrome://global/content/buildconfig.html",
+-    nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT
+-  },
+-  {
+     "checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
+     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+       nsIAboutModule::ALLOW_SCRIPT
+diff -ru -x '*~' firefox-55.0.3-orig/toolkit/content/jar.mn firefox-55.0.3/toolkit/content/jar.mn
+--- firefox-55.0.3-orig/toolkit/content/jar.mn	2017-07-31 18:20:52.000000000 +0200
++++ firefox-55.0.3/toolkit/content/jar.mn	2017-09-26 22:01:42.383350314 +0200
+@@ -40,7 +40,6 @@
+    content/global/plugins.css
+    content/global/browser-child.js
+    content/global/browser-content.js
+-*   content/global/buildconfig.html
+    content/global/contentAreaUtils.js
+ #ifndef MOZ_FENNEC
+    content/global/customizeToolbar.css
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 83eb563a8e7e..e2a8e201fef7 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -12,10 +12,12 @@ rec {
       sha512 = "3cacc87b97871f3a8c5e97c17ef7025079cb5c81f32377d9402cdad45815ac6c4c4762c79187f1e477910161c2377c42d41de62a50b6741d5d7c1cd70e8c6416";
     };
 
-    patches = lib.optional stdenv.isi686 (fetchpatch {
-      url = "https://hg.mozilla.org/mozilla-central/raw-rev/15517c5a5d37";
-      sha256 = "1ba487p3hk4w2w7qqfxgv1y57vp86b8g3xhav2j20qd3j3phbbn7";
-    });
+    patches =
+      [ ./no-buildconfig.patch ]
+      ++ lib.optional stdenv.isi686 (fetchpatch {
+        url = "https://hg.mozilla.org/mozilla-central/raw-rev/15517c5a5d37";
+        sha256 = "1ba487p3hk4w2w7qqfxgv1y57vp86b8g3xhav2j20qd3j3phbbn7";
+      });
 
     meta = {
       description = "A web browser built from Firefox source tree";
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 1dd5c9191f00..2413f1cfdca8 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -129,6 +129,8 @@ in stdenv.mkDerivation {
 
   passthru = { unwrapped = browser; };
 
+  disallowedRequisites = [ stdenv.cc ];
+
   meta = browser.meta // {
     description =
       browser.meta.description

From af44f99dca62abc5d569cb824a64f766e308d419 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Tue, 26 Sep 2017 23:07:10 +0200
Subject: [PATCH 435/533] ibus: Move ibus-setup to .dev

This removes python3.buildEnv from the runtime closure.
---
 pkgs/tools/inputmethods/ibus/default.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 66d61b8c5e9d..3b076bb8ff6c 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -110,6 +110,10 @@ in stdenv.mkDerivation rec {
   doInstallCheck = true;
   installCheckPhase = "$out/bin/ibus version";
 
+  postInstall = ''
+    moveToOutput "bin/ibus-setup" "$dev"
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://github.com/ibus/ibus;
     description = "Intelligent Input Bus for Linux / Unix OS";

From 3ee733aafb687c9a004bedfda8efb3da1af847cc Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas@tuxera.com>
Date: Wed, 27 Sep 2017 00:14:38 +0300
Subject: [PATCH 436/533] imlib2: Make 'bin' the first output

---
 pkgs/development/libraries/imlib2/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/imlib2/default.nix b/pkgs/development/libraries/imlib2/default.nix
index 8c66dcec1613..8d26cabc9b54 100644
--- a/pkgs/development/libraries/imlib2/default.nix
+++ b/pkgs/development/libraries/imlib2/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   configureFlags = optional stdenv.isDarwin "--enable-amd64=no"
     ++ optional (!x11Support) "--without-x";
 
-  outputs = [ "out" "bin" "dev" ];
+  outputs = [ "bin" "out" "dev" ];
 
   postInstall = ''
     moveToOutput bin/imlib2-config "$dev"

From fe3b95e749ac851b1d0890f6fc6d8ae5d9004dd8 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:26:13 +0200
Subject: [PATCH 437/533] tor-browser-bundle: customization via extraPrefs

---
 .../networking/browsers/tor-browser-bundle/default.nix      | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 048017cae5b2..fb3e06a94be8 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -15,6 +15,9 @@
 , python27
 , python27Packages
 , rsync
+
+# Customization
+, extraPrefs ? ""
 }:
 
 let
@@ -154,6 +157,9 @@ stdenv.mkDerivation rec {
     // Defaults to $XDG_RUNTIME_DIR/Tor/{socks,control}.socket
     lockPref("extensions.torlauncher.control_port_use_ipc", true);
     lockPref("extensions.torlauncher.socks_port_use_ipc", true);
+
+    // User customization
+    ${extraPrefs}
     EOF
 
     # Preload extensions

From 346661d77be29e01a05680fb51ed79049963be33 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:28:12 +0200
Subject: [PATCH 438/533] tor-browser-bundle: redo extensions

---
 .../browsers/tor-browser-bundle/default.nix   | 106 +++++++++++++-----
 1 file changed, 78 insertions(+), 28 deletions(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index fb3e06a94be8..96d9feabc150 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -2,11 +2,13 @@
 , lib
 , fetchurl
 , fetchgit
+, symlinkJoin
 
 , tor
 , tor-browser-unwrapped
 
 # Extensions, common
+, unzip
 , zip
 
 # HTTPS Everywhere
@@ -27,11 +29,16 @@ let
     sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9";
   };
 
+  # Each extension drv produces an output comprising an unpacked .xpi
+  # named after the extension uuid, as it would appear under
+  # `firefox/extensions'.
   firefoxExtensions = {
     https-everywhere = stdenv.mkDerivation rec {
       name = "https-everywhere-${version}";
       version = "5.2.21";
 
+      extid = "https-everywhere-eff@eff.org";
+
       src = fetchgit {
         url = "https://git.torproject.org/https-everywhere.git";
         rev = "refs/tags/${version}";
@@ -44,16 +51,24 @@ let
         python27
         python27Packages.lxml
         rsync
+        unzip
         zip
       ];
 
-      buildCommand = ''
+      unpackPhase = ''
         cp -dR --no-preserve=mode "$src" src
         cd src
+      '';
 
-        sed -i makexpi.sh -e '104d' # cp -a translations/* fails because the dir is empty ...
+      # Beware: the build expects translations/ to be non-empty (which it
+      # will be with submodules initialized).
+      buildPhase = ''
         $shell ./makexpi.sh ${version} --no-recurse
-        install -m 444 -Dt $out pkg"/"*.xpi
+      '';
+
+      installPhase = ''
+        mkdir $out
+        unzip -d "$out/$extid" "pkg/https-everywhere-$version-eff.xpi"
       '';
 
       meta = {
@@ -61,53 +76,98 @@ let
       };
     };
 
-    noscript = fetchurl {
-      url = https://secure.informaction.com/download/releases/noscript-5.0.10.xpi;
-      sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
+    noscript = stdenv.mkDerivation rec {
+      name = "noscript-${version}";
+      version = "5.0.10";
+
+      extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
+
+      src = fetchurl {
+        url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
+        sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
+      };
+
+      nativeBuildInputs = [ unzip ];
+
+      unpackPhase = ":";
+
+      installPhase = ''
+        mkdir $out
+        unzip -d "$out/$extid" "$src"
+      '';
     };
 
     torbutton = stdenv.mkDerivation rec {
       name = "torbutton-${version}";
       version = "1.9.8.1";
 
+      extid = "torbutton@torproject.org";
+
       src = fetchgit {
         url = "https://git.torproject.org/torbutton.git";
         rev = "refs/tags/${version}";
         sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
       };
 
-      nativeBuildInputs = [ zip ];
+      nativeBuildInputs = [ unzip zip ];
 
-      buildCommand = ''
+      unpackPhase = ''
         cp -dR --no-preserve=mode "$src" src
         cd src
-
-        $shell ./makexpi.sh
-        install -m 444 -Dt $out pkg"/"*.xpi
       '';
+
+      buildPhase = ''
+        $shell ./makexpi.sh
+      '';
+
+      installPhase = ''
+        mkdir $out
+        unzip -d "$out/$extid" "pkg/torbutton-$version.xpi"
+      '';
+
+      meta = {
+        homepage = https://gitweb.torproject.org/torbutton.git/;
+      };
     };
 
     tor-launcher = stdenv.mkDerivation rec {
       name = "tor-launcher-${version}";
       version = "0.2.12.3";
 
+      extid = "tor-launcher@torproject.org";
+
       src = fetchgit {
         url = "https://git.torproject.org/tor-launcher.git";
         rev = "refs/tags/${version}";
         sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q";
       };
 
-      nativeBuildInputs = [ zip ];
+      nativeBuildInputs = [ unzip zip ];
 
-      buildCommand = ''
+      unpackPhase = ''
         cp -dR --no-preserve=mode "$src" src
         cd src
-
-        make package
-        install -m 444 -Dt $out pkg"/"*.xpi
       '';
+
+      buildPhase = ''
+        make package
+      '';
+
+      installPhase = ''
+        mkdir $out
+        unzip -d "$out/$extid" "pkg/tor-launcher-$version.xpi"
+      '';
+
+      meta = {
+        homepage = https://gitweb.torproject.org/tor-launcher.git/;
+      };
     };
   };
+
+  extensionsEnv = symlinkJoin {
+    name = "tor-browser-extensions";
+    paths = with firefoxExtensions; [ https-everywhere noscript torbutton tor-launcher ];
+  };
 in
 stdenv.mkDerivation rec {
   name = "tor-browser-bundle-${version}";
@@ -163,18 +223,8 @@ stdenv.mkDerivation rec {
     EOF
 
     # Preload extensions
-    install -m 444 -D \
-      ${firefoxExtensions.tor-launcher}/tor-launcher-*.xpi \
-      browser/extensions/tor-launcher@torproject.org.xpi
-    install -m 444 -D \
-      ${firefoxExtensions.torbutton}/torbutton-*.xpi \
-      browser/extensions/torbutton@torproject.org.xpi
-    install -m 444 -D \
-      ${firefoxExtensions.https-everywhere}/https-everywhere-*-eff.xpi \
-      browser/extensions/https-everywhere-eff@eff.org.xpi
-    install -m 444 -D \
-      ${firefoxExtensions.noscript} \
-      browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
+    # XXX: the fact that ln -s env browser/extensions fails, symlinkJoin seems a little redundant ...
+    ln -s -t browser/extensions ${extensionsEnv}"/"*
 
     # Copy bundle data
     cat \

From 0c26be5bd2babc22be978a5d3a9d2b69a2b3ce9a Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:31:27 +0200
Subject: [PATCH 439/533] tor-browser-bundle: improve organization of
 distribution dir

Store TBB specific files under TorBrowser-Data
---
 .../browsers/tor-browser-bundle/default.nix    | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 96d9feabc150..8b741e765593 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -181,10 +181,13 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     TBBUILD=${tor-browser-build_src}/projects/tor-browser
+    TBDATA_PATH=TorBrowser-Data
 
     self=$out/lib/tor-browser
     mkdir -p $self && cd $self
 
+    TBDATA_IN_STORE=$self/$TBDATA_PATH
+
     cp -dR ${tor-browser-unwrapped}/lib"/"*"/"* .
     chmod -R +w .
 
@@ -207,7 +210,7 @@ stdenv.mkDerivation rec {
 
     // Where to find the Nixpkgs tor executable & config
     lockPref("extensions.torlauncher.tor_path", "${tor}/bin/tor");
-    lockPref("extensions.torlauncher.torrc-defaults_path", "$self/torrc-defaults");
+    lockPref("extensions.torlauncher.torrc-defaults_path", "$TBDATA_IN_STORE/torrc-defaults");
 
     // Captures store paths
     clearPref("extensions.xpiState");
@@ -227,14 +230,15 @@ stdenv.mkDerivation rec {
     ln -s -t browser/extensions ${extensionsEnv}"/"*
 
     # Copy bundle data
-    cat \
-      $TBBUILD/Bundle-Data/linux/Data/Tor/torrc-defaults \
-      $TBBUILD/Bundle-Data/PTConfigs/linux/torrc-defaults-appendix \
-      >> torrc-defaults
+    bundlePlatform=linux
+    bundleData=$TBBUILD/Bundle-Data
 
+    mkdir -p $TBDATA_PATH
     cat \
-      $TBBUILD/Bundle-Data/linux/Data/Browser/profile.default/preferences/extension-overrides.js \
-      $TBBUILD/Bundle-Data/PTConfigs/bridge_prefs.js >> defaults/pref/extension-overrides.js \
+      $bundleData/$bundlePlatform/Data/Tor/torrc-defaults \
+      >> $TBDATA_PATH/torrc-defaults
+    cat \
+      $bundleData/$bundlePlatform/Data/Browser/profile.default/preferences/extension-overrides.js \
       >> defaults/pref/extension-overrides.js
 
     # Generate a suitable wrapper

From 93b9109b460b4ba18a6977fb1aa5e886f697513d Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:31:55 +0200
Subject: [PATCH 440/533] tor-browser-bundle: clear pref bootstrappedAddons for
 purity

---
 .../networking/browsers/tor-browser-bundle/default.nix           | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 8b741e765593..00c2656bc710 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -214,6 +214,7 @@ stdenv.mkDerivation rec {
 
     // Captures store paths
     clearPref("extensions.xpiState");
+    clearPref("extensions.bootstrappedAddons");
 
     // Insist on using IPC for communicating with Tor
     //

From f05d50f36c879400a679498eb9677f8653a892e3 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:34:18 +0200
Subject: [PATCH 441/533] tor-browser-bundle: approximate upstream bundle &
 purity control

---
 .../browsers/tor-browser-bundle/default.nix   | 97 ++++++++++++++++++-
 1 file changed, 92 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 00c2656bc710..73c5dc6b3ee4 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -7,6 +7,10 @@
 , tor
 , tor-browser-unwrapped
 
+# Wrapper runtime
+, coreutils
+, hicolor_icon_theme
+, shared_mime_info
 # Extensions, common
 , unzip
 , zip
@@ -217,8 +221,6 @@ stdenv.mkDerivation rec {
     clearPref("extensions.bootstrappedAddons");
 
     // Insist on using IPC for communicating with Tor
-    //
-    // Defaults to $XDG_RUNTIME_DIR/Tor/{socks,control}.socket
     lockPref("extensions.torlauncher.control_port_use_ipc", true);
     lockPref("extensions.torlauncher.socks_port_use_ipc", true);
 
@@ -243,18 +245,103 @@ stdenv.mkDerivation rec {
       >> defaults/pref/extension-overrides.js
 
     # Generate a suitable wrapper
+    wrapper_PATH=${lib.makeBinPath [ coreutils ]}
+    wrapper_XDG_DATA_DIRS=${lib.concatMapStringsSep ":" (x: "${x}/share") [
+      hicolor_icon_theme
+      shared_mime_info
+    ]}
+
     mkdir -p $out/bin
     cat >$out/bin/tor-browser <<EOF
-    #! ${stdenv.shell} -e
+    #! ${stdenv.shell} -eu
 
-    THE_HOME=\$HOME
+    PATH=$wrapper_PATH
+
+    readonly THE_HOME=\$HOME
     TBB_HOME=\''${TBB_HOME:-\''${XDG_DATA_HOME:-$HOME/.local/share}/tor-browser}
+    if [[ \''${TBB_HOME:0:1} != / ]] ; then
+      TBB_HOME=\$PWD/\$TBB_HOME
+    fi
+    readonly TBB_HOME
+
+    # Basic sanity check: never want to vomit directly onto user's homedir
+    if [[ "\$TBB_HOME" = "\$THE_HOME" ]] ; then
+      echo 'TBB_HOME=\$HOME; refusing to run' >&2
+      exit 1
+    fi
+
     mkdir -p "\$TBB_HOME"
 
     HOME=\$TBB_HOME
     cd "\$HOME"
 
-    exec $self/firefox -no-remote about:tor
+    # Re-init XDG basedir envvars
+    XDG_CACHE_HOME=\$HOME/.cache
+    XDG_CONFIG_HOME=\$HOME/.config
+    XDG_DATA_HOME=\$HOME/.local/share
+
+    # Initialize empty TBB runtime state directory hierarchy.  Mirror the
+    # layout used by the official TBB, to avoid the hassle of working
+    # against the assumptions made by tor-launcher & co.
+    mkdir -p "\$HOME/TorBrowser" "\$HOME/TorBrowser/Data"
+
+    # Initialize the Tor data directory.
+    mkdir -p "\$HOME/TorBrowser/Data/Tor"
+
+    # TBB fails if ownership is too permissive
+    chmod 0700 "\$HOME/TorBrowser/Data/Tor"
+
+    # Initialize the browser profile state.  Expect TBB to generate all data.
+    mkdir -p "\$HOME/TorBrowser/Data/Browser/profile.default"
+
+    # Files that capture store paths; re-generated by firefox at startup
+    rm -rf "\$HOME/TorBrowser/Data/Browser/profile.default"/{compatibility.ini,extensions.ini,extensions.json,startupCache}
+
+    # Clear out fontconfig caches
+    rm -f "\$HOME/.cache/fontconfig/"*.cache-*
+
+    # Lift-off!
+    #
+    # TZ is set to avoid stat()ing /etc/localtime over and over ...
+    #
+    # DBUS_SESSION_BUS_ADDRESS is inherited to avoid auto-launching a new
+    # dbus instance; to prevent using the session bus, set the envvar to
+    # an empty/invalid value prior to running tor-browser.
+    #
+    # FONTCONFIG_FILE is required to make fontconfig read the TBB
+    # fonts.conf; upstream uses FONTCONFIG_PATH, but FC_DEBUG=1024
+    # indicates the system fonts.conf being used instead.
+    #
+    # HOME, TMPDIR, XDG_*_HOME are set as a form of soft confinement;
+    # ideally, tor-browser should not write to any path outside TBB_HOME
+    # and should run even under strict confinement to TBB_HOME.
+    #
+    # XDG_DATA_DIRS is set to prevent searching system directories for
+    # mime and icon data.
+    #
+    # Parameters lacking a default value below are *required* (enforced by
+    # -o nounset).
+    exec env -i \
+      TZ=":" \
+      \
+      DISPLAY="\$DISPLAY" \
+      XAUTHORITY="\$XAUTHORITY" \
+      DBUS_SESSION_BUS_ADDRESS="\$DBUS_SESSION_BUS_ADDRESS" \
+      \
+      HOME="\$HOME" \
+      TMPDIR="\$XDG_CACHE_HOME/tmp" \
+      XDG_CONFIG_HOME="\$XDG_CONFIG_HOME" \
+      XDG_DATA_HOME="\$XDG_DATA_HOME" \
+      XDG_CACHE_HOME="\$XDG_CACHE_HOME" \
+      \
+      XDG_DATA_DIRS="$wrapper_XDG_DATA_DIRS" \
+      \
+      FONTCONFIG_FILE="$TBDATA_IN_STORE/fonts.conf" \
+      \
+      $self/firefox \
+        -no-remote \
+        -profile "\$HOME/TorBrowser/Data/Browser/profile.default" \
+        "\$@"
     EOF
     chmod +x $out/bin/tor-browser
   '';

From fc44e91ad5fabde78aedc2cb3a5f8125f06ec4ee Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:34:56 +0200
Subject: [PATCH 442/533] tor-browser-bundle: use fonts from Nixpkgs

---
 .../browsers/tor-browser-bundle/default.nix       | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 73c5dc6b3ee4..979aac5b92f8 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -11,6 +11,9 @@
 , coreutils
 , hicolor_icon_theme
 , shared_mime_info
+, noto-fonts
+, noto-fonts-emoji
+
 # Extensions, common
 , unzip
 , zip
@@ -172,6 +175,13 @@ let
     name = "tor-browser-extensions";
     paths = with firefoxExtensions; [ https-everywhere noscript torbutton tor-launcher ];
   };
+
+  fontsEnv = symlinkJoin {
+    name = "tor-browser-fonts";
+    paths = [ noto-fonts noto-fonts-emoji ];
+  };
+
+  fontsDir = "${fontsEnv}/share/fonts";
 in
 stdenv.mkDerivation rec {
   name = "tor-browser-bundle-${version}";
@@ -244,6 +254,11 @@ stdenv.mkDerivation rec {
       $bundleData/$bundlePlatform/Data/Browser/profile.default/preferences/extension-overrides.js \
       >> defaults/pref/extension-overrides.js
 
+    # Hard-code path to TBB fonts; xref: FONTCONFIG_FILE in the wrapper below
+    sed $bundleData/$bundlePlatform/Data/fontconfig/fonts.conf \
+        -e "s,<dir>fonts</dir>,<dir>${fontsDir}</dir>," \
+        > $TBDATA_PATH/fonts.conf
+
     # Generate a suitable wrapper
     wrapper_PATH=${lib.makeBinPath [ coreutils ]}
     wrapper_XDG_DATA_DIRS=${lib.concatMapStringsSep ":" (x: "${x}/share") [

From 206e4a6d69f25e47254bbd33f935f85d97441259 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Tue, 26 Sep 2017 20:35:22 +0200
Subject: [PATCH 443/533] tor-browser-bundle: basic checks for the wrapper
 script

---
 .../networking/browsers/tor-browser-bundle/default.nix     | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 979aac5b92f8..ca20125332aa 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -359,6 +359,13 @@ stdenv.mkDerivation rec {
         "\$@"
     EOF
     chmod +x $out/bin/tor-browser
+
+    echo "Syntax checking wrapper ..."
+    bash -n $out/bin/tor-browser
+
+    echo "Checking wrapper ..."
+    DISPLAY="" XAUTHORITY="" DBUS_SESSION_BUS_ADDRESS="" TBB_HOME=$TMPDIR/tbb \
+    $out/bin/tor-browser -version >/dev/null
   '';
 
   meta = with stdenv.lib; {

From 9824ca6975fcbf5a2da9e6ba98dacafaa12bb1b3 Mon Sep 17 00:00:00 2001
From: Tuomas Tynkkynen <tuomas@tuxera.com>
Date: Wed, 27 Sep 2017 00:39:55 +0300
Subject: [PATCH 444/533] caffe: Make 'bin' the first output

So ${caffe}/bin/foo always works in scripts.
---
 pkgs/applications/science/math/caffe/default.nix | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 5c6fe9c573d5..cb28d38bf1d0 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -46,9 +46,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = lib.optional pythonSupport python.pkgs.protobuf;
 
-  outputs = [ "out" "bin" ];
-  # Don't propagate bin.
-  outputBin = "out";
+  outputs = [ "bin" "out"];
+  propagatedBuildOutputs = []; # otherwise propagates out -> bin cycle
 
   postInstall = ''
     # Internal static library.

From 1a681a6ecb51c4dc80ab9a6065870323ba3aa549 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 00:50:42 +0200
Subject: [PATCH 445/533] shotcut: 17.02 -> 17.09

fixes the previously broken build
---
 pkgs/applications/video/shotcut/default.nix | 25 ++++++++++++---------
 pkgs/top-level/all-packages.nix             |  4 +++-
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix
index 72dbf87fdefe..88cb43b4d91f 100644
--- a/pkgs/applications/video/shotcut/default.nix
+++ b/pkgs/applications/video/shotcut/default.nix
@@ -1,26 +1,29 @@
-{ stdenv, fetchurl, SDL, frei0r, gettext, mlt, jack1, pkgconfig, qtbase,
-qtmultimedia, qtwebkit, qtx11extras, qtwebsockets, qtquickcontrols,
-qtgraphicaleffects,
-qmake, makeWrapper }:
+{ stdenv, fetchFromGitHub, SDL2, frei0r, gettext, mlt, jack1, pkgconfig, qtbase
+, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets, qtquickcontrols
+, qtgraphicaleffects, libmlt
+, qmake, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "shotcut-${version}";
-  version = "17.02";
+  version = "17.09";
 
-  src = fetchurl {
-    url = "https://github.com/mltframework/shotcut/archive/v${version}.tar.gz";
-    sha256 = "09nygz1x9fvqf33gqpc6jnr1j7ny0yny3w2ngwqqfkf3f8n83qhr";
+  src = fetchFromGitHub {
+    owner = "mltframework";
+    repo = "shotcut";
+    rev = "v${version}";
+    sha256 = "061jmk1g2h7p82kyk2zgk19g0y3dgx3lppfnm6cdmi550b51qllb";
   };
 
-
   enableParallelBuilding = true;
   nativeBuildInputs = [ makeWrapper pkgconfig qmake ];
   buildInputs = [
-    SDL frei0r gettext mlt
+    SDL2 frei0r gettext mlt libmlt
     qtbase qtmultimedia qtwebkit qtx11extras qtwebsockets qtquickcontrols
     qtgraphicaleffects
   ];
 
+  NIX_CFLAGS_COMPILE = "-I${libmlt}/include/mlt++ -I${libmlt}/include/mlt";
+
   prePatch = ''
     sed 's_shotcutPath, "qmelt"_"${mlt}/bin/melt"_' -i src/jobs/meltjob.cpp
     sed 's_shotcutPath, "ffmpeg"_"${mlt.ffmpeg}/bin/ffmpeg"_' -i src/jobs/ffmpegjob.cpp
@@ -31,7 +34,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     mkdir -p $out/share/shotcut
     cp -r src/qml $out/share/shotcut/
-    wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL ]} --prefix PATH : ${mlt}/bin
+    wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ jack1 SDL2 ]} --prefix PATH : ${mlt}/bin
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index bbd6a59088dc..ca9eb74ad9d1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -15608,7 +15608,9 @@ with pkgs;
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
 
-  shotcut = libsForQt5.callPackage ../applications/video/shotcut { };
+  shotcut = libsForQt5.callPackage ../applications/video/shotcut {
+    libmlt = mlt;
+  };
 
   smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
 

From 97e586b81233f09a33faebfa31e34c6d4f3d2675 Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Tue, 26 Sep 2017 23:26:22 +0800
Subject: [PATCH 446/533] libnfs: init at 2.0.0

---
 pkgs/development/libraries/libnfs/default.nix | 25 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 27 insertions(+)
 create mode 100644 pkgs/development/libraries/libnfs/default.nix

diff --git a/pkgs/development/libraries/libnfs/default.nix b/pkgs/development/libraries/libnfs/default.nix
new file mode 100644
index 000000000000..28069268022f
--- /dev/null
+++ b/pkgs/development/libraries/libnfs/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  name = "libnfs-${version}";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "sahlberg";
+    repo = "libnfs";
+    rev = "libnfs-${version}";
+    sha256 = "1xd1xb09jxwmx7hblv0f9gxv7i1glk3nbj2vyq50zpi158lnf2mb";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "NFS client library";
+    homepage    = https://github.com/sahlberg/libnfs;
+    license     = with licenses; [ lgpl2 bsd gpl3];
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ca9eb74ad9d1..72ddcb185e02 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9143,6 +9143,8 @@ with pkgs;
 
   libnfc = callPackage ../development/libraries/libnfc { };
 
+  libnfs = callPackage ../development/libraries/libnfs { };
+
   libnfsidmap = callPackage ../development/libraries/libnfsidmap { };
 
   libnice = callPackage ../development/libraries/libnice { };

From eba5dd84eff82f01a9867614544c7965736f8a3d Mon Sep 17 00:00:00 2001
From: Peter Hoeg <peter@hoeg.com>
Date: Tue, 26 Sep 2017 23:11:44 +0800
Subject: [PATCH 447/533] cwiid: boy scout cleanups

---
 pkgs/development/libraries/cwiid/default.nix | 28 +++++++++++---------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/pkgs/development/libraries/cwiid/default.nix b/pkgs/development/libraries/cwiid/default.nix
index fb5431ff8d59..606058da8545 100644
--- a/pkgs/development/libraries/cwiid/default.nix
+++ b/pkgs/development/libraries/cwiid/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, autoreconfHook, fetchgit, bison, flex, bluez, pkgconfig, gtk2 }:
+{ stdenv, fetchFromGitHub, autoreconfHook, bison, flex, bluez, pkgconfig, gtk2 }:
 
 stdenv.mkDerivation rec {
-  name = "cwiid-2010-02-21-git";
+  name = "cwiid-${version}-git";
+  version = "2010-02-21";
 
-  src = fetchgit {
-      url = https://github.com/abstrakraft/cwiid;
-      sha256 = "0qdb0x757k76nfj32xc2nrrdqd9jlwgg63vfn02l2iznnzahxp0h";
-      rev = "fadf11e89b579bcc0336a0692ac15c93785f3f82";
+  src = fetchFromGitHub {
+    owner  = "abstrakraft";
+    repo   = "cwiid";
+    rev    = "fadf11e89b579bcc0336a0692ac15c93785f3f82";
+    sha256 = "0qdb0x757k76nfj32xc2nrrdqd9jlwgg63vfn02l2iznnzahxp0h";
   };
 
   hardeningDisable = [ "format" ];
@@ -17,18 +19,20 @@ stdenv.mkDerivation rec {
     sed -i -e '/$(LDCONFIG)/d' common/include/lib.mak.in
   '';
 
-  buildInputs = [ autoreconfHook bison flex bluez pkgconfig gtk2 ];
+  buildInputs = [ bison flex bluez gtk2 ];
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   postInstall = ''
     # Some programs (for example, cabal-install) have problems with the double 0
     sed -i -e "s/0.6.00/0.6.0/" $out/lib/pkgconfig/cwiid.pc
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Linux Nintendo Wiimote interface";
-    homepage = http://cwiid.org;
-    license = stdenv.lib.licenses.gpl2Plus;
-    maintainers = [ stdenv.lib.maintainers.bennofs ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage    = http://cwiid.org;
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ bennofs ];
+    platforms   = platforms.linux;
   };
 }

From 3d4ed0181e7a62d9376e04cdbe0160d7f4bf2119 Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Wed, 27 Sep 2017 07:29:15 +0100
Subject: [PATCH 448/533] bower2nix: 3.1.1 -> 3.2.0

---
 .../node-packages/node-packages-v6.nix           |  8 ++++----
 pkgs/top-level/node-packages-generated.nix       | 16 ++++++++--------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/pkgs/development/node-packages/node-packages-v6.nix b/pkgs/development/node-packages/node-packages-v6.nix
index ba2a6c77ce2f..bd4a3e5abcc6 100644
--- a/pkgs/development/node-packages/node-packages-v6.nix
+++ b/pkgs/development/node-packages/node-packages-v6.nix
@@ -23701,10 +23701,10 @@ in
   bower2nix = nodeEnv.buildNodePackage {
     name = "bower2nix";
     packageName = "bower2nix";
-    version = "3.1.1";
+    version = "3.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bower2nix/-/bower2nix-3.1.1.tgz";
-      sha1 = "77cc8f966a3595686f5d6fae30ad9bd2cc20bfe3";
+      url = "https://registry.npmjs.org/bower2nix/-/bower2nix-3.2.0.tgz";
+      sha1 = "nlzr17lidjf72s60vcsnqpjxgnnsn32s";
     };
     dependencies = [
       sources."argparse-1.0.4"
@@ -37338,4 +37338,4 @@ in
     };
     production = true;
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/top-level/node-packages-generated.nix b/pkgs/top-level/node-packages-generated.nix
index 432a367d1535..3014273e5c3a 100644
--- a/pkgs/top-level/node-packages-generated.nix
+++ b/pkgs/top-level/node-packages-generated.nix
@@ -5381,15 +5381,15 @@
     cpu = [ ];
   };
   by-spec."bower2nix"."*" =
-    self.by-version."bower2nix"."3.1.1";
-  by-version."bower2nix"."3.1.1" = self.buildNodePackage {
-    name = "bower2nix-3.1.1";
-    version = "3.1.1";
+    self.by-version."bower2nix"."3.2.0";
+  by-version."bower2nix"."3.2.0" = self.buildNodePackage {
+    name = "bower2nix-3.2.0";
+    version = "3.2.0";
     bin = true;
     src = fetchurl {
-      url = "https://registry.npmjs.org/bower2nix/-/bower2nix-3.1.1.tgz";
-      name = "bower2nix-3.1.1.tgz";
-      sha1 = "wfzj1k6jkfnk1bkgbmpni59mdab8zk3p";
+      url = "https://registry.npmjs.org/bower2nix/-/bower2nix-3.2.0.tgz";
+      name = "bower2nix-3.2.0.tgz";
+      sha1 = "nlzr17lidjf72s60vcsnqpjxgnnsn32s";
     };
     deps = {
       "argparse-1.0.4" = self.by-version."argparse"."1.0.4";
@@ -5410,7 +5410,7 @@
     os = [ ];
     cpu = [ ];
   };
-  "bower2nix" = self.by-version."bower2nix"."3.0.1";
+  "bower2nix" = self.by-version."bower2nix"."3.2.0";
   by-spec."bplist-creator"."0.0.4" =
     self.by-version."bplist-creator"."0.0.4";
   by-version."bplist-creator"."0.0.4" = self.buildNodePackage {

From e911e39c26b613d9f1222d76e7ad25ab771ec422 Mon Sep 17 00:00:00 2001
From: Florian Jacob <projects+git@florianjacob.de>
Date: Wed, 27 Sep 2017 09:37:41 +0200
Subject: [PATCH 449/533] mariadb: 10.1.25 -> 10.1.26

---
 pkgs/servers/sql/mariadb/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 3ede229931eb..a2e5fbb6df9e 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -15,11 +15,11 @@ mariadb = everything // {
 };
 
 common = rec { # attributes common to both builds
-  version = "10.1.25";
+  version = "10.1.26";
 
   src = fetchurl {
     url    = "https://downloads.mariadb.org/f/mariadb-${version}/source/mariadb-${version}.tar.gz/from/http%3A//ftp.hosteurope.de/mirror/archive.mariadb.org/?serve";
-    sha256 = "1mm0n8sl6grajk5rbrx55333laz5dg2abyl8mlsn7h8vdymfq1bj";
+    sha256 = "0ggpdcal0if9y6h9hp1yv2q65cbkjfl4p8rqk68a5pk7k75v325s";
     name   = "mariadb-${version}.tar.gz";
   };
 

From 65b04b8bef07c710d6ec52b4f71854fabbbda2de Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Wed, 27 Sep 2017 12:02:34 +0200
Subject: [PATCH 450/533] network-manager-applet: Don't depend on webkitgtk by
 default

This added significant bloat to non-Gnome systems.
---
 pkgs/tools/networking/network-manager-applet/default.nix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/networking/network-manager-applet/default.nix b/pkgs/tools/networking/network-manager-applet/default.nix
index c0c4950f4471..3220aebdfe49 100644
--- a/pkgs/tools/networking/network-manager-applet/default.nix
+++ b/pkgs/tools/networking/network-manager-applet/default.nix
@@ -1,7 +1,8 @@
 { stdenv, fetchurl, intltool, pkgconfig, libglade, networkmanager, gnome3
 , libnotify, libsecret, polkit, isocodes, modemmanager, librsvg
 , mobile_broadband_provider_info, glib_networking, gsettings_desktop_schemas
-, makeWrapper, udev, libgudev, hicolor_icon_theme, jansson, wrapGAppsHook, webkitgtk }:
+, makeWrapper, udev, libgudev, hicolor_icon_theme, jansson, wrapGAppsHook, webkitgtk
+, withGnome ? false }:
 
 stdenv.mkDerivation rec {
   name    = "${pname}-${major}.${minor}";
@@ -24,8 +25,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gnome3.gtk libglade networkmanager libnotify libsecret gsettings_desktop_schemas
     polkit isocodes makeWrapper udev libgudev gnome3.gconf gnome3.libgnome_keyring
-    modemmanager jansson librsvg glib_networking gnome3.dconf webkitgtk
-  ];
+    modemmanager jansson librsvg glib_networking gnome3.dconf
+  ] ++ stdenv.lib.optional withGnome webkitgtk;
 
   nativeBuildInputs = [ intltool pkgconfig wrapGAppsHook ];
 

From 28299f669adc41e5278372cad952fb1e1165b44b Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Wed, 27 Sep 2017 11:25:50 +0200
Subject: [PATCH 451/533] Add even more dev outputs

---
 pkgs/desktops/gnome-3/core/gcr/default.nix           | 2 ++
 pkgs/desktops/gnome-3/core/gnome-keyring/default.nix | 2 ++
 pkgs/development/python-modules/cffi/default.nix     | 2 ++
 pkgs/development/python-modules/requests/default.nix | 2 ++
 pkgs/development/python-modules/urllib3/default.nix  | 2 ++
 pkgs/top-level/python-packages.nix                   | 4 ++++
 6 files changed, 14 insertions(+)

diff --git a/pkgs/desktops/gnome-3/core/gcr/default.nix b/pkgs/desktops/gnome-3/core/gcr/default.nix
index 55eebf77be59..0798d69f9e65 100644
--- a/pkgs/desktops/gnome-3/core/gcr/default.nix
+++ b/pkgs/desktops/gnome-3/core/gcr/default.nix
@@ -5,6 +5,8 @@
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [
     pkgconfig intltool gnupg glib gobjectIntrospection libxslt
     libgcrypt libtasn1 dbus_glib gtk pango gdk_pixbuf atk makeWrapper vala_0_32
diff --git a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
index df47c1a477b9..4baafecadd0a 100644
--- a/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-keyring/default.nix
@@ -5,6 +5,8 @@
 stdenv.mkDerivation rec {
   inherit (import ./src.nix fetchurl) name src;
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = with gnome3; [
     dbus libgcrypt pam python gtk3 gconf libgnome_keyring
     pango gcr gdk_pixbuf atk p11_kit
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 5b0265601a3e..cced78c0c6a5 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -10,6 +10,8 @@ if isPyPy then null else buildPythonPackage rec {
     sha256 = "1mffyilq4qycm8gs4wkgb18rnqil8a9blqq77chdlshzxc8jkc5k";
   };
 
+  outputs = [ "out" "dev" ];
+
   propagatedBuildInputs = [ libffi pycparser ];
   buildInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index b85bb54a4f15..f3ff4a84f1e8 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -12,6 +12,8 @@ buildPythonPackage rec {
     sha256 = "0zi3v9nsmv9j27d0c0m1dvqyvaxz53g8m0aa1h3qanxs4irkwi4w";
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [ pytest ];
   propagatedBuildInputs = [ urllib3 idna chardet certifi ];
   # sadly, tests require networking
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 10021e14f126..f030ef74e63f 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -12,6 +12,8 @@ buildPythonPackage rec {
     sha256 = "0kyvc9zdlxr5r96bng5rhm9a6sfqidrbvvkz64s76qs5267dli6c";
   };
 
+  outputs = [ "out" "dev" ];
+
   NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
     "test_headers" "test_headerdict" "test_can_validate_ip_san" "test_delayed_body_read_timeout"
     "test_timeout_errors_cause_retries" "test_select_multiple_interrupts_with_event"
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1c56fe5f1abe..7c6ca4bd1fc9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -3295,6 +3295,8 @@ in {
       sha256 = "d04bb2425086c3fe86f7bc48915290b13e798497839fbb18ab7f6dffcf98cc3a";
     };
 
+    outputs = [ "out" "dev" ];
+
     buildInputs = [ pkgs.openssl self.cryptography_vectors ]
                ++ optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Security;
     propagatedBuildInputs = with self; [
@@ -17817,6 +17819,8 @@ in {
       sha256 = "0d283g4zi0hr9papd24mjl70mi15gyzq6fx618rizi87dgipqqax";
     };
 
+    outputs = [ "out" "dev" ];
+
     preCheck = ''
       sed -i 's/test_set_default_verify_paths/noop/' tests/test_ssl.py
       # https://github.com/pyca/pyopenssl/issues/692

From fc7f4f6fc3638ff7fdd7e296b1bb7d9409eb3402 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 07:39:32 -0400
Subject: [PATCH 452/533] i3: 4.14 -> 4.14.1

---
 pkgs/applications/window-managers/i3/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index 54dfc08e3b59..19aa89a7f7e7 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   name = "i3-${version}";
-  version = "4.14";
+  version = "4.14.1";
 
   src = fetchurl {
     url = "http://i3wm.org/downloads/${name}.tar.bz2";
-    sha256 = "1mm5jazwv4dz3k8vl1lfrcw86agpws5k9lmav1ly51qvmzivsfmf";
+    sha256 = "1cazmfbbx6n8c81h6x6pdayq3mxs2ml3adz165z8vapkc72kl1nh";
   };
 
   nativeBuildInputs = [ which pkgconfig makeWrapper ];

From bee055fa96ee8a4d855ef20b92aef99a2b9e394d Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 07:39:48 -0400
Subject: [PATCH 453/533] i3-gaps: 4.14 -> 4.14.1

---
 pkgs/applications/window-managers/i3/gaps.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 58ab5b1d676b..b322c7da193a 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -3,12 +3,12 @@
 i3.overrideDerivation (super : rec {
 
   name = "i3-gaps-${version}";
-  version = "4.14";
-  releaseDate = "2017-09-04";
+  version = "4.14.1";
+  releaseDate = "2017-09-24";
 
   src = fetchurl {
     url = "https://github.com/Airblader/i3/archive/${version}.tar.gz";
-    sha256 = "08y2m0afcm8mbzb92qz286fd1hnqfya2pvhpxbgv83sgjcsg6hlr";
+    sha256 = "11fnkg4halplcnannfw3ishzwwbxbnjafmkxsim199jhlyjjd8j7";
   };
 
   nativeBuildInputs = super.nativeBuildInputs ++ [ autoreconfHook ];

From b015f629659b20f408d7d78185932ce41c2a1fd7 Mon Sep 17 00:00:00 2001
From: Tristan Helmich <tristan.helmich@teamviewer.com>
Date: Wed, 27 Sep 2017 13:56:31 +0200
Subject: [PATCH 454/533] pythonPackages.phonenumbers: 8.8.1 -> 8.8.2

---
 pkgs/development/python-modules/phonenumbers/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 53ec2c292fcc..5f54fb12ec23 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.8.1";
+  version = "8.8.2";
   name = "${pname}-${version}";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09f4b307v6wn5zs6spvp5icwad3dz9baf7d14hyvpnxn7cdqj2xy";
+    sha256 = "0xwis5hvp2wmnzqxax8896vhyb3q2fs9l9ilvyr44jdh3342dxpx";
   };
 
   meta = {

From 825e417457d803fbc5e7ae8bc19fa9dfc29c32c4 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 08:16:42 -0400
Subject: [PATCH 455/533] docker: add 17.09.0-ce

---
 .../virtualization/docker/default.nix         | 23 ++++++++++++-------
 pkgs/top-level/all-packages.nix               | 10 ++++----
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 043f27e13d24..f28ec6275b86 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -44,6 +44,13 @@ rec {
         rev = containerdRev;
         sha256 = containerdSha256;
       };
+
+      # This should go into the containerd derivation once 1.0.0 is out
+      preBuild = ''
+        mkdir $(pwd)/vendor/src
+        mv $(pwd)/vendor/{github.com,golang.org,google.golang.org} $(pwd)/vendor/src/
+        ln -s $(pwd) vendor/src/github.com/containerd/containerd
+      '';
     });
     docker-tini = tini.overrideAttrs  (oldAttrs: rec {
       name = "docker-init";
@@ -188,14 +195,14 @@ rec {
     tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
   };
 
-  docker_17_07 = dockerGen rec {
-    version = "17.07.0-ce";
-    rev = "87847530f7176a48348d196f7c23bbd058052af1"; # git commit
-    sha256 = "0zw9zlzbd7il33ch17ypwpa73gsb930sf2njnphg7ylvnqp8qzsp";
-    runcRev = "2d41c047c83e09a6d61d464906feb2a2f3c52aa4";
-    runcSha256 = "0v5iv29ck6lkxvxh7a56gfrlgfs0bjvjhrq3p6qqv9qjzv825byq";
-    containerdRev = "3addd840653146c90a254301d6c3a663c7fd6429";
-    containerdSha256 = "0as4s5wd57pdh1cyavkccpgs46kvlhr41v07qrv0phzffdhq3d5j";
+  docker_17_09 = dockerGen rec {
+    version = "17.09.0-ce";
+    rev = "afdb6d44a80f777069885a9ee0e0f86cf841b1bb"; # git commit
+    sha256 = "03g0imdcxqx9y4hhyymxqzvm8bqg4cqrmb7sjbxfdgrhzh9kcn1p";
+    runcRev = "3f2f8b84a77f73d38244dd690525642a72156c64";
+    runcSha256 = "0vaagmav8443kmyxac2y1y5l2ipcs1c7gdmsnvj48y9bafqx72rq";
+    containerdRev = "06b9cb35161009dcb7123345749fef02f7cea8e0";
+    containerdSha256 = "10hms8a2nn69nfnwly6923jzx40c3slpsdhjhff4bxh36flpf9gd";
     tiniRev = "949e6facb77383876aeff8a6944dde66b3089574";
     tiniSha256 = "0zj4kdis1vvc6dwn4gplqna0bs7v6d1y2zc8v80s3zi018inhznw";
   };
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 72ddcb185e02..5bd78b21e848 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9281,8 +9281,8 @@ with pkgs;
 
   libminc = callPackage ../development/libraries/libminc { };
 
-  libmirage = callPackage ../misc/emulators/cdemu/libmirage.nix { }; 
-  
+  libmirage = callPackage ../misc/emulators/cdemu/libmirage.nix { };
+
   libmkv = callPackage ../development/libraries/libmkv { };
 
   libmms = callPackage ../development/libraries/libmms { };
@@ -13981,10 +13981,10 @@ with pkgs;
 
   inherit (callPackage ../applications/virtualization/docker { })
     docker_17_06
-    docker_17_07;
+    docker_17_09;
 
-  docker = docker_17_06;
-  docker-edge = docker_17_07;
+  docker = docker_17_09;
+  docker-edge = docker_17_09;
 
   docker-proxy = callPackage ../applications/virtualization/docker/proxy.nix { };
 

From 3abee357e6e6eec105bb3125094ec0f78423a52a Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 27 Sep 2017 14:00:07 +0200
Subject: [PATCH 456/533] pyramid: fix propagated builds

hupper and plaster need to be propagated to dependent packages
---
 pkgs/top-level/python-packages.nix | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7c6ca4bd1fc9..70c334dda0b8 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7346,19 +7346,18 @@ in {
       sha256 = "0dhbzc4q0vsnv3aihy728aczg56xs6h9s1rmvr096q4lb6yln3w4";
     };
 
-    buildInputs = with self; [
+    checkInputs = with self; [
       docutils
       virtualenv
       webtest
       zope_component
-      zope_interface
-      plaster
-      plaster-pastedeploy
-      hupper
     ] ++ optional isPy26 unittest2;
 
     propagatedBuildInputs = with self; [
+      hupper
       PasteDeploy
+      plaster
+      plaster-pastedeploy
       repoze_lru
       repoze_sphinx_autointerface
       translationstring

From bfab392e6edf20be2cfa8a457a65c2e6b4cfedc2 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 27 Sep 2017 14:34:47 +0200
Subject: [PATCH 457/533] nixos(spamassassin): provide /etc/spamassassin to fix
 sa-learn et al

Spamassassin expects its system-wide configuration at /etc/spamassassin, and
some user tools (like sa-learn) need to read those configuration files.
Therefore, we provide a symlink from /etc/spamassassin to the appropriate Nix
store path to make sure those tools work without the user having to pass an
elaborate --siteconfig path that, potentially, changes every time the system
updates.

Fixes https://github.com/NixOS/nixpkgs/issues/29414.
---
 nixos/modules/services/mail/spamassassin.nix | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/services/mail/spamassassin.nix b/nixos/modules/services/mail/spamassassin.nix
index fc8396cd85e9..ba0e5aeb0b5b 100644
--- a/nixos/modules/services/mail/spamassassin.nix
+++ b/nixos/modules/services/mail/spamassassin.nix
@@ -122,7 +122,11 @@ in
   config = mkIf cfg.enable {
 
     # Allow users to run 'spamc'.
-    environment.systemPackages = [ pkgs.spamassassin ];
+
+    environment = {
+      etc = singleton { source = spamdEnv; target = "spamassassin"; };
+      systemPackages = [ pkgs.spamassassin ];
+    };
 
     users.extraUsers = singleton {
       name = "spamd";
@@ -177,11 +181,6 @@ in
       # 0 and 1 no error, exitcode > 1 means error:
       # https://spamassassin.apache.org/full/3.1.x/doc/sa-update.html#exit_codes
       preStart = ''
-        # this abstraction requires no centralized config at all
-        if [ -d /etc/spamassassin ]; then
-          echo "This spamassassin does not support global '/etc/spamassassin' folder for configuration as this would be impure. Merge your configs into 'services.spamassassin' and remove the '/etc/spamassassin' folder to make this service work. Also see 'https://github.com/NixOS/nixpkgs/pull/26470'."; 
-          exit 1
-        fi
         echo "Recreating '/var/lib/spamasassin' with creating '3.004001' (or similar) and 'sa-update-keys'"
         mkdir -p /var/lib/spamassassin
         chown spamd:spamd /var/lib/spamassassin -R

From 99e24590cbfbb1e82681c9a8dbb7d8d0acd6a1c6 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 27 Sep 2017 14:37:56 +0200
Subject: [PATCH 458/533] nixos(spamassassin): fix trailing whitespace

---
 nixos/modules/services/mail/spamassassin.nix | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/nixos/modules/services/mail/spamassassin.nix b/nixos/modules/services/mail/spamassassin.nix
index ba0e5aeb0b5b..d483a8c3d67d 100644
--- a/nixos/modules/services/mail/spamassassin.nix
+++ b/nixos/modules/services/mail/spamassassin.nix
@@ -42,7 +42,7 @@ in
 
           Then you can Use this sieve filter:
             require ["fileinto", "reject", "envelope"];
-            
+
             if header :contains "X-Spam-Flag" "YES" {
               fileinto "spam";
             }
@@ -67,11 +67,11 @@ in
       initPreConf = mkOption {
         type = types.str;
         description = "The SpamAssassin init.pre config.";
-        default = 
-        ''          
+        default =
+        ''
           #
           # to update this list, run this command in the rules directory:
-          # grep 'loadplugin.*Mail::SpamAssassin::Plugin::.*' -o -h * | sort | uniq     
+          # grep 'loadplugin.*Mail::SpamAssassin::Plugin::.*' -o -h * | sort | uniq
           #
 
           #loadplugin Mail::SpamAssassin::Plugin::AccessDB
@@ -142,7 +142,7 @@ in
 
     systemd.services.sa-update = {
       script = ''
-        set +e 
+        set +e
         ${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd
 
         v=$?
@@ -157,7 +157,7 @@ in
       '';
     };
 
-    systemd.timers.sa-update = { 
+    systemd.timers.sa-update = {
       description = "sa-update-service";
       partOf      = [ "sa-update.service" ];
       wantedBy    = [ "timers.target" ];
@@ -184,7 +184,7 @@ in
         echo "Recreating '/var/lib/spamasassin' with creating '3.004001' (or similar) and 'sa-update-keys'"
         mkdir -p /var/lib/spamassassin
         chown spamd:spamd /var/lib/spamassassin -R
-        set +e 
+        set +e
         ${pkgs.su}/bin/su -s "${pkgs.bash}/bin/bash" -c "${pkgs.spamassassin}/bin/sa-update --gpghomedir=/var/lib/spamassassin/sa-update-keys/ --siteconfigpath=${spamdEnv}/" spamd
         v=$?
         set -e

From 43b7e69d13de4702f7b27803ce1eb93ffe1e57fe Mon Sep 17 00:00:00 2001
From: WilliButz <wbutz@cyberfnord.de>
Date: Wed, 27 Sep 2017 14:47:21 +0200
Subject: [PATCH 459/533] splUnstable: fix hash

---
 pkgs/os-specific/linux/spl/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 31af8a49de12..cd0c283edbb2 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -70,6 +70,6 @@ in
     splUnstable = common {
       version = "2017-09-26";
       rev = "e8474f9ad3b3d23c3277535c4f53f8fd1e6cbd74";
-      sha256 = "1hydfhmngpq31gxkxipqxnin74l760d1ia202h12vsgix9sp32h7";
+      sha256 = "0251cnffgx98nckgz6imwa8dnvba44wc02aacmr1n430gmq72xra";
     };
 }

From 4398872523a4f204d061f7c72bbbfc5ad94018b0 Mon Sep 17 00:00:00 2001
From: Peter Simons <simons@cryp.to>
Date: Wed, 27 Sep 2017 16:17:15 +0200
Subject: [PATCH 460/533] libnfs: fix broken meta.license attribute

A license called "bsd" does not exist. Ping @peterhoeg.
---
 pkgs/development/libraries/libnfs/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/libnfs/default.nix b/pkgs/development/libraries/libnfs/default.nix
index 28069268022f..ab59867283e1 100644
--- a/pkgs/development/libraries/libnfs/default.nix
+++ b/pkgs/development/libraries/libnfs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "NFS client library";
     homepage    = https://github.com/sahlberg/libnfs;
-    license     = with licenses; [ lgpl2 bsd gpl3];
+    license     = with licenses; [ lgpl2 gpl3];
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.unix;
   };

From c0235ef611b5760d0d98005570142a3f3bd071d5 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 16:27:32 +0200
Subject: [PATCH 461/533] libnfs: fix eval

---
 pkgs/development/libraries/libnfs/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/libraries/libnfs/default.nix b/pkgs/development/libraries/libnfs/default.nix
index ab59867283e1..d9149a1fbac5 100644
--- a/pkgs/development/libraries/libnfs/default.nix
+++ b/pkgs/development/libraries/libnfs/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "NFS client library";
     homepage    = https://github.com/sahlberg/libnfs;
-    license     = with licenses; [ lgpl2 gpl3];
+    license     = with licenses; [ lgpl2 bsd2 gpl3 ];
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.unix;
   };

From 71cc54300ef68ec2b211a848a7d41f3258b981a9 Mon Sep 17 00:00:00 2001
From: Tristan Helmich <tristan.helmich@gmail.com>
Date: Wed, 27 Sep 2017 13:47:35 +0200
Subject: [PATCH 462/533] emby: 3.2.30.0 -> 3.2.32.0

---
 pkgs/servers/emby/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/servers/emby/default.nix b/pkgs/servers/emby/default.nix
index 5b749b92c037..678fb42acd57 100644
--- a/pkgs/servers/emby/default.nix
+++ b/pkgs/servers/emby/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "emby-${version}";
-  version = "3.2.30.0";
+  version = "3.2.32.0";
 
   src = fetchurl {
     url = "https://github.com/MediaBrowser/Emby/releases/download/${version}/Emby.Mono.zip";
-    sha256 = "1aqal7n4a9dvy97zw4aah9a8jm4l2v1qgjgs5kvskrvir2dbid27";
+    sha256 = "0bwcqwh9g8yrkh1schfr30jf5m2w3r2raczq5x94vjfs8i6dmqh0";
   };
 
   buildInputs = with pkgs; [

From 76245e0b9dc0f13af031bf9ed2057046a16fb98f Mon Sep 17 00:00:00 2001
From: Peter Brottveit Bock <post@peterbb.net>
Date: Wed, 27 Sep 2017 14:44:35 +0000
Subject: [PATCH 463/533] urweb: support darwin, depend on gcc, fix paths.

1. Add support for the darwing platform.
2. Depend on gcc, since the urweb executable will
   call gcc when it compiles an urweb-project.
3. Fix include path and link path for the dependencies.
---
 pkgs/development/compilers/urweb/default.nix | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index 7145a8f2fa04..bb8cb5f17461 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, file, openssl, mlton
-, mysql, postgresql, sqlite
+, mysql, postgresql, sqlite, gcc
 }:
 
 stdenv.mkDerivation rec {
@@ -20,12 +20,14 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-openssl=${openssl.dev}";
 
   preConfigure = ''
-    export PGHEADER="${postgresql}/include/libpq-fe.h";
+    export PGHEADER="${postgresql.dev}/include/libpq-fe.h";
     export MSHEADER="${lib.getDev mysql.client}/include/mysql/mysql.h";
     export SQHEADER="${sqlite.dev}/include/sqlite3.h";
 
+    export CC="${gcc}/bin/gcc";
     export CCARGS="-I$out/include \
-                   -L${lib.getLib mysql.client}/lib/mysql \
+                   -L${openssl.out}/lib \
+                   -L${lib.getLib mysql.client}/lib \
                    -L${postgresql.lib}/lib \
                    -L${sqlite.out}/lib";
   '';
@@ -37,7 +39,7 @@ stdenv.mkDerivation rec {
     description = "Advanced purely-functional web programming language";
     homepage    = "http://www.impredicative.com/ur/";
     license     = stdenv.lib.licenses.bsd3;
-    platforms   = stdenv.lib.platforms.linux;
+    platforms   = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
     maintainers = [ stdenv.lib.maintainers.thoughtpolice stdenv.lib.maintainers.sheganinans ];
   };
 }

From d0d992a9a0c3f6129017b08326bef121db3b0a9d Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 17:10:06 +0200
Subject: [PATCH 464/533] urllib3: revert multiple outputs

only moved propagated build inputs to dev which broke packages depending
on it e.g. glusterfs

cc @edolstra
---
 pkgs/development/python-modules/urllib3/default.nix | 2 --
 1 file changed, 2 deletions(-)

diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index f030ef74e63f..10021e14f126 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -12,8 +12,6 @@ buildPythonPackage rec {
     sha256 = "0kyvc9zdlxr5r96bng5rhm9a6sfqidrbvvkz64s76qs5267dli6c";
   };
 
-  outputs = [ "out" "dev" ];
-
   NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
     "test_headers" "test_headerdict" "test_can_validate_ip_san" "test_delayed_body_read_timeout"
     "test_timeout_errors_cause_retries" "test_select_multiple_interrupts_with_event"

From 79d547b4bbf9aaa900bc90aa4e97ec4516530641 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Wed, 27 Sep 2017 17:10:04 +0200
Subject: [PATCH 465/533] nix-daemon: Bump the default number of build users

While it's annoying to pollute the user database with a lot of nixbld*
users, 10 users is really too low for many modern systems.
---
 nixos/modules/services/misc/nix-daemon.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index bf1304ee7ac2..efa3b5b6bd76 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -428,7 +428,7 @@ in
         fi
       '';
 
-    nix.nrBuildUsers = mkDefault (lib.max 10 cfg.maxJobs);
+    nix.nrBuildUsers = mkDefault (lib.max 32 cfg.maxJobs);
 
     users.extraUsers = nixbldUsers;
 

From e253ae7d3a4ab992d2432c87514e3333a3cf744d Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 17:25:14 +0200
Subject: [PATCH 466/533] rubyGems.pg: fix postgresql path

---
 pkgs/development/ruby-modules/gem-config/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 6647d71bd006..a0d4b9adcbe3 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -183,7 +183,7 @@ in
 
   pg = attrs: {
     buildFlags = [
-      "--with-pg-config=${postgresql}/bin/pg_config"
+      "--with-pg-config=${postgresql.dev}/bin/pg_config"
     ];
   };
 

From d82578addb1dee832c7758dbd4a3fbbf30c902b6 Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Wed, 27 Sep 2017 17:32:12 +0200
Subject: [PATCH 467/533] bitcoin-abc: init at 0.15.0

---
 pkgs/applications/altcoins/bitcoin-abc.nix | 41 ++++++++++++++++++++++
 pkgs/applications/altcoins/default.nix     |  3 ++
 2 files changed, 44 insertions(+)
 create mode 100644 pkgs/applications/altcoins/bitcoin-abc.nix

diff --git a/pkgs/applications/altcoins/bitcoin-abc.nix b/pkgs/applications/altcoins/bitcoin-abc.nix
new file mode 100644
index 000000000000..a14cccd2fdc7
--- /dev/null
+++ b/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
+, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, withGui }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
+  version = "0.15.0";
+
+  src = fetchFromGitHub {
+    owner = "bitcoin-ABC";
+    repo = "bitcoin-abc";
+    rev = "v${version}";
+    sha256 = "1fygn6cc99iasg5g5jyps5ps873hfnn4ln4hsmcwlwiqd591qxyv";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db48 boost zlib
+                  miniupnpc utillinux protobuf libevent ]
+                  ++ optionals withGui [ qt4 qrencode ];
+
+  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
+                     ++ optionals withGui [ "--with-gui=qt4" ];
+
+  meta = {
+    description = "Peer-to-peer electronic cash system (Cash client)";
+    longDescription= ''
+      Bitcoin ABC is the name of open source software which enables the use of Bitcoin.
+      It is designed to facilite a hard fork to increase Bitcoin's block size limit.
+      "ABC" stands for "Adjustable Blocksize Cap".
+
+      Bitcoin ABC is a fork of the Bitcoin Core software project.
+    '';
+    homepage = https://bitcoinabc.org/;
+    maintainers = with maintainers; [ lassulus ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/altcoins/default.nix b/pkgs/applications/altcoins/default.nix
index 31dcc78d3d7f..f83e565db919 100644
--- a/pkgs/applications/altcoins/default.nix
+++ b/pkgs/applications/altcoins/default.nix
@@ -5,6 +5,9 @@ rec {
   bitcoin  = callPackage ./bitcoin.nix { withGui = true; };
   bitcoind = callPackage ./bitcoin.nix { withGui = false; };
 
+  bitcoin-abc  = callPackage ./bitcoin-abc.nix { withGui = true; };
+  bitcoind-abc = callPackage ./bitcoin-abc.nix { withGui = false; };
+
   bitcoin-unlimited  = callPackage ./bitcoin-unlimited.nix { withGui = true; };
   bitcoind-unlimited = callPackage ./bitcoin-unlimited.nix { withGui = false; };
 

From b775b2cd4fd3d7ceeda1b0b7fd6f7110c2ffee68 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Wed, 27 Sep 2017 16:32:54 +0100
Subject: [PATCH 468/533] metasploit: use makeWrapper instead

---
 pkgs/tools/security/metasploit/default.nix | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 15a30db522eb..37796fef1747 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -35,14 +35,14 @@ in stdenv.mkDerivation rec {
 
     cp -r * $out/share/msf
 
-    for i in $out/share/msf/msf*; do
-      bin=$out/bin/$(basename $i)
-      cat > $bin <<EOF
-#!/bin/sh -e
-exec ${env}/bin/bundle exec ${ruby}/bin/ruby $i "\$@"
-EOF
-      chmod +x $bin
-    done
+    (
+      cd $out/share/msf/
+      for i in msf*; do
+        makeWrapper ${env}/bin/bundle $out/bin/$i \
+          --add-flags "exec ${ruby}/bin/ruby $out/share/msf/$i"
+      done
+    )
+
   '';
 
   meta = with stdenv.lib; {

From ad8cb0917fabff0cffe3f3b003343bc84d55d93e Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Wed, 27 Sep 2017 15:59:51 +0100
Subject: [PATCH 469/533] nixos/tinc: do not add Device= by default

tinc can figure this out based on DeviceType.
I also got `/dev/net/tun FD in bad state` after a particular upgrade.
---
 nixos/modules/services/networking/tinc.nix | 1 -
 1 file changed, 1 deletion(-)

diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index d5db328310c1..4b80185a649f 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -141,7 +141,6 @@ in
               ${optionalString (data.ed25519PrivateKeyFile != null) "Ed25519PrivateKeyFile = ${data.ed25519PrivateKeyFile}"}
               ${optionalString (data.listenAddress != null) "ListenAddress = ${data.listenAddress}"}
               ${optionalString (data.bindToAddress != null) "BindToAddress = ${data.bindToAddress}"}
-              Device = /dev/net/tun
               Interface = tinc.${network}
               ${data.extraConfig}
             '';

From 75ba415fbcfe48fdf5fb88f2aa461ce83921303f Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Wed, 27 Sep 2017 16:02:23 +0100
Subject: [PATCH 470/533] nixos/tinc: remove useless script argument

ExecStart is sufficient and more transparent to the user.
---
 nixos/modules/services/networking/tinc.nix | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 4b80185a649f..0354e76d74fb 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -167,6 +167,7 @@ in
           Type = "simple";
           Restart = "always";
           RestartSec = "3";
+          ExecStart = "${data.package}/bin/tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}";
         };
         preStart = ''
           mkdir -p /etc/tinc/${network}/hosts
@@ -186,9 +187,6 @@ in
             [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tincd -n ${network} -K 4096
           fi
         '';
-        script = ''
-          tincd -D -U tinc.${network} -n ${network} ${optionalString (data.chroot) "-R"} --pidfile /run/tinc.${network}.pid -d ${toString data.debugLevel}
-        '';
       })
     );
 

From 0a4704bd198bce12feb06985de69597274e88968 Mon Sep 17 00:00:00 2001
From: Brad Jensen <brad@bradjensen.net>
Date: Tue, 26 Sep 2017 18:38:41 -0700
Subject: [PATCH 471/533] lispPackages.cl-protobufs: init at 20170403-git

---
 .../quicklisp-to-nix-output/cl-protobufs.nix  | 30 +++++++++++++++++++
 .../lisp-modules/quicklisp-to-nix-systems.txt |  1 +
 .../lisp-modules/quicklisp-to-nix.nix         | 13 ++++++++
 3 files changed, 44 insertions(+)
 create mode 100644 pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix

diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix
new file mode 100644
index 000000000000..7ec440076c35
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-protobufs.nix
@@ -0,0 +1,30 @@
+args @ { fetchurl, ... }:
+rec {
+  baseName = ''cl-protobufs'';
+  version = ''20170403-git'';
+
+  description = ''Protobufs for Common Lisp'';
+
+  deps = [ args."alexandria" args."babel" args."closer-mop" args."trivial-features" args."trivial-garbage" ];
+
+  src = fetchurl {
+    url = ''http://beta.quicklisp.org/archive/cl-protobufs/2017-04-03/cl-protobufs-20170403-git.tgz'';
+    sha256 = ''0ibpl076k8gq79sacg96mzjf5hqkrxzi5wlx3bjap52pla53w4g5'';
+  };
+
+  packageName = "cl-protobufs";
+
+  asdFilesToKeep = ["cl-protobufs.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-protobufs DESCRIPTION Protobufs for Common Lisp SHA256
+    0ibpl076k8gq79sacg96mzjf5hqkrxzi5wlx3bjap52pla53w4g5 URL
+    http://beta.quicklisp.org/archive/cl-protobufs/2017-04-03/cl-protobufs-20170403-git.tgz
+    MD5 86c8da92b246b4b77d6107bc5dfaff08 NAME cl-protobufs FILENAME
+    cl-protobufs DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
+     (NAME closer-mop FILENAME closer-mop)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME trivial-garbage FILENAME trivial-garbage))
+    DEPENDENCIES (alexandria babel closer-mop trivial-features trivial-garbage)
+    VERSION 20170403-git SIBLINGS (cl-protobufs-tests) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
index 32ef6367e27a..49aa941094bd 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
@@ -33,6 +33,7 @@ closer-mop
 cl-ppcre
 cl-ppcre-template
 cl-ppcre-unicode
+cl-protobufs
 cl-reexport
 cl-smtp
 clsql
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
index 22b58895747d..86817e14f553 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
@@ -2012,6 +2012,19 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-protobufs" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-protobufs" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-protobufs.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
+       }));
+
+
   "cl-ppcre-unicode" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-ppcre-unicode" or (x: {}))

From 56eba66f77bb1d4711e824158e3b9a8d55a929f1 Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Sat, 23 Sep 2017 15:58:07 +0100
Subject: [PATCH 472/533] mysqlBackup service: let it work with default
 settings

* Grants enough privileges to the configured user so that it can run
  mysqldump.

* Adds a nixos test.

* Use systemd timers instead of a cronjob (by @fadenb).

* Creates a new user for backups by default, instead of using mysql
  user.

* Ensures that backup user has write permissions on backup location.

* Write backup to a temporary file before renaming so that a failed
  backup won't overwrite the previous backup, and so that the backup
  location will never contain a partial backup.

Breaking changes:

 * Renamed period to calendar to reflect the change in how to
   configure the backup time.

 * A failed backup will no longer result in cron sending an e-mail --
   users' monitoring systems must be updated.

Resolves #24728
---
 .../modules/services/backup/mysql-backup.nix  | 86 +++++++++++++++----
 nixos/release.nix                             |  1 +
 nixos/tests/mysql-backup.nix                  | 42 +++++++++
 nixos/tests/testdb.sql                        |  1 +
 4 files changed, 112 insertions(+), 18 deletions(-)
 create mode 100644 nixos/tests/mysql-backup.nix

diff --git a/nixos/modules/services/backup/mysql-backup.nix b/nixos/modules/services/backup/mysql-backup.nix
index 28f607861f77..3f533fa457dc 100644
--- a/nixos/modules/services/backup/mysql-backup.nix
+++ b/nixos/modules/services/backup/mysql-backup.nix
@@ -6,10 +6,28 @@ let
 
   inherit (pkgs) mysql gzip;
 
-  cfg = config.services.mysqlBackup ;
-  location = cfg.location ;
-  mysqlBackupCron = db : ''
-    ${cfg.period} ${cfg.user} ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > ${location}/${db}.gz
+  cfg = config.services.mysqlBackup;
+  defaultUser = "mysqlbackup";
+
+  backupScript = ''
+    set -o pipefail
+    failed=""
+    ${concatMapStringsSep "\n" backupDatabaseScript cfg.databases}
+    if [ -n "$failed" ]; then
+      echo "Backup of database(s) failed:$failed"
+      exit 1
+    fi
+  '';
+  backupDatabaseScript = db: ''
+    dest="${cfg.location}/${db}.gz"
+    if ${mysql}/bin/mysqldump ${if cfg.singleTransaction then "--single-transaction" else ""} ${db} | ${gzip}/bin/gzip -c > $dest.tmp; then
+      mv $dest.tmp $dest
+      echo "Backed up to $dest"
+    else
+      echo "Failed to back up to $dest"
+      rm -f $dest.tmp
+      failed="$failed ${db}"
+    fi
   '';
 
 in
@@ -26,17 +44,16 @@ in
         '';
       };
 
-      period = mkOption {
-        default = "15 01 * * *";
+      calendar = mkOption {
+        type = types.str;
+        default = "01:15:00";
         description = ''
-          This option defines (in the format used by cron) when the
-          databases should be dumped.
-          The default is to update at 01:15 (at night) every day.
+          Configured when to run the backup service systemd unit (DayOfWeek Year-Month-Day Hour:Minute:Second).
         '';
       };
 
       user = mkOption {
-        default = "mysql";
+        default = defaultUser;
         description = ''
           User to be used to perform backup.
         '';
@@ -66,16 +83,49 @@ in
 
   };
 
-  config = mkIf config.services.mysqlBackup.enable {
+  config = mkIf cfg.enable {
+    users.extraUsers = optionalAttrs (cfg.user == defaultUser) (singleton
+      { name = defaultUser;
+        isSystemUser = true;
+        createHome = false;
+        home = cfg.location;
+        group = "nogroup";
+      });
 
-    services.cron.systemCronJobs = map mysqlBackupCron config.services.mysqlBackup.databases;
-
-    system.activationScripts.mysqlBackup = stringAfter [ "stdio" "users" ]
-      ''
-        mkdir -m 0700 -p ${config.services.mysqlBackup.location}
-        chown ${config.services.mysqlBackup.user} ${config.services.mysqlBackup.location}
-      '';
+    services.mysql.ensureUsers = [{
+      name = cfg.user;
+      ensurePermissions = with lib;
+        let
+          privs = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES";
+          grant = db: nameValuePair "${db}.*" privs;
+        in
+          listToAttrs (map grant cfg.databases);
+    }];
 
+    systemd = {
+      timers."mysql-backup" = {
+        description = "Mysql backup timer";
+        wantedBy = [ "timers.target" ];
+        timerConfig = {
+          OnCalendar = cfg.calendar;
+          AccuracySec = "5m";
+          Unit = "mysql-backup.service";
+        };
+      };
+      services."mysql-backup" = {
+        description = "Mysql backup service";
+        enable = true;
+        serviceConfig = {
+          User = cfg.user;
+          PermissionsStartOnly = true;
+        };
+        preStart = ''
+          mkdir -m 0700 -p ${cfg.location}
+          chown -R ${cfg.user} ${cfg.location}
+        '';
+        script = backupScript;
+      };
+    };
   };
 
 }
diff --git a/nixos/release.nix b/nixos/release.nix
index ac7755a160f4..06f1c73410c0 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -283,6 +283,7 @@ in rec {
   tests.mumble = callTest tests/mumble.nix {};
   tests.munin = callTest tests/munin.nix {};
   tests.mysql = callTest tests/mysql.nix {};
+  tests.mysqlBackup = callTest tests/mysql-backup.nix {};
   tests.mysqlReplication = callTest tests/mysql-replication.nix {};
   tests.nat.firewall = callTest tests/nat.nix { withFirewall = true; };
   tests.nat.firewall-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; };
diff --git a/nixos/tests/mysql-backup.nix b/nixos/tests/mysql-backup.nix
new file mode 100644
index 000000000000..f5bcc460cba7
--- /dev/null
+++ b/nixos/tests/mysql-backup.nix
@@ -0,0 +1,42 @@
+# Test whether mysqlBackup option works
+import ./make-test.nix ({ pkgs, ... } : {
+  name = "mysql-backup";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ rvl ];
+  };
+
+  nodes = {
+    master = { config, pkgs, ... }: {
+      services.mysql = {
+        enable = true;
+        initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
+        package = pkgs.mysql;
+      };
+
+      services.mysqlBackup = {
+        enable = true;
+        databases = [ "doesnotexist" "testdb" ];
+      };
+    };
+  };
+
+  testScript =
+    '' startAll;
+
+       # Need to have mysql started so that it can be populated with data.
+       $master->waitForUnit("mysql.service");
+
+       # Wait for testdb to be populated.
+       $master->sleep(10);
+
+       # Do a backup and wait for it to finish.
+       $master->startJob("mysql-backup.service");
+       $master->waitForJob("mysql-backup.service");
+
+       # Check that data appears in backup
+       $master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello");
+
+       # Check that a failed backup is logged
+       $master->succeed("journalctl -u mysql-backup.service | grep 'fail.*doesnotexist' > /dev/null");
+    '';
+})
diff --git a/nixos/tests/testdb.sql b/nixos/tests/testdb.sql
index 4fb28fea3df9..3c68c49ae82c 100644
--- a/nixos/tests/testdb.sql
+++ b/nixos/tests/testdb.sql
@@ -8,3 +8,4 @@ insert into tests values (1, 'a');
 insert into tests values (2, 'b');
 insert into tests values (3, 'c');
 insert into tests values (4, 'd');
+insert into tests values (5, 'hello');

From 34eefdfb9df7205bf6f4c33bc26ef90064b1eee5 Mon Sep 17 00:00:00 2001
From: Rodney Lorrimar <dev@rodney.id.au>
Date: Mon, 25 Sep 2017 08:20:47 +0100
Subject: [PATCH 473/533] nixos/release-notes: MySQL backup service breaking
 changes

---
 nixos/doc/manual/release-notes/rl-1709.xml | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index d5ab6ab0c247..c1ad853d544d 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -289,6 +289,46 @@ FLUSH PRIVILEGES;
       in them being reloaded.
     </para>
   </listitem>
+
+  <listitem>
+    <para>
+      <literal>services.mysqlBackup</literal> now works by default
+      without any user setup, including for users other than
+      <literal>mysql</literal>.
+    </para>
+
+    <para>
+      By default, the <literal>mysql</literal> user is no longer the
+      user which performs the backup. Instead a system account
+      <literal>mysqlbackup</literal> is used.
+    </para>
+
+    <para>
+      The <literal>mysqlBackup</literal> service is also now using
+      systemd timers instead of <literal>cron</literal>.
+    </para>
+
+    <para>
+      Therefore, the <literal>services.mysqlBackup.period</literal>
+      option no longer exists, and has been replaced with
+      <literal>services.mysqlBackup.calendar</literal>, which is in
+      the format of <link
+      xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.time.html#Calendar%20Events">systemd.time(7)</link>.
+    </para>
+
+    <para>
+      If you expect to be sent an e-mail when the backup fails,
+      consider using a script which monitors the systemd journal for
+      errors. Regretfully, at present there is no built-in
+      functionality for this.
+    </para>
+
+    <para>
+      You can check that backups still work by running
+      <command>systemctl start mysql-backup</command> then
+      <command>systemctl status mysql-backup</command>.
+    </para>
+  </listitem>
 </itemizedlist>
 
 <para>Other notable improvements:</para>

From 964672dde516d1b9a5d2248db33253dc36fdb7db Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 13:03:06 -0400
Subject: [PATCH 474/533] linux: Remove 4.12 (EOL)

---
 pkgs/os-specific/linux/kernel/linux-4.12.nix | 11 -----------
 pkgs/top-level/all-packages.nix              | 17 -----------------
 2 files changed, 28 deletions(-)
 delete mode 100644 pkgs/os-specific/linux/kernel/linux-4.12.nix

diff --git a/pkgs/os-specific/linux/kernel/linux-4.12.nix b/pkgs/os-specific/linux/kernel/linux-4.12.nix
deleted file mode 100644
index bff0f5db9538..000000000000
--- a/pkgs/os-specific/linux/kernel/linux-4.12.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
-
-import ./generic.nix (args // rec {
-  version = "4.12.14";
-  extraMeta.branch = "4.12";
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "09zxmknh6awhqmj8dyq95bdlwcasryy35hkjxjlzixdgn52kzaw6";
-  };
-} // (args.argsOverride or {}))
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5bd78b21e848..b5aad1dcbc58 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12297,22 +12297,6 @@ with pkgs;
       ];
   };
 
-  linux_4_12 = callPackage ../os-specific/linux/kernel/linux-4.12.nix {
-    kernelPatches =
-      [ kernelPatches.bridge_stp_helper
-        kernelPatches.p9_fixes
-        # See pkgs/os-specific/linux/kernel/cpu-cgroup-v2-patches/README.md
-        # when adding a new linux version
-        kernelPatches.cpu-cgroup-v2."4.11"
-        kernelPatches.modinst_arg_list_too_long
-      ]
-      ++ lib.optionals ((platform.kernelArch or null) == "mips")
-      [ kernelPatches.mips_fpureg_emu
-        kernelPatches.mips_fpu_sigill
-        kernelPatches.mips_ext3_n32
-      ];
-  };
-
   linux_4_13 = callPackage ../os-specific/linux/kernel/linux-4.13.nix {
     kernelPatches =
       [ kernelPatches.bridge_stp_helper
@@ -12522,7 +12506,6 @@ with pkgs;
   linuxPackages_mptcp = linuxPackagesFor pkgs.linux_mptcp;
   linuxPackages_rpi = linuxPackagesFor pkgs.linux_rpi;
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
-  linuxPackages_4_12 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_12);
   linuxPackages_4_13 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_13);
   # Don't forget to update linuxPackages_latest!
 

From 2ca84cfa2922428267321bb8a7ed22b5da30a2c1 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 13:03:27 -0400
Subject: [PATCH 475/533] linux: 4.9.51 -> 4.9.52

---
 pkgs/os-specific/linux/kernel/linux-4.9.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index 5033bb88f79a..6531323c1d57 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, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.9.51";
+  version = "4.9.52";
   extraMeta.branch = "4.9";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "12mag09scyzi5a352y39y4b6rjh89qqca53hhmjc396q09hsdyl3";
+    sha256 = "12h4w6x0zcl8kpia2y7myv7w7i0dihw4g8v638fs8bzk3d7h7pgz";
   };
 } // (args.argsOverride or {}))

From ab3ff4af9fb3a32888730496a1561290a2621433 Mon Sep 17 00:00:00 2001
From: Tim Steinbach <tim@nequissimus.com>
Date: Wed, 27 Sep 2017 13:08:21 -0400
Subject: [PATCH 476/533] linux: 4.13.3 -> 4.13.4

---
 pkgs/os-specific/linux/kernel/linux-4.13.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/os-specific/linux/kernel/linux-4.13.nix b/pkgs/os-specific/linux/kernel/linux-4.13.nix
index d1c4d8ba8e7d..c45afd1cbeb1 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.13.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.13.nix
@@ -1,11 +1,11 @@
 { stdenv, hostPlatform, fetchurl, perl, buildLinux, ... } @ args:
 
 import ./generic.nix (args // rec {
-  version = "4.13.3";
+  version = "4.13.4";
   extraMeta.branch = "4.13";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1ayai3i0jakxzszpijhknjiwwi055wa74bpmnr0n7dh2l5s2rlh3";
+    sha256 = "087lv2laf4wx28z9zqg9s275nzygica0hc1g8vn5ql6yb7mrb7m0";
   };
 } // (args.argsOverride or {}))

From 9636e754640dcc8f3357dfca6fd570228d64757e Mon Sep 17 00:00:00 2001
From: makefu <github@syntax-fehler.de>
Date: Wed, 27 Sep 2017 13:23:37 +0200
Subject: [PATCH 477/533] udpt: 2016-02-20 -> 2017-09-27

---
 pkgs/servers/udpt/default.nix | 22 ++++++++++++++++------
 1 file changed, 16 insertions(+), 6 deletions(-)

diff --git a/pkgs/servers/udpt/default.nix b/pkgs/servers/udpt/default.nix
index 97938de74a50..9e9816c941d9 100644
--- a/pkgs/servers/udpt/default.nix
+++ b/pkgs/servers/udpt/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, boost, sqlite }:
+{ stdenv, fetchFromGitHub, boost, sqlite, cmake, gtest }:
 
 stdenv.mkDerivation rec {
   name = "udpt-${version}";
-  version = "2016-02-20"; # v2.0-rc0 with sample config
+  version = "2017-09-27";
 
   enableParallelBuilding = true;
 
@@ -12,11 +12,21 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "naim94a";
     repo = "udpt";
-    rev = "0790558de8b5bb841bb10a9115bbf72c3b4711b5";
-    sha256 = "0rgkjwvnqwbnqy7pm3dk176d3plb5lypaf12533yr0yfzcp6gnzk";
+    rev = "e0dffc83c8ce76b08a41a4abbd5f8065535d534f";
+    sha256 = "187dw96mzgcmh4k9pvfpb7ckbb8d4vlikamr2x8vkpwzgjs3xd6g";
   };
 
-  buildInputs = [ boost sqlite ];
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+
+    make test
+
+    runHook postCheck
+  '';
+
+  buildInputs = [ boost sqlite cmake gtest ];
 
   postPatch = ''
     # Enabling optimization (implied by fortify hardening) causes htons
@@ -27,7 +37,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin $out/etc/
     cp udpt $out/bin
-    cp udpt.conf $out/etc/
+    cp ../udpt.conf $out/etc/
     # without this, the resulting binary is unstripped.
     runHook postInstall
   '';

From 21998d597bd257c1a769e2be4b7a52b5b7e482a6 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 19:19:14 +0200
Subject: [PATCH 478/533] postgresql: fix pgxs dir in pg_config

---
 pkgs/servers/sql/postgresql/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 022ac15aee7b..980ed5056a11 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -46,7 +46,7 @@ let
       let path = if atLeast "9.6" then "src/common/config_info.c" else "src/bin/pg_config/pg_config.c"; in
         ''
           # Hardcode the path to pgxs so pg_config returns the path in $out
-          substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $out/lib
+          substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $dev/lib
         '';
 
     postInstall =

From e0771a241092deb0a09341607adf0f24c749c037 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 19:42:01 +0200
Subject: [PATCH 479/533] Revert "ibus: Move ibus-setup to .dev"

This reverts commit af44f99dca62abc5d569cb824a64f766e308d419.

ibus-with-plugins was broken by this.

cc @edolstra
---
 pkgs/tools/inputmethods/ibus/default.nix | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 3b076bb8ff6c..66d61b8c5e9d 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -110,10 +110,6 @@ in stdenv.mkDerivation rec {
   doInstallCheck = true;
   installCheckPhase = "$out/bin/ibus version";
 
-  postInstall = ''
-    moveToOutput "bin/ibus-setup" "$dev"
-  '';
-
   meta = with stdenv.lib; {
     homepage = https://github.com/ibus/ibus;
     description = "Intelligent Input Bus for Linux / Unix OS";

From 13c9cbacdded00558084fda7037ca80849208e99 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 20:09:40 +0200
Subject: [PATCH 480/533] bacula: fix after postgresql output splitting

---
 pkgs/tools/backup/bacula/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index 374122814c50..7c368ce4d039 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
     # acl relies on attr, which I can't get to build on darwin
     ++ stdenv.lib.optional (!stdenv.isDarwin) acl;
 
-  configureFlags = [ 
+  configureFlags = [
     "--with-sqlite3=${sqlite.dev}"
-    "--with-postgresql=${postgresql}"
+    "--with-postgresql=${postgresql.dev}"
   ];
 
   postInstall = ''

From 4013b381b37212201f7c81bcee3a45b890489b3e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Wed, 27 Sep 2017 20:12:06 +0200
Subject: [PATCH 481/533] manuals: document removal of newStdcpp from steam

/cc #29180.
---
 doc/package-notes.xml                         | 38 ++++++-------------
 .../manual/release-notes/release-notes.xml    |  1 +
 nixos/doc/manual/release-notes/rl-1803.xml    |  4 +-
 3 files changed, 15 insertions(+), 28 deletions(-)

diff --git a/doc/package-notes.xml b/doc/package-notes.xml
index e1aea62f7848..122acdc7f75c 100644
--- a/doc/package-notes.xml
+++ b/doc/package-notes.xml
@@ -477,32 +477,18 @@ it. Place the resulting <filename>package.nix</filename> file into
 
   <varlistentry>
   <term>Using the FOSS Radeon or nouveau (nvidia) drivers</term>
-  <listitem><itemizedlist><listitem><para>
-  Both the open source radeon drivers as well as the nouveau drivers (nvidia)
-  need a newer libc++ than is provided by the default runtime, which leads to a
-  crash on launch. Use <programlisting>environment.systemPackages =
-  [(pkgs.steam.override { newStdcpp = true; })];</programlisting> in your config
-  if you get an error like
-  <programlisting>
-libGL error: unable to load driver: radeonsi_dri.so
-libGL error: driver pointer missing
-libGL error: failed to load driver: radeonsi
-libGL error: unable to load driver: swrast_dri.so
-libGL error: failed to load driver: swrast</programlisting>
-  or
-  <programlisting>
-libGL error: unable to load driver: nouveau_dri.so
-libGL error: driver pointer missing
-libGL error: failed to load driver: nouveau
-libGL error: unable to load driver: swrast_dri.so
-libGL error: failed to load driver: swrast</programlisting></para></listitem>
-  <listitem><para>
-  Steam ships statically linked with a version of libcrypto that
-  conflics with the one dynamically loaded by radeonsi_dri.so.
-  If you get the error
-  <programlisting>steam.sh: line 713: 7842 Segmentation fault (core dumped)</programlisting>
-  have a look at <link xlink:href="https://github.com/NixOS/nixpkgs/pull/20269">this pull request</link>.
-  </para></listitem>
+  <listitem><itemizedlist>
+    <listitem><para>The <literal>newStdcpp</literal> parameter
+    was removed after 17.09 release and should not be needed anymore.
+    </para></listitem>
+
+    <listitem><para>
+    Steam ships statically linked with a version of libcrypto that
+    conflics with the one dynamically loaded by radeonsi_dri.so.
+    If you get the error
+    <programlisting>steam.sh: line 713: 7842 Segmentation fault (core dumped)</programlisting>
+    have a look at <link xlink:href="https://github.com/NixOS/nixpkgs/pull/20269">this pull request</link>.
+    </para></listitem>
 
   </itemizedlist></listitem></varlistentry>
 
diff --git a/nixos/doc/manual/release-notes/release-notes.xml b/nixos/doc/manual/release-notes/release-notes.xml
index 6065a86f60d8..5ed56bde6659 100644
--- a/nixos/doc/manual/release-notes/release-notes.xml
+++ b/nixos/doc/manual/release-notes/release-notes.xml
@@ -9,6 +9,7 @@
 <para>This section lists the release notes for each stable version of NixOS
 and current unstable revision.</para>
 
+<xi:include href="rl-1803.xml" />
 <xi:include href="rl-1709.xml" />
 <xi:include href="rl-1703.xml" />
 <xi:include href="rl-1609.xml" />
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml
index ce05cde7b08b..8dded9aaefb6 100644
--- a/nixos/doc/manual/release-notes/rl-1803.xml
+++ b/nixos/doc/manual/release-notes/rl-1803.xml
@@ -29,8 +29,8 @@ following incompatible changes:</para>
 
 <itemizedlist>
   <listitem>
-    <para>
-    </para>
+    <para>Steam: the <literal>newStdcpp</literal> parameter
+    was removed and should not be needed anymore.</para>
   </listitem>
 </itemizedlist>
 

From 2d640b9d6ee45e46ff510744e849175e9cb55d05 Mon Sep 17 00:00:00 2001
From: Michael Weiss <dev.primeos@gmail.com>
Date: Wed, 27 Sep 2017 20:17:58 +0200
Subject: [PATCH 482/533] wlc: Downgrade back to 0.0.9

Unfortunately wlc 0.0.10 seems to be the cause for segfaults on sway,
way-cooler and orbment.

This will also build wlc with all optional packages (i.e. zlib,
valgrind and doxygen).
---
 .../window-managers/sway/default.nix           | 18 +++---------------
 pkgs/development/libraries/wlc/default.nix     |  9 +++++----
 2 files changed, 8 insertions(+), 19 deletions(-)

diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 274325b67858..2c94f7f6fecc 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -6,20 +6,8 @@
 }:
 
 let
+  # TODO: Sway 0.14.0 with wlc 0.0.10 segfaults
   version = "0.13.0";
-  # Temporary workaround (0.14.0 segfaults)
-  wlc_009 = stdenv.lib.overrideDerivation wlc (oldAttrs: rec {
-    name = "wlc-${version}";
-    version = "0.0.9";
-
-    src = fetchFromGitHub {
-      owner = "Cloudef";
-      repo = "wlc";
-      rev = "v${version}";
-      fetchSubmodules = true;
-      sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
-    };
-  });
 in stdenv.mkDerivation rec {
   name = "sway-${version}";
 
@@ -35,7 +23,7 @@ in stdenv.mkDerivation rec {
     asciidoc libxslt docbook_xsl
   ];
   buildInputs = [
-    wayland wlc_009 libxkbcommon pixman fontconfig pcre json_c dbus_libs
+    wayland wlc libxkbcommon pixman fontconfig pcre json_c dbus_libs
     pango cairo libinput libcap xwayland pam gdk_pixbuf libpthreadstubs
     libXdmcp
   ];
@@ -48,7 +36,7 @@ in stdenv.mkDerivation rec {
   cmakeFlags = "-DVERSION=${version}";
   installPhase = "PREFIX=$out make install";
 
-  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc_009 dbus_libs ];
+  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ wlc dbus_libs ];
   preFixup = ''
     wrapProgram $out/bin/sway \
       --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}";
diff --git a/pkgs/development/libraries/wlc/default.nix b/pkgs/development/libraries/wlc/default.nix
index 936c88034aad..c67070094de6 100644
--- a/pkgs/development/libraries/wlc/default.nix
+++ b/pkgs/development/libraries/wlc/default.nix
@@ -2,18 +2,19 @@
 , wayland, pixman, libxkbcommon, libinput, libxcb, xcbutilwm, xcbutilimage, mesa
 , libdrm, udev, libX11, libXdamage, systemd, dbus_libs, wayland-protocols
 , libpthreadstubs, libXau, libXdmcp, libXext, libXxf86vm
+, withOptionalPackages ? true, zlib, valgrind, doxygen
 }:
 
 stdenv.mkDerivation rec {
   name = "wlc-${version}";
-  version = "0.0.10";
+  version = "0.0.9"; # 0.0.10 currently causes segfaults
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = "wlc";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "09kvwhrpgkxlagn9lgqxc80jbg56djn29a6z0n6h0dsm90ysyb2k";
+    sha256 = "1r6jf64gs7n9a8129wsc0mdwhcv44p8k87kg0714rhx3g2w22asg";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
@@ -21,8 +22,8 @@ stdenv.mkDerivation rec {
   buildInputs = [
     wayland pixman libxkbcommon libinput libxcb xcbutilwm xcbutilimage mesa
     libdrm udev libX11 libXdamage systemd dbus_libs wayland-protocols
-    libpthreadstubs libXau libXdmcp libXext libXxf86vm
-  ];
+    libpthreadstubs libXau libXdmcp libXext libXxf86vm ]
+    ++ stdenv.lib.optionals withOptionalPackages [ zlib valgrind doxygen ];
 
   doCheck = true;
   checkTarget = "test";

From 3378dbbeed1e69050308a4c45dd9eecc5b92567d Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Wed, 27 Sep 2017 20:23:38 +0200
Subject: [PATCH 483/533] Revert "Revert "ibus: Move ibus-setup to .dev""

This reverts commit e0771a241092deb0a09341607adf0f24c749c037.
---
 pkgs/tools/inputmethods/ibus/default.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index 66d61b8c5e9d..3b076bb8ff6c 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -110,6 +110,10 @@ in stdenv.mkDerivation rec {
   doInstallCheck = true;
   installCheckPhase = "$out/bin/ibus version";
 
+  postInstall = ''
+    moveToOutput "bin/ibus-setup" "$dev"
+  '';
+
   meta = with stdenv.lib; {
     homepage = https://github.com/ibus/ibus;
     description = "Intelligent Input Bus for Linux / Unix OS";

From ba22ad45fef4cef2c180895ce1af4333d286be16 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <edolstra@gmail.com>
Date: Wed, 27 Sep 2017 20:27:15 +0200
Subject: [PATCH 484/533] ibus-wrapper: Fix build

---
 pkgs/tools/inputmethods/ibus/wrapper.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/inputmethods/ibus/wrapper.nix b/pkgs/tools/inputmethods/ibus/wrapper.nix
index 13035698827f..d41ba1e791f9 100644
--- a/pkgs/tools/inputmethods/ibus/wrapper.nix
+++ b/pkgs/tools/inputmethods/ibus/wrapper.nix
@@ -21,7 +21,7 @@ let
         done
     done
 
-    for prog in ibus ibus-setup; do
+    for prog in ibus; do
         wrapProgram "$out/bin/$prog" \
           --set GDK_PIXBUF_MODULE_FILE ${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache \
           --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH:$out/lib/girepository-1.0" \

From be697dca4c28c2319faa1e66e0e441a53a138f77 Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix@lancelotsix.com>
Date: Thu, 14 Sep 2017 16:29:43 +0200
Subject: [PATCH 485/533] ibus-anthy: fix pygobject3 dependency

---
 pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
index f93edffa7bde..53b2a3abf28e 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-anthy/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-anthy-zipcode=${anthy}/share/anthy/zipcode.t" ];
 
   buildInputs = [
-    anthy glib gobjectIntrospection gtk3 ibus python3
+    anthy glib gobjectIntrospection gtk3 ibus (python3.withPackages (ps: [ps.pygobject3]))
   ];
 
   nativeBuildInputs = [ intltool pkgconfig python3.pkgs.wrapPython ];

From f2955e4fdef822e27a9f1b262e145727e41eaea2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
Date: Wed, 27 Sep 2017 20:31:36 +0200
Subject: [PATCH 486/533] manuals: fixup steam note, as the change is in 17.09

I didn't notice the cherry-pick, but Globin found out immediately.
/cc #29180.
---
 doc/package-notes.xml                      | 2 +-
 nixos/doc/manual/release-notes/rl-1709.xml | 6 ++++++
 nixos/doc/manual/release-notes/rl-1803.xml | 3 +--
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/doc/package-notes.xml b/doc/package-notes.xml
index 122acdc7f75c..4d87a3a67fe9 100644
--- a/doc/package-notes.xml
+++ b/doc/package-notes.xml
@@ -479,7 +479,7 @@ it. Place the resulting <filename>package.nix</filename> file into
   <term>Using the FOSS Radeon or nouveau (nvidia) drivers</term>
   <listitem><itemizedlist>
     <listitem><para>The <literal>newStdcpp</literal> parameter
-    was removed after 17.09 release and should not be needed anymore.
+    was removed since NixOS 17.09 and should not be needed anymore.
     </para></listitem>
 
     <listitem><para>
diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index c1ad853d544d..1d6e693f83c7 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -329,6 +329,12 @@ FLUSH PRIVILEGES;
       <command>systemctl status mysql-backup</command>.
     </para>
   </listitem>
+
+  <listitem>
+    <para>Steam: the <literal>newStdcpp</literal> parameter
+    was removed and should not be needed anymore.</para>
+  </listitem>
+
 </itemizedlist>
 
 <para>Other notable improvements:</para>
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml
index 8dded9aaefb6..7acc689ed117 100644
--- a/nixos/doc/manual/release-notes/rl-1803.xml
+++ b/nixos/doc/manual/release-notes/rl-1803.xml
@@ -29,8 +29,7 @@ following incompatible changes:</para>
 
 <itemizedlist>
   <listitem>
-    <para>Steam: the <literal>newStdcpp</literal> parameter
-    was removed and should not be needed anymore.</para>
+    <para></para>
   </listitem>
 </itemizedlist>
 

From f39ead7c748a1a2bed1046f7ff48c53b76af73ef Mon Sep 17 00:00:00 2001
From: Lancelot SIX <lsix@lancelotsix.com>
Date: Wed, 27 Sep 2017 12:29:11 +0200
Subject: [PATCH 487/533] ibus-engines.hangul: add python dependency

---
 pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
index 74253fa09fc0..f70c7d02e9f0 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-hangul/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "120p9w7za6hi521hz8q235fkl4i3p1qqr8nqm4a3kxr0pcq40bd2";
   };
 
-  buildInputs = [ gtk3 ibus libhangul ];
+  buildInputs = [ gtk3 ibus libhangul python3 ];
 
   nativeBuildInputs = [ intltool pkgconfig python3.pkgs.wrapPython ];
 

From 50fb62994b3d188542f14aa7066e4675f2d94458 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 21:23:28 +0200
Subject: [PATCH 488/533] bluez: remove unneeded dependencies and fix test bins

---
 pkgs/os-specific/linux/bluez/default.nix | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/pkgs/os-specific/linux/bluez/default.nix b/pkgs/os-specific/linux/bluez/default.nix
index f0a59f36e433..e9a1f314abc1 100644
--- a/pkgs/os-specific/linux/bluez/default.nix
+++ b/pkgs/os-specific/linux/bluez/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, dbus, glib, alsaLib,
-  pythonPackages, readline, libsndfile, udev, libical,
+  pythonPackages, readline, udev, libical,
   systemd, enableWiimote ? false }:
 
 assert stdenv.isLinux;
@@ -15,13 +15,10 @@ stdenv.mkDerivation rec {
   pythonPath = with pythonPackages;
     [ dbus pygobject2 pygobject3 recursivePthLoader ];
 
-  buildInputs =
-    [ pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython
-      readline libsndfile udev libical
-      # Disables GStreamer; not clear what it gains us other than a
-      # zillion extra dependencies.
-      # gstreamer gst-plugins-base
-    ];
+  buildInputs = [
+    pkgconfig dbus glib alsaLib pythonPackages.python pythonPackages.wrapPython
+    readline udev libical
+  ];
 
   outputs = [ "out" "dev" "test" ];
 
@@ -51,10 +48,8 @@ stdenv.mkDerivation rec {
 
   makeFlags = "rulesdir=$(out)/lib/udev/rules.d";
 
-  # FIXME: Move these into a separate package to prevent Bluez from
-  # depending on Python etc.
   postInstall = ''
-    mkdir -p $test/test
+    mkdir -p $test/{bin,test}
     cp -a test $test
     pushd $test/test
     for a in \
@@ -65,7 +60,7 @@ stdenv.mkDerivation rec {
             list-devices \
             monitor-bluetooth \
             ; do
-      ln -s ../test/$a $out/bin/bluez-$a
+      ln -s ../test/$a $test/bin/bluez-$a
     done
     popd
     wrapPythonProgramsIn $test/test "$test/test $pythonPath"

From 6b05651c20fd0d73b11f8ab1f4ca984c1fd9fce8 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 21:48:39 +0200
Subject: [PATCH 489/533] Revert "postgresql: Add dev output"

Firstly this creates a cycle in 9.6 .out <-> .dev after fixing the PGXS
path.

Secondly this breaks extension handling and the pg_config as it
resolves a lot of paths relatively resulting in the following bogus
output:

BINDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/bin
DOCDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc
HTMLDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/doc
INCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include
PKGINCLUDEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include
INCLUDEDIR-SERVER = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/include/server
LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib
PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib
LOCALEDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/locale
MANDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share/man
SHAREDIR = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/share
SYSCONFDIR = /etc/postgresql
PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2
CFLAGS_SL = -fPIC
LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm
VERSION = PostgreSQL 9.5.9

This can probably only be properly fixed by rewriting pg_config in large
parts as it does not in any way respect splitting the postgres tree and
assumes it can simply resolve paths relative to its location. This does
not even handle symlinks:

$ result-dev/bin/pg_config
BINDIR = /home/robin/dev/nixpkgs-upstream/result-dev/bin
DOCDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc
HTMLDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/doc
INCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include
PKGINCLUDEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/include
INCLUDEDIR-SERVER = /home/robin/dev/nixpkgs-upstream/result-dev/include/server
LIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib
PKGLIBDIR = /nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib
LOCALEDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/locale
MANDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share/man
SHAREDIR = /home/robin/dev/nixpkgs-upstream/result-dev/share
SYSCONFDIR = /etc/postgresql
PGXS = /nix/store/csiq6zkn2c994kkdjln461jvgbka4yb1-postgresql-9.5.9-dev/lib/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--prefix=/nix/store/irqqq4g173g9xrk1mh12kxv0s1d8dbyh-postgresql-9.5.9' '--with-openssl' '--with-libxml' '--sysconfdir=/etc' '--libdir=/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib' '--with-ossp-uuid' 'CC=gcc'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE -I/nix/store/z6r0j2b4bcdfw3pck2x6ay0vvx0qzb92-libxml2-2.9.5-dev/include/libxml2
CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2
CFLAGS_SL = -fPIC
LDFLAGS = -L../../../src/common -L/nix/store/ighspl5sa3qi1zy7nkih0c9p73xjfqa6-libxml2-2.9.5/lib -Wl,--as-needed -Wl,-rpath,'/nix/store/85s9m7hpfzsl93wcb5gr6ii2km9mpx3z-postgresql-9.5.9-lib/lib',--enable-new-dtags
LDFLAGS_EX =
LDFLAGS_SL =
LIBS = -lpgcommon -lpgport -lxml2 -lssl -lcrypto -lz -lreadline -lrt -lcrypt -ldl -lm
VERSION = PostgreSQL 9.5.9

cc @edolstra

Revert "bacula: fix after postgresql output splitting"

This reverts commit 13c9cbacdded00558084fda7037ca80849208e99.

Revert "postgresql: fix pgxs dir in pg_config"

This reverts commit 21998d597bd257c1a769e2be4b7a52b5b7e482a6.

Revert "rubyGems.pg: fix postgresql path"

This reverts commit e253ae7d3a4ab992d2432c87514e3333a3cf744d.

Revert "kea: fix path to pg_config"

This reverts commit 086c636eb7f894a55f752b6164dac4a87d8bcee9.

Revert "php: fix build wrt. new postgres.dev build output"

This reverts commit 2f23a83920107678ca1792a11d19e1cb37df3ace.

Revert "gdal: fix path to pg_config"

This reverts commit 032c50d45b3fd1ebb4af592b83e776ed7004b4c0.

Revert "postgresql: Add dev output"

This reverts commit b0280f598e4b3f6ebf33ad2115734e4735df443a.
---
 pkgs/development/interpreters/php/default.nix        |  4 ++--
 pkgs/development/libraries/gdal/default.nix          |  2 +-
 pkgs/development/ruby-modules/gem-config/default.nix |  2 +-
 pkgs/servers/sql/postgresql/default.nix              | 10 ++++++----
 pkgs/tools/backup/bacula/default.nix                 |  4 ++--
 pkgs/tools/networking/kea/default.nix                |  2 +-
 6 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 7b832fa6eed7..ed018a942273 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -99,12 +99,12 @@ let
         };
 
         postgresql = {
-          configureFlags = ["--with-pgsql=${postgresql.dev}"];
+          configureFlags = ["--with-pgsql=${postgresql}"];
           buildInputs = [ postgresql ];
         };
 
         pdo_pgsql = {
-          configureFlags = ["--with-pdo-pgsql=${postgresql.dev}"];
+          configureFlags = ["--with-pdo-pgsql=${postgresql}"];
           buildInputs = [ postgresql ];
         };
 
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index 600e9314cd4c..984d3da81198 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     "--with-png=${libpng.dev}"      # optional
     "--with-poppler=${poppler.dev}" # optional
     "--with-libz=${zlib.dev}"       # optional
-    "--with-pg=${postgresql.dev}/bin/pg_config"
+    "--with-pg=${postgresql}/bin/pg_config"
     "--with-mysql=${mysql.lib.dev}/bin/mysql_config"
     "--with-geotiff=${libgeotiff}"
     "--with-sqlite3=${sqlite.dev}"
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index a0d4b9adcbe3..6647d71bd006 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -183,7 +183,7 @@ in
 
   pg = attrs: {
     buildFlags = [
-      "--with-pg-config=${postgresql.dev}/bin/pg_config"
+      "--with-pg-config=${postgresql}/bin/pg_config"
     ];
   };
 
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 980ed5056a11..8a3097ae9dee 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -11,7 +11,7 @@ let
       inherit sha256;
     };
 
-    outputs = [ "out" "dev" "lib" "doc" "man" ];
+    outputs = [ "out" "lib" "doc" "man" ];
     setOutputFlags = false; # $out retains configureFlags :-/
 
     buildInputs =
@@ -46,16 +46,18 @@ let
       let path = if atLeast "9.6" then "src/common/config_info.c" else "src/bin/pg_config/pg_config.c"; in
         ''
           # Hardcode the path to pgxs so pg_config returns the path in $out
-          substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $dev/lib
+          substituteInPlace "${path}" --replace HARDCODED_PGXS_PATH $out/lib
         '';
 
     postInstall =
       ''
-        moveToOutput "bin/pg_config" "$dev"
-        moveToOutput "lib/pgxs" "$dev" # looks strange, but not deleting it
+        moveToOutput "lib/pgxs" "$out" # looks strange, but not deleting it
         moveToOutput "lib/*.a" "$out"
         moveToOutput "lib/libecpg*" "$out"
 
+        # Prevent a retained dependency on gcc-wrapper.
+        substituteInPlace "$out/lib/pgxs/src/Makefile.global" --replace ${stdenv.cc}/bin/ld ld
+
         # Remove static libraries in case dynamic are available.
         for i in $out/lib/*.a; do
           name="$(basename "$i")"
diff --git a/pkgs/tools/backup/bacula/default.nix b/pkgs/tools/backup/bacula/default.nix
index 7c368ce4d039..374122814c50 100644
--- a/pkgs/tools/backup/bacula/default.nix
+++ b/pkgs/tools/backup/bacula/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation rec {
     # acl relies on attr, which I can't get to build on darwin
     ++ stdenv.lib.optional (!stdenv.isDarwin) acl;
 
-  configureFlags = [
+  configureFlags = [ 
     "--with-sqlite3=${sqlite.dev}"
-    "--with-postgresql=${postgresql.dev}"
+    "--with-postgresql=${postgresql}"
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index cd4c45121692..e1829bcaf7d8 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--localstatedir=/var"
     "--with-botan-config=${botan}/bin/botan-config-1.10"
-    "--with-dhcp-pgsql=${postgresql.dev}/bin/pg_config"
+    "--with-dhcp-pgsql=${postgresql}/bin/pg_config"
     "--with-dhcp-mysql=${mysql.client.dev}/bin/mysql_config"
   ];
 

From 259df64ef564fe5f1890c884e8e4beeea95a6b5c Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Wed, 27 Sep 2017 22:00:26 +0200
Subject: [PATCH 490/533] postgresql: default to 9.6 like in the nixos module

---
 pkgs/top-level/all-packages.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index b5aad1dcbc58..04d73ec807a1 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11684,7 +11684,7 @@ with pkgs;
     libmemcached = null; # Detection is broken upstream
   };
 
-  postgresql = postgresql95;
+  postgresql = postgresql96;
 
   inherit (callPackages ../servers/sql/postgresql { })
     postgresql93

From 34750bb51cd337a96ca8ff82356ef100cd732c94 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Wed, 27 Sep 2017 22:13:53 +0200
Subject: [PATCH 491/533] 17.09 release notes: redis cluster mass-restart
 needed

see #29516
---
 nixos/doc/manual/release-notes/rl-1709.xml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index 1d6e693f83c7..f91db4a154e2 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -335,6 +335,13 @@ FLUSH PRIVILEGES;
     was removed and should not be needed anymore.</para>
   </listitem>
 
+  <listitem>
+    <para>
+      Redis has been updated to version 4 which mandates a cluster
+      mass-restart, due to changes in the network handling, in order
+      to ensure compatibility with networks NATing traffic.
+    </para>
+  </listitem>
 </itemizedlist>
 
 <para>Other notable improvements:</para>

From dd50575d5a92eaf6cd9568ee53a86add0fe3aa7a Mon Sep 17 00:00:00 2001
From: Marius Bergmann <marius@yeai.de>
Date: Wed, 27 Sep 2017 21:16:22 +0200
Subject: [PATCH 492/533] znc: fix openFirewall option

The current version is broken:
- there's no `openFirewall` attribute directly in the `cfg` set
- the `port` option is an attribute of the `confOptions` set

I used the proper attribute for the firewall port and moved the `openFirewall`
option directly up to the `services.znc` set, as it's rather a general option
for the whole service than a znc-specific option (which are located inside the
`confOptions` set).
---
 nixos/modules/services/networking/znc.nix | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/nixos/modules/services/networking/znc.nix b/nixos/modules/services/networking/znc.nix
index 763843fdec00..3d9cec46a582 100644
--- a/nixos/modules/services/networking/znc.nix
+++ b/nixos/modules/services/networking/znc.nix
@@ -212,6 +212,14 @@ in
         '';
       };
 
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to open ports in the firewall for ZNC.
+        '';
+      };
+
       zncConf = mkOption {
         default = "";
         example = "See: http://wiki.znc.in/Configuration";
@@ -276,14 +284,6 @@ in
           '';
         };
 
-        openFirewall = mkOption {
-          type = types.bool;
-          default = false;
-          description = ''
-            Whether to open ports in the firewall for ZNC.
-          '';
-        };
-
         passBlock = mkOption {
           example = defaultPassBlock;
           type = types.string;
@@ -359,7 +359,7 @@ in
   config = mkIf cfg.enable {
 
     networking.firewall = mkIf cfg.openFirewall {
-      allowedTCPPorts = [ cfg.port ];
+      allowedTCPPorts = [ cfg.confOptions.port ];
     };
 
     systemd.services.znc = {

From d68e9b4938c5b279b7d229fd6c29a0071ce3d492 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Wed, 27 Sep 2017 23:27:20 +0300
Subject: [PATCH 493/533] glfw2: don't use mesa

---
 pkgs/development/libraries/glfw/2.x.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/development/libraries/glfw/2.x.nix b/pkgs/development/libraries/glfw/2.x.nix
index 00b9cff95764..a017ff3d988c 100644
--- a/pkgs/development/libraries/glfw/2.x.nix
+++ b/pkgs/development/libraries/glfw/2.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, mesa, libX11 }:
+{ stdenv, fetchurl, mesa_glu, mesa_noglu, libX11, libXext }:
 
 stdenv.mkDerivation rec {
   name = "glfw-2.7.9";
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
   };
 
-  buildInputs = [ mesa libX11 ];
+  buildInputs = [ mesa_glu mesa_noglu libX11 libXext ];
 
   buildPhase = ''
     make x11

From 98ef62e51a0e14fb836f00667832a208c16a8c80 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Wed, 27 Sep 2017 23:28:36 +0300
Subject: [PATCH 494/533] glfw3: cleanup dependencies, propagate mesa_noglu

---
 pkgs/development/libraries/glfw/3.x.nix | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index 52673061b72c..c10b3c05986a 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -1,5 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, mesa, libXrandr, libXi, libXxf86vm, libXfixes, xlibsWrapper
-, libXinerama, libXcursor
+{ stdenv, lib, fetchFromGitHub, cmake, mesa_noglu, libXrandr, libXinerama, libXcursor, libX11
 , darwin, fixDarwinDylibNames
 }:
 
@@ -16,12 +15,15 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [
-    cmake mesa libXrandr libXi libXxf86vm libXfixes xlibsWrapper
-    libXinerama libXcursor
-  ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa Kernel fixDarwinDylibNames ]);
+  propagatedBuildInputs = [ mesa_noglu ];
 
-  cmakeFlags = "-DBUILD_SHARED_LIBS=ON";
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    libX11 libXrandr libXinerama libXcursor
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Cocoa Kernel fixDarwinDylibNames ]);
+
+  cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   meta = with stdenv.lib; {
     description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";

From 47f099777cadb1110abde73279e0ebf148c05308 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Wed, 27 Sep 2017 23:29:38 +0300
Subject: [PATCH 495/533] mupdf: cleanup dependencies

This slims down build inputs (notably not requiring mesa anymore).
---
 pkgs/applications/misc/mupdf/default.nix | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index da5f3c3bf128..9fe275b490c1 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -1,6 +1,8 @@
-{ stdenv, fetchurl, fetchpatch, pkgconfig
-, zlib, freetype, libjpeg, jbig2dec, openjpeg
-, libX11, libXcursor, libXrandr, libXinerama, libXext, harfbuzz, mesa }:
+{ stdenv, lib, fetchurl, fetchpatch, pkgconfig
+, freetype, harfbuzz, openjpeg, jbig2dec
+, enableX11 ? true, libX11, libXext
+, enableCurl ? true, curl, openssl
+}:
 
 stdenv.mkDerivation rec {
   version = "1.11";
@@ -28,7 +30,9 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "prefix=$(out)" ];
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ zlib libX11 libXcursor libXext harfbuzz mesa libXrandr libXinerama freetype libjpeg jbig2dec openjpeg ];
+  buildInputs = [ freetype harfbuzz openjpeg jbig2dec ]
+                ++ lib.optionals enableX11 [ libX11 libXext ]
+                ++ lib.optionals enableCurl [ curl openssl ];
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
   preConfigure = ''

From 2651602c17c199fd70a7ef1b68f00b07fdef7fa9 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Wed, 27 Sep 2017 07:10:42 +0200
Subject: [PATCH 496/533] tor-browser-bundle: factor out extensions

---
 .../browsers/tor-browser-bundle/default.nix   | 137 +-----------------
 .../tor-browser-bundle/extensions.nix         | 122 ++++++++++++++++
 2 files changed, 125 insertions(+), 134 deletions(-)
 create mode 100644 pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index ca20125332aa..7896270b604a 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -15,7 +15,6 @@
 , noto-fonts-emoji
 
 # Extensions, common
-, unzip
 , zip
 
 # HTTPS Everywhere
@@ -36,139 +35,9 @@ let
     sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9";
   };
 
-  # Each extension drv produces an output comprising an unpacked .xpi
-  # named after the extension uuid, as it would appear under
-  # `firefox/extensions'.
-  firefoxExtensions = {
-    https-everywhere = stdenv.mkDerivation rec {
-      name = "https-everywhere-${version}";
-      version = "5.2.21";
-
-      extid = "https-everywhere-eff@eff.org";
-
-      src = fetchgit {
-        url = "https://git.torproject.org/https-everywhere.git";
-        rev = "refs/tags/${version}";
-        sha256 = "0z9madihh4b4z4blvfmh6w1hsv8afyi0x7b243nciq9r4w55xgfa";
-      };
-
-      nativeBuildInputs = [
-        git
-        libxml2 # xmllint
-        python27
-        python27Packages.lxml
-        rsync
-        unzip
-        zip
-      ];
-
-      unpackPhase = ''
-        cp -dR --no-preserve=mode "$src" src
-        cd src
-      '';
-
-      # Beware: the build expects translations/ to be non-empty (which it
-      # will be with submodules initialized).
-      buildPhase = ''
-        $shell ./makexpi.sh ${version} --no-recurse
-      '';
-
-      installPhase = ''
-        mkdir $out
-        unzip -d "$out/$extid" "pkg/https-everywhere-$version-eff.xpi"
-      '';
-
-      meta = {
-        homepage = https://gitweb.torproject.org/https-everywhere.git/;
-      };
-    };
-
-    noscript = stdenv.mkDerivation rec {
-      name = "noscript-${version}";
-      version = "5.0.10";
-
-      extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
-
-      src = fetchurl {
-        url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
-        sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
-      };
-
-      nativeBuildInputs = [ unzip ];
-
-      unpackPhase = ":";
-
-      installPhase = ''
-        mkdir $out
-        unzip -d "$out/$extid" "$src"
-      '';
-    };
-
-    torbutton = stdenv.mkDerivation rec {
-      name = "torbutton-${version}";
-      version = "1.9.8.1";
-
-      extid = "torbutton@torproject.org";
-
-      src = fetchgit {
-        url = "https://git.torproject.org/torbutton.git";
-        rev = "refs/tags/${version}";
-        sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
-      };
-
-      nativeBuildInputs = [ unzip zip ];
-
-      unpackPhase = ''
-        cp -dR --no-preserve=mode "$src" src
-        cd src
-      '';
-
-      buildPhase = ''
-        $shell ./makexpi.sh
-      '';
-
-      installPhase = ''
-        mkdir $out
-        unzip -d "$out/$extid" "pkg/torbutton-$version.xpi"
-      '';
-
-      meta = {
-        homepage = https://gitweb.torproject.org/torbutton.git/;
-      };
-    };
-
-    tor-launcher = stdenv.mkDerivation rec {
-      name = "tor-launcher-${version}";
-      version = "0.2.12.3";
-
-      extid = "tor-launcher@torproject.org";
-
-      src = fetchgit {
-        url = "https://git.torproject.org/tor-launcher.git";
-        rev = "refs/tags/${version}";
-        sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q";
-      };
-
-      nativeBuildInputs = [ unzip zip ];
-
-      unpackPhase = ''
-        cp -dR --no-preserve=mode "$src" src
-        cd src
-      '';
-
-      buildPhase = ''
-        make package
-      '';
-
-      installPhase = ''
-        mkdir $out
-        unzip -d "$out/$extid" "pkg/tor-launcher-$version.xpi"
-      '';
-
-      meta = {
-        homepage = https://gitweb.torproject.org/tor-launcher.git/;
-      };
-    };
+  firefoxExtensions = import ./extensions.nix {
+    inherit stdenv fetchurl fetchgit zip
+      git libxml2 python27 python27Packages rsync;
   };
 
   extensionsEnv = symlinkJoin {
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
new file mode 100644
index 000000000000..4adf99365ba3
--- /dev/null
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/extensions.nix
@@ -0,0 +1,122 @@
+{ stdenv
+, fetchgit
+, fetchurl
+
+# common
+, zip
+
+# HTTPS Everywhere
+, git
+, libxml2 # xmllint
+, python27
+, python27Packages
+, rsync
+}:
+
+{
+  https-everywhere = stdenv.mkDerivation rec {
+    name = "https-everywhere-${version}";
+    version = "5.2.21";
+
+    extid = "https-everywhere-eff@eff.org";
+
+    src = fetchgit {
+      url = "https://git.torproject.org/https-everywhere.git";
+      rev = "refs/tags/${version}";
+      sha256 = "0z9madihh4b4z4blvfmh6w1hsv8afyi0x7b243nciq9r4w55xgfa";
+    };
+
+    nativeBuildInputs = [
+      git
+      libxml2 # xmllint
+      python27
+      python27Packages.lxml
+      rsync
+      zip
+    ];
+
+    unpackPhase = ''
+      cp -dR --no-preserve=mode "$src" src && cd src
+    '';
+
+    buildPhase = ''
+      $shell ./makexpi.sh ${version} --no-recurse
+    '';
+
+    installPhase = ''
+      install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi"
+    '';
+  };
+
+  noscript = stdenv.mkDerivation rec {
+    name = "noscript-${version}";
+    version = "5.0.10";
+
+    extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}";
+
+    src = fetchurl {
+      url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi";
+      sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g";
+    };
+
+    unpackPhase = ":";
+
+    installPhase = ''
+      install -m 444 -D $src "$out/$extid.xpi"
+    '';
+  };
+
+  torbutton = stdenv.mkDerivation rec {
+    name = "torbutton-${version}";
+    version = "1.9.8.1";
+
+    extid = "torbutton@torproject.org";
+
+    src = fetchgit {
+      url = "https://git.torproject.org/torbutton.git";
+      rev = "refs/tags/${version}";
+      sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l";
+    };
+
+    nativeBuildInputs = [ zip ];
+
+    unpackPhase = ''
+      cp -dR --no-preserve=mode "$src" src && cd src
+    '';
+
+    buildPhase = ''
+      $shell ./makexpi.sh
+    '';
+
+    installPhase = ''
+      install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi"
+    '';
+  };
+
+  tor-launcher = stdenv.mkDerivation rec {
+    name = "tor-launcher-${version}";
+    version = "0.2.12.3";
+
+    extid = "tor-launcher@torproject.org";
+
+    src = fetchgit {
+      url = "https://git.torproject.org/tor-launcher.git";
+      rev = "refs/tags/${version}";
+      sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q";
+    };
+
+    nativeBuildInputs = [ zip ];
+
+    unpackPhase = ''
+      cp -dR --no-preserve=mode "$src" src && cd src
+    '';
+
+    buildPhase = ''
+      make package
+    '';
+
+    installPhase = ''
+      install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi"
+    '';
+  };
+}

From 931da53e50401ef41f14911bc3af6f8287cfe7de Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Wed, 27 Sep 2017 07:40:40 +0200
Subject: [PATCH 497/533] tor-browser-bundle: support passing additional
 extensions

---
 .../networking/browsers/tor-browser-bundle/default.nix    | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
index 7896270b604a..16182c8e4e71 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix
@@ -26,6 +26,7 @@
 
 # Customization
 , extraPrefs ? ""
+, extraExtensions ? [ ]
 }:
 
 let
@@ -42,7 +43,12 @@ let
 
   extensionsEnv = symlinkJoin {
     name = "tor-browser-extensions";
-    paths = with firefoxExtensions; [ https-everywhere noscript torbutton tor-launcher ];
+    paths = with firefoxExtensions; [
+      https-everywhere
+      noscript
+      torbutton
+      tor-launcher
+    ] ++ extraExtensions;
   };
 
   fontsEnv = symlinkJoin {

From 672a402122535b944cd6f2819108a8bb041de839 Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Thu, 21 Sep 2017 17:46:02 -0400
Subject: [PATCH 498/533] opencascade: remove 6.5.5 and 6.6.0

---
 .../development/libraries/opencascade/6.5.nix | 47 -------------------
 .../libraries/opencascade/default.nix         | 35 ++++----------
 .../development/libraries/opencascade/oce.nix | 28 -----------
 pkgs/top-level/all-packages.nix               | 13 +----
 4 files changed, 11 insertions(+), 112 deletions(-)
 delete mode 100644 pkgs/development/libraries/opencascade/6.5.nix
 delete mode 100644 pkgs/development/libraries/opencascade/oce.nix

diff --git a/pkgs/development/libraries/opencascade/6.5.nix b/pkgs/development/libraries/opencascade/6.5.nix
deleted file mode 100644
index 252a6bb0ad16..000000000000
--- a/pkgs/development/libraries/opencascade/6.5.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{stdenv, fetchurl, mesa, tcl, tk, file, libXmu, automake, autoconf, libtool, qt4,
-ftgl, freetype}:
-
-stdenv.mkDerivation rec {
-  name = "opencascade-6.5.5";
-  src = fetchurl {
-    url = http://files.opencascade.com/OCCT/OCC_6.5.5_release/OpenCASCADE655.tgz;
-    sha256 = "1dnik00adfh6dxvn9kgf35yjda8chbi05f71i9119idmmrcapipm";
-  };
-
-  buildInputs = [ mesa tcl tk file libXmu automake autoconf libtool qt4 ftgl freetype ];
-
-  preUnpack = ''
-    sourceRoot=`pwd`/ros
-  '';
-
-  preConfigure = ''
-    sh ./build_configure
-  '';
-
-  # -fpermissive helps building opencascade, although gcc detects a flaw in the code
-  # and reports an error otherwise. Further versions may fix that.
-  NIX_CFLAGS_COMPILE = "-fpermissive"
-  # https://bugzilla.redhat.com/show_bug.cgi?id=902561
-    + " -DUSE_INTERP_RESULT"
-  # https://bugs.freedesktop.org/show_bug.cgi?id=83631
-    + " -DGLX_GLXEXT_LEGACY";
-
-  hardeningDisable = [ "format" ];
-
-  configureFlags = [ "--with-tcl=${tcl}/lib" "--with-tk=${tk}/lib" "--with-qt=${qt4}" "--with-ftgl=${ftgl}" "--with-freetype=${freetype.dev}" ];
-
-  postInstall = ''
-    mv $out/inc $out/include
-    mkdir -p $out/share/doc/${name}
-    cp -R ../doc $out/share/doc/${name}
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
-    homepage = http://www.opencascade.org/;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
-  };
-}
diff --git a/pkgs/development/libraries/opencascade/default.nix b/pkgs/development/libraries/opencascade/default.nix
index 51581bca382d..58f9019d6e03 100644
--- a/pkgs/development/libraries/opencascade/default.nix
+++ b/pkgs/development/libraries/opencascade/default.nix
@@ -1,39 +1,22 @@
-{stdenv, fetchurl, mesa, tcl, tk, file, libXmu, cmake, qt4, freetype}:
+{stdenv, fetchurl, mesa, tcl, tk, file, libXmu, cmake, libtool, qt4,
+ftgl, freetype}:
 
 stdenv.mkDerivation rec {
-  name = "opencascade-6.6.0";
+  name = "opencascade-oce-0.17.2";
   src = fetchurl {
-    url = http://files.opencascade.com/OCCT/OCC_6.6.0_release/OpenCASCADE660.tgz;
-    sha256 = "0q2xn915w9skv9sj74lxnyv9g3b0yi1j04majyzxk6sv4nra97z3";
+    url = https://github.com/tpaviot/oce/archive/OCE-0.17.2.tar.gz;
+    sha256 = "0vpmnb0k5y2f7lpmwx9pg9yfq24zjvnsak5alzacncfm1hv9b6cd";
   };
 
-  buildInputs = [ cmake mesa tcl tk file libXmu qt4 freetype ];
+  buildInputs = [ mesa tcl tk file libXmu libtool qt4 ftgl freetype cmake ];
 
-  sourceRoot = "ros/adm/cmake";
-
-  cmakeFlags = [
-    "-D3RDPARTY_TCL_DIR=${tcl}"
-    "-D3RDPARTY_FREETYPE_DIR=${freetype.dev}"
-
-    # Not used on Linux but must be defined during configuration.
-    "-D3RDPARTY_FREETYPE_DLL=${freetype.dev}"
-  ];
+  preConfigure = ''
+    cmakeFlags="$cmakeFlags -DOCE_INSTALL_PREFIX=$out"
+  '';
 
   # https://bugs.freedesktop.org/show_bug.cgi?id=83631
   NIX_CFLAGS_COMPILE = "-DGLX_GLXEXT_LEGACY";
 
-  hardeningDisable = [ "format" ];
-
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DINSTALL_DIR=$out"
-  '';
-
-  postInstall = ''
-    mv $out/inc $out/include
-    mkdir -p $out/share/doc/${name}
-    cp -R ../../../doc $out/share/doc/${name}
-  '';
-
   enableParallelBuilding = true;
 
   meta = {
diff --git a/pkgs/development/libraries/opencascade/oce.nix b/pkgs/development/libraries/opencascade/oce.nix
deleted file mode 100644
index 58f9019d6e03..000000000000
--- a/pkgs/development/libraries/opencascade/oce.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{stdenv, fetchurl, mesa, tcl, tk, file, libXmu, cmake, libtool, qt4,
-ftgl, freetype}:
-
-stdenv.mkDerivation rec {
-  name = "opencascade-oce-0.17.2";
-  src = fetchurl {
-    url = https://github.com/tpaviot/oce/archive/OCE-0.17.2.tar.gz;
-    sha256 = "0vpmnb0k5y2f7lpmwx9pg9yfq24zjvnsak5alzacncfm1hv9b6cd";
-  };
-
-  buildInputs = [ mesa tcl tk file libXmu libtool qt4 ftgl freetype cmake ];
-
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DOCE_INSTALL_PREFIX=$out"
-  '';
-
-  # https://bugs.freedesktop.org/show_bug.cgi?id=83631
-  NIX_CFLAGS_COMPILE = "-DGLX_GLXEXT_LEGACY";
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
-    homepage = http://www.opencascade.org/;
-    maintainers = with stdenv.lib.maintainers; [viric];
-    platforms = with stdenv.lib.platforms; linux;
-  };
-}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 04d73ec807a1..a3ccba213176 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9906,17 +9906,9 @@ with pkgs;
 
   openbabel = callPackage ../development/libraries/openbabel { };
 
-  opencascade = callPackage ../development/libraries/opencascade {
-    tcl = tcl-8_5;
-    tk = tk-8_5;
-  };
+  opencascade = callPackage ../development/libraries/opencascade { };
 
-  opencascade_6_5 = callPackage ../development/libraries/opencascade/6.5.nix {
-    automake = automake111x;
-    ftgl = ftgl212;
-  };
-
-  opencascade_oce = callPackage ../development/libraries/opencascade/oce.nix { };
+  opencascade_oce = opencascade;
 
   opencl-headers = callPackage ../development/libraries/opencl-headers { };
 
@@ -14546,7 +14538,6 @@ with pkgs;
 
   freecad = callPackage ../applications/graphics/freecad {
     boost = boost155;
-    opencascade = opencascade_oce;
   };
 
   freemind = callPackage ../applications/misc/freemind { };

From 23f398012b420e9e5293a21d62ed838062b8235a Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Wed, 27 Sep 2017 22:23:19 +0100
Subject: [PATCH 499/533] nixos: skip restarting systemd-logind to not break
 x11

---
 nixos/modules/system/boot/systemd.nix | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index ed1f5d20afb6..dd9ba7104485 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -875,7 +875,12 @@ in
     systemd.services.systemd-remount-fs.restartIfChanged = false;
     systemd.services.systemd-update-utmp.restartIfChanged = false;
     systemd.services.systemd-user-sessions.restartIfChanged = false; # Restart kills all active sessions.
-    systemd.services.systemd-logind.restartTriggers = [ config.environment.etc."systemd/logind.conf".source ];
+    # Restarting systemd-logind breaks X11
+    # - upstream commit: https://cgit.freedesktop.org/xorg/xserver/commit/?id=dc48bd653c7e101
+    # - systemd announcement: https://github.com/systemd/systemd/blob/22043e4317ecd2bc7834b48a6d364de76bb26d91/NEWS#L103-L112
+    # - this might be addressed in the future by xorg
+    #systemd.services.systemd-logind.restartTriggers = [ config.environment.etc."systemd/logind.conf".source ];
+    systemd.services.systemd-logind.restartIfChanged = false;
     systemd.services.systemd-logind.stopIfChanged = false;
     systemd.services.systemd-journald.restartTriggers = [ config.environment.etc."systemd/journald.conf".source ];
     systemd.services.systemd-journald.stopIfChanged = false;

From 4a2442032ee5bc06f225bd5666b0f6813026b42f Mon Sep 17 00:00:00 2001
From: Alexander Ried <ried@mytum.de>
Date: Tue, 19 Sep 2017 23:01:36 +0200
Subject: [PATCH 500/533] Revert "kbd service: use /dev/tty1 for
 systemd-vconsole-setup"

This reverts commit 0c81594a29d99d9ee9c9c88c680340d56823cfb2.

It's no longer needed since systemd-vconsole-setup enumerates all ttys
until it finds a suitable one since systemd v234.
---
 nixos/modules/tasks/kbd.nix | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix
index 3975dd5b0ffd..a01f35fea037 100644
--- a/nixos/modules/tasks/kbd.nix
+++ b/nixos/modules/tasks/kbd.nix
@@ -98,22 +98,11 @@ in
           '') config.i18n.consoleColors}
         '';
 
-        /* XXX: systemd-vconsole-setup needs a "main" terminal. By default
-         * /dev/tty0 is used which wouldn't work when the service is restarted
-         * from X11. We set this to /dev/tty1; not ideal because it may also be
-         * owned by X11 or something else.
-         *
-         * See #22470.
-         */
         systemd.services."systemd-vconsole-setup" =
           { wantedBy = [ "sysinit.target" ];
             before = [ "display-manager.service" ];
             after = [ "systemd-udev-settle.service" ];
             restartTriggers = [ vconsoleConf kbdEnv ];
-            serviceConfig.ExecStart = [
-              ""
-              "${pkgs.systemd}/lib/systemd/systemd-vconsole-setup /dev/tty1"
-            ];
           };
       }
 

From 725dee203a88f26e38912e73e832caa3ab73447e Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Wed, 27 Sep 2017 23:20:08 +0200
Subject: [PATCH 501/533] wpa_supplicant service: restart instead of stop &
 start

We now wait for dhcpcd to acquire a lease but dhcpcd is restarted on
system activation. As wpa_supplicant is stopped while dhcpcd is
restarting a significant delay is introduced on systems with wireless
network connections only. This changes the wpa_supplicant service to
also be restarted together with dhcpcd in case both services were
changed.
---
 nixos/modules/services/networking/wpa_supplicant.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index c91ba91fcb4d..908c8730ad2a 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -148,6 +148,7 @@ in {
       wants = [ "network.target" ];
       requires = lib.concatMap deviceUnit ifaces;
       wantedBy = [ "multi-user.target" ];
+      stopIfChanged = false;
 
       path = [ pkgs.wpa_supplicant ];
 

From 0ee866ed728ee62e6c598911ff0dcfaa74ea7c55 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Wed, 27 Sep 2017 23:34:42 +0200
Subject: [PATCH 502/533] kbd service: systemd-vconsole-setup is triggered by
 udev

cc #22470
---
 nixos/modules/tasks/kbd.nix | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/nixos/modules/tasks/kbd.nix b/nixos/modules/tasks/kbd.nix
index a01f35fea037..7fb3cbc5c1bc 100644
--- a/nixos/modules/tasks/kbd.nix
+++ b/nixos/modules/tasks/kbd.nix
@@ -99,8 +99,7 @@ in
         '';
 
         systemd.services."systemd-vconsole-setup" =
-          { wantedBy = [ "sysinit.target" ];
-            before = [ "display-manager.service" ];
+          { before = [ "display-manager.service" ];
             after = [ "systemd-udev-settle.service" ];
             restartTriggers = [ vconsoleConf kbdEnv ];
           };

From a06f839439c1fd3fa123ec654daafaf8405ac6b4 Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Thu, 14 Sep 2017 00:09:13 +0200
Subject: [PATCH 503/533] nixos/release-notes: notable changes to the
 dnscrypt-proxy service

---
 nixos/doc/manual/release-notes/rl-1709.xml | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/nixos/doc/manual/release-notes/rl-1709.xml b/nixos/doc/manual/release-notes/rl-1709.xml
index f91db4a154e2..e4fac275d799 100644
--- a/nixos/doc/manual/release-notes/rl-1709.xml
+++ b/nixos/doc/manual/release-notes/rl-1709.xml
@@ -439,6 +439,16 @@ FLUSH PRIVILEGES;
       version, kernel version and build date of all bootable generations.
     </para>
   </listitem>
+  <listitem>
+    <para>
+      The dnscrypt-proxy service now defaults to using a random upstream resolver,
+      selected from the list of public non-logging resolvers with DNSSEC support.
+      Existing configurations can be migrated to this mode of operation by
+      omitting the <option>services.dnscrypt-proxy.resolverName</option> option
+      or setting it to <literal>"random"</literal>.
+    </para>
+  </listitem>
+
 </itemizedlist>
 
 </section>

From b39c42d5d0d2b71bbc5c073705cfbd0b6b87bc9a Mon Sep 17 00:00:00 2001
From: PanAeon <vitalii.voloshyn@gmail.com>
Date: Wed, 27 Sep 2017 22:51:18 +0100
Subject: [PATCH 504/533] buildGo19Package: init (#29470)

---
 pkgs/top-level/all-packages.nix | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a3ccba213176..08210f566b29 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11115,6 +11115,10 @@ with pkgs;
     go = go_1_8;
   };
 
+  buildGo19Package = callPackage ../development/go-modules/generic {
+    go = go_1_9;
+  };
+
   buildGoPackage = buildGo18Package;
 
   go2nix = callPackage ../development/tools/go2nix { };

From 4f91397c987739cc96e1dd418f79fc0d94326485 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rostislav=20Bene=C5=A1?= <r.dee.b.b@gmail.com>
Date: Sun, 7 May 2017 21:37:56 +0200
Subject: [PATCH 505/533] nixos/nvidia: populating /dev with nvidia devices at
 boot

---
 nixos/modules/hardware/video/nvidia.nix | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 80abec95c03d..2bad50d65e7a 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -62,11 +62,16 @@ in
     boot.extraModulePackages = [ nvidia_x11.bin ];
 
     # nvidia-uvm is required by CUDA applications.
-    boot.kernelModules = [ "nvidia-uvm" ];
+    boot.kernelModules = [ "nvidia-uvm" ] ++
+      lib.optionals config.services.xserver.enable [ "nvidia" "nvidia_modeset" "nvidia_drm" ];
+
 
     # Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
     services.udev.extraRules =
       ''
+        KERNEL=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidiactl c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) 255'"
+        KERNEL=="nvidia_modeset", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-modeset c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) 254'"
+        KERNEL=="card*", SUBSYSTEM=="drm", DRIVERS=="nvidia", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia%n c $(grep nvidia-frontend /proc/devices | cut -d \  -f 1) %n'"
         KERNEL=="nvidia_uvm", RUN+="${pkgs.stdenv.shell} -c 'mknod -m 666 /dev/nvidia-uvm c $(grep nvidia-uvm /proc/devices | cut -d \  -f 1) 0'"
       '';
 

From 4ef82339c9a32548d2432ca71e8aac87abe79777 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rostislav=20Bene=C5=A1?= <r.dee.b.b@gmail.com>
Date: Sun, 7 May 2017 22:27:02 +0200
Subject: [PATCH 506/533] nixos/gdm,nvidia: new options to enable GDM on
 Wayland and disabling it for nvidia drivers.

---
 nixos/modules/hardware/video/nvidia.nix             | 6 ++++++
 nixos/modules/services/x11/display-managers/gdm.nix | 9 +++++++++
 2 files changed, 15 insertions(+)

diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 2bad50d65e7a..52f1773e9c45 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -40,6 +40,12 @@ in
 {
 
   config = mkIf enabled {
+    assertions = [
+      {
+        assertion = services.xserver.displayManager.gdm.wayland;
+        message = "NVidia drivers don't support wayland";
+      }
+    ];
 
     services.xserver.drivers = singleton
       { name = "nvidia"; modules = [ nvidia_x11.bin ]; libPath = [ nvidia_x11 ]; };
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index b0a3ff1bb753..e68bc816aad2 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -64,6 +64,14 @@ in
         };
       };
 
+      wayland = mkOption {
+        default = true;
+        description = ''
+          Allow GDM run on Wayland instead of Xserver
+        '';
+        type = types.bool;
+      };
+
     };
 
   };
@@ -139,6 +147,7 @@ in
     # presented and there's a little delay.
     environment.etc."gdm/custom.conf".text = ''
       [daemon]
+      WaylandEnable=${if cfg.gdm.wayland then "true" else "false"}
       ${optionalString cfg.gdm.autoLogin.enable (
         if cfg.gdm.autoLogin.delay > 0 then ''
           TimedLoginEnable=true

From 0cad98dde1cef69e847cb2b1ccfb9c583016a1fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rostislav=20Bene=C5=A1?= <r.dee.b.b@gmail.com>
Date: Sun, 7 May 2017 23:01:20 +0200
Subject: [PATCH 507/533] nixos/xserver,gdm: let GDM handle X server verbosity.

---
 nixos/modules/services/x11/display-managers/gdm.nix |  1 +
 nixos/modules/services/x11/xserver.nix              | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index e68bc816aad2..83c5c95dae7e 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -102,6 +102,7 @@ in
     # GDM needs different xserverArgs, presumable because using wayland by default.
     services.xserver.tty = null;
     services.xserver.display = null;
+    services.xserver.verbose = null;
 
     services.xserver.displayManager.job =
       {
diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix
index 3ce124d3da27..d4fe475690ce 100644
--- a/nixos/modules/services/x11/xserver.nix
+++ b/nixos/modules/services/x11/xserver.nix
@@ -480,6 +480,15 @@ in
         '';
       };
 
+      verbose = mkOption {
+        type = types.nullOr types.int;
+        default = 3;
+        example = 7;
+        description = ''
+          Controls verbosity of X logging.
+        '';
+      };
+
       useGlamor = mkOption {
         type = types.bool;
         default = false;
@@ -631,10 +640,11 @@ in
       [ "-config ${configFile}"
         "-xkbdir" "${cfg.xkbDir}"
         # Log at the default verbosity level to stderr rather than /var/log/X.*.log.
-        "-verbose" "3" "-logfile" "/dev/null"
+         "-logfile" "/dev/null"
       ] ++ optional (cfg.display != null) ":${toString cfg.display}"
         ++ optional (cfg.tty     != null) "vt${toString cfg.tty}"
         ++ optional (cfg.dpi     != null) "-dpi ${toString cfg.dpi}"
+        ++ optional (cfg.verbose != null) "-verbose ${toString cfg.verbose}"
         ++ optional (!cfg.enableTCP) "-nolisten tcp"
         ++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}"
         ++ optional (cfg.autoRepeatInterval != null) "-arinterval ${toString cfg.autoRepeatInterval}"

From ae259ff83b6f1f10358dee72428712aba17dbb89 Mon Sep 17 00:00:00 2001
From: Yann Hodique <hodiquey@vmware.com>
Date: Wed, 27 Sep 2017 14:46:36 -0700
Subject: [PATCH 508/533] lftp: 4.8.0 -> 4.8.2

---
 pkgs/tools/networking/lftp/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/tools/networking/lftp/default.nix b/pkgs/tools/networking/lftp/default.nix
index b6d8baeee7ec..aa5a7b514cb8 100644
--- a/pkgs/tools/networking/lftp/default.nix
+++ b/pkgs/tools/networking/lftp/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchurl, gnutls, pkgconfig, readline, zlib, libidn2, gmp, libiconv, gettext }:
+{ stdenv, fetchurl, gnutls, pkgconfig, readline, zlib, libidn2, gmp, libiconv, libunistring, gettext }:
 
 stdenv.mkDerivation rec {
   name = "lftp-${version}";
-  version = "4.8.0";
+  version = "4.8.2";
 
   src = fetchurl {
     urls = [
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
       "ftp://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/${name}.tar.bz2"
       "http://lftp.yar.ru/ftp/old/${name}.tar.bz2"
       ];
-    sha256 = "0z2432zxzg808swi72yak9kia976qrjj030grk0v4p54mcib3s34";
+    sha256 = "0a4sp9khqgny1md0b2c9vvg4c7sz0g31w3sfdslxw7dsvijin3mn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ gnutls readline zlib libidn2 gmp libiconv ]
+  buildInputs = [ gnutls readline zlib libidn2 gmp libiconv libunistring ]
     ++ stdenv.lib.optional stdenv.isDarwin gettext;
 
   hardeningDisable = stdenv.lib.optional stdenv.isDarwin "format";

From d02fac35a553d73e5cac7224946348d74d8dd7f0 Mon Sep 17 00:00:00 2001
From: Yann Hodique <hodiquey@vmware.com>
Date: Wed, 27 Sep 2017 12:44:51 -0700
Subject: [PATCH 509/533] dgraph: 0.8.1 -> 0.8.2

---
 pkgs/servers/dgraph/default.nix |  7 ++++---
 pkgs/servers/dgraph/deps.nix    | 24 ++++++++++++------------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/pkgs/servers/dgraph/default.nix b/pkgs/servers/dgraph/default.nix
index 1712476b923b..06aef0babd39 100644
--- a/pkgs/servers/dgraph/default.nix
+++ b/pkgs/servers/dgraph/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "dgraph-${version}";
-  version = "0.8.1";
+  version = "0.8.2";
 
   goPackagePath = "github.com/dgraph-io/dgraph";
 
@@ -10,13 +10,13 @@ buildGoPackage rec {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "1gls2pvgcmd364x84gz5fafs7pwkll4k352rg1lmv70wvzyydsdr";
+    sha256 = "0zc5bda8m2srjbk0gy1nnm0bya8if0kmk1szqr1qv3xifdzmi4nf";
   };
 
   extraOutputsToInstall = [ "dashboard" ];
 
   goDeps = ./deps.nix;
-  subPackages = [ "cmd/dgraph" "cmd/dgraphloader" ];
+  subPackages = [ "cmd/dgraph" "cmd/dgraphloader" "cmd/bulkloader"];
 
   # let's move the dashboard to a different output, to prevent $bin from
   # depending on $out
@@ -36,6 +36,7 @@ buildGoPackage rec {
     # Removing it fixes cycle between $out and $bin
     install_name_tool -delete_rpath $out/lib $bin/bin/dgraph
     install_name_tool -delete_rpath $out/lib $bin/bin/dgraphloader
+    install_name_tool -delete_rpath $out/lib $bin/bin/bulkloader
   '';
  
   meta = {
diff --git a/pkgs/servers/dgraph/deps.nix b/pkgs/servers/dgraph/deps.nix
index 2e03c75489b2..89e00e0d8cb3 100644
--- a/pkgs/servers/dgraph/deps.nix
+++ b/pkgs/servers/dgraph/deps.nix
@@ -94,8 +94,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/coreos/etcd";
-      rev = "1ebeef5cbfe69c0dab2bc701ee5307eed7a7d8d2";
-      sha256 = "12lidn1a8nwsk6nlwyfirrxkxhs4lhj53f4cd19xm8w070q0mg19";
+      rev = "9d43462d174c664f5edf313dec0de31e1ef4ed47";
+      sha256 = "0qxqjxhhciaacag1jz2rlncmlgw861ig2yx993ylvfm30jvyj2cj";
     };
   }
   {
@@ -112,8 +112,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/dgraph-io/badger";
-      rev = "ad23a425b3c87b8223780cb882bed568ca14b9f0";
-      sha256 = "1xjd05vska1kanmgdhp5cvkn2i6236rqphrc9i4kfjndgwkmas57";
+      rev = "64df7f57d9ee20d7b28de4a3eea90bf8d7310a77";
+      sha256 = "1ikgzn2l62kb238n0wm6s95py5ypv71p09w7zyvzkjf34x675mzz";
     };
   }
   {
@@ -139,8 +139,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/golang/geo";
-      rev = "3a42ea109208469f16baf9e090135dd0e82ece5c";
-      sha256 = "1fzlakjj94gv516q7gd9qycn91lij7wmjbdv0vsrh6qnxvgqr8hw";
+      rev = "31fb0106dc4a947e5aaee1fe186e56447f839510";
+      sha256 = "00w4kwm98hrgr3ggfdk1h7qa5gp00z4s0j0iwgwd9rgadb59kb2c";
     };
   }
   {
@@ -292,8 +292,8 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/text";
-      rev = "836efe42bb4aa16aaa17b9c155d8813d336ed720";
-      sha256 = "11s7bjk0karl1lx8v4n6dvdnsh702x4f2qlmnqac2qdz8hdswmi1";
+      rev = "1cbadb444a806fd9430d14ad08967ed91da4fa0a";
+      sha256 = "0ih9ysagh4ylj08393497sscf3yziybc6acg4mrh0wa7mld75j56";
     };
   }
   {
@@ -301,8 +301,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/google/go-genproto";
-      rev = "b0a3dcfcd1a9bd48e63634bd8802960804cf8315";
-      sha256 = "0lkj73lyr4dzj2pxgmild0i1bl6kdgrxa3c8m44j5ms537pyxcpr";
+      rev = "1e559d0a00eef8a9a43151db4665280bd8dd5886";
+      sha256 = "1dfm8zd9mif1aswks79wgyi7n818s5brbdnnrrlg79whfhaf20hd";
     };
   }
   {
@@ -310,8 +310,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/grpc/grpc-go";
-      rev = "2bb318258959db281674bc6fd67b5167b7ff0d65";
-      sha256 = "1g8ir87ksr8549801vdgb0n6rmxws05ky50bkgjv86370h146cqm";
+      rev = "f92cdcd7dcdc69e81b2d7b338479a19a8723cfa3";
+      sha256 = "1li8rn2s4f8qc77npamlm2ijin44scb8vvd8c4cr0l7za2m89jfn";
     };
   }
   {

From ff15b852c1f5ef5b0436b7611b8fce55491d0234 Mon Sep 17 00:00:00 2001
From: Nick Novitski <github@nicknovitski.com>
Date: Wed, 27 Sep 2017 15:32:47 -0700
Subject: [PATCH 510/533] youtube-dl: 2017.09.15 -> 2017.09.24 (#29866)

---
 pkgs/tools/misc/youtube-dl/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 3af0c5435604..c364935b12cb 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -15,11 +15,11 @@ with stdenv.lib;
 buildPythonApplication rec {
 
   name = "youtube-dl-${version}";
-  version = "2017.09.15";
+  version = "2017.09.24";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${name}.tar.gz";
-    sha256 = "1kw8pqzvhbpyxcz2jb692j4cgzd3vmd81mra09xvpzkq974jkx7f";
+    sha256 = "0j2m75j0d1n83i7jzpkcj7ir0bkskj024j9b0yi88zipcg740wbx";
   };
 
   nativeBuildInputs = [ makeWrapper ];

From f4c53f1940de477a3cd7193306c5512d319b1c9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= <mail@nh2.me>
Date: Tue, 18 Jul 2017 14:51:35 +0200
Subject: [PATCH 511/533] consul service: Restart on failure.

Consul is a service you typically want to have running all the time;
it's not supposed to quit by itself.
---
 nixos/modules/services/networking/consul.nix | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index 166ee7732375..6333970cb338 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -183,6 +183,7 @@ in
           ExecReload = "${cfg.package.bin}/bin/consul reload";
           PermissionsStartOnly = true;
           User = if cfg.dropPrivileges then "consul" else null;
+          Restart = "on-failure";
           TimeoutStartSec = "0";
         } // (optionalAttrs (cfg.leaveOnStop) {
           ExecStop = "${cfg.package.bin}/bin/consul leave";

From ad38b7c9aebbdf7a9d4fb5cc99faeb6decd679fd Mon Sep 17 00:00:00 2001
From: volth <volth@webmaster.ms>
Date: Wed, 27 Sep 2017 13:46:20 +0000
Subject: [PATCH 512/533] liboping: 1.9.0 -> 1.10.0

---
 pkgs/development/libraries/liboping/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/libraries/liboping/default.nix b/pkgs/development/libraries/liboping/default.nix
index 435f593b5974..c177f7ba58ee 100644
--- a/pkgs/development/libraries/liboping/default.nix
+++ b/pkgs/development/libraries/liboping/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, ncurses ? null, perl ? null }:
 
 stdenv.mkDerivation rec {
-  name = "liboping-1.9.0";
+  name = "liboping-1.10.0";
 
   src = fetchurl {
     url = "http://verplant.org/liboping/files/${name}.tar.bz2";
-    sha256 = "0c1mdx9ixqypayhm617jjv9kr6y60nh3mnryafjzv23bnn41vfs4";
+    sha256 = "1n2wkmvw6n80ybdwkjq8ka43z2x8mvxq49byv61b52iyz69slf7b";
   };
 
   buildInputs = [ ncurses perl ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = http://noping.cc/;
     license = licenses.lgpl21;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.bjornfor ];
   };
 }

From 7d883056a074c7e6ec78ba14af3653c23942b193 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
Date: Wed, 27 Sep 2017 15:52:18 -0700
Subject: [PATCH 513/533] lxqt.screengrab: 2017-02-18 -> 1.97 (#29835)

---
 pkgs/desktops/lxqt/optional/screengrab/default.nix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pkgs/desktops/lxqt/optional/screengrab/default.nix b/pkgs/desktops/lxqt/optional/screengrab/default.nix
index e8cc7c30fa15..4bd040c00a8b 100644
--- a/pkgs/desktops/lxqt/optional/screengrab/default.nix
+++ b/pkgs/desktops/lxqt/optional/screengrab/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, libqtxdg, xorg }:
 
 stdenv.mkDerivation rec {
-  name = "screengrab-unstable-2017-02-18";
+  name = "screengrab-${version}";
+  version = "1.97";
 
   srcs = fetchFromGitHub {
     owner = "QtDesktop";
     repo = "screengrab";
-    rev = "6fc03c70fe132b89f35d4cef2f62c9d804de3b64";
-    sha256 = "1h3rlpmaqxzysaibcw7s5msbrwaxkg6sz7a8xv6cqzjvggv09my0";
+    rev = version;
+    sha256 = "0qhdxnv1pz745qgvdv5x7kyfx9dz9rrq0wxyfimppzxcszv4pl2z";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];

From a3e2ecd7f746300703eb95dea91668e91519d003 Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Fri, 1 Sep 2017 15:42:52 -0400
Subject: [PATCH 514/533] freebayes: 1.1.0 -> 2017-08-23

---
 .../applications/science/biology/freebayes/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/applications/science/biology/freebayes/default.nix b/pkgs/applications/science/biology/freebayes/default.nix
index ef0da619b25a..ec11e4ccb307 100644
--- a/pkgs/applications/science/biology/freebayes/default.nix
+++ b/pkgs/applications/science/biology/freebayes/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, cmake, gcc, zlib}:
+{ stdenv, fetchFromGitHub, cmake, gcc, zlib, bzip2, lzma }:
 
 stdenv.mkDerivation rec {
   name    = "freebayes-${version}";
-  version = "1.1.0";
+  version = "2017-08-23";
 
   src = fetchFromGitHub {
     name = "freebayes-${version}-src";
     owner  = "ekg";
     repo   = "freebayes";
-    rev    = "refs/tags/v${version}";
-    sha256 = "0xb8aicb36w9mfs1gq1x7mcp3p82kl7i61d162hfncqzg2npg8rr";
+    rev    = "8d2b3a060da473e1f4f89be04edfce5cba63f1d3";
+    sha256 = "0yyrgk2639lz1yvg4jf0ccahnkic31dy77q05pb3i28rjf37v45z";
     fetchSubmodules = true;
   };
 
-  buildInputs = [ cmake gcc zlib ];
+  buildInputs = [ cmake gcc zlib bzip2 lzma ];
 
   builder = ./builder.sh;
 

From 7cbf3a27de3bcb9d090a5ef205f238c2e69e0786 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Thu, 28 Sep 2017 00:52:58 +0200
Subject: [PATCH 515/533] freebayes: clean up build

---
 .../applications/science/biology/freebayes/builder.sh | 11 -----------
 .../science/biology/freebayes/default.nix             |  6 ++++--
 2 files changed, 4 insertions(+), 13 deletions(-)
 delete mode 100644 pkgs/applications/science/biology/freebayes/builder.sh

diff --git a/pkgs/applications/science/biology/freebayes/builder.sh b/pkgs/applications/science/biology/freebayes/builder.sh
deleted file mode 100644
index a9f56e77d7e3..000000000000
--- a/pkgs/applications/science/biology/freebayes/builder.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-source $stdenv/setup
-
-unpackPhase
-
-cd freebayes-*
-
-make
-
-mkdir -p $out/bin
-cp bin/freebayes bin/bamleftalign $out/bin
-cp scripts/* $out/bin
diff --git a/pkgs/applications/science/biology/freebayes/default.nix b/pkgs/applications/science/biology/freebayes/default.nix
index ec11e4ccb307..99d2dfa55ddd 100644
--- a/pkgs/applications/science/biology/freebayes/default.nix
+++ b/pkgs/applications/science/biology/freebayes/default.nix
@@ -13,9 +13,11 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  buildInputs = [ cmake gcc zlib bzip2 lzma ];
+  buildInputs = [ zlib bzip2 lzma ];
 
-  builder = ./builder.sh;
+  installPhase = ''
+    install -vD bin/freebayes bin/bamleftalign scripts/* -t $out/bin
+  '';
 
   meta = with stdenv.lib; {
     description = "Bayesian haplotype-based polymorphism discovery and genotyping";

From 3c6eb3a247721aafded88c789d247602762b7d86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= <bjorn.forsman@gmail.com>
Date: Tue, 26 Sep 2017 22:17:01 +0200
Subject: [PATCH 516/533] nixos/iso-image.nix: add top-level /version.txt file

This makes it easy to identify which NixOS version is written to an USB
stick without actually booting it.
---
 nixos/modules/installer/cd-dvd/iso-image.nix | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 96f7aac1d59d..a039f7fdcb6e 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -361,6 +361,9 @@ in
         { source = config.isoImage.splashImage;
           target = "/isolinux/background.png";
         }
+        { source = pkgs.writeText "version" config.system.nixosVersion;
+          target = "/version.txt";
+        }
       ] ++ optionals config.isoImage.makeEfiBootable [
         { source = efiImg;
           target = "/boot/efi.img";

From 22b0c966aad75d1988185f10c594d47590821023 Mon Sep 17 00:00:00 2001
From: Yegor Timoshenko <yegortimoshenko@gmail.com>
Date: Wed, 27 Sep 2017 00:47:37 +0000
Subject: [PATCH 517/533] snes9x-gtk: 1.53 -> 1.54.1

---
 pkgs/misc/emulators/snes9x-gtk/default.nix | 36 +++++++++++-----------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/pkgs/misc/emulators/snes9x-gtk/default.nix b/pkgs/misc/emulators/snes9x-gtk/default.nix
index c6f4df1e5c06..f2d3abc0de3b 100644
--- a/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -1,26 +1,26 @@
-{stdenv, fetchurl, nasm, SDL, zlib, libpng, ncurses, mesa, intltool, gtk2, pkgconfig, libxml2, xlibsWrapper, libpulseaudio}:
+{ stdenv, fetchFromGitHub, autoreconfHook, intltool, pkgconfig
+, SDL, zlib, gtk2, libxml2, libXv }:
 
 stdenv.mkDerivation rec {
   name = "snes9x-gtk-${version}";
-  version = "1.53";
+  version = "1.54.1";
 
-  src = fetchurl {
-    url = "http://files.ipherswipsite.com/snes9x/snes9x-${version}-src.tar.bz2";
-    sha256 = "9f7c5d2d0fa3fe753611cf94e8879b73b8bb3c0eab97cdbcb6ab7376efa78dc3";
+  src = fetchFromGitHub {
+    owner = "snes9xgit";
+    repo = "snes9x";
+    rev = version;
+    sha256 = "10fqm7lk36zj2gnx0ypps0nlws923f60b0zj4pmq9apawgx8k6rw";
   };
 
-  buildInputs = [ nasm SDL zlib libpng ncurses mesa intltool gtk2 pkgconfig libxml2 xlibsWrapper libpulseaudio];
+  nativeBuildInputs = [ autoreconfHook intltool pkgconfig ];
 
-  sourceRoot = "snes9x-${version}-src/gtk";
+  sourceRoot = "snes9x-${version}-src";
+  preAutoreconf = "cd gtk; intltoolize";  
+    
+  buildInputs = [ SDL zlib gtk2 libxml2 libXv ];
+  installPhase = "install -Dt $out/bin snes9x-gtk";
 
-  configureFlags = "--prefix=$out/ --with-opengl";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp snes9x-gtk $out/bin
-  '';
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "A portable, freeware Super Nintendo Entertainment System (SNES) emulator";
     longDescription = ''
       Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
@@ -28,9 +28,9 @@ stdenv.mkDerivation rec {
       and Super Famicom Nintendo game systems on your PC or Workstation; which
       includes some real gems that were only ever released in Japan.
     '';
-    license = stdenv.lib.licenses.lgpl2;
-    maintainers = [ stdenv.lib.maintainers.qknight ];
+    license = licenses.lgpl2;
+    maintainers = with maintainers; [ qknight ];
     homepage = http://www.snes9x.com/;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }

From ece9245a4dacf5fa7b853906aa6f0c8e083a338f Mon Sep 17 00:00:00 2001
From: Pascal Bach <pascal.bach@nextrem.ch>
Date: Sun, 24 Sep 2017 15:08:23 +0200
Subject: [PATCH 518/533] ipxe: 20160831 -> 20170922

---
 pkgs/tools/misc/ipxe/default.nix | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pkgs/tools/misc/ipxe/default.nix b/pkgs/tools/misc/ipxe/default.nix
index 6cd451264ab4..2d36ad17eec7 100644
--- a/pkgs/tools/misc/ipxe/default.nix
+++ b/pkgs/tools/misc/ipxe/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchgit, perl, cdrkit, syslinux, xz, openssl }:
 
 let
-  date = "20160831";
-  rev = "827dd1bfee67daa683935ce65316f7e0f057fe1c";
+  date = "20170922";
+  rev = "74d90b33f8490adcee2026ece18d8411d93b6a39";
 in
 
 stdenv.mkDerivation {
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = git://git.ipxe.org/ipxe.git;
-    sha256 = "11w8b0vln3skfn8r1cvzngslz12njdkwmnacyq3qffb96k2dn2ww";
+    sha256 = "12ijrq451fj2x3i7c7xjlxig5mwbhmgzqjvmfl2sza953vfbk4vw";
     inherit rev;
   };
 
@@ -40,6 +40,10 @@ stdenv.mkDerivation {
   installPhase = ''
     mkdir -p $out
     cp bin/ipxe.dsk bin/ipxe.usb bin/ipxe.iso bin/ipxe.lkrn bin/undionly.kpxe $out
+
+    # Some PXE constellations especially with dnsmasq are looking for the file with .0 ending
+    # let's provide it as a symlink to be compatible in this case.
+    ln -s undionly.kpxe $out/undionly.kpxe.0
   '';
 
   meta = with stdenv.lib;

From 80021094b74b2c1c4976d4add174967041acb96d Mon Sep 17 00:00:00 2001
From: Samuel Leathers <sam@appliedtrust.com>
Date: Sun, 17 Sep 2017 23:31:18 -0400
Subject: [PATCH 519/533] mesos: 1.1.1 -> 1.4.0

(cherry picked from commit 6acc4084afec6bdfa4ebaf848ee53da68fc22f05)
---
 .../networking/cluster/mesos/default.nix      |  33 +-
 .../cluster/mesos/fetch-mesos-deps.sh         |  10 +-
 .../networking/cluster/mesos/mesos-deps.nix   |   2 +-
 .../networking/cluster/mesos/nixos.patch      | 374 +++++++++---------
 4 files changed, 198 insertions(+), 221 deletions(-)

diff --git a/pkgs/applications/networking/cluster/mesos/default.nix b/pkgs/applications/networking/cluster/mesos/default.nix
index 0506f7c154d2..712b1376845b 100644
--- a/pkgs/applications/networking/cluster/mesos/default.nix
+++ b/pkgs/applications/networking/cluster/mesos/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh, autoconf
-, automake, libtool, unzip, gnutar, jdk, maven, python, wrapPython
+{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh
+, unzip, gnutar, jdk, python, wrapPython
 , setuptools, boto, pythonProtobuf, apr, subversion, gzip, systemd
 , leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
-, ethtool, coreutils, which, iptables
-, bash
+, ethtool, coreutils, which, iptables, maven
+, bash, autoreconfHook
 }:
 
 let
@@ -21,7 +21,7 @@ let
   });
 
 in stdenv.mkDerivation rec {
-  version = "1.1.1";
+  version = "1.4.0";
   name = "mesos-${version}";
 
   enableParallelBuilding = true;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://apache/mesos/${version}/${name}.tar.gz";
-    sha256 = "0f46ebb130d2d4a9732f95d0a71d80c8c5967f3c172b110f2ece316e05922115";
+    sha256 = "0c08kd226nrjwm2z2drpq4vi97h9r8b1xkdvkgh1114fxg7cyvys";
   };
 
   patches = [
@@ -40,11 +40,13 @@ in stdenv.mkDerivation rec {
     # see https://github.com/cstrahan/mesos/tree/nixos-${version}
     ./nixos.patch
   ];
-
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
   buildInputs = [
-    makeWrapper autoconf automake libtool curl sasl jdk maven
+    makeWrapper curl sasl jdk
     python wrapPython boto setuptools leveldb
-    subversion apr glog openssl libevent
+    subversion apr glog openssl libevent maven
   ] ++ lib.optionals stdenv.isLinux [
     libnl
   ];
@@ -52,10 +54,6 @@ in stdenv.mkDerivation rec {
   propagatedBuildInputs = [
     pythonProtobuf
   ];
-
-  # note that we *must* statically link libprotobuf.
-  # if we dynamically link the lib, we get these errors:
-  # https://github.com/NixOS/nixpkgs/pull/19064#issuecomment-255082684
   preConfigure = ''
     # https://issues.apache.org/jira/browse/MESOS-6616
     configureFlagsArray+=(
@@ -66,13 +64,10 @@ in stdenv.mkDerivation rec {
     # <sys/types.h> instead of <sys/sysmacros.h>
     sed 1i'#include <sys/sysmacros.h>' -i src/linux/fs.cpp
     sed 1i'#include <sys/sysmacros.h>' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-
     substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \
       --subst-var-by chown ${coreutils}/bin/chown
 
     substituteInPlace 3rdparty/stout/Makefile.am \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.so"
 
     substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \
       --subst-var-by sh ${bash}/bin/bash
@@ -99,8 +94,6 @@ in stdenv.mkDerivation rec {
       --subst-var-by mesos-resolve $out/bin/mesos-resolve
 
     substituteInPlace src/python/native_common/ext_modules.py.in \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.so"
 
     substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \
       --subst-var-by cp    ${coreutils}/bin/cp \
@@ -124,8 +117,6 @@ in stdenv.mkDerivation rec {
 
     substituteInPlace src/Makefile.am \
       --subst-var-by mavenRepo ${mavenRepo} \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.so"
 
   '' + lib.optionalString stdenv.isLinux ''
 
@@ -179,7 +170,7 @@ in stdenv.mkDerivation rec {
     "--enable-libevent"
     "--with-libevent=${libevent.dev}"
     "--with-protobuf=${pythonProtobuf.protobuf}"
-    "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar"
+    "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar"
   ] ++ lib.optionals stdenv.isLinux [
     "--with-network-isolator"
     "--with-nl=${libnl.dev}"
diff --git a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
index f4a4588dbe41..cf7318ecb273 100644
--- a/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
+++ b/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
@@ -1127,10 +1127,12 @@ fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom
 fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1
 fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar
 fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.pom
-fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar
-fetchArtifact com/google/protobuf/protobuf-java/2.6.1/protobuf-java-2.6.1.jar.sha1
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar
+fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1
+fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom
+fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1
 fetchArtifact com/google/google/1/google-1.pom
 fetchArtifact com/google/google/1/google-1.pom.sha1
 fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
diff --git a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
index 1edb4a755d89..642c660edb69 100644
--- a/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
+++ b/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "066ikswavq3l37x1s3pfdncyj77pvpa0kj14ax5dqb9njmsg0s11";
+  outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly";
 
   buildInputs = [ curl ];
 
diff --git a/pkgs/applications/networking/cluster/mesos/nixos.patch b/pkgs/applications/networking/cluster/mesos/nixos.patch
index 78e374b8d6bc..a6fea024b087 100644
--- a/pkgs/applications/networking/cluster/mesos/nixos.patch
+++ b/pkgs/applications/networking/cluster/mesos/nixos.patch
@@ -1,20 +1,7 @@
-diff --git a/3rdparty/stout/include/stout/os/posix/chown.hpp b/3rdparty/stout/include/stout/os/posix/chown.hpp
-index c82e2e574..15d332107 100644
---- a/3rdparty/stout/include/stout/os/posix/chown.hpp
-+++ b/3rdparty/stout/include/stout/os/posix/chown.hpp
-@@ -34,7 +34,7 @@ inline Try<Nothing> chown(
-     // TODO(bmahler): Consider walking the file tree instead. We would need
-     // to be careful to not miss dotfiles.
-     std::string command =
--      "chown -R " + stringify(uid) + ':' + stringify(gid) + " '" + path + "'";
-+      "@chown@ -R " + stringify(uid) + ':' + stringify(gid) + " '" + path + "'";
- 
-     int status = os::system(command);
-     if (status != 0) {
-diff --git a/3rdparty/stout/include/stout/os/posix/fork.hpp b/3rdparty/stout/include/stout/os/posix/fork.hpp
-index a29967dcb..290b98b50 100644
---- a/3rdparty/stout/include/stout/os/posix/fork.hpp
-+++ b/3rdparty/stout/include/stout/os/posix/fork.hpp
+diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp
+index a29967d..290b98b 100644
+--- i/3rdparty/stout/include/stout/os/posix/fork.hpp
++++ w/3rdparty/stout/include/stout/os/posix/fork.hpp
 @@ -369,7 +369,7 @@ private:
      if (exec.isSome()) {
        // Execute the command (via '/bin/sh -c command').
@@ -24,11 +11,11 @@ index a29967dcb..290b98b50 100644
        EXIT(EXIT_FAILURE)
          << "Failed to execute '" << command << "': " << os::strerror(errno);
      } else if (wait.isSome()) {
-diff --git a/3rdparty/stout/include/stout/posix/os.hpp b/3rdparty/stout/include/stout/posix/os.hpp
-index c37e64db6..d3d87b7f0 100644
---- a/3rdparty/stout/include/stout/posix/os.hpp
-+++ b/3rdparty/stout/include/stout/posix/os.hpp
-@@ -375,7 +375,7 @@ inline Option<std::string> getenv(const std::string& key)
+diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp
+index 8511dfd..1e7be01 100644
+--- i/3rdparty/stout/include/stout/posix/os.hpp
++++ w/3rdparty/stout/include/stout/posix/os.hpp
+@@ -366,7 +366,7 @@ inline Try<std::set<pid_t>> pids(Option<pid_t> group, Option<pid_t> session)
  inline Try<Nothing> tar(const std::string& path, const std::string& archive)
  {
    Try<std::string> tarOut =
@@ -37,11 +24,11 @@ index c37e64db6..d3d87b7f0 100644
  
    if (tarOut.isError()) {
      return Error("Failed to archive " + path + ": " + tarOut.error());
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 3bcc0f2df..e5cbc57e8 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1545,7 +1545,7 @@ if HAS_JAVA
+diff --git i/src/Makefile.am w/src/Makefile.am
+index 68fff14..c572f92 100644
+--- i/src/Makefile.am
++++ w/src/Makefile.am
+@@ -1775,7 +1775,7 @@ if HAS_JAVA
  
  $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom
  	@echo "Building mesos-$(PACKAGE_VERSION).jar ..."
@@ -50,10 +37,10 @@ index 3bcc0f2df..e5cbc57e8 100644
  
  # Convenience library for JNI bindings.
  # TODO(Charles Reiss): We really should be building the Java library
-diff --git a/src/cli/mesos-scp b/src/cli/mesos-scp
-index a71ab0708..1043d1b3c 100755
---- a/src/cli/mesos-scp
-+++ b/src/cli/mesos-scp
+diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp
+index a71ab07..1043d1b 100755
+--- i/src/cli/mesos-scp
++++ w/src/cli/mesos-scp
 @@ -19,7 +19,8 @@ if sys.version_info < (2,6,0):
  
  
@@ -64,11 +51,11 @@ index a71ab0708..1043d1b3c 100755
      try:
          process = subprocess.Popen(
              cmd,
-diff --git a/src/common/command_utils.cpp b/src/common/command_utils.cpp
-index 09e805140..90bf65896 100644
---- a/src/common/command_utils.cpp
-+++ b/src/common/command_utils.cpp
-@@ -140,7 +140,7 @@ Future<Nothing> tar(
+diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp
+index c50be76..388cc53 100644
+--- i/src/common/command_utils.cpp
++++ w/src/common/command_utils.cpp
+@@ -142,7 +142,7 @@ Future<Nothing> tar(
  
    argv.emplace_back(input);
  
@@ -77,7 +64,7 @@ index 09e805140..90bf65896 100644
      .then([]() { return Nothing(); });
  }
  
-@@ -162,7 +162,7 @@ Future<Nothing> untar(
+@@ -164,7 +164,7 @@ Future<Nothing> untar(
      argv.emplace_back(directory.get());
    }
  
@@ -86,7 +73,7 @@ index 09e805140..90bf65896 100644
      .then([]() { return Nothing(); });
  }
  
-@@ -170,7 +170,7 @@ Future<Nothing> untar(
+@@ -172,7 +172,7 @@ Future<Nothing> untar(
  Future<string> sha512(const Path& input)
  {
  #ifdef __linux__
@@ -95,7 +82,7 @@ index 09e805140..90bf65896 100644
    vector<string> argv = {
      cmd,
      input             // Input file to compute shasum.
-@@ -206,7 +206,7 @@ Future<Nothing> gzip(const Path& input)
+@@ -208,7 +208,7 @@ Future<Nothing> gzip(const Path& input)
      input
    };
  
@@ -104,7 +91,7 @@ index 09e805140..90bf65896 100644
      .then([]() { return Nothing(); });
  }
  
-@@ -219,7 +219,7 @@ Future<Nothing> decompress(const Path& input)
+@@ -221,7 +221,7 @@ Future<Nothing> decompress(const Path& input)
      input
    };
  
@@ -113,41 +100,45 @@ index 09e805140..90bf65896 100644
      .then([]() { return Nothing(); });
  }
  
-diff --git a/src/launcher/fetcher.cpp b/src/launcher/fetcher.cpp
-index 4456c2813..e22c8fc03 100644
---- a/src/launcher/fetcher.cpp
-+++ b/src/launcher/fetcher.cpp
-@@ -68,13 +68,13 @@ static Try<bool> extract(
+diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp
+index 42980f5..3aebeed 100644
+--- i/src/launcher/fetcher.cpp
++++ w/src/launcher/fetcher.cpp
+@@ -80,17 +80,17 @@ static Try<bool> extract(
        strings::endsWith(sourcePath, ".tar.bz2") ||
        strings::endsWith(sourcePath, ".txz") ||
        strings::endsWith(sourcePath, ".tar.xz")) {
--    command = "tar -C '" + destinationDirectory + "' -xf";
-+    command = "@tar@ -C '" + destinationDirectory + "' -xf";
+-    command = {"tar", "-C", destinationDirectory, "-xf", sourcePath};
++    command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath};
    } else if (strings::endsWith(sourcePath, ".gz")) {
      string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3);
      string filename = Path(pathWithoutExtension).basename();
--    command = "gzip -dc > '" + destinationDirectory + "/" + filename + "' <";
-+    command = "@gzip@ -dc > '" + destinationDirectory + "/" + filename + "' <";
+     string destinationPath = path::join(destinationDirectory, filename);
+ 
+-    command = {"gunzip", "-d", "-c"};
++    command = {"@gunzip@", "-d", "-c"};
+     in = Subprocess::PATH(sourcePath);
+     out = Subprocess::PATH(destinationPath);
    } else if (strings::endsWith(sourcePath, ".zip")) {
--    command = "unzip -o -d '" + destinationDirectory + "'";
-+    command = "@unzip@ -o -d '" + destinationDirectory + "'";
+-    command = {"unzip", "-o", "-d", destinationDirectory, sourcePath};
++    command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath};
    } else {
      return false;
    }
-@@ -162,7 +162,7 @@ static Try<string> copyFile(
+@@ -193,7 +193,7 @@ static Try<string> copyFile(
      const string& sourcePath,
      const string& destinationPath)
  {
--  const string command = "cp '" + sourcePath + "' '" + destinationPath + "'";
-+  const string command = "@cp@ '" + sourcePath + "' '" + destinationPath + "'";
+-  int status = os::spawn("cp", {"cp", sourcePath, destinationPath});
++  int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath});
  
-   LOG(INFO) << "Copying resource with command:" << command;
- 
-diff --git a/src/linux/perf.cpp b/src/linux/perf.cpp
-index aa31982eb..8b5331b17 100644
---- a/src/linux/perf.cpp
-+++ b/src/linux/perf.cpp
-@@ -127,7 +127,7 @@ private:
+   if (status == -1) {
+     return ErrnoError("Failed to copy '" + sourcePath + "'");
+diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp
+index b301e25..356a2cf 100644
+--- i/src/linux/perf.cpp
++++ w/src/linux/perf.cpp
+@@ -128,7 +128,7 @@ private:
      // NOTE: The supervisor childhook places perf in its own process group
      // and will kill the perf process when the parent dies.
      Try<Subprocess> _perf = subprocess(
@@ -156,19 +147,10 @@ index aa31982eb..8b5331b17 100644
          argv,
          Subprocess::PIPE(),
          Subprocess::PIPE(),
-@@ -319,7 +319,7 @@ bool valid(const set<string>& events)
-   ostringstream command;
- 
-   // Log everything to stderr which is then redirected to /dev/null.
--  command << "perf stat --log-fd 2";
-+  command << "@perf@ stat --log-fd 2";
-   foreach (const string& event, events) {
-     command << " --event " << event;
-   }
-diff --git a/src/linux/systemd.cpp b/src/linux/systemd.cpp
-index 6318f48fc..394d88d47 100644
---- a/src/linux/systemd.cpp
-+++ b/src/linux/systemd.cpp
+diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp
+index 6318f48..394d88d 100644
+--- i/src/linux/systemd.cpp
++++ w/src/linux/systemd.cpp
 @@ -196,13 +196,21 @@ bool exists()
    // This is static as the init system should not change while we are running.
    static const bool exists = []() -> bool {
@@ -209,10 +191,10 @@ index 6318f48fc..394d88d47 100644
    Try<string> daemonReload = os::shell("systemctl daemon-reload");
    if (daemonReload.isError()) {
      return Error("Failed to reload systemd daemon: " + daemonReload.error());
-diff --git a/src/python/cli/src/mesos/cli.py b/src/python/cli/src/mesos/cli.py
-index f342992e0..354abf443 100644
---- a/src/python/cli/src/mesos/cli.py
-+++ b/src/python/cli/src/mesos/cli.py
+diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py
+index 4a9b558..c08a8b9 100644
+--- i/src/python/cli/src/mesos/cli.py
++++ w/src/python/cli/src/mesos/cli.py
 @@ -40,7 +40,7 @@ def resolve(master):
      import subprocess
  
@@ -222,10 +204,10 @@ index f342992e0..354abf443 100644
          stdin=None,
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
-diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-index af9f3736b..f8554d414 100644
---- a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-+++ b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
+diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
+index 5b630c1..d63ad69 100644
+--- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
++++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
 @@ -499,7 +499,7 @@ Future<Option<ContainerLaunchInfo>> DockerVolumeIsolatorProcess::_prepare(
      // unsafe arbitrary commands).
      CommandInfo* command = launchInfo.add_pre_exec_commands();
@@ -235,11 +217,11 @@ index af9f3736b..f8554d414 100644
      command->add_arguments("mount");
      command->add_arguments("-n");
      command->add_arguments("--rbind");
-diff --git a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-index df16b8fee..4a17475bd 100644
---- a/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-+++ b/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-@@ -159,9 +159,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
+diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
+index d7fe9a8..1361a4e 100644
+--- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
++++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
+@@ -154,9 +154,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
        // here because 'create' will only be invoked during
        // initialization.
        Try<string> mount = os::shell(
@@ -252,7 +234,7 @@ index df16b8fee..4a17475bd 100644
            workDir->c_str(),
            workDir->c_str(),
            workDir->c_str(),
-@@ -180,8 +180,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
+@@ -175,8 +175,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
        LOG(INFO) << "Making '" << workDir.get() << "' a shared mount";
  
        Try<string> mount = os::shell(
@@ -263,7 +245,7 @@ index df16b8fee..4a17475bd 100644
            workDir->c_str(),
            workDir->c_str());
  
-@@ -404,7 +404,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
+@@ -422,7 +422,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
  
      CommandInfo command;
      command.set_shell(false);
@@ -272,7 +254,7 @@ index df16b8fee..4a17475bd 100644
      command.add_arguments("mount");
      command.add_arguments("-n");
      command.add_arguments("--rbind");
-@@ -569,7 +569,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
+@@ -610,7 +610,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
      // TODO(jieyu): Consider the mode in the volume.
      CommandInfo command;
      command.set_shell(false);
@@ -281,11 +263,11 @@ index df16b8fee..4a17475bd 100644
      command.add_arguments("mount");
      command.add_arguments("-n");
      command.add_arguments("--rbind");
-diff --git a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-index a1283e5ee..a918427bf 100644
---- a/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-+++ b/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-@@ -207,7 +207,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
+diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
+index 927d95b..576dc63 100644
+--- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
++++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
+@@ -208,7 +208,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
      }
  
      launchInfo.add_pre_exec_commands()->set_value(
@@ -294,11 +276,11 @@ index a1283e5ee..a918427bf 100644
    }
  
    return launchInfo;
-diff --git a/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp b/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-index e3756c920..cfe458b59 100644
---- a/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-+++ b/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-@@ -355,7 +355,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare(
+diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
+index 25636b5..33ec315 100644
+--- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
++++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
+@@ -401,7 +401,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare(
      }
  
      launchInfo.add_pre_exec_commands()->set_value(
@@ -307,11 +289,11 @@ index e3756c920..cfe458b59 100644
        volume.HOST_PATH() + " " + target);
    }
  
-diff --git a/src/slave/containerizer/mesos/isolators/gpu/volume.cpp b/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-index 478752f37..ab527f0cd 100644
---- a/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-+++ b/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-@@ -281,7 +281,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
+index 536a3c7..e2819dd 100644
+--- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
++++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
+@@ -274,7 +274,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
      string path = path::join(hostPath, "bin", binary);
  
      if (!os::exists(path)) {
@@ -320,7 +302,7 @@ index 478752f37..ab527f0cd 100644
        Try<string> which = os::shell(command);
  
        if (which.isSome()) {
-@@ -295,7 +295,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+@@ -288,7 +288,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
                                : "No such file or directory"));
          }
  
@@ -329,7 +311,7 @@ index 478752f37..ab527f0cd 100644
          Try<string> cp = os::shell(command);
          if (cp.isError()) {
            return Error("Failed to os::shell '" + command + "': " + cp.error());
-@@ -367,7 +367,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
+@@ -360,7 +360,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
              Path(realpath.get()).basename());
  
          if (!os::exists(libraryPath)) {
@@ -338,11 +320,11 @@ index 478752f37..ab527f0cd 100644
            Try<string> cp = os::shell(command);
            if (cp.isError()) {
              return Error("Failed to os::shell '" + command + "':"
-diff --git a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-index 0d9ec57d9..a177e4476 100644
---- a/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-+++ b/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-@@ -94,7 +94,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
+diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
+index 42bc2e1..2f9066e 100644
+--- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
++++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
+@@ -131,7 +131,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
    //
    // TOOD(jieyu): Consider unmount the existing /proc.
    launchInfo.add_pre_exec_commands()->set_value(
@@ -351,11 +333,11 @@ index 0d9ec57d9..a177e4476 100644
  
    return launchInfo;
  }
-diff --git a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-index c87e6715a..6601cd1b3 100644
---- a/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-+++ b/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-@@ -262,9 +262,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
+diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
+index fc68f04..267b040 100644
+--- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
+@@ -205,9 +205,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
        // here because 'create' will only be invoked during
        // initialization.
        Try<string> mount = os::shell(
@@ -368,7 +350,7 @@ index c87e6715a..6601cd1b3 100644
            rootDir->c_str(),
            rootDir->c_str(),
            rootDir->c_str(),
-@@ -284,8 +284,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
+@@ -227,8 +227,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
        LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount";
  
        Try<string> mount = os::shell(
@@ -379,11 +361,11 @@ index c87e6715a..6601cd1b3 100644
            rootDir->c_str(),
            rootDir->c_str());
  
-diff --git a/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp b/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-index b470f0c82..6110a43ee 100644
---- a/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-+++ b/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-@@ -303,7 +303,7 @@ Try<Nothing> PortMapper::addPortMapping(
+diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
+index 43cf3e4..94bad8b 100644
+--- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
+@@ -301,7 +301,7 @@ Try<Nothing> PortMapper::addPortMapping(
        # Check if the `chain` exists in the iptable. If it does not
        # exist go ahead and install the chain in the iptables NAT
        # table.
@@ -392,7 +374,7 @@ index b470f0c82..6110a43ee 100644
        if [ $? -ne 0 ]; then
          # NOTE: When we create the chain, there is a possibility of a
          # race due to which a container launch can fail. This can
-@@ -317,25 +317,25 @@ Try<Nothing> PortMapper::addPortMapping(
+@@ -315,25 +315,25 @@ Try<Nothing> PortMapper::addPortMapping(
          # since it can happen only when the chain is created the first
          # time and two commands for creation of the chain are executed
          # simultaneously.
@@ -422,7 +404,7 @@ index b470f0c82..6110a43ee 100644
        chain,
        chain,
        chain,
-@@ -362,7 +362,7 @@ Try<Nothing> PortMapper::delPortMapping()
+@@ -360,7 +360,7 @@ Try<Nothing> PortMapper::delPortMapping()
        # The iptables command searches for the DNAT rules with tag
        # "container_id: <CNI_CONTAINERID>", and if it exists goes ahead
        # and deletes it.
@@ -431,11 +413,11 @@ index b470f0c82..6110a43ee 100644
        chain,
        getIptablesRuleTag()).get();
  
-diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-index 20fb6ab35..46c160977 100644
---- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-+++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-@@ -1393,19 +1393,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+index 57d4ccd..68c9577 100644
+--- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
++++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
+@@ -1394,19 +1394,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
    // Check the availability of a few Linux commands that we will use.
    // We use the blocking os::shell here because 'create' will only be
    // invoked during initialization.
@@ -458,7 +440,7 @@ index 20fb6ab35..46c160977 100644
    if (checkCommandIp.isError()) {
      return Error("Check command 'ip' failed: " + checkCommandIp.error());
    }
-@@ -1925,9 +1925,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+@@ -1940,9 +1940,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
      // visible. It's OK to use the blocking os::shell here because
      // 'create' will only be invoked during initialization.
      Try<string> mount = os::shell(
@@ -471,7 +453,7 @@ index 20fb6ab35..46c160977 100644
          bindMountRoot->c_str(),
          bindMountRoot->c_str(),
          bindMountRoot->c_str(),
-@@ -1944,8 +1944,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+@@ -1959,8 +1959,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
        // shared mount yet (possibly due to slave crash while preparing
        // the work directory mount). It's safe to re-do the following.
        Try<string> mount = os::shell(
@@ -482,7 +464,7 @@ index 20fb6ab35..46c160977 100644
            bindMountRoot->c_str(),
            bindMountRoot->c_str());
  
-@@ -1964,8 +1964,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
+@@ -1979,8 +1979,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
            // so that they are in different peer groups.
            if (entry.shared() == bindMountEntry->shared()) {
              Try<string> mount = os::shell(
@@ -493,7 +475,7 @@ index 20fb6ab35..46c160977 100644
                  bindMountRoot->c_str(),
                  bindMountRoot->c_str());
  
-@@ -3911,6 +3911,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters(
+@@ -3927,6 +3927,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters(
  // TODO(jieyu): Use the Subcommand abstraction to remove most of the
  // logic here. Completely remove this function once we can assume a
  // newer kernel where 'setns' works for mount namespaces.
@@ -502,7 +484,7 @@ index 20fb6ab35..46c160977 100644
  string PortMappingIsolatorProcess::scripts(Info* info)
  {
    ostringstream script;
-@@ -3921,7 +3923,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave
    // mount so that changes in the container will not be propagated to
    // the host.
@@ -511,7 +493,7 @@ index 20fb6ab35..46c160977 100644
  
    // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be
    // forwarded anyway.
-@@ -3929,7 +3931,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
           << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n";
  
    // Configure lo and eth0.
@@ -520,7 +502,7 @@ index 20fb6ab35..46c160977 100644
           << " mtu " << hostEth0MTU << " up\n";
  
    // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel
-@@ -3938,12 +3940,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    // when we receive a packet with a bad checksum. Disabling rx
    // checksum offloading ensures the TCP layer will checksum and drop
    // it.
@@ -537,7 +519,7 @@ index 20fb6ab35..46c160977 100644
  
    // Restrict the ephemeral ports that can be used by the container.
    script << "echo " << info->ephemeralPorts.lower() << " "
-@@ -3972,19 +3974,19 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    }
  
    // Set up filters on lo and eth0.
@@ -561,7 +543,7 @@ index 20fb6ab35..46c160977 100644
           << " protocol ip"
           << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
           << " flowid ffff:0"
-@@ -3995,7 +3997,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    foreach (const PortRange& range,
             getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) {
      // Local traffic inside a container will not be redirected to eth0.
@@ -570,7 +552,7 @@ index 20fb6ab35..46c160977 100644
             << " protocol ip"
             << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32"
             << " flowid ffff:0"
-@@ -4004,7 +4006,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
  
      // Traffic going to host loopback IP and ports assigned to this
      // container will be redirected to lo.
@@ -579,7 +561,7 @@ index 20fb6ab35..46c160977 100644
             << " protocol ip"
             << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
             << " flowid ffff:0"
-@@ -4016,14 +4018,14 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    }
  
    // Do not forward the ICMP packet if the destination IP is self.
@@ -596,8 +578,8 @@ index 20fb6ab35..46c160977 100644
           << " protocol ip"
           << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
           << " flowid ffff:0"
-@@ -4032,9 +4034,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-          << net::IPNetwork::LOOPBACK_V4().address() << "\n";
+@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+          << net::IP::Network::LOOPBACK_V4().address() << "\n";
  
    // Display the filters created on eth0 and lo.
 -  script << "tc filter show dev " << eth0
@@ -608,7 +590,7 @@ index 20fb6ab35..46c160977 100644
           << " parent " << ingress::HANDLE << "\n";
  
    // If throughput limit for container egress traffic exists, use HTB
-@@ -4046,9 +4048,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
    // throughput. TBF requires other parameters such as 'burst' that
    // HTB already has default values for.
    if (egressRateLimitPerContainer.isSome()) {
@@ -620,7 +602,7 @@ index 20fb6ab35..46c160977 100644
             << CONTAINER_TX_HTB_HANDLE << " classid "
             << CONTAINER_TX_HTB_CLASS_ID << " htb rate "
             << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n";
-@@ -4059,12 +4061,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
+@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
      // fq_codel, which has a larger buffer and better control on
      // buffer bloat.
      // TODO(cwang): Verity that fq_codel qdisc is available.
@@ -636,24 +618,24 @@ index 20fb6ab35..46c160977 100644
    }
  
    return script.str();
-diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.cpp b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-index db0583386..542586370 100644
---- a/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-+++ b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-@@ -540,7 +540,7 @@ private:
+diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+index eb23025..db268ea 100644
+--- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp
++++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+@@ -572,7 +572,7 @@ private:
      // NOTE: The supervisor childhook will watch the parent process and kill
      // the 'du' process in case that the parent die.
      Try<Subprocess> s = subprocess(
 -        "du",
 +        "@du@",
          command,
-         Subprocess::PATH("/dev/null"),
+         Subprocess::PATH(os::DEV_NULL),
          Subprocess::PIPE(),
-diff --git a/src/slave/containerizer/mesos/isolators/volume/image.cpp b/src/slave/containerizer/mesos/isolators/volume/image.cpp
-index 210e67ad0..60b3a15e4 100644
---- a/src/slave/containerizer/mesos/isolators/volume/image.cpp
-+++ b/src/slave/containerizer/mesos/isolators/volume/image.cpp
-@@ -214,7 +214,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare(
+diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp
+index 35966aa..b62fc86 100644
+--- i/src/slave/containerizer/mesos/isolators/volume/image.cpp
++++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp
+@@ -231,7 +231,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare(
  
      CommandInfo* command = launchInfo.add_pre_exec_commands();
      command->set_shell(false);
@@ -662,11 +644,11 @@ index 210e67ad0..60b3a15e4 100644
      command->add_arguments("mount");
      command->add_arguments("-n");
      command->add_arguments("--rbind");
-diff --git a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-index 7b976d292..474dcd486 100644
---- a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-+++ b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-@@ -240,7 +240,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare(
+diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
+index b321b86..8ed3e78 100644
+--- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
++++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
+@@ -265,7 +265,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare(
  
        CommandInfo* command = launchInfo.add_pre_exec_commands();
        command->set_shell(false);
@@ -675,58 +657,60 @@ index 7b976d292..474dcd486 100644
        command->add_arguments("mount");
        command->add_arguments("-n");
        command->add_arguments("--rbind");
-diff --git a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-index 9c5354e5f..a73a9692e 100644
---- a/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-+++ b/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-@@ -147,7 +147,7 @@ Future<Nothing> CopyBackendProcess::_provision(
+diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
+index 69faa03..01a3ed6 100644
+--- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
++++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
+@@ -266,7 +266,7 @@ Future<Nothing> CopyBackendProcess::_provision(
  #endif // __APPLE__ || __FreeBSD__
  
    Try<Subprocess> s = subprocess(
 -      "cp",
 +      "@cp@",
        args,
-       Subprocess::PATH("/dev/null"),
-       Subprocess::PATH("/dev/null"),
-@@ -180,7 +180,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs)
+       Subprocess::PATH(os::DEV_NULL),
+       Subprocess::PATH(os::DEV_NULL),
+@@ -313,7 +313,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs)
    vector<string> argv{"rm", "-rf", rootfs};
  
    Try<Subprocess> s = subprocess(
 -      "rm",
 +      "@rm@",
        argv,
-       Subprocess::PATH("/dev/null"),
+       Subprocess::PATH(os::DEV_NULL),
        Subprocess::FD(STDOUT_FILENO),
-diff --git a/src/uri/fetchers/copy.cpp b/src/uri/fetchers/copy.cpp
-index 2cfef5ab0..8a62f7699 100644
---- a/src/uri/fetchers/copy.cpp
-+++ b/src/uri/fetchers/copy.cpp
-@@ -97,7 +97,7 @@ Future<Nothing> CopyFetcherPlugin::fetch(
-   const vector<string> argv = {"cp", "-a", uri.path(), directory};
+diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp
+index 17f69be..831b08a 100644
+--- i/src/uri/fetchers/copy.cpp
++++ w/src/uri/fetchers/copy.cpp
+@@ -97,8 +97,8 @@ Future<Nothing> CopyFetcherPlugin::fetch(
+   VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'";
  
-   Try<Subprocess> s = subprocess(
--      "cp",
-+      "@cp@",
-       argv,
-       Subprocess::PATH("/dev/null"),
-       Subprocess::PIPE(),
-diff --git a/src/uri/fetchers/curl.cpp b/src/uri/fetchers/curl.cpp
-index 7b746d619..12bbb04df 100644
---- a/src/uri/fetchers/curl.cpp
-+++ b/src/uri/fetchers/curl.cpp
-@@ -107,7 +107,7 @@ Future<Nothing> CurlFetcherPlugin::fetch(
+ #ifndef __WINDOWS__
+-  const char* copyCommand = "cp";
+-  const vector<string> argv = {"cp", "-a", uri.path(), directory};
++  const char* copyCommand = "@cp@";
++  const vector<string> argv = {"@cp@", "-a", uri.path(), directory};
+ #else // __WINDOWS__
+   const char* copyCommand = os::Shell::name;
+   const vector<string> argv =
+diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp
+index f34daf2..6a50341 100644
+--- i/src/uri/fetchers/curl.cpp
++++ w/src/uri/fetchers/curl.cpp
+@@ -109,7 +109,7 @@ Future<Nothing> CurlFetcherPlugin::fetch(
    };
  
    Try<Subprocess> s = subprocess(
 -      "curl",
 +      "@curl@",
        argv,
-       Subprocess::PATH("/dev/null"),
+       Subprocess::PATH(os::DEV_NULL),
        Subprocess::PIPE(),
-diff --git a/src/uri/fetchers/docker.cpp b/src/uri/fetchers/docker.cpp
-index 3f38dddfb..fd991ee74 100644
---- a/src/uri/fetchers/docker.cpp
-+++ b/src/uri/fetchers/docker.cpp
+diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp
+index 91db13b..82a7fc4 100644
+--- i/src/uri/fetchers/docker.cpp
++++ w/src/uri/fetchers/docker.cpp
 @@ -114,7 +114,7 @@ static Future<http::Response> curl(
  
    // TODO(jieyu): Kill the process if discard is called.
@@ -734,14 +718,14 @@ index 3f38dddfb..fd991ee74 100644
 -      "curl",
 +      "@curl@",
        argv,
-       Subprocess::PATH("/dev/null"),
+       Subprocess::PATH(os::DEV_NULL),
        Subprocess::PIPE(),
-@@ -213,7 +213,7 @@ static Future<int> download(
+@@ -229,7 +229,7 @@ static Future<int> download(
  
    // TODO(jieyu): Kill the process if discard is called.
    Try<Subprocess> s = subprocess(
 -      "curl",
 +      "@curl@",
        argv,
-       Subprocess::PATH("/dev/null"),
+       Subprocess::PATH(os::DEV_NULL),
        Subprocess::PIPE(),

From d05b0b6b70e331145b2ee337a14e3b7672c562bc Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Sun, 24 Sep 2017 14:52:44 +0200
Subject: [PATCH 520/533] mesos test: fix python handling

Still does not succeed but advances further

(cherry picked from commit 30d09f717aa94a78105bff22da548b904887b394)
---
 nixos/tests/mesos.nix | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/nixos/tests/mesos.nix b/nixos/tests/mesos.nix
index 6e9af126f032..34671df047c8 100644
--- a/nixos/tests/mesos.nix
+++ b/nixos/tests/mesos.nix
@@ -56,9 +56,7 @@ import ./make-test.nix ({ pkgs, ...} : rec {
     src = ./mesos_test.py;
     phases = [ "installPhase" "fixupPhase" ];
     installPhase = ''
-      mkdir $out
-      cp $src $out/mesos_test.py
-      chmod +x $out/mesos_test.py
+      install -Dvm 0755 $src $out/bin/mesos_test.py
 
       echo "done" > test.result
       tar czf $out/test.tar.gz test.result
@@ -74,18 +72,18 @@ import ./make-test.nix ({ pkgs, ...} : rec {
       $master->waitForOpenPort(5050);
       $slave->waitForOpenPort(5051);
 
-      # is slave registred? 
+      # is slave registered?
       $master->waitUntilSucceeds("curl -s --fail http://master:5050/master/slaves".
                                  " | grep -q \"\\\"hostname\\\":\\\"slave\\\"\"");
 
-      # try to run docker image 
+      # try to run docker image
       $master->succeed("${pkgs.mesos}/bin/mesos-execute --master=master:5050".
                        " --resources=\"cpus:0.1;mem:32\" --name=simple-docker".
                        " --containerizer=mesos --docker_image=echo:latest".
                        " --shell=true --command=\"echo done\" | grep -q TASK_FINISHED");
 
       # simple command with .tar.gz uri
-      $master->succeed("${testFramework}/mesos_test.py master ".
+      $master->succeed("${testFramework}/bin/mesos_test.py master ".
                        "${testFramework}/test.tar.gz");
     '';
 })

From ddd13e13756ac74a592b38569263a675cf72ba39 Mon Sep 17 00:00:00 2001
From: volth <volth@webmaster.ms>
Date: Wed, 27 Sep 2017 23:16:02 +0000
Subject: [PATCH 521/533] nixos/tinc: add "restartTriggers" back

Add "restartTriggers" back to restart the Tinc daemon when its peer is removed.
Reverted #27660
---
 nixos/modules/services/networking/tinc.nix | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 0354e76d74fb..adb80ea29840 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -163,6 +163,12 @@ in
         wantedBy = [ "multi-user.target" ];
         after = [ "network.target" ];
         path = [ data.package ];
+        restartTriggers =
+          let
+            drvlist = [ config.environment.etc."tinc/${network}/tinc.conf".source ]
+                        ++ mapAttrsToList (host: _: config.environment.etc."tinc/${network}/hosts/${host}".source) data.hosts;
+          in # drvlist might be too long to be used directly
+            [ (builtins.hashString "sha256" (concatMapStrings (d: d.outPath) drvlist)) ];
         serviceConfig = {
           Type = "simple";
           Restart = "always";

From c6f513b56a30fe974ec9166c8e94c51c0ab6e097 Mon Sep 17 00:00:00 2001
From: Ryan Mulligan <ryan@ryantm.com>
Date: Wed, 27 Sep 2017 15:20:14 -0700
Subject: [PATCH 522/533] nixos/monit: install monit as system package, use
 default config file path

---
 nixos/modules/services/monitoring/monit.nix | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/services/monitoring/monit.nix b/nixos/modules/services/monitoring/monit.nix
index e07ffd2e8b54..71f50cc0f19d 100644
--- a/nixos/modules/services/monitoring/monit.nix
+++ b/nixos/modules/services/monitoring/monit.nix
@@ -17,20 +17,22 @@ in
       };
       config = mkOption {
         default = "";
-        description = "monit.conf content";
+        description = "monitrc content";
       };
     };
   };
 
   config = mkIf config.services.monit.enable {
 
+    environment.systemPackages = [ pkgs.monit ];
+
     environment.etc = [
       {
         source = pkgs.writeTextFile {
-          name = "monit.conf";
+          name = "monitrc";
           text = config.services.monit.config;
         };
-        target = "monit.conf";
+        target = "monitrc";
         mode = "0400";
       }
     ];
@@ -40,9 +42,9 @@ in
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
-        ExecStart = "${pkgs.monit}/bin/monit -I -c /etc/monit.conf";
-        ExecStop = "${pkgs.monit}/bin/monit -c /etc/monit.conf quit";
-        ExecReload = "${pkgs.monit}/bin/monit -c /etc/monit.conf reload";
+        ExecStart = "${pkgs.monit}/bin/monit -I -c /etc/monitrc";
+        ExecStop = "${pkgs.monit}/bin/monit -c /etc/monitrc quit";
+        ExecReload = "${pkgs.monit}/bin/monit -c /etc/monitrc reload";
         KillMode = "process";
         Restart = "always";
       };

From 589cff44bcfc7d69733b0b0af2f403b630388604 Mon Sep 17 00:00:00 2001
From: Joerg Thalheim <joerg@thalheim.io>
Date: Wed, 27 Sep 2017 23:13:31 +0100
Subject: [PATCH 523/533] bitcoin-abc: build against qt5

---
 pkgs/applications/altcoins/bitcoin-abc.nix        |  8 +++++---
 .../altcoins/fix-bitcoin-qt-build.patch           | 15 +++++++++++++++
 2 files changed, 20 insertions(+), 3 deletions(-)
 create mode 100644 pkgs/applications/altcoins/fix-bitcoin-qt-build.patch

diff --git a/pkgs/applications/altcoins/bitcoin-abc.nix b/pkgs/applications/altcoins/bitcoin-abc.nix
index a14cccd2fdc7..d3800062b119 100644
--- a/pkgs/applications/altcoins/bitcoin-abc.nix
+++ b/pkgs/applications/altcoins/bitcoin-abc.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db48, boost
-, zlib, miniupnpc, qt4, utillinux, protobuf, qrencode, libevent
+, zlib, miniupnpc, qt5, utillinux, protobuf, qrencode, libevent
 , withGui }:
 
 with stdenv.lib;
@@ -16,13 +16,15 @@ stdenv.mkDerivation rec {
     sha256 = "1fygn6cc99iasg5g5jyps5ps873hfnn4ln4hsmcwlwiqd591qxyv";
   };
 
+  patches = [ ./fix-bitcoin-qt-build.patch ];
+
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ openssl db48 boost zlib
                   miniupnpc utillinux protobuf libevent ]
-                  ++ optionals withGui [ qt4 qrencode ];
+                  ++ optionals withGui [ qt5.qtbase qt5.qttools qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
-                     ++ optionals withGui [ "--with-gui=qt4" ];
+                     ++ optionals withGui [ "--with-gui=qt5" ];
 
   meta = {
     description = "Peer-to-peer electronic cash system (Cash client)";
diff --git a/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch b/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch
new file mode 100644
index 000000000000..cbbfd85fe5bf
--- /dev/null
+++ b/pkgs/applications/altcoins/fix-bitcoin-qt-build.patch
@@ -0,0 +1,15 @@
+--- bitcoin-abc-v0.15.0-src/build-aux/m4/bitcoin_qt.m4	1970-01-01 01:00:01.000000000 +0100
++++ bitcoin-abc-v0.15.0-src.org/build-aux/m4/bitcoin_qt.m4	2017-09-27 23:38:44.748384197 +0100
+@@ -35,11 +35,7 @@
+ dnl Output: $1 is set to the path of $2 if found. $2 are searched in order.
+ AC_DEFUN([BITCOIN_QT_PATH_PROGS],[
+   BITCOIN_QT_CHECK([
+-    if test "x$3" != "x"; then
+-      AC_PATH_PROGS($1,$2,,$3)
+-    else
+-      AC_PATH_PROGS($1,$2)
+-    fi
++    AC_PATH_PROGS($1,$2)
+     if test "x$$1" = "x" && test "x$4" != "xyes"; then
+       BITCOIN_QT_FAIL([$1 not found])
+     fi

From d0435ba032473f89fad8b6425bb3feee3d6fd718 Mon Sep 17 00:00:00 2001
From: Franz Pletz <fpletz@fnordicwalking.de>
Date: Fri, 1 Sep 2017 06:24:37 +0200
Subject: [PATCH 524/533] network-interfaces: device routes for default gateway

Iff interface is set, it makes sense to add device route by default.
---
 .../tasks/network-interfaces-scripted.nix     | 20 +++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 3512296dff4a..e92c9bc27def 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -122,24 +122,32 @@ let
 
                 # Set the default gateway.
                 ${optionalString (cfg.defaultGateway != null && cfg.defaultGateway.address != "") ''
-                  # FIXME: get rid of "|| true" (necessary to make it idempotent).
-                  ip route add default ${optionalString (cfg.defaultGateway.metric != null)
+                  ${optionalString (cfg.defaultGateway.interface != null) ''
+                    ip route replace ${cfg.defaultGateway.address} dev ${cfg.defaultGateway.interface} ${optionalString (cfg.defaultGateway.metric != null)
+                      "metric ${toString cfg.defaultGateway.metric}"
+                    } proto static
+                  ''}
+                  ip route replace default ${optionalString (cfg.defaultGateway.metric != null)
                       "metric ${toString cfg.defaultGateway.metric}"
                     } via "${cfg.defaultGateway.address}" ${
                     optionalString (cfg.defaultGatewayWindowSize != null)
                       "window ${toString cfg.defaultGatewayWindowSize}"} ${
                     optionalString (cfg.defaultGateway.interface != null)
-                      "dev ${cfg.defaultGateway.interface}"} proto static || true
+                      "dev ${cfg.defaultGateway.interface}"} proto static
                 ''}
                 ${optionalString (cfg.defaultGateway6 != null && cfg.defaultGateway6.address != "") ''
-                  # FIXME: get rid of "|| true" (necessary to make it idempotent).
-                  ip -6 route add ::/0 ${optionalString (cfg.defaultGateway6.metric != null)
+                  ${optionalString (cfg.defaultGateway6.interface != null) ''
+                    ip -6 route replace ${cfg.defaultGateway6.address} dev ${cfg.defaultGateway6.interface} ${optionalString (cfg.defaultGateway6.metric != null)
+                      "metric ${toString cfg.defaultGateway6.metric}"
+                    } proto static
+                  ''}
+                  ip -6 route replace default ${optionalString (cfg.defaultGateway6.metric != null)
                       "metric ${toString cfg.defaultGateway6.metric}"
                     } via "${cfg.defaultGateway6.address}" ${
                     optionalString (cfg.defaultGatewayWindowSize != null)
                       "window ${toString cfg.defaultGatewayWindowSize}"} ${
                     optionalString (cfg.defaultGateway6.interface != null)
-                      "dev ${cfg.defaultGateway6.interface}"} proto static || true
+                      "dev ${cfg.defaultGateway6.interface}"} proto static
                 ''}
               '';
           };

From c766092193e44eda1a645080d737fda5c58fdd02 Mon Sep 17 00:00:00 2001
From: Nikolay Amiantov <ab@fmap.me>
Date: Thu, 28 Sep 2017 00:21:19 +0300
Subject: [PATCH 525/533] octoprint-plugins.m33-fio: 1.20 -> 1.21

---
 .../misc/octoprint/m33-fio-one-library.patch  | 29 ++++++++++++-------
 pkgs/applications/misc/octoprint/plugins.nix  |  4 +--
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/pkgs/applications/misc/octoprint/m33-fio-one-library.patch b/pkgs/applications/misc/octoprint/m33-fio-one-library.patch
index 87b00f3ab705..24c9c4a80f5d 100644
--- a/pkgs/applications/misc/octoprint/m33-fio-one-library.patch
+++ b/pkgs/applications/misc/octoprint/m33-fio-one-library.patch
@@ -1,18 +1,18 @@
-From 0defcf6ec155899c414f66524b7df629f59327f0 Mon Sep 17 00:00:00 2001
+From 314bcebfcd1759981ce12255be29d8ae68cd400b Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Wed, 23 Nov 2016 00:40:48 +0300
 Subject: [PATCH] Build and use one version of preprocessor library
 
 ---
- octoprint_m33fio/__init__.py   | 67 ++----------------------------------------
- shared library source/Makefile | 62 +++-----------------------------------
- 2 files changed, 6 insertions(+), 123 deletions(-)
+ octoprint_m33fio/__init__.py   | 73 ++----------------------------------------
+ shared library source/Makefile | 62 +++--------------------------------
+ 2 files changed, 6 insertions(+), 129 deletions(-)
 
 diff --git a/octoprint_m33fio/__init__.py b/octoprint_m33fio/__init__.py
-index 4b43c59..d1259e4 100755
+index 054870a..4d5ecc1 100755
 --- a/octoprint_m33fio/__init__.py
 +++ b/octoprint_m33fio/__init__.py
-@@ -1062,71 +1062,8 @@ class M33FioPlugin(
+@@ -1189,78 +1189,9 @@ class M33FioPlugin(
  		# Check if using shared library or checking if it is usable
  		if self._settings.get_boolean(["UseSharedLibrary"]) or isUsable :
  	
@@ -54,7 +54,9 @@ index 4b43c59..d1259e4 100755
 -
 -			# Otherwise check if running on Windows and using an i386 or x86-64 device
 -			elif platform.uname()[0].startswith("Windows") and (platform.uname()[4].endswith("86") or platform.uname()[4].endswith("64")) :
--
++			# Set shared library
++			self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/libpreprocessor.so")
+ 
 -				# Check if Python is running as 32-bit
 -				if platform.architecture()[0].startswith("32") :
 -	
@@ -81,11 +83,16 @@ index 4b43c59..d1259e4 100755
 -	
 -					# Set shared library
 -					self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace("\\", "/") + "/static/libraries/preprocessor_x86-64.dylib")
-+			# Set shared library
-+			self.sharedLibrary = ctypes.cdll.LoadLibrary(self._basefolder.replace('\\', '/') + "/static/libraries/libpreprocessor.so")
- 
+-			
+-			# Otherwise check if running FreeBSD
+-			elif platform.uname()[0].startswith("FreeBSD") :
+-			
+-				# TODO: Compile FreeBSD shared library pre-processors
+-				pass
+-			
  			# Check if shared library was set
  			if self.sharedLibrary :
+ 
 diff --git a/shared library source/Makefile b/shared library source/Makefile
 index 792b4f4..4c74f5c 100755
 --- a/shared library source/Makefile	
@@ -164,5 +171,5 @@ index 792b4f4..4c74f5c 100755
  clean:
  	rm -f ../octoprint_m33fio/static/libraries/$(PROG)
 -- 
-2.11.0
+2.14.1
 
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index c09e8d2f5e66..0a1d26012a80 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -12,13 +12,13 @@ let
 
     m33-fio = buildPlugin rec {
       name = "M33-Fio-${version}";
-      version = "1.20";
+      version = "1.21";
 
       src = fetchFromGitHub {
         owner = "donovan6000";
         repo = "M33-Fio";
         rev = "V${version}";
-        sha256 = "1ng7lzlkqsjcr1w7wgzwsqkkvcvpajcj2cwqlffh95916sw8n767";
+        sha256 = "1la3611kkqn8yiwjn6cizc45ri8pnk6ckld1na4nk6mqk88jvjq7";
       };
 
       patches = [

From 35c15d4a61be8e9fb56410077c16dfb092e4ae1b Mon Sep 17 00:00:00 2001
From: Joachim Fasting <joachifm@fastmail.fm>
Date: Thu, 28 Sep 2017 00:43:12 +0200
Subject: [PATCH 526/533] tinycc: 0.9.27pre-20170911 -> 0.9.27pre-20170924

Improves `long` handling
---
 pkgs/development/compilers/tinycc/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/compilers/tinycc/default.nix b/pkgs/development/compilers/tinycc/default.nix
index 8e56c1ee50b3..4d6555213345 100644
--- a/pkgs/development/compilers/tinycc/default.nix
+++ b/pkgs/development/compilers/tinycc/default.nix
@@ -2,9 +2,9 @@
 with stdenv.lib;
 
 let
-  date = "20170911";
-  rev = "870271ea071971002fa556e09e1873db316fa1a9";
-  sha256 = "1a9djm0p7cd5nzqdhch9y48c4wai76x6d4nwx0bj5jz46ws39bs9";
+  date = "20170924";
+  rev = "1443039416dd02750765efde1af35e31c8d41be3";
+  sha256 = "060l0f77hirq3i5bg294gxcszlvyn89ds2q21jwgy3ryrapfbl8i";
   version = "0.9.27pre-${date}";
 in
 

From c57e5d1aa9a90e86d02812970670513839b14313 Mon Sep 17 00:00:00 2001
From: Robin Gloster <mail@glob.in>
Date: Thu, 28 Sep 2017 04:16:32 +0200
Subject: [PATCH 527/533] elasticsearch: use jre_headless

---
 pkgs/servers/search/elasticsearch/5.x.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/servers/search/elasticsearch/5.x.nix b/pkgs/servers/search/elasticsearch/5.x.nix
index cfa471f217ee..fb988b546308 100644
--- a/pkgs/servers/search/elasticsearch/5.x.nix
+++ b/pkgs/servers/search/elasticsearch/5.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, elk5Version, makeWrapper, jre, utillinux, getopt }:
+{ stdenv, fetchurl, elk5Version, makeWrapper, jre_headless, utillinux, getopt }:
 
 with stdenv.lib;
 
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./es-home-5.x.patch ./es-classpath-5.x.patch ];
 
-  buildInputs = [ makeWrapper jre ] ++
+  buildInputs = [ makeWrapper jre_headless ] ++
     (if (!stdenv.isDarwin) then [utillinux] else [getopt]);
 
   installPhase = ''
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
       ${if (!stdenv.isDarwin)
         then ''--prefix PATH : "${utillinux}/bin/"''
         else ''--prefix PATH : "${getopt}/bin"''} \
-      --set JAVA_HOME "${jre}" \
+      --set JAVA_HOME "${jre_headless}" \
       --set ES_JVM_OPTIONS "$out/config/jvm.options"
 
-    wrapProgram $out/bin/elasticsearch-plugin --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/elasticsearch-plugin --set JAVA_HOME "${jre_headless}"
   '';
 
   meta = {

From 0978d59c763bfbf237e321b7df794e463316b447 Mon Sep 17 00:00:00 2001
From: Orivej Desh <orivej@gmx.fr>
Date: Thu, 28 Sep 2017 03:59:18 +0000
Subject: [PATCH 528/533] urweb: do not use removed postgres.dev output

postgres.dev output was reverted by 6b05651c20fd0d73b11f8ab1f4ca984c1fd9fce8
---
 pkgs/development/compilers/urweb/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/development/compilers/urweb/default.nix b/pkgs/development/compilers/urweb/default.nix
index bb8cb5f17461..74ca5dc4c4b0 100644
--- a/pkgs/development/compilers/urweb/default.nix
+++ b/pkgs/development/compilers/urweb/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = "--with-openssl=${openssl.dev}";
 
   preConfigure = ''
-    export PGHEADER="${postgresql.dev}/include/libpq-fe.h";
+    export PGHEADER="${postgresql}/include/libpq-fe.h";
     export MSHEADER="${lib.getDev mysql.client}/include/mysql/mysql.h";
     export SQHEADER="${sqlite.dev}/include/sqlite3.h";
 

From 56d1a14419cceca3c448c384ce7a98909987f6db Mon Sep 17 00:00:00 2001
From: Cray Elliott <MP2E@archlinux.us>
Date: Thu, 28 Sep 2017 00:01:37 -0700
Subject: [PATCH 529/533] nvidia-x11: 384.69 -> 384.90

---
 pkgs/os-specific/linux/nvidia-x11/default.nix | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 22ceb1b2378b..ba9b332e6d71 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -6,11 +6,11 @@ in
 {
   # Policy: use the highest stable version as the default (on our master).
   stable = generic {
-    version = "384.69";
-    sha256_32bit = "1zgq9vji0ndadvql3bsnd0a6p7pq0vr8d0yb5c8b22i2h9smhw1v";
-    sha256_64bit = "0l3np6cx2rnb2q89zbnq4lvfcjl2g7i56hxwcb11ggijqm7ridx7";
-    settingsSha256 = "064va75p7dnkhy4hyi9b1gl4wjmrpjksg4cyiwl6n3lkmjnvmnwy";
-    persistencedSha256 = "0ijq25gnihw34qhkba62l5fy6lwkma94i0fxp8084byyilm3fwms";
+    version = "384.90";
+    sha256_32bit = "0mq0h7g56m9zvr42ipy2664ph922754l0pdp8wpsmzfpkzg6g9lp";
+    sha256_64bit = "1ggylpzw1j217w64rspw4fhvq25wz0la0hhy0b1kxjpwy8h6ipqd";
+    settingsSha256 = "023jfbsxsbkjk78i9i6wd0sybv5hib2d7mfvy635w3anjcrsk5il";
+    persistencedSha256 = "166ya8pnv4frvrsp0x5zkg8li85vipags03wy6dlf8s940al92z2";
   };
 
   beta = generic {

From ac7673e2faa70245197ca125a42204e8dc184e25 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Tue, 26 Sep 2017 19:31:13 +0200
Subject: [PATCH 530/533] python.pkgs.pyblake2: init at 0.9.3

---
 .../python-modules/pyblake2/default.nix       | 24 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            |  2 ++
 2 files changed, 26 insertions(+)
 create mode 100644 pkgs/development/python-modules/pyblake2/default.nix

diff --git a/pkgs/development/python-modules/pyblake2/default.nix b/pkgs/development/python-modules/pyblake2/default.nix
new file mode 100644
index 000000000000..4e166dcb1837
--- /dev/null
+++ b/pkgs/development/python-modules/pyblake2/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyblake2";
+  version = "0.9.3";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "626448e1fe1cc01d2197118954bec9f158378577e12686d5b01979f7f0fa2212";
+  };
+
+  # requires setting up sphinx doctest
+  doCheck = false;
+
+  meta = {
+    description = "BLAKE2 hash function extension module";
+    license = lib.licenses.publicDomain;
+    homepage = https://github.com/dchest/pyblake2;
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 70c334dda0b8..b0835ad5c1ca 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -7156,6 +7156,8 @@ in {
 
   pycassa = callPackage ../development/python-modules/pycassa { };
 
+  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+
   pybluez = buildPythonPackage rec {
     version = "unstable-20160819";
     pname = "pybluez";

From 1bf5fcad248607008c7d170ad41964bfe0b8476a Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Tue, 26 Sep 2017 19:31:57 +0200
Subject: [PATCH 531/533] python.pkgs.requests-toolbelt: 0.7.1 -> 0.8.0

---
 .../requests-toolbelt/default.nix             | 32 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            | 22 ++-----------
 2 files changed, 34 insertions(+), 20 deletions(-)
 create mode 100644 pkgs/development/python-modules/requests-toolbelt/default.nix

diff --git a/pkgs/development/python-modules/requests-toolbelt/default.nix b/pkgs/development/python-modules/requests-toolbelt/default.nix
new file mode 100644
index 000000000000..e7834e62b829
--- /dev/null
+++ b/pkgs/development/python-modules/requests-toolbelt/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, requests
+, betamax
+, mock
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "requests-toolbelt";
+  version = "0.8.0";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5";
+  };
+
+  checkInputs = [ betamax mock pytest ];
+  propagatedBuildInputs = [ requests ];
+
+  checkPhase = ''
+    py.test tests
+  '';
+
+  meta = {
+    description = "A toolbelt of useful classes and functions to be used with python-requests";
+    homepage = http://toolbelt.rtfd.org;
+    maintainers = with lib.maintainers; [ matthiasbeyer jgeerds ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index b0835ad5c1ca..432cf5ea5261 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -18430,26 +18430,8 @@ in {
 
   requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib.nix { };
 
-  requests_toolbelt = buildPythonPackage rec {
-    version = "0.7.1";
-    name = "requests-toolbelt-${version}";
-
-    src = pkgs.fetchurl {
-      url = "https://github.com/sigmavirus24/requests-toolbelt/archive/${version}.tar.gz";
-      sha256 = "16grklnbgcfwqj3f39gw7fc9afi7xlp9gm7x8w6mi81dzhdxf50y";
-    };
-
-    propagatedBuildInputs = with self; [ requests ];
-
-    buildInputs = with self; [ betamax mock pytest ];
-
-    meta = {
-      description = "A toolbelt of useful classes and functions to be used with python-requests";
-      homepage = http://toolbelt.rtfd.org;
-      maintainers = with maintainers; [ matthiasbeyer jgeerds ];
-    };
-
-  };
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
+  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
 
   retry_decorator = buildPythonPackage rec {
     name = "retry_decorator-1.0.0";

From a6d2058e4897fe5541875f8c8678c9768ead1db2 Mon Sep 17 00:00:00 2001
From: Frederik Rietdijk <fridh@fridh.nl>
Date: Tue, 26 Sep 2017 19:32:15 +0200
Subject: [PATCH 532/533] python.pkgs.twine: 1.8.1 -> 1.9.1

---
 .../python-modules/twine/default.nix          | 32 +++++++++++++++++++
 pkgs/top-level/python-packages.nix            | 22 +------------
 2 files changed, 33 insertions(+), 21 deletions(-)
 create mode 100644 pkgs/development/python-modules/twine/default.nix

diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
new file mode 100644
index 000000000000..a3f0df8ca2ce
--- /dev/null
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pkginfo
+, requests
+, requests_toolbelt
+, tqdm
+, pyblake2
+}:
+
+buildPythonPackage rec {
+  pname = "twine";
+  version = "1.9.1";
+  name = "${pname}-${version}";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "caa45b7987fc96321258cd7668e3be2ff34064f5c66d2d975b641adca659c1ab";
+  };
+
+  propagatedBuildInputs = [ pkginfo requests requests_toolbelt tqdm pyblake2 ];
+
+  # Requires network
+  doCheck = false;
+
+  meta = {
+    description = "Collection of utilities for interacting with PyPI";
+    homepage = https://github.com/pypa/twine;
+    license = lib.licenses.asl20;
+    maintainer = with lib.maintainers; [ fridh ];
+  };
+}
\ No newline at end of file
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 432cf5ea5261..27d41c059ad9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -21928,27 +21928,7 @@ in {
     };
   };
 
-  twine = buildPythonPackage rec {
-    name = "twine-${version}";
-    version = "1.8.1";
-
-    src = pkgs.fetchurl {
-      url    = "mirror://pypi/t/twine/${name}.tar.gz";
-      sha256 = "68b663691a947b844f92853c992d42bb68b6333bffc9ab7f661346b001c1da82";
-    };
-
-    propagatedBuildInputs = with self; [ clint pkginfo requests requests_toolbelt ];
-
-    # Requires network
-    doCheck = false;
-
-    meta = {
-      description = "Collection of utilities for interacting with PyPI";
-      homepage = https://github.com/pypa/twine;
-      license = licenses.asl20;
-      maintainer = with maintainers; [ fridh ];
-    };
-  };
+  twine = callPackage ../development/python-modules/twine { };
 
   twisted = callPackage ../development/python-modules/twisted { };
 

From 82667fee37e306deb20cf7abdfe9ed0b896a7183 Mon Sep 17 00:00:00 2001
From: Sukant Hajra <rrudbskr5g@snkmail.com>
Date: Thu, 28 Sep 2017 02:09:16 -0500
Subject: [PATCH 533/533] hdf5: remove references to stdenv.cc

The build provides as text a summary of the build, including the
absolute path of the compiler used for compilation.  Unfortunately, this
pulls in stdenv.cc as a transitive closure.

So this change just calls remove-references-to as a postInstall step for
the one stdenv.cc dependency.

See #29889 for details.
---
 pkgs/tools/misc/hdf5/default.nix | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index eb29e7d914c5..257ade407279 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchurl
+, gcc
+, removeReferencesTo
 , cpp ? false
 , gfortran ? null
 , zlib ? null
@@ -30,6 +32,8 @@ stdenv.mkDerivation rec {
     inherit mpi;
   };
 
+  nativeBuildInputs = [ removeReferencesTo ];
+
   buildInputs = []
     ++ optional (gfortran != null) gfortran
     ++ optional (szip != null) szip;
@@ -47,6 +51,10 @@ stdenv.mkDerivation rec {
 
   patches = [./bin-mv.patch];
 
+  postInstall = ''
+    find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+  '';
+
   meta = {
     description = "Data model, library, and file format for storing and managing data";
     longDescription = ''