about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/package-management/cargo-update
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/tools/package-management/cargo-update
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/tools/package-management/cargo-update')
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/cargo-update.nix1334
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/default.nix29
2 files changed, 1363 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/cargo-update.nix b/nixpkgs/pkgs/tools/package-management/cargo-update/cargo-update.nix
new file mode 100644
index 000000000000..1bd8aadf4982
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/cargo-update.nix
@@ -0,0 +1,1334 @@
+# Generated by carnix 0.6.6: carnix -o cargo-update.nix --src ./. Cargo.lock --standalone
+{ lib, stdenv, buildRustCrate, fetchgit }:
+let kernel = stdenv.hostPlatform.parsed.kernel.name;
+    abi = stdenv.hostPlatform.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_update = f: cargo_update_1_5_2 { features = cargo_update_1_5_2_features { cargo_update_1_5_2 = f; }; };
+  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_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.6.4";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "189v919mp6rzzgjp1khpn4zlq8ls81gh43x1lmc8kbkagdlpq888";
+    libName = "aho_corasick";
+    crateBin = [ {  name = "aho-corasick-dot"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_11_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.11.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
+    inherit dependencies buildDependencies features;
+  };
+  array_tool_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "array_tool";
+    version = "1.0.3";
+    authors = [ "Daniel P. Clark <6ftdan@gmail.com>" ];
+    sha256 = "0igg0zvhcvjc15vgg6vjxjfifn2w4scjq9c8i1b2abv1sy2cgc86";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.10";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "1h26lssj8rwaz0xhwwm5a645r49yly211amfmd243m3m0jl49i2c";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "1.0.3";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "162p4w4h1ad76awq6b5yivmls3d50m9cl27d8g588lsps6g8s5rw";
+    inherit dependencies buildDependencies features;
+  };
+  cargo_update_1_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cargo-update";
+    version = "1.5.2";
+    authors = [ "nabijaczleweli <nabijaczleweli@gmail.com>" "Yann Simon <yann.simon.fr@gmail.com>" "ven <vendethiel@hotmail.fr>" "Cat Plus Plus <piotrlegnica@piotrl.pl>" "Liigo <liigo@qq.com>" "azyobuzin <azyobuzin@users.sourceforge.jp>" "Tatsuyuki Ishi <ishitatsuyuki@gmail.com>" "Tom Prince <tom.prince@twistedmatrix.com>" "Mateusz Mikuła <mati865@gmail.com>" "sinkuu <sinkuupump@gmail.com>" "Alex Burka <aburka@seas.upenn.edu>" "Matthias Krüger <matthias.krueger@famsik.de>" "Daniel Holbert <dholbert@cs.stanford.edu>" ];
+    src = ./.;
+    crateBin = [ {  name = "cargo-install-update";  path = "src/main.rs"; } {  name = "cargo-install-update-config";  path = "src/main-config.rs"; } ];
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.15";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1zmcv4zf888byhay2qakqlc9b8snhy5ccfs35zb6flywmlj8f2c0";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_31_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.31.2";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0r24ziw85a8y1sf2l21y4mvv5qan3rjafcshpyfsjfadqfxsij72";
+    inherit dependencies buildDependencies features;
+  };
+  cmake_0_1_31_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cmake";
+    version = "0.1.31";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "18j5fci486s7v5yjvv2ik3nsp4lk0fn0b8js5k6c4dviml476vz2";
+    inherit dependencies buildDependencies features;
+  };
+  curl_sys_0_4_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "curl-sys";
+    version = "0.4.5";
+    authors = [ "Carl Lerche <me@carllerche.com>" "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "149nswzwzr1lx0ki8awbppm7kf8nb268pc3zhzmvbs5fliq075qw";
+    libPath = "lib.rs";
+    libName = "curl_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  embed_resource_1_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "embed-resource";
+    version = "1.1.4";
+    authors = [ "nabijaczleweli <nabijaczleweli@gmail.com>" "Cat Plus Plus <piotrlegnica@piotrl.pl>" "Liigo <liigo@qq.com>" "azyobuzin <azyobuzin@users.sourceforge.jp>" "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1n07qys5904mkcididfgh1m6g8nfgl93pdpygaqn4dkhm5cxssfd";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_3_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.3.3";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
+    inherit dependencies buildDependencies features;
+  };
+  git2_0_6_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "git2";
+    version = "0.6.11";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0jznfnk2n7nk250cj52k3mxjqgan7gwyrh3h7dkhqqs2zfx4ylvd";
+    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;
+  };
+  json_0_11_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "json";
+    version = "0.11.13";
+    authors = [ "Maciej Hirsz <maciej.hirsz@gmail.com>" ];
+    sha256 = "03227jaj6rjlfigsk4rmc0b83b1djlh42grfjaxk0d2xvgdb893i";
+    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;
+  };
+  lazy_static_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "1.0.0";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
+    inherit dependencies buildDependencies features;
+  };
+  lazysort_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazysort";
+    version = "0.2.0";
+    authors = [ "Ben Ashford" ];
+    sha256 = "0dv9bryg10hj8cycmdxpcc9y14i958yjr2hm4c3i9168q0y7njdz";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1xfc39237ldzgr8x8wcflgdr8zssi3wif7g2zxc02d94gzkjsw83";
+    inherit dependencies buildDependencies features;
+  };
+  libgit2_sys_0_6_19_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libgit2-sys";
+    version = "0.6.19";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "13044s468adsx3sq4qvr4vnbr6nr5hq23lls8wn0a415jdl3qbcg";
+    libPath = "lib.rs";
+    libName = "libgit2_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libssh2_sys_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libssh2-sys";
+    version = "0.2.7";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1mr683x23l7f0mmc10vd5fnarfqpd7wqxs3rxyhq2igrh3fn0m2v";
+    libPath = "lib.rs";
+    libName = "libssh2_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libz_sys_1_0_18_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libz-sys";
+    version = "1.0.18";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0lr0rvmmfbfa4g7mhi0l93i8jq86pfcssdv4d40kzfy45ajdcgim";
+    build = "build.rs";
+    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_2_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memchr";
+    version = "2.0.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "0ls2y47rjwapjdax6bp974gdp06ggm1v8d1h69wyydmh1nhgm5gr";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_probe_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl-probe";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1a89fznx26vvaxyrxdvgf6iwai5xvs6xjvpjin68fgvrslv6n15a";
+    inherit dependencies buildDependencies features;
+  };
+  openssl_sys_0_9_30_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "openssl-sys";
+    version = "0.9.30";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1p5y3md4crbmg0lcfkdl8pp3kf9k82vghjy28x7ix5mji3j2p87a";
+    inherit dependencies buildDependencies features;
+  };
+  percent_encoding_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "percent-encoding";
+    version = "1.0.1";
+    authors = [ "The rust-url developers" ];
+    sha256 = "04ahrp7aw4ip7fmadb0bknybmkfav0kk0gw4ps3ydq5w6hr0ib5i";
+    libPath = "lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.11";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "177kbs465skvzmb2d9bh7aa5lqm0npfig12awcbd34c6k6nlyr5h";
+    inherit dependencies buildDependencies features;
+  };
+  proc_macro2_0_3_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "proc-macro2";
+    version = "0.3.8";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ixnavxcd6sk1861hjgnfxly7qgq4ch1iplsx0nclvjjkwg39qdc";
+    inherit dependencies buildDependencies features;
+  };
+  quote_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "quote";
+    version = "0.5.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "062cnp12j09x0z0nj4j5pfh26h35zlrks07asxgqhfhcym1ba595";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_22_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.22";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0wrj12acx7l4hr7ag3nz8b50yhp8ancyq988bzmnnsxln67rsys0";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.4.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
+    inherit dependencies buildDependencies features;
+  };
+  redox_syscall_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.37";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "0qa0jl9cr3qp80an8vshp2mcn8rzvwiavs1398hq1vsjw7pc3h2v";
+    libName = "syscall";
+    inherit dependencies buildDependencies features;
+  };
+  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_termios";
+    version = "0.1.1";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  regex_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0r50cymxdqp0fv1dxd22mjr6y32q450nwacd279p9s7lh0cafijj";
+    inherit dependencies buildDependencies features;
+  };
+  regex_syntax_0_5_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.5.6";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "10vf3r34bgjnbrnqd5aszn35bjvm8insw498l1vjy8zx5yms3427";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.9.0";
+    authors = [ "Steve Klabnik <steve@steveklabnik.com>" "The Rust Project Developers" ];
+    sha256 = "0azak2lb2wc36s3x15az886kck7rpnksrw14lalm157rg9sc9z63";
+    inherit dependencies buildDependencies features;
+  };
+  semver_parser_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver-parser";
+    version = "0.7.0";
+    authors = [ "Steve Klabnik <steve@steveklabnik.com>" ];
+    sha256 = "1da66c8413yakx0y15k8c055yna5lyb6fr0fw9318kdwkrk5k12h";
+    inherit dependencies buildDependencies features;
+  };
+  serde_1_0_55_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "1.0.55";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1vpslfs3j8xbl3srmzppa34h0908q0sj4hyrmlrpklhldii5vbqh";
+    inherit dependencies buildDependencies features;
+  };
+  serde_derive_1_0_55_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_derive";
+    version = "1.0.55";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1ggcidzgi51l3lsdf8gg46ivn61py8rnrf6garpcxwmdbfcc8lgk";
+    procMacro = true;
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.7.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
+    inherit dependencies buildDependencies features;
+  };
+  syn_0_13_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "syn";
+    version = "0.13.10";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0dbvdxlpvx7f8iw5cbv88vbyszp72df8y8zhl36gj73g1xwdqfhx";
+    inherit dependencies buildDependencies features;
+  };
+  tabwriter_1_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tabwriter";
+    version = "1.0.4";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "02yk7db101lqn24wnm15yy8xb095kv9bnkdvyj7vqhx40vixyibd";
+    inherit dependencies buildDependencies features;
+  };
+  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "termion";
+    version = "1.5.1";
+    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+    inherit dependencies buildDependencies features;
+  };
+  textwrap_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "textwrap";
+    version = "0.9.0";
+    authors = [ "Martin Geisler <martin@geisler.net>" ];
+    sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.3.5";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_4_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.4.6";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0rfl7lyb5f67spk69s604nw87f97g7fvv36hj9v88qlr2bwyrn8v";
+    inherit dependencies buildDependencies features;
+  };
+  ucd_util_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ucd-util";
+    version = "0.1.1";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_bidi_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-bidi";
+    version = "0.3.4";
+    authors = [ "The Servo Project Developers" ];
+    sha256 = "0lcd6jasrf8p9p0q20qyf10c6xhvw40m2c4rr105hbk6zy26nj1q";
+    libName = "unicode_bidi";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_normalization_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-normalization";
+    version = "0.1.7";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1da2hv800pd0wilmn4idwpgv5p510hjxizjcfv6xzb40xcsjd8gs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_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_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-xid";
+    version = "0.1.0";
+    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
+    sha256 = "05wdmwlfzxhq3nhsxn6wx4q8dhxzzfb9szsz6wiw092m1rjj01zj";
+    inherit dependencies buildDependencies features;
+  };
+  unreachable_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unreachable";
+    version = "1.0.0";
+    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
+    inherit dependencies buildDependencies features;
+  };
+  url_1_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "url";
+    version = "1.7.0";
+    authors = [ "The rust-url developers" ];
+    sha256 = "0333ynhkp47hna88aamz1zpk4lxyzx4ab9n7yhc75g14w27cv8jj";
+    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;
+  };
+  vcpkg_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vcpkg";
+    version = "0.2.3";
+    authors = [ "Jim McGrath <jimmc2@gmail.com>" ];
+    sha256 = "0achi8sfy0wm4q04gj7nwpq9xfx8ynk6vv4r12a3ijg26hispq0c";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
+    inherit dependencies buildDependencies features;
+  };
+  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_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.3.4";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1qbrf5dcnd8j36cawby5d9r5vx07r0l4ryf672pfncnp8895k9lx";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_i686_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-i686-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_x86_64_pc_windows_gnu_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-x86_64-pc-windows-gnu";
+    version = "0.4.0";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winreg_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winreg";
+    version = "0.4.0";
+    authors = [ "Igor Shaula <gentoo90@gmail.com>" ];
+    sha256 = "1zhk2a6qwyfpvwjd929qs0y6zzxl7g90pnz59qhazfg72m36iwda";
+    inherit dependencies buildDependencies features;
+  };
+  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_4 = { features?(aho_corasick_0_6_4_features {}) }: aho_corasick_0_6_4_ {
+    dependencies = mapFeatures features ([ memchr_2_0_1 ]);
+  };
+  aho_corasick_0_6_4_features = f: updateFeatures f (rec {
+    aho_corasick_0_6_4.default = (f.aho_corasick_0_6_4.default or true);
+    memchr_2_0_1.default = true;
+  }) [ memchr_2_0_1_features ];
+  ansi_term_0_11_0 = { features?(ansi_term_0_11_0_features {}) }: ansi_term_0_11_0_ {
+    dependencies = (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
+  };
+  ansi_term_0_11_0_features = f: updateFeatures f (rec {
+    ansi_term_0_11_0.default = (f.ansi_term_0_11_0.default or true);
+    winapi_0_3_4.consoleapi = true;
+    winapi_0_3_4.default = true;
+    winapi_0_3_4.errhandlingapi = true;
+    winapi_0_3_4.processenv = true;
+  }) [ winapi_0_3_4_features ];
+  array_tool_1_0_3 = { features?(array_tool_1_0_3_features {}) }: array_tool_1_0_3_ {};
+  array_tool_1_0_3_features = f: updateFeatures f (rec {
+    array_tool_1_0_3.default = (f.array_tool_1_0_3.default or true);
+  }) [];
+  atty_0_2_10 = { features?(atty_0_2_10_features {}) }: atty_0_2_10_ {
+    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_40 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
+  };
+  atty_0_2_10_features = f: updateFeatures f (rec {
+    atty_0_2_10.default = (f.atty_0_2_10.default or true);
+    libc_0_2_40.default = (f.libc_0_2_40.default or false);
+    termion_1_5_1.default = true;
+    winapi_0_3_4.consoleapi = true;
+    winapi_0_3_4.default = true;
+    winapi_0_3_4.minwinbase = true;
+    winapi_0_3_4.minwindef = true;
+    winapi_0_3_4.processenv = true;
+    winapi_0_3_4.winbase = true;
+  }) [ termion_1_5_1_features libc_0_2_40_features winapi_0_3_4_features ];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  bitflags_1_0_3 = { features?(bitflags_1_0_3_features {}) }: bitflags_1_0_3_ {
+    features = mkFeatures (features.bitflags_1_0_3 or {});
+  };
+  bitflags_1_0_3_features = f: updateFeatures f (rec {
+    bitflags_1_0_3.default = (f.bitflags_1_0_3.default or true);
+  }) [];
+  cargo_update_1_5_2 = { features?(cargo_update_1_5_2_features {}) }: cargo_update_1_5_2_ {
+    dependencies = mapFeatures features ([ array_tool_1_0_3 clap_2_31_2 git2_0_6_11 json_0_11_13 lazy_static_1_0_0 lazysort_0_2_0 regex_0_2_11 semver_0_9_0 serde_1_0_55 serde_derive_1_0_55 tabwriter_1_0_4 toml_0_4_6 url_1_7_0 ]);
+    buildDependencies = mapFeatures features ([ embed_resource_1_1_4 ]);
+  };
+  cargo_update_1_5_2_features = f: updateFeatures f (rec {
+    array_tool_1_0_3.default = true;
+    cargo_update_1_5_2.default = (f.cargo_update_1_5_2.default or true);
+    clap_2_31_2.default = true;
+    embed_resource_1_1_4.default = true;
+    git2_0_6_11.default = true;
+    json_0_11_13.default = true;
+    lazy_static_1_0_0.default = true;
+    lazysort_0_2_0.default = true;
+    regex_0_2_11.default = true;
+    semver_0_9_0.default = true;
+    semver_0_9_0.serde = true;
+    serde_1_0_55.default = true;
+    serde_derive_1_0_55.default = true;
+    tabwriter_1_0_4.default = true;
+    toml_0_4_6.default = true;
+    url_1_7_0.default = true;
+  }) [ array_tool_1_0_3_features clap_2_31_2_features git2_0_6_11_features json_0_11_13_features lazy_static_1_0_0_features lazysort_0_2_0_features regex_0_2_11_features semver_0_9_0_features serde_1_0_55_features serde_derive_1_0_55_features tabwriter_1_0_4_features toml_0_4_6_features url_1_7_0_features embed_resource_1_1_4_features ];
+  cc_1_0_15 = { features?(cc_1_0_15_features {}) }: cc_1_0_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_15 or {});
+  };
+  cc_1_0_15_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = (f.cc_1_0_15.default or true);
+    cc_1_0_15.rayon =
+      (f.cc_1_0_15.rayon or false) ||
+      (f.cc_1_0_15.parallel or false) ||
+      (cc_1_0_15.parallel or false);
+  }) [];
+  clap_2_31_2 = { features?(clap_2_31_2_features {}) }: clap_2_31_2_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_3 textwrap_0_9_0 unicode_width_0_1_4 ]
+      ++ (if features.clap_2_31_2.atty or false then [ atty_0_2_10 ] else [])
+      ++ (if features.clap_2_31_2.strsim or false then [ strsim_0_7_0 ] else [])
+      ++ (if features.clap_2_31_2.vec_map or false then [ vec_map_0_8_1 ] else []))
+      ++ (if !(kernel == "windows") then mapFeatures features ([ ]
+      ++ (if features.clap_2_31_2.ansi_term or false then [ ansi_term_0_11_0 ] else [])) else []);
+    features = mkFeatures (features.clap_2_31_2 or {});
+  };
+  clap_2_31_2_features = f: updateFeatures f (rec {
+    ansi_term_0_11_0.default = true;
+    atty_0_2_10.default = true;
+    bitflags_1_0_3.default = true;
+    clap_2_31_2.ansi_term =
+      (f.clap_2_31_2.ansi_term or false) ||
+      (f.clap_2_31_2.color or false) ||
+      (clap_2_31_2.color or false);
+    clap_2_31_2.atty =
+      (f.clap_2_31_2.atty or false) ||
+      (f.clap_2_31_2.color or false) ||
+      (clap_2_31_2.color or false);
+    clap_2_31_2.clippy =
+      (f.clap_2_31_2.clippy or false) ||
+      (f.clap_2_31_2.lints or false) ||
+      (clap_2_31_2.lints or false);
+    clap_2_31_2.color =
+      (f.clap_2_31_2.color or false) ||
+      (f.clap_2_31_2.default or false) ||
+      (clap_2_31_2.default or false);
+    clap_2_31_2.default = (f.clap_2_31_2.default or true);
+    clap_2_31_2.strsim =
+      (f.clap_2_31_2.strsim or false) ||
+      (f.clap_2_31_2.suggestions or false) ||
+      (clap_2_31_2.suggestions or false);
+    clap_2_31_2.suggestions =
+      (f.clap_2_31_2.suggestions or false) ||
+      (f.clap_2_31_2.default or false) ||
+      (clap_2_31_2.default or false);
+    clap_2_31_2.term_size =
+      (f.clap_2_31_2.term_size or false) ||
+      (f.clap_2_31_2.wrap_help or false) ||
+      (clap_2_31_2.wrap_help or false);
+    clap_2_31_2.vec_map =
+      (f.clap_2_31_2.vec_map or false) ||
+      (f.clap_2_31_2.default or false) ||
+      (clap_2_31_2.default or false);
+    clap_2_31_2.yaml =
+      (f.clap_2_31_2.yaml or false) ||
+      (f.clap_2_31_2.doc or false) ||
+      (clap_2_31_2.doc or false);
+    clap_2_31_2.yaml-rust =
+      (f.clap_2_31_2.yaml-rust or false) ||
+      (f.clap_2_31_2.yaml or false) ||
+      (clap_2_31_2.yaml or false);
+    strsim_0_7_0.default = true;
+    textwrap_0_9_0.default = true;
+    textwrap_0_9_0.term_size =
+      (f.textwrap_0_9_0.term_size or false) ||
+      (clap_2_31_2.wrap_help or false) ||
+      (f.clap_2_31_2.wrap_help or false);
+    unicode_width_0_1_4.default = true;
+    vec_map_0_8_1.default = true;
+  }) [ atty_0_2_10_features bitflags_1_0_3_features strsim_0_7_0_features textwrap_0_9_0_features unicode_width_0_1_4_features vec_map_0_8_1_features ansi_term_0_11_0_features ];
+  cmake_0_1_31 = { features?(cmake_0_1_31_features {}) }: cmake_0_1_31_ {
+    dependencies = mapFeatures features ([ cc_1_0_15 ]);
+  };
+  cmake_0_1_31_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = true;
+    cmake_0_1_31.default = (f.cmake_0_1_31.default or true);
+  }) [ cc_1_0_15_features ];
+  curl_sys_0_4_5 = { features?(curl_sys_0_4_5_features {}) }: curl_sys_0_4_5_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 libz_sys_1_0_18 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "darwin") then mapFeatures features ([ openssl_sys_0_9_30 ]) else [])
+      ++ (if abi == "msvc" then mapFeatures features ([]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
+    buildDependencies = mapFeatures features ([ cc_1_0_15 pkg_config_0_3_11 ]);
+  };
+  curl_sys_0_4_5_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = true;
+    curl_sys_0_4_5.default = (f.curl_sys_0_4_5.default or true);
+    libc_0_2_40.default = true;
+    libz_sys_1_0_18.default = true;
+    openssl_sys_0_9_30.default = true;
+    pkg_config_0_3_11.default = true;
+    winapi_0_3_4.default = true;
+    winapi_0_3_4.winsock2 = true;
+    winapi_0_3_4.ws2def = true;
+  }) [ libc_0_2_40_features libz_sys_1_0_18_features cc_1_0_15_features pkg_config_0_3_11_features openssl_sys_0_9_30_features winapi_0_3_4_features ];
+  embed_resource_1_1_4 = { features?(embed_resource_1_1_4_features {}) }: embed_resource_1_1_4_ {
+    dependencies = (if kernel == "windows" && abi == "msvc" then mapFeatures features ([ winreg_0_4_0 ]) else []);
+  };
+  embed_resource_1_1_4_features = f: updateFeatures f (rec {
+    embed_resource_1_1_4.default = (f.embed_resource_1_1_4.default or true);
+    winreg_0_4_0.default = (f.winreg_0_4_0.default or false);
+  }) [ winreg_0_4_0_features ];
+  fuchsia_zircon_0_3_3 = { features?(fuchsia_zircon_0_3_3_features {}) }: fuchsia_zircon_0_3_3_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_3 fuchsia_zircon_sys_0_3_3 ]);
+  };
+  fuchsia_zircon_0_3_3_features = f: updateFeatures f (rec {
+    bitflags_1_0_3.default = true;
+    fuchsia_zircon_0_3_3.default = (f.fuchsia_zircon_0_3_3.default or true);
+    fuchsia_zircon_sys_0_3_3.default = true;
+  }) [ bitflags_1_0_3_features fuchsia_zircon_sys_0_3_3_features ];
+  fuchsia_zircon_sys_0_3_3 = { features?(fuchsia_zircon_sys_0_3_3_features {}) }: fuchsia_zircon_sys_0_3_3_ {};
+  fuchsia_zircon_sys_0_3_3_features = f: updateFeatures f (rec {
+    fuchsia_zircon_sys_0_3_3.default = (f.fuchsia_zircon_sys_0_3_3.default or true);
+  }) [];
+  git2_0_6_11 = { features?(git2_0_6_11_features {}) }: git2_0_6_11_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_40 libgit2_sys_0_6_19 url_1_7_0 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "darwin") then mapFeatures features ([ ]
+      ++ (if features.git2_0_6_11.openssl-probe or false then [ openssl_probe_0_1_2 ] else [])
+      ++ (if features.git2_0_6_11.openssl-sys or false then [ openssl_sys_0_9_30 ] else [])) else []);
+    features = mkFeatures (features.git2_0_6_11 or {});
+  };
+  git2_0_6_11_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    git2_0_6_11.curl =
+      (f.git2_0_6_11.curl or false) ||
+      (f.git2_0_6_11.default or false) ||
+      (git2_0_6_11.default or false);
+    git2_0_6_11.default = (f.git2_0_6_11.default or true);
+    git2_0_6_11.https =
+      (f.git2_0_6_11.https or false) ||
+      (f.git2_0_6_11.default or false) ||
+      (git2_0_6_11.default or false);
+    git2_0_6_11.openssl-probe =
+      (f.git2_0_6_11.openssl-probe or false) ||
+      (f.git2_0_6_11.https or false) ||
+      (git2_0_6_11.https or false);
+    git2_0_6_11.openssl-sys =
+      (f.git2_0_6_11.openssl-sys or false) ||
+      (f.git2_0_6_11.https or false) ||
+      (git2_0_6_11.https or false);
+    git2_0_6_11.ssh =
+      (f.git2_0_6_11.ssh or false) ||
+      (f.git2_0_6_11.default or false) ||
+      (git2_0_6_11.default or false);
+    libc_0_2_40.default = true;
+    libgit2_sys_0_6_19.curl =
+      (f.libgit2_sys_0_6_19.curl or false) ||
+      (git2_0_6_11.curl or false) ||
+      (f.git2_0_6_11.curl or false);
+    libgit2_sys_0_6_19.default = true;
+    libgit2_sys_0_6_19.https =
+      (f.libgit2_sys_0_6_19.https or false) ||
+      (git2_0_6_11.https or false) ||
+      (f.git2_0_6_11.https or false);
+    libgit2_sys_0_6_19.ssh =
+      (f.libgit2_sys_0_6_19.ssh or false) ||
+      (git2_0_6_11.ssh or false) ||
+      (f.git2_0_6_11.ssh or false);
+    openssl_probe_0_1_2.default = true;
+    openssl_sys_0_9_30.default = true;
+    url_1_7_0.default = true;
+  }) [ bitflags_0_9_1_features libc_0_2_40_features libgit2_sys_0_6_19_features url_1_7_0_features openssl_probe_0_1_2_features openssl_sys_0_9_30_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_7 ]);
+  };
+  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_7.default = true;
+  }) [ matches_0_1_6_features unicode_bidi_0_3_4_features unicode_normalization_0_1_7_features ];
+  json_0_11_13 = { features?(json_0_11_13_features {}) }: json_0_11_13_ {};
+  json_0_11_13_features = f: updateFeatures f (rec {
+    json_0_11_13.default = (f.json_0_11_13.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 ];
+  lazy_static_1_0_0 = { features?(lazy_static_1_0_0_features {}) }: lazy_static_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_1_0_0 or {});
+  };
+  lazy_static_1_0_0_features = f: updateFeatures f (rec {
+    lazy_static_1_0_0.compiletest_rs =
+      (f.lazy_static_1_0_0.compiletest_rs or false) ||
+      (f.lazy_static_1_0_0.compiletest or false) ||
+      (lazy_static_1_0_0.compiletest or false);
+    lazy_static_1_0_0.default = (f.lazy_static_1_0_0.default or true);
+    lazy_static_1_0_0.nightly =
+      (f.lazy_static_1_0_0.nightly or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+    lazy_static_1_0_0.spin =
+      (f.lazy_static_1_0_0.spin or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+  }) [];
+  lazysort_0_2_0 = { features?(lazysort_0_2_0_features {}) }: lazysort_0_2_0_ {
+    dependencies = mapFeatures features ([ rand_0_3_22 ]);
+    features = mkFeatures (features.lazysort_0_2_0 or {});
+  };
+  lazysort_0_2_0_features = f: updateFeatures f (rec {
+    lazysort_0_2_0.default = (f.lazysort_0_2_0.default or true);
+    rand_0_3_22.default = true;
+  }) [ rand_0_3_22_features ];
+  libc_0_2_40 = { features?(libc_0_2_40_features {}) }: libc_0_2_40_ {
+    features = mkFeatures (features.libc_0_2_40 or {});
+  };
+  libc_0_2_40_features = f: updateFeatures f (rec {
+    libc_0_2_40.default = (f.libc_0_2_40.default or true);
+    libc_0_2_40.use_std =
+      (f.libc_0_2_40.use_std or false) ||
+      (f.libc_0_2_40.default or false) ||
+      (libc_0_2_40.default or false);
+  }) [];
+  libgit2_sys_0_6_19 = { features?(libgit2_sys_0_6_19_features {}) }: libgit2_sys_0_6_19_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 libz_sys_1_0_18 ]
+      ++ (if features.libgit2_sys_0_6_19.curl-sys or false then [ curl_sys_0_4_5 ] else [])
+      ++ (if features.libgit2_sys_0_6_19.libssh2-sys or false then [ libssh2_sys_0_2_7 ] else []))
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
+      ++ (if features.libgit2_sys_0_6_19.openssl-sys or false then [ openssl_sys_0_9_30 ] else [])) else []);
+    buildDependencies = mapFeatures features ([ cc_1_0_15 cmake_0_1_31 pkg_config_0_3_11 ]);
+    features = mkFeatures (features.libgit2_sys_0_6_19 or {});
+  };
+  libgit2_sys_0_6_19_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = true;
+    cmake_0_1_31.default = true;
+    curl_sys_0_4_5.default = true;
+    libc_0_2_40.default = true;
+    libgit2_sys_0_6_19.curl-sys =
+      (f.libgit2_sys_0_6_19.curl-sys or false) ||
+      (f.libgit2_sys_0_6_19.curl or false) ||
+      (libgit2_sys_0_6_19.curl or false);
+    libgit2_sys_0_6_19.default = (f.libgit2_sys_0_6_19.default or true);
+    libgit2_sys_0_6_19.libssh2-sys =
+      (f.libgit2_sys_0_6_19.libssh2-sys or false) ||
+      (f.libgit2_sys_0_6_19.ssh or false) ||
+      (libgit2_sys_0_6_19.ssh or false);
+    libgit2_sys_0_6_19.openssl-sys =
+      (f.libgit2_sys_0_6_19.openssl-sys or false) ||
+      (f.libgit2_sys_0_6_19.https or false) ||
+      (libgit2_sys_0_6_19.https or false);
+    libssh2_sys_0_2_7.default = true;
+    libz_sys_1_0_18.default = true;
+    openssl_sys_0_9_30.default = true;
+    pkg_config_0_3_11.default = true;
+  }) [ curl_sys_0_4_5_features libc_0_2_40_features libssh2_sys_0_2_7_features libz_sys_1_0_18_features cc_1_0_15_features cmake_0_1_31_features pkg_config_0_3_11_features openssl_sys_0_9_30_features ];
+  libssh2_sys_0_2_7 = { features?(libssh2_sys_0_2_7_features {}) }: libssh2_sys_0_2_7_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 libz_sys_1_0_18 ])
+      ++ (if abi == "msvc" then mapFeatures features ([]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ openssl_sys_0_9_30 ]) else []);
+    buildDependencies = mapFeatures features ([ cmake_0_1_31 pkg_config_0_3_11 ]);
+  };
+  libssh2_sys_0_2_7_features = f: updateFeatures f (rec {
+    cmake_0_1_31.default = true;
+    libc_0_2_40.default = true;
+    libssh2_sys_0_2_7.default = (f.libssh2_sys_0_2_7.default or true);
+    libz_sys_1_0_18.default = true;
+    openssl_sys_0_9_30.default = true;
+    pkg_config_0_3_11.default = true;
+  }) [ libc_0_2_40_features libz_sys_1_0_18_features cmake_0_1_31_features pkg_config_0_3_11_features openssl_sys_0_9_30_features ];
+  libz_sys_1_0_18 = { features?(libz_sys_1_0_18_features {}) }: libz_sys_1_0_18_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 ])
+      ++ (if abi == "msvc" then mapFeatures features ([]) else []);
+    buildDependencies = mapFeatures features ([ cc_1_0_15 pkg_config_0_3_11 ]);
+  };
+  libz_sys_1_0_18_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = true;
+    libc_0_2_40.default = true;
+    libz_sys_1_0_18.default = (f.libz_sys_1_0_18.default or true);
+    pkg_config_0_3_11.default = true;
+  }) [ libc_0_2_40_features cc_1_0_15_features pkg_config_0_3_11_features ];
+  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_2_0_1 = { features?(memchr_2_0_1_features {}) }: memchr_2_0_1_ {
+    dependencies = mapFeatures features ([ ]
+      ++ (if features.memchr_2_0_1.libc or false then [ libc_0_2_40 ] else []));
+    features = mkFeatures (features.memchr_2_0_1 or {});
+  };
+  memchr_2_0_1_features = f: updateFeatures f (rec {
+    libc_0_2_40.default = (f.libc_0_2_40.default or false);
+    libc_0_2_40.use_std =
+      (f.libc_0_2_40.use_std or false) ||
+      (memchr_2_0_1.use_std or false) ||
+      (f.memchr_2_0_1.use_std or false);
+    memchr_2_0_1.default = (f.memchr_2_0_1.default or true);
+    memchr_2_0_1.libc =
+      (f.memchr_2_0_1.libc or false) ||
+      (f.memchr_2_0_1.default or false) ||
+      (memchr_2_0_1.default or false) ||
+      (f.memchr_2_0_1.use_std or false) ||
+      (memchr_2_0_1.use_std or false);
+    memchr_2_0_1.use_std =
+      (f.memchr_2_0_1.use_std or false) ||
+      (f.memchr_2_0_1.default or false) ||
+      (memchr_2_0_1.default or false);
+  }) [ libc_0_2_40_features ];
+  openssl_probe_0_1_2 = { features?(openssl_probe_0_1_2_features {}) }: openssl_probe_0_1_2_ {};
+  openssl_probe_0_1_2_features = f: updateFeatures f (rec {
+    openssl_probe_0_1_2.default = (f.openssl_probe_0_1_2.default or true);
+  }) [];
+  openssl_sys_0_9_30 = { features?(openssl_sys_0_9_30_features {}) }: openssl_sys_0_9_30_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 ])
+      ++ (if abi == "msvc" then mapFeatures features ([]) else []);
+    buildDependencies = mapFeatures features ([ cc_1_0_15 pkg_config_0_3_11 ]);
+  };
+  openssl_sys_0_9_30_features = f: updateFeatures f (rec {
+    cc_1_0_15.default = true;
+    libc_0_2_40.default = true;
+    openssl_sys_0_9_30.default = (f.openssl_sys_0_9_30.default or true);
+    pkg_config_0_3_11.default = true;
+  }) [ libc_0_2_40_features cc_1_0_15_features pkg_config_0_3_11_features ];
+  percent_encoding_1_0_1 = { features?(percent_encoding_1_0_1_features {}) }: percent_encoding_1_0_1_ {};
+  percent_encoding_1_0_1_features = f: updateFeatures f (rec {
+    percent_encoding_1_0_1.default = (f.percent_encoding_1_0_1.default or true);
+  }) [];
+  pkg_config_0_3_11 = { features?(pkg_config_0_3_11_features {}) }: pkg_config_0_3_11_ {};
+  pkg_config_0_3_11_features = f: updateFeatures f (rec {
+    pkg_config_0_3_11.default = (f.pkg_config_0_3_11.default or true);
+  }) [];
+  proc_macro2_0_3_8 = { features?(proc_macro2_0_3_8_features {}) }: proc_macro2_0_3_8_ {
+    dependencies = mapFeatures features ([ unicode_xid_0_1_0 ]);
+    features = mkFeatures (features.proc_macro2_0_3_8 or {});
+  };
+  proc_macro2_0_3_8_features = f: updateFeatures f (rec {
+    proc_macro2_0_3_8.default = (f.proc_macro2_0_3_8.default or true);
+    proc_macro2_0_3_8.proc-macro =
+      (f.proc_macro2_0_3_8.proc-macro or false) ||
+      (f.proc_macro2_0_3_8.default or false) ||
+      (proc_macro2_0_3_8.default or false) ||
+      (f.proc_macro2_0_3_8.nightly or false) ||
+      (proc_macro2_0_3_8.nightly or false);
+    unicode_xid_0_1_0.default = true;
+  }) [ unicode_xid_0_1_0_features ];
+  quote_0_5_2 = { features?(quote_0_5_2_features {}) }: quote_0_5_2_ {
+    dependencies = mapFeatures features ([ proc_macro2_0_3_8 ]);
+    features = mkFeatures (features.quote_0_5_2 or {});
+  };
+  quote_0_5_2_features = f: updateFeatures f (rec {
+    proc_macro2_0_3_8.default = (f.proc_macro2_0_3_8.default or false);
+    proc_macro2_0_3_8.proc-macro =
+      (f.proc_macro2_0_3_8.proc-macro or false) ||
+      (quote_0_5_2.proc-macro or false) ||
+      (f.quote_0_5_2.proc-macro or false);
+    quote_0_5_2.default = (f.quote_0_5_2.default or true);
+    quote_0_5_2.proc-macro =
+      (f.quote_0_5_2.proc-macro or false) ||
+      (f.quote_0_5_2.default or false) ||
+      (quote_0_5_2.default or false);
+  }) [ proc_macro2_0_3_8_features ];
+  rand_0_3_22 = { features?(rand_0_3_22_features {}) }: rand_0_3_22_ {
+    dependencies = mapFeatures features ([ libc_0_2_40 rand_0_4_2 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else []);
+    features = mkFeatures (features.rand_0_3_22 or {});
+  };
+  rand_0_3_22_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_3.default = true;
+    libc_0_2_40.default = true;
+    rand_0_3_22.default = (f.rand_0_3_22.default or true);
+    rand_0_3_22.i128_support =
+      (f.rand_0_3_22.i128_support or false) ||
+      (f.rand_0_3_22.nightly or false) ||
+      (rand_0_3_22.nightly or false);
+    rand_0_4_2.default = true;
+  }) [ libc_0_2_40_features rand_0_4_2_features fuchsia_zircon_0_3_3_features ];
+  rand_0_4_2 = { features?(rand_0_4_2_features {}) }: rand_0_4_2_ {
+    dependencies = (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_3 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ ]
+      ++ (if features.rand_0_4_2.libc or false then [ libc_0_2_40 ] else [])) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_3_4 ]) else []);
+    features = mkFeatures (features.rand_0_4_2 or {});
+  };
+  rand_0_4_2_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_3.default = true;
+    libc_0_2_40.default = true;
+    rand_0_4_2.default = (f.rand_0_4_2.default or true);
+    rand_0_4_2.i128_support =
+      (f.rand_0_4_2.i128_support or false) ||
+      (f.rand_0_4_2.nightly or false) ||
+      (rand_0_4_2.nightly or false);
+    rand_0_4_2.libc =
+      (f.rand_0_4_2.libc or false) ||
+      (f.rand_0_4_2.std or false) ||
+      (rand_0_4_2.std or false);
+    rand_0_4_2.std =
+      (f.rand_0_4_2.std or false) ||
+      (f.rand_0_4_2.default or false) ||
+      (rand_0_4_2.default or false);
+    winapi_0_3_4.default = true;
+    winapi_0_3_4.minwindef = true;
+    winapi_0_3_4.ntsecapi = true;
+    winapi_0_3_4.profileapi = true;
+    winapi_0_3_4.winnt = true;
+  }) [ fuchsia_zircon_0_3_3_features libc_0_2_40_features winapi_0_3_4_features ];
+  redox_syscall_0_1_37 = { features?(redox_syscall_0_1_37_features {}) }: redox_syscall_0_1_37_ {};
+  redox_syscall_0_1_37_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_37.default = (f.redox_syscall_0_1_37.default or true);
+  }) [];
+  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
+    dependencies = mapFeatures features ([ redox_syscall_0_1_37 ]);
+  };
+  redox_termios_0_1_1_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_37.default = true;
+    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
+  }) [ redox_syscall_0_1_37_features ];
+  regex_0_2_11 = { features?(regex_0_2_11_features {}) }: regex_0_2_11_ {
+    dependencies = mapFeatures features ([ aho_corasick_0_6_4 memchr_2_0_1 regex_syntax_0_5_6 thread_local_0_3_5 utf8_ranges_1_0_0 ]);
+    features = mkFeatures (features.regex_0_2_11 or {});
+  };
+  regex_0_2_11_features = f: updateFeatures f (rec {
+    aho_corasick_0_6_4.default = true;
+    memchr_2_0_1.default = true;
+    regex_0_2_11.default = (f.regex_0_2_11.default or true);
+    regex_0_2_11.pattern =
+      (f.regex_0_2_11.pattern or false) ||
+      (f.regex_0_2_11.unstable or false) ||
+      (regex_0_2_11.unstable or false);
+    regex_syntax_0_5_6.default = true;
+    thread_local_0_3_5.default = true;
+    utf8_ranges_1_0_0.default = true;
+  }) [ aho_corasick_0_6_4_features memchr_2_0_1_features regex_syntax_0_5_6_features thread_local_0_3_5_features utf8_ranges_1_0_0_features ];
+  regex_syntax_0_5_6 = { features?(regex_syntax_0_5_6_features {}) }: regex_syntax_0_5_6_ {
+    dependencies = mapFeatures features ([ ucd_util_0_1_1 ]);
+  };
+  regex_syntax_0_5_6_features = f: updateFeatures f (rec {
+    regex_syntax_0_5_6.default = (f.regex_syntax_0_5_6.default or true);
+    ucd_util_0_1_1.default = true;
+  }) [ ucd_util_0_1_1_features ];
+  semver_0_9_0 = { features?(semver_0_9_0_features {}) }: semver_0_9_0_ {
+    dependencies = mapFeatures features ([ semver_parser_0_7_0 ]
+      ++ (if features.semver_0_9_0.serde or false then [ serde_1_0_55 ] else []));
+    features = mkFeatures (features.semver_0_9_0 or {});
+  };
+  semver_0_9_0_features = f: updateFeatures f (rec {
+    semver_0_9_0.default = (f.semver_0_9_0.default or true);
+    semver_0_9_0.serde =
+      (f.semver_0_9_0.serde or false) ||
+      (f.semver_0_9_0.ci or false) ||
+      (semver_0_9_0.ci or false);
+    semver_parser_0_7_0.default = true;
+    serde_1_0_55.default = true;
+  }) [ semver_parser_0_7_0_features serde_1_0_55_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_55 = { features?(serde_1_0_55_features {}) }: serde_1_0_55_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_1_0_55 or {});
+  };
+  serde_1_0_55_features = f: updateFeatures f (rec {
+    serde_1_0_55.default = (f.serde_1_0_55.default or true);
+    serde_1_0_55.serde_derive =
+      (f.serde_1_0_55.serde_derive or false) ||
+      (f.serde_1_0_55.derive or false) ||
+      (serde_1_0_55.derive or false);
+    serde_1_0_55.std =
+      (f.serde_1_0_55.std or false) ||
+      (f.serde_1_0_55.default or false) ||
+      (serde_1_0_55.default or false);
+    serde_1_0_55.unstable =
+      (f.serde_1_0_55.unstable or false) ||
+      (f.serde_1_0_55.alloc or false) ||
+      (serde_1_0_55.alloc or false);
+  }) [];
+  serde_derive_1_0_55 = { features?(serde_derive_1_0_55_features {}) }: serde_derive_1_0_55_ {
+    dependencies = mapFeatures features ([ proc_macro2_0_3_8 quote_0_5_2 syn_0_13_10 ]);
+    features = mkFeatures (features.serde_derive_1_0_55 or {});
+  };
+  serde_derive_1_0_55_features = f: updateFeatures f (rec {
+    proc_macro2_0_3_8.default = true;
+    quote_0_5_2.default = true;
+    serde_derive_1_0_55.default = (f.serde_derive_1_0_55.default or true);
+    syn_0_13_10.default = true;
+    syn_0_13_10.visit = true;
+  }) [ proc_macro2_0_3_8_features quote_0_5_2_features syn_0_13_10_features ];
+  strsim_0_7_0 = { features?(strsim_0_7_0_features {}) }: strsim_0_7_0_ {};
+  strsim_0_7_0_features = f: updateFeatures f (rec {
+    strsim_0_7_0.default = (f.strsim_0_7_0.default or true);
+  }) [];
+  syn_0_13_10 = { features?(syn_0_13_10_features {}) }: syn_0_13_10_ {
+    dependencies = mapFeatures features ([ proc_macro2_0_3_8 unicode_xid_0_1_0 ]
+      ++ (if features.syn_0_13_10.quote or false then [ quote_0_5_2 ] else []));
+    features = mkFeatures (features.syn_0_13_10 or {});
+  };
+  syn_0_13_10_features = f: updateFeatures f (rec {
+    proc_macro2_0_3_8.default = (f.proc_macro2_0_3_8.default or false);
+    proc_macro2_0_3_8.proc-macro =
+      (f.proc_macro2_0_3_8.proc-macro or false) ||
+      (syn_0_13_10.proc-macro or false) ||
+      (f.syn_0_13_10.proc-macro or false);
+    quote_0_5_2.default = (f.quote_0_5_2.default or false);
+    quote_0_5_2.proc-macro =
+      (f.quote_0_5_2.proc-macro or false) ||
+      (syn_0_13_10.proc-macro or false) ||
+      (f.syn_0_13_10.proc-macro or false);
+    syn_0_13_10.clone-impls =
+      (f.syn_0_13_10.clone-impls or false) ||
+      (f.syn_0_13_10.default or false) ||
+      (syn_0_13_10.default or false);
+    syn_0_13_10.default = (f.syn_0_13_10.default or true);
+    syn_0_13_10.derive =
+      (f.syn_0_13_10.derive or false) ||
+      (f.syn_0_13_10.default or false) ||
+      (syn_0_13_10.default or false);
+    syn_0_13_10.parsing =
+      (f.syn_0_13_10.parsing or false) ||
+      (f.syn_0_13_10.default or false) ||
+      (syn_0_13_10.default or false);
+    syn_0_13_10.printing =
+      (f.syn_0_13_10.printing or false) ||
+      (f.syn_0_13_10.default or false) ||
+      (syn_0_13_10.default or false);
+    syn_0_13_10.proc-macro =
+      (f.syn_0_13_10.proc-macro or false) ||
+      (f.syn_0_13_10.default or false) ||
+      (syn_0_13_10.default or false);
+    syn_0_13_10.quote =
+      (f.syn_0_13_10.quote or false) ||
+      (f.syn_0_13_10.printing or false) ||
+      (syn_0_13_10.printing or false);
+    unicode_xid_0_1_0.default = true;
+  }) [ proc_macro2_0_3_8_features quote_0_5_2_features unicode_xid_0_1_0_features ];
+  tabwriter_1_0_4 = { features?(tabwriter_1_0_4_features {}) }: tabwriter_1_0_4_ {
+    dependencies = mapFeatures features ([ unicode_width_0_1_4 ]);
+    features = mkFeatures (features.tabwriter_1_0_4 or {});
+  };
+  tabwriter_1_0_4_features = f: updateFeatures f (rec {
+    tabwriter_1_0_4.default = (f.tabwriter_1_0_4.default or true);
+    tabwriter_1_0_4.lazy_static =
+      (f.tabwriter_1_0_4.lazy_static or false) ||
+      (f.tabwriter_1_0_4.ansi_formatting or false) ||
+      (tabwriter_1_0_4.ansi_formatting or false);
+    tabwriter_1_0_4.regex =
+      (f.tabwriter_1_0_4.regex or false) ||
+      (f.tabwriter_1_0_4.ansi_formatting or false) ||
+      (tabwriter_1_0_4.ansi_formatting or false);
+    unicode_width_0_1_4.default = true;
+  }) [ unicode_width_0_1_4_features ];
+  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
+    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_40 ]) else [])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_37 redox_termios_0_1_1 ]) else []);
+  };
+  termion_1_5_1_features = f: updateFeatures f (rec {
+    libc_0_2_40.default = true;
+    redox_syscall_0_1_37.default = true;
+    redox_termios_0_1_1.default = true;
+    termion_1_5_1.default = (f.termion_1_5_1.default or true);
+  }) [ libc_0_2_40_features redox_syscall_0_1_37_features redox_termios_0_1_1_features ];
+  textwrap_0_9_0 = { features?(textwrap_0_9_0_features {}) }: textwrap_0_9_0_ {
+    dependencies = mapFeatures features ([ unicode_width_0_1_4 ]);
+  };
+  textwrap_0_9_0_features = f: updateFeatures f (rec {
+    textwrap_0_9_0.default = (f.textwrap_0_9_0.default or true);
+    unicode_width_0_1_4.default = true;
+  }) [ unicode_width_0_1_4_features ];
+  thread_local_0_3_5 = { features?(thread_local_0_3_5_features {}) }: thread_local_0_3_5_ {
+    dependencies = mapFeatures features ([ lazy_static_1_0_0 unreachable_1_0_0 ]);
+  };
+  thread_local_0_3_5_features = f: updateFeatures f (rec {
+    lazy_static_1_0_0.default = true;
+    thread_local_0_3_5.default = (f.thread_local_0_3_5.default or true);
+    unreachable_1_0_0.default = true;
+  }) [ lazy_static_1_0_0_features unreachable_1_0_0_features ];
+  toml_0_4_6 = { features?(toml_0_4_6_features {}) }: toml_0_4_6_ {
+    dependencies = mapFeatures features ([ serde_1_0_55 ]);
+  };
+  toml_0_4_6_features = f: updateFeatures f (rec {
+    serde_1_0_55.default = true;
+    toml_0_4_6.default = (f.toml_0_4_6.default or true);
+  }) [ serde_1_0_55_features ];
+  ucd_util_0_1_1 = { features?(ucd_util_0_1_1_features {}) }: ucd_util_0_1_1_ {};
+  ucd_util_0_1_1_features = f: updateFeatures f (rec {
+    ucd_util_0_1_1.default = (f.ucd_util_0_1_1.default or true);
+  }) [];
+  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_7 = { features?(unicode_normalization_0_1_7_features {}) }: unicode_normalization_0_1_7_ {};
+  unicode_normalization_0_1_7_features = f: updateFeatures f (rec {
+    unicode_normalization_0_1_7.default = (f.unicode_normalization_0_1_7.default or true);
+  }) [];
+  unicode_width_0_1_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_1_0 = { features?(unicode_xid_0_1_0_features {}) }: unicode_xid_0_1_0_ {
+    features = mkFeatures (features.unicode_xid_0_1_0 or {});
+  };
+  unicode_xid_0_1_0_features = f: updateFeatures f (rec {
+    unicode_xid_0_1_0.default = (f.unicode_xid_0_1_0.default or true);
+  }) [];
+  unreachable_1_0_0 = { features?(unreachable_1_0_0_features {}) }: unreachable_1_0_0_ {
+    dependencies = mapFeatures features ([ void_1_0_2 ]);
+  };
+  unreachable_1_0_0_features = f: updateFeatures f (rec {
+    unreachable_1_0_0.default = (f.unreachable_1_0_0.default or true);
+    void_1_0_2.default = (f.void_1_0_2.default or false);
+  }) [ void_1_0_2_features ];
+  url_1_7_0 = { features?(url_1_7_0_features {}) }: url_1_7_0_ {
+    dependencies = mapFeatures features ([ idna_0_1_4 matches_0_1_6 percent_encoding_1_0_1 ]);
+    features = mkFeatures (features.url_1_7_0 or {});
+  };
+  url_1_7_0_features = f: updateFeatures f (rec {
+    idna_0_1_4.default = true;
+    matches_0_1_6.default = true;
+    percent_encoding_1_0_1.default = true;
+    url_1_7_0.default = (f.url_1_7_0.default or true);
+    url_1_7_0.encoding =
+      (f.url_1_7_0.encoding or false) ||
+      (f.url_1_7_0.query_encoding or false) ||
+      (url_1_7_0.query_encoding or false);
+    url_1_7_0.heapsize =
+      (f.url_1_7_0.heapsize or false) ||
+      (f.url_1_7_0.heap_size or false) ||
+      (url_1_7_0.heap_size or false);
+  }) [ idna_0_1_4_features matches_0_1_6_features percent_encoding_1_0_1_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);
+  }) [];
+  vcpkg_0_2_3 = { features?(vcpkg_0_2_3_features {}) }: vcpkg_0_2_3_ {};
+  vcpkg_0_2_3_features = f: updateFeatures f (rec {
+    vcpkg_0_2_3.default = (f.vcpkg_0_2_3.default or true);
+  }) [];
+  vec_map_0_8_1 = { features?(vec_map_0_8_1_features {}) }: vec_map_0_8_1_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_1 or {});
+  };
+  vec_map_0_8_1_features = f: updateFeatures f (rec {
+    vec_map_0_8_1.default = (f.vec_map_0_8_1.default or true);
+    vec_map_0_8_1.serde =
+      (f.vec_map_0_8_1.serde or false) ||
+      (f.vec_map_0_8_1.eders or false) ||
+      (vec_map_0_8_1.eders or false);
+  }) [];
+  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_0_3_4 = { features?(winapi_0_3_4_features {}) }: winapi_0_3_4_ {
+    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([ winapi_i686_pc_windows_gnu_0_4_0 ]) else [])
+      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([ winapi_x86_64_pc_windows_gnu_0_4_0 ]) else []);
+    features = mkFeatures (features.winapi_0_3_4 or {});
+  };
+  winapi_0_3_4_features = f: updateFeatures f (rec {
+    winapi_0_3_4.default = (f.winapi_0_3_4.default or true);
+    winapi_i686_pc_windows_gnu_0_4_0.default = true;
+    winapi_x86_64_pc_windows_gnu_0_4_0.default = true;
+  }) [ winapi_i686_pc_windows_gnu_0_4_0_features winapi_x86_64_pc_windows_gnu_0_4_0_features ];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  winapi_i686_pc_windows_gnu_0_4_0 = { features?(winapi_i686_pc_windows_gnu_0_4_0_features {}) }: winapi_i686_pc_windows_gnu_0_4_0_ {};
+  winapi_i686_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
+    winapi_i686_pc_windows_gnu_0_4_0.default = (f.winapi_i686_pc_windows_gnu_0_4_0.default or true);
+  }) [];
+  winapi_x86_64_pc_windows_gnu_0_4_0 = { features?(winapi_x86_64_pc_windows_gnu_0_4_0_features {}) }: winapi_x86_64_pc_windows_gnu_0_4_0_ {};
+  winapi_x86_64_pc_windows_gnu_0_4_0_features = f: updateFeatures f (rec {
+    winapi_x86_64_pc_windows_gnu_0_4_0.default = (f.winapi_x86_64_pc_windows_gnu_0_4_0.default or true);
+  }) [];
+  winreg_0_4_0 = { features?(winreg_0_4_0_features {}) }: winreg_0_4_0_ {
+    dependencies = mapFeatures features ([ advapi32_sys_0_2_0 kernel32_sys_0_2_2 winapi_0_2_8 ]);
+    features = mkFeatures (features.winreg_0_4_0 or {});
+  };
+  winreg_0_4_0_features = f: updateFeatures f (rec {
+    advapi32_sys_0_2_0.default = true;
+    kernel32_sys_0_2_2.default = true;
+    winapi_0_2_8.default = true;
+    winreg_0_4_0.default = (f.winreg_0_4_0.default or true);
+    winreg_0_4_0.ktmw32-sys =
+      (f.winreg_0_4_0.ktmw32-sys or false) ||
+      (f.winreg_0_4_0.transactions or false) ||
+      (winreg_0_4_0.transactions or false);
+    winreg_0_4_0.rustc-serialize =
+      (f.winreg_0_4_0.rustc-serialize or false) ||
+      (f.winreg_0_4_0.serialization-rustc or false) ||
+      (winreg_0_4_0.serialization-rustc or false);
+    winreg_0_4_0.serialization-rustc =
+      (f.winreg_0_4_0.serialization-rustc or false) ||
+      (f.winreg_0_4_0.default or false) ||
+      (winreg_0_4_0.default or false);
+    winreg_0_4_0.transactions =
+      (f.winreg_0_4_0.transactions or false) ||
+      (f.winreg_0_4_0.default or false) ||
+      (winreg_0_4_0.default or false) ||
+      (f.winreg_0_4_0.serialization-rustc or false) ||
+      (winreg_0_4_0.serialization-rustc or false);
+  }) [ advapi32_sys_0_2_0_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+}
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
new file mode 100644
index 000000000000..50dc748e07ef
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, callPackage, defaultCrateOverrides, fetchFromGitHub, cmake, curl, libssh2, libgit2, openssl, zlib }:
+
+((callPackage ./cargo-update.nix {}).cargo_update {}).override {
+  crateOverrides = defaultCrateOverrides // {
+    cargo-update = attrs: rec {
+      name = "cargo-update-${version}";
+      version = "1.5.2";
+
+      src = fetchFromGitHub {
+        owner = "nabijaczleweli";
+        repo = "cargo-update";
+        rev = "v${version}";
+        sha256 = "1bvrdgcw2akzd78wgvsisvghi8pvdk3szyg9s46qxv4km9sf88s7";
+      };
+
+      nativeBuildInputs = [ cmake ];
+      buildInputs = [ libssh2 libgit2 openssl zlib ]
+        ++ stdenv.lib.optional stdenv.isDarwin curl;
+
+      meta = with stdenv.lib; {
+        description = "A cargo subcommand for checking and applying updates to installed executables";
+        homepage = https://github.com/nabijaczleweli/cargo-update;
+        license = with licenses; [ mit ];
+        maintainers = with maintainers; [ gerschtli ];
+        platforms = platforms.all;
+      };
+    };
+  };
+}