summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2018-06-01 17:44:35 +0000
committerOrivej Desh <orivej@gmx.fr>2018-06-01 17:44:35 +0000
commit4b2735fd9fe26efb885e4dd53181237ddf9c2140 (patch)
tree44638c82dfd627d17d5b032f9c4f04975744d829 /pkgs/tools
parentfd9cfc4db512f41612727a4a4fe0303fe8f67bef (diff)
parentbc069622dde963680f3e71c24f96a6fd32ed412e (diff)
downloadnixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar.gz
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar.bz2
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar.lz
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar.xz
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.tar.zst
nixlib-4b2735fd9fe26efb885e4dd53181237ddf9c2140.zip
Merge branch 'master' into staging
* master: (153 commits)
  coqPackages.contribs.aac-tactics: enable for Coq 8.7 and 8.8 (#41351)
  haskell.packages.ghcjs.terminfo: Bump version (#41337)
  nixos/mpd: allow services.mpd.dbFile to be null
  prometheus-snmp-exporter: 0.9.0 -> 0.11.0 (#41363)
  tdesktopPackages.preview: 1.2.24 -> 1.3.0
  signal-desktop: Refactor the package description
  rrootage: init at 0.23a
  bulletml: init at 0.0.6
  signal-desktop: Fix a possible crash when saving an attachment
  linux_rpi: More downstream device tree name fixups
  nixos/sd-image-raspberrypi: Support Raspberry Pi Zero
  U-Boot: Add ubootRaspberryPiZero variant
  U-Boot: 2018.03 -> 2018.05
  linux_rpi: 1.20171029 -> 1.20180417
  raspberrypifw: 1.20180328 -> 1.20180417
  scite: 3.7.5 -> 4.0.5 (#41345)
  neo4j: 3.3.4 -> 3.4.0 (#41338)
  bat: 0.3.0 -> 0.4.1 (#41348)
  perlPackages.Git: init at 0.42
  nodePackages_8_x.pnpm: wrap nodejs.passthru.python
  ...
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/compression/xar/default.nix5
-rw-r--r--pkgs/tools/graphics/povray/default.nix4
-rw-r--r--pkgs/tools/misc/bat/default.nix10
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix6
-rw-r--r--pkgs/tools/misc/opentsdb/default.nix4
-rw-r--r--pkgs/tools/misc/os-prober/default.nix46
-rw-r--r--pkgs/tools/networking/dd-agent/40103-iostat-fix.patch30
-rw-r--r--pkgs/tools/networking/dd-agent/default.nix3
-rw-r--r--pkgs/tools/networking/iperf/2.nix4
-rw-r--r--pkgs/tools/networking/shadowsocks-libev/default.nix4
-rw-r--r--pkgs/tools/networking/strongswan/default.nix4
-rw-r--r--pkgs/tools/package-management/cargo-edit/cargo-edit.nix1912
-rw-r--r--pkgs/tools/package-management/cargo-edit/default.nix43
-rw-r--r--pkgs/tools/package-management/nix/default.nix4
-rw-r--r--pkgs/tools/package-management/pacman/default.nix4
-rw-r--r--pkgs/tools/typesetting/scdoc/default.nix31
16 files changed, 2039 insertions, 75 deletions
diff --git a/pkgs/tools/compression/xar/default.nix b/pkgs/tools/compression/xar/default.nix
index 01d18fe6ad7d..69d4284b795d 100644
--- a/pkgs/tools/compression/xar/default.nix
+++ b/pkgs/tools/compression/xar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libxml2, openssl, zlib, bzip2, musl-fts }:
+{ stdenv, fetchurl, libxml2, openssl, zlib, bzip2, fts }:
 
 stdenv.mkDerivation rec {
   version = "1.6.1";
@@ -9,8 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ghmsbs6xwg1092v7pjcibmk5wkyifwxw6ygp08gfz25d2chhipf";
   };
 
-  buildInputs = [ libxml2 openssl zlib bzip2 ]
-    ++ stdenv.lib.optional stdenv.hostPlatform.isMusl musl-fts;
+  buildInputs = [ libxml2 openssl zlib bzip2 fts ];
 
   meta = {
     homepage    = https://mackyle.github.io/xar/;
diff --git a/pkgs/tools/graphics/povray/default.nix b/pkgs/tools/graphics/povray/default.nix
index 5dfed3722e09..217a85f266ab 100644
--- a/pkgs/tools/graphics/povray/default.nix
+++ b/pkgs/tools/graphics/povray/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "povray-${version}";
-  version = "3.7.0.7";
+  version = "3.7.0.8";
 
   src = fetchFromGitHub {
     owner = "POV-Ray";
     repo = "povray";
     rev = "v${version}";
-    sha256 = "0gqbc4ycjfqpnixzzqxlygmargk6sm77b0k3xzff9dxdrak3xng7";
+    sha256 = "1q114n4m3r7qy3yn954fq7p46rg7ypdax5fazxr9yj1jklf1lh6z";
   };
 
 
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index b869f1e634c5..7a3231ce85c2 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, pkgs, rustPlatform, fetchFromGitHub }:
+{ stdenv, rustPlatform, fetchFromGitHub, cmake, pkgconfig, zlib }:
 
 rustPlatform.buildRustPackage rec {
   name    = "bat-${version}";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner  = "sharkdp";
     repo   = "bat";
     rev    = "v${version}";
-    sha256 = "15d7i0iy5lks3jg9js6n6fy4xanjk76fpryl2kq88kdkq67hpzfp";
+    sha256 = "0fiif6b8g2hdb05s028dbcpav6ax0qap2hbsr9p2bld4z7j7321m";
   };
 
-  cargoSha256 = "179a7abhzpxjp3cc820jzxg0qk1fiv9rkpazwnzhkjl8yd7b7qi3";
+  cargoSha256 = "0w0y3sfrpk8sn9rls90kjqrqr62pd690ripdfbvb5ipkzizp429l";
 
-  buildInputs = with pkgs; [ pkgconfig cmake zlib file perl curl ];
+  nativeBuildInputs = [ cmake pkgconfig zlib ];
 
   meta = with stdenv.lib; {
     description = "A cat(1) clone with syntax highlighting and Git integration";
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index 96ce38ea9e85..84c06a49f843 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, fetchFromSavannah, autogen, flex, bison, python, autoconf, automake
 , gettext, ncurses, libusb, freetype, qemu, devicemapper, unifont, pkgconfig
+, fuse # only needed for grub-mount
 , zfs ? null
 , efiSupport ? false
 , zfsSupport ? true
@@ -47,7 +48,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ bison flex python pkgconfig ];
-  buildInputs = [ ncurses libusb freetype gettext devicemapper ]
+  buildInputs = [ ncurses libusb freetype gettext devicemapper fuse ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
@@ -83,7 +84,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-bash-completion.patch ];
 
-  configureFlags = optional zfsSupport "--enable-libzfs"
+  configureFlags = [ "--enable-grub-mount" ] # dep of os-prober
+    ++ optional zfsSupport "--enable-libzfs"
     ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.system}.target}" "--program-prefix=" ]
     ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.system}.target}"];
 
diff --git a/pkgs/tools/misc/opentsdb/default.nix b/pkgs/tools/misc/opentsdb/default.nix
index 31375eeaf85d..f6aea4a92ab9 100644
--- a/pkgs/tools/misc/opentsdb/default.nix
+++ b/pkgs/tools/misc/opentsdb/default.nix
@@ -6,11 +6,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "opentsdb-${version}";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "https://github.com/OpenTSDB/opentsdb/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "0nip40rh3vl5azfc27yha4ngnm9sw47hf110c90hg0warzz85sch";
+    sha256 = "1lf1gynr11silla4bsrkwqv023dxirsb88ncs2qmc2ng35593fjd";
   };
 
   buildInputs = [ autoconf automake curl jdk makeWrapper nettools python git ];
diff --git a/pkgs/tools/misc/os-prober/default.nix b/pkgs/tools/misc/os-prober/default.nix
index b879f621e142..c4a304e0d284 100644
--- a/pkgs/tools/misc/os-prober/default.nix
+++ b/pkgs/tools/misc/os-prober/default.nix
@@ -1,32 +1,27 @@
 { stdenv, fetchurl, makeWrapper,
-systemd, # udevadm
-busybox,
-coreutils, # os-prober desn't seem to work with pure busybox
-devicemapper, # lvs
-# optional dependencies
-cryptsetup ? null,
-libuuid ? null, # blkid and blockdev
-dmraid ? null,
-ntfs3g ? null
+# optional dependencies, the command(s) they provide
+coreutils,  # mktemp
+grub2,      # grub-mount and grub-probe
+cryptsetup, # cryptsetup
+libuuid,    # blkid and blockdev
+libudev,    # udevadm udevinfo
+ntfs3g      # ntfs3g
 }:
 
 stdenv.mkDerivation rec {
   version = "1.76";
   name = "os-prober-${version}";
   src = fetchurl {
-    url = "mirror://debian/pool/main/o/os-prober/os-prober_${version}.tar.xz";
-    sha256 = "1vb45i76bqivlghrq7m3n07qfmmq4wxrkplqx8gywj011rhq19fk";
+    url = "https://salsa.debian.org/philh/os-prober/-/archive/${version}/os-prober-${version}.tar.bz2";
+    sha256 = "07rw3092pckh21vx6y4hzqcn3wn4cqmwxaaiq100lncnhmszg11g";
   };
 
   buildInputs = [ makeWrapper ];
   installPhase = ''
     # executables
-    mkdir -p $out/bin
-    mkdir -p $out/lib
-    mkdir -p $out/share
-    cp os-prober linux-boot-prober $out/bin
-    cp newns $out/lib
-    cp common.sh $out/share
+    install -Dt $out/bin os-prober linux-boot-prober
+    install -Dt $out/lib newns
+    install -Dt $out/share common.sh
 
     # probes
     case "${stdenv.system}" in
@@ -36,8 +31,7 @@ stdenv.mkDerivation rec {
         *) ARCH=other;;
     esac;
     for probes in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do
-      mkdir -p $out/lib/$probes;
-      cp $probes/common/* $out/lib/$probes;
+      install -Dt $out/lib/$probes $probes/common/*;
       if [ -e "$probes/$ARCH" ]; then
         mkdir -p $out/lib/$probes
         cp -r $probes/$ARCH/* $out/lib/$probes;
@@ -57,21 +51,15 @@ stdenv.mkDerivation rec {
     done;
     for file in $out/bin/*; do
       wrapProgram $file \
-        --set LVM_SYSTEM_DIR ${devicemapper} \
-        --suffix PATH : "$out/bin${builtins.foldl' (x: y: x + ":" + y) "" (
-          map (x: (toString x) + "/bin") (
-            builtins.filter (x: x!=null)
-              [ devicemapper systemd coreutils cryptsetup libuuid dmraid ntfs3g busybox ]
-            )
-          )
-        }" \
+        --suffix PATH : ${stdenv.lib.makeBinPath [ grub2 libudev coreutils cryptsetup libuuid ntfs3g ]} \
         --run "[ -d /var/lib/os-prober ] || mkdir /var/lib/os-prober"
     done;
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Utility to detect other OSs on a set of drives";
     homepage = http://packages.debian.org/source/sid/os-prober;
-    license = stdenv.lib.licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ symphorien ];
   };
 }
diff --git a/pkgs/tools/networking/dd-agent/40103-iostat-fix.patch b/pkgs/tools/networking/dd-agent/40103-iostat-fix.patch
new file mode 100644
index 000000000000..9897a76c957d
--- /dev/null
+++ b/pkgs/tools/networking/dd-agent/40103-iostat-fix.patch
@@ -0,0 +1,30 @@
+diff --git a/checks/system/unix.py b/checks/system/unix.py
+index c37af3c3..58c72626 100644
+--- a/checks/system/unix.py
++++ b/checks/system/unix.py
+@@ -39,7 +39,7 @@ class IO(Check):
+         self.value_re = re.compile(r'\d+\.\d+')
+ 
+     def _parse_linux2(self, output):
+-        recentStats = output.split('Device:')[2].split('\n')
++        recentStats = output.split('Device')[2].split('\n')
+         header = recentStats[0]
+         headerNames = re.findall(self.header_re, header)
+         device = None
+@@ -123,14 +123,14 @@ class IO(Check):
+ 
+                 #                 Linux 2.6.32-343-ec2 (ip-10-35-95-10)   12/11/2012      _x86_64_        (2 CPU)
+                 #
+-                # Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
++                # Device         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
+                 # sda1              0.00    17.61    0.26   32.63     4.23   201.04    12.48     0.16    4.81   0.53   1.73
+                 # sdb               0.00     2.68    0.19    3.84     5.79    26.07    15.82     0.02    4.93   0.22   0.09
+                 # sdg               0.00     0.13    2.29    3.84   100.53    30.61    42.78     0.05    8.41   0.88   0.54
+                 # sdf               0.00     0.13    2.30    3.84   100.54    30.61    42.78     0.06    9.12   0.90   0.55
+                 # md0               0.00     0.00    0.05    3.37     1.41    30.01    18.35     0.00    0.00   0.00   0.00
+                 #
+-                # Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
++                # Device         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
+                 # sda1              0.00     0.00    0.00   10.89     0.00    43.56     8.00     0.03    2.73   2.73   2.97
+                 # sdb               0.00     0.00    0.00    2.97     0.00    11.88     8.00     0.00    0.00   0.00   0.00
+                 # sdg               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
diff --git a/pkgs/tools/networking/dd-agent/default.nix b/pkgs/tools/networking/dd-agent/default.nix
index 805b0dddcacf..1038882573bc 100644
--- a/pkgs/tools/networking/dd-agent/default.nix
+++ b/pkgs/tools/networking/dd-agent/default.nix
@@ -38,6 +38,8 @@ in stdenv.mkDerivation rec {
     sha256 = "1iqxvgpsqibqw3vk79158l2pnb6y4pjhjp2d6724lm5rpz4825lx";
   };
 
+  patches = [ ./40103-iostat-fix.patch ];
+
   buildInputs = [
     python
     unzip
@@ -59,6 +61,7 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/bin
     cp -R $src $out/agent
     chmod u+w -R $out
+    (cd $out/agent; patchPhase)
     PYTHONPATH=$out/agent:$PYTHONPATH
     ln -s $out/agent/agent.py $out/bin/dd-agent
     ln -s $out/agent/dogstatsd.py $out/bin/dogstatsd
diff --git a/pkgs/tools/networking/iperf/2.nix b/pkgs/tools/networking/iperf/2.nix
index 94be3c25d1fc..33e9841eb058 100644
--- a/pkgs/tools/networking/iperf/2.nix
+++ b/pkgs/tools/networking/iperf/2.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "iperf-2.0.10";
+  name = "iperf-2.0.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/iperf2/files/${name}.tar.gz";
-    sha256 = "1whyi7lxrkllmbs7i1avc6jq8fvirn64mhx9197bf4x3rj6k9r3z";
+    sha256 = "1lm5inayc8fkqncj55fvzl9611rkmkj212lknmby7c3bgk851mmp";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/tools/networking/shadowsocks-libev/default.nix b/pkgs/tools/networking/shadowsocks-libev/default.nix
index cbbc36b383bf..2823917fc31d 100644
--- a/pkgs/tools/networking/shadowsocks-libev/default.nix
+++ b/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   name = "shadowsocks-libev-${version}";
-  version = "3.1.3";
+  version = "3.2.0";
 
   # Git tag includes CMake build files which are much more convenient.
   # fetchgit because submodules.
   src = fetchgit {
     url = "https://github.com/shadowsocks/shadowsocks-libev";
     rev = "refs/tags/v${version}";
-    sha256 = "16q91xh6ixfv7b5rl31an11101irv08119klfx5qgj4i6h7c41s7";
+    sha256 = "0i9vz5b2c2bkdl2k9kqzvqyrlpdl94lf7k7rzxds8hn2kk0jizhb";
   };
 
   buildInputs = [ libsodium mbedtls libev c-ares pcre ];
diff --git a/pkgs/tools/networking/strongswan/default.nix b/pkgs/tools/networking/strongswan/default.nix
index eb466745ef84..9ceb08ad72e9 100644
--- a/pkgs/tools/networking/strongswan/default.nix
+++ b/pkgs/tools/networking/strongswan/default.nix
@@ -16,11 +16,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "strongswan-${version}";
-  version = "5.6.2";
+  version = "5.6.3";
 
   src = fetchurl {
     url = "http://download.strongswan.org/${name}.tar.bz2";
-    sha256 = "14ifqay54brw2b2hbmm517bxw8bs9631d7jm4g139igkxcq0m9p0";
+    sha256 = "095zg7h7qwsc456sqgwb1lhhk29ac3mk5z9gm6xja1pl061driy3";
   };
 
   dontPatchELF = true;
diff --git a/pkgs/tools/package-management/cargo-edit/cargo-edit.nix b/pkgs/tools/package-management/cargo-edit/cargo-edit.nix
new file mode 100644
index 000000000000..042c999be0df
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-edit/cargo-edit.nix
@@ -0,0 +1,1912 @@
+# Generated by carnix 0.6.6: carnix -o cargo-edit.nix --src ./. Cargo.lock --standalone
+{ pkgs }:
+
+with pkgs;
+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_edit = f: cargo_edit_0_2_0 { features = cargo_edit_0_2_0_features { cargo_edit_0_2_0 = f; }; };
+  adler32_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "adler32";
+    version = "1.0.0";
+    authors = [ "Remi Rampin <remirampin@gmail.com>" ];
+    sha256 = "0pj35a7m4apn5xjg9n63gsdj6w8iw76zg4p9znrij43xnfqp084w";
+    inherit dependencies buildDependencies features;
+  };
+  advapi32_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "advapi32-sys";
+    version = "0.2.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1l6789hkz2whd9gklwz1m379kcvyizaj8nnzj3rn4a5h79yg59v7";
+    libName = "advapi32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  aho_corasick_0_6_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.6.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1cpqzf6acj8lm06z3f1cg41wn6c2n9l3v49nh0dvimv4055qib6k";
+    libName = "aho_corasick";
+    crateBin = [ {  name = "aho-corasick-dot"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  assert_cli_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "assert_cli";
+    version = "0.4.0";
+    authors = [ "Pascal Hertleif <killercup@gmail.com>" ];
+    sha256 = "0jq138q0wma5b149ixjv43al19xnzwgp67s908mh4cma1ar4rxbn";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  backtrace_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "backtrace";
+    version = "0.3.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
+    sha256 = "0cj0ynv5p2f5ghisw58yjwrw4gvpji6sh12kk9j0228j7bhjznv7";
+    inherit dependencies buildDependencies features;
+  };
+  backtrace_sys_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "backtrace-sys";
+    version = "0.1.11";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06c6s9hsygix25awgcfa1gnzvihc7kvv5apnmf6p15l4phwzz6x6";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  base64_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "base64";
+    version = "0.6.0";
+    authors = [ "Alice Maz <alice@alicemaz.com>" "Marshall Pierce <marshall@mpierce.org>" ];
+    sha256 = "0ql1rmczbnww3iszc0pfc6mqa47ravpsdf525vp6s8r32nyzspl5";
+    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;
+  };
+  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
+    inherit dependencies buildDependencies features;
+  };
+  bytes_0_4_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bytes";
+    version = "0.4.4";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "028l4zlrjbr62y92slr84zil8h1bypqr7g545i566gf7cbss7hsp";
+    inherit dependencies buildDependencies features;
+  };
+  cargo_edit_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cargo-edit";
+    version = "0.2.0";
+    authors = [ "Without Boats <lee@libertad.ucsd.edu>" "Pascal Hertleif <killercup@gmail.com>" "Sebastian Garrido <sebasgarcep@gmail.com>" "Jonas Platte <mail@jonasplatte.de>" "Benjamin Gill <git@bgill.eu>" "Andronik Ordian <write@reusable.software>" ];
+    src = ./.;
+    crateBin = [ {  name = "cargo-add";  path = "src/bin/add/main.rs"; } {  name = "cargo-rm";  path = "src/bin/rm/main.rs"; } {  name = "cargo-upgrade";  path = "src/bin/upgrade/main.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  cfg_if_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cfg-if";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0x06hvrrqy96m97593823vvxcgvjaxckghwyy2jcyc8qc7c6cyhi";
+    inherit dependencies buildDependencies features;
+  };
+  colored_1_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "colored";
+    version = "1.5.2";
+    authors = [ "Thomas Wickham <mackwic@gmail.com>" ];
+    sha256 = "0d7c6vpqzlabph7qr29hdjgsks8z9hqcarzl8z5dfb8cnnrfrhzn";
+    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;
+  };
+  crypt32_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "crypt32-sys";
+    version = "0.2.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1vy1q3ayc7f4wiwyxw31hd12cvs7791x3by6ka9wbxhm5gzfs3d0";
+    libName = "crypt32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  dbghelp_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbghelp-sys";
+    version = "0.2.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0ylpi3bbiy233m57hnisn1df1v0lbl7nsxn34b0anzsgg440hqpq";
+    libName = "dbghelp";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  difference_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "difference";
+    version = "1.0.0";
+    authors = [ "Johann Hofmann <mail@johann-hofmann.com>" ];
+    sha256 = "0r1p2diin8zykfiifv6v9i3ajimdb1rg6qzxkrfw2n2iy57846qn";
+    crateBin = [ {  name = "difference"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  docopt_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "docopt";
+    version = "0.8.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0kmqy534qgcc2hh81nd248jmnvdjb5y4wclddd7y2jjm27rzibss";
+    crateBin = [ {  name = "docopt-wordlist";  path = "src/wordlist.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
+    inherit dependencies buildDependencies features;
+  };
+  error_chain_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.10.0";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "1xxbzd8cjlpzsb9fsih7mdnndhzrvykj0w77yg90qc85az1xwy5z";
+    inherit dependencies buildDependencies features;
+  };
+  foreign_types_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "foreign-types";
+    version = "0.2.0";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1sznwg2py4xi7hyrx0gg1sirlwgh87wsanvjx3zb475g6c4139jh";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.14";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1s53l50dy9abbycc88ghz1s76yfacygrxr3vnkl132m9ja0qi9nl";
+    inherit dependencies buildDependencies features;
+  };
+  futures_cpupool_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures-cpupool";
+    version = "0.1.5";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1i001y0qv8pvvqd2ch1gsxw97286bcf789mlnhaindjzhm7x8fi6";
+    inherit dependencies buildDependencies features;
+  };
+  gcc_0_3_51_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gcc";
+    version = "0.3.51";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0h2lnfakbvyn7lzpi5x41y30d5pzwz3172bdjzxxm4j59ipby563";
+    inherit dependencies buildDependencies features;
+  };
+  getopts_0_2_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "getopts";
+    version = "0.2.14";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1wdz34vls97g9868h8kiw4wmwkbyxg4xm3xzvr1542hc3w4c7z0a";
+    inherit dependencies buildDependencies features;
+  };
+  httparse_1_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "httparse";
+    version = "1.2.3";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "13x17y9bip0bija06y4vwpgh8jdmdi2gsvjq02kyfy0fbp5cqa93";
+    inherit dependencies buildDependencies features;
+  };
+  hyper_0_11_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "hyper";
+    version = "0.11.1";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0al73rns6d18f09v872hasr5sf56mpzg4cpzi9g0118fy6v2z21a";
+    inherit dependencies buildDependencies features;
+  };
+  hyper_tls_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "hyper-tls";
+    version = "0.1.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0n39sb8sc2pzdg501nshmv35q0r9pnrfjh8r1pdlygwxgcni9n3d";
+    inherit dependencies buildDependencies features;
+  };
+  idna_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "idna";
+    version = "0.1.4";
+    authors = [ "The rust-url developers" ];
+    sha256 = "15j44qgjx1skwg9i7f4cm36ni4n99b1ayx23yxx7axxcw8vjf336";
+    inherit dependencies buildDependencies features;
+  };
+  iovec_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "iovec";
+    version = "0.1.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "01gmbcaamfms70ll964wj3akqbj5bf6zzi7nfj5y2hvzjxd959sj";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
+    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_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
+    inherit dependencies buildDependencies features;
+  };
+  lazycell_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazycell";
+    version = "0.4.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Nikita Pekin <contact@nikitapek.in>" ];
+    sha256 = "1vgxv62l8qh3m8gvjyrd7wkx44hih724ivssc1mwj7vq9gnhgl0d";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_26_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.26";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0938y1yh2sr08zy8vpgj9wqk3nildip4ngpy2krvarzc8aqgvxrc";
+    inherit dependencies buildDependencies features;
+  };
+  libflate_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libflate";
+    version = "0.1.10";
+    authors = [ "Takeru Ohta <phjgt308@gmail.com>" ];
+    sha256 = "123m6wz1qvczv8fnak0k71hb7gj2kkiw3sj3rv55gfmir2kgf6gk";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_3_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.3.8";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1c43z4z85sxrsgir4s1hi84558ab5ic7jrn5qgmsiqcv90vvn006";
+    inherit dependencies buildDependencies features;
+  };
+  matches_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "matches";
+    version = "0.1.6";
+    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
+    sha256 = "1zlrqlbvzxdil8z8ial2ihvxjwvlvg3g8dr0lcdpsjclkclasjan";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  memchr_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memchr";
+    version = "1.0.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "071m5y0zm9p1k7pzqm20f44ixvmycf71xsrpayqaypxrjwchnkxm";
+    inherit dependencies buildDependencies features;
+  };
+  mime_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "mime";
+    version = "0.3.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "10yv7sq2gbq8xdh4imrga3wqiar652y8y31f8jqxw313pwsks3m5";
+    inherit dependencies buildDependencies features;
+  };
+  mio_0_6_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "mio";
+    version = "0.6.9";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "0fbx9mxqqzcp0jzm1xkg9h4l4l43vphv3zca4zpdc8ahadvfw6qh";
+    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_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "native-tls";
+    version = "0.1.4";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0q5y5i96mfpjbhx8y7w9rdq65mksw67m60bw4xqlybc8y6jkr99v";
+    inherit dependencies buildDependencies features;
+  };
+  net2_0_2_30_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "net2";
+    version = "0.2.30";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1gd7r0d646sa3fdj7rwyyx43fj7m9amqvmn0h4gv6sqcwgb7rlad";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fr8ghp4i97q3agki54i0hpmqxv3s65i2mqd1pinc7w7arc3fplw";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.6.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0wxfzxsk05xbkph5qcvdqyi334zn0pnpahzi7n7iagxbb68145rm";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_0_9_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl";
+    version = "0.9.14";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0z8bza11x7fbhzsa3xrp4hzv4sl83102yxaiigmsdh2a480xg6jl";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_sys_0_9_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl-sys";
+    version = "0.9.14";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0wq8hanw6lsm7h49ql62b3z5immbk8dcbp61vddd0pi5rk53cb2w";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pad_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pad";
+    version = "0.1.4";
+    authors = [ "Ben S <ogham@bsago.me>" ];
+    sha256 = "1ca30d5s6yx1cb5qa3hwxgl53m69cnn037disw3kr6cv7sy7mw1n";
+    inherit dependencies buildDependencies features;
+  };
+  percent_encoding_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "percent-encoding";
+    version = "1.0.0";
+    authors = [ "The rust-url developers" ];
+    sha256 = "0c91wp8inj7z270i2kilxjl00kcagqalxxnnjg7fsdlimdwb7q1z";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  pretty_assertions_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pretty_assertions";
+    version = "0.2.1";
+    authors = [ "Colin Kiegel <kiegel@gmx.de>" ];
+    sha256 = "06i0q8xjs1kbv3g0amx997axm93znwvpmj560vxrzn7s55hb9a8i";
+    inherit dependencies buildDependencies features;
+  };
+  pulldown_cmark_0_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pulldown-cmark";
+    version = "0.0.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "08wgdjqjnaz8yjvamdwcf1cqz18z795frkmbal9rgp9g2i1yrzwy";
+    inherit dependencies buildDependencies features;
+  };
+  quick_error_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "quick-error";
+    version = "1.2.0";
+    authors = [ "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" ];
+    sha256 = "1gc95wll0algrl2cqrym6x97sg07hslczn6wkbnkxfikrfissmga";
+    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_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
+    inherit dependencies buildDependencies features;
+  };
+  redox_syscall_0_1_26_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.26";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "0hfnc05jwlkkkjpvzzfbx8anzgc2n81n92pmvb065hkqlarbjz85";
+    libName = "syscall";
+    inherit dependencies buildDependencies features;
+  };
+  regex_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex";
+    version = "0.2.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1f1zrrynfylg0vcfyfp60bybq4rp5g1yk2k7lc7fyz7mmc7k2qr7";
+    inherit dependencies buildDependencies features;
+  };
+  regex_syntax_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.4.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "01yrsm68lj86ad1whgg1z95c2pfsvv58fz8qjcgw7mlszc0c08ls";
+    inherit dependencies buildDependencies features;
+  };
+  reqwest_0_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "reqwest";
+    version = "0.7.1";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0w3x0f6wmha09jcv83dkw00gpl11afi2k4gsavl43ccfdfa4b2nh";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_demangle_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-demangle";
+    version = "0.1.4";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0q7myf1m5r7cilayw5r2n5qraxwlcpdr7s2mq8c63pxrz48h24qv";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc_version";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
+    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_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "schannel";
+    version = "0.1.7";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" "Steffen Butzer <steffen.butzer@outlook.com>" ];
+    sha256 = "1np6wzxwj8r4kqmmz0a3w9dfs2zfwh0m7mrv7xpzxkpm4c4hcn5f";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_tls_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped-tls";
+    version = "0.1.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1j8azxa15srljafrg7wc221npvxb3700sbfk6jjav0rw2zclsnf5";
+    inherit dependencies buildDependencies features;
+  };
+  secur32_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "secur32-sys";
+    version = "0.2.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0sp46ix9mx1156bidpfiq30xxsgmpva5jffls3259kxjqlxifcnx";
+    libName = "secur32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  security_framework_0_1_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "security-framework";
+    version = "0.1.14";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0xxxasrqls0ssflxjl2bf6bvljig0piy13pscbgkxd4zqw7w8i7q";
+    inherit dependencies buildDependencies features;
+  };
+  security_framework_sys_0_1_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "security-framework-sys";
+    version = "0.1.14";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "15ggkd39aq01yzrg0fxchciz9gf5wncl7k3mgvqmi7vk7hfhkcw7";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.1.20";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.7.0";
+    authors = [ "Steve Klabnik <steve@steveklabnik.com>" "The Rust Project Developers" ];
+    sha256 = "079944bh20ldr41i96nk9b31igj555dl2d8mg51m4h0ccwric4l8";
+    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_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "1.0.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1p71hm8xpa7gfmhr2hzb4ah1ajhsmf3gh3i1fknf9ch8dn0qfycv";
+    inherit dependencies buildDependencies features;
+  };
+  serde_derive_1_0_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_derive";
+    version = "1.0.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1m5if144vqsjx9fk6g7b9x0cy8mam6w78yghv3fykngminklcjw6";
+    procMacro = true;
+    inherit dependencies buildDependencies features;
+  };
+  serde_derive_internals_0_15_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_derive_internals";
+    version = "0.15.1";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0s2i03rv2sppywan0z5qiif65b2wqc6lp5r5l71mz4nigrh04zrj";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "1.0.2";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0vabw2zciy8vy0hgj0khm1vwbvng4whwry7ylfl3ypd0inx84mn6";
+    inherit dependencies buildDependencies features;
+  };
+  serde_urlencoded_0_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_urlencoded";
+    version = "0.5.1";
+    authors = [ "Anthony Ramine <n.oxyde@gmail.com>" ];
+    sha256 = "0zh2wlnapmcwqhxnnq1mdlmg8vily7j54wvj01s7cvapzg5jphdl";
+    inherit dependencies buildDependencies features;
+  };
+  skeptic_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "skeptic";
+    version = "0.5.0";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" ];
+    sha256 = "06vf19309psngmx61sg33czbkx1cg9bmw0wr66n9mqdhvwa4y52d";
+    libPath = "lib.rs";
+    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;
+  };
+  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_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    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;
+  };
+  tempdir_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempdir";
+    version = "0.3.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rirc5prqppzgd15fm8ayan349lgk2k5iqdkrbwrwrv5pm4znsnz";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.3.4";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "1y6cwyhhx2nkz4b3dziwhqdvgq830z8wjp32b40pjd8r0hxqv2jr";
+    inherit dependencies buildDependencies features;
+  };
+  time_0_1_38_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "time";
+    version = "0.1.38";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1ws283vvz7c6jfiwn53rmc6kybapr4pjaahfxxrz232b0qzw7gcp";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_core_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-core";
+    version = "0.1.8";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1wikhmk648j13dxy4dpi435dm943ph5bf4ldfhpxn23cbzlr2kcp";
+    inherit dependencies buildDependencies features;
+  };
+  tokio_io_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-io";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "07ab05gmzq0xmi5h26wpvjzircax5bwfjgc3zzn62ll4rarz4pva";
+    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_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_tls_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tokio-tls";
+    version = "0.1.3";
+    authors = [ "Carl Lerche <me@carllerche.com>" "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ib58y81qr64m3gg0pn7k06b71r8b05cmvakzpgfqdsw0qj08sva";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.4.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "12v5l461czglhspc0crn29brb9p67xx7n6karrrs87slvq4xc7f1";
+    inherit dependencies buildDependencies features;
+  };
+  unicase_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicase";
+    version = "2.0.0";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "1nmidnfn5cwp6dr6aln2ffk8yvdfsf3si3bq1znss5swi3i5v64w";
+    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_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-normalization";
+    version = "0.1.5";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "0hg29g86fca7b65mwk4sm5s838js6bqrl0gabadbazvbsgjam0j5";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    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_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "url";
+    version = "1.5.1";
+    authors = [ "The rust-url developers" ];
+    sha256 = "1l2m7jdl2x09fdz60mjk63f61m3fjk1w5ykiadi9lxayg3bvppcw";
+    inherit dependencies buildDependencies features;
+  };
+  utf8_ranges_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "utf8-ranges";
+    version = "1.0.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0";
+    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;
+  };
+  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_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;
+  };
+  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;
+  };
+  adler32_1_0_0 = { features?(adler32_1_0_0_features {}) }: adler32_1_0_0_ {};
+  adler32_1_0_0_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = (f.adler32_1_0_0.default or true);
+  }) [];
+  advapi32_sys_0_2_0 = { features?(advapi32_sys_0_2_0_features {}) }: advapi32_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  advapi32_sys_0_2_0_features = f: updateFeatures f (rec {
+    advapi32_sys_0_2_0.default = (f.advapi32_sys_0_2_0.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 ];
+  aho_corasick_0_6_3 = { features?(aho_corasick_0_6_3_features {}) }: aho_corasick_0_6_3_ {
+    dependencies = mapFeatures features ([ memchr_1_0_1 ]);
+  };
+  aho_corasick_0_6_3_features = f: updateFeatures f (rec {
+    aho_corasick_0_6_3.default = (f.aho_corasick_0_6_3.default or true);
+    memchr_1_0_1.default = true;
+  }) [ memchr_1_0_1_features ];
+  assert_cli_0_4_0 = { features?(assert_cli_0_4_0_features {}) }: assert_cli_0_4_0_ {
+    dependencies = mapFeatures features ([ colored_1_5_2 difference_1_0_0 error_chain_0_10_0 ]);
+    buildDependencies = mapFeatures features ([ skeptic_0_5_0 ]);
+  };
+  assert_cli_0_4_0_features = f: updateFeatures f (rec {
+    assert_cli_0_4_0.default = (f.assert_cli_0_4_0.default or true);
+    colored_1_5_2.default = true;
+    difference_1_0_0.default = true;
+    error_chain_0_10_0.default = true;
+    skeptic_0_5_0.default = true;
+  }) [ colored_1_5_2_features difference_1_0_0_features error_chain_0_10_0_features skeptic_0_5_0_features ];
+  backtrace_0_3_2 = { features?(backtrace_0_3_2_features {}) }: backtrace_0_3_2_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_2 libc_0_2_26 rustc_demangle_0_1_4 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([ ]
+      ++ (if features.backtrace_0_3_2.backtrace-sys or false then [ backtrace_sys_0_1_11 ] else [])) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ ]
+      ++ (if features.backtrace_0_3_2.dbghelp-sys or false then [ dbghelp_sys_0_2_0 ] else [])
+      ++ (if features.backtrace_0_3_2.kernel32-sys or false then [ kernel32_sys_0_2_2 ] else [])
+      ++ (if features.backtrace_0_3_2.winapi or false then [ winapi_0_2_8 ] else [])) else []);
+    features = mkFeatures (features.backtrace_0_3_2 or {});
+  };
+  backtrace_0_3_2_features = f: updateFeatures f (rec {
+    backtrace_0_3_2.backtrace-sys =
+      (f.backtrace_0_3_2.backtrace-sys or false) ||
+      (f.backtrace_0_3_2.libbacktrace or false) ||
+      (backtrace_0_3_2.libbacktrace or false);
+    backtrace_0_3_2.coresymbolication =
+      (f.backtrace_0_3_2.coresymbolication or false) ||
+      (f.backtrace_0_3_2.default or false) ||
+      (backtrace_0_3_2.default or false);
+    backtrace_0_3_2.dbghelp =
+      (f.backtrace_0_3_2.dbghelp or false) ||
+      (f.backtrace_0_3_2.default or false) ||
+      (backtrace_0_3_2.default or false);
+    backtrace_0_3_2.dbghelp-sys =
+      (f.backtrace_0_3_2.dbghelp-sys or false) ||
+      (f.backtrace_0_3_2.dbghelp or false) ||
+      (backtrace_0_3_2.dbghelp or false);
+    backtrace_0_3_2.default = (f.backtrace_0_3_2.default or true);
+    backtrace_0_3_2.dladdr =
+      (f.backtrace_0_3_2.dladdr or false) ||
+      (f.backtrace_0_3_2.default or false) ||
+      (backtrace_0_3_2.default or false);
+    backtrace_0_3_2.kernel32-sys =
+      (f.backtrace_0_3_2.kernel32-sys or false) ||
+      (f.backtrace_0_3_2.dbghelp or false) ||
+      (backtrace_0_3_2.dbghelp or false);
+    backtrace_0_3_2.libbacktrace =
+      (f.backtrace_0_3_2.libbacktrace or false) ||
+      (f.backtrace_0_3_2.default or false) ||
+      (backtrace_0_3_2.default or false);
+    backtrace_0_3_2.libunwind =
+      (f.backtrace_0_3_2.libunwind or false) ||
+      (f.backtrace_0_3_2.default or false) ||
+      (backtrace_0_3_2.default or false);
+    backtrace_0_3_2.rustc-serialize =
+      (f.backtrace_0_3_2.rustc-serialize or false) ||
+      (f.backtrace_0_3_2.serialize-rustc or false) ||
+      (backtrace_0_3_2.serialize-rustc or false);
+    backtrace_0_3_2.serde =
+      (f.backtrace_0_3_2.serde or false) ||
+      (f.backtrace_0_3_2.serialize-serde or false) ||
+      (backtrace_0_3_2.serialize-serde or false);
+    backtrace_0_3_2.serde_derive =
+      (f.backtrace_0_3_2.serde_derive or false) ||
+      (f.backtrace_0_3_2.serialize-serde or false) ||
+      (backtrace_0_3_2.serialize-serde or false);
+    backtrace_0_3_2.winapi =
+      (f.backtrace_0_3_2.winapi or false) ||
+      (f.backtrace_0_3_2.dbghelp or false) ||
+      (backtrace_0_3_2.dbghelp or false);
+    backtrace_sys_0_1_11.default = true;
+    cfg_if_0_1_2.default = true;
+    dbghelp_sys_0_2_0.default = true;
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_26.default = true;
+    rustc_demangle_0_1_4.default = true;
+    winapi_0_2_8.default = true;
+  }) [ cfg_if_0_1_2_features libc_0_2_26_features rustc_demangle_0_1_4_features backtrace_sys_0_1_11_features dbghelp_sys_0_2_0_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  backtrace_sys_0_1_11 = { features?(backtrace_sys_0_1_11_features {}) }: backtrace_sys_0_1_11_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ]);
+    buildDependencies = mapFeatures features ([ gcc_0_3_51 ]);
+  };
+  backtrace_sys_0_1_11_features = f: updateFeatures f (rec {
+    backtrace_sys_0_1_11.default = (f.backtrace_sys_0_1_11.default or true);
+    gcc_0_3_51.default = true;
+    libc_0_2_26.default = true;
+  }) [ libc_0_2_26_features gcc_0_3_51_features ];
+  base64_0_6_0 = { features?(base64_0_6_0_features {}) }: base64_0_6_0_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 safemem_0_2_0 ]);
+  };
+  base64_0_6_0_features = f: updateFeatures f (rec {
+    base64_0_6_0.default = (f.base64_0_6_0.default or true);
+    byteorder_1_1_0.default = true;
+    safemem_0_2_0.default = true;
+  }) [ byteorder_1_1_0_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);
+  }) [];
+  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
+    features = mkFeatures (features.byteorder_1_1_0 or {});
+  };
+  byteorder_1_1_0_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
+    byteorder_1_1_0.std =
+      (f.byteorder_1_1_0.std or false) ||
+      (f.byteorder_1_1_0.default or false) ||
+      (byteorder_1_1_0.default or false);
+  }) [];
+  bytes_0_4_4 = { features?(bytes_0_4_4_features {}) }: bytes_0_4_4_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 iovec_0_1_0 ]);
+  };
+  bytes_0_4_4_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = true;
+    bytes_0_4_4.default = (f.bytes_0_4_4.default or true);
+    iovec_0_1_0.default = true;
+  }) [ byteorder_1_1_0_features iovec_0_1_0_features ];
+  cargo_edit_0_2_0 = { features?(cargo_edit_0_2_0_features {}) }: cargo_edit_0_2_0_ {
+    dependencies = mapFeatures features ([ docopt_0_8_1 pad_0_1_4 quick_error_1_2_0 regex_0_2_2 reqwest_0_7_1 semver_0_7_0 serde_1_0_10 serde_derive_1_0_10 serde_json_1_0_2 toml_0_4_2 ]);
+    features = mkFeatures (features.cargo_edit_0_2_0 or {});
+  };
+  cargo_edit_0_2_0_features = f: updateFeatures f (rec {
+    cargo_edit_0_2_0.default = (f.cargo_edit_0_2_0.default or true);
+    docopt_0_8_1.default = true;
+    pad_0_1_4.default = true;
+    quick_error_1_2_0.default = true;
+    regex_0_2_2.default = true;
+    reqwest_0_7_1.default = true;
+    semver_0_7_0.default = true;
+    semver_0_7_0.serde = true;
+    serde_1_0_10.default = true;
+    serde_derive_1_0_10.default = true;
+    serde_json_1_0_2.default = true;
+    toml_0_4_2.default = true;
+  }) [ docopt_0_8_1_features pad_0_1_4_features quick_error_1_2_0_features regex_0_2_2_features reqwest_0_7_1_features semver_0_7_0_features serde_1_0_10_features serde_derive_1_0_10_features serde_json_1_0_2_features toml_0_4_2_features ];
+  cfg_if_0_1_2 = { features?(cfg_if_0_1_2_features {}) }: cfg_if_0_1_2_ {};
+  cfg_if_0_1_2_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = (f.cfg_if_0_1_2.default or true);
+  }) [];
+  colored_1_5_2 = { features?(colored_1_5_2_features {}) }: colored_1_5_2_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_8 ]);
+    features = mkFeatures (features.colored_1_5_2 or {});
+  };
+  colored_1_5_2_features = f: updateFeatures f (rec {
+    colored_1_5_2.default = (f.colored_1_5_2.default or true);
+    lazy_static_0_2_8.default = true;
+  }) [ lazy_static_0_2_8_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_26 ]);
+  };
+  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_26.default = true;
+  }) [ core_foundation_sys_0_2_3_features libc_0_2_26_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_26 ]);
+  };
+  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_26.default = true;
+  }) [ libc_0_2_26_features ];
+  crypt32_sys_0_2_0 = { features?(crypt32_sys_0_2_0_features {}) }: crypt32_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  crypt32_sys_0_2_0_features = f: updateFeatures f (rec {
+    crypt32_sys_0_2_0.default = (f.crypt32_sys_0_2_0.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 ];
+  dbghelp_sys_0_2_0 = { features?(dbghelp_sys_0_2_0_features {}) }: dbghelp_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  dbghelp_sys_0_2_0_features = f: updateFeatures f (rec {
+    dbghelp_sys_0_2_0.default = (f.dbghelp_sys_0_2_0.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 ];
+  difference_1_0_0 = { features?(difference_1_0_0_features {}) }: difference_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.difference_1_0_0 or {});
+  };
+  difference_1_0_0_features = f: updateFeatures f (rec {
+    difference_1_0_0.default = (f.difference_1_0_0.default or true);
+    difference_1_0_0.getopts =
+      (f.difference_1_0_0.getopts or false) ||
+      (f.difference_1_0_0.bin or false) ||
+      (difference_1_0_0.bin or false);
+  }) [];
+  docopt_0_8_1 = { features?(docopt_0_8_1_features {}) }: docopt_0_8_1_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_8 regex_0_2_2 serde_1_0_10 serde_derive_1_0_10 strsim_0_6_0 ]);
+  };
+  docopt_0_8_1_features = f: updateFeatures f (rec {
+    docopt_0_8_1.default = (f.docopt_0_8_1.default or true);
+    lazy_static_0_2_8.default = true;
+    regex_0_2_2.default = true;
+    serde_1_0_10.default = true;
+    serde_derive_1_0_10.default = true;
+    strsim_0_6_0.default = true;
+  }) [ lazy_static_0_2_8_features regex_0_2_2_features serde_1_0_10_features serde_derive_1_0_10_features strsim_0_6_0_features ];
+  dtoa_0_4_1 = { features?(dtoa_0_4_1_features {}) }: dtoa_0_4_1_ {};
+  dtoa_0_4_1_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = (f.dtoa_0_4_1.default or true);
+  }) [];
+  error_chain_0_10_0 = { features?(error_chain_0_10_0_features {}) }: error_chain_0_10_0_ {
+    dependencies = mapFeatures features ([ ]
+      ++ (if features.error_chain_0_10_0.backtrace or false then [ backtrace_0_3_2 ] else []));
+    features = mkFeatures (features.error_chain_0_10_0 or {});
+  };
+  error_chain_0_10_0_features = f: updateFeatures f (rec {
+    backtrace_0_3_2.default = true;
+    error_chain_0_10_0.backtrace =
+      (f.error_chain_0_10_0.backtrace or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or true);
+    error_chain_0_10_0.example_generated =
+      (f.error_chain_0_10_0.example_generated or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+  }) [ backtrace_0_3_2_features ];
+  foreign_types_0_2_0 = { features?(foreign_types_0_2_0_features {}) }: foreign_types_0_2_0_ {};
+  foreign_types_0_2_0_features = f: updateFeatures f (rec {
+    foreign_types_0_2_0.default = (f.foreign_types_0_2_0.default or true);
+  }) [];
+  futures_0_1_14 = { features?(futures_0_1_14_features {}) }: futures_0_1_14_ {
+    features = mkFeatures (features.futures_0_1_14 or {});
+  };
+  futures_0_1_14_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = (f.futures_0_1_14.default or true);
+    futures_0_1_14.use_std =
+      (f.futures_0_1_14.use_std or false) ||
+      (f.futures_0_1_14.default or false) ||
+      (futures_0_1_14.default or false);
+    futures_0_1_14.with-deprecated =
+      (f.futures_0_1_14.with-deprecated or false) ||
+      (f.futures_0_1_14.default or false) ||
+      (futures_0_1_14.default or false);
+  }) [];
+  futures_cpupool_0_1_5 = { features?(futures_cpupool_0_1_5_features {}) }: futures_cpupool_0_1_5_ {
+    dependencies = mapFeatures features ([ futures_0_1_14 num_cpus_1_6_2 ]);
+    features = mkFeatures (features.futures_cpupool_0_1_5 or {});
+  };
+  futures_cpupool_0_1_5_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = (f.futures_0_1_14.default or false);
+    futures_0_1_14.use_std = true;
+    futures_0_1_14.with-deprecated =
+      (f.futures_0_1_14.with-deprecated or false) ||
+      (futures_cpupool_0_1_5.with-deprecated or false) ||
+      (f.futures_cpupool_0_1_5.with-deprecated or false);
+    futures_cpupool_0_1_5.default = (f.futures_cpupool_0_1_5.default or true);
+    futures_cpupool_0_1_5.with-deprecated =
+      (f.futures_cpupool_0_1_5.with-deprecated or false) ||
+      (f.futures_cpupool_0_1_5.default or false) ||
+      (futures_cpupool_0_1_5.default or false);
+    num_cpus_1_6_2.default = true;
+  }) [ futures_0_1_14_features num_cpus_1_6_2_features ];
+  gcc_0_3_51 = { features?(gcc_0_3_51_features {}) }: gcc_0_3_51_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gcc_0_3_51 or {});
+  };
+  gcc_0_3_51_features = f: updateFeatures f (rec {
+    gcc_0_3_51.default = (f.gcc_0_3_51.default or true);
+    gcc_0_3_51.rayon =
+      (f.gcc_0_3_51.rayon or false) ||
+      (f.gcc_0_3_51.parallel or false) ||
+      (gcc_0_3_51.parallel or false);
+  }) [];
+  getopts_0_2_14 = { features?(getopts_0_2_14_features {}) }: getopts_0_2_14_ {};
+  getopts_0_2_14_features = f: updateFeatures f (rec {
+    getopts_0_2_14.default = (f.getopts_0_2_14.default or true);
+  }) [];
+  httparse_1_2_3 = { features?(httparse_1_2_3_features {}) }: httparse_1_2_3_ {
+    features = mkFeatures (features.httparse_1_2_3 or {});
+  };
+  httparse_1_2_3_features = f: updateFeatures f (rec {
+    httparse_1_2_3.default = (f.httparse_1_2_3.default or true);
+    httparse_1_2_3.std =
+      (f.httparse_1_2_3.std or false) ||
+      (f.httparse_1_2_3.default or false) ||
+      (httparse_1_2_3.default or false);
+  }) [];
+  hyper_0_11_1 = { features?(hyper_0_11_1_features {}) }: hyper_0_11_1_ {
+    dependencies = mapFeatures features ([ base64_0_6_0 bytes_0_4_4 futures_0_1_14 futures_cpupool_0_1_5 httparse_1_2_3 language_tags_0_2_2 log_0_3_8 mime_0_3_2 percent_encoding_1_0_0 time_0_1_38 tokio_core_0_1_8 tokio_io_0_1_2 tokio_proto_0_1_1 tokio_service_0_1_0 unicase_2_0_0 ]);
+    features = mkFeatures (features.hyper_0_11_1 or {});
+  };
+  hyper_0_11_1_features = f: updateFeatures f (rec {
+    base64_0_6_0.default = true;
+    bytes_0_4_4.default = true;
+    futures_0_1_14.default = true;
+    futures_cpupool_0_1_5.default = true;
+    httparse_1_2_3.default = true;
+    hyper_0_11_1.default = (f.hyper_0_11_1.default or true);
+    language_tags_0_2_2.default = true;
+    log_0_3_8.default = true;
+    mime_0_3_2.default = true;
+    percent_encoding_1_0_0.default = true;
+    time_0_1_38.default = true;
+    tokio_core_0_1_8.default = true;
+    tokio_io_0_1_2.default = true;
+    tokio_proto_0_1_1.default = true;
+    tokio_service_0_1_0.default = true;
+    unicase_2_0_0.default = true;
+  }) [ base64_0_6_0_features bytes_0_4_4_features futures_0_1_14_features futures_cpupool_0_1_5_features httparse_1_2_3_features language_tags_0_2_2_features log_0_3_8_features mime_0_3_2_features percent_encoding_1_0_0_features time_0_1_38_features tokio_core_0_1_8_features tokio_io_0_1_2_features tokio_proto_0_1_1_features tokio_service_0_1_0_features unicase_2_0_0_features ];
+  hyper_tls_0_1_2 = { features?(hyper_tls_0_1_2_features {}) }: hyper_tls_0_1_2_ {
+    dependencies = mapFeatures features ([ futures_0_1_14 hyper_0_11_1 native_tls_0_1_4 tokio_core_0_1_8 tokio_io_0_1_2 tokio_service_0_1_0 tokio_tls_0_1_3 ]);
+  };
+  hyper_tls_0_1_2_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = true;
+    hyper_0_11_1.default = true;
+    hyper_tls_0_1_2.default = (f.hyper_tls_0_1_2.default or true);
+    native_tls_0_1_4.default = true;
+    tokio_core_0_1_8.default = true;
+    tokio_io_0_1_2.default = true;
+    tokio_service_0_1_0.default = true;
+    tokio_tls_0_1_3.default = true;
+  }) [ futures_0_1_14_features hyper_0_11_1_features native_tls_0_1_4_features tokio_core_0_1_8_features tokio_io_0_1_2_features tokio_service_0_1_0_features tokio_tls_0_1_3_features ];
+  idna_0_1_4 = { features?(idna_0_1_4_features {}) }: idna_0_1_4_ {
+    dependencies = mapFeatures features ([ matches_0_1_6 unicode_bidi_0_3_4 unicode_normalization_0_1_5 ]);
+  };
+  idna_0_1_4_features = f: updateFeatures f (rec {
+    idna_0_1_4.default = (f.idna_0_1_4.default or true);
+    matches_0_1_6.default = true;
+    unicode_bidi_0_3_4.default = true;
+    unicode_normalization_0_1_5.default = true;
+  }) [ matches_0_1_6_features unicode_bidi_0_3_4_features unicode_normalization_0_1_5_features ];
+  iovec_0_1_0 = { features?(iovec_0_1_0_features {}) }: iovec_0_1_0_ {
+    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_26 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+  };
+  iovec_0_1_0_features = f: updateFeatures f (rec {
+    iovec_0_1_0.default = (f.iovec_0_1_0.default or true);
+    libc_0_2_26.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_26_features winapi_0_2_8_features ];
+  itoa_0_3_1 = { features?(itoa_0_3_1_features {}) }: itoa_0_3_1_ {};
+  itoa_0_3_1_features = f: updateFeatures f (rec {
+    itoa_0_3_1.default = (f.itoa_0_3_1.default or true);
+  }) [];
+  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_8 = { features?(lazy_static_0_2_8_features {}) }: lazy_static_0_2_8_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_8 or {});
+  };
+  lazy_static_0_2_8_features = f: updateFeatures f (rec {
+    lazy_static_0_2_8.default = (f.lazy_static_0_2_8.default or true);
+    lazy_static_0_2_8.nightly =
+      (f.lazy_static_0_2_8.nightly or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+    lazy_static_0_2_8.spin =
+      (f.lazy_static_0_2_8.spin or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+  }) [];
+  lazycell_0_4_0 = { features?(lazycell_0_4_0_features {}) }: lazycell_0_4_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazycell_0_4_0 or {});
+  };
+  lazycell_0_4_0_features = f: updateFeatures f (rec {
+    lazycell_0_4_0.clippy =
+      (f.lazycell_0_4_0.clippy or false) ||
+      (f.lazycell_0_4_0.nightly-testing or false) ||
+      (lazycell_0_4_0.nightly-testing or false);
+    lazycell_0_4_0.default = (f.lazycell_0_4_0.default or true);
+    lazycell_0_4_0.nightly =
+      (f.lazycell_0_4_0.nightly or false) ||
+      (f.lazycell_0_4_0.nightly-testing or false) ||
+      (lazycell_0_4_0.nightly-testing or false);
+  }) [];
+  libc_0_2_26 = { features?(libc_0_2_26_features {}) }: libc_0_2_26_ {
+    features = mkFeatures (features.libc_0_2_26 or {});
+  };
+  libc_0_2_26_features = f: updateFeatures f (rec {
+    libc_0_2_26.default = (f.libc_0_2_26.default or true);
+    libc_0_2_26.use_std =
+      (f.libc_0_2_26.use_std or false) ||
+      (f.libc_0_2_26.default or false) ||
+      (libc_0_2_26.default or false);
+  }) [];
+  libflate_0_1_10 = { features?(libflate_0_1_10_features {}) }: libflate_0_1_10_ {
+    dependencies = mapFeatures features ([ adler32_1_0_0 byteorder_1_1_0 ]);
+  };
+  libflate_0_1_10_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = true;
+    byteorder_1_1_0.default = true;
+    libflate_0_1_10.default = (f.libflate_0_1_10.default or true);
+  }) [ adler32_1_0_0_features byteorder_1_1_0_features ];
+  log_0_3_8 = { features?(log_0_3_8_features {}) }: log_0_3_8_ {
+    features = mkFeatures (features.log_0_3_8 or {});
+  };
+  log_0_3_8_features = f: updateFeatures f (rec {
+    log_0_3_8.default = (f.log_0_3_8.default or true);
+    log_0_3_8.use_std =
+      (f.log_0_3_8.use_std or false) ||
+      (f.log_0_3_8.default or false) ||
+      (log_0_3_8.default or false);
+  }) [];
+  matches_0_1_6 = { features?(matches_0_1_6_features {}) }: matches_0_1_6_ {};
+  matches_0_1_6_features = f: updateFeatures f (rec {
+    matches_0_1_6.default = (f.matches_0_1_6.default or true);
+  }) [];
+  memchr_1_0_1 = { features?(memchr_1_0_1_features {}) }: memchr_1_0_1_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ]);
+    features = mkFeatures (features.memchr_1_0_1 or {});
+  };
+  memchr_1_0_1_features = f: updateFeatures f (rec {
+    libc_0_2_26.default = (f.libc_0_2_26.default or false);
+    libc_0_2_26.use_std =
+      (f.libc_0_2_26.use_std or false) ||
+      (memchr_1_0_1.use_std or false) ||
+      (f.memchr_1_0_1.use_std or false);
+    memchr_1_0_1.default = (f.memchr_1_0_1.default or true);
+    memchr_1_0_1.use_std =
+      (f.memchr_1_0_1.use_std or false) ||
+      (f.memchr_1_0_1.default or false) ||
+      (memchr_1_0_1.default or false);
+  }) [ libc_0_2_26_features ];
+  mime_0_3_2 = { features?(mime_0_3_2_features {}) }: mime_0_3_2_ {
+    dependencies = mapFeatures features ([ unicase_2_0_0 ]);
+  };
+  mime_0_3_2_features = f: updateFeatures f (rec {
+    mime_0_3_2.default = (f.mime_0_3_2.default or true);
+    unicase_2_0_0.default = true;
+  }) [ unicase_2_0_0_features ];
+  mio_0_6_9 = { features?(mio_0_6_9_features {}) }: mio_0_6_9_ {
+    dependencies = mapFeatures features ([ iovec_0_1_0 lazycell_0_4_0 log_0_3_8 net2_0_2_30 slab_0_3_0 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_26 ]) 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_9 or {});
+  };
+  mio_0_6_9_features = f: updateFeatures f (rec {
+    iovec_0_1_0.default = true;
+    kernel32_sys_0_2_2.default = true;
+    lazycell_0_4_0.default = true;
+    libc_0_2_26.default = true;
+    log_0_3_8.default = true;
+    mio_0_6_9.default = (f.mio_0_6_9.default or true);
+    mio_0_6_9.with-deprecated =
+      (f.mio_0_6_9.with-deprecated or false) ||
+      (f.mio_0_6_9.default or false) ||
+      (mio_0_6_9.default or false);
+    miow_0_2_1.default = true;
+    net2_0_2_30.default = true;
+    slab_0_3_0.default = true;
+    winapi_0_2_8.default = true;
+  }) [ iovec_0_1_0_features lazycell_0_4_0_features log_0_3_8_features net2_0_2_30_features slab_0_3_0_features libc_0_2_26_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_30 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_30.default = (f.net2_0_2_30.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_30_features winapi_0_2_8_features ws2_32_sys_0_2_1_features ];
+  native_tls_0_1_4 = { features?(native_tls_0_1_4_features {}) }: native_tls_0_1_4_ {
+    dependencies = (if !(kernel == "windows" || kernel == "darwin") then mapFeatures features ([ openssl_0_9_14 ]) else [])
+      ++ (if kernel == "darwin" then mapFeatures features ([ security_framework_0_1_14 security_framework_sys_0_1_14 tempdir_0_3_5 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ schannel_0_1_7 ]) else []);
+  };
+  native_tls_0_1_4_features = f: updateFeatures f (rec {
+    native_tls_0_1_4.default = (f.native_tls_0_1_4.default or true);
+    openssl_0_9_14.default = true;
+    schannel_0_1_7.default = true;
+    security_framework_0_1_14.OSX_10_8 = true;
+    security_framework_0_1_14.default = true;
+    security_framework_sys_0_1_14.default = true;
+    tempdir_0_3_5.default = true;
+  }) [ openssl_0_9_14_features security_framework_0_1_14_features security_framework_sys_0_1_14_features tempdir_0_3_5_features schannel_0_1_7_features ];
+  net2_0_2_30 = { features?(net2_0_2_30_features {}) }: net2_0_2_30_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_2 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_26 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ws2_32_sys_0_2_1 ]) else [])
+      ++ (if kernel == "i686-apple-darwin" then mapFeatures features ([ libc_0_2_26 ]) else [])
+      ++ (if kernel == "i686-unknown-linux-gnu" then mapFeatures features ([ libc_0_2_26 ]) else [])
+      ++ (if kernel == "x86_64-apple-darwin" then mapFeatures features ([ libc_0_2_26 ]) else [])
+      ++ (if kernel == "x86_64-unknown-linux-gnu" then mapFeatures features ([ libc_0_2_26 ]) else []);
+    features = mkFeatures (features.net2_0_2_30 or {});
+  };
+  net2_0_2_30_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = true;
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_26.default = true;
+    net2_0_2_30.default = (f.net2_0_2_30.default or true);
+    net2_0_2_30.duration =
+      (f.net2_0_2_30.duration or false) ||
+      (f.net2_0_2_30.default or false) ||
+      (net2_0_2_30.default or false);
+    winapi_0_2_8.default = true;
+    ws2_32_sys_0_2_1.default = true;
+  }) [ cfg_if_0_1_2_features libc_0_2_26_features kernel32_sys_0_2_2_features winapi_0_2_8_features ws2_32_sys_0_2_1_features libc_0_2_26_features libc_0_2_26_features libc_0_2_26_features libc_0_2_26_features ];
+  num_traits_0_1_40 = { features?(num_traits_0_1_40_features {}) }: num_traits_0_1_40_ {};
+  num_traits_0_1_40_features = f: updateFeatures f (rec {
+    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or true);
+  }) [];
+  num_cpus_1_6_2 = { features?(num_cpus_1_6_2_features {}) }: num_cpus_1_6_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ]);
+  };
+  num_cpus_1_6_2_features = f: updateFeatures f (rec {
+    libc_0_2_26.default = true;
+    num_cpus_1_6_2.default = (f.num_cpus_1_6_2.default or true);
+  }) [ libc_0_2_26_features ];
+  openssl_0_9_14 = { features?(openssl_0_9_14_features {}) }: openssl_0_9_14_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 foreign_types_0_2_0 lazy_static_0_2_8 libc_0_2_26 openssl_sys_0_9_14 ]);
+    features = mkFeatures (features.openssl_0_9_14 or {});
+  };
+  openssl_0_9_14_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    foreign_types_0_2_0.default = true;
+    lazy_static_0_2_8.default = true;
+    libc_0_2_26.default = true;
+    openssl_0_9_14.default = (f.openssl_0_9_14.default or true);
+    openssl_sys_0_9_14.default = true;
+  }) [ bitflags_0_9_1_features foreign_types_0_2_0_features lazy_static_0_2_8_features libc_0_2_26_features openssl_sys_0_9_14_features ];
+  openssl_sys_0_9_14 = { features?(openssl_sys_0_9_14_features {}) }: openssl_sys_0_9_14_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ]);
+    buildDependencies = mapFeatures features ([ gcc_0_3_51 pkg_config_0_3_9 ]);
+  };
+  openssl_sys_0_9_14_features = f: updateFeatures f (rec {
+    gcc_0_3_51.default = true;
+    libc_0_2_26.default = true;
+    openssl_sys_0_9_14.default = (f.openssl_sys_0_9_14.default or true);
+    pkg_config_0_3_9.default = true;
+  }) [ libc_0_2_26_features gcc_0_3_51_features pkg_config_0_3_9_features ];
+  pad_0_1_4 = { features?(pad_0_1_4_features {}) }: pad_0_1_4_ {
+    dependencies = mapFeatures features ([ unicode_width_0_1_4 ]);
+  };
+  pad_0_1_4_features = f: updateFeatures f (rec {
+    pad_0_1_4.default = (f.pad_0_1_4.default or true);
+    unicode_width_0_1_4.default = true;
+  }) [ unicode_width_0_1_4_features ];
+  percent_encoding_1_0_0 = { features?(percent_encoding_1_0_0_features {}) }: percent_encoding_1_0_0_ {};
+  percent_encoding_1_0_0_features = f: updateFeatures f (rec {
+    percent_encoding_1_0_0.default = (f.percent_encoding_1_0_0.default or true);
+  }) [];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  pretty_assertions_0_2_1 = { features?(pretty_assertions_0_2_1_features {}) }: pretty_assertions_0_2_1_ {
+    dependencies = mapFeatures features ([ difference_1_0_0 ]);
+  };
+  pretty_assertions_0_2_1_features = f: updateFeatures f (rec {
+    difference_1_0_0.default = true;
+    pretty_assertions_0_2_1.default = (f.pretty_assertions_0_2_1.default or true);
+  }) [ difference_1_0_0_features ];
+  pulldown_cmark_0_0_3 = { features?(pulldown_cmark_0_0_3_features {}) }: pulldown_cmark_0_0_3_ {
+    dependencies = mapFeatures features ([ getopts_0_2_14 ]);
+  };
+  pulldown_cmark_0_0_3_features = f: updateFeatures f (rec {
+    getopts_0_2_14.default = true;
+    pulldown_cmark_0_0_3.default = (f.pulldown_cmark_0_0_3.default or true);
+  }) [ getopts_0_2_14_features ];
+  quick_error_1_2_0 = { features?(quick_error_1_2_0_features {}) }: quick_error_1_2_0_ {};
+  quick_error_1_2_0_features = f: updateFeatures f (rec {
+    quick_error_1_2_0.default = (f.quick_error_1_2_0.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_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ]);
+  };
+  rand_0_3_15_features = f: updateFeatures f (rec {
+    libc_0_2_26.default = true;
+    rand_0_3_15.default = (f.rand_0_3_15.default or true);
+  }) [ libc_0_2_26_features ];
+  redox_syscall_0_1_26 = { features?(redox_syscall_0_1_26_features {}) }: redox_syscall_0_1_26_ {};
+  redox_syscall_0_1_26_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_26.default = (f.redox_syscall_0_1_26.default or true);
+  }) [];
+  regex_0_2_2 = { features?(regex_0_2_2_features {}) }: regex_0_2_2_ {
+    dependencies = mapFeatures features ([ aho_corasick_0_6_3 memchr_1_0_1 regex_syntax_0_4_1 thread_local_0_3_4 utf8_ranges_1_0_0 ]);
+    features = mkFeatures (features.regex_0_2_2 or {});
+  };
+  regex_0_2_2_features = f: updateFeatures f (rec {
+    aho_corasick_0_6_3.default = true;
+    memchr_1_0_1.default = true;
+    regex_0_2_2.default = (f.regex_0_2_2.default or true);
+    regex_0_2_2.simd =
+      (f.regex_0_2_2.simd or false) ||
+      (f.regex_0_2_2.simd-accel or false) ||
+      (regex_0_2_2.simd-accel or false);
+    regex_syntax_0_4_1.default = true;
+    thread_local_0_3_4.default = true;
+    utf8_ranges_1_0_0.default = true;
+  }) [ aho_corasick_0_6_3_features memchr_1_0_1_features regex_syntax_0_4_1_features thread_local_0_3_4_features utf8_ranges_1_0_0_features ];
+  regex_syntax_0_4_1 = { features?(regex_syntax_0_4_1_features {}) }: regex_syntax_0_4_1_ {};
+  regex_syntax_0_4_1_features = f: updateFeatures f (rec {
+    regex_syntax_0_4_1.default = (f.regex_syntax_0_4_1.default or true);
+  }) [];
+  reqwest_0_7_1 = { features?(reqwest_0_7_1_features {}) }: reqwest_0_7_1_ {
+    dependencies = mapFeatures features ([ bytes_0_4_4 futures_0_1_14 hyper_0_11_1 hyper_tls_0_1_2 libflate_0_1_10 log_0_3_8 native_tls_0_1_4 serde_1_0_10 serde_json_1_0_2 serde_urlencoded_0_5_1 tokio_core_0_1_8 tokio_io_0_1_2 tokio_tls_0_1_3 url_1_5_1 ]);
+    features = mkFeatures (features.reqwest_0_7_1 or {});
+  };
+  reqwest_0_7_1_features = f: updateFeatures f (rec {
+    bytes_0_4_4.default = true;
+    futures_0_1_14.default = true;
+    hyper_0_11_1.default = true;
+    hyper_tls_0_1_2.default = true;
+    libflate_0_1_10.default = true;
+    log_0_3_8.default = true;
+    native_tls_0_1_4.default = true;
+    reqwest_0_7_1.default = (f.reqwest_0_7_1.default or true);
+    serde_1_0_10.default = true;
+    serde_json_1_0_2.default = true;
+    serde_urlencoded_0_5_1.default = true;
+    tokio_core_0_1_8.default = true;
+    tokio_io_0_1_2.default = true;
+    tokio_tls_0_1_3.default = true;
+    url_1_5_1.default = true;
+  }) [ bytes_0_4_4_features futures_0_1_14_features hyper_0_11_1_features hyper_tls_0_1_2_features libflate_0_1_10_features log_0_3_8_features native_tls_0_1_4_features serde_1_0_10_features serde_json_1_0_2_features serde_urlencoded_0_5_1_features tokio_core_0_1_8_features tokio_io_0_1_2_features tokio_tls_0_1_3_features url_1_5_1_features ];
+  rustc_demangle_0_1_4 = { features?(rustc_demangle_0_1_4_features {}) }: rustc_demangle_0_1_4_ {};
+  rustc_demangle_0_1_4_features = f: updateFeatures f (rec {
+    rustc_demangle_0_1_4.default = (f.rustc_demangle_0_1_4.default or true);
+  }) [];
+  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
+    dependencies = mapFeatures features ([ semver_0_1_20 ]);
+  };
+  rustc_version_0_1_7_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
+    semver_0_1_20.default = true;
+  }) [ semver_0_1_20_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_7 = { features?(schannel_0_1_7_features {}) }: schannel_0_1_7_ {
+    dependencies = mapFeatures features ([ advapi32_sys_0_2_0 crypt32_sys_0_2_0 kernel32_sys_0_2_2 lazy_static_0_2_8 secur32_sys_0_2_0 winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  schannel_0_1_7_features = f: updateFeatures f (rec {
+    advapi32_sys_0_2_0.default = true;
+    crypt32_sys_0_2_0.default = true;
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_8.default = true;
+    schannel_0_1_7.default = (f.schannel_0_1_7.default or true);
+    secur32_sys_0_2_0.default = true;
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ advapi32_sys_0_2_0_features crypt32_sys_0_2_0_features kernel32_sys_0_2_2_features lazy_static_0_2_8_features secur32_sys_0_2_0_features winapi_0_2_8_features winapi_build_0_1_1_features ];
+  scoped_tls_0_1_0 = { features?(scoped_tls_0_1_0_features {}) }: scoped_tls_0_1_0_ {};
+  scoped_tls_0_1_0_features = f: updateFeatures f (rec {
+    scoped_tls_0_1_0.default = (f.scoped_tls_0_1_0.default or true);
+  }) [];
+  secur32_sys_0_2_0 = { features?(secur32_sys_0_2_0_features {}) }: secur32_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  secur32_sys_0_2_0_features = f: updateFeatures f (rec {
+    secur32_sys_0_2_0.default = (f.secur32_sys_0_2_0.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 ];
+  security_framework_0_1_14 = { features?(security_framework_0_1_14_features {}) }: security_framework_0_1_14_ {
+    dependencies = mapFeatures features ([ core_foundation_0_2_3 core_foundation_sys_0_2_3 libc_0_2_26 security_framework_sys_0_1_14 ]);
+    features = mkFeatures (features.security_framework_0_1_14 or {});
+  };
+  security_framework_0_1_14_features = f: updateFeatures f (rec {
+    core_foundation_0_2_3.default = true;
+    core_foundation_sys_0_2_3.default = true;
+    libc_0_2_26.default = true;
+    security_framework_0_1_14.OSX_10_10 =
+      (f.security_framework_0_1_14.OSX_10_10 or false) ||
+      (f.security_framework_0_1_14.OSX_10_11 or false) ||
+      (security_framework_0_1_14.OSX_10_11 or false);
+    security_framework_0_1_14.OSX_10_8 =
+      (f.security_framework_0_1_14.OSX_10_8 or false) ||
+      (f.security_framework_0_1_14.OSX_10_9 or false) ||
+      (security_framework_0_1_14.OSX_10_9 or false);
+    security_framework_0_1_14.OSX_10_9 =
+      (f.security_framework_0_1_14.OSX_10_9 or false) ||
+      (f.security_framework_0_1_14.OSX_10_10 or false) ||
+      (security_framework_0_1_14.OSX_10_10 or false);
+    security_framework_0_1_14.default = (f.security_framework_0_1_14.default or true);
+    security_framework_sys_0_1_14.OSX_10_10 =
+      (f.security_framework_sys_0_1_14.OSX_10_10 or false) ||
+      (security_framework_0_1_14.OSX_10_10 or false) ||
+      (f.security_framework_0_1_14.OSX_10_10 or false);
+    security_framework_sys_0_1_14.OSX_10_11 =
+      (f.security_framework_sys_0_1_14.OSX_10_11 or false) ||
+      (security_framework_0_1_14.OSX_10_11 or false) ||
+      (f.security_framework_0_1_14.OSX_10_11 or false);
+    security_framework_sys_0_1_14.OSX_10_8 =
+      (f.security_framework_sys_0_1_14.OSX_10_8 or false) ||
+      (security_framework_0_1_14.OSX_10_8 or false) ||
+      (f.security_framework_0_1_14.OSX_10_8 or false);
+    security_framework_sys_0_1_14.OSX_10_9 =
+      (f.security_framework_sys_0_1_14.OSX_10_9 or false) ||
+      (security_framework_0_1_14.OSX_10_9 or false) ||
+      (f.security_framework_0_1_14.OSX_10_9 or false);
+    security_framework_sys_0_1_14.default = true;
+  }) [ core_foundation_0_2_3_features core_foundation_sys_0_2_3_features libc_0_2_26_features security_framework_sys_0_1_14_features ];
+  security_framework_sys_0_1_14 = { features?(security_framework_sys_0_1_14_features {}) }: security_framework_sys_0_1_14_ {
+    dependencies = mapFeatures features ([ core_foundation_sys_0_2_3 libc_0_2_26 ]);
+    features = mkFeatures (features.security_framework_sys_0_1_14 or {});
+  };
+  security_framework_sys_0_1_14_features = f: updateFeatures f (rec {
+    core_foundation_sys_0_2_3.default = true;
+    libc_0_2_26.default = true;
+    security_framework_sys_0_1_14.OSX_10_10 =
+      (f.security_framework_sys_0_1_14.OSX_10_10 or false) ||
+      (f.security_framework_sys_0_1_14.OSX_10_11 or false) ||
+      (security_framework_sys_0_1_14.OSX_10_11 or false);
+    security_framework_sys_0_1_14.OSX_10_8 =
+      (f.security_framework_sys_0_1_14.OSX_10_8 or false) ||
+      (f.security_framework_sys_0_1_14.OSX_10_9 or false) ||
+      (security_framework_sys_0_1_14.OSX_10_9 or false);
+    security_framework_sys_0_1_14.OSX_10_9 =
+      (f.security_framework_sys_0_1_14.OSX_10_9 or false) ||
+      (f.security_framework_sys_0_1_14.OSX_10_10 or false) ||
+      (security_framework_sys_0_1_14.OSX_10_10 or false);
+    security_framework_sys_0_1_14.default = (f.security_framework_sys_0_1_14.default or true);
+  }) [ core_foundation_sys_0_2_3_features libc_0_2_26_features ];
+  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
+  semver_0_1_20_features = f: updateFeatures f (rec {
+    semver_0_1_20.default = (f.semver_0_1_20.default or true);
+  }) [];
+  semver_0_7_0 = { features?(semver_0_7_0_features {}) }: semver_0_7_0_ {
+    dependencies = mapFeatures features ([ semver_parser_0_7_0 ]
+      ++ (if features.semver_0_7_0.serde or false then [ serde_1_0_10 ] else []));
+    features = mkFeatures (features.semver_0_7_0 or {});
+  };
+  semver_0_7_0_features = f: updateFeatures f (rec {
+    semver_0_7_0.default = (f.semver_0_7_0.default or true);
+    semver_0_7_0.serde =
+      (f.semver_0_7_0.serde or false) ||
+      (f.semver_0_7_0.ci or false) ||
+      (semver_0_7_0.ci or false);
+    semver_parser_0_7_0.default = true;
+    serde_1_0_10.default = true;
+  }) [ semver_parser_0_7_0_features serde_1_0_10_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_10 = { features?(serde_1_0_10_features {}) }: serde_1_0_10_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_1_0_10 or {});
+  };
+  serde_1_0_10_features = f: updateFeatures f (rec {
+    serde_1_0_10.default = (f.serde_1_0_10.default or true);
+    serde_1_0_10.serde_derive =
+      (f.serde_1_0_10.serde_derive or false) ||
+      (f.serde_1_0_10.derive or false) ||
+      (serde_1_0_10.derive or false) ||
+      (f.serde_1_0_10.playground or false) ||
+      (serde_1_0_10.playground or false);
+    serde_1_0_10.std =
+      (f.serde_1_0_10.std or false) ||
+      (f.serde_1_0_10.default or false) ||
+      (serde_1_0_10.default or false);
+    serde_1_0_10.unstable =
+      (f.serde_1_0_10.unstable or false) ||
+      (f.serde_1_0_10.alloc or false) ||
+      (serde_1_0_10.alloc or false);
+  }) [];
+  serde_derive_1_0_10 = { features?(serde_derive_1_0_10_features {}) }: serde_derive_1_0_10_ {
+    dependencies = mapFeatures features ([ quote_0_3_15 serde_derive_internals_0_15_1 syn_0_11_11 ]);
+  };
+  serde_derive_1_0_10_features = f: updateFeatures f (rec {
+    quote_0_3_15.default = true;
+    serde_derive_1_0_10.default = (f.serde_derive_1_0_10.default or true);
+    serde_derive_internals_0_15_1.default = (f.serde_derive_internals_0_15_1.default or false);
+    syn_0_11_11.default = true;
+    syn_0_11_11.visit = true;
+  }) [ quote_0_3_15_features serde_derive_internals_0_15_1_features syn_0_11_11_features ];
+  serde_derive_internals_0_15_1 = { features?(serde_derive_internals_0_15_1_features {}) }: serde_derive_internals_0_15_1_ {
+    dependencies = mapFeatures features ([ syn_0_11_11 synom_0_11_3 ]);
+  };
+  serde_derive_internals_0_15_1_features = f: updateFeatures f (rec {
+    serde_derive_internals_0_15_1.default = (f.serde_derive_internals_0_15_1.default or true);
+    syn_0_11_11.default = (f.syn_0_11_11.default or false);
+    syn_0_11_11.parsing = true;
+    synom_0_11_3.default = true;
+  }) [ syn_0_11_11_features synom_0_11_3_features ];
+  serde_json_1_0_2 = { features?(serde_json_1_0_2_features {}) }: serde_json_1_0_2_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_40 serde_1_0_10 ]);
+    features = mkFeatures (features.serde_json_1_0_2 or {});
+  };
+  serde_json_1_0_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = true;
+    itoa_0_3_1.default = true;
+    num_traits_0_1_40.default = true;
+    serde_1_0_10.default = true;
+    serde_json_1_0_2.default = (f.serde_json_1_0_2.default or true);
+    serde_json_1_0_2.linked-hash-map =
+      (f.serde_json_1_0_2.linked-hash-map or false) ||
+      (f.serde_json_1_0_2.preserve_order or false) ||
+      (serde_json_1_0_2.preserve_order or false);
+  }) [ dtoa_0_4_1_features itoa_0_3_1_features num_traits_0_1_40_features serde_1_0_10_features ];
+  serde_urlencoded_0_5_1 = { features?(serde_urlencoded_0_5_1_features {}) }: serde_urlencoded_0_5_1_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_1 itoa_0_3_1 serde_1_0_10 url_1_5_1 ]);
+  };
+  serde_urlencoded_0_5_1_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = true;
+    itoa_0_3_1.default = true;
+    serde_1_0_10.default = true;
+    serde_urlencoded_0_5_1.default = (f.serde_urlencoded_0_5_1.default or true);
+    url_1_5_1.default = true;
+  }) [ dtoa_0_4_1_features itoa_0_3_1_features serde_1_0_10_features url_1_5_1_features ];
+  skeptic_0_5_0 = { features?(skeptic_0_5_0_features {}) }: skeptic_0_5_0_ {
+    dependencies = mapFeatures features ([ pulldown_cmark_0_0_3 tempdir_0_3_5 ]);
+  };
+  skeptic_0_5_0_features = f: updateFeatures f (rec {
+    pulldown_cmark_0_0_3.default = true;
+    skeptic_0_5_0.default = (f.skeptic_0_5_0.default or true);
+    tempdir_0_3_5.default = true;
+  }) [ pulldown_cmark_0_0_3_features tempdir_0_3_5_features ];
+  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);
+  }) [];
+  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_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_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);
+  }) [];
+  tempdir_0_3_5 = { features?(tempdir_0_3_5_features {}) }: tempdir_0_3_5_ {
+    dependencies = mapFeatures features ([ rand_0_3_15 ]);
+  };
+  tempdir_0_3_5_features = f: updateFeatures f (rec {
+    rand_0_3_15.default = true;
+    tempdir_0_3_5.default = (f.tempdir_0_3_5.default or true);
+  }) [ rand_0_3_15_features ];
+  thread_local_0_3_4 = { features?(thread_local_0_3_4_features {}) }: thread_local_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_8 unreachable_1_0_0 ]);
+  };
+  thread_local_0_3_4_features = f: updateFeatures f (rec {
+    lazy_static_0_2_8.default = true;
+    thread_local_0_3_4.default = (f.thread_local_0_3_4.default or true);
+    unreachable_1_0_0.default = true;
+  }) [ lazy_static_0_2_8_features unreachable_1_0_0_features ];
+  time_0_1_38 = { features?(time_0_1_38_features {}) }: time_0_1_38_ {
+    dependencies = mapFeatures features ([ libc_0_2_26 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_26 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  time_0_1_38_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_26.default = true;
+    redox_syscall_0_1_26.default = true;
+    time_0_1_38.default = (f.time_0_1_38.default or true);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_26_features redox_syscall_0_1_26_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  tokio_core_0_1_8 = { features?(tokio_core_0_1_8_features {}) }: tokio_core_0_1_8_ {
+    dependencies = mapFeatures features ([ bytes_0_4_4 futures_0_1_14 iovec_0_1_0 log_0_3_8 mio_0_6_9 scoped_tls_0_1_0 slab_0_3_0 tokio_io_0_1_2 ]);
+  };
+  tokio_core_0_1_8_features = f: updateFeatures f (rec {
+    bytes_0_4_4.default = true;
+    futures_0_1_14.default = true;
+    iovec_0_1_0.default = true;
+    log_0_3_8.default = true;
+    mio_0_6_9.default = true;
+    scoped_tls_0_1_0.default = true;
+    slab_0_3_0.default = true;
+    tokio_core_0_1_8.default = (f.tokio_core_0_1_8.default or true);
+    tokio_io_0_1_2.default = true;
+  }) [ bytes_0_4_4_features futures_0_1_14_features iovec_0_1_0_features log_0_3_8_features mio_0_6_9_features scoped_tls_0_1_0_features slab_0_3_0_features tokio_io_0_1_2_features ];
+  tokio_io_0_1_2 = { features?(tokio_io_0_1_2_features {}) }: tokio_io_0_1_2_ {
+    dependencies = mapFeatures features ([ bytes_0_4_4 futures_0_1_14 log_0_3_8 ]);
+  };
+  tokio_io_0_1_2_features = f: updateFeatures f (rec {
+    bytes_0_4_4.default = true;
+    futures_0_1_14.default = true;
+    log_0_3_8.default = true;
+    tokio_io_0_1_2.default = (f.tokio_io_0_1_2.default or true);
+  }) [ bytes_0_4_4_features futures_0_1_14_features log_0_3_8_features ];
+  tokio_proto_0_1_1 = { features?(tokio_proto_0_1_1_features {}) }: tokio_proto_0_1_1_ {
+    dependencies = mapFeatures features ([ futures_0_1_14 log_0_3_8 net2_0_2_30 rand_0_3_15 slab_0_3_0 smallvec_0_2_1 take_0_1_0 tokio_core_0_1_8 tokio_io_0_1_2 tokio_service_0_1_0 ]);
+  };
+  tokio_proto_0_1_1_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = true;
+    log_0_3_8.default = true;
+    net2_0_2_30.default = true;
+    rand_0_3_15.default = true;
+    slab_0_3_0.default = true;
+    smallvec_0_2_1.default = true;
+    take_0_1_0.default = true;
+    tokio_core_0_1_8.default = true;
+    tokio_io_0_1_2.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_14_features log_0_3_8_features net2_0_2_30_features rand_0_3_15_features slab_0_3_0_features smallvec_0_2_1_features take_0_1_0_features tokio_core_0_1_8_features tokio_io_0_1_2_features tokio_service_0_1_0_features ];
+  tokio_service_0_1_0 = { features?(tokio_service_0_1_0_features {}) }: tokio_service_0_1_0_ {
+    dependencies = mapFeatures features ([ futures_0_1_14 ]);
+  };
+  tokio_service_0_1_0_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = true;
+    tokio_service_0_1_0.default = (f.tokio_service_0_1_0.default or true);
+  }) [ futures_0_1_14_features ];
+  tokio_tls_0_1_3 = { features?(tokio_tls_0_1_3_features {}) }: tokio_tls_0_1_3_ {
+    dependencies = mapFeatures features ([ futures_0_1_14 native_tls_0_1_4 tokio_core_0_1_8 tokio_io_0_1_2 ])
+      ++ (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_3_features = f: updateFeatures f (rec {
+    futures_0_1_14.default = true;
+    native_tls_0_1_4.default = true;
+    tokio_core_0_1_8.default = true;
+    tokio_io_0_1_2.default = true;
+    tokio_tls_0_1_3.default = (f.tokio_tls_0_1_3.default or true);
+  }) [ futures_0_1_14_features native_tls_0_1_4_features tokio_core_0_1_8_features tokio_io_0_1_2_features ];
+  toml_0_4_2 = { features?(toml_0_4_2_features {}) }: toml_0_4_2_ {
+    dependencies = mapFeatures features ([ serde_1_0_10 ]);
+  };
+  toml_0_4_2_features = f: updateFeatures f (rec {
+    serde_1_0_10.default = true;
+    toml_0_4_2.default = (f.toml_0_4_2.default or true);
+  }) [ serde_1_0_10_features ];
+  unicase_2_0_0 = { features?(unicase_2_0_0_features {}) }: unicase_2_0_0_ {
+    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 ]);
+    features = mkFeatures (features.unicase_2_0_0 or {});
+  };
+  unicase_2_0_0_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = true;
+    unicase_2_0_0.default = (f.unicase_2_0_0.default or true);
+  }) [ rustc_version_0_1_7_features ];
+  unicode_bidi_0_3_4 = { features?(unicode_bidi_0_3_4_features {}) }: unicode_bidi_0_3_4_ {
+    dependencies = mapFeatures features ([ matches_0_1_6 ]);
+    features = mkFeatures (features.unicode_bidi_0_3_4 or {});
+  };
+  unicode_bidi_0_3_4_features = f: updateFeatures f (rec {
+    matches_0_1_6.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_6_features ];
+  unicode_normalization_0_1_5 = { features?(unicode_normalization_0_1_5_features {}) }: unicode_normalization_0_1_5_ {};
+  unicode_normalization_0_1_5_features = f: updateFeatures f (rec {
+    unicode_normalization_0_1_5.default = (f.unicode_normalization_0_1_5.default or true);
+  }) [];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.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_5_1 = { features?(url_1_5_1_features {}) }: url_1_5_1_ {
+    dependencies = mapFeatures features ([ idna_0_1_4 matches_0_1_6 percent_encoding_1_0_0 ]);
+    features = mkFeatures (features.url_1_5_1 or {});
+  };
+  url_1_5_1_features = f: updateFeatures f (rec {
+    idna_0_1_4.default = true;
+    matches_0_1_6.default = true;
+    percent_encoding_1_0_0.default = true;
+    url_1_5_1.default = (f.url_1_5_1.default or true);
+    url_1_5_1.encoding =
+      (f.url_1_5_1.encoding or false) ||
+      (f.url_1_5_1.query_encoding or false) ||
+      (url_1_5_1.query_encoding or false);
+    url_1_5_1.heapsize =
+      (f.url_1_5_1.heapsize or false) ||
+      (f.url_1_5_1.heap_size or false) ||
+      (url_1_5_1.heap_size or false);
+  }) [ idna_0_1_4_features matches_0_1_6_features percent_encoding_1_0_0_features ];
+  utf8_ranges_1_0_0 = { features?(utf8_ranges_1_0_0_features {}) }: utf8_ranges_1_0_0_ {};
+  utf8_ranges_1_0_0_features = f: updateFeatures f (rec {
+    utf8_ranges_1_0_0.default = (f.utf8_ranges_1_0_0.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);
+  }) [];
+  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_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);
+  }) [];
+  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 ];
+}
diff --git a/pkgs/tools/package-management/cargo-edit/default.nix b/pkgs/tools/package-management/cargo-edit/default.nix
index ecb0708eb307..37f543b66b64 100644
--- a/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/pkgs/tools/package-management/cargo-edit/default.nix
@@ -1,28 +1,27 @@
-{ stdenv, fetchFromGitHub, rustPlatform, makeWrapper, zlib, openssl }:
+{ stdenv, pkgs, darwin, defaultCrateOverrides, fetchFromGitHub }:
 
-with rustPlatform;
+((import ./cargo-edit.nix { inherit pkgs; }).cargo_edit {}).override {
+  crateOverrides = defaultCrateOverrides // {
+    cargo-edit = attrs: rec {
+      name = "cargo-edit-${version}";
+      version = "0.2.0";
 
-buildRustPackage rec {
-  name = "cargo-edit-${version}";
-  version = "0.1.6";
+      src = fetchFromGitHub {
+        owner = "killercup";
+        repo = "cargo-edit";
+        rev = "v${version}";
+        sha256 = "1jxppbb7s50pwg24qxf79fqvm1clwm2zdnv0xlkay7y05nd5bc0c";
+      };
 
-  src = fetchFromGitHub {
-    owner = "killercup";
-    repo = "cargo-edit";
-    rev = "v${version}";
-    sha256 = "16wvix2zkpzl1hhlsvd6mkps8fw5k4n2dvjk9m10gg27pixmiync";
-  };
-
-  buildInputs = [ zlib openssl ];
-
-  cargoSha256 = "1m4yb7472g1n900dh3xqvdcywk3v01slj3bkk7bk7a9p5x1kyjfn";
+      propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
-  meta = with stdenv.lib; {
-    description = "A utility for managing cargo dependencies from the command line";
-    homepage = https://github.com/killercup/cargo-edit;
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ jb55 ];
-    platforms = platforms.all;
-    broken = true;
+      meta = with stdenv.lib; {
+        description = "A utility for managing cargo dependencies from the command line";
+        homepage = https://github.com/killercup/cargo-edit;
+        license = with licenses; [ mit ];
+        maintainers = with maintainers; [ gerschtli jb55 ];
+        platforms = platforms.all;
+      };
+    };
   };
 }
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 076451de31e2..c3f1e4d8d459 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -133,10 +133,10 @@ in rec {
   }) // { perl-bindings = nixStable; };
 
   nixStable = (common rec {
-    name = "nix-2.0.3";
+    name = "nix-2.0.4";
     src = fetchurl {
       url = "http://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "4f2f1d624cecac3baf7a026f89e08cf3d01bd6983cc7812bca4178092e436660";
+      sha256 = "166540ff7b8bb41449586b67e5fc6ab9e25525f6724b6c6bcbfb0648fbd6496b";
     };
   }) // { perl-bindings = perl-bindings { nix = nixStable; }; };
 
diff --git a/pkgs/tools/package-management/pacman/default.nix b/pkgs/tools/package-management/pacman/default.nix
index cdee8c15d8b5..d343064cc539 100644
--- a/pkgs/tools/package-management/pacman/default.nix
+++ b/pkgs/tools/package-management/pacman/default.nix
@@ -3,11 +3,11 @@ zlib, bzip2, lzma }:
 
 stdenv.mkDerivation rec {
   name = "pacman-${version}";
-  version = "5.0.2";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://git.archlinux.org/pacman.git/snapshot/pacman-${version}.tar.gz";
-    sha256 = "1lk54k7d281v55fryqsajl4xav7rhpk8x8pxcms2v6dapp959hgi";
+    sha256 = "1b545zvh661vkypnqr1cdicypym9d2kfvnxbf4a61qkyza6kzx35";
   };
 
   # trying to build docs fails with a2x errors, unable to fix through asciidoc
diff --git a/pkgs/tools/typesetting/scdoc/default.nix b/pkgs/tools/typesetting/scdoc/default.nix
new file mode 100644
index 000000000000..d6bdbf920852
--- /dev/null
+++ b/pkgs/tools/typesetting/scdoc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "scdoc-${version}";
+  version = "1.3.4";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~sircmpwn/scdoc/snapshot/scdoc-${version}.tar.xz";
+    sha256 = "131f6sd4azpc988kwzlrc9c4x98abhfnxr5wpk7i427ha84g89yb";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace "-static" "" \
+      --replace "/usr/local" "$out"
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "A simple man page generator";
+    longDescription = ''
+      scdoc is a simple man page generator written for POSIX systems written in
+      C99.
+    '';
+    homepage = https://git.sr.ht/~sircmpwn/scdoc/;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}