summary refs log tree commit diff
path: root/pkgs/applications/window-managers/way-cooler
diff options
context:
space:
mode:
authorgnidorah <gnidorah@users.noreply.github.com>2017-12-21 20:16:19 +0400
committerzimbatm <zimbatm@zimbatm.com>2017-12-21 16:16:19 +0000
commitb9851a975e8255f8799aed3f4efaa399e19ea733 (patch)
treed9f53a0bcca76261cf0ffccdd03125e096c7c5a3 /pkgs/applications/window-managers/way-cooler
parent9e119825f3513e84a22b97e50343c0bc323d11eb (diff)
downloadnixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar.gz
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar.bz2
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar.lz
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar.xz
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.tar.zst
nixlib-b9851a975e8255f8799aed3f4efaa399e19ea733.zip
Make less known wayland compositors usable (#32285)
* bemenu: init at 2017-02-14

* velox: 2015-11-03 -> 2017-07-04

* orbment, velox: don't expose subprojects

the development of orbment and velox got stuck
their subprojects (bemenu, dmenu-wayland, st-wayland) don't work correctly outside of parent projects
so hide them to not confuse people
swc and wld libraries are unpopular and unlike wlc are not used by anything except velox

* pythonPackages.pydbus: init at 0.6.0

* way-cooler: 0.5.2 -> 0.6.2

* nixos/way-cooler: add module

* dconf module: use for wayland

non-invasive approach for #31293
see discussion at #32210

* sway: embed LD_LIBRARY_PATH for #32755

* way-cooler: switch from buildRustPackage to buildRustCrate #31150
Diffstat (limited to 'pkgs/applications/window-managers/way-cooler')
-rw-r--r--pkgs/applications/window-managers/way-cooler/bar.diff37
-rw-r--r--[-rwxr-xr-x]pkgs/applications/window-managers/way-cooler/default.nix117
-rw-r--r--pkgs/applications/window-managers/way-cooler/way-cooler.nix938
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-bg.nix962
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-grab.nix562
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-lock.nix625
6 files changed, 3225 insertions, 16 deletions
diff --git a/pkgs/applications/window-managers/way-cooler/bar.diff b/pkgs/applications/window-managers/way-cooler/bar.diff
new file mode 100644
index 000000000000..e60ebabe9833
--- /dev/null
+++ b/pkgs/applications/window-managers/way-cooler/bar.diff
@@ -0,0 +1,37 @@
+--- bar.py.txt.orig	2017-12-05 18:10:20.108569182 +0300
++++ ./bar.py.txt	2017-12-10 21:42:10.622781945 +0300
+@@ -5,6 +5,7 @@ import datetime
+ import json
+ from time import sleep
+ from pydbus import SessionBus
++from glob import glob
+ 
+ BUS = SessionBus()
+ LAYOUT = BUS.get(bus_name='org.way-cooler', object_path='/org/way_cooler/Layout')
+@@ -32,7 +33,7 @@ def main():
+             output += func()
+         print(output)
+         sys.stdout.flush()
+-        sleep(.1)
++        sleep(1)
+ 
+ def get_workspaces(layout_json):
+     """Gets the workspace names from the layout json"""
+@@ -49,9 +50,14 @@ def get_time():
+     return datetime.datetime.now().strftime('  %a %b %d  %H:%M  ')
+ 
+ def get_battery():
+-    with open("/sys/class/power_supply/BAT0/capacity", "r") as f:
+-        bat = f.readlines()
+-    return bat[0].strip() + "% Battery"
++    try:
++        [path] = glob("/sys/class/power_supply/BAT?/capacity")
++        with open(path, "r") as f:
++            bat = f.readlines()
++            result = bat[0].strip() + "% Battery"
++    except Exception:
++        result = ""
++    return result
+ 
+ def format_workspaces(layout, workspaces, active_workspace):
+     workspaces = "  " + workspaces.replace(" ", "  ") + "  "
diff --git a/pkgs/applications/window-managers/way-cooler/default.nix b/pkgs/applications/window-managers/way-cooler/default.nix
index 75c9e6ecf8c8..1830ee2c42a5 100755..100644
--- a/pkgs/applications/window-managers/way-cooler/default.nix
+++ b/pkgs/applications/window-managers/way-cooler/default.nix
@@ -1,27 +1,112 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig
-, wayland, xwayland, wlc, dbus_libs, dbus_glib, cairo, libxkbcommon }:
+{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
+, wayland, wlc, dbus_libs, dbus_glib, cairo, libxkbcommon, pam, python3Packages, lemonbar
+}:
 
-with rustPlatform;
+let
+  # refer to
+  # https://github.com/way-cooler/way-cooler.github.io/blob/master/way-cooler-release-i3-default.sh
+  # for version numbers
+  fakegit = writeShellScriptBin "git" ''
+    echo ""
+  '';
+  way-cooler = ((callPackage ./way-cooler.nix {}).way_cooler_0_6_2.override {
+    crateOverrides = defaultCrateOverrides // {
 
-buildRustPackage rec {
-  name = "way-cooler-${version}";
-  version = "0.5.2";
+    way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit ]; };
+    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
+    gobject-sys = attrs: { buildInputs = [ dbus_glib ]; };
+    cairo-rs = attrs: { buildInputs = [ cairo ]; };
+  };}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
 
-  src = fetchFromGitHub {
-    owner = "way-cooler";
-    repo = "way-cooler";
-    rev = "v${version}";
-    sha256 = "10s01x54kwjm2c85v57i6g3pvj5w3wpkjblj036mmd865fla1brb";
-  };
+    postBuild = ''
+      mkdir -p $out/etc
+      cp -r config $out/etc/way-cooler
+    '';
+    # prior v0.7 https://github.com/way-cooler/way-cooler/issues/395
+    postFixup = ''
+      makeWrapper $out/bin/way_cooler $out/bin/way-cooler \
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
+    '';
+  });
+  wc-bg = ((callPackage ./wc-bg.nix {}).way_cooler_bg_0_2_1.override {
+    crateOverrides = defaultCrateOverrides // {
+
+    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
+  };}).overrideAttrs (oldAttrs: rec {
+    postFixup = ''
+      cd $out/bin
+      mv way_cooler_bg way-cooler-bg
+    '';
+  });
+  wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab_0_2_0.override {
+    crateOverrides = defaultCrateOverrides // {
+
+    wc-grab = attrs: {
+      src = fetchFromGitHub {
+        owner = "way-cooler";
+        repo = "way-cooler-grab";
+        rev = "v0.2.0";
+        sha256 = "1pc8rhvzdi6bi8g5w03i0ygbcpks9051c3d3yc290rgmmmmkmnwq";
+      };
+    };
 
-  cargoSha256 = "06qivlybmmc49ksv4232sm1r4hp923xsq4c2ksa4i2azdzc1csdc";
+    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
+  };}).overrideAttrs (oldAttrs: rec {
+    postFixup = ''
+      cd $out/bin
+      mv wc_grab wc-grab
+    '';
+  });
+  wc-lock = ((callPackage ./wc-lock.nix {}).wc_lock_0_1_0.override {
+    crateOverrides = defaultCrateOverrides // { wc-lock = attrs: {
 
-  buildInputs = [ wlc dbus_libs dbus_glib cairo libxkbcommon ];
+    buildInputs = [ pam ];
+  };};}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
 
-  nativeBuildInputs = [ pkgconfig ];
+    postFixup = ''
+      makeWrapper $out/bin/wc_lock $out/bin/wc-lock \
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon ]}"
+    '';
+  });
+  # https://github.com/way-cooler/way-cooler/issues/446
+  wc-bar-bare = stdenv.mkDerivation {
+    name = "wc-bar-bare-2017-12-05";
+
+    src = fetchurl {
+      url = "https://github.com/way-cooler/way-cooler/files/1529701/bar.py.txt";
+      sha256 = "1n1rf1k02i6vimr9n0iksf65phhyy96i5wh5d0rrx7yqki3dh6ka";
+    };
+
+    unpackPhase = "cat $src > bar.py.txt";
+
+    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-350567833
+    patches = [ ./bar.diff ];
+
+    pythonPath = with python3Packages; [ pydbus ];
+    nativeBuildInputs = with python3Packages; [ python wrapPython ];
+
+    installPhase = ''
+      install -Dm755 bar.py.txt $out/bin/bar.py
+      patchShebangs $out/bin/bar.py
+      wrapPythonPrograms
+    '';
+  };
+  wc-bar = writeShellScriptBin "lemonbar" ''
+    SELECTED="#000000"
+    SELECTED_OTHER_WORKSPACE="#555555"
+    BACKGROUND="#4E2878"
+    # https://github.com/way-cooler/way-cooler/issues/446#issuecomment-349471439
+    sleep 5
+    ${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d
+  '';
+in symlinkJoin rec {
+  version = "0.6.2";
+  name = "way-cooler-with-extensions-${version}";
+  paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ];
 
   meta = with stdenv.lib; {
-    broken = true;
     description = "Customizable Wayland compositor (window manager)";
     longDescription = ''
       Way Cooler is a customizable tiling window manager written in Rust
diff --git a/pkgs/applications/window-managers/way-cooler/way-cooler.nix b/pkgs/applications/window-managers/way-cooler/way-cooler.nix
new file mode 100644
index 000000000000..816a1c887089
--- /dev/null
+++ b/pkgs/applications/window-managers/way-cooler/way-cooler.nix
@@ -0,0 +1,938 @@
+# Generated by carnix 0.5.0: carnix -o way-cooler.nix Cargo.lock
+{ lib, buildPlatform, buildRustCrate, fetchgit }:
+let kernel = buildPlatform.parsed.kernel.name;
+    abi = buildPlatform.parsed.abi.name;
+    hasFeature = feature:
+      lib.lists.any
+        (originName: feature.${originName})
+        (builtins.attrNames feature);
+
+    hasDefault = feature:
+      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
+      (defaultFeatures == [])
+      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
+
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if featureName != "" && hasFeature feat.${featureName} then
+        [ featureName ] ++ features
+      else
+        features
+    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
+    aho_corasick_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "aho-corasick";
+      version = "0.5.3";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
+      libName = "aho_corasick";
+      crateBin = [ {  name = "aho-corasick-dot"; } ];
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.4.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0an03kibhfcc0mcxf6a0mvbab0s7cggnvflw8jn0b15i351h828c";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.5.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0bgw1kiy121kikjrwj6zsd7l8n1gg1jirivzkc7zpjsvqa3p0hla";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.6.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.7.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.8.2";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
+      inherit dependencies buildDependencies features;
+    };
+    c_vec_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "c_vec";
+      version = "1.2.1";
+      authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
+      sha256 = "15gm72wx9kd0n51454i58rmpkmig8swghrj2440frxxi9kqg97xd";
+      inherit dependencies buildDependencies features;
+    };
+    cairo_rs_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "cairo-rs";
+      version = "0.1.3";
+      authors = [ "The Gtk-rs Project Developers" ];
+      sha256 = "17wp5wh1jvn2ny8s6fckvbwn0x8ixha6xrqas1bqxd9ygm5g58w1";
+      libName = "cairo";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    cairo_sys_rs_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "cairo-sys-rs";
+      version = "0.3.4";
+      authors = [ "The Gtk-rs Project Developers" ];
+      sha256 = "1fzxshv7vysnnc2nywla6gj3hh00nr6cz1ak0mrxkg65rzrgxkww";
+      libName = "cairo_sys";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    cfg_if_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "cfg-if";
+      version = "0.1.0";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "1grr9v6ijms84cvl1jqv5hp9clw9gn3l3g6kj9a31sdzvidd6v29";
+      inherit dependencies buildDependencies features;
+    };
+    dbus_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dbus";
+      version = "0.4.1";
+      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+      sha256 = "0qw32qj2rys318h780klxlznkwg93dfimbn8mc34m4940l8v00g9";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    dbus_macros_0_0_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dbus-macros";
+      version = "0.0.6";
+      authors = [ "Antoni Boucher <bouanto@zoho.com>" ];
+      sha256 = "1nymk2hzzgyafyr5nfa4r4frx4hml3wlwgzfr9b69vmcvn3d2jyd";
+      inherit dependencies buildDependencies features;
+    };
+    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dlib";
+      version = "0.3.1";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+      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;
+    };
+    dummy_rustwlc_0_6_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dummy-rustwlc";
+      version = "0.6.3";
+      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Preston Carpenter <APragmaticPlace@gmail.com>" ];
+      sha256 = "09pcl2r3ifajgq794j4jqaq0n4kyb2z4aaavs1fr78w4fhrzqqmj";
+      inherit dependencies buildDependencies features;
+    };
+    env_logger_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "env_logger";
+      version = "0.3.5";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1mvxiaaqsyjliv1mm1qaagjqiccw11mdyi3n9h9rf8y6wj15zycw";
+      inherit dependencies buildDependencies features;
+    };
+    fixedbitset_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "fixedbitset";
+      version = "0.1.6";
+      authors = [ "bluss" ];
+      sha256 = "1jcq0i41l888153v4jyb6q2kc9sjs004md5byfz5mprlmhdawha3";
+      inherit dependencies buildDependencies features;
+    };
+    gcc_0_3_46_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gcc";
+      version = "0.3.46";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "17rbdxa2yapjymbdq7b930sc1ipiwhx4xz7hh48q4bz3d28zg6qb";
+      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;
+    };
+    glib_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "glib";
+      version = "0.1.3";
+      authors = [ "The Gtk-rs Project Developers" ];
+      sha256 = "1j2zwsnxlfdrj8wdi8yp3zl5l9nydsifgxspnwl6ijq3ywnjhcpa";
+      inherit dependencies buildDependencies features;
+    };
+    glib_sys_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "glib-sys";
+      version = "0.3.4";
+      authors = [ "The Gtk-rs Project Developers" ];
+      sha256 = "06ymp4ljrjnb7cly0bixy3svxgnwpbx79499889dqakpfs7566rc";
+      libName = "glib_sys";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    gobject_sys_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gobject-sys";
+      version = "0.3.4";
+      authors = [ "The Gtk-rs Project Developers" ];
+      sha256 = "0rrk3c94myhspyl3iq7k4kcm72zxl8bk3r7kvqv2f9lf6y820giw";
+      libName = "gobject_sys";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    hlua_0_1_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "hlua";
+      version = "0.1.9";
+      authors = [ "pierre.krieger1708@gmail.com" ];
+      sha256 = "1vn7w1rcaj9g04yx5jak09a3wpw7g3yx2fgn8ibx36z07vpf57fs";
+      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;
+    };
+    json_macro_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "json_macro";
+      version = "0.1.1";
+      authors = [ "Denis Kolodin <deniskolodin@gmail.com>" ];
+      sha256 = "0hl2934shpwqbszrq035valbdz9y8p7dza183brygy5dbvivcyqy";
+      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_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;
+    };
+    libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libc";
+      version = "0.2.23";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
+      inherit dependencies buildDependencies features;
+    };
+    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libloading";
+      version = "0.3.4";
+      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    log_0_3_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "log";
+      version = "0.3.7";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1qxrwkhpfzhgcmfnw4bl9yy7wwr92wwbin3dp6izcfy58lr369v4";
+      inherit dependencies buildDependencies features;
+    };
+    lua52_sys_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "lua52-sys";
+      version = "0.0.4";
+      authors = [ "Pierre Krieger <pierre.krieger1708@gmail.com>" ];
+      sha256 = "115i7k2dnnf4c1b2mxwf5mvqv2wsqmmxm3krphf5wjky20gi2ciz";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    memchr_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "memchr";
+      version = "0.1.11";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+      sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
+      inherit dependencies buildDependencies features;
+    };
+    nix_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "nix";
+      version = "0.6.0";
+      authors = [ "Carl Lerche <me@carllerche.com>" ];
+      sha256 = "1bgh75y897isnxbw3vd79vns9h6q4d59p1cgv9c4laysyw6fkqwf";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    nix_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "nix";
+      version = "0.8.1";
+      authors = [ "The nix-rust Project Developers" ];
+      sha256 = "0iqmn55ajwcq91pl8xviwdvc2zrkaccajsp0nc9lbq9ydli0vhf9";
+      inherit dependencies buildDependencies features;
+    };
+    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-traits";
+      version = "0.1.37";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+      inherit dependencies buildDependencies features;
+    };
+    ordermap_0_2_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "ordermap";
+      version = "0.2.10";
+      authors = [ "bluss" ];
+      sha256 = "1pj6d56nwi0wa7cnwl80dwz13vws9nf5s1b7k7i2dav35gkpwy1z";
+      inherit dependencies buildDependencies features;
+    };
+    petgraph_0_4_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "petgraph";
+      version = "0.4.5";
+      authors = [ "bluss" "mitchmindtree" ];
+      sha256 = "0482id2flwnxkhj1443g384cvk7f9lva9n6wj2wsag9145zhpjzg";
+      inherit dependencies buildDependencies features;
+    };
+    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+      libPath = "src/lib.rs";
+      inherit dependencies buildDependencies features;
+    };
+    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_codegen";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+      inherit dependencies buildDependencies features;
+    };
+    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_generator";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+      inherit dependencies buildDependencies features;
+    };
+    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_shared";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+      libPath = "src/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;
+    };
+    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;
+    };
+    regex_0_1_80_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "regex";
+      version = "0.1.80";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
+      inherit dependencies buildDependencies features;
+    };
+    regex_syntax_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "regex-syntax";
+      version = "0.3.9";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
+      inherit dependencies buildDependencies features;
+    };
+    rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rustc-serialize";
+      version = "0.3.24";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+      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;
+    };
+    rustwlc_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rustwlc";
+      version = "0.6.2";
+      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+      sha256 = "16k8wzyvn1syxcjimy2vh7hc6jlbw31v03ysrzrqgfwncmwx5b2d";
+      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;
+    };
+    serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde";
+      version = "0.9.15";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+      inherit dependencies buildDependencies features;
+    };
+    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde_json";
+      version = "0.9.10";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+      inherit dependencies buildDependencies features;
+    };
+    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "siphasher";
+      version = "0.2.2";
+      authors = [ "Frank Denis <github@pureftpd.org>" ];
+      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+      inherit dependencies buildDependencies features;
+    };
+    target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "target_build_utils";
+      version = "0.3.1";
+      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+      sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    thread_id_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "thread-id";
+      version = "2.0.0";
+      authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
+      sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
+      inherit dependencies buildDependencies features;
+    };
+    thread_local_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "thread_local";
+      version = "0.2.7";
+      authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+      sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
+      inherit dependencies buildDependencies features;
+    };
+    utf8_ranges_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "utf8-ranges";
+      version = "0.1.3";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
+      inherit dependencies buildDependencies features;
+    };
+    uuid_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "uuid";
+      version = "0.3.1";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "16ak1c84dfkd8h33cvkxrkvc30k7b0bhrnza8ni2c0jsx85fpbip";
+      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;
+    };
+    way_cooler_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "way-cooler";
+      version = "0.6.2";
+      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+      sha256 = "0ygzgjjhf54fcpk6sbi0acbyki4ff1v7wyckfk4lhv4ycpg9v3cj";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_scanner_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-scanner";
+      version = "0.9.4";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "1kdhpm1gkn99sj8vxhyr1x6nxnhm0cjvypajycvn2fa9sdpgw8yc";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_server_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-server";
+      version = "0.9.4";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "1aqidrac0z7ny65yhfv9inl3xmdmph21yhmyd3k0nafyghgg9pxw";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-sys";
+      version = "0.6.0";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_sys_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-sys";
+      version = "0.9.4";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "0vqrc46ib5hgbq6djghapairbjskdncas09k680f7pwylbi7yzcj";
+      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;
+    };
+    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "xml-rs";
+      version = "0.3.6";
+      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
+      libPath = "src/lib.rs";
+      libName = "xml";
+      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+      inherit dependencies buildDependencies features;
+    };
+
+in
+rec {
+  aho_corasick_0_5_3 = aho_corasick_0_5_3_ rec {
+    dependencies = [ memchr_0_1_11 ];
+  };
+  memchr_0_1_11_features."default".from_aho_corasick_0_5_3__default = true;
+  bitflags_0_4_0 = bitflags_0_4_0_ rec {
+    features = mkFeatures bitflags_0_4_0_features;
+  };
+  bitflags_0_4_0_features."".self = true;
+  bitflags_0_5_0 = bitflags_0_5_0_ rec {
+    features = mkFeatures bitflags_0_5_0_features;
+  };
+  bitflags_0_5_0_features."".self = true;
+  bitflags_0_6_0 = bitflags_0_6_0_ rec {};
+  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
+  bitflags_0_8_2 = bitflags_0_8_2_ rec {
+    features = mkFeatures bitflags_0_8_2_features;
+  };
+  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
+  c_vec_1_2_1 = c_vec_1_2_1_ rec {};
+  cairo_rs_0_1_3 = cairo_rs_0_1_3_ rec {
+    dependencies = [ c_vec_1_2_1 cairo_sys_rs_0_3_4 glib_0_1_3 libc_0_2_23 ]
+      ++ (if lib.lists.any (x: x == "glib") features then [glib_0_1_3] else [])
+      ++ (if kernel == "windows" then [ winapi_0_2_8 ] else []);
+    buildDependencies = [];
+    features = mkFeatures cairo_rs_0_1_3_features;
+  };
+  cairo_rs_0_1_3_features."".self = true;
+  cairo_rs_0_1_3_features."glib".self_default = hasDefault cairo_rs_0_1_3_features;
+  cairo_rs_0_1_3_features."gtk-rs-lgpl-docs".self_embed-lgpl-docs = hasFeature (cairo_rs_0_1_3_features."embed-lgpl-docs" or {});
+  cairo_rs_0_1_3_features."gtk-rs-lgpl-docs".self_purge-lgpl-docs = hasFeature (cairo_rs_0_1_3_features."purge-lgpl-docs" or {});
+  c_vec_1_2_1_features."default".from_cairo_rs_0_1_3__default = true;
+  cairo_sys_rs_0_3_4_features."png".from_cairo_rs_0_1_3__png = hasFeature (cairo_rs_0_1_3_features."png" or {});
+  cairo_sys_rs_0_3_4_features."v1_12".from_cairo_rs_0_1_3__v1_12 = hasFeature (cairo_rs_0_1_3_features."v1_12" or {});
+  cairo_sys_rs_0_3_4_features."xcb".from_cairo_rs_0_1_3__xcb = hasFeature (cairo_rs_0_1_3_features."xcb" or {});
+  cairo_sys_rs_0_3_4_features."default".from_cairo_rs_0_1_3__default = true;
+  glib_0_1_3_features."default".from_cairo_rs_0_1_3__default = true;
+  libc_0_2_23_features."default".from_cairo_rs_0_1_3__default = true;
+  winapi_0_2_8_features."default".from_cairo_rs_0_1_3__default = true;
+  cairo_sys_rs_0_3_4 = cairo_sys_rs_0_3_4_ rec {
+    dependencies = [ libc_0_2_23 ]
+      ++ (if kernel == "windows" then [ winapi_0_2_8 ] else []);
+    buildDependencies = [ pkg_config_0_3_9 ];
+    features = mkFeatures cairo_sys_rs_0_3_4_features;
+  };
+  cairo_sys_rs_0_3_4_features."v1_12".self_v1_14 = hasFeature (cairo_sys_rs_0_3_4_features."v1_14" or {});
+  cairo_sys_rs_0_3_4_features."x11".self_xlib = hasFeature (cairo_sys_rs_0_3_4_features."xlib" or {});
+  libc_0_2_23_features."default".from_cairo_sys_rs_0_3_4__default = true;
+  x11_0_0_0_features."xlib".from_cairo_sys_rs_0_3_4 = true;
+  x11_0_0_0_features."default".from_cairo_sys_rs_0_3_4__default = true;
+  winapi_0_2_8_features."default".from_cairo_sys_rs_0_3_4__default = true;
+  cfg_if_0_1_0 = cfg_if_0_1_0_ rec {};
+  dbus_0_4_1 = dbus_0_4_1_ rec {
+    dependencies = [ libc_0_2_23 ];
+    buildDependencies = [ pkg_config_0_3_9 ];
+  };
+  libc_0_2_23_features."default".from_dbus_0_4_1__default = true;
+  dbus_macros_0_0_6 = dbus_macros_0_0_6_ rec {
+    dependencies = [ dbus_0_4_1 ];
+  };
+  dbus_0_4_1_features."default".from_dbus_macros_0_0_6__default = true;
+  dlib_0_3_1 = dlib_0_3_1_ rec {
+    dependencies = [ libloading_0_3_4 ];
+    features = mkFeatures dlib_0_3_1_features;
+  };
+  dlib_0_3_1_features."".self = true;
+  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
+  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
+  dummy_rustwlc_0_6_3 = dummy_rustwlc_0_6_3_ rec {
+    dependencies = [ bitflags_0_6_0 libc_0_2_23 wayland_sys_0_9_4 ];
+  };
+  bitflags_0_6_0_features."default".from_dummy_rustwlc_0_6_3__default = true;
+  libc_0_2_23_features."default".from_dummy_rustwlc_0_6_3__default = true;
+  wayland_sys_0_9_4_features."server".from_dummy_rustwlc_0_6_3 = true;
+  wayland_sys_0_9_4_features."dlopen".from_dummy_rustwlc_0_6_3 = true;
+  wayland_sys_0_9_4_features."default".from_dummy_rustwlc_0_6_3__default = true;
+  env_logger_0_3_5 = env_logger_0_3_5_ rec {
+    dependencies = [ log_0_3_7 regex_0_1_80 ]
+      ++ (if lib.lists.any (x: x == "regex") features then [regex_0_1_80] else []);
+    features = mkFeatures env_logger_0_3_5_features;
+  };
+  env_logger_0_3_5_features."".self = true;
+  env_logger_0_3_5_features."regex".self_default = hasDefault env_logger_0_3_5_features;
+  log_0_3_7_features."default".from_env_logger_0_3_5__default = true;
+  regex_0_1_80_features."default".from_env_logger_0_3_5__default = true;
+  fixedbitset_0_1_6 = fixedbitset_0_1_6_ rec {};
+  gcc_0_3_46 = gcc_0_3_46_ rec {
+    dependencies = [];
+    features = mkFeatures gcc_0_3_46_features;
+  };
+  gcc_0_3_46_features."rayon".self_parallel = hasFeature (gcc_0_3_46_features."parallel" or {});
+  rayon_0_0_0_features."default".from_gcc_0_3_46__default = true;
+  getopts_0_2_14 = getopts_0_2_14_ rec {};
+  glib_0_1_3 = glib_0_1_3_ rec {
+    dependencies = [ bitflags_0_5_0 glib_sys_0_3_4 gobject_sys_0_3_4 lazy_static_0_2_8 libc_0_2_23 ];
+    features = mkFeatures glib_0_1_3_features;
+  };
+  glib_0_1_3_features."v2_38".self_v2_40 = hasFeature (glib_0_1_3_features."v2_40" or {});
+  glib_0_1_3_features."v2_40".self_v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
+  glib_0_1_3_features."v2_44".self_v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
+  glib_0_1_3_features."v2_46".self_v2_48 = hasFeature (glib_0_1_3_features."v2_48" or {});
+  glib_0_1_3_features."v2_48".self_v2_50 = hasFeature (glib_0_1_3_features."v2_50" or {});
+  bitflags_0_5_0_features."default".from_glib_0_1_3__default = true;
+  glib_sys_0_3_4_features."v2_38".from_glib_0_1_3__v2_38 = hasFeature (glib_0_1_3_features."v2_38" or {});
+  glib_sys_0_3_4_features."v2_40".from_glib_0_1_3__v2_40 = hasFeature (glib_0_1_3_features."v2_40" or {});
+  glib_sys_0_3_4_features."v2_44".from_glib_0_1_3__v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
+  glib_sys_0_3_4_features."v2_46".from_glib_0_1_3__v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
+  glib_sys_0_3_4_features."v2_48".from_glib_0_1_3__v2_48 = hasFeature (glib_0_1_3_features."v2_48" or {});
+  glib_sys_0_3_4_features."v2_50".from_glib_0_1_3__v2_50 = hasFeature (glib_0_1_3_features."v2_50" or {});
+  glib_sys_0_3_4_features."default".from_glib_0_1_3__default = true;
+  gobject_sys_0_3_4_features."v2_38".from_glib_0_1_3__v2_38 = hasFeature (glib_0_1_3_features."v2_38" or {});
+  gobject_sys_0_3_4_features."v2_44".from_glib_0_1_3__v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
+  gobject_sys_0_3_4_features."v2_46".from_glib_0_1_3__v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
+  gobject_sys_0_3_4_features."default".from_glib_0_1_3__default = true;
+  lazy_static_0_2_8_features."default".from_glib_0_1_3__default = true;
+  libc_0_2_23_features."default".from_glib_0_1_3__default = true;
+  glib_sys_0_3_4 = glib_sys_0_3_4_ rec {
+    dependencies = [ bitflags_0_8_2 libc_0_2_23 ];
+    buildDependencies = [ pkg_config_0_3_9 ];
+    features = mkFeatures glib_sys_0_3_4_features;
+  };
+  glib_sys_0_3_4_features."v2_34".self_v2_36 = hasFeature (glib_sys_0_3_4_features."v2_36" or {});
+  glib_sys_0_3_4_features."v2_36".self_v2_38 = hasFeature (glib_sys_0_3_4_features."v2_38" or {});
+  glib_sys_0_3_4_features."v2_38".self_v2_40 = hasFeature (glib_sys_0_3_4_features."v2_40" or {});
+  glib_sys_0_3_4_features."v2_40".self_v2_44 = hasFeature (glib_sys_0_3_4_features."v2_44" or {});
+  glib_sys_0_3_4_features."v2_44".self_v2_46 = hasFeature (glib_sys_0_3_4_features."v2_46" or {});
+  glib_sys_0_3_4_features."v2_46".self_v2_48 = hasFeature (glib_sys_0_3_4_features."v2_48" or {});
+  glib_sys_0_3_4_features."v2_48".self_v2_50 = hasFeature (glib_sys_0_3_4_features."v2_50" or {});
+  bitflags_0_8_2_features."default".from_glib_sys_0_3_4__default = true;
+  libc_0_2_23_features."default".from_glib_sys_0_3_4__default = true;
+  gobject_sys_0_3_4 = gobject_sys_0_3_4_ rec {
+    dependencies = [ bitflags_0_8_2 glib_sys_0_3_4 libc_0_2_23 ];
+    buildDependencies = [ pkg_config_0_3_9 ];
+    features = mkFeatures gobject_sys_0_3_4_features;
+  };
+  gobject_sys_0_3_4_features."v2_34".self_v2_36 = hasFeature (gobject_sys_0_3_4_features."v2_36" or {});
+  gobject_sys_0_3_4_features."v2_36".self_v2_38 = hasFeature (gobject_sys_0_3_4_features."v2_38" or {});
+  gobject_sys_0_3_4_features."v2_38".self_v2_42 = hasFeature (gobject_sys_0_3_4_features."v2_42" or {});
+  gobject_sys_0_3_4_features."v2_42".self_v2_44 = hasFeature (gobject_sys_0_3_4_features."v2_44" or {});
+  gobject_sys_0_3_4_features."v2_44".self_v2_46 = hasFeature (gobject_sys_0_3_4_features."v2_46" or {});
+  bitflags_0_8_2_features."default".from_gobject_sys_0_3_4__default = true;
+  glib_sys_0_3_4_features."default".from_gobject_sys_0_3_4__default = true;
+  libc_0_2_23_features."default".from_gobject_sys_0_3_4__default = true;
+  hlua_0_1_9 = hlua_0_1_9_ rec {
+    dependencies = [ libc_0_2_23 lua52_sys_0_0_4 ];
+  };
+  libc_0_2_23_features."default".from_hlua_0_1_9__default = true;
+  lua52_sys_0_0_4_features."default".from_hlua_0_1_9__default = true;
+  itoa_0_3_1 = itoa_0_3_1_ rec {};
+  json_macro_0_1_1 = json_macro_0_1_1_ rec {
+    dependencies = [ rustc_serialize_0_3_24 ];
+  };
+  rustc_serialize_0_3_24_features."default".from_json_macro_0_1_1__default = true;
+  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
+    dependencies = [ winapi_0_2_8 ];
+    buildDependencies = [ winapi_build_0_1_1 ];
+  };
+  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
+  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
+    dependencies = [];
+    features = mkFeatures lazy_static_0_2_8_features;
+  };
+  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
+  libc_0_2_23 = libc_0_2_23_ rec {
+    features = mkFeatures libc_0_2_23_features;
+  };
+  libc_0_2_23_features."use_std".self_default = hasDefault libc_0_2_23_features;
+  libloading_0_3_4 = libloading_0_3_4_ rec {
+    dependencies = [ lazy_static_0_2_8 ]
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    buildDependencies = [ target_build_utils_0_3_1 ];
+  };
+  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
+  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  log_0_3_7 = log_0_3_7_ rec {
+    features = mkFeatures log_0_3_7_features;
+  };
+  log_0_3_7_features."use_std".self_default = hasDefault log_0_3_7_features;
+  lua52_sys_0_0_4 = lua52_sys_0_0_4_ rec {
+    dependencies = [ libc_0_2_23 ];
+    buildDependencies = [ gcc_0_3_46 pkg_config_0_3_9 ];
+  };
+  libc_0_2_23_features."default".from_lua52_sys_0_0_4__default = true;
+  memchr_0_1_11 = memchr_0_1_11_ rec {
+    dependencies = [ libc_0_2_23 ];
+  };
+  libc_0_2_23_features."default".from_memchr_0_1_11__default = true;
+  nix_0_6_0 = nix_0_6_0_ rec {
+    dependencies = [ bitflags_0_4_0 cfg_if_0_1_0 libc_0_2_23 void_1_0_2 ];
+    buildDependencies = [ rustc_version_0_1_7 semver_0_1_20 ];
+    features = mkFeatures nix_0_6_0_features;
+  };
+  nix_0_6_0_features."".self = true;
+  bitflags_0_4_0_features."default".from_nix_0_6_0__default = true;
+  cfg_if_0_1_0_features."default".from_nix_0_6_0__default = true;
+  libc_0_2_23_features."default".from_nix_0_6_0__default = true;
+  void_1_0_2_features."default".from_nix_0_6_0__default = true;
+  nix_0_8_1 = nix_0_8_1_ rec {
+    dependencies = [ bitflags_0_7_0 cfg_if_0_1_0 libc_0_2_23 void_1_0_2 ];
+    features = mkFeatures nix_0_8_1_features;
+  };
+  nix_0_8_1_features."".self = true;
+  bitflags_0_7_0_features."default".from_nix_0_8_1__default = true;
+  cfg_if_0_1_0_features."default".from_nix_0_8_1__default = true;
+  libc_0_2_23_features."default".from_nix_0_8_1__default = true;
+  void_1_0_2_features."default".from_nix_0_8_1__default = true;
+  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
+  ordermap_0_2_10 = ordermap_0_2_10_ rec {
+    features = mkFeatures ordermap_0_2_10_features;
+  };
+  ordermap_0_2_10_features."".self = true;
+  petgraph_0_4_5 = petgraph_0_4_5_ rec {
+    dependencies = [ fixedbitset_0_1_6 ordermap_0_2_10 ]
+      ++ (if lib.lists.any (x: x == "ordermap") features then [ordermap_0_2_10] else []);
+    features = mkFeatures petgraph_0_4_5_features;
+  };
+  petgraph_0_4_5_features."".self = true;
+  petgraph_0_4_5_features."unstable".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
+  petgraph_0_4_5_features."quickcheck".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
+  petgraph_0_4_5_features."stable_graph".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
+  petgraph_0_4_5_features."graphmap".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
+  petgraph_0_4_5_features."graphmap".self_default = hasDefault petgraph_0_4_5_features;
+  petgraph_0_4_5_features."stable_graph".self_default = hasDefault petgraph_0_4_5_features;
+  petgraph_0_4_5_features."ordermap".self_graphmap = hasFeature (petgraph_0_4_5_features."graphmap" or {});
+  petgraph_0_4_5_features."generate".self_unstable = hasFeature (petgraph_0_4_5_features."unstable" or {});
+  fixedbitset_0_1_6_features."default".from_petgraph_0_4_5__default = true;
+  ordermap_0_2_10_features."default".from_petgraph_0_4_5__default = true;
+  quickcheck_0_0_0_features."default".from_petgraph_0_4_5__default = false;
+  phf_0_7_21 = phf_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 ];
+    features = mkFeatures phf_0_7_21_features;
+  };
+  phf_0_7_21_features."".self = true;
+  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
+  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
+  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
+  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
+    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
+  };
+  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
+  };
+  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
+  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
+  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
+    dependencies = [ siphasher_0_2_2 ];
+    features = mkFeatures phf_shared_0_7_21_features;
+  };
+  phf_shared_0_7_21_features."".self = true;
+  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
+  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
+  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
+  rand_0_3_15 = rand_0_3_15_ rec {
+    dependencies = [ libc_0_2_23 ];
+  };
+  libc_0_2_23_features."default".from_rand_0_3_15__default = true;
+  regex_0_1_80 = regex_0_1_80_ rec {
+    dependencies = [ aho_corasick_0_5_3 memchr_0_1_11 regex_syntax_0_3_9 thread_local_0_2_7 utf8_ranges_0_1_3 ];
+    features = mkFeatures regex_0_1_80_features;
+  };
+  regex_0_1_80_features."simd".self_simd-accel = hasFeature (regex_0_1_80_features."simd-accel" or {});
+  aho_corasick_0_5_3_features."default".from_regex_0_1_80__default = true;
+  memchr_0_1_11_features."default".from_regex_0_1_80__default = true;
+  regex_syntax_0_3_9_features."default".from_regex_0_1_80__default = true;
+  simd_0_0_0_features."default".from_regex_0_1_80__default = true;
+  thread_local_0_2_7_features."default".from_regex_0_1_80__default = true;
+  utf8_ranges_0_1_3_features."default".from_regex_0_1_80__default = true;
+  regex_syntax_0_3_9 = regex_syntax_0_3_9_ rec {};
+  rustc_serialize_0_3_24 = rustc_serialize_0_3_24_ rec {};
+  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
+    dependencies = [ semver_0_1_20 ];
+  };
+  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
+  rustwlc_0_6_2 = rustwlc_0_6_2_ rec {
+    dependencies = [ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_6_0 ]
+      ++ (if lib.lists.any (x: x == "wayland-sys") features then [wayland_sys_0_6_0] else []);
+    features = mkFeatures rustwlc_0_6_2_features;
+  };
+  rustwlc_0_6_2_features."".self = true;
+  rustwlc_0_6_2_features."wayland-sys".self_wlc-wayland = hasFeature (rustwlc_0_6_2_features."wlc-wayland" or {});
+  bitflags_0_7_0_features."default".from_rustwlc_0_6_2__default = true;
+  libc_0_2_23_features."default".from_rustwlc_0_6_2__default = true;
+  wayland_sys_0_6_0_features."server".from_rustwlc_0_6_2 = true;
+  wayland_sys_0_6_0_features."default".from_rustwlc_0_6_2__default = true;
+  semver_0_1_20 = semver_0_1_20_ rec {};
+  serde_0_9_15 = serde_0_9_15_ rec {
+    dependencies = [];
+    features = mkFeatures serde_0_9_15_features;
+  };
+  serde_0_9_15_features."unstable".self_alloc = hasFeature (serde_0_9_15_features."alloc" or {});
+  serde_0_9_15_features."alloc".self_collections = hasFeature (serde_0_9_15_features."collections" or {});
+  serde_0_9_15_features."std".self_default = hasDefault serde_0_9_15_features;
+  serde_0_9_15_features."serde_derive".self_derive = hasFeature (serde_0_9_15_features."derive" or {});
+  serde_0_9_15_features."serde_derive".self_playground = hasFeature (serde_0_9_15_features."playground" or {});
+  serde_0_9_15_features."unstable".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
+  serde_0_9_15_features."std".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
+  serde_derive_0_0_0_features."default".from_serde_0_9_15__default = true;
+  serde_json_0_9_10 = serde_json_0_9_10_ rec {
+    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ];
+    features = mkFeatures serde_json_0_9_10_features;
+  };
+  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
+  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
+  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
+  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
+  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
+  serde_0_9_15_features."default".from_serde_json_0_9_10__default = true;
+  siphasher_0_2_2 = siphasher_0_2_2_ rec {
+    dependencies = [];
+  };
+  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
+  target_build_utils_0_3_1 = target_build_utils_0_3_1_ rec {
+    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
+      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
+    buildDependencies = [ phf_codegen_0_7_21 ];
+    features = mkFeatures target_build_utils_0_3_1_features;
+  };
+  target_build_utils_0_3_1_features."".self = true;
+  target_build_utils_0_3_1_features."serde_json".self_default = hasDefault target_build_utils_0_3_1_features;
+  phf_0_7_21_features."default".from_target_build_utils_0_3_1__default = true;
+  serde_json_0_9_10_features."default".from_target_build_utils_0_3_1__default = true;
+  thread_id_2_0_0 = thread_id_2_0_0_ rec {
+    dependencies = [ kernel32_sys_0_2_2 libc_0_2_23 ];
+  };
+  kernel32_sys_0_2_2_features."default".from_thread_id_2_0_0__default = true;
+  libc_0_2_23_features."default".from_thread_id_2_0_0__default = true;
+  thread_local_0_2_7 = thread_local_0_2_7_ rec {
+    dependencies = [ thread_id_2_0_0 ];
+  };
+  thread_id_2_0_0_features."default".from_thread_local_0_2_7__default = true;
+  utf8_ranges_0_1_3 = utf8_ranges_0_1_3_ rec {};
+  uuid_0_3_1 = uuid_0_3_1_ rec {
+    dependencies = [ rand_0_3_15 rustc_serialize_0_3_24 ]
+      ++ (if lib.lists.any (x: x == "rand") features then [rand_0_3_15] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_24] else []);
+    features = mkFeatures uuid_0_3_1_features;
+  };
+  uuid_0_3_1_features."".self = true;
+  uuid_0_3_1_features."rand".self_v4 = hasFeature (uuid_0_3_1_features."v4" or {});
+  uuid_0_3_1_features."sha1".self_v5 = hasFeature (uuid_0_3_1_features."v5" or {});
+  rand_0_3_15_features."default".from_uuid_0_3_1__default = true;
+  rustc_serialize_0_3_24_features."default".from_uuid_0_3_1__default = true;
+  serde_0_0_0_features."default".from_uuid_0_3_1__default = true;
+  sha1_0_0_0_features."default".from_uuid_0_3_1__default = true;
+  void_1_0_2 = void_1_0_2_ rec {
+    features = mkFeatures void_1_0_2_features;
+  };
+  void_1_0_2_features."std".self_default = hasDefault void_1_0_2_features;
+  way_cooler_0_6_2 = way_cooler_0_6_2_ rec {
+    dependencies = [ bitflags_0_7_0 cairo_rs_0_1_3 dbus_0_4_1 dbus_macros_0_0_6 env_logger_0_3_5 getopts_0_2_14 hlua_0_1_9 json_macro_0_1_1 lazy_static_0_2_8 log_0_3_7 nix_0_6_0 petgraph_0_4_5 rustc_serialize_0_3_24 rustwlc_0_6_2 uuid_0_3_1 wayland_server_0_9_4 wayland_sys_0_9_4 ];
+    buildDependencies = [ wayland_scanner_0_9_4 ];
+    features = mkFeatures way_cooler_0_6_2_features;
+  };
+  way_cooler_0_6_2_features."".self = true;
+  bitflags_0_7_0_features."default".from_way_cooler_0_6_2__default = true;
+  cairo_rs_0_1_3_features."default".from_way_cooler_0_6_2__default = true;
+  dbus_0_4_1_features."default".from_way_cooler_0_6_2__default = true;
+  dbus_macros_0_0_6_features."default".from_way_cooler_0_6_2__default = true;
+  env_logger_0_3_5_features."default".from_way_cooler_0_6_2__default = true;
+  getopts_0_2_14_features."default".from_way_cooler_0_6_2__default = true;
+  hlua_0_1_9_features."default".from_way_cooler_0_6_2__default = true;
+  json_macro_0_1_1_features."default".from_way_cooler_0_6_2__default = true;
+  lazy_static_0_2_8_features."default".from_way_cooler_0_6_2__default = true;
+  log_0_3_7_features."default".from_way_cooler_0_6_2__default = true;
+  nix_0_6_0_features."default".from_way_cooler_0_6_2__default = true;
+  petgraph_0_4_5_features."default".from_way_cooler_0_6_2__default = true;
+  rustc_serialize_0_3_24_features."default".from_way_cooler_0_6_2__default = true;
+  rustwlc_0_6_2_features."wlc-wayland".from_way_cooler_0_6_2 = true;
+  rustwlc_0_6_2_features."static-wlc".from_way_cooler_0_6_2__static-wlc = hasFeature (way_cooler_0_6_2_features."static-wlc" or {});
+  rustwlc_0_6_2_features."default".from_way_cooler_0_6_2__default = true;
+  uuid_0_3_1_features."v4".from_way_cooler_0_6_2 = true;
+  uuid_0_3_1_features."rustc-serialize".from_way_cooler_0_6_2 = true;
+  uuid_0_3_1_features."default".from_way_cooler_0_6_2__default = true;
+  wayland_server_0_9_4_features."default".from_way_cooler_0_6_2__default = true;
+  wayland_sys_0_9_4_features."client".from_way_cooler_0_6_2 = true;
+  wayland_sys_0_9_4_features."dlopen".from_way_cooler_0_6_2 = true;
+  wayland_sys_0_9_4_features."default".from_way_cooler_0_6_2__default = true;
+  wayland_scanner_0_9_4 = wayland_scanner_0_9_4_ rec {
+    dependencies = [ xml_rs_0_3_6 ];
+  };
+  xml_rs_0_3_6_features."default".from_wayland_scanner_0_9_4__default = true;
+  wayland_server_0_9_4 = wayland_server_0_9_4_ rec {
+    dependencies = [ bitflags_0_7_0 libc_0_2_23 nix_0_8_1 wayland_sys_0_9_4 ];
+    buildDependencies = [ wayland_scanner_0_9_4 ];
+    features = mkFeatures wayland_server_0_9_4_features;
+  };
+  wayland_server_0_9_4_features."".self = true;
+  bitflags_0_7_0_features."default".from_wayland_server_0_9_4__default = true;
+  libc_0_2_23_features."default".from_wayland_server_0_9_4__default = true;
+  nix_0_8_1_features."default".from_wayland_server_0_9_4__default = true;
+  wayland_sys_0_9_4_features."server".from_wayland_server_0_9_4 = true;
+  wayland_sys_0_9_4_features."dlopen".from_wayland_server_0_9_4__dlopen = hasFeature (wayland_server_0_9_4_features."dlopen" or {});
+  wayland_sys_0_9_4_features."default".from_wayland_server_0_9_4__default = true;
+  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
+    dependencies = [ dlib_0_3_1 libc_0_2_23 ]
+      ++ (if lib.lists.any (x: x == "libc") features then [libc_0_2_23] else []);
+    features = mkFeatures wayland_sys_0_6_0_features;
+  };
+  wayland_sys_0_6_0_features."".self = true;
+  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
+  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
+  lazy_static_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
+  libc_0_2_23_features."default".from_wayland_sys_0_6_0__default = true;
+  wayland_sys_0_9_4 = wayland_sys_0_9_4_ rec {
+    dependencies = [ dlib_0_3_1 lazy_static_0_2_8 libc_0_2_23 ]
+      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_2_8] else [])      ++ (if lib.lists.any (x: x == "libc") features then [libc_0_2_23] else []);
+    features = mkFeatures wayland_sys_0_9_4_features;
+  };
+  wayland_sys_0_9_4_features."".self = true;
+  wayland_sys_0_9_4_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_9_4_features."dlopen" or {});
+  wayland_sys_0_9_4_features."libc".self_server = hasFeature (wayland_sys_0_9_4_features."server" or {});
+  dlib_0_3_1_features."dlopen".from_wayland_sys_0_9_4__dlopen = hasFeature (wayland_sys_0_9_4_features."dlopen" or {});
+  dlib_0_3_1_features."default".from_wayland_sys_0_9_4__default = true;
+  lazy_static_0_2_8_features."default".from_wayland_sys_0_9_4__default = true;
+  libc_0_2_23_features."default".from_wayland_sys_0_9_4__default = true;
+  winapi_0_2_8 = winapi_0_2_8_ rec {};
+  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
+  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
+    dependencies = [ bitflags_0_7_0 ];
+  };
+  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-bg.nix b/pkgs/applications/window-managers/way-cooler/wc-bg.nix
new file mode 100644
index 000000000000..50e2bf837348
--- /dev/null
+++ b/pkgs/applications/window-managers/way-cooler/wc-bg.nix
@@ -0,0 +1,962 @@
+# Generated by carnix 0.5.0: carnix -o wc-bg.nix Cargo.lock
+{ lib, buildPlatform, buildRustCrate, fetchgit }:
+let kernel = buildPlatform.parsed.kernel.name;
+    abi = buildPlatform.parsed.abi.name;
+    hasFeature = feature:
+      lib.lists.any
+        (originName: feature.${originName})
+        (builtins.attrNames feature);
+
+    hasDefault = feature:
+      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
+      (defaultFeatures == [])
+      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
+
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if featureName != "" && hasFeature feat.${featureName} then
+        [ featureName ] ++ features
+      else
+        features
+    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
+    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "ansi_term";
+      version = "0.9.0";
+      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+      inherit dependencies buildDependencies features;
+    };
+    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "atty";
+      version = "0.2.2";
+      authors = [ "softprops <d.tangren@gmail.com>" ];
+      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.6.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.7.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.8.2";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
+      inherit dependencies buildDependencies features;
+    };
+    byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "byteorder";
+      version = "0.5.3";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+      inherit dependencies buildDependencies features;
+    };
+    byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "byteorder";
+      version = "1.0.0";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
+      inherit dependencies buildDependencies features;
+    };
+    clap_2_23_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "clap";
+      version = "2.23.2";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+      sha256 = "1sfc2h9sn4k3vkgqxwk2mhl75f0i9gl3ncl7d2y7plhp18k5nlrs";
+      inherit dependencies buildDependencies features;
+    };
+    color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "color_quant";
+      version = "1.0.0";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+      inherit dependencies buildDependencies features;
+    };
+    dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dbus";
+      version = "0.5.2";
+      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+      sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "deque";
+      version = "0.3.1";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
+      sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
+      inherit dependencies buildDependencies features;
+    };
+    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dlib";
+      version = "0.3.1";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+      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;
+    };
+    enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "enum_primitive";
+      version = "0.1.1";
+      authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+      sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+      inherit dependencies buildDependencies features;
+    };
+    error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "error-chain";
+      version = "0.7.2";
+      authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+      sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
+      inherit dependencies buildDependencies features;
+    };
+    flate2_0_2_19_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "flate2";
+      version = "0.2.19";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "1dpnvw4hcxplalr3bk527d9rfiy7c08580hji9dnfcv5fmdg1znq";
+      inherit dependencies buildDependencies features;
+    };
+    gcc_0_3_45_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gcc";
+      version = "0.3.45";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "0d3pzpbh7wr7645i2rkg5f7c4bhp01a9syrw600fjcvqhkiykp5n";
+      inherit dependencies buildDependencies features;
+    };
+    gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gif";
+      version = "0.9.1";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
+      inherit dependencies buildDependencies features;
+    };
+    glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "glob";
+      version = "0.2.11";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+      inherit dependencies buildDependencies features;
+    };
+    image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "image";
+      version = "0.10.4";
+      authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+      sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
+      libPath = "./src/lib.rs";
+      inherit dependencies buildDependencies features;
+    };
+    inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "inflate";
+      version = "0.1.1";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+      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;
+    };
+    jpeg_decoder_0_1_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "jpeg-decoder";
+      version = "0.1.12";
+      authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+      sha256 = "1f8y6v3alf93gwfmcd53izh77w2a1gv85zlhdbnyla2kna7r9pwz";
+      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_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "lazy_static";
+      version = "0.1.16";
+      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+      sha256 = "0lc5ixs5bmnc43lfri2ynh9393l7vs0z3sw2v5rkaady2ivnznpc";
+      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;
+    };
+    libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libc";
+      version = "0.2.21";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
+      inherit dependencies buildDependencies features;
+    };
+    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libloading";
+      version = "0.3.4";
+      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "lzw";
+      version = "0.10.0";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+      inherit dependencies buildDependencies features;
+    };
+    metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "metadeps";
+      version = "1.1.1";
+      authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+      sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
+      inherit dependencies buildDependencies features;
+    };
+    miniz_sys_0_1_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "miniz-sys";
+      version = "0.1.9";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "09m2953zr0msq8cgk86991y4aqfvw3cxf52fx0d49jqy92nqmfmv";
+      libPath = "lib.rs";
+      libName = "miniz_sys";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    num_bigint_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-bigint";
+      version = "0.1.37";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0scyqfi5azf48yyc8fhns8i1g8zq1rax155hhj9mhr0c1j6w99gs";
+      inherit dependencies buildDependencies features;
+    };
+    num_integer_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-integer";
+      version = "0.1.34";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1i160ddy78sgih3xq9r6raqmg4s83abwbphv4cvyb1lnwsh0b318";
+      inherit dependencies buildDependencies features;
+    };
+    num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-iter";
+      version = "0.1.33";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
+      inherit dependencies buildDependencies features;
+    };
+    num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-rational";
+      version = "0.1.36";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
+      inherit dependencies buildDependencies features;
+    };
+    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-traits";
+      version = "0.1.37";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+      inherit dependencies buildDependencies features;
+    };
+    num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num_cpus";
+      version = "1.3.0";
+      authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+      sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
+      inherit dependencies buildDependencies features;
+    };
+    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+      libPath = "src/lib.rs";
+      inherit dependencies buildDependencies features;
+    };
+    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_codegen";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+      inherit dependencies buildDependencies features;
+    };
+    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_generator";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+      inherit dependencies buildDependencies features;
+    };
+    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_shared";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+      libPath = "src/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;
+    };
+    png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "png";
+      version = "0.5.2";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
+      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;
+    };
+    rayon_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rayon";
+      version = "0.7.0";
+      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
+      sha256 = "102qkpni68wc9fz1hmba1z8d6pgnl86g5gdl9i3h3ilc6zjymxx7";
+      inherit dependencies buildDependencies features;
+    };
+    rayon_core_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rayon-core";
+      version = "1.0.0";
+      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
+      sha256 = "0gv3ysmx69r20n0ywjnqbgm802jjzgg0rly1iv1ssphgn5gg4hsh";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    rustc_serialize_0_3_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rustc-serialize";
+      version = "0.3.23";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0s8i928syzkj1xrsfqf04xlyi4zl37bfpzilf160gi2vhcikj0lw";
+      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;
+    };
+    scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "scoped_threadpool";
+      version = "0.1.7";
+      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+      sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
+      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;
+    };
+    serde_0_9_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde";
+      version = "0.9.13";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "1lgh3mhmdagzb6wrm6nd4f9mfqwmw464hc8q99ia2qv4xwkx72xp";
+      inherit dependencies buildDependencies features;
+    };
+    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde_json";
+      version = "0.9.10";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+      inherit dependencies buildDependencies features;
+    };
+    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "siphasher";
+      version = "0.2.2";
+      authors = [ "Frank Denis <github@pureftpd.org>" ];
+      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+      inherit dependencies buildDependencies features;
+    };
+    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;
+    };
+    target_build_utils_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "target_build_utils";
+      version = "0.3.0";
+      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+      sha256 = "03vxpzmcsvzi1zzjj1h9c956m9s815v3ikrxa1mz1h5hzs3q7bkg";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "tempfile";
+      version = "2.1.5";
+      authors = [ "Steven Allen <steven@stebalien.com>" ];
+      sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "term_size";
+      version = "0.3.0";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+      sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+      inherit dependencies buildDependencies features;
+    };
+    toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "toml";
+      version = "0.2.1";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+      inherit dependencies buildDependencies features;
+    };
+    unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "unicode-segmentation";
+      version = "1.1.0";
+      authors = [ "kwantam <kwantam@gmail.com>" ];
+      sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
+      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;
+    };
+    vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "vec_map";
+      version = "0.7.0";
+      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 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
+      inherit dependencies buildDependencies features;
+    };
+    way_cooler_bg_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "way-cooler-bg";
+      version = "0.2.1";
+      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+      sha256 = "04sa2g4kisc6g15fam7ciqya96l5ajfd8x2fq5i46m22qrvagvq2";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_client_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-client";
+      version = "0.6.2";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "04p9wjjvd4ahylhb27i7aggcrchcqk9ykpny6hjsc1lqfbqbhj3d";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_scanner_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-scanner";
+      version = "0.6.0";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "01x9i8ngl9m3hngv7p0xb2qfwfxpcljhbrils506cf1l1q8838kb";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-sys";
+      version = "0.6.0";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
+      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;
+    };
+    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "xml-rs";
+      version = "0.3.6";
+      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
+      libPath = "src/lib.rs";
+      libName = "xml";
+      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+      inherit dependencies buildDependencies features;
+    };
+
+in
+rec {
+  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
+  atty_0_2_2 = atty_0_2_2_ rec {
+    dependencies = (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+  };
+  libc_0_2_21_features."default".from_atty_0_2_2__default = true;
+  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
+  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
+  bitflags_0_6_0 = bitflags_0_6_0_ rec {};
+  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
+  bitflags_0_8_2 = bitflags_0_8_2_ rec {
+    features = mkFeatures bitflags_0_8_2_features;
+  };
+  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
+  byteorder_0_5_3 = byteorder_0_5_3_ rec {
+    features = mkFeatures byteorder_0_5_3_features;
+  };
+  byteorder_0_5_3_features."std".self_default = hasDefault byteorder_0_5_3_features;
+  byteorder_1_0_0 = byteorder_1_0_0_ rec {
+    features = mkFeatures byteorder_1_0_0_features;
+  };
+  byteorder_1_0_0_features."std".self_default = hasDefault byteorder_1_0_0_features;
+  clap_2_23_2 = clap_2_23_2_ rec {
+    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_2 strsim_0_6_0 term_size_0_3_0 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
+      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_3_0] else []);
+    features = mkFeatures clap_2_23_2_features;
+  };
+  clap_2_23_2_features."".self = true;
+  clap_2_23_2_features."ansi_term".self_color = hasFeature (clap_2_23_2_features."color" or {});
+  clap_2_23_2_features."atty".self_color = hasFeature (clap_2_23_2_features."color" or {});
+  clap_2_23_2_features."suggestions".self_default = hasDefault clap_2_23_2_features;
+  clap_2_23_2_features."color".self_default = hasDefault clap_2_23_2_features;
+  clap_2_23_2_features."wrap_help".self_default = hasDefault clap_2_23_2_features;
+  clap_2_23_2_features."clippy".self_lints = hasFeature (clap_2_23_2_features."lints" or {});
+  clap_2_23_2_features."strsim".self_suggestions = hasFeature (clap_2_23_2_features."suggestions" or {});
+  clap_2_23_2_features."term_size".self_wrap_help = hasFeature (clap_2_23_2_features."wrap_help" or {});
+  clap_2_23_2_features."yaml-rust".self_yaml = hasFeature (clap_2_23_2_features."yaml" or {});
+  ansi_term_0_9_0_features."default".from_clap_2_23_2__default = true;
+  atty_0_2_2_features."default".from_clap_2_23_2__default = true;
+  bitflags_0_8_2_features."default".from_clap_2_23_2__default = true;
+  clippy_0_0_0_features."default".from_clap_2_23_2__default = true;
+  strsim_0_6_0_features."default".from_clap_2_23_2__default = true;
+  term_size_0_3_0_features."default".from_clap_2_23_2__default = true;
+  unicode_segmentation_1_1_0_features."default".from_clap_2_23_2__default = true;
+  unicode_width_0_1_4_features."default".from_clap_2_23_2__default = true;
+  vec_map_0_7_0_features."default".from_clap_2_23_2__default = true;
+  yaml_rust_0_0_0_features."default".from_clap_2_23_2__default = true;
+  color_quant_1_0_0 = color_quant_1_0_0_ rec {};
+  dbus_0_5_2 = dbus_0_5_2_ rec {
+    dependencies = [ libc_0_2_21 ];
+    buildDependencies = [ metadeps_1_1_1 ];
+    features = mkFeatures dbus_0_5_2_features;
+  };
+  dbus_0_5_2_features."".self = true;
+  libc_0_2_21_features."default".from_dbus_0_5_2__default = true;
+  deque_0_3_1 = deque_0_3_1_ rec {
+    dependencies = [ rand_0_3_15 ];
+  };
+  rand_0_3_15_features."default".from_deque_0_3_1__default = true;
+  dlib_0_3_1 = dlib_0_3_1_ rec {
+    dependencies = [ libloading_0_3_4 ];
+    features = mkFeatures dlib_0_3_1_features;
+  };
+  dlib_0_3_1_features."".self = true;
+  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
+  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
+  enum_primitive_0_1_1 = enum_primitive_0_1_1_ rec {
+    dependencies = [ num_traits_0_1_37 ];
+  };
+  num_traits_0_1_37_features."default".from_enum_primitive_0_1_1__default = false;
+  error_chain_0_7_2 = error_chain_0_7_2_ rec {
+    dependencies = [];
+    features = mkFeatures error_chain_0_7_2_features;
+  };
+  error_chain_0_7_2_features."backtrace".self_default = hasDefault error_chain_0_7_2_features;
+  error_chain_0_7_2_features."example_generated".self_default = hasDefault error_chain_0_7_2_features;
+  backtrace_0_0_0_features."default".from_error_chain_0_7_2__default = true;
+  flate2_0_2_19 = flate2_0_2_19_ rec {
+    dependencies = [ libc_0_2_21 miniz_sys_0_1_9 ]
+      ++ (if lib.lists.any (x: x == "miniz-sys") features then [miniz_sys_0_1_9] else []);
+    features = mkFeatures flate2_0_2_19_features;
+  };
+  flate2_0_2_19_features."".self = true;
+  flate2_0_2_19_features."miniz-sys".self_default = hasDefault flate2_0_2_19_features;
+  flate2_0_2_19_features."tokio-io".self_tokio = hasFeature (flate2_0_2_19_features."tokio" or {});
+  flate2_0_2_19_features."futures".self_tokio = hasFeature (flate2_0_2_19_features."tokio" or {});
+  flate2_0_2_19_features."libz-sys".self_zlib = hasFeature (flate2_0_2_19_features."zlib" or {});
+  futures_0_0_0_features."default".from_flate2_0_2_19__default = true;
+  libc_0_2_21_features."default".from_flate2_0_2_19__default = true;
+  libz_sys_0_0_0_features."default".from_flate2_0_2_19__default = true;
+  miniz_sys_0_1_9_features."default".from_flate2_0_2_19__default = true;
+  tokio_io_0_0_0_features."default".from_flate2_0_2_19__default = true;
+  gcc_0_3_45 = gcc_0_3_45_ rec {
+    dependencies = [];
+    features = mkFeatures gcc_0_3_45_features;
+  };
+  gcc_0_3_45_features."rayon".self_parallel = hasFeature (gcc_0_3_45_features."parallel" or {});
+  rayon_0_0_0_features."default".from_gcc_0_3_45__default = true;
+  gif_0_9_1 = gif_0_9_1_ rec {
+    dependencies = [ color_quant_1_0_0 lzw_0_10_0 ];
+    features = mkFeatures gif_0_9_1_features;
+  };
+  gif_0_9_1_features."libc".self_c_api = hasFeature (gif_0_9_1_features."c_api" or {});
+  gif_0_9_1_features."raii_no_panic".self_default = hasDefault gif_0_9_1_features;
+  color_quant_1_0_0_features."default".from_gif_0_9_1__default = true;
+  libc_0_0_0_features."default".from_gif_0_9_1__default = true;
+  lzw_0_10_0_features."default".from_gif_0_9_1__default = true;
+  glob_0_2_11 = glob_0_2_11_ rec {};
+  image_0_10_4 = image_0_10_4_ rec {
+    dependencies = [ byteorder_0_5_3 enum_primitive_0_1_1 gif_0_9_1 glob_0_2_11 jpeg_decoder_0_1_12 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 png_0_5_2 scoped_threadpool_0_1_7 ]
+      ++ (if lib.lists.any (x: x == "gif") features then [gif_0_9_1] else [])      ++ (if lib.lists.any (x: x == "jpeg-decoder") features then [jpeg_decoder_0_1_12] else [])      ++ (if lib.lists.any (x: x == "png") features then [png_0_5_2] else [])      ++ (if lib.lists.any (x: x == "scoped_threadpool") features then [scoped_threadpool_0_1_7] else []);
+    features = mkFeatures image_0_10_4_features;
+  };
+  image_0_10_4_features."".self = true;
+  image_0_10_4_features."gif_codec".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."jpeg".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."ico".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."png_codec".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."ppm".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."tga".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."tiff".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."webp".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."bmp".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."hdr".self_default = hasDefault image_0_10_4_features;
+  image_0_10_4_features."gif".self_gif_codec = hasFeature (image_0_10_4_features."gif_codec" or {});
+  image_0_10_4_features."scoped_threadpool".self_hdr = hasFeature (image_0_10_4_features."hdr" or {});
+  image_0_10_4_features."bmp".self_ico = hasFeature (image_0_10_4_features."ico" or {});
+  image_0_10_4_features."png_codec".self_ico = hasFeature (image_0_10_4_features."ico" or {});
+  image_0_10_4_features."jpeg-decoder".self_jpeg = hasFeature (image_0_10_4_features."jpeg" or {});
+  image_0_10_4_features."png".self_png_codec = hasFeature (image_0_10_4_features."png_codec" or {});
+  byteorder_0_5_3_features."default".from_image_0_10_4__default = true;
+  enum_primitive_0_1_1_features."default".from_image_0_10_4__default = true;
+  gif_0_9_1_features."default".from_image_0_10_4__default = true;
+  glob_0_2_11_features."default".from_image_0_10_4__default = true;
+  jpeg_decoder_0_1_12_features."default".from_image_0_10_4__default = true;
+  num_iter_0_1_33_features."default".from_image_0_10_4__default = true;
+  num_rational_0_1_36_features."default".from_image_0_10_4__default = true;
+  num_traits_0_1_37_features."default".from_image_0_10_4__default = true;
+  png_0_5_2_features."default".from_image_0_10_4__default = true;
+  scoped_threadpool_0_1_7_features."default".from_image_0_10_4__default = true;
+  inflate_0_1_1 = inflate_0_1_1_ rec {
+    features = mkFeatures inflate_0_1_1_features;
+  };
+  inflate_0_1_1_features."".self = true;
+  itoa_0_3_1 = itoa_0_3_1_ rec {};
+  jpeg_decoder_0_1_12 = jpeg_decoder_0_1_12_ rec {
+    dependencies = [ byteorder_1_0_0 rayon_0_7_0 ]
+      ++ (if lib.lists.any (x: x == "rayon") features then [rayon_0_7_0] else []);
+    features = mkFeatures jpeg_decoder_0_1_12_features;
+  };
+  jpeg_decoder_0_1_12_features."".self = true;
+  jpeg_decoder_0_1_12_features."rayon".self_default = hasDefault jpeg_decoder_0_1_12_features;
+  byteorder_1_0_0_features."default".from_jpeg_decoder_0_1_12__default = true;
+  rayon_0_7_0_features."default".from_jpeg_decoder_0_1_12__default = true;
+  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
+    dependencies = [ winapi_0_2_8 ];
+    buildDependencies = [ winapi_build_0_1_1 ];
+  };
+  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
+  lazy_static_0_1_16 = lazy_static_0_1_16_ rec {
+    features = mkFeatures lazy_static_0_1_16_features;
+  };
+  lazy_static_0_1_16_features."".self = true;
+  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
+    dependencies = [];
+    features = mkFeatures lazy_static_0_2_8_features;
+  };
+  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
+  libc_0_2_21 = libc_0_2_21_ rec {
+    features = mkFeatures libc_0_2_21_features;
+  };
+  libc_0_2_21_features."use_std".self_default = hasDefault libc_0_2_21_features;
+  libloading_0_3_4 = libloading_0_3_4_ rec {
+    dependencies = [ lazy_static_0_2_8 ]
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    buildDependencies = [ target_build_utils_0_3_0 ];
+  };
+  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
+  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  lzw_0_10_0 = lzw_0_10_0_ rec {
+    features = mkFeatures lzw_0_10_0_features;
+  };
+  lzw_0_10_0_features."raii_no_panic".self_default = hasDefault lzw_0_10_0_features;
+  metadeps_1_1_1 = metadeps_1_1_1_ rec {
+    dependencies = [ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ];
+  };
+  error_chain_0_7_2_features."default".from_metadeps_1_1_1__default = false;
+  pkg_config_0_3_9_features."default".from_metadeps_1_1_1__default = true;
+  toml_0_2_1_features."default".from_metadeps_1_1_1__default = false;
+  miniz_sys_0_1_9 = miniz_sys_0_1_9_ rec {
+    dependencies = [ libc_0_2_21 ];
+    buildDependencies = [ gcc_0_3_45 ];
+  };
+  libc_0_2_21_features."default".from_miniz_sys_0_1_9__default = true;
+  num_bigint_0_1_37 = num_bigint_0_1_37_ rec {
+    dependencies = [ num_integer_0_1_34 num_traits_0_1_37 rand_0_3_15 rustc_serialize_0_3_23 ]
+      ++ (if lib.lists.any (x: x == "rand") features then [rand_0_3_15] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_23] else []);
+    features = mkFeatures num_bigint_0_1_37_features;
+  };
+  num_bigint_0_1_37_features."".self = true;
+  num_bigint_0_1_37_features."rand".self_default = hasDefault num_bigint_0_1_37_features;
+  num_bigint_0_1_37_features."rustc-serialize".self_default = hasDefault num_bigint_0_1_37_features;
+  num_integer_0_1_34_features."default".from_num_bigint_0_1_37__default = true;
+  num_traits_0_1_37_features."default".from_num_bigint_0_1_37__default = true;
+  rand_0_3_15_features."default".from_num_bigint_0_1_37__default = true;
+  rustc_serialize_0_3_23_features."default".from_num_bigint_0_1_37__default = true;
+  serde_0_0_0_features."default".from_num_bigint_0_1_37__default = true;
+  num_integer_0_1_34 = num_integer_0_1_34_ rec {
+    dependencies = [ num_traits_0_1_37 ];
+  };
+  num_traits_0_1_37_features."default".from_num_integer_0_1_34__default = true;
+  num_iter_0_1_33 = num_iter_0_1_33_ rec {
+    dependencies = [ num_integer_0_1_34 num_traits_0_1_37 ];
+  };
+  num_integer_0_1_34_features."default".from_num_iter_0_1_33__default = true;
+  num_traits_0_1_37_features."default".from_num_iter_0_1_33__default = true;
+  num_rational_0_1_36 = num_rational_0_1_36_ rec {
+    dependencies = [ num_bigint_0_1_37 num_integer_0_1_34 num_traits_0_1_37 rustc_serialize_0_3_23 ]
+      ++ (if lib.lists.any (x: x == "num-bigint") features then [num_bigint_0_1_37] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_23] else []);
+    features = mkFeatures num_rational_0_1_36_features;
+  };
+  num_rational_0_1_36_features."".self = true;
+  num_rational_0_1_36_features."num-bigint".self_bigint = hasFeature (num_rational_0_1_36_features."bigint" or {});
+  num_rational_0_1_36_features."bigint".self_default = hasDefault num_rational_0_1_36_features;
+  num_rational_0_1_36_features."rustc-serialize".self_default = hasDefault num_rational_0_1_36_features;
+  num_bigint_0_1_37_features."default".from_num_rational_0_1_36__default = true;
+  num_integer_0_1_34_features."default".from_num_rational_0_1_36__default = true;
+  num_traits_0_1_37_features."default".from_num_rational_0_1_36__default = true;
+  rustc_serialize_0_3_23_features."default".from_num_rational_0_1_36__default = true;
+  serde_0_0_0_features."default".from_num_rational_0_1_36__default = true;
+  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
+  num_cpus_1_3_0 = num_cpus_1_3_0_ rec {
+    dependencies = [ libc_0_2_21 ];
+  };
+  libc_0_2_21_features."default".from_num_cpus_1_3_0__default = true;
+  phf_0_7_21 = phf_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 ];
+    features = mkFeatures phf_0_7_21_features;
+  };
+  phf_0_7_21_features."".self = true;
+  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
+  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
+  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
+  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
+    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
+  };
+  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
+  };
+  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
+  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
+  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
+    dependencies = [ siphasher_0_2_2 ];
+    features = mkFeatures phf_shared_0_7_21_features;
+  };
+  phf_shared_0_7_21_features."".self = true;
+  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
+  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
+  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
+  png_0_5_2 = png_0_5_2_ rec {
+    dependencies = [ bitflags_0_7_0 flate2_0_2_19 inflate_0_1_1 num_iter_0_1_33 ]
+      ++ (if lib.lists.any (x: x == "flate2") features then [flate2_0_2_19] else []);
+    features = mkFeatures png_0_5_2_features;
+  };
+  png_0_5_2_features."".self = true;
+  png_0_5_2_features."png-encoding".self_default = hasDefault png_0_5_2_features;
+  png_0_5_2_features."flate2".self_png-encoding = hasFeature (png_0_5_2_features."png-encoding" or {});
+  bitflags_0_7_0_features."default".from_png_0_5_2__default = true;
+  flate2_0_2_19_features."default".from_png_0_5_2__default = true;
+  inflate_0_1_1_features."default".from_png_0_5_2__default = true;
+  num_iter_0_1_33_features."default".from_png_0_5_2__default = true;
+  rand_0_3_15 = rand_0_3_15_ rec {
+    dependencies = [ libc_0_2_21 ];
+  };
+  libc_0_2_21_features."default".from_rand_0_3_15__default = true;
+  rayon_0_7_0 = rayon_0_7_0_ rec {
+    dependencies = [ rayon_core_1_0_0 ];
+    features = mkFeatures rayon_0_7_0_features;
+  };
+  rayon_0_7_0_features."".self = true;
+  rayon_core_1_0_0_features."unstable".from_rayon_0_7_0__unstable = hasFeature (rayon_0_7_0_features."unstable" or {});
+  rayon_core_1_0_0_features."default".from_rayon_0_7_0__default = true;
+  rayon_core_1_0_0 = rayon_core_1_0_0_ rec {
+    dependencies = [ deque_0_3_1 lazy_static_0_2_8 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ];
+    features = mkFeatures rayon_core_1_0_0_features;
+  };
+  rayon_core_1_0_0_features."futures".self_unstable = hasFeature (rayon_core_1_0_0_features."unstable" or {});
+  deque_0_3_1_features."default".from_rayon_core_1_0_0__default = true;
+  futures_0_0_0_features."default".from_rayon_core_1_0_0__default = true;
+  lazy_static_0_2_8_features."default".from_rayon_core_1_0_0__default = true;
+  libc_0_2_21_features."default".from_rayon_core_1_0_0__default = true;
+  num_cpus_1_3_0_features."default".from_rayon_core_1_0_0__default = true;
+  rand_0_3_15_features."default".from_rayon_core_1_0_0__default = true;
+  rustc_serialize_0_3_23 = rustc_serialize_0_3_23_ rec {};
+  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
+    dependencies = [ semver_0_1_20 ];
+  };
+  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
+  scoped_threadpool_0_1_7 = scoped_threadpool_0_1_7_ rec {
+    features = mkFeatures scoped_threadpool_0_1_7_features;
+  };
+  scoped_threadpool_0_1_7_features."".self = true;
+  semver_0_1_20 = semver_0_1_20_ rec {};
+  serde_0_9_13 = serde_0_9_13_ rec {
+    dependencies = [];
+    features = mkFeatures serde_0_9_13_features;
+  };
+  serde_0_9_13_features."unstable".self_alloc = hasFeature (serde_0_9_13_features."alloc" or {});
+  serde_0_9_13_features."alloc".self_collections = hasFeature (serde_0_9_13_features."collections" or {});
+  serde_0_9_13_features."std".self_default = hasDefault serde_0_9_13_features;
+  serde_0_9_13_features."serde_derive".self_derive = hasFeature (serde_0_9_13_features."derive" or {});
+  serde_0_9_13_features."serde_derive".self_playground = hasFeature (serde_0_9_13_features."playground" or {});
+  serde_0_9_13_features."unstable".self_unstable-testing = hasFeature (serde_0_9_13_features."unstable-testing" or {});
+  serde_0_9_13_features."std".self_unstable-testing = hasFeature (serde_0_9_13_features."unstable-testing" or {});
+  serde_derive_0_0_0_features."default".from_serde_0_9_13__default = true;
+  serde_json_0_9_10 = serde_json_0_9_10_ rec {
+    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_13 ];
+    features = mkFeatures serde_json_0_9_10_features;
+  };
+  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
+  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
+  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
+  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
+  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
+  serde_0_9_13_features."default".from_serde_json_0_9_10__default = true;
+  siphasher_0_2_2 = siphasher_0_2_2_ rec {
+    dependencies = [];
+  };
+  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
+  strsim_0_6_0 = strsim_0_6_0_ rec {};
+  target_build_utils_0_3_0 = target_build_utils_0_3_0_ rec {
+    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
+      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
+    buildDependencies = [ phf_codegen_0_7_21 ];
+    features = mkFeatures target_build_utils_0_3_0_features;
+  };
+  target_build_utils_0_3_0_features."".self = true;
+  target_build_utils_0_3_0_features."serde_json".self_default = hasDefault target_build_utils_0_3_0_features;
+  phf_0_7_21_features."default".from_target_build_utils_0_3_0__default = true;
+  serde_json_0_9_10_features."default".from_target_build_utils_0_3_0__default = true;
+  tempfile_2_1_5 = tempfile_2_1_5_ rec {
+    dependencies = [ rand_0_3_15 ]
+      ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_21 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    buildDependencies = [ rustc_version_0_1_7 ];
+  };
+  rand_0_3_15_features."default".from_tempfile_2_1_5__default = true;
+  libc_0_2_21_features."default".from_tempfile_2_1_5__default = true;
+  kernel32_sys_0_2_2_features."default".from_tempfile_2_1_5__default = true;
+  winapi_0_2_8_features."default".from_tempfile_2_1_5__default = true;
+  term_size_0_3_0 = term_size_0_3_0_ rec {
+    dependencies = []
+      ++ (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    features = mkFeatures term_size_0_3_0_features;
+  };
+  term_size_0_3_0_features."clippy".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
+  term_size_0_3_0_features."nightly".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
+  term_size_0_3_0_features."lints".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
+  term_size_0_3_0_features."nightly".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
+  clippy_0_0_0_features."default".from_term_size_0_3_0__default = true;
+  libc_0_2_21_features."default".from_term_size_0_3_0__default = true;
+  kernel32_sys_0_2_2_features."default".from_term_size_0_3_0__default = true;
+  winapi_0_2_8_features."default".from_term_size_0_3_0__default = true;
+  toml_0_2_1 = toml_0_2_1_ rec {
+    dependencies = [];
+  };
+  toml_0_2_1_features."rustc-serialize".self_default = hasDefault toml_0_2_1_features;
+  rustc_serialize_0_0_0_features."default".from_toml_0_2_1__default = true;
+  serde_0_0_0_features."default".from_toml_0_2_1__default = true;
+  unicode_segmentation_1_1_0 = unicode_segmentation_1_1_0_ rec {
+    features = mkFeatures unicode_segmentation_1_1_0_features;
+  };
+  unicode_segmentation_1_1_0_features."".self = true;
+  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
+    features = mkFeatures unicode_width_0_1_4_features;
+  };
+  unicode_width_0_1_4_features."".self = true;
+  vec_map_0_7_0 = vec_map_0_7_0_ rec {
+    dependencies = [];
+    features = mkFeatures vec_map_0_7_0_features;
+  };
+  vec_map_0_7_0_features."serde".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
+  vec_map_0_7_0_features."serde_derive".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
+  serde_0_0_0_features."default".from_vec_map_0_7_0__default = true;
+  serde_derive_0_0_0_features."default".from_vec_map_0_7_0__default = true;
+  way_cooler_bg_0_2_1 = way_cooler_bg_0_2_1_ rec {
+    dependencies = [ byteorder_0_5_3 clap_2_23_2 dbus_0_5_2 image_0_10_4 tempfile_2_1_5 wayland_client_0_6_2 wayland_sys_0_6_0 ];
+  };
+  byteorder_0_5_3_features."default".from_way_cooler_bg_0_2_1__default = true;
+  clap_2_23_2_features."default".from_way_cooler_bg_0_2_1__default = true;
+  dbus_0_5_2_features."default".from_way_cooler_bg_0_2_1__default = true;
+  image_0_10_4_features."default".from_way_cooler_bg_0_2_1__default = true;
+  tempfile_2_1_5_features."default".from_way_cooler_bg_0_2_1__default = true;
+  wayland_client_0_6_2_features."cursor".from_way_cooler_bg_0_2_1 = true;
+  wayland_client_0_6_2_features."dlopen".from_way_cooler_bg_0_2_1 = true;
+  wayland_client_0_6_2_features."default".from_way_cooler_bg_0_2_1__default = true;
+  wayland_sys_0_6_0_features."client".from_way_cooler_bg_0_2_1 = true;
+  wayland_sys_0_6_0_features."dlopen".from_way_cooler_bg_0_2_1 = true;
+  wayland_sys_0_6_0_features."default".from_way_cooler_bg_0_2_1__default = true;
+  wayland_client_0_6_2 = wayland_client_0_6_2_ rec {
+    dependencies = [ bitflags_0_6_0 libc_0_2_21 wayland_sys_0_6_0 ];
+    buildDependencies = [ wayland_scanner_0_6_0 ];
+    features = mkFeatures wayland_client_0_6_2_features;
+  };
+  wayland_client_0_6_2_features."wp-presentation_time".self_all_stable_protocols = hasFeature (wayland_client_0_6_2_features."all_stable_protocols" or {});
+  wayland_client_0_6_2_features."wp-viewporter".self_all_stable_protocols = hasFeature (wayland_client_0_6_2_features."all_stable_protocols" or {});
+  wayland_client_0_6_2_features."unstable-protocols".self_all_unstable_protocols = hasFeature (wayland_client_0_6_2_features."all_unstable_protocols" or {});
+  wayland_client_0_6_2_features."wpu-xdg_shell".self_all_unstable_protocols = hasFeature (wayland_client_0_6_2_features."all_unstable_protocols" or {});
+  bitflags_0_6_0_features."default".from_wayland_client_0_6_2__default = true;
+  lazy_static_0_0_0_features."default".from_wayland_client_0_6_2__default = true;
+  libc_0_2_21_features."default".from_wayland_client_0_6_2__default = true;
+  wayland_sys_0_6_0_features."client".from_wayland_client_0_6_2 = true;
+  wayland_sys_0_6_0_features."cursor".from_wayland_client_0_6_2__cursor = hasFeature (wayland_client_0_6_2_features."cursor" or {});
+  wayland_sys_0_6_0_features."dlopen".from_wayland_client_0_6_2__dlopen = hasFeature (wayland_client_0_6_2_features."dlopen" or {});
+  wayland_sys_0_6_0_features."egl".from_wayland_client_0_6_2__egl = hasFeature (wayland_client_0_6_2_features."egl" or {});
+  wayland_sys_0_6_0_features."default".from_wayland_client_0_6_2__default = true;
+  wayland_scanner_0_6_0 = wayland_scanner_0_6_0_ rec {
+    dependencies = [ xml_rs_0_3_6 ];
+  };
+  xml_rs_0_3_6_features."default".from_wayland_scanner_0_6_0__default = true;
+  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
+    dependencies = [ dlib_0_3_1 lazy_static_0_1_16 ]
+      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_1_16] else []);
+    features = mkFeatures wayland_sys_0_6_0_features;
+  };
+  wayland_sys_0_6_0_features."".self = true;
+  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
+  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
+  lazy_static_0_1_16_features."default".from_wayland_sys_0_6_0__default = true;
+  libc_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
+  winapi_0_2_8 = winapi_0_2_8_ rec {};
+  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
+  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
+    dependencies = [ bitflags_0_7_0 ];
+  };
+  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-grab.nix b/pkgs/applications/window-managers/way-cooler/wc-grab.nix
new file mode 100644
index 000000000000..bc5d937206de
--- /dev/null
+++ b/pkgs/applications/window-managers/way-cooler/wc-grab.nix
@@ -0,0 +1,562 @@
+# Generated by carnix 0.5.0: carnix -o wc-grab.nix Cargo.lock
+{ lib, buildPlatform, buildRustCrate, fetchgit }:
+let kernel = buildPlatform.parsed.kernel.name;
+    abi = buildPlatform.parsed.abi.name;
+    hasFeature = feature:
+      lib.lists.any
+        (originName: feature.${originName})
+        (builtins.attrNames feature);
+
+    hasDefault = feature:
+      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
+      (defaultFeatures == [])
+      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
+
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if featureName != "" && hasFeature feat.${featureName} then
+        [ featureName ] ++ features
+      else
+        features
+    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
+    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;
+    };
+    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "ansi_term";
+      version = "0.9.0";
+      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+      inherit dependencies buildDependencies features;
+    };
+    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "atty";
+      version = "0.2.2";
+      authors = [ "softprops <d.tangren@gmail.com>" ];
+      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.7.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.8.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1h489m0wzhng5gvvc40jgdbaf0ac3rgkka31vwinhsjmfvrqcc4v";
+      inherit dependencies buildDependencies features;
+    };
+    byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "byteorder";
+      version = "1.0.0";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
+      inherit dependencies buildDependencies features;
+    };
+    clap_2_22_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "clap";
+      version = "2.22.0";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+      sha256 = "0gdgyfh3ydpd2px4xh0i5qd6bhi2c5f43bqv9z4kla9vkmmfiavd";
+      inherit dependencies buildDependencies features;
+    };
+    color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "color_quant";
+      version = "1.0.0";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+      inherit dependencies buildDependencies features;
+    };
+    dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dbus";
+      version = "0.5.2";
+      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+      sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    deflate_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "deflate";
+      version = "0.7.5";
+      authors = [ "oyvindln <oyvindln@users.noreply.github.com>" ];
+      sha256 = "18bcmdkyshnzpkxx22b29gn55g6bk5ysy98ghjpjhxy3hky96rvy";
+      inherit dependencies buildDependencies features;
+    };
+    deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "deque";
+      version = "0.3.1";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
+      sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
+      inherit dependencies buildDependencies features;
+    };
+    enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "enum_primitive";
+      version = "0.1.1";
+      authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+      sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+      inherit dependencies buildDependencies features;
+    };
+    error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "error-chain";
+      version = "0.7.2";
+      authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+      sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
+      inherit dependencies buildDependencies features;
+    };
+    gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gif";
+      version = "0.9.1";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
+      inherit dependencies buildDependencies features;
+    };
+    glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "glob";
+      version = "0.2.11";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+      inherit dependencies buildDependencies features;
+    };
+    image_0_12_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "image";
+      version = "0.12.3";
+      authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+      sha256 = "12xdzi29vr19gz3h93c1ihyvyv9xar9sp0inrjwwvlbjvn8nn0p9";
+      libPath = "./src/lib.rs";
+      inherit dependencies buildDependencies features;
+    };
+    inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "inflate";
+      version = "0.1.1";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+      inherit dependencies buildDependencies features;
+    };
+    jpeg_decoder_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "jpeg-decoder";
+      version = "0.1.11";
+      authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+      sha256 = "1xm39c1cff5gkczs164371hk2gpkjpkbw63k4f8mjnpwwpn9xk4n";
+      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;
+    };
+    libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libc";
+      version = "0.2.21";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
+      inherit dependencies buildDependencies features;
+    };
+    lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "lzw";
+      version = "0.10.0";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+      inherit dependencies buildDependencies features;
+    };
+    metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "metadeps";
+      version = "1.1.1";
+      authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+      sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
+      inherit dependencies buildDependencies features;
+    };
+    num_integer_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-integer";
+      version = "0.1.33";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1rhy9lf4lhl7r8278n73mi9y55v9a71639as3v92bj2gk1x4k729";
+      inherit dependencies buildDependencies features;
+    };
+    num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-iter";
+      version = "0.1.33";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
+      inherit dependencies buildDependencies features;
+    };
+    num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-rational";
+      version = "0.1.36";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
+      inherit dependencies buildDependencies features;
+    };
+    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-traits";
+      version = "0.1.37";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+      inherit dependencies buildDependencies features;
+    };
+    num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num_cpus";
+      version = "1.3.0";
+      authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+      sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
+      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;
+    };
+    png_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "png";
+      version = "0.6.2";
+      authors = [ "nwin <nwin@users.noreply.github.com>" ];
+      sha256 = "03i78w5jbvk9y6babfrh7h0akvg81pcyyhniilv24z5v0vh5jvjs";
+      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;
+    };
+    rayon_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "rayon";
+      version = "0.6.0";
+      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
+      sha256 = "0y2693bari5j4h46mjzkyc9lkfbnq2d1p0ldyn6sb02jn63lpw97";
+      inherit dependencies buildDependencies features;
+    };
+    scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "scoped_threadpool";
+      version = "0.1.7";
+      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+      sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
+      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;
+    };
+    term_size_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "term_size";
+      version = "0.2.3";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+      sha256 = "16b7gq2dmz7mws4vgai7whxy4xkg4yvlhm7spz0q6jyipqfq87ci";
+      inherit dependencies buildDependencies features;
+    };
+    toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "toml";
+      version = "0.2.1";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+      inherit dependencies buildDependencies features;
+    };
+    unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "unicode-segmentation";
+      version = "1.1.0";
+      authors = [ "kwantam <kwantam@gmail.com>" ];
+      sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
+      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;
+    };
+    vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "vec_map";
+      version = "0.7.0";
+      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 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
+      inherit dependencies buildDependencies features;
+    };
+    wc_grab_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wc-grab";
+      version = "0.2.0";
+      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+      src = ./.;
+      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;
+    };
+
+in
+rec {
+  adler32_1_0_0 = adler32_1_0_0_ rec {};
+  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
+  atty_0_2_2 = atty_0_2_2_ rec {
+    dependencies = (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+  };
+  libc_0_2_21_features."default".from_atty_0_2_2__default = true;
+  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
+  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
+  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
+  bitflags_0_8_0 = bitflags_0_8_0_ rec {
+    features = mkFeatures bitflags_0_8_0_features;
+  };
+  bitflags_0_8_0_features."i128".self_unstable = hasFeature (bitflags_0_8_0_features."unstable" or {});
+  byteorder_1_0_0 = byteorder_1_0_0_ rec {
+    features = mkFeatures byteorder_1_0_0_features;
+  };
+  byteorder_1_0_0_features."std".self_default = hasDefault byteorder_1_0_0_features;
+  clap_2_22_0 = clap_2_22_0_ rec {
+    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_0 strsim_0_6_0 term_size_0_2_3 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
+      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_2_3] else []);
+    features = mkFeatures clap_2_22_0_features;
+  };
+  clap_2_22_0_features."".self = true;
+  clap_2_22_0_features."ansi_term".self_color = hasFeature (clap_2_22_0_features."color" or {});
+  clap_2_22_0_features."atty".self_color = hasFeature (clap_2_22_0_features."color" or {});
+  clap_2_22_0_features."suggestions".self_default = hasDefault clap_2_22_0_features;
+  clap_2_22_0_features."color".self_default = hasDefault clap_2_22_0_features;
+  clap_2_22_0_features."wrap_help".self_default = hasDefault clap_2_22_0_features;
+  clap_2_22_0_features."clippy".self_lints = hasFeature (clap_2_22_0_features."lints" or {});
+  clap_2_22_0_features."strsim".self_suggestions = hasFeature (clap_2_22_0_features."suggestions" or {});
+  clap_2_22_0_features."term_size".self_wrap_help = hasFeature (clap_2_22_0_features."wrap_help" or {});
+  clap_2_22_0_features."yaml-rust".self_yaml = hasFeature (clap_2_22_0_features."yaml" or {});
+  ansi_term_0_9_0_features."default".from_clap_2_22_0__default = true;
+  atty_0_2_2_features."default".from_clap_2_22_0__default = true;
+  bitflags_0_8_0_features."default".from_clap_2_22_0__default = true;
+  clippy_0_0_0_features."default".from_clap_2_22_0__default = true;
+  strsim_0_6_0_features."default".from_clap_2_22_0__default = true;
+  term_size_0_2_3_features."default".from_clap_2_22_0__default = true;
+  unicode_segmentation_1_1_0_features."default".from_clap_2_22_0__default = true;
+  unicode_width_0_1_4_features."default".from_clap_2_22_0__default = true;
+  vec_map_0_7_0_features."default".from_clap_2_22_0__default = true;
+  yaml_rust_0_0_0_features."default".from_clap_2_22_0__default = true;
+  color_quant_1_0_0 = color_quant_1_0_0_ rec {};
+  dbus_0_5_2 = dbus_0_5_2_ rec {
+    dependencies = [ libc_0_2_21 ];
+    buildDependencies = [ metadeps_1_1_1 ];
+    features = mkFeatures dbus_0_5_2_features;
+  };
+  dbus_0_5_2_features."".self = true;
+  libc_0_2_21_features."default".from_dbus_0_5_2__default = true;
+  deflate_0_7_5 = deflate_0_7_5_ rec {
+    dependencies = [ adler32_1_0_0 byteorder_1_0_0 ];
+  };
+  adler32_1_0_0_features."default".from_deflate_0_7_5__default = true;
+  byteorder_1_0_0_features."default".from_deflate_0_7_5__default = true;
+  deque_0_3_1 = deque_0_3_1_ rec {
+    dependencies = [ rand_0_3_15 ];
+  };
+  rand_0_3_15_features."default".from_deque_0_3_1__default = true;
+  enum_primitive_0_1_1 = enum_primitive_0_1_1_ rec {
+    dependencies = [ num_traits_0_1_37 ];
+  };
+  num_traits_0_1_37_features."default".from_enum_primitive_0_1_1__default = false;
+  error_chain_0_7_2 = error_chain_0_7_2_ rec {
+    dependencies = [];
+    features = mkFeatures error_chain_0_7_2_features;
+  };
+  error_chain_0_7_2_features."backtrace".self_default = hasDefault error_chain_0_7_2_features;
+  error_chain_0_7_2_features."example_generated".self_default = hasDefault error_chain_0_7_2_features;
+  backtrace_0_0_0_features."default".from_error_chain_0_7_2__default = true;
+  gif_0_9_1 = gif_0_9_1_ rec {
+    dependencies = [ color_quant_1_0_0 lzw_0_10_0 ];
+    features = mkFeatures gif_0_9_1_features;
+  };
+  gif_0_9_1_features."libc".self_c_api = hasFeature (gif_0_9_1_features."c_api" or {});
+  gif_0_9_1_features."raii_no_panic".self_default = hasDefault gif_0_9_1_features;
+  color_quant_1_0_0_features."default".from_gif_0_9_1__default = true;
+  libc_0_0_0_features."default".from_gif_0_9_1__default = true;
+  lzw_0_10_0_features."default".from_gif_0_9_1__default = true;
+  glob_0_2_11 = glob_0_2_11_ rec {};
+  image_0_12_3 = image_0_12_3_ rec {
+    dependencies = [ byteorder_1_0_0 enum_primitive_0_1_1 gif_0_9_1 glob_0_2_11 jpeg_decoder_0_1_11 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 png_0_6_2 scoped_threadpool_0_1_7 ]
+      ++ (if lib.lists.any (x: x == "gif") features then [gif_0_9_1] else [])      ++ (if lib.lists.any (x: x == "jpeg-decoder") features then [jpeg_decoder_0_1_11] else [])      ++ (if lib.lists.any (x: x == "png") features then [png_0_6_2] else [])      ++ (if lib.lists.any (x: x == "scoped_threadpool") features then [scoped_threadpool_0_1_7] else []);
+    features = mkFeatures image_0_12_3_features;
+  };
+  image_0_12_3_features."".self = true;
+  image_0_12_3_features."gif_codec".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."jpeg".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."ico".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."png_codec".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."ppm".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."tga".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."tiff".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."webp".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."bmp".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."hdr".self_default = hasDefault image_0_12_3_features;
+  image_0_12_3_features."gif".self_gif_codec = hasFeature (image_0_12_3_features."gif_codec" or {});
+  image_0_12_3_features."scoped_threadpool".self_hdr = hasFeature (image_0_12_3_features."hdr" or {});
+  image_0_12_3_features."bmp".self_ico = hasFeature (image_0_12_3_features."ico" or {});
+  image_0_12_3_features."png_codec".self_ico = hasFeature (image_0_12_3_features."ico" or {});
+  image_0_12_3_features."jpeg-decoder".self_jpeg = hasFeature (image_0_12_3_features."jpeg" or {});
+  image_0_12_3_features."png".self_png_codec = hasFeature (image_0_12_3_features."png_codec" or {});
+  byteorder_1_0_0_features."default".from_image_0_12_3__default = true;
+  enum_primitive_0_1_1_features."default".from_image_0_12_3__default = true;
+  gif_0_9_1_features."default".from_image_0_12_3__default = true;
+  glob_0_2_11_features."default".from_image_0_12_3__default = true;
+  jpeg_decoder_0_1_11_features."default".from_image_0_12_3__default = true;
+  num_iter_0_1_33_features."default".from_image_0_12_3__default = true;
+  num_rational_0_1_36_features."default".from_image_0_12_3__default = false;
+  num_traits_0_1_37_features."default".from_image_0_12_3__default = true;
+  png_0_6_2_features."default".from_image_0_12_3__default = true;
+  scoped_threadpool_0_1_7_features."default".from_image_0_12_3__default = true;
+  inflate_0_1_1 = inflate_0_1_1_ rec {
+    features = mkFeatures inflate_0_1_1_features;
+  };
+  inflate_0_1_1_features."".self = true;
+  jpeg_decoder_0_1_11 = jpeg_decoder_0_1_11_ rec {
+    dependencies = [ byteorder_1_0_0 rayon_0_6_0 ]
+      ++ (if lib.lists.any (x: x == "rayon") features then [rayon_0_6_0] else []);
+    features = mkFeatures jpeg_decoder_0_1_11_features;
+  };
+  jpeg_decoder_0_1_11_features."".self = true;
+  jpeg_decoder_0_1_11_features."rayon".self_default = hasDefault jpeg_decoder_0_1_11_features;
+  byteorder_1_0_0_features."default".from_jpeg_decoder_0_1_11__default = true;
+  rayon_0_6_0_features."default".from_jpeg_decoder_0_1_11__default = true;
+  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
+    dependencies = [ winapi_0_2_8 ];
+    buildDependencies = [ winapi_build_0_1_1 ];
+  };
+  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
+  libc_0_2_21 = libc_0_2_21_ rec {
+    features = mkFeatures libc_0_2_21_features;
+  };
+  libc_0_2_21_features."use_std".self_default = hasDefault libc_0_2_21_features;
+  lzw_0_10_0 = lzw_0_10_0_ rec {
+    features = mkFeatures lzw_0_10_0_features;
+  };
+  lzw_0_10_0_features."raii_no_panic".self_default = hasDefault lzw_0_10_0_features;
+  metadeps_1_1_1 = metadeps_1_1_1_ rec {
+    dependencies = [ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ];
+  };
+  error_chain_0_7_2_features."default".from_metadeps_1_1_1__default = false;
+  pkg_config_0_3_9_features."default".from_metadeps_1_1_1__default = true;
+  toml_0_2_1_features."default".from_metadeps_1_1_1__default = false;
+  num_integer_0_1_33 = num_integer_0_1_33_ rec {
+    dependencies = [ num_traits_0_1_37 ];
+  };
+  num_traits_0_1_37_features."default".from_num_integer_0_1_33__default = true;
+  num_iter_0_1_33 = num_iter_0_1_33_ rec {
+    dependencies = [ num_integer_0_1_33 num_traits_0_1_37 ];
+  };
+  num_integer_0_1_33_features."default".from_num_iter_0_1_33__default = true;
+  num_traits_0_1_37_features."default".from_num_iter_0_1_33__default = true;
+  num_rational_0_1_36 = num_rational_0_1_36_ rec {
+    dependencies = [ num_integer_0_1_33 num_traits_0_1_37 ];
+    features = mkFeatures num_rational_0_1_36_features;
+  };
+  num_rational_0_1_36_features."num-bigint".self_bigint = hasFeature (num_rational_0_1_36_features."bigint" or {});
+  num_rational_0_1_36_features."bigint".self_default = hasDefault num_rational_0_1_36_features;
+  num_rational_0_1_36_features."rustc-serialize".self_default = hasDefault num_rational_0_1_36_features;
+  num_bigint_0_0_0_features."default".from_num_rational_0_1_36__default = true;
+  num_integer_0_1_33_features."default".from_num_rational_0_1_36__default = true;
+  num_traits_0_1_37_features."default".from_num_rational_0_1_36__default = true;
+  rustc_serialize_0_0_0_features."default".from_num_rational_0_1_36__default = true;
+  serde_0_0_0_features."default".from_num_rational_0_1_36__default = true;
+  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
+  num_cpus_1_3_0 = num_cpus_1_3_0_ rec {
+    dependencies = [ libc_0_2_21 ];
+  };
+  libc_0_2_21_features."default".from_num_cpus_1_3_0__default = true;
+  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
+  png_0_6_2 = png_0_6_2_ rec {
+    dependencies = [ bitflags_0_7_0 deflate_0_7_5 inflate_0_1_1 num_iter_0_1_33 ]
+      ++ (if lib.lists.any (x: x == "deflate") features then [deflate_0_7_5] else []);
+    features = mkFeatures png_0_6_2_features;
+  };
+  png_0_6_2_features."".self = true;
+  png_0_6_2_features."png-encoding".self_default = hasDefault png_0_6_2_features;
+  png_0_6_2_features."deflate".self_png-encoding = hasFeature (png_0_6_2_features."png-encoding" or {});
+  bitflags_0_7_0_features."default".from_png_0_6_2__default = true;
+  deflate_0_7_5_features."default".from_png_0_6_2__default = true;
+  inflate_0_1_1_features."default".from_png_0_6_2__default = true;
+  num_iter_0_1_33_features."default".from_png_0_6_2__default = true;
+  rand_0_3_15 = rand_0_3_15_ rec {
+    dependencies = [ libc_0_2_21 ];
+  };
+  libc_0_2_21_features."default".from_rand_0_3_15__default = true;
+  rayon_0_6_0 = rayon_0_6_0_ rec {
+    dependencies = [ deque_0_3_1 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ];
+    features = mkFeatures rayon_0_6_0_features;
+  };
+  rayon_0_6_0_features."".self = true;
+  deque_0_3_1_features."default".from_rayon_0_6_0__default = true;
+  libc_0_2_21_features."default".from_rayon_0_6_0__default = true;
+  num_cpus_1_3_0_features."default".from_rayon_0_6_0__default = true;
+  rand_0_3_15_features."default".from_rayon_0_6_0__default = true;
+  scoped_threadpool_0_1_7 = scoped_threadpool_0_1_7_ rec {
+    features = mkFeatures scoped_threadpool_0_1_7_features;
+  };
+  scoped_threadpool_0_1_7_features."".self = true;
+  strsim_0_6_0 = strsim_0_6_0_ rec {};
+  term_size_0_2_3 = term_size_0_2_3_ rec {
+    dependencies = []
+      ++ (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    features = mkFeatures term_size_0_2_3_features;
+  };
+  term_size_0_2_3_features."clippy".self_lints = hasFeature (term_size_0_2_3_features."lints" or {});
+  term_size_0_2_3_features."nightly".self_lints = hasFeature (term_size_0_2_3_features."lints" or {});
+  term_size_0_2_3_features."lints".self_travis = hasFeature (term_size_0_2_3_features."travis" or {});
+  term_size_0_2_3_features."nightly".self_travis = hasFeature (term_size_0_2_3_features."travis" or {});
+  clippy_0_0_0_features."default".from_term_size_0_2_3__default = true;
+  libc_0_2_21_features."default".from_term_size_0_2_3__default = true;
+  kernel32_sys_0_2_2_features."default".from_term_size_0_2_3__default = true;
+  winapi_0_2_8_features."default".from_term_size_0_2_3__default = true;
+  toml_0_2_1 = toml_0_2_1_ rec {
+    dependencies = [];
+  };
+  toml_0_2_1_features."rustc-serialize".self_default = hasDefault toml_0_2_1_features;
+  rustc_serialize_0_0_0_features."default".from_toml_0_2_1__default = true;
+  serde_0_0_0_features."default".from_toml_0_2_1__default = true;
+  unicode_segmentation_1_1_0 = unicode_segmentation_1_1_0_ rec {
+    features = mkFeatures unicode_segmentation_1_1_0_features;
+  };
+  unicode_segmentation_1_1_0_features."".self = true;
+  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
+    features = mkFeatures unicode_width_0_1_4_features;
+  };
+  unicode_width_0_1_4_features."".self = true;
+  vec_map_0_7_0 = vec_map_0_7_0_ rec {
+    dependencies = [];
+    features = mkFeatures vec_map_0_7_0_features;
+  };
+  vec_map_0_7_0_features."serde".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
+  vec_map_0_7_0_features."serde_derive".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
+  serde_0_0_0_features."default".from_vec_map_0_7_0__default = true;
+  serde_derive_0_0_0_features."default".from_vec_map_0_7_0__default = true;
+  wc_grab_0_2_0 = wc_grab_0_2_0_ rec {
+    dependencies = [ clap_2_22_0 dbus_0_5_2 image_0_12_3 ];
+  };
+  clap_2_22_0_features."default".from_wc_grab_0_2_0__default = true;
+  dbus_0_5_2_features."default".from_wc_grab_0_2_0__default = true;
+  image_0_12_3_features."default".from_wc_grab_0_2_0__default = true;
+  winapi_0_2_8 = winapi_0_2_8_ rec {};
+  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
+}
diff --git a/pkgs/applications/window-managers/way-cooler/wc-lock.nix b/pkgs/applications/window-managers/way-cooler/wc-lock.nix
new file mode 100644
index 000000000000..634288cfca80
--- /dev/null
+++ b/pkgs/applications/window-managers/way-cooler/wc-lock.nix
@@ -0,0 +1,625 @@
+# Generated by carnix 0.5.0: carnix -o wc-lock.nix Cargo.lock
+{ lib, buildPlatform, buildRustCrate, fetchgit }:
+let kernel = buildPlatform.parsed.kernel.name;
+    abi = buildPlatform.parsed.abi.name;
+    hasFeature = feature:
+      lib.lists.any
+        (originName: feature.${originName})
+        (builtins.attrNames feature);
+
+    hasDefault = feature:
+      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
+      (defaultFeatures == [])
+      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
+
+    mkFeatures = feat: lib.lists.foldl (features: featureName:
+      if featureName != "" && hasFeature feat.${featureName} then
+        [ featureName ] ++ features
+      else
+        features
+    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
+    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "ansi_term";
+      version = "0.9.0";
+      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+      inherit dependencies buildDependencies features;
+    };
+    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "atty";
+      version = "0.2.2";
+      authors = [ "softprops <d.tangren@gmail.com>" ];
+      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.7.0";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+      inherit dependencies buildDependencies features;
+    };
+    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "bitflags";
+      version = "0.8.2";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
+      inherit dependencies buildDependencies features;
+    };
+    byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "byteorder";
+      version = "0.5.3";
+      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+      sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+      inherit dependencies buildDependencies features;
+    };
+    clap_2_24_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "clap";
+      version = "2.24.2";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+      sha256 = "0028bkzafprs6n7ing8lnf7iss2a2zq17qmgadipgdfgvww43rmv";
+      inherit dependencies buildDependencies features;
+    };
+    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "dlib";
+      version = "0.3.1";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+      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;
+    };
+    fs2_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "fs2";
+      version = "0.2.5";
+      authors = [ "Dan Burkert <dan@danburkert.com>" ];
+      sha256 = "0j6l5r95jigbl0lgkm69c82dzq10jipjbm9qnni147hb45gyw790";
+      inherit dependencies buildDependencies features;
+    };
+    gcc_0_3_50_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "gcc";
+      version = "0.3.50";
+      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+      sha256 = "032izcbbyiakv9ck5j3s27p3ddx4468n7qpaxgwi5iswmimjaaj0";
+      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;
+    };
+    lazy_static_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "lazy_static";
+      version = "0.1.16";
+      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+      sha256 = "0lc5ixs5bmnc43lfri2ynh9393l7vs0z3sw2v5rkaady2ivnznpc";
+      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;
+    };
+    libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libc";
+      version = "0.2.23";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
+      inherit dependencies buildDependencies features;
+    };
+    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "libloading";
+      version = "0.3.4";
+      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    memmap_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "memmap";
+      version = "0.4.0";
+      authors = [ "Dan Burkert <dan@danburkert.com>" ];
+      sha256 = "0q2gm5p8n9najc8kccbxxkannmnjh85rin4k8d4y1kg5ymdp6kll";
+      inherit dependencies buildDependencies features;
+    };
+    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "num-traits";
+      version = "0.1.37";
+      authors = [ "The Rust Project Developers" ];
+      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+      inherit dependencies buildDependencies features;
+    };
+    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+      libPath = "src/lib.rs";
+      inherit dependencies buildDependencies features;
+    };
+    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_codegen";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+      inherit dependencies buildDependencies features;
+    };
+    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_generator";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+      inherit dependencies buildDependencies features;
+    };
+    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "phf_shared";
+      version = "0.7.21";
+      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+      libPath = "src/lib.rs";
+      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;
+    };
+    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;
+    };
+    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;
+    };
+    serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde";
+      version = "0.9.15";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+      inherit dependencies buildDependencies features;
+    };
+    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "serde_json";
+      version = "0.9.10";
+      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+      inherit dependencies buildDependencies features;
+    };
+    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "siphasher";
+      version = "0.2.2";
+      authors = [ "Frank Denis <github@pureftpd.org>" ];
+      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+      inherit dependencies buildDependencies features;
+    };
+    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;
+    };
+    target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "target_build_utils";
+      version = "0.3.1";
+      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+      sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "tempfile";
+      version = "2.1.5";
+      authors = [ "Steven Allen <steven@stebalien.com>" ];
+      sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "term_size";
+      version = "0.3.0";
+      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+      sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+      inherit dependencies buildDependencies features;
+    };
+    unicode_segmentation_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "unicode-segmentation";
+      version = "1.2.0";
+      authors = [ "kwantam <kwantam@gmail.com>" ];
+      sha256 = "0yz43x7wrhr3n7a2zsinx3r60yxsdqicg8a5kycyyhdaq1zmiz1y";
+      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;
+    };
+    vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "vec_map";
+      version = "0.8.0";
+      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 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_client_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-client";
+      version = "0.9.6";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "1908h6ilvq2cxph1lxv1vzrb3dcfx4x6pf6pszxwifsfqva8nm34";
+      build = "build.rs";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_kbd_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-kbd";
+      version = "0.9.0";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "1x0f7n79hjwf5fclf62fpzjp05xdzc93xw84zgyrn8f1hill3qhj";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_scanner_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-scanner";
+      version = "0.9.6";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "1w5cyc48g4x5w3rakb4sji5328rl5yph1abmjbh5h4slkm4n76g1";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-sys";
+      version = "0.6.0";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
+      inherit dependencies buildDependencies features;
+    };
+    wayland_sys_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wayland-sys";
+      version = "0.9.6";
+      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+      sha256 = "0izw50pmj1r10hmr29gi8ps01avs6zjwisywijlq7wr268h6yxcg";
+      inherit dependencies buildDependencies features;
+    };
+    wc_lock_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "wc-lock";
+      version = "0.1.0";
+      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+      sha256 = "1fwfqzhqa8zqxx18amc129xfp1lrb7y9qxi92jqr856xiq4r8ypk";
+      build = "build.rs";
+      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;
+    };
+    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+      crateName = "xml-rs";
+      version = "0.3.6";
+      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
+      libPath = "src/lib.rs";
+      libName = "xml";
+      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+      inherit dependencies buildDependencies features;
+    };
+
+in
+rec {
+  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
+  atty_0_2_2 = atty_0_2_2_ rec {
+    dependencies = (if !(kernel == "windows") then [ libc_0_2_23 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+  };
+  libc_0_2_23_features."default".from_atty_0_2_2__default = true;
+  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
+  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
+  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
+  bitflags_0_8_2 = bitflags_0_8_2_ rec {
+    features = mkFeatures bitflags_0_8_2_features;
+  };
+  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
+  byteorder_0_5_3 = byteorder_0_5_3_ rec {
+    features = mkFeatures byteorder_0_5_3_features;
+  };
+  byteorder_0_5_3_features."std".self_default = hasDefault byteorder_0_5_3_features;
+  clap_2_24_2 = clap_2_24_2_ rec {
+    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_2 strsim_0_6_0 term_size_0_3_0 unicode_segmentation_1_2_0 unicode_width_0_1_4 vec_map_0_8_0 ]
+      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_3_0] else []);
+    features = mkFeatures clap_2_24_2_features;
+  };
+  clap_2_24_2_features."".self = true;
+  clap_2_24_2_features."ansi_term".self_color = hasFeature (clap_2_24_2_features."color" or {});
+  clap_2_24_2_features."atty".self_color = hasFeature (clap_2_24_2_features."color" or {});
+  clap_2_24_2_features."suggestions".self_default = hasDefault clap_2_24_2_features;
+  clap_2_24_2_features."color".self_default = hasDefault clap_2_24_2_features;
+  clap_2_24_2_features."wrap_help".self_default = hasDefault clap_2_24_2_features;
+  clap_2_24_2_features."clippy".self_lints = hasFeature (clap_2_24_2_features."lints" or {});
+  clap_2_24_2_features."strsim".self_suggestions = hasFeature (clap_2_24_2_features."suggestions" or {});
+  clap_2_24_2_features."term_size".self_wrap_help = hasFeature (clap_2_24_2_features."wrap_help" or {});
+  clap_2_24_2_features."yaml-rust".self_yaml = hasFeature (clap_2_24_2_features."yaml" or {});
+  ansi_term_0_9_0_features."default".from_clap_2_24_2__default = true;
+  atty_0_2_2_features."default".from_clap_2_24_2__default = true;
+  bitflags_0_8_2_features."default".from_clap_2_24_2__default = true;
+  clippy_0_0_0_features."default".from_clap_2_24_2__default = true;
+  strsim_0_6_0_features."default".from_clap_2_24_2__default = true;
+  term_size_0_3_0_features."default".from_clap_2_24_2__default = true;
+  unicode_segmentation_1_2_0_features."default".from_clap_2_24_2__default = true;
+  unicode_width_0_1_4_features."default".from_clap_2_24_2__default = true;
+  vec_map_0_8_0_features."default".from_clap_2_24_2__default = true;
+  yaml_rust_0_0_0_features."default".from_clap_2_24_2__default = true;
+  dlib_0_3_1 = dlib_0_3_1_ rec {
+    dependencies = [ libloading_0_3_4 ];
+    features = mkFeatures dlib_0_3_1_features;
+  };
+  dlib_0_3_1_features."".self = true;
+  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
+  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
+  fs2_0_2_5 = fs2_0_2_5_ rec {
+    dependencies = [ kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ];
+  };
+  kernel32_sys_0_2_2_features."default".from_fs2_0_2_5__default = true;
+  libc_0_2_23_features."default".from_fs2_0_2_5__default = true;
+  winapi_0_2_8_features."default".from_fs2_0_2_5__default = true;
+  gcc_0_3_50 = gcc_0_3_50_ rec {
+    dependencies = [];
+    features = mkFeatures gcc_0_3_50_features;
+  };
+  gcc_0_3_50_features."rayon".self_parallel = hasFeature (gcc_0_3_50_features."parallel" or {});
+  rayon_0_0_0_features."default".from_gcc_0_3_50__default = true;
+  itoa_0_3_1 = itoa_0_3_1_ rec {};
+  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
+    dependencies = [ winapi_0_2_8 ];
+    buildDependencies = [ winapi_build_0_1_1 ];
+  };
+  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
+  lazy_static_0_1_16 = lazy_static_0_1_16_ rec {
+    features = mkFeatures lazy_static_0_1_16_features;
+  };
+  lazy_static_0_1_16_features."".self = true;
+  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
+    dependencies = [];
+    features = mkFeatures lazy_static_0_2_8_features;
+  };
+  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
+  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
+  libc_0_2_23 = libc_0_2_23_ rec {
+    features = mkFeatures libc_0_2_23_features;
+  };
+  libc_0_2_23_features."use_std".self_default = hasDefault libc_0_2_23_features;
+  libloading_0_3_4 = libloading_0_3_4_ rec {
+    dependencies = [ lazy_static_0_2_8 ]
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    buildDependencies = [ target_build_utils_0_3_1 ];
+  };
+  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
+  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
+  memmap_0_4_0 = memmap_0_4_0_ rec {
+    dependencies = [ fs2_0_2_5 kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ];
+  };
+  fs2_0_2_5_features."default".from_memmap_0_4_0__default = true;
+  kernel32_sys_0_2_2_features."default".from_memmap_0_4_0__default = true;
+  libc_0_2_23_features."default".from_memmap_0_4_0__default = true;
+  winapi_0_2_8_features."default".from_memmap_0_4_0__default = true;
+  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
+  phf_0_7_21 = phf_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 ];
+    features = mkFeatures phf_0_7_21_features;
+  };
+  phf_0_7_21_features."".self = true;
+  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
+  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
+  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
+  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
+    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
+  };
+  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
+  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
+    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
+  };
+  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
+  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
+  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
+    dependencies = [ siphasher_0_2_2 ];
+    features = mkFeatures phf_shared_0_7_21_features;
+  };
+  phf_shared_0_7_21_features."".self = true;
+  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
+  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
+  rand_0_3_15 = rand_0_3_15_ rec {
+    dependencies = [ libc_0_2_23 ];
+  };
+  libc_0_2_23_features."default".from_rand_0_3_15__default = true;
+  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
+    dependencies = [ semver_0_1_20 ];
+  };
+  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
+  semver_0_1_20 = semver_0_1_20_ rec {};
+  serde_0_9_15 = serde_0_9_15_ rec {
+    dependencies = [];
+    features = mkFeatures serde_0_9_15_features;
+  };
+  serde_0_9_15_features."unstable".self_alloc = hasFeature (serde_0_9_15_features."alloc" or {});
+  serde_0_9_15_features."alloc".self_collections = hasFeature (serde_0_9_15_features."collections" or {});
+  serde_0_9_15_features."std".self_default = hasDefault serde_0_9_15_features;
+  serde_0_9_15_features."serde_derive".self_derive = hasFeature (serde_0_9_15_features."derive" or {});
+  serde_0_9_15_features."serde_derive".self_playground = hasFeature (serde_0_9_15_features."playground" or {});
+  serde_0_9_15_features."unstable".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
+  serde_0_9_15_features."std".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
+  serde_derive_0_0_0_features."default".from_serde_0_9_15__default = true;
+  serde_json_0_9_10 = serde_json_0_9_10_ rec {
+    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ];
+    features = mkFeatures serde_json_0_9_10_features;
+  };
+  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
+  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
+  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
+  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
+  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
+  serde_0_9_15_features."default".from_serde_json_0_9_10__default = true;
+  siphasher_0_2_2 = siphasher_0_2_2_ rec {
+    dependencies = [];
+  };
+  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
+  strsim_0_6_0 = strsim_0_6_0_ rec {};
+  target_build_utils_0_3_1 = target_build_utils_0_3_1_ rec {
+    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
+      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
+    buildDependencies = [ phf_codegen_0_7_21 ];
+    features = mkFeatures target_build_utils_0_3_1_features;
+  };
+  target_build_utils_0_3_1_features."".self = true;
+  target_build_utils_0_3_1_features."serde_json".self_default = hasDefault target_build_utils_0_3_1_features;
+  phf_0_7_21_features."default".from_target_build_utils_0_3_1__default = true;
+  serde_json_0_9_10_features."default".from_target_build_utils_0_3_1__default = true;
+  tempfile_2_1_5 = tempfile_2_1_5_ rec {
+    dependencies = [ rand_0_3_15 ]
+      ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_23 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    buildDependencies = [ rustc_version_0_1_7 ];
+  };
+  rand_0_3_15_features."default".from_tempfile_2_1_5__default = true;
+  libc_0_2_23_features."default".from_tempfile_2_1_5__default = true;
+  kernel32_sys_0_2_2_features."default".from_tempfile_2_1_5__default = true;
+  winapi_0_2_8_features."default".from_tempfile_2_1_5__default = true;
+  term_size_0_3_0 = term_size_0_3_0_ rec {
+    dependencies = []
+      ++ (if !(kernel == "windows") then [ libc_0_2_23 ] else [])
+      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
+    features = mkFeatures term_size_0_3_0_features;
+  };
+  term_size_0_3_0_features."clippy".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
+  term_size_0_3_0_features."nightly".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
+  term_size_0_3_0_features."lints".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
+  term_size_0_3_0_features."nightly".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
+  clippy_0_0_0_features."default".from_term_size_0_3_0__default = true;
+  libc_0_2_23_features."default".from_term_size_0_3_0__default = true;
+  kernel32_sys_0_2_2_features."default".from_term_size_0_3_0__default = true;
+  winapi_0_2_8_features."default".from_term_size_0_3_0__default = true;
+  unicode_segmentation_1_2_0 = unicode_segmentation_1_2_0_ rec {
+    features = mkFeatures unicode_segmentation_1_2_0_features;
+  };
+  unicode_segmentation_1_2_0_features."".self = true;
+  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
+    features = mkFeatures unicode_width_0_1_4_features;
+  };
+  unicode_width_0_1_4_features."".self = true;
+  vec_map_0_8_0 = vec_map_0_8_0_ rec {
+    dependencies = [];
+    features = mkFeatures vec_map_0_8_0_features;
+  };
+  vec_map_0_8_0_features."serde".self_eders = hasFeature (vec_map_0_8_0_features."eders" or {});
+  vec_map_0_8_0_features."serde_derive".self_eders = hasFeature (vec_map_0_8_0_features."eders" or {});
+  serde_0_0_0_features."default".from_vec_map_0_8_0__default = true;
+  serde_derive_0_0_0_features."default".from_vec_map_0_8_0__default = true;
+  wayland_client_0_9_6 = wayland_client_0_9_6_ rec {
+    dependencies = [ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_9_6 ];
+    buildDependencies = [ wayland_scanner_0_9_6 ];
+    features = mkFeatures wayland_client_0_9_6_features;
+  };
+  wayland_client_0_9_6_features."egl".self_default = hasDefault wayland_client_0_9_6_features;
+  wayland_client_0_9_6_features."cursor".self_default = hasDefault wayland_client_0_9_6_features;
+  bitflags_0_7_0_features."default".from_wayland_client_0_9_6__default = true;
+  libc_0_2_23_features."default".from_wayland_client_0_9_6__default = true;
+  wayland_sys_0_9_6_features."client".from_wayland_client_0_9_6 = true;
+  wayland_sys_0_9_6_features."cursor".from_wayland_client_0_9_6__cursor = hasFeature (wayland_client_0_9_6_features."cursor" or {});
+  wayland_sys_0_9_6_features."dlopen".from_wayland_client_0_9_6__dlopen = hasFeature (wayland_client_0_9_6_features."dlopen" or {});
+  wayland_sys_0_9_6_features."egl".from_wayland_client_0_9_6__egl = hasFeature (wayland_client_0_9_6_features."egl" or {});
+  wayland_sys_0_9_6_features."default".from_wayland_client_0_9_6__default = true;
+  wayland_kbd_0_9_0 = wayland_kbd_0_9_0_ rec {
+    dependencies = [ bitflags_0_7_0 dlib_0_3_1 lazy_static_0_2_8 memmap_0_4_0 wayland_client_0_9_6 ];
+  };
+  bitflags_0_7_0_features."default".from_wayland_kbd_0_9_0__default = true;
+  dlib_0_3_1_features."default".from_wayland_kbd_0_9_0__default = true;
+  lazy_static_0_2_8_features."default".from_wayland_kbd_0_9_0__default = true;
+  memmap_0_4_0_features."default".from_wayland_kbd_0_9_0__default = true;
+  wayland_client_0_9_6_features."default".from_wayland_kbd_0_9_0__default = true;
+  wayland_scanner_0_9_6 = wayland_scanner_0_9_6_ rec {
+    dependencies = [ xml_rs_0_3_6 ];
+  };
+  xml_rs_0_3_6_features."default".from_wayland_scanner_0_9_6__default = true;
+  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
+    dependencies = [ dlib_0_3_1 lazy_static_0_1_16 ]
+      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_1_16] else []);
+    features = mkFeatures wayland_sys_0_6_0_features;
+  };
+  wayland_sys_0_6_0_features."".self = true;
+  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
+  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
+  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
+  lazy_static_0_1_16_features."default".from_wayland_sys_0_6_0__default = true;
+  libc_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
+  wayland_sys_0_9_6 = wayland_sys_0_9_6_ rec {
+    dependencies = [ dlib_0_3_1 lazy_static_0_2_8 ]
+      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_2_8] else []);
+    features = mkFeatures wayland_sys_0_9_6_features;
+  };
+  wayland_sys_0_9_6_features."".self = true;
+  wayland_sys_0_9_6_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_9_6_features."dlopen" or {});
+  wayland_sys_0_9_6_features."libc".self_server = hasFeature (wayland_sys_0_9_6_features."server" or {});
+  dlib_0_3_1_features."dlopen".from_wayland_sys_0_9_6__dlopen = hasFeature (wayland_sys_0_9_6_features."dlopen" or {});
+  dlib_0_3_1_features."default".from_wayland_sys_0_9_6__default = true;
+  lazy_static_0_2_8_features."default".from_wayland_sys_0_9_6__default = true;
+  libc_0_0_0_features."default".from_wayland_sys_0_9_6__default = true;
+  wc_lock_0_1_0 = wc_lock_0_1_0_ rec {
+    dependencies = [ byteorder_0_5_3 clap_2_24_2 libc_0_2_23 tempfile_2_1_5 wayland_client_0_9_6 wayland_kbd_0_9_0 wayland_sys_0_6_0 ];
+    buildDependencies = [ gcc_0_3_50 ];
+  };
+  byteorder_0_5_3_features."default".from_wc_lock_0_1_0__default = true;
+  clap_2_24_2_features."default".from_wc_lock_0_1_0__default = true;
+  libc_0_2_23_features."default".from_wc_lock_0_1_0__default = true;
+  tempfile_2_1_5_features."default".from_wc_lock_0_1_0__default = true;
+  wayland_client_0_9_6_features."cursor".from_wc_lock_0_1_0 = true;
+  wayland_client_0_9_6_features."dlopen".from_wc_lock_0_1_0 = true;
+  wayland_client_0_9_6_features."default".from_wc_lock_0_1_0__default = true;
+  wayland_kbd_0_9_0_features."default".from_wc_lock_0_1_0__default = true;
+  wayland_sys_0_6_0_features."client".from_wc_lock_0_1_0 = true;
+  wayland_sys_0_6_0_features."dlopen".from_wc_lock_0_1_0 = true;
+  wayland_sys_0_6_0_features."default".from_wc_lock_0_1_0__default = true;
+  winapi_0_2_8 = winapi_0_2_8_ rec {};
+  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
+  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
+    dependencies = [ bitflags_0_7_0 ];
+  };
+  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+}