about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2018-09-08 22:08:32 +0000
committerJan Malakhovski <oxij@oxij.org>2018-09-08 22:08:32 +0000
commitb7bd0561be4e95edd69a5b42d5aedc5e909db01f (patch)
treebd82469f1c93ce6d4d03c0b0e8ad0c32b0251e24 /pkgs/tools
parent16650af8c34e468cee61d6826c72cbc79eb114c2 (diff)
parentfb0e0dcbc65a7b54bcf98b37b16b06412f0b042f (diff)
downloadnixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.gz
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.bz2
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.lz
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.xz
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.zst
nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.zip
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/X11/nitrogen/default.nix2
-rw-r--r--pkgs/tools/X11/x2x/default.nix8
-rw-r--r--pkgs/tools/X11/xvkbd/default.nix2
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix6
-rw-r--r--pkgs/tools/backup/restic/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/bchunk/default.nix1
-rw-r--r--pkgs/tools/cd-dvd/cdrdao/default.nix5
-rw-r--r--pkgs/tools/cd-dvd/lsdvd/default.nix5
-rw-r--r--pkgs/tools/compression/pigz/default.nix5
-rw-r--r--pkgs/tools/compression/zdelta/default.nix5
-rw-r--r--pkgs/tools/filesystems/bashmount/default.nix1
-rw-r--r--pkgs/tools/filesystems/curlftpfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/fatresize/default.nix19
-rw-r--r--pkgs/tools/filesystems/jfsutils/default.nix6
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix6
-rw-r--r--pkgs/tools/filesystems/mtpfs/default.nix7
-rw-r--r--pkgs/tools/filesystems/nilfs-utils/default.nix11
-rw-r--r--pkgs/tools/filesystems/reiser4progs/default.nix7
-rw-r--r--pkgs/tools/filesystems/relfs/default.nix8
-rw-r--r--pkgs/tools/filesystems/wdfs/default.nix6
-rw-r--r--pkgs/tools/misc/calamares/default.nix4
-rw-r--r--pkgs/tools/misc/execline/default.nix42
-rw-r--r--pkgs/tools/misc/kdecoration-viewer/default.nix6
-rw-r--r--pkgs/tools/misc/noti/default.nix38
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/s6-portable-utils/default.nix44
-rw-r--r--pkgs/tools/misc/smenu/default.nix4
-rw-r--r--pkgs/tools/misc/woeusb/default.nix4
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix14
-rw-r--r--pkgs/tools/networking/netselect/default.nix12
-rw-r--r--pkgs/tools/networking/prettyping/default.nix25
-rw-r--r--pkgs/tools/networking/s6-dns/default.nix42
-rw-r--r--pkgs/tools/networking/s6-networking/default.nix42
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--pkgs/tools/networking/x11-ssh-askpass/default.nix13
-rw-r--r--pkgs/tools/package-management/cargo-download/Cargo.nix3138
-rw-r--r--pkgs/tools/package-management/cargo-download/default.nix11
-rw-r--r--pkgs/tools/package-management/clib/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix11
-rw-r--r--pkgs/tools/security/monkeysphere/default.nix57
-rw-r--r--pkgs/tools/security/monkeysphere/monkeysphere.patch100
-rw-r--r--pkgs/tools/system/s6-rc/default.nix42
-rw-r--r--pkgs/tools/system/s6/default.nix43
-rw-r--r--pkgs/tools/text/ripgrep/default.nix15
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine.nix2
-rw-r--r--pkgs/tools/virtualization/euca2ools/default.nix2
46 files changed, 3479 insertions, 364 deletions
diff --git a/pkgs/tools/X11/nitrogen/default.nix b/pkgs/tools/X11/nitrogen/default.nix
index f53ab38672bd..eda5703d6a86 100644
--- a/pkgs/tools/X11/nitrogen/default.nix
+++ b/pkgs/tools/X11/nitrogen/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       multi-head with Xinerama. Wallpapers are browsable with a convenient GUI,
       and settings are stored in a human-readable config file.
     '';
-    homepage = http://projects.l3ib.org/nitrogen/;
+    homepage = https://github.com/l3ib/nitrogen;
     license = stdenv.lib.licenses.gpl2;
     platforms = stdenv.lib.platforms.linux;
     maintainers = [ stdenv.lib.maintainers.auntie ];
diff --git a/pkgs/tools/X11/x2x/default.nix b/pkgs/tools/X11/x2x/default.nix
index dd529011557a..24cf4f6b2e16 100644
--- a/pkgs/tools/X11/x2x/default.nix
+++ b/pkgs/tools/X11/x2x/default.nix
@@ -24,10 +24,10 @@ stdenv.mkDerivation {
     cp x2x.1 $out/man/man1/
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Allows the keyboard, mouse on one X display to be used to control another X display";
-    homepage = http://x2x.dottedmag.net;
-    license = "BSD";
-    platforms = stdenv.lib.platforms.linux;
+    homepage = https://github.com/dottedmag/x2x;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/X11/xvkbd/default.nix b/pkgs/tools/X11/xvkbd/default.nix
index 7221555ed33f..06824f882a44 100644
--- a/pkgs/tools/X11/xvkbd/default.nix
+++ b/pkgs/tools/X11/xvkbd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
       facility to enter characters onto other clients (softwares) by clicking on a
       keyboard displayed on the screen.
     '';
-    homepage = http://homepage3.nifty.com/tsato/xvkbd/;
+    homepage = http://t-sato.in.coocan.jp/xvkbd;
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.bennofs ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index 8b98636b3475..016ea957f6c7 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -19,18 +19,18 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0fdcd5d63e231443b9e032de4e2c2be9e4f1c766a25054ad93410f5213e45645";
+      sha256 = "1d5z575vw07jk7528bsqgdd875b3zwayrdnidvxpd2n8j4bip654";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "d39293914b2e969bfe18dd19eb77ba96d283995f8cf1e5d7ba6ac712a3c9479a";
+      sha256 = "0ljslvp68ml5mglrl7kakgkqskbzglf3i5jv5d7jld28d0kbzj2c";
     };
   }.${system};
 
 in stdenv.mkDerivation rec {
   name = "google-cloud-sdk-${version}";
-  version = "206.0.0";
+  version = "215.0.0";
 
   src = fetchurl (sources name stdenv.hostPlatform.system);
 
diff --git a/pkgs/tools/backup/restic/default.nix b/pkgs/tools/backup/restic/default.nix
index feb7b4802630..453e31f5d13a 100644
--- a/pkgs/tools/backup/restic/default.nix
+++ b/pkgs/tools/backup/restic/default.nix
@@ -27,7 +27,7 @@ buildGoPackage rec {
     cp restic $bin/bin/
     $bin/bin/restic generate \
       --bash-completion $bin/etc/bash_completion.d/restic.sh \
-      --zsh-completion $bin/share/zsh/vendor-completions/restic.sh \
+      --zsh-completion $bin/share/zsh/vendor-completions/_restic \
       --man $bin/share/man/man1
   '';
 
diff --git a/pkgs/tools/cd-dvd/bchunk/default.nix b/pkgs/tools/cd-dvd/bchunk/default.nix
index 6828ef7d61d3..aa47edcb96c4 100644
--- a/pkgs/tools/cd-dvd/bchunk/default.nix
+++ b/pkgs/tools/cd-dvd/bchunk/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = http://he.fi/bchunk/;
     description = "A program that converts CD images in BIN/CUE format into a set of ISO and CDR tracks";
     platforms = platforms.unix;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/cd-dvd/cdrdao/default.nix b/pkgs/tools/cd-dvd/cdrdao/default.nix
index 25d94593f5ef..a17b03025032 100644
--- a/pkgs/tools/cd-dvd/cdrdao/default.nix
+++ b/pkgs/tools/cd-dvd/cdrdao/default.nix
@@ -28,9 +28,10 @@ stdenv.mkDerivation {
   # Needed on gcc >= 6.
   NIX_CFLAGS_COMPILE = "-Wno-narrowing";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A tool for recording audio or data CD-Rs in disk-at-once (DAO) mode";
     homepage = http://cdrdao.sourceforge.net/;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/cd-dvd/lsdvd/default.nix b/pkgs/tools/cd-dvd/lsdvd/default.nix
index 6a3f92a57c2d..56ec8e19f54e 100644
--- a/pkgs/tools/cd-dvd/lsdvd/default.nix
+++ b/pkgs/tools/cd-dvd/lsdvd/default.nix
@@ -13,9 +13,10 @@ stdenv.mkDerivation {
   buildInputs = [ libdvdread ];
   nativeBuildInputs = [ pkgconfig ];
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://sourceforge.net/projects/lsdvd/;
     description = "Display information about audio, video, and subtitle tracks on a DVD";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/compression/pigz/default.nix b/pkgs/tools/compression/pigz/default.nix
index a2668f73ceb2..7d4cdc2df86d 100644
--- a/pkgs/tools/compression/pigz/default.nix
+++ b/pkgs/tools/compression/pigz/default.nix
@@ -28,9 +28,10 @@ stdenv.mkDerivation {
       install -Dm755 pigz.pdf "$out/share/doc/pigz/pigz.pdf"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.zlib.net/pigz/;
     description = "A parallel implementation of gzip for multi-core machines";
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.zlib;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/compression/zdelta/default.nix b/pkgs/tools/compression/zdelta/default.nix
index 01050c5ee821..20748c31ab81 100644
--- a/pkgs/tools/compression/zdelta/default.nix
+++ b/pkgs/tools/compression/zdelta/default.nix
@@ -8,8 +8,9 @@ stdenv.mkDerivation rec {
     sha256 = "0k6y0r9kv5qiglnr2j4a0yvfynjkvm0pyv8ly28j0pr3w6rbxrh3";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
 	  homepage = http://cis.poly.edu/zdelta;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.zlib;
   };
 }
diff --git a/pkgs/tools/filesystems/bashmount/default.nix b/pkgs/tools/filesystems/bashmount/default.nix
index 579258f63f98..cd0f3ea23229 100644
--- a/pkgs/tools/filesystems/bashmount/default.nix
+++ b/pkgs/tools/filesystems/bashmount/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     homepage = https://github.com/jamielinux/bashmount;
     description = "A menu-driven bash script for the management of removable media with udisks";
     maintainers = [ maintainers.koral ];
+    license = licenses.gpl2;
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/filesystems/curlftpfs/default.nix b/pkgs/tools/filesystems/curlftpfs/default.nix
index 4af7c9fb8c26..5636909093e6 100644
--- a/pkgs/tools/filesystems/curlftpfs/default.nix
+++ b/pkgs/tools/filesystems/curlftpfs/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation {
 
   doCheck = false; # fails, doesn't work well too, btw
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "Filesystem for accessing FTP hosts based on FUSE and libcurl";
+    homepage = http://curlftpfs.sourceforge.net;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+
   };
 }
diff --git a/pkgs/tools/filesystems/fatresize/default.nix b/pkgs/tools/filesystems/fatresize/default.nix
index 9af14b051261..7bb5dd415a6a 100644
--- a/pkgs/tools/filesystems/fatresize/default.nix
+++ b/pkgs/tools/filesystems/fatresize/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, parted, utillinux }:
 
 stdenv.mkDerivation rec {
-  
+
   version = "1.0.2";
   name = "fatresize-${version}";
 
@@ -9,31 +9,32 @@ stdenv.mkDerivation rec {
     url = "mirror://sourceforge/fatresize/fatresize-${version}.tar.bz2";
     sha256 = "04wp48jpdvq4nn0dgbw5za07g842rnxlh9mig4mslz70zqs0izjm";
   };
-  
+
   buildInputs = [ parted utillinux ];
-  
+
   # This patch helps this unmantained piece of software to be built against recent parted
   # It basically modifies the detection scheme for parted version (the current one has no micro version defined)
   # The second change is to include a header for a moved function since 1.6+ to current 3.1+ parted
   # The third change is to modify the call to PED_ASSERT that is no longer defined with 2 params
   patches = [ ./fatresize_parted_nix.patch ];
-  
+
   preConfigure = ''
     echo "Replacing calls to ped_free with free ..."
     substituteInPlace ./fatresize.c --replace ped_free free
   '';
-  
+
   # Filesystem resize functions were reintroduced in parted 3.1 due to no other available free alternatives
   # but in a sepparate library -> libparted-fs-resize --- that's why the added LDFLAG
   makeFlags = ''
     LDFLAGS=-lparted-fs-resize
   '';
-  
+
   propagatedBuildInputs = [ parted utillinux ];
-  
-  meta = {
+
+  meta = with stdenv.lib; {
     description = "The FAT16/FAT32 non-destructive resizer";
     homepage = https://sourceforge.net/projects/fatresize;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/pkgs/tools/filesystems/jfsutils/default.nix b/pkgs/tools/filesystems/jfsutils/default.nix
index 244f3e294a86..acc7a91d93f5 100644
--- a/pkgs/tools/filesystems/jfsutils/default.nix
+++ b/pkgs/tools/filesystems/jfsutils/default.nix
@@ -12,8 +12,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libuuid ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "IBM JFS utilities";
-    platforms = stdenv.lib.platforms.linux;
+    homepage = http://jfs.sourceforge.net;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index e7a9963f6501..f153e59019e3 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -17,10 +17,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = http://www.gnu.org/software/mtools/;
     description = "Utilities to access MS-DOS disks";
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ ];
+    platforms = platforms.unix;
+    license = licenses.gpl3;
   };
 }
diff --git a/pkgs/tools/filesystems/mtpfs/default.nix b/pkgs/tools/filesystems/mtpfs/default.nix
index afe51caa8772..bf048113714f 100644
--- a/pkgs/tools/filesystems/mtpfs/default.nix
+++ b/pkgs/tools/filesystems/mtpfs/default.nix
@@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
     sha256 = "07acrqb17kpif2xcsqfqh5j4axvsa4rnh6xwnpqab5b9w5ykbbqv";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/cjd/mtpfs;
     description = "FUSE Filesystem providing access to MTP devices";
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [ stdenv.lib.maintainers.qknight ];
+    platforms = platforms.all;
+    license = licenses.gpl3;
+    maintainers = [ maintainers.qknight ];
   };
 }
diff --git a/pkgs/tools/filesystems/nilfs-utils/default.nix b/pkgs/tools/filesystems/nilfs-utils/default.nix
index 6b56a8aadfa0..eccd72ceb238 100644
--- a/pkgs/tools/filesystems/nilfs-utils/default.nix
+++ b/pkgs/tools/filesystems/nilfs-utils/default.nix
@@ -46,14 +46,11 @@ stdenv.mkDerivation rec {
     find . -name .libs | xargs rm -rf
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "NILFS utilities";
-    maintainers = with stdenv.lib.maintainers;
-    [
-      raskin
-    ];
-    platforms = with stdenv.lib.platforms;
-      linux;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
+    license =  with licenses; [ gpl2 lgpl21 ];
     downloadPage = "http://nilfs.sourceforge.net/en/download.html";
     updateWalker = true;
   };
diff --git a/pkgs/tools/filesystems/reiser4progs/default.nix b/pkgs/tools/filesystems/reiser4progs/default.nix
index 59d8e8aa4389..967a8ee43bef 100644
--- a/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -21,10 +21,11 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace ./run-ldconfig true
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     inherit version;
-    homepage = http://www.namesys.com/;
+    homepage = https://sourceforge.net/projects/reiser4/;
     description = "Reiser4 utilities";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/filesystems/relfs/default.nix b/pkgs/tools/filesystems/relfs/default.nix
index 9a8c3ecb0fc8..04a15dfa22be 100644
--- a/pkgs/tools/filesystems/relfs/default.nix
+++ b/pkgs/tools/filesystems/relfs/default.nix
@@ -40,10 +40,12 @@ stdenv.mkDerivation rec {
 		chmod a+x \$out/bin/relfs_grant;
   '';
 
-	meta = {
+	meta = with stdenv.lib; {
 		description = "A relational filesystem on top of FUSE";
-    maintainers = [stdenv.lib.maintainers.raskin];
-		platforms = stdenv.lib.platforms.linux;
+    homepage = http://relfs.sourceforge.net;
+    license = licenses.gpl2;
+    maintainers = [ maintainers.raskin ];
+    platforms = platforms.linux;
     broken = true;
 	};
 }
diff --git a/pkgs/tools/filesystems/wdfs/default.nix b/pkgs/tools/filesystems/wdfs/default.nix
index dc725b5078f0..135373e09f42 100644
--- a/pkgs/tools/filesystems/wdfs/default.nix
+++ b/pkgs/tools/filesystems/wdfs/default.nix
@@ -9,9 +9,11 @@ stdenv.mkDerivation rec
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [fuse glib neon];
-  meta = {
+
+  meta = with stdenv.lib; {
     homepage = http://noedler.de/projekte/wdfs/;
+    license = licenses.gpl2;
     description = "User-space filesystem that allows to mount a webdav share";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index e154e217e951..c799b08bd446 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -7,12 +7,12 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "calamares";
-  version = "3.2.1";
+  version = "3.2.2";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "06i1fivcdzdf6fzj4db3izqcgy5q4wwgsmlx24szi88rd2j6prx9";
+    sha256 = "14hsv2m0jza33kf68l3rhqfjj7224fmvgvk1kg2qwhvplpjdn16v";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index 360808f4280b..f0dc3ab64604 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -1,27 +1,18 @@
-{ stdenv, fetchgit, skalibs }:
+{ stdenv, skawarePackages }:
 
-let
+with skawarePackages;
 
-  version = "2.5.0.0";
+buildPackage {
+  pname = "execline";
+  version = "2.5.0.1";
+  sha256 = "0j8hwdw8wn0rv8njdza8fbgmvyjg7hqp3qlbw00i7fwskr7d21wd";
 
-in stdenv.mkDerivation rec {
-
-  name = "execline-${version}";
-
-  src = fetchgit {
-    url = "git://git.skarnet.org/execline";
-    rev = "refs/tags/v${version}";
-    sha256 = "19vd8252g5bmzm4i9gybpj7i2mhsflcgfl4ns5k3g1vv7f69i1dn";
-  };
+  description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
-  dontDisableStatic = true;
-
-  enableParallelBuilding = true;
-
+  # TODO: nsss support
   configureFlags = [
-    "--enable-absolute-paths"
     "--libdir=\${lib}/lib"
     "--dynlibdir=\${lib}/lib"
     "--bindir=\${bin}/bin"
@@ -30,22 +21,15 @@ in stdenv.mkDerivation rec {
     "--with-include=${skalibs.dev}/include"
     "--with-lib=${skalibs.lib}/lib"
     "--with-dynlib=${skalibs.lib}/lib"
-  ]
-  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
-  ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+  ];
 
   postInstall = ''
-    mkdir -p $doc/share/doc/execline
+    # remove all execline executables from build directory
+    rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+    rm libexecline.*
+
     mv doc $doc/share/doc/execline/html
     mv examples $doc/share/doc/execline/examples
   '';
 
-  meta = {
-    homepage = http://skarnet.org/software/execline/;
-    description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ];
-  };
-
 }
diff --git a/pkgs/tools/misc/kdecoration-viewer/default.nix b/pkgs/tools/misc/kdecoration-viewer/default.nix
index 62783bb30dff..5c2e410cd930 100644
--- a/pkgs/tools/misc/kdecoration-viewer/default.nix
+++ b/pkgs/tools/misc/kdecoration-viewer/default.nix
@@ -2,13 +2,13 @@
 , cmake, extra-cmake-modules, qtquickcontrols, kconfigwidgets, kdeclarative, kdecoration }:
 
 stdenv.mkDerivation rec {
-  name = "kdecoration-viewer-2015-08-20";
+  name = "kdecoration-viewer-2018-07-24";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "kdecoration-viewer";
-    rev = "d7174acee01475fbdb71cfd48ca49d487a141701";
-    sha256 = "1cc4xxv72a82p1w9r76090xba7g069r41bi4zx32k4gz3vyl1am6";
+    rev = "6e50b39c651bbf92fd7e7116d43bf57288254288";
+    sha256 = "01v6i081vx0mydqvnj05xli86m52v6bxxc3z1zlyyap9cfhag7lj";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/tools/misc/noti/default.nix b/pkgs/tools/misc/noti/default.nix
new file mode 100644
index 000000000000..ac5b4199c216
--- /dev/null
+++ b/pkgs/tools/misc/noti/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  name = "noti-${version}";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "variadico";
+    repo = "noti";
+    rev = "${version}";
+    sha256 = "1chsqfqk0pnhx5k2nr4c16cpb8m6zv69l1jvv4v4903zgfzcm823";
+  };
+
+  goPackagePath = "github.com/variadico/noti";
+
+  preBuild = ''
+    buildFlagsArray+=("-ldflags" "-X ${goPackagePath}/internal/command.Version=${version}")
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/man/man{1,5}/
+    cp $src/docs/man/noti.1      $out/share/man/man1/
+    cp $src/docs/man/noti.yaml.5 $out/share/man/man5/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Monitor a process and trigger a notification.";
+    longDescription = ''
+      Monitor a process and trigger a notification.
+
+      Never sit and wait for some long-running process to finish. Noti can alert you when it's done. You can receive messages on your computer or phone.
+    '';
+    homepage = https://github.com/variadico/noti;
+    license = licenses.mit;
+    maintainers = [ maintainers.stites ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 51844c8e5faa..08df665aede6 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2018.9";
+  version = "1.2018.10";
   name = "plantuml-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "0g5wd80brwqb0v9rbs66y3clv9jsccc8937jzz4r9gzp38rkvzmn";
+    sha256 = "19s3zrfri388nfykcs67sfk0dhmiw0rcv0dvj1j4c0fkyhl41bjs";
   };
 
   # It's only a .jar file and a shell wrapper
diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix
index 5f56daf3a48d..ae4385a0048a 100644
--- a/pkgs/tools/misc/s6-portable-utils/default.nix
+++ b/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -1,47 +1,35 @@
-{ stdenv, fetchurl, skalibs }:
+{ stdenv, skawarePackages }:
 
-with stdenv.lib;
+with skawarePackages;
 
-stdenv.mkDerivation rec {
-  name = "s6-portable-utils-${version}";
-  version = "2.2.1.1";
+let
+  pname = "s6-portable-utils";
 
-  src = fetchurl {
-    url = "https://www.skarnet.org/software/s6-portable-utils/${name}.tar.gz";
-    sha256 = "0ca5iiq3n6isj64jb81xpwjzjx1q8jg145nnnn91ra2qqk93kqka";
-  };
+in buildPackage {
+  pname = pname;
+  version = "2.2.1.2";
+  sha256 = "0if77z07rfygd1yk9d2abxkdbx3dg52vcjhb20isb8kvqxhkg8ih";
 
-  outputs = [ "bin" "dev" "doc" "out" ];
+  description = "A set of tiny general Unix utilities optimized for simplicity and small size";
 
-  dontDisableStatic = true;
+  outputs = [ "bin" "dev" "doc" "out" ];
 
   configureFlags = [
-    "--enable-absolute-paths"
     "--bindir=\${bin}/bin"
     "--includedir=\${dev}/include"
     "--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
     "--with-include=${skalibs.dev}/include"
     "--with-lib=${skalibs.lib}/lib"
     "--with-dynlib=${skalibs.lib}/lib"
-  ]
-  # On darwin, the target triplet from -dumpmachine includes version number, but
-  # skarnet.org software uses the triplet to test binary compatibility.
-  # Explicitly setting target ensures code can be compiled against a skalibs
-  # binary built on a different version of darwin.
-  # http://www.skarnet.org/cgi-bin/archive.cgi?1:mss:623:heiodchokfjdkonfhdph
-  ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+  ];
 
   postInstall = ''
-    mkdir -p $doc/share/doc/s6-portable-utils/
-    mv doc $doc/share/doc/s6-portable-utils/html
+    # remove all s6 executables from build directory
+    rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
+    rm seekablepipe
+
+    mv doc $doc/share/doc/${pname}/html
   '';
 
-  meta = {
-    homepage = http://www.skarnet.org/software/s6-portable-utils/;
-    description = "A set of tiny general Unix utilities optimized for simplicity and small size";
-    platforms = platforms.all;
-    license = licenses.isc;
-    maintainers = with maintainers; [ pmahoney Profpatsch ];
-  };
 
 }
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 30475047c4f7..b5c963307dfd 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.13";
+  version = "0.9.14";
   name = "smenu-${version}";
 
   src = fetchFromGitHub {
     owner  = "p-gen";
     repo   = "smenu";
     rev    = "v${version}";
-    sha256 = "0ixfl1dxkvmzb3xy6zs1x94hlf8y7zmd14gmb50rp7gb7ff1ivm5";
+    sha256 = "1q2jvzia5ggkifkawm791p2nkmnpm6cmd5x3al7zf76gpdm6j87d";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index 9c6211b13dfe..e75baac669a3 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -3,14 +3,14 @@
 , wxGTK30 }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.1";
+  version = "3.2.2";
   name = "woeusb-${version}";
 
   src = fetchFromGitHub {
     owner = "slacka";
     repo = "WoeUSB";
     rev = "v${version}";
-    sha256 = "0qymdc216ws6adkzmzxz6hx43dim0hpwab9c4qmgg8jnkhnpvnj1";
+    sha256 = "08spc7r5zgn483y7jmnlqi5417p6h1v6izyx10jnk39md6lv8pb3";
   };
 
   buildInputs = [ wxGTK30 autoreconfHook makeWrapper ];
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 7ed8f3bfd71b..e497f2a698c7 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchurl, buildPythonPackage
 , zip, ffmpeg, rtmpdump, phantomjs2, atomicparsley, pycryptodome, pandoc
+, fetchpatch
 # Pandoc is required to build the package's man page. Release tarballs contain a
 # formatted man page already, though, it will still be installed. We keep the
 # manpage argument in place in case someone wants to use this derivation to
@@ -15,13 +16,22 @@
 buildPythonPackage rec {
 
   pname = "youtube-dl";
-  version = "2018.08.28";
+  version = "2018.09.01";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1swdp4czvm0752psbi8a4qw5i9x18s7nhivh7iw92274pmqxq9wi";
+    sha256 = "0h8x8agl4s5cnfzwmshbcg4pxcgg3iyb86w8krs21y2k9d1ng036";
   };
 
+  patches = [
+    # https://github.com/rg3/youtube-dl/pull/17464
+    (fetchpatch {
+      name = "youtube-js-player-fix.patch";
+      url = "https://github.com/rg3/youtube-dl/pull/17464/commits/6d7359775ae4eef1d1213aae81e092467a2c675c.patch";
+      sha256 = "12mwfmp7iwlawpx6r4rhz546b3anxrx6zc4nyjs8grbh5vxhj9yg";
+    })
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ zip ] ++ lib.optional generateManPage pandoc;
   propagatedBuildInputs = lib.optional hlsEncryptedSupport pycryptodome;
diff --git a/pkgs/tools/networking/netselect/default.nix b/pkgs/tools/networking/netselect/default.nix
index 6015ff9fbc7c..ef00d8602feb 100644
--- a/pkgs/tools/networking/netselect/default.nix
+++ b/pkgs/tools/networking/netselect/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   name = "netselect-0.3";
-  
+
   src = fetchurl {
     url = http://alumnit.ca/~apenwarr/netselect/netselect-0.3.tar.gz;
     sha256 = "0y69z59vylj9x9nk5jqn6ihx7dkzg09gpv2w1q1rs8fmi4jr90gy";
@@ -15,11 +15,11 @@ stdenv.mkDerivation {
       --replace "-g root" "" \
       --replace "4755"    "0755"
   '';
-  
-  meta = {
-    homepage = http://alumnit.ca/~apenwarr/netselect/;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/apenwarr/netselect;
     description = "An ultrafast intelligent parallelizing binary-search implementation of \"ping\"";
-    license = "BSD";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.bsd3;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/prettyping/default.nix b/pkgs/tools/networking/prettyping/default.nix
new file mode 100644
index 000000000000..36700195a1bd
--- /dev/null
+++ b/pkgs/tools/networking/prettyping/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  name = "${program}-${version}";
+  program = "prettyping";
+  version = "1.0.1";
+  src = fetchFromGitHub {
+    owner = "denilsonsa";
+    repo = program;
+    rev = "v${version}";
+    sha256 = "05vfaq9y52z40245j47yjk1xaiwrazv15sgjq64w91dfyahjffxf";
+  };
+
+  installPhase = ''
+    install -Dt $out/bin prettyping
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/denilsonsa/prettyping;
+    description = "A wrapper around the standard ping tool with the objective of making the output prettier, more colorful, more compact, and easier to read";
+    license = with licenses; [ mit ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ qoelet ];
+  };
+}
diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix
index 29d66e4be2ce..f422dabaff64 100644
--- a/pkgs/tools/networking/s6-dns/default.nix
+++ b/pkgs/tools/networking/s6-dns/default.nix
@@ -1,27 +1,17 @@
-{ stdenv, fetchgit, skalibs }:
+{ stdenv, skawarePackages }:
 
-let
+with skawarePackages;
 
-  version = "2.3.0.0";
+buildPackage {
+  pname = "s6-dns";
+  version = "2.3.0.1";
+  sha256 = "16ymalc4yxbwc0kapwmissxlw2bdk4sx3b33zp1gwx3n6hkcgh8c";
 
-in stdenv.mkDerivation rec {
-
-  name = "s6-dns-${version}";
-
-  src = fetchgit {
-    url = "git://git.skarnet.org/s6-dns";
-    rev = "refs/tags/v${version}";
-    sha256 = "1hczdg3dzi9z6f0wicm2qa2239fiax915zp66xspdz6qd23nqrxb";
-  };
+  description = "A suite of DNS client programs and libraries for Unix systems";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
-  dontDisableStatic = true;
-
-  enableParallelBuilding = true;
-
   configureFlags = [
-    "--enable-absolute-paths"
     "--libdir=\${lib}/lib"
     "--libexecdir=\${lib}/libexec"
     "--dynlibdir=\${lib}/lib"
@@ -31,21 +21,15 @@ in stdenv.mkDerivation rec {
     "--with-include=${skalibs.dev}/include"
     "--with-lib=${skalibs.lib}/lib"
     "--with-dynlib=${skalibs.lib}/lib"
-  ]
-  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
-  ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+  ];
 
   postInstall = ''
-    mkdir -p $doc/share/doc/s6-dns/
+    # remove all s6-dns executables from build directory
+    rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+    rm libs6dns.*
+    rm libskadns.*
+
     mv doc $doc/share/doc/s6-dns/html
   '';
 
-  meta = {
-    homepage = http://www.skarnet.org/software/s6-dns/;
-    description = "A suite of DNS client programs and libraries for Unix systems";
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ];
-  };
-
 }
diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix
index f7278d5c6a24..3f0e83ad9ce0 100644
--- a/pkgs/tools/networking/s6-networking/default.nix
+++ b/pkgs/tools/networking/s6-networking/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, execline, fetchgit, s6, s6-dns, skalibs
+{ stdenv, skawarePackages
 
 # Whether to build the TLS/SSL tools and what library to use
 # acceptable values: "libressl", false
@@ -6,11 +6,9 @@
 , sslSupport ? "libressl" , libressl
 }:
 
+with skawarePackages;
 let
   inherit (stdenv) lib;
-
-  version = "2.3.0.2";
-
   sslSupportEnabled = sslSupport != false;
   sslLibs = {
     "libressl" = libressl;
@@ -19,24 +17,18 @@ let
 in
 assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
-stdenv.mkDerivation rec {
 
-  name = "s6-networking-${version}";
+buildPackage {
+  pname = "s6-networking";
+  version = "2.3.0.3";
+  sha256 = "1kfjl7da6wkmyq1mvq9irkbzk2wbi0axjfbcw5cym5y11mqswsjs";
 
-  src = fetchgit {
-    url = "git://git.skarnet.org/s6-networking";
-    rev = "refs/tags/v${version}";
-    sha256 = "1qrhca8yjaysrqf7nx3yjfyfi9yly3rxpgrd2sqj0a0ckk73rv42";
-  };
+  description = "A suite of small networking utilities for Unix systems";
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
-  dontDisableStatic = true;
-
-  enableParallelBuilding = true;
-
+  # TODO: nsss support
   configureFlags = [
-    "--enable-absolute-paths"
     "--libdir=\${lib}/lib"
     "--libexecdir=\${lib}/libexec"
     "--dynlibdir=\${lib}/lib"
@@ -60,20 +52,16 @@ stdenv.mkDerivation rec {
        "--enable-ssl=${sslSupport}"
        "--with-include=${lib.getDev sslLibs.${sslSupport}}/include"
        "--with-lib=${lib.getLib sslLibs.${sslSupport}}/lib"
-     ])
-  ++ (lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+       "--with-dynlib=${lib.getLib sslLibs.${sslSupport}}/lib"
+     ]);
 
   postInstall = ''
-    mkdir -p $doc/share/doc/s6-networking/
+    # remove all s6 executables from build directory
+    rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
+    rm minidentd
+    rm libs6net.* libstls.*
+
     mv doc $doc/share/doc/s6-networking/html
   '';
 
-  meta = {
-    homepage = http://www.skarnet.org/software/s6-networking/;
-    description = "A suite of small networking utilities for Unix systems";
-    platforms = lib.platforms.all;
-    license = lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ];
-  };
-
 }
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 96e2a094ac0a..f93596b8e8fb 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -4,11 +4,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "wireguard-tools-${version}";
-  version = "0.0.20180809";
+  version = "0.0.20180904";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
-    sha256 = "07sbaignf8l4lndfxypgacaf2qmgyfkv1j5z7kn0cw5mgfsphmkx";
+    sha256 = "0slf6lchzhb2san1hsqnny1sdmxq8rzqwz355f33zsgaj6qh1gmk";
   };
 
   sourceRoot = "source/src/tools";
diff --git a/pkgs/tools/networking/x11-ssh-askpass/default.nix b/pkgs/tools/networking/x11-ssh-askpass/default.nix
index 4061d5284aa6..896a2ff4daaa 100644
--- a/pkgs/tools/networking/x11-ssh-askpass/default.nix
+++ b/pkgs/tools/networking/x11-ssh-askpass/default.nix
@@ -6,8 +6,8 @@ stdenv.mkDerivation {
   outputs = [ "out" "man" ];
 
   src = fetchurl {
-    url = http://www.jmknoble.net/software/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz;
-    sha1 = "78c992951685d4dbffb77536f37b83ae2a6eafc7";
+    url = http://pkgs.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz;
+    sha256 = "620de3c32ae72185a2c9aeaec03af24242b9621964e38eb625afb6cdb30b8c88";
   };
 
   nativeBuildInputs = [ imake ];
@@ -24,11 +24,10 @@ stdenv.mkDerivation {
 
   installTargets = [ "install" "install.man" ];
 
-  meta = {
-    homepage = http://www.jmknoble.net/software/x11-ssh-askpass/;
+  meta = with stdenv.lib; {
+    homepage = https://github.com/sigmavirus24/x11-ssh-askpass;
     description = "Lightweight passphrase dialog for OpenSSH or other open variants of SSH";
-
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [];
+    license = licenses.mit;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-download/Cargo.nix b/pkgs/tools/package-management/cargo-download/Cargo.nix
new file mode 100644
index 000000000000..9735bde199dc
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-download/Cargo.nix
@@ -0,0 +1,3138 @@
+# Generated by carnix 0.7.2: carnix nix
+{ lib, buildPlatform, buildRustCrate, fetchgit }:
+let kernel = buildPlatform.parsed.kernel.name;
+    abi = buildPlatform.parsed.abi.name;
+    include = includedFiles: src: builtins.filterSource (path: type:
+      lib.lists.any (f:
+        let p = toString (src + ("/" + f)); in
+        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+      ) includedFiles
+    ) src;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if feat.${featureName} or false then
+        [ featureName ] ++ features
+      else
+        features
+    ) [] (builtins.attrNames feat);
+in
+rec {
+  cargo_download = f: cargo_download_0_1_1 { features = cargo_download_0_1_1_features { cargo_download_0_1_1 = f; }; };
+  __all = [ (cargo_download {}) ];
+  adler32_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "adler32";
+    version = "1.0.3";
+    authors = [ "Remi Rampin <remirampin@gmail.com>" ];
+    sha256 = "1z3mvjgw02mbqk98kizzibrca01d5wfkpazsrp3vkkv3i56pn6fb";
+    inherit dependencies buildDependencies features;
+  };
+  aho_corasick_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
+    libName = "aho_corasick";
+    crateBin = [ {  name = "aho-corasick-dot"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_11_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.11.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
+    inherit dependencies buildDependencies features;
+  };
+  arrayvec_0_4_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "arrayvec";
+    version = "0.4.7";
+    authors = [ "bluss" ];
+    sha256 = "0fzgv7z1x1qnyd7j32vdcadk4k9wfx897y06mr3bw1yi52iqf4z4";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.11";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "0by1bj2km9jxi4i4g76zzi76fc2rcm9934jpnyrqd95zw344pb20";
+    inherit dependencies buildDependencies features;
+  };
+  base64_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "base64";
+    version = "0.9.2";
+    authors = [ "Alice Maz <alice@alicemaz.com>" "Marshall Pierce <marshall@mpierce.org>" ];
+    sha256 = "0g4xxl8jhwjhvr69qlxdmbzd521xcn5j67lhkr20nh7ajvl6k0l1";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "1.0.3";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "162p4w4h1ad76awq6b5yivmls3d50m9cl27d8g588lsps6g8s5rw";
+    inherit dependencies buildDependencies features;
+  };
+  build_const_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "build_const";
+    version = "0.2.1";
+    authors = [ "Garrett Berg <vitiral@gmail.com>" ];
+    sha256 = "15249xzi3qlm72p4glxgavwyq70fx2sp4df6ii0sdlrixrrp77pl";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.2.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1xghv5f5rydzsam8lnfqhfk090i8a1knb77ikbs0ik44bvrw2ij3";
+    inherit dependencies buildDependencies features;
+  };
+  bytes_0_4_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bytes";
+    version = "0.4.9";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1jiqc94j85la9vs165vqpf6s1sah8n3ivnhsfapcjrvbhjawi6i6";
+    inherit dependencies buildDependencies features;
+  };
+  cargo_download_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cargo-download";
+    version = "0.1.1";
+    authors = [ "Karol Kuczmarski <karol.kuczmarski@gmail.com>" ];
+    sha256 = "1xiffk4df6i9cvwimzwyf1finv6w8f8gr0zjp21fzbiz5c0ksx65";
+    crateBin = [ {  name = "cargo-download"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  case_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "case";
+    version = "0.1.0";
+    authors = [ "Skyler Lipthay <skyler.lipthay@gmail.com>" ];
+    sha256 = "06i1x3wqv30rkvlgj134qf9vzxhzz28bz41mm0rgki0i0f7gf96n";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_18_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.18";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0wcnpa54qvm5921wwrrkn8cwxd5y0p5f4gb1qgyh5imii7rdhpjx";
+    inherit dependencies buildDependencies features;
+  };
+  cfg_if_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cfg-if";
+    version = "0.1.4";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0n5baxk53dvqjymzwynq55wb805b24390qx1n16zi8fjzq90j7k4";
+    inherit dependencies buildDependencies features;
+  };
+  chrono_0_2_25_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "chrono";
+    version = "0.2.25";
+    authors = [ "Kang Seonghoon <public+rust@mearie.org>" ];
+    sha256 = "0gsvqk8cnmm43qj3xyngqvfqh50cbdbqas7ik0wjgnvknirmmca7";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_32_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.32.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "1hdjf0janvpjkwrjdjx1mm2aayzr54k72w6mriyr0n5anjkcj1lx";
+    inherit dependencies buildDependencies features;
+  };
+  conv_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "conv";
+    version = "0.3.3";
+    authors = [ "Daniel Keep <daniel.keep@gmail.com>" ];
+    sha256 = "08rl72k1a48xah0ar5l9v1bw19pp8jdw2pdkd3vvj9ijsyyg9yik";
+    inherit dependencies buildDependencies features;
+  };
+  core_foundation_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "core-foundation";
+    version = "0.2.3";
+    authors = [ "The Servo Project Developers" ];
+    sha256 = "1g0vpya5h2wa0nlz4a74jar6y8z09f0p76zbzfqrm3dbfsrld1pm";
+    inherit dependencies buildDependencies features;
+  };
+  core_foundation_sys_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "core-foundation-sys";
+    version = "0.2.3";
+    authors = [ "The Servo Project Developers" ];
+    sha256 = "19s0d03294m9s5j8cvy345db3gkhs2y02j5268ap0c6ky5apl53s";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  crc_1_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crc";
+    version = "1.8.1";
+    authors = [ "Rui Hu <code@mrhooray.com>" ];
+    sha256 = "00m9jjqrddp3bqyanvyxv0hf6s56bx1wy51vcdcxg4n2jdhg109s";
+    inherit dependencies buildDependencies features;
+  };
+  crossbeam_0_2_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crossbeam";
+    version = "0.2.12";
+    authors = [ "Aaron Turon <aturon@mozilla.com>" ];
+    sha256 = "0jkm95is7bwv4parwfq4aim6cigiwd4w9hz09cpild4hp5ry625i";
+    inherit dependencies buildDependencies features;
+  };
+  crossbeam_deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crossbeam-deque";
+    version = "0.3.1";
+    authors = [ "The Crossbeam Project Developers" ];
+    sha256 = "1km0mavyp9ddwb7k7kcdmyryi3bwxf0nmr6jqcpyjzvzmxjlkqap";
+    inherit dependencies buildDependencies features;
+  };
+  crossbeam_epoch_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crossbeam-epoch";
+    version = "0.4.3";
+    authors = [ "The Crossbeam Project Developers" ];
+    sha256 = "18xfgi7h9aq4lqqrqzy366xg885z1hlkbhvycl2i3zhkhkvadhv3";
+    inherit dependencies buildDependencies features;
+  };
+  crossbeam_utils_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crossbeam-utils";
+    version = "0.3.2";
+    authors = [ "The Crossbeam Project Developers" ];
+    sha256 = "1byx31nkxl48la58571h40ssk94faky26jwz15w40v2gba3v4fql";
+    inherit dependencies buildDependencies features;
+  };
+  custom_derive_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "custom_derive";
+    version = "0.1.7";
+    authors = [ "Daniel Keep <daniel.keep@gmail.com>" ];
+    sha256 = "160q3pzri2fgrr6czfdkwy1sbddki2za96r7ivvyii52qp1523zs";
+    inherit dependencies buildDependencies features;
+  };
+  derive_error_0_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "derive-error";
+    version = "0.0.3";
+    authors = [ "rushmorem <rushmore@webenchanter.com>" ];
+    sha256 = "0239vzxn5xr9nm3i4d6hmqy7dv8llcjblgh1xixfk5dcgcqan77y";
+    procMacro = true;
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.3";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1xysdxdm24sk5ysim7lps4r2qaxfnj0sbakhmps4d42yssx30cw8";
+    inherit dependencies buildDependencies features;
+  };
+  either_1_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "either";
+    version = "1.5.0";
+    authors = [ "bluss" ];
+    sha256 = "1f7kl2ln01y02m8fpd2zrdjiwqmgfvl9nxxrfry3k19d1gd2bsvz";
+    inherit dependencies buildDependencies features;
+  };
+  encoding_rs_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "encoding_rs";
+    version = "0.7.2";
+    authors = [ "Henri Sivonen <hsivonen@hsivonen.fi>" ];
+    sha256 = "1c23bi3q4qmi2ci8g7p5j4b4i5abyggvyg6hkl7w4p4r527c9g3q";
+    inherit dependencies buildDependencies features;
+  };
+  exitcode_1_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "exitcode";
+    version = "1.1.2";
+    authors = [ "Ben Wilber <benwilber@gmail.com>" ];
+    sha256 = "1cw9p4vzbscvyrbzv7z68gv2cairrns2d4wcb4nkahkcjk25phip";
+    inherit dependencies buildDependencies features;
+  };
+  filetime_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "filetime";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1wmbj3jnpl39851lymw64j9ac1nmy1z96h1wymvlvypspl68w5y0";
+    inherit dependencies buildDependencies features;
+  };
+  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "flate2";
+    version = "0.2.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
+    inherit dependencies buildDependencies features;
+  };
+  foreign_types_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "foreign-types";
+    version = "0.3.2";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "105n8sp2djb1s5lzrw04p7ss3dchr5qa3canmynx396nh3vwm2p8";
+    inherit dependencies buildDependencies features;
+  };
+  foreign_types_shared_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "foreign-types-shared";
+    version = "0.1.1";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0b6cnvqbflws8dxywk4589vgbz80049lz4x1g9dfy4s1ppd3g4z5";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.23";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "075s7sv1iqzf2r3lvb4hk81k5c9xzfcyb8q92h2s35fnypxyqd21";
+    inherit dependencies buildDependencies features;
+  };
+  futures_cpupool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures-cpupool";
+    version = "0.1.8";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ficd31n5ljiixy6x0vjglhq4fp0v1p4qzxm3v6ymsrb3z080l5c";
+    inherit dependencies buildDependencies features;
+  };
+  httparse_1_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "httparse";
+    version = "1.3.2";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "1mm10m2hv1inxzzvm85s6fdmwl9a3q9vik0nzh5qrx2hx5x8fcwl";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  hyper_0_11_27_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "hyper";
+    version = "0.11.27";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "0q5as4lhvh31bzk4qm7j84snrmxyxyaqk040rfk72b42dn98mryi";
+    inherit dependencies buildDependencies features;
+  };
+  hyper_tls_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "hyper-tls";
+    version = "0.1.3";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "1dr5arj79pdyz9f2jggqmna1qpc578f9pdgsf2ana5amjpsp0j89";
+    inherit dependencies buildDependencies features;
+  };
+  idna_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "idna";
+    version = "0.1.5";
+    authors = [ "The rust-url developers" ];
+    sha256 = "1gwgl19rz5vzi67rrhamczhxy050f5ynx4ybabfapyalv7z1qmjy";
+    inherit dependencies buildDependencies features;
+  };
+  iovec_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "iovec";
+    version = "0.1.2";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0vjymmb7wj4v4kza5jjn48fcdb85j3k37y7msjl3ifz0p9yiyp2r";
+    inherit dependencies buildDependencies features;
+  };
+  isatty_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "isatty";
+    version = "0.1.8";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1n5wzzkb1kxkfbcyv5vfrsybika0a1k01sp06ngad73ljx4kwj5h";
+    inherit dependencies buildDependencies features;
+  };
+  itertools_0_6_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itertools";
+    version = "0.6.5";
+    authors = [ "bluss" ];
+    sha256 = "0gbhgn7s8qkxxw10i514fzpqnc3aissn4kcgylm2cvnv9zmg8mw1";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.4.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "193a744yd74rmk13hl8xvd9p2hqhdkyf8xkvi1mxm5s10bby0h8v";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  language_tags_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "language-tags";
+    version = "0.2.2";
+    authors = [ "Pyfisch <pyfisch@gmail.com>" ];
+    sha256 = "1zkrdzsqzzc7509kd7nngdwrp461glm2g09kqpzaqksp82frjdvy";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.11";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "1.0.2";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0ix4dmy6zb4v3m75l4alg84fk06y145z52z9pyysc9labw2x5r3r";
+    inherit dependencies buildDependencies features;
+  };
+  lazycell_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazycell";
+    version = "0.6.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Nikita Pekin <contact@nikitapek.in>" ];
+    sha256 = "1ax148clinbvp6alxcih8s5i2bg3mc5mi69n3hvzvzbwlm6k532r";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_42_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.42";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "064v49hz1zpl081w8c4vwikrkhaxp06y4i9l7x7wx6bjpwp19pjx";
+    inherit dependencies buildDependencies features;
+  };
+  libflate_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libflate";
+    version = "0.1.16";
+    authors = [ "Takeru Ohta <phjgt308@gmail.com>" ];
+    sha256 = "0l15g61h10bznxsjirwq9c43w17mjpqx6wz0357agskardkdh14n";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "19i9pwp7lhaqgzangcpw00kc3zsgcqcx84crv07xgz3v7d3kvfa2";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.4.3";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1gdmwrbm7s18zcdz4lcdhz975m4gwhi854c7j1rvj1gsr8aca250";
+    inherit dependencies buildDependencies features;
+  };
+  maplit_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "maplit";
+    version = "0.1.6";
+    authors = [ "bluss" ];
+    sha256 = "1f8kf5v7xra8ssvh5c10qlacbk4l0z2817pkscflx5s5q6y7925h";
+    inherit dependencies buildDependencies features;
+  };
+  matches_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "matches";
+    version = "0.1.7";
+    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
+    sha256 = "0zx9gi5flyzkh9nx52fyc3k2zz08b9ww1c4yndlfrw72kr8m7yfy";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  memchr_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memchr";
+    version = "0.1.11";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
+    inherit dependencies buildDependencies features;
+  };
+  memoffset_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memoffset";
+    version = "0.2.1";
+    authors = [ "Gilad Naaman <gilad.naaman@gmail.com>" ];
+    sha256 = "00vym01jk9slibq2nsiilgffp7n6k52a4q3n4dqp0xf5kzxvffcf";
+    inherit dependencies buildDependencies features;
+  };
+  mime_0_3_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "mime";
+    version = "0.3.8";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "1577adg9zvkd1qdb2nqqg1ryap33p5r4qsw01n9pw162xpisqjm3";
+    inherit dependencies buildDependencies features;
+  };
+  mime_guess_2_0_0_alpha_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "mime_guess";
+    version = "2.0.0-alpha.6";
+    authors = [ "Austin Bonander <austin.bonander@gmail.com>" ];
+    sha256 = "1k2mdq43gi2qr63b7m5zs624rfi40ysk33cay49jlhq97jwnk9db";
+    inherit dependencies buildDependencies features;
+  };
+  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miniz-sys";
+    version = "0.1.10";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
+    libPath = "lib.rs";
+    libName = "miniz_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  mio_0_6_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "mio";
+    version = "0.6.15";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0a93wxsmkh8x38wxivhn6qdj08pj9f0j3y46p4wv3xclbq8i4aaa";
+    inherit dependencies buildDependencies features;
+  };
+  miow_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miow";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "14f8zkc6ix7mkyis1vsqnim8m29b6l55abkba3p2yz7j1ibcvrl0";
+    inherit dependencies buildDependencies features;
+  };
+  native_tls_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "native-tls";
+    version = "0.1.5";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11f75qmbny5pnn6zp0vlvadrvc9ph9qsxiyn4n6q02xyd93pxxlf";
+    inherit dependencies buildDependencies features;
+  };
+  net2_0_2_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "net2";
+    version = "0.2.33";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1qnmajafgybj5wyxz9iffa8x5wgbwd2znfklmhqj7vl6lw1m65mq";
+    inherit dependencies buildDependencies features;
+  };
+  nodrop_0_1_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "nodrop";
+    version = "0.1.12";
+    authors = [ "bluss" ];
+    sha256 = "1b9rxvdg8061gxjc239l9slndf0ds3m6fy2sf3gs8f9kknqgl49d";
+    inherit dependencies buildDependencies features;
+  };
+  num_0_1_42_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num";
+    version = "0.1.42";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1632gczzrmmxdsj3jignwcr793jq8vxw3qkdzpdvbip3vaf1ljgq";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.39";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1f42ls46cghs13qfzgbd7syib2zc6m7hlmv1qlar6c9mdxapvvbg";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.37";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1rglyvi4yjfxfvfm2s7i60g1dkl5xmsyi77g6vy53jb11r6wl8ly";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.2.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0ql203ca6lzppksy4fsfnpz3kq96vwlwvyn3ahvnd9g6k9f5ncj0";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.8.0";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "1y6qnd9r8ga6y8mvlabdrr73nc8cshjjlzbvnanzyj9b8zzkfwk2";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_0_9_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl";
+    version = "0.9.24";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0wzm3c11g3ndaqyzq36mcdcm1q4a8pmsyi33ibybhjz28g2z0f79";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_sys_0_9_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl-sys";
+    version = "0.9.33";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1q5f7ykkxgniwjrqifx1ssrqjzcf8fi4fzh770xrbyp8n6v14qr6";
+    build = "build/main.rs";
+    inherit dependencies buildDependencies features;
+  };
+  percent_encoding_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "percent-encoding";
+    version = "1.0.1";
+    authors = [ "The rust-url developers" ];
+    sha256 = "04ahrp7aw4ip7fmadb0bknybmkfav0kk0gw4ps3ydq5w6hr0ib5i";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.22";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0b58l863rhmqyqsfj2d89nmdzc21g9yvvvq1m4c3a615zpcykb3i";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.22";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0k8yx4gr9m6cfrvh21s6bhnh1azz13j4xih88bvm06r6blfl89fs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.22";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "093gla320qb6rbk8z7wqqxl79zrh874sa7sxir31q2p7mrw4b70k";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.22";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0ij9flicfi0ab5vpzdwbizpdyxhk891qxa8nxsqlv4sg4abqang6";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.12";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0k343rlyv9qmplxwxn8clzkyx1zbplhnvm0psjl6s111fjqmgsgh";
+    inherit dependencies buildDependencies features;
+  };
+  quote_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "quote";
+    version = "0.3.15";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "09il61jv4kd1360spaj46qwyl21fv1qz18fsv2jra8wdnlgl5jsg";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.22";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0wrj12acx7l4hr7ag3nz8b50yhp8ancyq988bzmnnsxln67rsys0";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.4.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
+    inherit dependencies buildDependencies features;
+  };
+  redox_syscall_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.40";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "132rnhrq49l3z7gjrwj2zfadgw6q0355s6a7id7x7c0d7sk72611";
+    libName = "syscall";
+    inherit dependencies buildDependencies features;
+  };
+  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_termios";
+    version = "0.1.1";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  regex_0_1_80_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex";
+    version = "0.1.80";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
+    inherit dependencies buildDependencies features;
+  };
+  regex_syntax_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
+    inherit dependencies buildDependencies features;
+  };
+  relay_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "relay";
+    version = "0.1.1";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "16csfaslbmj25iaxs88p8wcfh2zfpkh9isg9adid0nxjxvknh07r";
+    inherit dependencies buildDependencies features;
+  };
+  remove_dir_all_0_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "remove_dir_all";
+    version = "0.5.1";
+    authors = [ "Aaronepower <theaaronepower@gmail.com>" ];
+    sha256 = "1chx3yvfbj46xjz4bzsvps208l46hfbcy0sm98gpiya454n4rrl7";
+    inherit dependencies buildDependencies features;
+  };
+  reqwest_0_8_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "reqwest";
+    version = "0.8.6";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "0ka9ndgybhf65fn44badnjbasn1fi0mvjfa3sfiw485mgg21n3a0";
+    inherit dependencies buildDependencies features;
+  };
+  safemem_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "safemem";
+    version = "0.2.0";
+    authors = [ "Austin Bonander <austin.bonander@gmail.com>" ];
+    sha256 = "058m251q202n479ip1h6s91yw3plg66vsk5mpaflssn6rs5hijdm";
+    inherit dependencies buildDependencies features;
+  };
+  schannel_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "schannel";
+    version = "0.1.13";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" "Steffen Butzer <steffen.butzer@outlook.com>" ];
+    sha256 = "033zavvq2k6z5akk38vzaglzbxzljaixgmhj9am27nr21dgaj6b3";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_tls_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped-tls";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0nblksgki698cqsclsnd6f1pq4yy34350dn2slaah9dlmx9z5xla";
+    inherit dependencies buildDependencies features;
+  };
+  scopeguard_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scopeguard";
+    version = "0.3.3";
+    authors = [ "bluss" ];
+    sha256 = "0i1l013csrqzfz6c68pr5pi01hg5v5yahq8fsdmaxy6p8ygsjf3r";
+    inherit dependencies buildDependencies features;
+  };
+  security_framework_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "security-framework";
+    version = "0.1.16";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1kxczsaj8gz4922jl5af2gkxh71rasb6khaf3dp7ldlnw9qf2sbm";
+    inherit dependencies buildDependencies features;
+  };
+  security_framework_sys_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "security-framework-sys";
+    version = "0.1.16";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0ai2pivdr5fyc7czbkpcrwap0imyy0r8ndarrl3n5kiv0jha1js3";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.9.0";
+    authors = [ "Steve Klabnik <steve@steveklabnik.com>" "The Rust Project Developers" ];
+    sha256 = "0azak2lb2wc36s3x15az886kck7rpnksrw14lalm157rg9sc9z63";
+    inherit dependencies buildDependencies features;
+  };
+  semver_parser_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver-parser";
+    version = "0.7.0";
+    authors = [ "Steve Klabnik <steve@steveklabnik.com>" ];
+    sha256 = "1da66c8413yakx0y15k8c055yna5lyb6fr0fw9318kdwkrk5k12h";
+    inherit dependencies buildDependencies features;
+  };
+  serde_1_0_70_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "1.0.70";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1z1gyjf5rrs1k3j1civfzqjqs790651bwf8m31bw2pagclhnazs4";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_1_0_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "1.0.24";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1wvvc3y0202my2p00ah8ygl1794nspar9pf39fz1525jd6m6k8a1";
+    inherit dependencies buildDependencies features;
+  };
+  serde_urlencoded_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_urlencoded";
+    version = "0.5.2";
+    authors = [ "Anthony Ramine <n.oxyde@gmail.com>" ];
+    sha256 = "0m5pigng0665qrk4ii1z84pb4lchbsswhgb863yglljskmm056m0";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  slab_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slab";
+    version = "0.3.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0y6lhjggksh57hyfd3l6p9wgv5nhvw9c6djrysq7jnalz8fih21k";
+    inherit dependencies buildDependencies features;
+  };
+  slab_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slab";
+    version = "0.4.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1qy2vkgwqgj5z4ygdkh040n9yh1vz80v5flxb1xrvw3i4wxs7yx0";
+    inherit dependencies buildDependencies features;
+  };
+  slog_1_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog";
+    version = "1.7.1";
+    authors = [ "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "1qhnwv2gbxmnwasaa0vlhddq6cdhq6n3l8d6h3ql73367h7aav65";
+    inherit dependencies buildDependencies features;
+  };
+  slog_envlogger_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog-envlogger";
+    version = "0.5.0";
+    authors = [ "The Rust Project Developers" "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "0ry9k2ppj7z6prdz2kf924w7l9y2kbysrigca6shni1kz2j163qb";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  slog_extra_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog-extra";
+    version = "0.1.2";
+    authors = [ "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "0jrw0xcc81wwcl59xx9qglfcv5l3ad5kbpcyp6ygk94p9kxfrhyj";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  slog_stdlog_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog-stdlog";
+    version = "1.1.0";
+    authors = [ "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "0ig4mjixr4y3dn3s53rlnrpplwkqb8b0z2zkaiiiwyv7nhjxdg46";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  slog_stream_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog-stream";
+    version = "1.2.1";
+    authors = [ "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "03dwzbydaamfzjpr16gm065i696lk86gqcpspv5qaqyv938fm2yj";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  slog_term_1_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "slog-term";
+    version = "1.5.0";
+    authors = [ "Dawid Ciężarkiewicz <dpc@dpc.pw>" ];
+    sha256 = "0zq2kyvm7jhqj6sc09w540wqfrrpa46yxf9sgzq7jqpkr66wsiar";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  smallvec_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "smallvec";
+    version = "0.2.1";
+    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
+    sha256 = "0rnsll9af52bpjngz0067dpm1ndqmh76i64a58fc118l4lvnjxw2";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.7.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
+    inherit dependencies buildDependencies features;
+  };
+  syn_0_11_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "syn";
+    version = "0.11.11";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0yw8ng7x1dn5a6ykg0ib49y7r9nhzgpiq2989rqdp7rdz3n85502";
+    inherit dependencies buildDependencies features;
+  };
+  synom_0_11_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "synom";
+    version = "0.11.3";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1l6d1s9qjfp6ng2s2z8219igvlv7gyk8gby97sdykqc1r93d8rhc";
+    inherit dependencies buildDependencies features;
+  };
+  take_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "take";
+    version = "0.1.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "17rfh39di5n8w9aghpic2r94cndi3dr04l60nkjylmxfxr3iwlhd";
+    inherit dependencies buildDependencies features;
+  };
+  tar_0_4_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tar";
+    version = "0.4.16";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0s36d0nzn2hs20y805wpmpc4asd1jhrpabqwcpqf5ha442fa7f3b";
+    inherit dependencies buildDependencies features;
+  };
+  tempdir_0_3_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempdir";
+    version = "0.3.7";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0y53sxybyljrr7lh0x0ysrsa7p7cljmwv9v80acy3rc6n97g67vy";
+    inherit dependencies buildDependencies features;
+  };
+  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "termion";
+    version = "1.5.1";
+    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+    inherit dependencies buildDependencies features;
+  };
+  textwrap_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "textwrap";
+    version = "0.10.0";
+    authors = [ "Martin Geisler <martin@geisler.net>" ];
+    sha256 = "1s8d5cna12smhgj0x2y1xphklyk2an1yzbadnj89p1vy5vnjpsas";
+    inherit dependencies buildDependencies features;
+  };
+  thread_id_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread-id";
+    version = "2.0.0";
+    authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
+    sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.2.7";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.3.5";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
+    inherit dependencies buildDependencies features;
+  };
+  time_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "time";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0wgnbjamljz6bqxsd5axc4p2mmhkqfrryj4gf2yswjaxiw5dd01m";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio";
+    version = "0.1.7";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0d5fj90wk05m5vbd924irg1pl1d4fn86jjw5napzanh6vbwsnr66";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_codec_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-codec";
+    version = "0.1.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" "Bryan Burgers <bryan@burgers.io>" ];
+    sha256 = "0347ygccbj05yn9krjk4ifcy5xbv41xk7yyi9cl2cnxrc285xnm7";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_core_0_1_17_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-core";
+    version = "0.1.17";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1j6c5q3aakvb1hjx4r95xwl5ms8rp19k4qsr6v6ngwbvr6f9z6rs";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_executor_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-executor";
+    version = "0.1.2";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1y4mwqjw438x6jskigz1knvfbpbinxfv6h43s60w6wdb80xmyg48";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_fs_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-fs";
+    version = "0.1.2";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "18rxwslv2hdmij6alpqfcm8aywcd28vw12s826ajgvkskh8jsdh2";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_io_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-io";
+    version = "0.1.7";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "08r46b5lp7929agwal1iaabdhfv309wyvd6cld1g39x5ml8x7hp2";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_proto_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-proto";
+    version = "0.1.1";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "030q9h8pn1ngm80klff5irglxxki60hf5maw0mppmmr46k773z66";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_reactor_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-reactor";
+    version = "0.1.2";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "11yx7fvyv1c5h097lspfrim1r67axl8y8m22y5mgny8nhly56s4m";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_service_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-service";
+    version = "0.1.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0c85wm5qz9fabg0k6k763j89m43n6max72d3a8sxcs940id6qmih";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_tcp_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-tcp";
+    version = "0.1.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "19cyajkqvvbn3qqnak0qzivdq6amfjymbc30k7bbqhx4y1pcgqvh";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_threadpool_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-threadpool";
+    version = "0.1.5";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "04nzjdjlir33s0z5nh3vh2h4v3vb1rwzv45jdjridrk92rqpb2vc";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_timer_0_2_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-timer";
+    version = "0.2.4";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0imv1k4g583hh61qkh6mpx06ik9accyl4582vq0z61rr484050gi";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_tls_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-tls";
+    version = "0.1.4";
+    authors = [ "Carl Lerche <me@carllerche.com>" "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "07rwv3q6jbg65ln1ahzb4g648l8lcn4hvc0ax3r12bnsi1py7agp";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_udp_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-udp";
+    version = "0.1.1";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1zsq3bny959dq7cnhdjrlaglrdcm63zn82jpkjs6nrrcfhb9l6z9";
+    inherit dependencies buildDependencies features;
+  };
+  try_lock_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "try-lock";
+    version = "0.1.0";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "0kfrqrb2xkjig54s3qfy80dpldknr19p3rmp0n82yk5929j879k3";
+    inherit dependencies buildDependencies features;
+  };
+  unicase_1_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicase";
+    version = "1.4.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0rbnhw2mnhcwrij3vczp0sl8zdfmvf2dlh8hly81kj7132kfj0mf";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  unicase_2_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicase";
+    version = "2.1.0";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "1zzn16hh8fdx5pnbbnl32q8m2mh4vpd1jm9pdcv969ik83dw4byp";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_bidi_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-bidi";
+    version = "0.3.4";
+    authors = [ "The Servo Project Developers" ];
+    sha256 = "0lcd6jasrf8p9p0q20qyf10c6xhvw40m2c4rr105hbk6zy26nj1q";
+    libName = "unicode_bidi";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_normalization_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-normalization";
+    version = "0.1.7";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1da2hv800pd0wilmn4idwpgv5p510hjxizjcfv6xzb40xcsjd8gs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.5";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "0886lc2aymwgy0lhavwn6s48ik3c61ykzzd3za6prgnw51j7bi4w";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_xid_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-xid";
+    version = "0.0.4";
+    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1dc8wkkcd3s6534s5aw4lbjn8m67flkkbnajp5bl8408wdg8rh9v";
+    inherit dependencies buildDependencies features;
+  };
+  unreachable_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unreachable";
+    version = "1.0.0";
+    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
+    inherit dependencies buildDependencies features;
+  };
+  url_1_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "url";
+    version = "1.7.1";
+    authors = [ "The rust-url developers" ];
+    sha256 = "1l36pbvlwdnh3zqz4wp5n6jg332wkis9pi2g3vy12xr8k4nfyk8i";
+    inherit dependencies buildDependencies features;
+  };
+  utf8_ranges_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "utf8-ranges";
+    version = "0.1.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
+    inherit dependencies buildDependencies features;
+  };
+  uuid_0_6_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "uuid";
+    version = "0.6.5";
+    authors = [ "Ashley Mannix<ashleymannix@live.com.au>" "Christopher Armstrong" "Dylan DPC<dylan.dpc@gmail.com>" "Hunar Roop Kahlon<hunar.roop@gmail.com>" ];
+    sha256 = "1jy15m4yxxwma0jsy070garhbgfprky23i77rawjkk75vqhnnhlf";
+    inherit dependencies buildDependencies features;
+  };
+  vcpkg_0_2_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vcpkg";
+    version = "0.2.4";
+    authors = [ "Jim McGrath <jimmc2@gmail.com>" ];
+    sha256 = "0xgk5axv1qhj4rfn2rca7768wnvzihccnajkgc6im8ndsx371nml";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
+    inherit dependencies buildDependencies features;
+  };
+  version_check_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "version_check";
+    version = "0.1.4";
+    authors = [ "Sergio Benitez <sb@sergio.bz>" ];
+    sha256 = "1ghi6bw2qsj53x2vyprs883dbrq8cjzmshlamjsxvmwd2zp13bck";
+    inherit dependencies buildDependencies features;
+  };
+  void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "void";
+    version = "1.0.2";
+    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
+    inherit dependencies buildDependencies features;
+  };
+  want_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "want";
+    version = "0.0.4";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "1l1qy4pvg5q71nrzfjldw9xzqhhgicj4slly1bal89hr2aaibpy0";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.3.5";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0cfdsxa5yf832r5i2z7dhdvnryyvhfp3nb32gpcaq502zgjdm3w6";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_i686_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-i686-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_x86_64_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-x86_64-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  ws2_32_sys_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ws2_32-sys";
+    version = "0.2.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1zpy9d9wk11sj17fczfngcj28w4xxjs3b4n036yzpy38dxp4f7kc";
+    libName = "ws2_32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  xattr_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xattr";
+    version = "0.2.2";
+    authors = [ "Steven Allen <steven@stebalien.com>" ];
+    sha256 = "01zqnn6bhrd58hvpj3y1nqnbmlswrvsdapn2zbi7h1bh5lspiyk5";
+    inherit dependencies buildDependencies features;
+  };
+  adler32_1_0_3 = { features?(adler32_1_0_3_features {}) }: adler32_1_0_3_ {};
+  adler32_1_0_3_features = f: updateFeatures f (rec {
+    adler32_1_0_3.default = (f.adler32_1_0_3.default or true);
+  }) [];
+  aho_corasick_0_5_3 = { features?(aho_corasick_0_5_3_features {}) }: aho_corasick_0_5_3_ {
+    dependencies = mapFeatures features ([ memchr_0_1_11 ]);
+  };
+  aho_corasick_0_5_3_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = (f.aho_corasick_0_5_3.default or true);
+    memchr_0_1_11.default = true;
+  }) [ memchr_0_1_11_features ];
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  ansi_term_0_11_0 = { features?(ansi_term_0_11_0_features {}) }: ansi_term_0_11_0_ {
+    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+  };
+  ansi_term_0_11_0_features = f: updateFeatures f (rec {
+    ansi_term_0_11_0.default = (f.ansi_term_0_11_0.default or true);
+    winapi_0_3_5.consoleapi = true;
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.errhandlingapi = true;
+    winapi_0_3_5.processenv = true;
+  }) [ winapi_0_3_5_features ];
+  arrayvec_0_4_7 = { features?(arrayvec_0_4_7_features {}) }: arrayvec_0_4_7_ {
+    dependencies = mapFeatures features ([ nodrop_0_1_12 ]);
+    features = mkFeatures (features.arrayvec_0_4_7 or {});
+  };
+  arrayvec_0_4_7_features = f: updateFeatures f (rec {
+    arrayvec_0_4_7.default = (f.arrayvec_0_4_7.default or true);
+    arrayvec_0_4_7.serde =
+      (f.arrayvec_0_4_7.serde or false) ||
+      (f.arrayvec_0_4_7.serde-1 or false) ||
+      (arrayvec_0_4_7.serde-1 or false);
+    arrayvec_0_4_7.std =
+      (f.arrayvec_0_4_7.std or false) ||
+      (f.arrayvec_0_4_7.default or false) ||
+      (arrayvec_0_4_7.default or false);
+    nodrop_0_1_12.default = (f.nodrop_0_1_12.default or false);
+  }) [ nodrop_0_1_12_features ];
+  atty_0_2_11 = { features?(atty_0_2_11_features {}) }: atty_0_2_11_ {
+    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+  };
+  atty_0_2_11_features = f: updateFeatures f (rec {
+    atty_0_2_11.default = (f.atty_0_2_11.default or true);
+    libc_0_2_42.default = (f.libc_0_2_42.default or false);
+    termion_1_5_1.default = true;
+    winapi_0_3_5.consoleapi = true;
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.minwinbase = true;
+    winapi_0_3_5.minwindef = true;
+    winapi_0_3_5.processenv = true;
+    winapi_0_3_5.winbase = true;
+  }) [ termion_1_5_1_features libc_0_2_42_features winapi_0_3_5_features ];
+  base64_0_9_2 = { features?(base64_0_9_2_features {}) }: base64_0_9_2_ {
+    dependencies = mapFeatures features ([ byteorder_1_2_3 safemem_0_2_0 ]);
+  };
+  base64_0_9_2_features = f: updateFeatures f (rec {
+    base64_0_9_2.default = (f.base64_0_9_2.default or true);
+    byteorder_1_2_3.default = true;
+    safemem_0_2_0.default = true;
+  }) [ byteorder_1_2_3_features safemem_0_2_0_features ];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  bitflags_1_0_3 = { features?(bitflags_1_0_3_features {}) }: bitflags_1_0_3_ {
+    features = mkFeatures (features.bitflags_1_0_3 or {});
+  };
+  bitflags_1_0_3_features = f: updateFeatures f (rec {
+    bitflags_1_0_3.default = (f.bitflags_1_0_3.default or true);
+  }) [];
+  build_const_0_2_1 = { features?(build_const_0_2_1_features {}) }: build_const_0_2_1_ {
+    features = mkFeatures (features.build_const_0_2_1 or {});
+  };
+  build_const_0_2_1_features = f: updateFeatures f (rec {
+    build_const_0_2_1.default = (f.build_const_0_2_1.default or true);
+    build_const_0_2_1.std =
+      (f.build_const_0_2_1.std or false) ||
+      (f.build_const_0_2_1.default or false) ||
+      (build_const_0_2_1.default or false);
+  }) [];
+  byteorder_1_2_3 = { features?(byteorder_1_2_3_features {}) }: byteorder_1_2_3_ {
+    features = mkFeatures (features.byteorder_1_2_3 or {});
+  };
+  byteorder_1_2_3_features = f: updateFeatures f (rec {
+    byteorder_1_2_3.default = (f.byteorder_1_2_3.default or true);
+    byteorder_1_2_3.std =
+      (f.byteorder_1_2_3.std or false) ||
+      (f.byteorder_1_2_3.default or false) ||
+      (byteorder_1_2_3.default or false);
+  }) [];
+  bytes_0_4_9 = { features?(bytes_0_4_9_features {}) }: bytes_0_4_9_ {
+    dependencies = mapFeatures features ([ byteorder_1_2_3 iovec_0_1_2 ]);
+    features = mkFeatures (features.bytes_0_4_9 or {});
+  };
+  bytes_0_4_9_features = f: updateFeatures f (rec {
+    byteorder_1_2_3.default = true;
+    byteorder_1_2_3.i128 =
+      (f.byteorder_1_2_3.i128 or false) ||
+      (bytes_0_4_9.i128 or false) ||
+      (f.bytes_0_4_9.i128 or false);
+    bytes_0_4_9.default = (f.bytes_0_4_9.default or true);
+    iovec_0_1_2.default = true;
+  }) [ byteorder_1_2_3_features iovec_0_1_2_features ];
+  cargo_download_0_1_1 = { features?(cargo_download_0_1_1_features {}) }: cargo_download_0_1_1_ {
+    dependencies = mapFeatures features ([ ansi_term_0_9_0 clap_2_32_0 conv_0_3_3 derive_error_0_0_3 exitcode_1_1_2 flate2_0_2_20 isatty_0_1_8 itertools_0_6_5 lazy_static_0_2_11 log_0_3_9 maplit_0_1_6 reqwest_0_8_6 semver_0_9_0 serde_json_1_0_24 slog_1_7_1 slog_envlogger_0_5_0 slog_stdlog_1_1_0 slog_stream_1_2_1 tar_0_4_16 time_0_1_40 ]);
+  };
+  cargo_download_0_1_1_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    cargo_download_0_1_1.default = (f.cargo_download_0_1_1.default or true);
+    clap_2_32_0.default = true;
+    conv_0_3_3.default = true;
+    derive_error_0_0_3.default = true;
+    exitcode_1_1_2.default = true;
+    flate2_0_2_20.default = true;
+    isatty_0_1_8.default = true;
+    itertools_0_6_5.default = true;
+    lazy_static_0_2_11.default = true;
+    log_0_3_9.default = true;
+    maplit_0_1_6.default = true;
+    reqwest_0_8_6.default = true;
+    semver_0_9_0.default = true;
+    serde_json_1_0_24.default = true;
+    slog_1_7_1.default = true;
+    slog_envlogger_0_5_0.default = true;
+    slog_stdlog_1_1_0.default = true;
+    slog_stream_1_2_1.default = true;
+    tar_0_4_16.default = true;
+    time_0_1_40.default = true;
+  }) [ ansi_term_0_9_0_features clap_2_32_0_features conv_0_3_3_features derive_error_0_0_3_features exitcode_1_1_2_features flate2_0_2_20_features isatty_0_1_8_features itertools_0_6_5_features lazy_static_0_2_11_features log_0_3_9_features maplit_0_1_6_features reqwest_0_8_6_features semver_0_9_0_features serde_json_1_0_24_features slog_1_7_1_features slog_envlogger_0_5_0_features slog_stdlog_1_1_0_features slog_stream_1_2_1_features tar_0_4_16_features time_0_1_40_features ];
+  case_0_1_0 = { features?(case_0_1_0_features {}) }: case_0_1_0_ {};
+  case_0_1_0_features = f: updateFeatures f (rec {
+    case_0_1_0.default = (f.case_0_1_0.default or true);
+  }) [];
+  cc_1_0_18 = { features?(cc_1_0_18_features {}) }: cc_1_0_18_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_18 or {});
+  };
+  cc_1_0_18_features = f: updateFeatures f (rec {
+    cc_1_0_18.default = (f.cc_1_0_18.default or true);
+    cc_1_0_18.rayon =
+      (f.cc_1_0_18.rayon or false) ||
+      (f.cc_1_0_18.parallel or false) ||
+      (cc_1_0_18.parallel or false);
+  }) [];
+  cfg_if_0_1_4 = { features?(cfg_if_0_1_4_features {}) }: cfg_if_0_1_4_ {};
+  cfg_if_0_1_4_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = (f.cfg_if_0_1_4.default or true);
+  }) [];
+  chrono_0_2_25 = { features?(chrono_0_2_25_features {}) }: chrono_0_2_25_ {
+    dependencies = mapFeatures features ([ num_0_1_42 time_0_1_40 ]);
+  };
+  chrono_0_2_25_features = f: updateFeatures f (rec {
+    chrono_0_2_25.default = (f.chrono_0_2_25.default or true);
+    num_0_1_42.default = (f.num_0_1_42.default or false);
+    time_0_1_40.default = true;
+  }) [ num_0_1_42_features time_0_1_40_features ];
+  clap_2_32_0 = { features?(clap_2_32_0_features {}) }: clap_2_32_0_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_3 textwrap_0_10_0 unicode_width_0_1_5 ]
+      ++ (if features.clap_2_32_0.atty or false then [ atty_0_2_11 ] else [])
+      ++ (if features.clap_2_32_0.strsim or false then [ strsim_0_7_0 ] else [])
+      ++ (if features.clap_2_32_0.vec_map or false then [ vec_map_0_8_1 ] else []))
+      ++ (if !(kernel == "windows") then mapFeatures features ([ ]
+      ++ (if features.clap_2_32_0.ansi_term or false then [ ansi_term_0_11_0 ] else [])) else []);
+    features = mkFeatures (features.clap_2_32_0 or {});
+  };
+  clap_2_32_0_features = f: updateFeatures f (rec {
+    ansi_term_0_11_0.default = true;
+    atty_0_2_11.default = true;
+    bitflags_1_0_3.default = true;
+    clap_2_32_0.ansi_term =
+      (f.clap_2_32_0.ansi_term or false) ||
+      (f.clap_2_32_0.color or false) ||
+      (clap_2_32_0.color or false);
+    clap_2_32_0.atty =
+      (f.clap_2_32_0.atty or false) ||
+      (f.clap_2_32_0.color or false) ||
+      (clap_2_32_0.color or false);
+    clap_2_32_0.clippy =
+      (f.clap_2_32_0.clippy or false) ||
+      (f.clap_2_32_0.lints or false) ||
+      (clap_2_32_0.lints or false);
+    clap_2_32_0.color =
+      (f.clap_2_32_0.color or false) ||
+      (f.clap_2_32_0.default or false) ||
+      (clap_2_32_0.default or false);
+    clap_2_32_0.default = (f.clap_2_32_0.default or true);
+    clap_2_32_0.strsim =
+      (f.clap_2_32_0.strsim or false) ||
+      (f.clap_2_32_0.suggestions or false) ||
+      (clap_2_32_0.suggestions or false);
+    clap_2_32_0.suggestions =
+      (f.clap_2_32_0.suggestions or false) ||
+      (f.clap_2_32_0.default or false) ||
+      (clap_2_32_0.default or false);
+    clap_2_32_0.term_size =
+      (f.clap_2_32_0.term_size or false) ||
+      (f.clap_2_32_0.wrap_help or false) ||
+      (clap_2_32_0.wrap_help or false);
+    clap_2_32_0.vec_map =
+      (f.clap_2_32_0.vec_map or false) ||
+      (f.clap_2_32_0.default or false) ||
+      (clap_2_32_0.default or false);
+    clap_2_32_0.yaml =
+      (f.clap_2_32_0.yaml or false) ||
+      (f.clap_2_32_0.doc or false) ||
+      (clap_2_32_0.doc or false);
+    clap_2_32_0.yaml-rust =
+      (f.clap_2_32_0.yaml-rust or false) ||
+      (f.clap_2_32_0.yaml or false) ||
+      (clap_2_32_0.yaml or false);
+    strsim_0_7_0.default = true;
+    textwrap_0_10_0.default = true;
+    textwrap_0_10_0.term_size =
+      (f.textwrap_0_10_0.term_size or false) ||
+      (clap_2_32_0.wrap_help or false) ||
+      (f.clap_2_32_0.wrap_help or false);
+    unicode_width_0_1_5.default = true;
+    vec_map_0_8_1.default = true;
+  }) [ atty_0_2_11_features bitflags_1_0_3_features strsim_0_7_0_features textwrap_0_10_0_features unicode_width_0_1_5_features vec_map_0_8_1_features ansi_term_0_11_0_features ];
+  conv_0_3_3 = { features?(conv_0_3_3_features {}) }: conv_0_3_3_ {
+    dependencies = mapFeatures features ([ custom_derive_0_1_7 ]);
+  };
+  conv_0_3_3_features = f: updateFeatures f (rec {
+    conv_0_3_3.default = (f.conv_0_3_3.default or true);
+    custom_derive_0_1_7.default = true;
+  }) [ custom_derive_0_1_7_features ];
+  core_foundation_0_2_3 = { features?(core_foundation_0_2_3_features {}) }: core_foundation_0_2_3_ {
+    dependencies = mapFeatures features ([ core_foundation_sys_0_2_3 libc_0_2_42 ]);
+  };
+  core_foundation_0_2_3_features = f: updateFeatures f (rec {
+    core_foundation_0_2_3.default = (f.core_foundation_0_2_3.default or true);
+    core_foundation_sys_0_2_3.default = true;
+    libc_0_2_42.default = true;
+  }) [ core_foundation_sys_0_2_3_features libc_0_2_42_features ];
+  core_foundation_sys_0_2_3 = { features?(core_foundation_sys_0_2_3_features {}) }: core_foundation_sys_0_2_3_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]);
+  };
+  core_foundation_sys_0_2_3_features = f: updateFeatures f (rec {
+    core_foundation_sys_0_2_3.default = (f.core_foundation_sys_0_2_3.default or true);
+    libc_0_2_42.default = true;
+  }) [ libc_0_2_42_features ];
+  crc_1_8_1 = { features?(crc_1_8_1_features {}) }: crc_1_8_1_ {
+    buildDependencies = mapFeatures features ([ build_const_0_2_1 ]);
+    features = mkFeatures (features.crc_1_8_1 or {});
+  };
+  crc_1_8_1_features = f: updateFeatures f (rec {
+    build_const_0_2_1.default = true;
+    crc_1_8_1.default = (f.crc_1_8_1.default or true);
+    crc_1_8_1.std =
+      (f.crc_1_8_1.std or false) ||
+      (f.crc_1_8_1.default or false) ||
+      (crc_1_8_1.default or false);
+  }) [ build_const_0_2_1_features ];
+  crossbeam_0_2_12 = { features?(crossbeam_0_2_12_features {}) }: crossbeam_0_2_12_ {
+    features = mkFeatures (features.crossbeam_0_2_12 or {});
+  };
+  crossbeam_0_2_12_features = f: updateFeatures f (rec {
+    crossbeam_0_2_12.default = (f.crossbeam_0_2_12.default or true);
+  }) [];
+  crossbeam_deque_0_3_1 = { features?(crossbeam_deque_0_3_1_features {}) }: crossbeam_deque_0_3_1_ {
+    dependencies = mapFeatures features ([ crossbeam_epoch_0_4_3 crossbeam_utils_0_3_2 ]);
+  };
+  crossbeam_deque_0_3_1_features = f: updateFeatures f (rec {
+    crossbeam_deque_0_3_1.default = (f.crossbeam_deque_0_3_1.default or true);
+    crossbeam_epoch_0_4_3.default = true;
+    crossbeam_utils_0_3_2.default = true;
+  }) [ crossbeam_epoch_0_4_3_features crossbeam_utils_0_3_2_features ];
+  crossbeam_epoch_0_4_3 = { features?(crossbeam_epoch_0_4_3_features {}) }: crossbeam_epoch_0_4_3_ {
+    dependencies = mapFeatures features ([ arrayvec_0_4_7 cfg_if_0_1_4 crossbeam_utils_0_3_2 memoffset_0_2_1 scopeguard_0_3_3 ]
+      ++ (if features.crossbeam_epoch_0_4_3.lazy_static or false then [ lazy_static_1_0_2 ] else []));
+    features = mkFeatures (features.crossbeam_epoch_0_4_3 or {});
+  };
+  crossbeam_epoch_0_4_3_features = f: updateFeatures f (rec {
+    arrayvec_0_4_7.default = (f.arrayvec_0_4_7.default or false);
+    arrayvec_0_4_7.use_union =
+      (f.arrayvec_0_4_7.use_union or false) ||
+      (crossbeam_epoch_0_4_3.nightly or false) ||
+      (f.crossbeam_epoch_0_4_3.nightly or false);
+    cfg_if_0_1_4.default = true;
+    crossbeam_epoch_0_4_3.default = (f.crossbeam_epoch_0_4_3.default or true);
+    crossbeam_epoch_0_4_3.lazy_static =
+      (f.crossbeam_epoch_0_4_3.lazy_static or false) ||
+      (f.crossbeam_epoch_0_4_3.use_std or false) ||
+      (crossbeam_epoch_0_4_3.use_std or false);
+    crossbeam_epoch_0_4_3.use_std =
+      (f.crossbeam_epoch_0_4_3.use_std or false) ||
+      (f.crossbeam_epoch_0_4_3.default or false) ||
+      (crossbeam_epoch_0_4_3.default or false);
+    crossbeam_utils_0_3_2.default = (f.crossbeam_utils_0_3_2.default or false);
+    crossbeam_utils_0_3_2.use_std =
+      (f.crossbeam_utils_0_3_2.use_std or false) ||
+      (crossbeam_epoch_0_4_3.use_std or false) ||
+      (f.crossbeam_epoch_0_4_3.use_std or false);
+    lazy_static_1_0_2.default = true;
+    memoffset_0_2_1.default = true;
+    scopeguard_0_3_3.default = (f.scopeguard_0_3_3.default or false);
+  }) [ arrayvec_0_4_7_features cfg_if_0_1_4_features crossbeam_utils_0_3_2_features lazy_static_1_0_2_features memoffset_0_2_1_features scopeguard_0_3_3_features ];
+  crossbeam_utils_0_3_2 = { features?(crossbeam_utils_0_3_2_features {}) }: crossbeam_utils_0_3_2_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ]);
+    features = mkFeatures (features.crossbeam_utils_0_3_2 or {});
+  };
+  crossbeam_utils_0_3_2_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    crossbeam_utils_0_3_2.default = (f.crossbeam_utils_0_3_2.default or true);
+    crossbeam_utils_0_3_2.use_std =
+      (f.crossbeam_utils_0_3_2.use_std or false) ||
+      (f.crossbeam_utils_0_3_2.default or false) ||
+      (crossbeam_utils_0_3_2.default or false);
+  }) [ cfg_if_0_1_4_features ];
+  custom_derive_0_1_7 = { features?(custom_derive_0_1_7_features {}) }: custom_derive_0_1_7_ {
+    features = mkFeatures (features.custom_derive_0_1_7 or {});
+  };
+  custom_derive_0_1_7_features = f: updateFeatures f (rec {
+    custom_derive_0_1_7.default = (f.custom_derive_0_1_7.default or true);
+    custom_derive_0_1_7.std =
+      (f.custom_derive_0_1_7.std or false) ||
+      (f.custom_derive_0_1_7.default or false) ||
+      (custom_derive_0_1_7.default or false);
+  }) [];
+  derive_error_0_0_3 = { features?(derive_error_0_0_3_features {}) }: derive_error_0_0_3_ {
+    dependencies = mapFeatures features ([ case_0_1_0 quote_0_3_15 syn_0_11_11 ]);
+  };
+  derive_error_0_0_3_features = f: updateFeatures f (rec {
+    case_0_1_0.default = true;
+    derive_error_0_0_3.default = (f.derive_error_0_0_3.default or true);
+    quote_0_3_15.default = true;
+    syn_0_11_11.default = true;
+  }) [ case_0_1_0_features quote_0_3_15_features syn_0_11_11_features ];
+  dtoa_0_4_3 = { features?(dtoa_0_4_3_features {}) }: dtoa_0_4_3_ {};
+  dtoa_0_4_3_features = f: updateFeatures f (rec {
+    dtoa_0_4_3.default = (f.dtoa_0_4_3.default or true);
+  }) [];
+  either_1_5_0 = { features?(either_1_5_0_features {}) }: either_1_5_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.either_1_5_0 or {});
+  };
+  either_1_5_0_features = f: updateFeatures f (rec {
+    either_1_5_0.default = (f.either_1_5_0.default or true);
+    either_1_5_0.use_std =
+      (f.either_1_5_0.use_std or false) ||
+      (f.either_1_5_0.default or false) ||
+      (either_1_5_0.default or false);
+  }) [];
+  encoding_rs_0_7_2 = { features?(encoding_rs_0_7_2_features {}) }: encoding_rs_0_7_2_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ]);
+    features = mkFeatures (features.encoding_rs_0_7_2 or {});
+  };
+  encoding_rs_0_7_2_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    encoding_rs_0_7_2.default = (f.encoding_rs_0_7_2.default or true);
+    encoding_rs_0_7_2.simd =
+      (f.encoding_rs_0_7_2.simd or false) ||
+      (f.encoding_rs_0_7_2.simd-accel or false) ||
+      (encoding_rs_0_7_2.simd-accel or false);
+  }) [ cfg_if_0_1_4_features ];
+  exitcode_1_1_2 = { features?(exitcode_1_1_2_features {}) }: exitcode_1_1_2_ {};
+  exitcode_1_1_2_features = f: updateFeatures f (rec {
+    exitcode_1_1_2.default = (f.exitcode_1_1_2.default or true);
+  }) [];
+  filetime_0_2_1 = { features?(filetime_0_2_1_features {}) }: filetime_0_2_1_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else []);
+  };
+  filetime_0_2_1_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    filetime_0_2_1.default = (f.filetime_0_2_1.default or true);
+    libc_0_2_42.default = true;
+    redox_syscall_0_1_40.default = true;
+  }) [ cfg_if_0_1_4_features redox_syscall_0_1_40_features libc_0_2_42_features ];
+  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]
+      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
+    features = mkFeatures (features.flate2_0_2_20 or {});
+  };
+  flate2_0_2_20_features = f: updateFeatures f (rec {
+    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
+    flate2_0_2_20.futures =
+      (f.flate2_0_2_20.futures or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    flate2_0_2_20.libz-sys =
+      (f.flate2_0_2_20.libz-sys or false) ||
+      (f.flate2_0_2_20.zlib or false) ||
+      (flate2_0_2_20.zlib or false);
+    flate2_0_2_20.miniz-sys =
+      (f.flate2_0_2_20.miniz-sys or false) ||
+      (f.flate2_0_2_20.default or false) ||
+      (flate2_0_2_20.default or false);
+    flate2_0_2_20.tokio-io =
+      (f.flate2_0_2_20.tokio-io or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    libc_0_2_42.default = true;
+    miniz_sys_0_1_10.default = true;
+  }) [ libc_0_2_42_features miniz_sys_0_1_10_features ];
+  foreign_types_0_3_2 = { features?(foreign_types_0_3_2_features {}) }: foreign_types_0_3_2_ {
+    dependencies = mapFeatures features ([ foreign_types_shared_0_1_1 ]);
+  };
+  foreign_types_0_3_2_features = f: updateFeatures f (rec {
+    foreign_types_0_3_2.default = (f.foreign_types_0_3_2.default or true);
+    foreign_types_shared_0_1_1.default = true;
+  }) [ foreign_types_shared_0_1_1_features ];
+  foreign_types_shared_0_1_1 = { features?(foreign_types_shared_0_1_1_features {}) }: foreign_types_shared_0_1_1_ {};
+  foreign_types_shared_0_1_1_features = f: updateFeatures f (rec {
+    foreign_types_shared_0_1_1.default = (f.foreign_types_shared_0_1_1.default or true);
+  }) [];
+  fuchsia_zircon_0_3_3 = { features?(fuchsia_zircon_0_3_3_features {}) }: fuchsia_zircon_0_3_3_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_3 fuchsia_zircon_sys_0_3_3 ]);
+  };
+  fuchsia_zircon_0_3_3_features = f: updateFeatures f (rec {
+    bitflags_1_0_3.default = true;
+    fuchsia_zircon_0_3_3.default = (f.fuchsia_zircon_0_3_3.default or true);
+    fuchsia_zircon_sys_0_3_3.default = true;
+  }) [ bitflags_1_0_3_features fuchsia_zircon_sys_0_3_3_features ];
+  fuchsia_zircon_sys_0_3_3 = { features?(fuchsia_zircon_sys_0_3_3_features {}) }: fuchsia_zircon_sys_0_3_3_ {};
+  fuchsia_zircon_sys_0_3_3_features = f: updateFeatures f (rec {
+    fuchsia_zircon_sys_0_3_3.default = (f.fuchsia_zircon_sys_0_3_3.default or true);
+  }) [];
+  futures_0_1_23 = { features?(futures_0_1_23_features {}) }: futures_0_1_23_ {
+    features = mkFeatures (features.futures_0_1_23 or {});
+  };
+  futures_0_1_23_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = (f.futures_0_1_23.default or true);
+    futures_0_1_23.use_std =
+      (f.futures_0_1_23.use_std or false) ||
+      (f.futures_0_1_23.default or false) ||
+      (futures_0_1_23.default or false);
+    futures_0_1_23.with-deprecated =
+      (f.futures_0_1_23.with-deprecated or false) ||
+      (f.futures_0_1_23.default or false) ||
+      (futures_0_1_23.default or false);
+  }) [];
+  futures_cpupool_0_1_8 = { features?(futures_cpupool_0_1_8_features {}) }: futures_cpupool_0_1_8_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 num_cpus_1_8_0 ]);
+    features = mkFeatures (features.futures_cpupool_0_1_8 or {});
+  };
+  futures_cpupool_0_1_8_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = (f.futures_0_1_23.default or false);
+    futures_0_1_23.use_std = true;
+    futures_0_1_23.with-deprecated =
+      (f.futures_0_1_23.with-deprecated or false) ||
+      (futures_cpupool_0_1_8.with-deprecated or false) ||
+      (f.futures_cpupool_0_1_8.with-deprecated or false);
+    futures_cpupool_0_1_8.default = (f.futures_cpupool_0_1_8.default or true);
+    futures_cpupool_0_1_8.with-deprecated =
+      (f.futures_cpupool_0_1_8.with-deprecated or false) ||
+      (f.futures_cpupool_0_1_8.default or false) ||
+      (futures_cpupool_0_1_8.default or false);
+    num_cpus_1_8_0.default = true;
+  }) [ futures_0_1_23_features num_cpus_1_8_0_features ];
+  httparse_1_3_2 = { features?(httparse_1_3_2_features {}) }: httparse_1_3_2_ {
+    features = mkFeatures (features.httparse_1_3_2 or {});
+  };
+  httparse_1_3_2_features = f: updateFeatures f (rec {
+    httparse_1_3_2.default = (f.httparse_1_3_2.default or true);
+    httparse_1_3_2.std =
+      (f.httparse_1_3_2.std or false) ||
+      (f.httparse_1_3_2.default or false) ||
+      (httparse_1_3_2.default or false);
+  }) [];
+  hyper_0_11_27 = { features?(hyper_0_11_27_features {}) }: hyper_0_11_27_ {
+    dependencies = mapFeatures features ([ base64_0_9_2 bytes_0_4_9 futures_0_1_23 futures_cpupool_0_1_8 httparse_1_3_2 iovec_0_1_2 language_tags_0_2_2 log_0_4_3 mime_0_3_8 net2_0_2_33 percent_encoding_1_0_1 relay_0_1_1 time_0_1_40 tokio_core_0_1_17 tokio_io_0_1_7 tokio_service_0_1_0 unicase_2_1_0 want_0_0_4 ]
+      ++ (if features.hyper_0_11_27.tokio-proto or false then [ tokio_proto_0_1_1 ] else []));
+    features = mkFeatures (features.hyper_0_11_27 or {});
+  };
+  hyper_0_11_27_features = f: updateFeatures f (rec {
+    base64_0_9_2.default = true;
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    futures_cpupool_0_1_8.default = true;
+    httparse_1_3_2.default = true;
+    hyper_0_11_27.default = (f.hyper_0_11_27.default or true);
+    hyper_0_11_27.http =
+      (f.hyper_0_11_27.http or false) ||
+      (f.hyper_0_11_27.compat or false) ||
+      (hyper_0_11_27.compat or false);
+    hyper_0_11_27.server-proto =
+      (f.hyper_0_11_27.server-proto or false) ||
+      (f.hyper_0_11_27.default or false) ||
+      (hyper_0_11_27.default or false);
+    hyper_0_11_27.tokio-proto =
+      (f.hyper_0_11_27.tokio-proto or false) ||
+      (f.hyper_0_11_27.server-proto or false) ||
+      (hyper_0_11_27.server-proto or false);
+    iovec_0_1_2.default = true;
+    language_tags_0_2_2.default = true;
+    log_0_4_3.default = true;
+    mime_0_3_8.default = true;
+    net2_0_2_33.default = true;
+    percent_encoding_1_0_1.default = true;
+    relay_0_1_1.default = true;
+    time_0_1_40.default = true;
+    tokio_core_0_1_17.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_proto_0_1_1.default = true;
+    tokio_service_0_1_0.default = true;
+    unicase_2_1_0.default = true;
+    want_0_0_4.default = true;
+  }) [ base64_0_9_2_features bytes_0_4_9_features futures_0_1_23_features futures_cpupool_0_1_8_features httparse_1_3_2_features iovec_0_1_2_features language_tags_0_2_2_features log_0_4_3_features mime_0_3_8_features net2_0_2_33_features percent_encoding_1_0_1_features relay_0_1_1_features time_0_1_40_features tokio_core_0_1_17_features tokio_io_0_1_7_features tokio_proto_0_1_1_features tokio_service_0_1_0_features unicase_2_1_0_features want_0_0_4_features ];
+  hyper_tls_0_1_3 = { features?(hyper_tls_0_1_3_features {}) }: hyper_tls_0_1_3_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 hyper_0_11_27 native_tls_0_1_5 tokio_core_0_1_17 tokio_io_0_1_7 tokio_service_0_1_0 tokio_tls_0_1_4 ]);
+  };
+  hyper_tls_0_1_3_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    hyper_0_11_27.default = true;
+    hyper_tls_0_1_3.default = (f.hyper_tls_0_1_3.default or true);
+    native_tls_0_1_5.default = true;
+    tokio_core_0_1_17.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_service_0_1_0.default = true;
+    tokio_tls_0_1_4.default = true;
+  }) [ futures_0_1_23_features hyper_0_11_27_features native_tls_0_1_5_features tokio_core_0_1_17_features tokio_io_0_1_7_features tokio_service_0_1_0_features tokio_tls_0_1_4_features ];
+  idna_0_1_5 = { features?(idna_0_1_5_features {}) }: idna_0_1_5_ {
+    dependencies = mapFeatures features ([ matches_0_1_7 unicode_bidi_0_3_4 unicode_normalization_0_1_7 ]);
+  };
+  idna_0_1_5_features = f: updateFeatures f (rec {
+    idna_0_1_5.default = (f.idna_0_1_5.default or true);
+    matches_0_1_7.default = true;
+    unicode_bidi_0_3_4.default = true;
+    unicode_normalization_0_1_7.default = true;
+  }) [ matches_0_1_7_features unicode_bidi_0_3_4_features unicode_normalization_0_1_7_features ];
+  iovec_0_1_2 = { features?(iovec_0_1_2_features {}) }: iovec_0_1_2_ {
+    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+  };
+  iovec_0_1_2_features = f: updateFeatures f (rec {
+    iovec_0_1_2.default = (f.iovec_0_1_2.default or true);
+    libc_0_2_42.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_42_features winapi_0_2_8_features ];
+  isatty_0_1_8 = { features?(isatty_0_1_8_features {}) }: isatty_0_1_8_ {
+    dependencies = (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+  };
+  isatty_0_1_8_features = f: updateFeatures f (rec {
+    isatty_0_1_8.default = (f.isatty_0_1_8.default or true);
+    libc_0_2_42.default = true;
+    redox_syscall_0_1_40.default = true;
+    winapi_0_3_5.consoleapi = true;
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.fileapi = true;
+    winapi_0_3_5.minwinbase = true;
+    winapi_0_3_5.minwindef = true;
+    winapi_0_3_5.processenv = true;
+    winapi_0_3_5.winbase = true;
+    winapi_0_3_5.winnt = true;
+  }) [ redox_syscall_0_1_40_features libc_0_2_42_features winapi_0_3_5_features ];
+  itertools_0_6_5 = { features?(itertools_0_6_5_features {}) }: itertools_0_6_5_ {
+    dependencies = mapFeatures features ([ either_1_5_0 ]);
+  };
+  itertools_0_6_5_features = f: updateFeatures f (rec {
+    either_1_5_0.default = (f.either_1_5_0.default or false);
+    itertools_0_6_5.default = (f.itertools_0_6_5.default or true);
+  }) [ either_1_5_0_features ];
+  itoa_0_4_2 = { features?(itoa_0_4_2_features {}) }: itoa_0_4_2_ {
+    features = mkFeatures (features.itoa_0_4_2 or {});
+  };
+  itoa_0_4_2_features = f: updateFeatures f (rec {
+    itoa_0_4_2.default = (f.itoa_0_4_2.default or true);
+    itoa_0_4_2.std =
+      (f.itoa_0_4_2.std or false) ||
+      (f.itoa_0_4_2.default or false) ||
+      (itoa_0_4_2.default or false);
+  }) [];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  language_tags_0_2_2 = { features?(language_tags_0_2_2_features {}) }: language_tags_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.language_tags_0_2_2 or {});
+  };
+  language_tags_0_2_2_features = f: updateFeatures f (rec {
+    language_tags_0_2_2.default = (f.language_tags_0_2_2.default or true);
+    language_tags_0_2_2.heapsize =
+      (f.language_tags_0_2_2.heapsize or false) ||
+      (f.language_tags_0_2_2.heap_size or false) ||
+      (language_tags_0_2_2.heap_size or false);
+    language_tags_0_2_2.heapsize_plugin =
+      (f.language_tags_0_2_2.heapsize_plugin or false) ||
+      (f.language_tags_0_2_2.heap_size or false) ||
+      (language_tags_0_2_2.heap_size or false);
+  }) [];
+  lazy_static_0_2_11 = { features?(lazy_static_0_2_11_features {}) }: lazy_static_0_2_11_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_11 or {});
+  };
+  lazy_static_0_2_11_features = f: updateFeatures f (rec {
+    lazy_static_0_2_11.compiletest_rs =
+      (f.lazy_static_0_2_11.compiletest_rs or false) ||
+      (f.lazy_static_0_2_11.compiletest or false) ||
+      (lazy_static_0_2_11.compiletest or false);
+    lazy_static_0_2_11.default = (f.lazy_static_0_2_11.default or true);
+    lazy_static_0_2_11.nightly =
+      (f.lazy_static_0_2_11.nightly or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+    lazy_static_0_2_11.spin =
+      (f.lazy_static_0_2_11.spin or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+  }) [];
+  lazy_static_1_0_2 = { features?(lazy_static_1_0_2_features {}) }: lazy_static_1_0_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_1_0_2 or {});
+  };
+  lazy_static_1_0_2_features = f: updateFeatures f (rec {
+    lazy_static_1_0_2.default = (f.lazy_static_1_0_2.default or true);
+    lazy_static_1_0_2.nightly =
+      (f.lazy_static_1_0_2.nightly or false) ||
+      (f.lazy_static_1_0_2.spin_no_std or false) ||
+      (lazy_static_1_0_2.spin_no_std or false);
+    lazy_static_1_0_2.spin =
+      (f.lazy_static_1_0_2.spin or false) ||
+      (f.lazy_static_1_0_2.spin_no_std or false) ||
+      (lazy_static_1_0_2.spin_no_std or false);
+  }) [];
+  lazycell_0_6_0 = { features?(lazycell_0_6_0_features {}) }: lazycell_0_6_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazycell_0_6_0 or {});
+  };
+  lazycell_0_6_0_features = f: updateFeatures f (rec {
+    lazycell_0_6_0.clippy =
+      (f.lazycell_0_6_0.clippy or false) ||
+      (f.lazycell_0_6_0.nightly-testing or false) ||
+      (lazycell_0_6_0.nightly-testing or false);
+    lazycell_0_6_0.default = (f.lazycell_0_6_0.default or true);
+    lazycell_0_6_0.nightly =
+      (f.lazycell_0_6_0.nightly or false) ||
+      (f.lazycell_0_6_0.nightly-testing or false) ||
+      (lazycell_0_6_0.nightly-testing or false);
+  }) [];
+  libc_0_2_42 = { features?(libc_0_2_42_features {}) }: libc_0_2_42_ {
+    features = mkFeatures (features.libc_0_2_42 or {});
+  };
+  libc_0_2_42_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = (f.libc_0_2_42.default or true);
+    libc_0_2_42.use_std =
+      (f.libc_0_2_42.use_std or false) ||
+      (f.libc_0_2_42.default or false) ||
+      (libc_0_2_42.default or false);
+  }) [];
+  libflate_0_1_16 = { features?(libflate_0_1_16_features {}) }: libflate_0_1_16_ {
+    dependencies = mapFeatures features ([ adler32_1_0_3 byteorder_1_2_3 crc_1_8_1 ]);
+  };
+  libflate_0_1_16_features = f: updateFeatures f (rec {
+    adler32_1_0_3.default = true;
+    byteorder_1_2_3.default = true;
+    crc_1_8_1.default = true;
+    libflate_0_1_16.default = (f.libflate_0_1_16.default or true);
+  }) [ adler32_1_0_3_features byteorder_1_2_3_features crc_1_8_1_features ];
+  log_0_3_9 = { features?(log_0_3_9_features {}) }: log_0_3_9_ {
+    dependencies = mapFeatures features ([ log_0_4_3 ]);
+    features = mkFeatures (features.log_0_3_9 or {});
+  };
+  log_0_3_9_features = f: updateFeatures f (rec {
+    log_0_3_9.default = (f.log_0_3_9.default or true);
+    log_0_3_9.use_std =
+      (f.log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.default or false) ||
+      (log_0_3_9.default or false);
+    log_0_4_3.default = true;
+    log_0_4_3.max_level_debug =
+      (f.log_0_4_3.max_level_debug or false) ||
+      (log_0_3_9.max_level_debug or false) ||
+      (f.log_0_3_9.max_level_debug or false);
+    log_0_4_3.max_level_error =
+      (f.log_0_4_3.max_level_error or false) ||
+      (log_0_3_9.max_level_error or false) ||
+      (f.log_0_3_9.max_level_error or false);
+    log_0_4_3.max_level_info =
+      (f.log_0_4_3.max_level_info or false) ||
+      (log_0_3_9.max_level_info or false) ||
+      (f.log_0_3_9.max_level_info or false);
+    log_0_4_3.max_level_off =
+      (f.log_0_4_3.max_level_off or false) ||
+      (log_0_3_9.max_level_off or false) ||
+      (f.log_0_3_9.max_level_off or false);
+    log_0_4_3.max_level_trace =
+      (f.log_0_4_3.max_level_trace or false) ||
+      (log_0_3_9.max_level_trace or false) ||
+      (f.log_0_3_9.max_level_trace or false);
+    log_0_4_3.max_level_warn =
+      (f.log_0_4_3.max_level_warn or false) ||
+      (log_0_3_9.max_level_warn or false) ||
+      (f.log_0_3_9.max_level_warn or false);
+    log_0_4_3.release_max_level_debug =
+      (f.log_0_4_3.release_max_level_debug or false) ||
+      (log_0_3_9.release_max_level_debug or false) ||
+      (f.log_0_3_9.release_max_level_debug or false);
+    log_0_4_3.release_max_level_error =
+      (f.log_0_4_3.release_max_level_error or false) ||
+      (log_0_3_9.release_max_level_error or false) ||
+      (f.log_0_3_9.release_max_level_error or false);
+    log_0_4_3.release_max_level_info =
+      (f.log_0_4_3.release_max_level_info or false) ||
+      (log_0_3_9.release_max_level_info or false) ||
+      (f.log_0_3_9.release_max_level_info or false);
+    log_0_4_3.release_max_level_off =
+      (f.log_0_4_3.release_max_level_off or false) ||
+      (log_0_3_9.release_max_level_off or false) ||
+      (f.log_0_3_9.release_max_level_off or false);
+    log_0_4_3.release_max_level_trace =
+      (f.log_0_4_3.release_max_level_trace or false) ||
+      (log_0_3_9.release_max_level_trace or false) ||
+      (f.log_0_3_9.release_max_level_trace or false);
+    log_0_4_3.release_max_level_warn =
+      (f.log_0_4_3.release_max_level_warn or false) ||
+      (log_0_3_9.release_max_level_warn or false) ||
+      (f.log_0_3_9.release_max_level_warn or false);
+    log_0_4_3.std =
+      (f.log_0_4_3.std or false) ||
+      (log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.use_std or false);
+  }) [ log_0_4_3_features ];
+  log_0_4_3 = { features?(log_0_4_3_features {}) }: log_0_4_3_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ]);
+    features = mkFeatures (features.log_0_4_3 or {});
+  };
+  log_0_4_3_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    log_0_4_3.default = (f.log_0_4_3.default or true);
+  }) [ cfg_if_0_1_4_features ];
+  maplit_0_1_6 = { features?(maplit_0_1_6_features {}) }: maplit_0_1_6_ {};
+  maplit_0_1_6_features = f: updateFeatures f (rec {
+    maplit_0_1_6.default = (f.maplit_0_1_6.default or true);
+  }) [];
+  matches_0_1_7 = { features?(matches_0_1_7_features {}) }: matches_0_1_7_ {};
+  matches_0_1_7_features = f: updateFeatures f (rec {
+    matches_0_1_7.default = (f.matches_0_1_7.default or true);
+  }) [];
+  memchr_0_1_11 = { features?(memchr_0_1_11_features {}) }: memchr_0_1_11_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]);
+  };
+  memchr_0_1_11_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = true;
+    memchr_0_1_11.default = (f.memchr_0_1_11.default or true);
+  }) [ libc_0_2_42_features ];
+  memoffset_0_2_1 = { features?(memoffset_0_2_1_features {}) }: memoffset_0_2_1_ {};
+  memoffset_0_2_1_features = f: updateFeatures f (rec {
+    memoffset_0_2_1.default = (f.memoffset_0_2_1.default or true);
+  }) [];
+  mime_0_3_8 = { features?(mime_0_3_8_features {}) }: mime_0_3_8_ {
+    dependencies = mapFeatures features ([ unicase_2_1_0 ]);
+  };
+  mime_0_3_8_features = f: updateFeatures f (rec {
+    mime_0_3_8.default = (f.mime_0_3_8.default or true);
+    unicase_2_1_0.default = true;
+  }) [ unicase_2_1_0_features ];
+  mime_guess_2_0_0_alpha_6 = { features?(mime_guess_2_0_0_alpha_6_features {}) }: mime_guess_2_0_0_alpha_6_ {
+    dependencies = mapFeatures features ([ mime_0_3_8 phf_0_7_22 unicase_1_4_2 ]);
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_22 unicase_1_4_2 ]);
+    features = mkFeatures (features.mime_guess_2_0_0_alpha_6 or {});
+  };
+  mime_guess_2_0_0_alpha_6_features = f: updateFeatures f (rec {
+    mime_0_3_8.default = true;
+    mime_guess_2_0_0_alpha_6.default = (f.mime_guess_2_0_0_alpha_6.default or true);
+    phf_0_7_22.default = true;
+    phf_0_7_22.unicase = true;
+    phf_codegen_0_7_22.default = true;
+    unicase_1_4_2.default = true;
+  }) [ mime_0_3_8_features phf_0_7_22_features unicase_1_4_2_features phf_codegen_0_7_22_features unicase_1_4_2_features ];
+  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]);
+    buildDependencies = mapFeatures features ([ cc_1_0_18 ]);
+  };
+  miniz_sys_0_1_10_features = f: updateFeatures f (rec {
+    cc_1_0_18.default = true;
+    libc_0_2_42.default = true;
+    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
+  }) [ libc_0_2_42_features cc_1_0_18_features ];
+  mio_0_6_15 = { features?(mio_0_6_15_features {}) }: mio_0_6_15_ {
+    dependencies = mapFeatures features ([ iovec_0_1_2 lazycell_0_6_0 log_0_4_3 net2_0_2_33 slab_0_4_0 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 fuchsia_zircon_sys_0_3_3 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 miow_0_2_1 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.mio_0_6_15 or {});
+  };
+  mio_0_6_15_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_3.default = true;
+    fuchsia_zircon_sys_0_3_3.default = true;
+    iovec_0_1_2.default = true;
+    kernel32_sys_0_2_2.default = true;
+    lazycell_0_6_0.default = true;
+    libc_0_2_42.default = true;
+    log_0_4_3.default = true;
+    mio_0_6_15.default = (f.mio_0_6_15.default or true);
+    mio_0_6_15.with-deprecated =
+      (f.mio_0_6_15.with-deprecated or false) ||
+      (f.mio_0_6_15.default or false) ||
+      (mio_0_6_15.default or false);
+    miow_0_2_1.default = true;
+    net2_0_2_33.default = true;
+    slab_0_4_0.default = true;
+    winapi_0_2_8.default = true;
+  }) [ iovec_0_1_2_features lazycell_0_6_0_features log_0_4_3_features net2_0_2_33_features slab_0_4_0_features fuchsia_zircon_0_3_3_features fuchsia_zircon_sys_0_3_3_features libc_0_2_42_features kernel32_sys_0_2_2_features miow_0_2_1_features winapi_0_2_8_features ];
+  miow_0_2_1 = { features?(miow_0_2_1_features {}) }: miow_0_2_1_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 net2_0_2_33 winapi_0_2_8 ws2_32_sys_0_2_1 ]);
+  };
+  miow_0_2_1_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    miow_0_2_1.default = (f.miow_0_2_1.default or true);
+    net2_0_2_33.default = (f.net2_0_2_33.default or false);
+    winapi_0_2_8.default = true;
+    ws2_32_sys_0_2_1.default = true;
+  }) [ kernel32_sys_0_2_2_features net2_0_2_33_features winapi_0_2_8_features ws2_32_sys_0_2_1_features ];
+  native_tls_0_1_5 = { features?(native_tls_0_1_5_features {}) }: native_tls_0_1_5_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_11 ])
+      ++ (if kernel == "darwin" || kernel == "ios" then mapFeatures features ([ libc_0_2_42 security_framework_0_1_16 security_framework_sys_0_1_16 tempdir_0_3_7 ]) else [])
+      ++ (if !(kernel == "windows" || kernel == "darwin" || kernel == "ios") then mapFeatures features ([ openssl_0_9_24 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ schannel_0_1_13 ]) else []);
+  };
+  native_tls_0_1_5_features = f: updateFeatures f (rec {
+    lazy_static_0_2_11.default = true;
+    libc_0_2_42.default = true;
+    native_tls_0_1_5.default = (f.native_tls_0_1_5.default or true);
+    openssl_0_9_24.default = true;
+    schannel_0_1_13.default = true;
+    security_framework_0_1_16.OSX_10_8 = true;
+    security_framework_0_1_16.default = true;
+    security_framework_sys_0_1_16.default = true;
+    tempdir_0_3_7.default = true;
+  }) [ lazy_static_0_2_11_features libc_0_2_42_features security_framework_0_1_16_features security_framework_sys_0_1_16_features tempdir_0_3_7_features openssl_0_9_24_features schannel_0_1_13_features ];
+  net2_0_2_33 = { features?(net2_0_2_33_features {}) }: net2_0_2_33_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ])
+      ++ (if kernel == "redox" || (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+    features = mkFeatures (features.net2_0_2_33 or {});
+  };
+  net2_0_2_33_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    libc_0_2_42.default = true;
+    net2_0_2_33.default = (f.net2_0_2_33.default or true);
+    net2_0_2_33.duration =
+      (f.net2_0_2_33.duration or false) ||
+      (f.net2_0_2_33.default or false) ||
+      (net2_0_2_33.default or false);
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.handleapi = true;
+    winapi_0_3_5.winsock2 = true;
+    winapi_0_3_5.ws2def = true;
+    winapi_0_3_5.ws2ipdef = true;
+    winapi_0_3_5.ws2tcpip = true;
+  }) [ cfg_if_0_1_4_features libc_0_2_42_features winapi_0_3_5_features ];
+  nodrop_0_1_12 = { features?(nodrop_0_1_12_features {}) }: nodrop_0_1_12_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.nodrop_0_1_12 or {});
+  };
+  nodrop_0_1_12_features = f: updateFeatures f (rec {
+    nodrop_0_1_12.default = (f.nodrop_0_1_12.default or true);
+    nodrop_0_1_12.nodrop-union =
+      (f.nodrop_0_1_12.nodrop-union or false) ||
+      (f.nodrop_0_1_12.use_union or false) ||
+      (nodrop_0_1_12.use_union or false);
+    nodrop_0_1_12.std =
+      (f.nodrop_0_1_12.std or false) ||
+      (f.nodrop_0_1_12.default or false) ||
+      (nodrop_0_1_12.default or false);
+  }) [];
+  num_0_1_42 = { features?(num_0_1_42_features {}) }: num_0_1_42_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_39 num_iter_0_1_37 num_traits_0_2_5 ]);
+    features = mkFeatures (features.num_0_1_42 or {});
+  };
+  num_0_1_42_features = f: updateFeatures f (rec {
+    num_0_1_42.bigint =
+      (f.num_0_1_42.bigint or false) ||
+      (f.num_0_1_42.default or false) ||
+      (num_0_1_42.default or false);
+    num_0_1_42.complex =
+      (f.num_0_1_42.complex or false) ||
+      (f.num_0_1_42.default or false) ||
+      (num_0_1_42.default or false);
+    num_0_1_42.default = (f.num_0_1_42.default or true);
+    num_0_1_42.num-bigint =
+      (f.num_0_1_42.num-bigint or false) ||
+      (f.num_0_1_42.bigint or false) ||
+      (num_0_1_42.bigint or false);
+    num_0_1_42.num-complex =
+      (f.num_0_1_42.num-complex or false) ||
+      (f.num_0_1_42.complex or false) ||
+      (num_0_1_42.complex or false);
+    num_0_1_42.num-rational =
+      (f.num_0_1_42.num-rational or false) ||
+      (f.num_0_1_42.rational or false) ||
+      (num_0_1_42.rational or false);
+    num_0_1_42.rational =
+      (f.num_0_1_42.rational or false) ||
+      (f.num_0_1_42.default or false) ||
+      (num_0_1_42.default or false);
+    num_0_1_42.rustc-serialize =
+      (f.num_0_1_42.rustc-serialize or false) ||
+      (f.num_0_1_42.default or false) ||
+      (num_0_1_42.default or false);
+    num_integer_0_1_39.default = true;
+    num_iter_0_1_37.default = true;
+    num_traits_0_2_5.default = true;
+  }) [ num_integer_0_1_39_features num_iter_0_1_37_features num_traits_0_2_5_features ];
+  num_integer_0_1_39 = { features?(num_integer_0_1_39_features {}) }: num_integer_0_1_39_ {
+    dependencies = mapFeatures features ([ num_traits_0_2_5 ]);
+    features = mkFeatures (features.num_integer_0_1_39 or {});
+  };
+  num_integer_0_1_39_features = f: updateFeatures f (rec {
+    num_integer_0_1_39.default = (f.num_integer_0_1_39.default or true);
+    num_integer_0_1_39.std =
+      (f.num_integer_0_1_39.std or false) ||
+      (f.num_integer_0_1_39.default or false) ||
+      (num_integer_0_1_39.default or false);
+    num_traits_0_2_5.default = (f.num_traits_0_2_5.default or false);
+    num_traits_0_2_5.i128 =
+      (f.num_traits_0_2_5.i128 or false) ||
+      (num_integer_0_1_39.i128 or false) ||
+      (f.num_integer_0_1_39.i128 or false);
+    num_traits_0_2_5.std =
+      (f.num_traits_0_2_5.std or false) ||
+      (num_integer_0_1_39.std or false) ||
+      (f.num_integer_0_1_39.std or false);
+  }) [ num_traits_0_2_5_features ];
+  num_iter_0_1_37 = { features?(num_iter_0_1_37_features {}) }: num_iter_0_1_37_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_39 num_traits_0_2_5 ]);
+    features = mkFeatures (features.num_iter_0_1_37 or {});
+  };
+  num_iter_0_1_37_features = f: updateFeatures f (rec {
+    num_integer_0_1_39.default = (f.num_integer_0_1_39.default or false);
+    num_integer_0_1_39.i128 =
+      (f.num_integer_0_1_39.i128 or false) ||
+      (num_iter_0_1_37.i128 or false) ||
+      (f.num_iter_0_1_37.i128 or false);
+    num_integer_0_1_39.std =
+      (f.num_integer_0_1_39.std or false) ||
+      (num_iter_0_1_37.std or false) ||
+      (f.num_iter_0_1_37.std or false);
+    num_iter_0_1_37.default = (f.num_iter_0_1_37.default or true);
+    num_iter_0_1_37.std =
+      (f.num_iter_0_1_37.std or false) ||
+      (f.num_iter_0_1_37.default or false) ||
+      (num_iter_0_1_37.default or false);
+    num_traits_0_2_5.default = (f.num_traits_0_2_5.default or false);
+    num_traits_0_2_5.i128 =
+      (f.num_traits_0_2_5.i128 or false) ||
+      (num_iter_0_1_37.i128 or false) ||
+      (f.num_iter_0_1_37.i128 or false);
+    num_traits_0_2_5.std =
+      (f.num_traits_0_2_5.std or false) ||
+      (num_iter_0_1_37.std or false) ||
+      (f.num_iter_0_1_37.std or false);
+  }) [ num_integer_0_1_39_features num_traits_0_2_5_features ];
+  num_traits_0_2_5 = { features?(num_traits_0_2_5_features {}) }: num_traits_0_2_5_ {
+    features = mkFeatures (features.num_traits_0_2_5 or {});
+  };
+  num_traits_0_2_5_features = f: updateFeatures f (rec {
+    num_traits_0_2_5.default = (f.num_traits_0_2_5.default or true);
+    num_traits_0_2_5.std =
+      (f.num_traits_0_2_5.std or false) ||
+      (f.num_traits_0_2_5.default or false) ||
+      (num_traits_0_2_5.default or false);
+  }) [];
+  num_cpus_1_8_0 = { features?(num_cpus_1_8_0_features {}) }: num_cpus_1_8_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]);
+  };
+  num_cpus_1_8_0_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = true;
+    num_cpus_1_8_0.default = (f.num_cpus_1_8_0.default or true);
+  }) [ libc_0_2_42_features ];
+  openssl_0_9_24 = { features?(openssl_0_9_24_features {}) }: openssl_0_9_24_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 foreign_types_0_3_2 lazy_static_1_0_2 libc_0_2_42 openssl_sys_0_9_33 ]);
+    features = mkFeatures (features.openssl_0_9_24 or {});
+  };
+  openssl_0_9_24_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    foreign_types_0_3_2.default = true;
+    lazy_static_1_0_2.default = true;
+    libc_0_2_42.default = true;
+    openssl_0_9_24.default = (f.openssl_0_9_24.default or true);
+    openssl_sys_0_9_33.default = true;
+  }) [ bitflags_0_9_1_features foreign_types_0_3_2_features lazy_static_1_0_2_features libc_0_2_42_features openssl_sys_0_9_33_features ];
+  openssl_sys_0_9_33 = { features?(openssl_sys_0_9_33_features {}) }: openssl_sys_0_9_33_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ])
+      ++ (if abi == "msvc" then mapFeatures features ([]) else []);
+    buildDependencies = mapFeatures features ([ cc_1_0_18 pkg_config_0_3_12 ]);
+  };
+  openssl_sys_0_9_33_features = f: updateFeatures f (rec {
+    cc_1_0_18.default = true;
+    libc_0_2_42.default = true;
+    openssl_sys_0_9_33.default = (f.openssl_sys_0_9_33.default or true);
+    pkg_config_0_3_12.default = true;
+  }) [ libc_0_2_42_features cc_1_0_18_features pkg_config_0_3_12_features ];
+  percent_encoding_1_0_1 = { features?(percent_encoding_1_0_1_features {}) }: percent_encoding_1_0_1_ {};
+  percent_encoding_1_0_1_features = f: updateFeatures f (rec {
+    percent_encoding_1_0_1.default = (f.percent_encoding_1_0_1.default or true);
+  }) [];
+  phf_0_7_22 = { features?(phf_0_7_22_features {}) }: phf_0_7_22_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_22 ]);
+    features = mkFeatures (features.phf_0_7_22 or {});
+  };
+  phf_0_7_22_features = f: updateFeatures f (rec {
+    phf_0_7_22.default = (f.phf_0_7_22.default or true);
+    phf_shared_0_7_22.core =
+      (f.phf_shared_0_7_22.core or false) ||
+      (phf_0_7_22.core or false) ||
+      (f.phf_0_7_22.core or false);
+    phf_shared_0_7_22.default = true;
+    phf_shared_0_7_22.unicase =
+      (f.phf_shared_0_7_22.unicase or false) ||
+      (phf_0_7_22.unicase or false) ||
+      (f.phf_0_7_22.unicase or false);
+  }) [ phf_shared_0_7_22_features ];
+  phf_codegen_0_7_22 = { features?(phf_codegen_0_7_22_features {}) }: phf_codegen_0_7_22_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_22 phf_shared_0_7_22 ]);
+  };
+  phf_codegen_0_7_22_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_22.default = (f.phf_codegen_0_7_22.default or true);
+    phf_generator_0_7_22.default = true;
+    phf_shared_0_7_22.default = true;
+  }) [ phf_generator_0_7_22_features phf_shared_0_7_22_features ];
+  phf_generator_0_7_22 = { features?(phf_generator_0_7_22_features {}) }: phf_generator_0_7_22_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_22 rand_0_4_2 ]);
+  };
+  phf_generator_0_7_22_features = f: updateFeatures f (rec {
+    phf_generator_0_7_22.default = (f.phf_generator_0_7_22.default or true);
+    phf_shared_0_7_22.default = true;
+    rand_0_4_2.default = true;
+  }) [ phf_shared_0_7_22_features rand_0_4_2_features ];
+  phf_shared_0_7_22 = { features?(phf_shared_0_7_22_features {}) }: phf_shared_0_7_22_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]
+      ++ (if features.phf_shared_0_7_22.unicase or false then [ unicase_1_4_2 ] else []));
+    features = mkFeatures (features.phf_shared_0_7_22 or {});
+  };
+  phf_shared_0_7_22_features = f: updateFeatures f (rec {
+    phf_shared_0_7_22.default = (f.phf_shared_0_7_22.default or true);
+    siphasher_0_2_2.default = true;
+    unicase_1_4_2.default = true;
+  }) [ siphasher_0_2_2_features unicase_1_4_2_features ];
+  pkg_config_0_3_12 = { features?(pkg_config_0_3_12_features {}) }: pkg_config_0_3_12_ {};
+  pkg_config_0_3_12_features = f: updateFeatures f (rec {
+    pkg_config_0_3_12.default = (f.pkg_config_0_3_12.default or true);
+  }) [];
+  quote_0_3_15 = { features?(quote_0_3_15_features {}) }: quote_0_3_15_ {};
+  quote_0_3_15_features = f: updateFeatures f (rec {
+    quote_0_3_15.default = (f.quote_0_3_15.default or true);
+  }) [];
+  rand_0_3_22 = { features?(rand_0_3_22_features {}) }: rand_0_3_22_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 rand_0_4_2 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else []);
+    features = mkFeatures (features.rand_0_3_22 or {});
+  };
+  rand_0_3_22_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_3.default = true;
+    libc_0_2_42.default = true;
+    rand_0_3_22.default = (f.rand_0_3_22.default or true);
+    rand_0_3_22.i128_support =
+      (f.rand_0_3_22.i128_support or false) ||
+      (f.rand_0_3_22.nightly or false) ||
+      (rand_0_3_22.nightly or false);
+    rand_0_4_2.default = true;
+  }) [ libc_0_2_42_features rand_0_4_2_features fuchsia_zircon_0_3_3_features ];
+  rand_0_4_2 = { features?(rand_0_4_2_features {}) }: rand_0_4_2_ {
+    dependencies = (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
+      ++ (if features.rand_0_4_2.libc or false then [ libc_0_2_42 ] else [])) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+    features = mkFeatures (features.rand_0_4_2 or {});
+  };
+  rand_0_4_2_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_3.default = true;
+    libc_0_2_42.default = true;
+    rand_0_4_2.default = (f.rand_0_4_2.default or true);
+    rand_0_4_2.i128_support =
+      (f.rand_0_4_2.i128_support or false) ||
+      (f.rand_0_4_2.nightly or false) ||
+      (rand_0_4_2.nightly or false);
+    rand_0_4_2.libc =
+      (f.rand_0_4_2.libc or false) ||
+      (f.rand_0_4_2.std or false) ||
+      (rand_0_4_2.std or false);
+    rand_0_4_2.std =
+      (f.rand_0_4_2.std or false) ||
+      (f.rand_0_4_2.default or false) ||
+      (rand_0_4_2.default or false);
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.minwindef = true;
+    winapi_0_3_5.ntsecapi = true;
+    winapi_0_3_5.profileapi = true;
+    winapi_0_3_5.winnt = true;
+  }) [ fuchsia_zircon_0_3_3_features libc_0_2_42_features winapi_0_3_5_features ];
+  redox_syscall_0_1_40 = { features?(redox_syscall_0_1_40_features {}) }: redox_syscall_0_1_40_ {};
+  redox_syscall_0_1_40_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_40.default = (f.redox_syscall_0_1_40.default or true);
+  }) [];
+  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
+    dependencies = mapFeatures features ([ redox_syscall_0_1_40 ]);
+  };
+  redox_termios_0_1_1_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_40.default = true;
+    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
+  }) [ redox_syscall_0_1_40_features ];
+  regex_0_1_80 = { features?(regex_0_1_80_features {}) }: regex_0_1_80_ {
+    dependencies = mapFeatures features ([ aho_corasick_0_5_3 memchr_0_1_11 regex_syntax_0_3_9 thread_local_0_2_7 utf8_ranges_0_1_3 ]);
+    features = mkFeatures (features.regex_0_1_80 or {});
+  };
+  regex_0_1_80_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = true;
+    memchr_0_1_11.default = true;
+    regex_0_1_80.default = (f.regex_0_1_80.default or true);
+    regex_0_1_80.simd =
+      (f.regex_0_1_80.simd or false) ||
+      (f.regex_0_1_80.simd-accel or false) ||
+      (regex_0_1_80.simd-accel or false);
+    regex_syntax_0_3_9.default = true;
+    thread_local_0_2_7.default = true;
+    utf8_ranges_0_1_3.default = true;
+  }) [ aho_corasick_0_5_3_features memchr_0_1_11_features regex_syntax_0_3_9_features thread_local_0_2_7_features utf8_ranges_0_1_3_features ];
+  regex_syntax_0_3_9 = { features?(regex_syntax_0_3_9_features {}) }: regex_syntax_0_3_9_ {};
+  regex_syntax_0_3_9_features = f: updateFeatures f (rec {
+    regex_syntax_0_3_9.default = (f.regex_syntax_0_3_9.default or true);
+  }) [];
+  relay_0_1_1 = { features?(relay_0_1_1_features {}) }: relay_0_1_1_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 ]);
+  };
+  relay_0_1_1_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    relay_0_1_1.default = (f.relay_0_1_1.default or true);
+  }) [ futures_0_1_23_features ];
+  remove_dir_all_0_5_1 = { features?(remove_dir_all_0_5_1_features {}) }: remove_dir_all_0_5_1_ {
+    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+  };
+  remove_dir_all_0_5_1_features = f: updateFeatures f (rec {
+    remove_dir_all_0_5_1.default = (f.remove_dir_all_0_5_1.default or true);
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.errhandlingapi = true;
+    winapi_0_3_5.fileapi = true;
+    winapi_0_3_5.std = true;
+    winapi_0_3_5.winbase = true;
+    winapi_0_3_5.winerror = true;
+  }) [ winapi_0_3_5_features ];
+  reqwest_0_8_6 = { features?(reqwest_0_8_6_features {}) }: reqwest_0_8_6_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 encoding_rs_0_7_2 futures_0_1_23 hyper_0_11_27 hyper_tls_0_1_3 libflate_0_1_16 log_0_4_3 mime_guess_2_0_0_alpha_6 native_tls_0_1_5 serde_1_0_70 serde_json_1_0_24 serde_urlencoded_0_5_2 tokio_core_0_1_17 tokio_io_0_1_7 tokio_tls_0_1_4 url_1_7_1 uuid_0_6_5 ]);
+    features = mkFeatures (features.reqwest_0_8_6 or {});
+  };
+  reqwest_0_8_6_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    encoding_rs_0_7_2.default = true;
+    futures_0_1_23.default = true;
+    hyper_0_11_27.default = true;
+    hyper_tls_0_1_3.default = true;
+    libflate_0_1_16.default = true;
+    log_0_4_3.default = true;
+    mime_guess_2_0_0_alpha_6.default = true;
+    native_tls_0_1_5.default = true;
+    reqwest_0_8_6.default = (f.reqwest_0_8_6.default or true);
+    serde_1_0_70.default = true;
+    serde_json_1_0_24.default = true;
+    serde_urlencoded_0_5_2.default = true;
+    tokio_core_0_1_17.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_tls_0_1_4.default = true;
+    url_1_7_1.default = true;
+    uuid_0_6_5.default = true;
+    uuid_0_6_5.v4 = true;
+  }) [ bytes_0_4_9_features encoding_rs_0_7_2_features futures_0_1_23_features hyper_0_11_27_features hyper_tls_0_1_3_features libflate_0_1_16_features log_0_4_3_features mime_guess_2_0_0_alpha_6_features native_tls_0_1_5_features serde_1_0_70_features serde_json_1_0_24_features serde_urlencoded_0_5_2_features tokio_core_0_1_17_features tokio_io_0_1_7_features tokio_tls_0_1_4_features url_1_7_1_features uuid_0_6_5_features ];
+  safemem_0_2_0 = { features?(safemem_0_2_0_features {}) }: safemem_0_2_0_ {};
+  safemem_0_2_0_features = f: updateFeatures f (rec {
+    safemem_0_2_0.default = (f.safemem_0_2_0.default or true);
+  }) [];
+  schannel_0_1_13 = { features?(schannel_0_1_13_features {}) }: schannel_0_1_13_ {
+    dependencies = mapFeatures features ([ lazy_static_1_0_2 winapi_0_3_5 ]);
+  };
+  schannel_0_1_13_features = f: updateFeatures f (rec {
+    lazy_static_1_0_2.default = true;
+    schannel_0_1_13.default = (f.schannel_0_1_13.default or true);
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.lmcons = true;
+    winapi_0_3_5.minschannel = true;
+    winapi_0_3_5.schannel = true;
+    winapi_0_3_5.securitybaseapi = true;
+    winapi_0_3_5.sysinfoapi = true;
+    winapi_0_3_5.timezoneapi = true;
+    winapi_0_3_5.winbase = true;
+    winapi_0_3_5.wincrypt = true;
+    winapi_0_3_5.winerror = true;
+  }) [ lazy_static_1_0_2_features winapi_0_3_5_features ];
+  scoped_tls_0_1_2 = { features?(scoped_tls_0_1_2_features {}) }: scoped_tls_0_1_2_ {
+    features = mkFeatures (features.scoped_tls_0_1_2 or {});
+  };
+  scoped_tls_0_1_2_features = f: updateFeatures f (rec {
+    scoped_tls_0_1_2.default = (f.scoped_tls_0_1_2.default or true);
+  }) [];
+  scopeguard_0_3_3 = { features?(scopeguard_0_3_3_features {}) }: scopeguard_0_3_3_ {
+    features = mkFeatures (features.scopeguard_0_3_3 or {});
+  };
+  scopeguard_0_3_3_features = f: updateFeatures f (rec {
+    scopeguard_0_3_3.default = (f.scopeguard_0_3_3.default or true);
+    scopeguard_0_3_3.use_std =
+      (f.scopeguard_0_3_3.use_std or false) ||
+      (f.scopeguard_0_3_3.default or false) ||
+      (scopeguard_0_3_3.default or false);
+  }) [];
+  security_framework_0_1_16 = { features?(security_framework_0_1_16_features {}) }: security_framework_0_1_16_ {
+    dependencies = mapFeatures features ([ core_foundation_0_2_3 core_foundation_sys_0_2_3 libc_0_2_42 security_framework_sys_0_1_16 ]);
+    features = mkFeatures (features.security_framework_0_1_16 or {});
+  };
+  security_framework_0_1_16_features = f: updateFeatures f (rec {
+    core_foundation_0_2_3.default = true;
+    core_foundation_sys_0_2_3.default = true;
+    libc_0_2_42.default = true;
+    security_framework_0_1_16.OSX_10_10 =
+      (f.security_framework_0_1_16.OSX_10_10 or false) ||
+      (f.security_framework_0_1_16.OSX_10_11 or false) ||
+      (security_framework_0_1_16.OSX_10_11 or false);
+    security_framework_0_1_16.OSX_10_11 =
+      (f.security_framework_0_1_16.OSX_10_11 or false) ||
+      (f.security_framework_0_1_16.OSX_10_12 or false) ||
+      (security_framework_0_1_16.OSX_10_12 or false);
+    security_framework_0_1_16.OSX_10_8 =
+      (f.security_framework_0_1_16.OSX_10_8 or false) ||
+      (f.security_framework_0_1_16.OSX_10_9 or false) ||
+      (security_framework_0_1_16.OSX_10_9 or false);
+    security_framework_0_1_16.OSX_10_9 =
+      (f.security_framework_0_1_16.OSX_10_9 or false) ||
+      (f.security_framework_0_1_16.OSX_10_10 or false) ||
+      (security_framework_0_1_16.OSX_10_10 or false);
+    security_framework_0_1_16.default = (f.security_framework_0_1_16.default or true);
+    security_framework_sys_0_1_16.OSX_10_10 =
+      (f.security_framework_sys_0_1_16.OSX_10_10 or false) ||
+      (security_framework_0_1_16.OSX_10_10 or false) ||
+      (f.security_framework_0_1_16.OSX_10_10 or false);
+    security_framework_sys_0_1_16.OSX_10_11 =
+      (f.security_framework_sys_0_1_16.OSX_10_11 or false) ||
+      (security_framework_0_1_16.OSX_10_11 or false) ||
+      (f.security_framework_0_1_16.OSX_10_11 or false) ||
+      (security_framework_0_1_16.OSX_10_12 or false) ||
+      (f.security_framework_0_1_16.OSX_10_12 or false);
+    security_framework_sys_0_1_16.OSX_10_8 =
+      (f.security_framework_sys_0_1_16.OSX_10_8 or false) ||
+      (security_framework_0_1_16.OSX_10_8 or false) ||
+      (f.security_framework_0_1_16.OSX_10_8 or false);
+    security_framework_sys_0_1_16.OSX_10_9 =
+      (f.security_framework_sys_0_1_16.OSX_10_9 or false) ||
+      (security_framework_0_1_16.OSX_10_9 or false) ||
+      (f.security_framework_0_1_16.OSX_10_9 or false);
+    security_framework_sys_0_1_16.default = true;
+  }) [ core_foundation_0_2_3_features core_foundation_sys_0_2_3_features libc_0_2_42_features security_framework_sys_0_1_16_features ];
+  security_framework_sys_0_1_16 = { features?(security_framework_sys_0_1_16_features {}) }: security_framework_sys_0_1_16_ {
+    dependencies = mapFeatures features ([ core_foundation_sys_0_2_3 libc_0_2_42 ]);
+    features = mkFeatures (features.security_framework_sys_0_1_16 or {});
+  };
+  security_framework_sys_0_1_16_features = f: updateFeatures f (rec {
+    core_foundation_sys_0_2_3.default = true;
+    libc_0_2_42.default = true;
+    security_framework_sys_0_1_16.OSX_10_10 =
+      (f.security_framework_sys_0_1_16.OSX_10_10 or false) ||
+      (f.security_framework_sys_0_1_16.OSX_10_11 or false) ||
+      (security_framework_sys_0_1_16.OSX_10_11 or false);
+    security_framework_sys_0_1_16.OSX_10_11 =
+      (f.security_framework_sys_0_1_16.OSX_10_11 or false) ||
+      (f.security_framework_sys_0_1_16.OSX_10_12 or false) ||
+      (security_framework_sys_0_1_16.OSX_10_12 or false);
+    security_framework_sys_0_1_16.OSX_10_8 =
+      (f.security_framework_sys_0_1_16.OSX_10_8 or false) ||
+      (f.security_framework_sys_0_1_16.OSX_10_9 or false) ||
+      (security_framework_sys_0_1_16.OSX_10_9 or false);
+    security_framework_sys_0_1_16.OSX_10_9 =
+      (f.security_framework_sys_0_1_16.OSX_10_9 or false) ||
+      (f.security_framework_sys_0_1_16.OSX_10_10 or false) ||
+      (security_framework_sys_0_1_16.OSX_10_10 or false);
+    security_framework_sys_0_1_16.default = (f.security_framework_sys_0_1_16.default or true);
+  }) [ core_foundation_sys_0_2_3_features libc_0_2_42_features ];
+  semver_0_9_0 = { features?(semver_0_9_0_features {}) }: semver_0_9_0_ {
+    dependencies = mapFeatures features ([ semver_parser_0_7_0 ]);
+    features = mkFeatures (features.semver_0_9_0 or {});
+  };
+  semver_0_9_0_features = f: updateFeatures f (rec {
+    semver_0_9_0.default = (f.semver_0_9_0.default or true);
+    semver_0_9_0.serde =
+      (f.semver_0_9_0.serde or false) ||
+      (f.semver_0_9_0.ci or false) ||
+      (semver_0_9_0.ci or false);
+    semver_parser_0_7_0.default = true;
+  }) [ semver_parser_0_7_0_features ];
+  semver_parser_0_7_0 = { features?(semver_parser_0_7_0_features {}) }: semver_parser_0_7_0_ {};
+  semver_parser_0_7_0_features = f: updateFeatures f (rec {
+    semver_parser_0_7_0.default = (f.semver_parser_0_7_0.default or true);
+  }) [];
+  serde_1_0_70 = { features?(serde_1_0_70_features {}) }: serde_1_0_70_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_1_0_70 or {});
+  };
+  serde_1_0_70_features = f: updateFeatures f (rec {
+    serde_1_0_70.default = (f.serde_1_0_70.default or true);
+    serde_1_0_70.serde_derive =
+      (f.serde_1_0_70.serde_derive or false) ||
+      (f.serde_1_0_70.derive or false) ||
+      (serde_1_0_70.derive or false);
+    serde_1_0_70.std =
+      (f.serde_1_0_70.std or false) ||
+      (f.serde_1_0_70.default or false) ||
+      (serde_1_0_70.default or false);
+    serde_1_0_70.unstable =
+      (f.serde_1_0_70.unstable or false) ||
+      (f.serde_1_0_70.alloc or false) ||
+      (serde_1_0_70.alloc or false);
+  }) [];
+  serde_json_1_0_24 = { features?(serde_json_1_0_24_features {}) }: serde_json_1_0_24_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_3 itoa_0_4_2 serde_1_0_70 ]);
+    features = mkFeatures (features.serde_json_1_0_24 or {});
+  };
+  serde_json_1_0_24_features = f: updateFeatures f (rec {
+    dtoa_0_4_3.default = true;
+    itoa_0_4_2.default = true;
+    serde_1_0_70.default = true;
+    serde_json_1_0_24.default = (f.serde_json_1_0_24.default or true);
+    serde_json_1_0_24.indexmap =
+      (f.serde_json_1_0_24.indexmap or false) ||
+      (f.serde_json_1_0_24.preserve_order or false) ||
+      (serde_json_1_0_24.preserve_order or false);
+  }) [ dtoa_0_4_3_features itoa_0_4_2_features serde_1_0_70_features ];
+  serde_urlencoded_0_5_2 = { features?(serde_urlencoded_0_5_2_features {}) }: serde_urlencoded_0_5_2_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_3 itoa_0_4_2 serde_1_0_70 url_1_7_1 ]);
+  };
+  serde_urlencoded_0_5_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_3.default = true;
+    itoa_0_4_2.default = true;
+    serde_1_0_70.default = true;
+    serde_urlencoded_0_5_2.default = (f.serde_urlencoded_0_5_2.default or true);
+    url_1_7_1.default = true;
+  }) [ dtoa_0_4_3_features itoa_0_4_2_features serde_1_0_70_features url_1_7_1_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  slab_0_3_0 = { features?(slab_0_3_0_features {}) }: slab_0_3_0_ {};
+  slab_0_3_0_features = f: updateFeatures f (rec {
+    slab_0_3_0.default = (f.slab_0_3_0.default or true);
+  }) [];
+  slab_0_4_0 = { features?(slab_0_4_0_features {}) }: slab_0_4_0_ {};
+  slab_0_4_0_features = f: updateFeatures f (rec {
+    slab_0_4_0.default = (f.slab_0_4_0.default or true);
+  }) [];
+  slog_1_7_1 = { features?(slog_1_7_1_features {}) }: slog_1_7_1_ {
+    features = mkFeatures (features.slog_1_7_1 or {});
+  };
+  slog_1_7_1_features = f: updateFeatures f (rec {
+    slog_1_7_1.default = (f.slog_1_7_1.default or true);
+    slog_1_7_1.std =
+      (f.slog_1_7_1.std or false) ||
+      (f.slog_1_7_1.default or false) ||
+      (slog_1_7_1.default or false);
+  }) [];
+  slog_envlogger_0_5_0 = { features?(slog_envlogger_0_5_0_features {}) }: slog_envlogger_0_5_0_ {
+    dependencies = mapFeatures features ([ log_0_3_9 regex_0_1_80 slog_1_7_1 slog_stdlog_1_1_0 slog_term_1_5_0 ]);
+  };
+  slog_envlogger_0_5_0_features = f: updateFeatures f (rec {
+    log_0_3_9.default = true;
+    regex_0_1_80.default = true;
+    slog_1_7_1.default = true;
+    slog_envlogger_0_5_0.default = (f.slog_envlogger_0_5_0.default or true);
+    slog_stdlog_1_1_0.default = true;
+    slog_term_1_5_0.default = true;
+  }) [ log_0_3_9_features regex_0_1_80_features slog_1_7_1_features slog_stdlog_1_1_0_features slog_term_1_5_0_features ];
+  slog_extra_0_1_2 = { features?(slog_extra_0_1_2_features {}) }: slog_extra_0_1_2_ {
+    dependencies = mapFeatures features ([ slog_1_7_1 thread_local_0_3_5 ]);
+  };
+  slog_extra_0_1_2_features = f: updateFeatures f (rec {
+    slog_1_7_1.default = true;
+    slog_extra_0_1_2.default = (f.slog_extra_0_1_2.default or true);
+    thread_local_0_3_5.default = true;
+  }) [ slog_1_7_1_features thread_local_0_3_5_features ];
+  slog_stdlog_1_1_0 = { features?(slog_stdlog_1_1_0_features {}) }: slog_stdlog_1_1_0_ {
+    dependencies = mapFeatures features ([ crossbeam_0_2_12 lazy_static_0_2_11 log_0_3_9 slog_1_7_1 slog_term_1_5_0 ]);
+  };
+  slog_stdlog_1_1_0_features = f: updateFeatures f (rec {
+    crossbeam_0_2_12.default = true;
+    lazy_static_0_2_11.default = true;
+    log_0_3_9.default = true;
+    slog_1_7_1.default = true;
+    slog_stdlog_1_1_0.default = (f.slog_stdlog_1_1_0.default or true);
+    slog_term_1_5_0.default = true;
+  }) [ crossbeam_0_2_12_features lazy_static_0_2_11_features log_0_3_9_features slog_1_7_1_features slog_term_1_5_0_features ];
+  slog_stream_1_2_1 = { features?(slog_stream_1_2_1_features {}) }: slog_stream_1_2_1_ {
+    dependencies = mapFeatures features ([ slog_1_7_1 slog_extra_0_1_2 thread_local_0_3_5 ]);
+  };
+  slog_stream_1_2_1_features = f: updateFeatures f (rec {
+    slog_1_7_1.default = true;
+    slog_extra_0_1_2.default = true;
+    slog_stream_1_2_1.default = (f.slog_stream_1_2_1.default or true);
+    thread_local_0_3_5.default = true;
+  }) [ slog_1_7_1_features slog_extra_0_1_2_features thread_local_0_3_5_features ];
+  slog_term_1_5_0 = { features?(slog_term_1_5_0_features {}) }: slog_term_1_5_0_ {
+    dependencies = mapFeatures features ([ chrono_0_2_25 isatty_0_1_8 slog_1_7_1 slog_stream_1_2_1 thread_local_0_3_5 ]);
+  };
+  slog_term_1_5_0_features = f: updateFeatures f (rec {
+    chrono_0_2_25.default = true;
+    isatty_0_1_8.default = true;
+    slog_1_7_1.default = true;
+    slog_stream_1_2_1.default = true;
+    slog_term_1_5_0.default = (f.slog_term_1_5_0.default or true);
+    thread_local_0_3_5.default = true;
+  }) [ chrono_0_2_25_features isatty_0_1_8_features slog_1_7_1_features slog_stream_1_2_1_features thread_local_0_3_5_features ];
+  smallvec_0_2_1 = { features?(smallvec_0_2_1_features {}) }: smallvec_0_2_1_ {};
+  smallvec_0_2_1_features = f: updateFeatures f (rec {
+    smallvec_0_2_1.default = (f.smallvec_0_2_1.default or true);
+  }) [];
+  strsim_0_7_0 = { features?(strsim_0_7_0_features {}) }: strsim_0_7_0_ {};
+  strsim_0_7_0_features = f: updateFeatures f (rec {
+    strsim_0_7_0.default = (f.strsim_0_7_0.default or true);
+  }) [];
+  syn_0_11_11 = { features?(syn_0_11_11_features {}) }: syn_0_11_11_ {
+    dependencies = mapFeatures features ([ ]
+      ++ (if features.syn_0_11_11.quote or false then [ quote_0_3_15 ] else [])
+      ++ (if features.syn_0_11_11.synom or false then [ synom_0_11_3 ] else [])
+      ++ (if features.syn_0_11_11.unicode-xid or false then [ unicode_xid_0_0_4 ] else []));
+    features = mkFeatures (features.syn_0_11_11 or {});
+  };
+  syn_0_11_11_features = f: updateFeatures f (rec {
+    quote_0_3_15.default = true;
+    syn_0_11_11.default = (f.syn_0_11_11.default or true);
+    syn_0_11_11.parsing =
+      (f.syn_0_11_11.parsing or false) ||
+      (f.syn_0_11_11.default or false) ||
+      (syn_0_11_11.default or false);
+    syn_0_11_11.printing =
+      (f.syn_0_11_11.printing or false) ||
+      (f.syn_0_11_11.default or false) ||
+      (syn_0_11_11.default or false);
+    syn_0_11_11.quote =
+      (f.syn_0_11_11.quote or false) ||
+      (f.syn_0_11_11.printing or false) ||
+      (syn_0_11_11.printing or false);
+    syn_0_11_11.synom =
+      (f.syn_0_11_11.synom or false) ||
+      (f.syn_0_11_11.parsing or false) ||
+      (syn_0_11_11.parsing or false);
+    syn_0_11_11.unicode-xid =
+      (f.syn_0_11_11.unicode-xid or false) ||
+      (f.syn_0_11_11.parsing or false) ||
+      (syn_0_11_11.parsing or false);
+    synom_0_11_3.default = true;
+    unicode_xid_0_0_4.default = true;
+  }) [ quote_0_3_15_features synom_0_11_3_features unicode_xid_0_0_4_features ];
+  synom_0_11_3 = { features?(synom_0_11_3_features {}) }: synom_0_11_3_ {
+    dependencies = mapFeatures features ([ unicode_xid_0_0_4 ]);
+  };
+  synom_0_11_3_features = f: updateFeatures f (rec {
+    synom_0_11_3.default = (f.synom_0_11_3.default or true);
+    unicode_xid_0_0_4.default = true;
+  }) [ unicode_xid_0_0_4_features ];
+  take_0_1_0 = { features?(take_0_1_0_features {}) }: take_0_1_0_ {};
+  take_0_1_0_features = f: updateFeatures f (rec {
+    take_0_1_0.default = (f.take_0_1_0.default or true);
+  }) [];
+  tar_0_4_16 = { features?(tar_0_4_16_features {}) }: tar_0_4_16_ {
+    dependencies = mapFeatures features ([ filetime_0_2_1 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_42 ]
+      ++ (if features.tar_0_4_16.xattr or false then [ xattr_0_2_2 ] else [])) else []);
+    features = mkFeatures (features.tar_0_4_16 or {});
+  };
+  tar_0_4_16_features = f: updateFeatures f (rec {
+    filetime_0_2_1.default = true;
+    libc_0_2_42.default = true;
+    redox_syscall_0_1_40.default = true;
+    tar_0_4_16.default = (f.tar_0_4_16.default or true);
+    tar_0_4_16.xattr =
+      (f.tar_0_4_16.xattr or false) ||
+      (f.tar_0_4_16.default or false) ||
+      (tar_0_4_16.default or false);
+    xattr_0_2_2.default = true;
+  }) [ filetime_0_2_1_features redox_syscall_0_1_40_features libc_0_2_42_features xattr_0_2_2_features ];
+  tempdir_0_3_7 = { features?(tempdir_0_3_7_features {}) }: tempdir_0_3_7_ {
+    dependencies = mapFeatures features ([ rand_0_4_2 remove_dir_all_0_5_1 ]);
+  };
+  tempdir_0_3_7_features = f: updateFeatures f (rec {
+    rand_0_4_2.default = true;
+    remove_dir_all_0_5_1.default = true;
+    tempdir_0_3_7.default = (f.tempdir_0_3_7.default or true);
+  }) [ rand_0_4_2_features remove_dir_all_0_5_1_features ];
+  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
+    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_42 ]) else [])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 redox_termios_0_1_1 ]) else []);
+  };
+  termion_1_5_1_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = true;
+    redox_syscall_0_1_40.default = true;
+    redox_termios_0_1_1.default = true;
+    termion_1_5_1.default = (f.termion_1_5_1.default or true);
+  }) [ libc_0_2_42_features redox_syscall_0_1_40_features redox_termios_0_1_1_features ];
+  textwrap_0_10_0 = { features?(textwrap_0_10_0_features {}) }: textwrap_0_10_0_ {
+    dependencies = mapFeatures features ([ unicode_width_0_1_5 ]);
+  };
+  textwrap_0_10_0_features = f: updateFeatures f (rec {
+    textwrap_0_10_0.default = (f.textwrap_0_10_0.default or true);
+    unicode_width_0_1_5.default = true;
+  }) [ unicode_width_0_1_5_features ];
+  thread_id_2_0_0 = { features?(thread_id_2_0_0_features {}) }: thread_id_2_0_0_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_42 ]);
+  };
+  thread_id_2_0_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_42.default = true;
+    thread_id_2_0_0.default = (f.thread_id_2_0_0.default or true);
+  }) [ kernel32_sys_0_2_2_features libc_0_2_42_features ];
+  thread_local_0_2_7 = { features?(thread_local_0_2_7_features {}) }: thread_local_0_2_7_ {
+    dependencies = mapFeatures features ([ thread_id_2_0_0 ]);
+  };
+  thread_local_0_2_7_features = f: updateFeatures f (rec {
+    thread_id_2_0_0.default = true;
+    thread_local_0_2_7.default = (f.thread_local_0_2_7.default or true);
+  }) [ thread_id_2_0_0_features ];
+  thread_local_0_3_5 = { features?(thread_local_0_3_5_features {}) }: thread_local_0_3_5_ {
+    dependencies = mapFeatures features ([ lazy_static_1_0_2 unreachable_1_0_0 ]);
+  };
+  thread_local_0_3_5_features = f: updateFeatures f (rec {
+    lazy_static_1_0_2.default = true;
+    thread_local_0_3_5.default = (f.thread_local_0_3_5.default or true);
+    unreachable_1_0_0.default = true;
+  }) [ lazy_static_1_0_2_features unreachable_1_0_0_features ];
+  time_0_1_40 = { features?(time_0_1_40_features {}) }: time_0_1_40_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_40 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_5 ]) else []);
+  };
+  time_0_1_40_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = true;
+    redox_syscall_0_1_40.default = true;
+    time_0_1_40.default = (f.time_0_1_40.default or true);
+    winapi_0_3_5.default = true;
+    winapi_0_3_5.minwinbase = true;
+    winapi_0_3_5.minwindef = true;
+    winapi_0_3_5.ntdef = true;
+    winapi_0_3_5.profileapi = true;
+    winapi_0_3_5.std = true;
+    winapi_0_3_5.sysinfoapi = true;
+    winapi_0_3_5.timezoneapi = true;
+  }) [ libc_0_2_42_features redox_syscall_0_1_40_features winapi_0_3_5_features ];
+  tokio_0_1_7 = { features?(tokio_0_1_7_features {}) }: tokio_0_1_7_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 mio_0_6_15 tokio_executor_0_1_2 tokio_fs_0_1_2 tokio_io_0_1_7 tokio_reactor_0_1_2 tokio_tcp_0_1_0 tokio_threadpool_0_1_5 tokio_timer_0_2_4 tokio_udp_0_1_1 ]);
+  };
+  tokio_0_1_7_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    mio_0_6_15.default = true;
+    tokio_0_1_7.default = (f.tokio_0_1_7.default or true);
+    tokio_executor_0_1_2.default = true;
+    tokio_fs_0_1_2.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_reactor_0_1_2.default = true;
+    tokio_tcp_0_1_0.default = true;
+    tokio_threadpool_0_1_5.default = true;
+    tokio_timer_0_2_4.default = true;
+    tokio_udp_0_1_1.default = true;
+  }) [ futures_0_1_23_features mio_0_6_15_features tokio_executor_0_1_2_features tokio_fs_0_1_2_features tokio_io_0_1_7_features tokio_reactor_0_1_2_features tokio_tcp_0_1_0_features tokio_threadpool_0_1_5_features tokio_timer_0_2_4_features tokio_udp_0_1_1_features ];
+  tokio_codec_0_1_0 = { features?(tokio_codec_0_1_0_features {}) }: tokio_codec_0_1_0_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 futures_0_1_23 tokio_io_0_1_7 ]);
+  };
+  tokio_codec_0_1_0_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    tokio_codec_0_1_0.default = (f.tokio_codec_0_1_0.default or true);
+    tokio_io_0_1_7.default = true;
+  }) [ bytes_0_4_9_features futures_0_1_23_features tokio_io_0_1_7_features ];
+  tokio_core_0_1_17 = { features?(tokio_core_0_1_17_features {}) }: tokio_core_0_1_17_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 futures_0_1_23 iovec_0_1_2 log_0_4_3 mio_0_6_15 scoped_tls_0_1_2 tokio_0_1_7 tokio_executor_0_1_2 tokio_io_0_1_7 tokio_reactor_0_1_2 tokio_timer_0_2_4 ]);
+  };
+  tokio_core_0_1_17_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    iovec_0_1_2.default = true;
+    log_0_4_3.default = true;
+    mio_0_6_15.default = true;
+    scoped_tls_0_1_2.default = true;
+    tokio_0_1_7.default = true;
+    tokio_core_0_1_17.default = (f.tokio_core_0_1_17.default or true);
+    tokio_executor_0_1_2.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_reactor_0_1_2.default = true;
+    tokio_timer_0_2_4.default = true;
+  }) [ bytes_0_4_9_features futures_0_1_23_features iovec_0_1_2_features log_0_4_3_features mio_0_6_15_features scoped_tls_0_1_2_features tokio_0_1_7_features tokio_executor_0_1_2_features tokio_io_0_1_7_features tokio_reactor_0_1_2_features tokio_timer_0_2_4_features ];
+  tokio_executor_0_1_2 = { features?(tokio_executor_0_1_2_features {}) }: tokio_executor_0_1_2_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 ]);
+    features = mkFeatures (features.tokio_executor_0_1_2 or {});
+  };
+  tokio_executor_0_1_2_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    tokio_executor_0_1_2.default = (f.tokio_executor_0_1_2.default or true);
+    tokio_executor_0_1_2.futures2 =
+      (f.tokio_executor_0_1_2.futures2 or false) ||
+      (f.tokio_executor_0_1_2.unstable-futures or false) ||
+      (tokio_executor_0_1_2.unstable-futures or false);
+  }) [ futures_0_1_23_features ];
+  tokio_fs_0_1_2 = { features?(tokio_fs_0_1_2_features {}) }: tokio_fs_0_1_2_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 tokio_io_0_1_7 tokio_threadpool_0_1_5 ]);
+  };
+  tokio_fs_0_1_2_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    tokio_fs_0_1_2.default = (f.tokio_fs_0_1_2.default or true);
+    tokio_io_0_1_7.default = true;
+    tokio_threadpool_0_1_5.default = true;
+  }) [ futures_0_1_23_features tokio_io_0_1_7_features tokio_threadpool_0_1_5_features ];
+  tokio_io_0_1_7 = { features?(tokio_io_0_1_7_features {}) }: tokio_io_0_1_7_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 futures_0_1_23 log_0_4_3 ]);
+  };
+  tokio_io_0_1_7_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    log_0_4_3.default = true;
+    tokio_io_0_1_7.default = (f.tokio_io_0_1_7.default or true);
+  }) [ bytes_0_4_9_features futures_0_1_23_features log_0_4_3_features ];
+  tokio_proto_0_1_1 = { features?(tokio_proto_0_1_1_features {}) }: tokio_proto_0_1_1_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 log_0_3_9 net2_0_2_33 rand_0_3_22 slab_0_3_0 smallvec_0_2_1 take_0_1_0 tokio_core_0_1_17 tokio_io_0_1_7 tokio_service_0_1_0 ]);
+  };
+  tokio_proto_0_1_1_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    log_0_3_9.default = true;
+    net2_0_2_33.default = true;
+    rand_0_3_22.default = true;
+    slab_0_3_0.default = true;
+    smallvec_0_2_1.default = true;
+    take_0_1_0.default = true;
+    tokio_core_0_1_17.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_proto_0_1_1.default = (f.tokio_proto_0_1_1.default or true);
+    tokio_service_0_1_0.default = true;
+  }) [ futures_0_1_23_features log_0_3_9_features net2_0_2_33_features rand_0_3_22_features slab_0_3_0_features smallvec_0_2_1_features take_0_1_0_features tokio_core_0_1_17_features tokio_io_0_1_7_features tokio_service_0_1_0_features ];
+  tokio_reactor_0_1_2 = { features?(tokio_reactor_0_1_2_features {}) }: tokio_reactor_0_1_2_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 log_0_4_3 mio_0_6_15 slab_0_4_0 tokio_executor_0_1_2 tokio_io_0_1_7 ]);
+  };
+  tokio_reactor_0_1_2_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    log_0_4_3.default = true;
+    mio_0_6_15.default = true;
+    slab_0_4_0.default = true;
+    tokio_executor_0_1_2.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_reactor_0_1_2.default = (f.tokio_reactor_0_1_2.default or true);
+  }) [ futures_0_1_23_features log_0_4_3_features mio_0_6_15_features slab_0_4_0_features tokio_executor_0_1_2_features tokio_io_0_1_7_features ];
+  tokio_service_0_1_0 = { features?(tokio_service_0_1_0_features {}) }: tokio_service_0_1_0_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 ]);
+  };
+  tokio_service_0_1_0_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    tokio_service_0_1_0.default = (f.tokio_service_0_1_0.default or true);
+  }) [ futures_0_1_23_features ];
+  tokio_tcp_0_1_0 = { features?(tokio_tcp_0_1_0_features {}) }: tokio_tcp_0_1_0_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 futures_0_1_23 iovec_0_1_2 mio_0_6_15 tokio_io_0_1_7 tokio_reactor_0_1_2 ]);
+    features = mkFeatures (features.tokio_tcp_0_1_0 or {});
+  };
+  tokio_tcp_0_1_0_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    iovec_0_1_2.default = true;
+    mio_0_6_15.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_reactor_0_1_2.default = true;
+    tokio_tcp_0_1_0.default = (f.tokio_tcp_0_1_0.default or true);
+    tokio_tcp_0_1_0.futures2 =
+      (f.tokio_tcp_0_1_0.futures2 or false) ||
+      (f.tokio_tcp_0_1_0.unstable-futures or false) ||
+      (tokio_tcp_0_1_0.unstable-futures or false);
+  }) [ bytes_0_4_9_features futures_0_1_23_features iovec_0_1_2_features mio_0_6_15_features tokio_io_0_1_7_features tokio_reactor_0_1_2_features ];
+  tokio_threadpool_0_1_5 = { features?(tokio_threadpool_0_1_5_features {}) }: tokio_threadpool_0_1_5_ {
+    dependencies = mapFeatures features ([ crossbeam_deque_0_3_1 futures_0_1_23 log_0_4_3 num_cpus_1_8_0 rand_0_4_2 tokio_executor_0_1_2 ]);
+  };
+  tokio_threadpool_0_1_5_features = f: updateFeatures f (rec {
+    crossbeam_deque_0_3_1.default = true;
+    futures_0_1_23.default = true;
+    log_0_4_3.default = true;
+    num_cpus_1_8_0.default = true;
+    rand_0_4_2.default = true;
+    tokio_executor_0_1_2.default = true;
+    tokio_threadpool_0_1_5.default = (f.tokio_threadpool_0_1_5.default or true);
+  }) [ crossbeam_deque_0_3_1_features futures_0_1_23_features log_0_4_3_features num_cpus_1_8_0_features rand_0_4_2_features tokio_executor_0_1_2_features ];
+  tokio_timer_0_2_4 = { features?(tokio_timer_0_2_4_features {}) }: tokio_timer_0_2_4_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 tokio_executor_0_1_2 ]);
+  };
+  tokio_timer_0_2_4_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    tokio_executor_0_1_2.default = true;
+    tokio_timer_0_2_4.default = (f.tokio_timer_0_2_4.default or true);
+  }) [ futures_0_1_23_features tokio_executor_0_1_2_features ];
+  tokio_tls_0_1_4 = { features?(tokio_tls_0_1_4_features {}) }: tokio_tls_0_1_4_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 native_tls_0_1_5 tokio_core_0_1_17 tokio_io_0_1_7 ])
+      ++ (if !(kernel == "darwin") && !(kernel == "windows") && !(kernel == "ios") then mapFeatures features ([]) else [])
+      ++ (if kernel == "darwin" || kernel == "ios" then mapFeatures features ([]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([]) else []);
+  };
+  tokio_tls_0_1_4_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    native_tls_0_1_5.default = true;
+    tokio_core_0_1_17.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_tls_0_1_4.default = (f.tokio_tls_0_1_4.default or true);
+  }) [ futures_0_1_23_features native_tls_0_1_5_features tokio_core_0_1_17_features tokio_io_0_1_7_features ];
+  tokio_udp_0_1_1 = { features?(tokio_udp_0_1_1_features {}) }: tokio_udp_0_1_1_ {
+    dependencies = mapFeatures features ([ bytes_0_4_9 futures_0_1_23 log_0_4_3 mio_0_6_15 tokio_codec_0_1_0 tokio_io_0_1_7 tokio_reactor_0_1_2 ]);
+  };
+  tokio_udp_0_1_1_features = f: updateFeatures f (rec {
+    bytes_0_4_9.default = true;
+    futures_0_1_23.default = true;
+    log_0_4_3.default = true;
+    mio_0_6_15.default = true;
+    tokio_codec_0_1_0.default = true;
+    tokio_io_0_1_7.default = true;
+    tokio_reactor_0_1_2.default = true;
+    tokio_udp_0_1_1.default = (f.tokio_udp_0_1_1.default or true);
+  }) [ bytes_0_4_9_features futures_0_1_23_features log_0_4_3_features mio_0_6_15_features tokio_codec_0_1_0_features tokio_io_0_1_7_features tokio_reactor_0_1_2_features ];
+  try_lock_0_1_0 = { features?(try_lock_0_1_0_features {}) }: try_lock_0_1_0_ {};
+  try_lock_0_1_0_features = f: updateFeatures f (rec {
+    try_lock_0_1_0.default = (f.try_lock_0_1_0.default or true);
+  }) [];
+  unicase_1_4_2 = { features?(unicase_1_4_2_features {}) }: unicase_1_4_2_ {
+    dependencies = mapFeatures features ([]);
+    buildDependencies = mapFeatures features ([ version_check_0_1_4 ]);
+    features = mkFeatures (features.unicase_1_4_2 or {});
+  };
+  unicase_1_4_2_features = f: updateFeatures f (rec {
+    unicase_1_4_2.default = (f.unicase_1_4_2.default or true);
+    unicase_1_4_2.heapsize =
+      (f.unicase_1_4_2.heapsize or false) ||
+      (f.unicase_1_4_2.heap_size or false) ||
+      (unicase_1_4_2.heap_size or false);
+    unicase_1_4_2.heapsize_plugin =
+      (f.unicase_1_4_2.heapsize_plugin or false) ||
+      (f.unicase_1_4_2.heap_size or false) ||
+      (unicase_1_4_2.heap_size or false);
+    version_check_0_1_4.default = true;
+  }) [ version_check_0_1_4_features ];
+  unicase_2_1_0 = { features?(unicase_2_1_0_features {}) }: unicase_2_1_0_ {
+    buildDependencies = mapFeatures features ([ version_check_0_1_4 ]);
+    features = mkFeatures (features.unicase_2_1_0 or {});
+  };
+  unicase_2_1_0_features = f: updateFeatures f (rec {
+    unicase_2_1_0.default = (f.unicase_2_1_0.default or true);
+    version_check_0_1_4.default = true;
+  }) [ version_check_0_1_4_features ];
+  unicode_bidi_0_3_4 = { features?(unicode_bidi_0_3_4_features {}) }: unicode_bidi_0_3_4_ {
+    dependencies = mapFeatures features ([ matches_0_1_7 ]);
+    features = mkFeatures (features.unicode_bidi_0_3_4 or {});
+  };
+  unicode_bidi_0_3_4_features = f: updateFeatures f (rec {
+    matches_0_1_7.default = true;
+    unicode_bidi_0_3_4.default = (f.unicode_bidi_0_3_4.default or true);
+    unicode_bidi_0_3_4.flame =
+      (f.unicode_bidi_0_3_4.flame or false) ||
+      (f.unicode_bidi_0_3_4.flame_it or false) ||
+      (unicode_bidi_0_3_4.flame_it or false);
+    unicode_bidi_0_3_4.flamer =
+      (f.unicode_bidi_0_3_4.flamer or false) ||
+      (f.unicode_bidi_0_3_4.flame_it or false) ||
+      (unicode_bidi_0_3_4.flame_it or false);
+    unicode_bidi_0_3_4.serde =
+      (f.unicode_bidi_0_3_4.serde or false) ||
+      (f.unicode_bidi_0_3_4.with_serde or false) ||
+      (unicode_bidi_0_3_4.with_serde or false);
+  }) [ matches_0_1_7_features ];
+  unicode_normalization_0_1_7 = { features?(unicode_normalization_0_1_7_features {}) }: unicode_normalization_0_1_7_ {};
+  unicode_normalization_0_1_7_features = f: updateFeatures f (rec {
+    unicode_normalization_0_1_7.default = (f.unicode_normalization_0_1_7.default or true);
+  }) [];
+  unicode_width_0_1_5 = { features?(unicode_width_0_1_5_features {}) }: unicode_width_0_1_5_ {
+    features = mkFeatures (features.unicode_width_0_1_5 or {});
+  };
+  unicode_width_0_1_5_features = f: updateFeatures f (rec {
+    unicode_width_0_1_5.default = (f.unicode_width_0_1_5.default or true);
+  }) [];
+  unicode_xid_0_0_4 = { features?(unicode_xid_0_0_4_features {}) }: unicode_xid_0_0_4_ {
+    features = mkFeatures (features.unicode_xid_0_0_4 or {});
+  };
+  unicode_xid_0_0_4_features = f: updateFeatures f (rec {
+    unicode_xid_0_0_4.default = (f.unicode_xid_0_0_4.default or true);
+  }) [];
+  unreachable_1_0_0 = { features?(unreachable_1_0_0_features {}) }: unreachable_1_0_0_ {
+    dependencies = mapFeatures features ([ void_1_0_2 ]);
+  };
+  unreachable_1_0_0_features = f: updateFeatures f (rec {
+    unreachable_1_0_0.default = (f.unreachable_1_0_0.default or true);
+    void_1_0_2.default = (f.void_1_0_2.default or false);
+  }) [ void_1_0_2_features ];
+  url_1_7_1 = { features?(url_1_7_1_features {}) }: url_1_7_1_ {
+    dependencies = mapFeatures features ([ idna_0_1_5 matches_0_1_7 percent_encoding_1_0_1 ]);
+    features = mkFeatures (features.url_1_7_1 or {});
+  };
+  url_1_7_1_features = f: updateFeatures f (rec {
+    idna_0_1_5.default = true;
+    matches_0_1_7.default = true;
+    percent_encoding_1_0_1.default = true;
+    url_1_7_1.default = (f.url_1_7_1.default or true);
+    url_1_7_1.encoding =
+      (f.url_1_7_1.encoding or false) ||
+      (f.url_1_7_1.query_encoding or false) ||
+      (url_1_7_1.query_encoding or false);
+    url_1_7_1.heapsize =
+      (f.url_1_7_1.heapsize or false) ||
+      (f.url_1_7_1.heap_size or false) ||
+      (url_1_7_1.heap_size or false);
+  }) [ idna_0_1_5_features matches_0_1_7_features percent_encoding_1_0_1_features ];
+  utf8_ranges_0_1_3 = { features?(utf8_ranges_0_1_3_features {}) }: utf8_ranges_0_1_3_ {};
+  utf8_ranges_0_1_3_features = f: updateFeatures f (rec {
+    utf8_ranges_0_1_3.default = (f.utf8_ranges_0_1_3.default or true);
+  }) [];
+  uuid_0_6_5 = { features?(uuid_0_6_5_features {}) }: uuid_0_6_5_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_4 ]
+      ++ (if features.uuid_0_6_5.rand or false then [ rand_0_4_2 ] else []));
+    features = mkFeatures (features.uuid_0_6_5 or {});
+  };
+  uuid_0_6_5_features = f: updateFeatures f (rec {
+    cfg_if_0_1_4.default = true;
+    rand_0_4_2.default = true;
+    uuid_0_6_5.byteorder =
+      (f.uuid_0_6_5.byteorder or false) ||
+      (f.uuid_0_6_5.u128 or false) ||
+      (uuid_0_6_5.u128 or false);
+    uuid_0_6_5.default = (f.uuid_0_6_5.default or true);
+    uuid_0_6_5.md5 =
+      (f.uuid_0_6_5.md5 or false) ||
+      (f.uuid_0_6_5.v3 or false) ||
+      (uuid_0_6_5.v3 or false);
+    uuid_0_6_5.nightly =
+      (f.uuid_0_6_5.nightly or false) ||
+      (f.uuid_0_6_5.const_fn or false) ||
+      (uuid_0_6_5.const_fn or false);
+    uuid_0_6_5.rand =
+      (f.uuid_0_6_5.rand or false) ||
+      (f.uuid_0_6_5.v3 or false) ||
+      (uuid_0_6_5.v3 or false) ||
+      (f.uuid_0_6_5.v4 or false) ||
+      (uuid_0_6_5.v4 or false) ||
+      (f.uuid_0_6_5.v5 or false) ||
+      (uuid_0_6_5.v5 or false);
+    uuid_0_6_5.sha1 =
+      (f.uuid_0_6_5.sha1 or false) ||
+      (f.uuid_0_6_5.v5 or false) ||
+      (uuid_0_6_5.v5 or false);
+    uuid_0_6_5.std =
+      (f.uuid_0_6_5.std or false) ||
+      (f.uuid_0_6_5.default or false) ||
+      (uuid_0_6_5.default or false) ||
+      (f.uuid_0_6_5.use_std or false) ||
+      (uuid_0_6_5.use_std or false);
+  }) [ cfg_if_0_1_4_features rand_0_4_2_features ];
+  vcpkg_0_2_4 = { features?(vcpkg_0_2_4_features {}) }: vcpkg_0_2_4_ {};
+  vcpkg_0_2_4_features = f: updateFeatures f (rec {
+    vcpkg_0_2_4.default = (f.vcpkg_0_2_4.default or true);
+  }) [];
+  vec_map_0_8_1 = { features?(vec_map_0_8_1_features {}) }: vec_map_0_8_1_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_1 or {});
+  };
+  vec_map_0_8_1_features = f: updateFeatures f (rec {
+    vec_map_0_8_1.default = (f.vec_map_0_8_1.default or true);
+    vec_map_0_8_1.serde =
+      (f.vec_map_0_8_1.serde or false) ||
+      (f.vec_map_0_8_1.eders or false) ||
+      (vec_map_0_8_1.eders or false);
+  }) [];
+  version_check_0_1_4 = { features?(version_check_0_1_4_features {}) }: version_check_0_1_4_ {};
+  version_check_0_1_4_features = f: updateFeatures f (rec {
+    version_check_0_1_4.default = (f.version_check_0_1_4.default or true);
+  }) [];
+  void_1_0_2 = { features?(void_1_0_2_features {}) }: void_1_0_2_ {
+    features = mkFeatures (features.void_1_0_2 or {});
+  };
+  void_1_0_2_features = f: updateFeatures f (rec {
+    void_1_0_2.default = (f.void_1_0_2.default or true);
+    void_1_0_2.std =
+      (f.void_1_0_2.std or false) ||
+      (f.void_1_0_2.default or false) ||
+      (void_1_0_2.default or false);
+  }) [];
+  want_0_0_4 = { features?(want_0_0_4_features {}) }: want_0_0_4_ {
+    dependencies = mapFeatures features ([ futures_0_1_23 log_0_4_3 try_lock_0_1_0 ]);
+  };
+  want_0_0_4_features = f: updateFeatures f (rec {
+    futures_0_1_23.default = true;
+    log_0_4_3.default = true;
+    try_lock_0_1_0.default = true;
+    want_0_0_4.default = (f.want_0_0_4.default or true);
+  }) [ futures_0_1_23_features log_0_4_3_features try_lock_0_1_0_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_0_3_5 = { features?(winapi_0_3_5_features {}) }: winapi_0_3_5_ {
+    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([ winapi_i686_pc_windows_gnu_0_4_0 ]) else [])
+      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([ winapi_x86_64_pc_windows_gnu_0_4_0 ]) else []);
+    features = mkFeatures (features.winapi_0_3_5 or {});
+  };
+  winapi_0_3_5_features = f: updateFeatures f (rec {
+    winapi_0_3_5.default = (f.winapi_0_3_5.default or true);
+    winapi_i686_pc_windows_gnu_0_4_0.default = true;
+    winapi_x86_64_pc_windows_gnu_0_4_0.default = true;
+  }) [ winapi_i686_pc_windows_gnu_0_4_0_features winapi_x86_64_pc_windows_gnu_0_4_0_features ];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  winapi_i686_pc_windows_gnu_0_4_0 = { features?(winapi_i686_pc_windows_gnu_0_4_0_features {}) }: winapi_i686_pc_windows_gnu_0_4_0_ {};
+  winapi_i686_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
+    winapi_i686_pc_windows_gnu_0_4_0.default = (f.winapi_i686_pc_windows_gnu_0_4_0.default or true);
+  }) [];
+  winapi_x86_64_pc_windows_gnu_0_4_0 = { features?(winapi_x86_64_pc_windows_gnu_0_4_0_features {}) }: winapi_x86_64_pc_windows_gnu_0_4_0_ {};
+  winapi_x86_64_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
+    winapi_x86_64_pc_windows_gnu_0_4_0.default = (f.winapi_x86_64_pc_windows_gnu_0_4_0.default or true);
+  }) [];
+  ws2_32_sys_0_2_1 = { features?(ws2_32_sys_0_2_1_features {}) }: ws2_32_sys_0_2_1_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  ws2_32_sys_0_2_1_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+    ws2_32_sys_0_2_1.default = (f.ws2_32_sys_0_2_1.default or true);
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  xattr_0_2_2 = { features?(xattr_0_2_2_features {}) }: xattr_0_2_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_42 ]);
+    features = mkFeatures (features.xattr_0_2_2 or {});
+  };
+  xattr_0_2_2_features = f: updateFeatures f (rec {
+    libc_0_2_42.default = true;
+    xattr_0_2_2.default = (f.xattr_0_2_2.default or true);
+    xattr_0_2_2.unsupported =
+      (f.xattr_0_2_2.unsupported or false) ||
+      (f.xattr_0_2_2.default or false) ||
+      (xattr_0_2_2.default or false);
+  }) [ libc_0_2_42_features ];
+}
diff --git a/pkgs/tools/package-management/cargo-download/default.nix b/pkgs/tools/package-management/cargo-download/default.nix
new file mode 100644
index 000000000000..398e007c3702
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-download/default.nix
@@ -0,0 +1,11 @@
+{ stdenv, lib, fetchgit, darwin, buildPlatform
+, buildRustCrate, defaultCrateOverrides }:
+
+((import ./Cargo.nix { inherit lib buildPlatform buildRustCrate fetchgit; }).cargo_download {}).override {
+  crateOverrides = defaultCrateOverrides // {
+    cargo-download = attrs: {
+      buildInputs = lib.optional stdenv.isDarwin
+        darwin.apple_sdk.frameworks.Security;
+    };
+  };
+}
diff --git a/pkgs/tools/package-management/clib/default.nix b/pkgs/tools/package-management/clib/default.nix
index 795a605b3b63..158db426c615 100644
--- a/pkgs/tools/package-management/clib/default.nix
+++ b/pkgs/tools/package-management/clib/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, curl  }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.0";
+  version = "1.8.1";
   name = "clib-${version}";
 
   src = fetchFromGitHub {
     rev    = version;
     owner  = "clibs";
     repo   = "clib";
-    sha256 = "0w1qiwq0jjrk8p848bmwxq4wvzhbd2zghq3qm8ylaj3z0xdw7ppk";
+    sha256 = "1kl8amlw0106jsvv71a7nifhff1jdvgsrxr7l7hfr75i506q8976";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index edb78d1b63a8..7d78fef39742 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, fetchpatch, perl, curl, bzip2, sqlite, openssl ? null, xz
-, pkgconfig, boehmgc, perlPackages, libsodium, aws-sdk-cpp, brotli, boost
+, pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost
 , autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns
 , busybox-sandbox-shell
 , storeDir ? "/nix/store"
 , stateDir ? "/nix/var"
 , confDir ? "/etc"
 , withLibseccomp ? libseccomp.meta.available, libseccomp
+, withAWS ? stdenv.isLinux || stdenv.isDarwin, aws-sdk-cpp
 }:
 
 let
@@ -31,7 +32,7 @@ let
       ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
       ++ lib.optionals is20 [ brotli boost ]
       ++ lib.optional withLibseccomp libseccomp
-      ++ lib.optional ((stdenv.isLinux || stdenv.isDarwin) && is20)
+      ++ lib.optional (withAWS && is20)
           ((aws-sdk-cpp.override {
             apis = ["s3" "transfer"];
             customMemoryManagement = false;
@@ -74,7 +75,7 @@ let
           stdenv.hostPlatform != stdenv.buildPlatform && stdenv.hostPlatform ? nix && stdenv.hostPlatform.nix ? system
       ) ''--with-system=${stdenv.hostPlatform.nix.system}''
          # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50
-      ++ lib.optional (!libseccomp.meta.available) "--disable-seccomp-sandboxing";
+      ++ lib.optional (!withLibseccomp) "--disable-seccomp-sandboxing";
 
     makeFlags = "profiledir=$(out)/etc/profile.d";
 
@@ -147,10 +148,10 @@ in rec {
   }) // { perl-bindings = nix1; };
 
   nixStable = (common rec {
-    name = "nix-2.1";
+    name = "nix-2.1.1";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "0ed68e0c50f13810768fcf510abb2c56d735172c39a325aac7453ccf7ae152fc";
+      sha256 = "63b1d49ea678162ada6996e42abb62cbc6e65cfefa4faa5436ae37100504720b";
     };
   }) // { perl-bindings = perl-bindings {
     nix = nixStable;
diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix
index d1266ca495ed..f4def72b728c 100644
--- a/pkgs/tools/security/monkeysphere/default.nix
+++ b/pkgs/tools/security/monkeysphere/default.nix
@@ -1,35 +1,53 @@
-{ stdenv, fetchurl, perl, makeWrapper, perlPackages }:
+{ stdenv, fetchurl, makeWrapper
+, perl, libassuan, libgcrypt
+, perlPackages, lockfileProgs, gnupg
+}:
 
 stdenv.mkDerivation rec {
   name = "monkeysphere-${version}";
-  version = "0.37";
+  version = "0.41";
 
   src = fetchurl {
-    url = "http://archive.monkeysphere.info/debian/pool/monkeysphere/m/monkeysphere/monkeysphere_0.37.orig.tar.gz";
-    sha256 = "0nbfd220miflah5l2y20qlmgfpbqi0j8h7qgx1b06h7v2jjbh45m";
+    url = "http://archive.monkeysphere.info/debian/pool/monkeysphere/m/monkeysphere/monkeysphere_${version}.orig.tar.gz";
+    sha256 = "0jz7kwkwgylqprnl8bwvl084s5gjrilza77ln18i3f6x48b2y6li";
   };
 
-  buildInputs = [ makeWrapper perl ];
-
   patches = [ ./monkeysphere.patch ];
 
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ perl libassuan libgcrypt ];
+
   makeFlags = ''
     PREFIX=/
     DESTDIR=$(out)
   '';
 
-  postInstall = ''
-    wrapProgram $out/bin/openpgp2ssh --prefix PERL5LIB : \
-      "${with perlPackages; stdenv.lib.makePerlPath [
-        CryptOpenSSLRSA
-        CryptOpenSSLBignum
-      ]}"
-    wrapProgram $out/bin/monkeysphere --prefix PERL5LIB :\
-      "${with perlPackages; stdenv.lib.makePerlPath [
-        CryptOpenSSLRSA
-        CryptOpenSSLBignum
-      ]}"
-  '';
+  postFixup =
+    let wrapperArgs = runtimeDeps:
+          "--prefix PERL5LIB : "
+          + (with perlPackages; stdenv.lib.makePerlPath [
+              CryptOpenSSLRSA
+              CryptOpenSSLBignum
+            ])
+          + stdenv.lib.optionalString
+              (builtins.length runtimeDeps > 0)
+              " --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}";
+        wrapMonkeysphere = runtimeDeps: program:
+          "wrapProgram $out/bin/${program} ${wrapperArgs runtimeDeps}\n";
+        wrapPrograms = runtimeDeps: programs: stdenv.lib.concatMapStrings
+          (wrapMonkeysphere runtimeDeps)
+          programs;
+    in wrapPrograms [ gnupg ] [ "monkeysphere-authentication" "monkeysphere-host" ]
+      + wrapPrograms [ lockfileProgs ] [ "monkeysphere" ]
+      + ''
+        # These 4 programs depend on the program name ($0):
+        for program in openpgp2pem openpgp2spki openpgp2ssh pem2openpgp; do
+          rm $out/bin/$program
+          ln -sf keytrans $out/share/monkeysphere/$program
+          makeWrapper $out/share/monkeysphere/$program $out/bin/$program \
+            ${wrapperArgs [ ]}
+        done
+      '';
 
   meta = with stdenv.lib; {
     homepage = http://web.monkeysphere.info/;
@@ -43,7 +61,8 @@ stdenv.mkDerivation rec {
       TLS/SSL communications through the normal use of tools you are
       familiar with, such as your web browser0 or secure shell.
     '';
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.all;
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/pkgs/tools/security/monkeysphere/monkeysphere.patch b/pkgs/tools/security/monkeysphere/monkeysphere.patch
index 8b343b93454f..fdf4b9335b19 100644
--- a/pkgs/tools/security/monkeysphere/monkeysphere.patch
+++ b/pkgs/tools/security/monkeysphere/monkeysphere.patch
@@ -1,92 +1,32 @@
-diff -rupN monkeysphere-0.37/Makefile monkeysphere-0.37-patched/Makefile
---- monkeysphere-0.37/Makefile	2014-08-06 19:27:38.000000000 +0200
-+++ monkeysphere-0.37-patched/Makefile	2015-07-31 19:51:57.539373097 +0200
-@@ -42,11 +42,11 @@ install: all installman
- 	mkdir -p $(DESTDIR)$(PREFIX)/share/doc/monkeysphere
- 	printf "Monkeysphere %s\n" $(MONKEYSPHERE_VERSION) > $(DESTDIR)$(PREFIX)/share/monkeysphere/VERSION
- 	install src/monkeysphere $(DESTDIR)$(PREFIX)/bin
--	sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/bin/monkeysphere
-+	sed -i 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' $(DESTDIR)$(PREFIX)/bin/monkeysphere
- 	install src/monkeysphere-host $(DESTDIR)$(PREFIX)/sbin
--	sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-host
-+	sed -i 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-host
- 	install src/monkeysphere-authentication $(DESTDIR)$(PREFIX)/sbin
--	sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-authentication
-+	sed -i 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' $(DESTDIR)$(PREFIX)/sbin/monkeysphere-authentication
- 	install src/monkeysphere-authentication-keys-for-user $(DESTDIR)$(PREFIX)/share/monkeysphere
- 	install -m 0755 src/share/common $(DESTDIR)$(PREFIX)/share/monkeysphere
- 	install -m 0644 src/share/defaultenv $(DESTDIR)$(PREFIX)/share/monkeysphere
-@@ -59,8 +59,8 @@ install: all installman
- 	ln -sf ../share/monkeysphere/keytrans $(DESTDIR)$(PREFIX)/bin/openpgp2pem
- 	ln -sf ../share/monkeysphere/keytrans $(DESTDIR)$(PREFIX)/bin/openpgp2spki
- 	install -m 0744 src/transitions/* $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions
--	sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions/0.23
--	sed -i 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions/0.28
-+	sed -i 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions/0.23
-+	sed -i 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions/0.28
- 	install -m 0644 src/transitions/README.txt $(DESTDIR)$(PREFIX)/share/monkeysphere/transitions
- 	install -m 0644 src/share/m/* $(DESTDIR)$(PREFIX)/share/monkeysphere/m
- 	install -m 0644 src/share/mh/* $(DESTDIR)$(PREFIX)/share/monkeysphere/mh
-diff -rupN monkeysphere-0.37/src/share/checkperms monkeysphere-0.37-patched/src/share/checkperms
---- monkeysphere-0.37/src/share/checkperms	2014-08-06 19:27:38.000000000 +0200
-+++ monkeysphere-0.37-patched/src/share/checkperms	2015-07-31 19:52:18.170675985 +0200
+diff --git a/Makefile b/Makefile
+--- a/Makefile
++++ b/Makefile
+@@ -52,7 +52,7 @@ clean:
+ replaced/%: %
+ 	mkdir -p $(dir $@)
+ 	sed < $< > $@ \
+-	-e 's:__SYSSHAREDIR_PREFIX__:$(PREFIX):' \
++	-e 's:__SYSSHAREDIR_PREFIX__:$(DESTDIR):' \
+ 	-e 's:__SYSCONFDIR_PREFIX__:$(ETCPREFIX):' \
+ 	-e 's:__SYSDATADIR_PREFIX__:$(LOCALSTATEDIR):'
+ 
+diff --git a/src/share/checkperms b/src/share/checkperms
+--- a/src/share/checkperms
++++ b/src/share/checkperms
 @@ -1,4 +1,4 @@
 -#!/usr/bin/perl -T
 +#!/usr/bin/perl
  
  # checkperms: ensure as best we can that a given file can only be
  # modified by the given user (or the superuser, naturally).  This
-diff -rupN monkeysphere-0.37/src/share/keytrans monkeysphere-0.37-patched/src/share/keytrans
---- monkeysphere-0.37/src/share/keytrans	2014-08-06 19:27:38.000000000 +0200
-+++ monkeysphere-0.37-patched/src/share/keytrans	2015-07-31 20:13:36.664514290 +0200
+diff --git a/src/share/keytrans b/src/share/keytrans
+--- a/src/share/keytrans
++++ b/src/share/keytrans
 @@ -1,4 +1,4 @@
 -#!/usr/bin/perl -T
 +#!/usr/bin/perl
  
  # keytrans: this is an RSA key translation utility; it is capable of
  # transforming RSA keys (both public keys and secret keys) between
-@@ -1069,7 +1069,7 @@ sub packetwalk {
- 
- 
- for (basename($0)) {
--  if (/^pem2openpgp$/) {
-+  if (/pem2openpgp/) {
-     my $rsa;
-     my $stdin;
- 
-@@ -1107,7 +1107,7 @@ for (basename($0)) {
- 		      }
- 		     );
-   }
--  elsif (/^openpgp2ssh$/) {
-+  elsif (/openpgp2ssh/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1123,7 +1123,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^openpgp2pem$/) {
-+  elsif (/openpgp2pem/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1139,7 +1139,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^openpgp2spki$/) {
-+  elsif (/openpgp2spki/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1151,7 +1151,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^keytrans$/) {
-+  elsif (/keytrans/) {
-     # subcommands when keytrans is invoked directly are UNSUPPORTED,
-     # UNDOCUMENTED, and WILL NOT BE MAINTAINED.
-     my $subcommand = shift;
+-- 
+2.16.3
diff --git a/pkgs/tools/system/s6-rc/default.nix b/pkgs/tools/system/s6-rc/default.nix
index 40c999d80f13..2712186ec5d1 100644
--- a/pkgs/tools/system/s6-rc/default.nix
+++ b/pkgs/tools/system/s6-rc/default.nix
@@ -1,27 +1,18 @@
-{ stdenv, execline, fetchgit, skalibs, s6 }:
+{ stdenv, skawarePackages }:
 
-let
+with skawarePackages;
 
-  version = "0.4.0.1";
+buildPackage {
+  pname = "s6-rc";
+  version = "0.4.1.0";
+  sha256 = "1xl37xi509pcm5chcvn8l7gb952sr5mkpxhpkbsxhsllj791bfa2";
 
-in stdenv.mkDerivation rec {
-
-  name = "s6-rc-${version}";
-
-  src = fetchgit {
-    url = "git://git.skarnet.org/s6-rc";
-    rev = "refs/tags/v${version}";
-    sha256 = "10gkkdbvkb4s2yshx425v9diwm7vvbl320a2bm0c3wz71xr94wsw";
-  };
+  description = "A service manager for s6-based systems";
+  platforms = stdenv.lib.platforms.linux;
 
   outputs = [ "bin" "lib" "dev" "doc" "out" ];
 
-  dontDisableStatic = true;
-
-  enableParallelBuilding = true;
-
   configureFlags = [
-    "--enable-absolute-paths"
     "--libdir=\${lib}/lib"
     "--libexecdir=\${lib}/libexec"
     "--dynlibdir=\${lib}/lib"
@@ -37,22 +28,15 @@ in stdenv.mkDerivation rec {
     "--with-dynlib=${skalibs.lib}/lib"
     "--with-dynlib=${execline.lib}/lib"
     "--with-dynlib=${s6.out}/lib"
-  ]
-  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
-  ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+  ];
 
   postInstall = ''
-    mkdir -p $doc/share/doc/s6-rc/
+    # remove all s6 executables from build directory
+    rm $(find -name "s6-rc-*" -type f -mindepth 1 -maxdepth 1 -executable)
+    rm s6-rc libs6rc.*
+
     mv doc $doc/share/doc/s6-rc/html
     mv examples $doc/share/doc/s6-rc/examples
   '';
 
-  meta = {
-    homepage = http://skarnet.org/software/s6-rc/;
-    description = "A service manager for s6-based systems";
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ];
-  };
-
 }
diff --git a/pkgs/tools/system/s6/default.nix b/pkgs/tools/system/s6/default.nix
index d7ade3cdb290..031439d56d5c 100644
--- a/pkgs/tools/system/s6/default.nix
+++ b/pkgs/tools/system/s6/default.nix
@@ -1,31 +1,21 @@
-{ stdenv, execline, fetchgit, skalibs }:
+{ stdenv, skawarePackages }:
 
-let
+with skawarePackages;
 
-  version = "2.7.1.1";
+buildPackage {
+  pname = "s6";
+  version = "2.7.2.0";
+  sha256 = "02canrzmhr66gi16ldyylk378jlmyfl73vn72ayr12h2wyxgqm5g";
 
-in stdenv.mkDerivation rec {
-
-  name = "s6-${version}";
-
-  src = fetchgit {
-    url = "git://git.skarnet.org/s6";
-    rev = "refs/tags/v${version}";
-    sha256 = "0dncw3h9wc4cgc9q8zjwicgbcqcn6722yhk8g9bvrhs7h4fkfqav";
-  };
+  description = "skarnet.org's small & secure supervision software suite";
 
   # NOTE lib: cannot split lib from bin at the moment,
   # since some parts of lib depend on executables in bin.
   # (the `*_startf` functions in `libs6`)
-
   outputs = [ /*"bin" "lib"*/ "out" "dev" "doc" ];
 
-  dontDisableStatic = true;
-
-  enableParallelBuilding = true;
-
+  # TODO: nsss support
   configureFlags = [
-    "--enable-absolute-paths"
     "--libdir=\${out}/lib"
     "--libexecdir=\${out}/libexec"
     "--dynlibdir=\${out}/lib"
@@ -38,22 +28,15 @@ in stdenv.mkDerivation rec {
     "--with-lib=${execline.lib}/lib"
     "--with-dynlib=${skalibs.lib}/lib"
     "--with-dynlib=${execline.lib}/lib"
-  ]
-  ++ (if stdenv.isDarwin then [ "--disable-shared" ] else [ "--enable-shared" ])
-  ++ (stdenv.lib.optional stdenv.isDarwin "--build=${stdenv.hostPlatform.system}");
+  ];
 
   postInstall = ''
-    mkdir -p $doc/share/doc/s6/
+    # remove all s6 executables from build directory
+    rm $(find -type f -mindepth 1 -maxdepth 1 -executable)
+    rm libs6.*
+
     mv doc $doc/share/doc/s6/html
     mv examples $doc/share/doc/s6/examples
   '';
 
-  meta = {
-    homepage = http://www.skarnet.org/software/s6/;
-    description = "skarnet.org's small & secure supervision software suite";
-    platforms = stdenv.lib.platforms.all;
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ pmahoney Profpatsch ];
-  };
-
 }
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index f70f0f3d75b2..81c88ecad9e5 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -1,19 +1,26 @@
-{ stdenv, fetchFromGitHub, rustPlatform, asciidoc, docbook_xsl, libxslt  }:
+{ stdenv, fetchFromGitHub, rustPlatform, asciidoc, docbook_xsl, libxslt
+, Security
+, withPCRE2 ? false, pcre2 ? null
+}:
 
 rustPlatform.buildRustPackage rec {
   name = "ripgrep-${version}";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "BurntSushi";
     repo = "ripgrep";
     rev = version;
-    sha256 = "089xffrqi4wm0w1lhy5iqxrcb82ca44bxl8qps4ilv0ih91vxwfj";
+    sha256 = "017fz5kv1kv9jz7mb7vcxrklf5vybvfz2x61g6myzshqz4z1v1yb";
   };
 
-  cargoSha256 = "1wsw7s1bc1gnpq4kjzkas5zf2snhpx9f6cyrrf6g5jr8l0hcbyih";
+  cargoSha256 = "0k2b2vbklfdjk2zdc8ip480drc12gy1whlwj94p44hr3402azcgr";
+
+  cargoBuildFlags = stdenv.lib.optional withPCRE2 "--features pcre2";
 
   nativeBuildInputs = [ asciidoc docbook_xsl libxslt ];
+  buildInputs = (stdenv.lib.optional withPCRE2 pcre2)
+    ++ (stdenv.lib.optional stdenv.isDarwin Security);
 
   preFixup = ''
     mkdir -p "$out/man/man1"
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix
index 8b3e320fd269..41ec8ad52694 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -35,7 +35,7 @@ let
 
   mkUniquePkgs = pkgs: fastUnique (a: b: a < b) # highlighting hack: >
     # here we deal with those dummy packages needed for hyphenation filtering
-    (map (p: if lib.isDerivation p then builtins.toPath p else "") pkgs);
+    (map (p: if lib.isDerivation p then p.outPath else "") pkgs);
 
 in buildEnv {
   name = "texlive-${extraName}-${bin.texliveYear}";
diff --git a/pkgs/tools/virtualization/euca2ools/default.nix b/pkgs/tools/virtualization/euca2ools/default.nix
index ce628ff84b5e..5b310992afb6 100644
--- a/pkgs/tools/virtualization/euca2ools/default.nix
+++ b/pkgs/tools/virtualization/euca2ools/default.nix
@@ -15,7 +15,7 @@ in buildPythonApplication rec {
   propagatedBuildInputs = [ boto m2crypto ];
 
   meta = {
-    homepage = http://open.eucalyptus.com/downloads;
+    homepage = https://github.com/eucalyptus/euca2ools;
     description = "Tools for interacting with Amazon EC2/S3-compatible cloud computing services";
     maintainers = [ stdenv.lib.maintainers.eelco ];
     platforms = stdenv.lib.platforms.linux;