diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-12-12 21:08:16 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-12-12 21:08:16 +0100 |
commit | c2b679516f79ae349421f22d4da26915eb9905e4 (patch) | |
tree | a314232fca96d470800ef3177d15d2753572b6df /pkgs/build-support | |
parent | 19dbfb66c0d66692bbd121937f42e28842578e20 (diff) | |
parent | 5eb4a8339c7f33e4239aebe0ebfa7b0cdceee6b6 (diff) | |
download | nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar.gz nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar.bz2 nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar.lz nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar.xz nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.tar.zst nixlib-c2b679516f79ae349421f22d4da26915eb9905e4.zip |
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/rust/build-rust-crate.nix | 382 | ||||
-rw-r--r-- | pkgs/build-support/rust/carnix.nix | 875 | ||||
-rw-r--r-- | pkgs/build-support/rust/default-crate-overrides.nix | 10 | ||||
-rw-r--r-- | pkgs/build-support/rust/fetchcrate.nix | 35 | ||||
-rw-r--r-- | pkgs/build-support/vm/default.nix | 34 |
5 files changed, 1309 insertions, 27 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate.nix b/pkgs/build-support/rust/build-rust-crate.nix new file mode 100644 index 000000000000..72bb3b80492a --- /dev/null +++ b/pkgs/build-support/rust/build-rust-crate.nix @@ -0,0 +1,382 @@ +# Code for buildRustCrate, a Nix function that builds Rust code, just +# like Cargo, but using Nix instead. +# +# This can be useful for deploying packages with NixOps, and to share +# binary dependencies between projects. + +{ lib, buildPlatform, stdenv, defaultCrateOverrides, fetchCrate, ncurses, rustc }: + +let buildCrate = { crateName, crateVersion, crateAuthors, buildDependencies, + dependencies, completeDeps, completeBuildDeps, + crateFeatures, libName, build, release, libPath, + crateType, metadata, crateBin, finalBins, + verbose, colors }: + + let depsDir = lib.concatStringsSep " " dependencies; + completeDepsDir = lib.concatStringsSep " " completeDeps; + completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; + makeDeps = dependencies: + (lib.concatMapStringsSep " " (dep: + let extern = lib.strings.replaceStrings ["-"] ["_"] dep.libName; in + (if dep.crateType == "lib" then + " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}.rlib" + else + " --extern ${extern}=${dep.out}/lib/lib${extern}-${dep.metadata}${buildPlatform.extensions.sharedLibrary}") + ) dependencies); + deps = makeDeps dependencies; + buildDeps = makeDeps buildDependencies; + optLevel = if release then 3 else 0; + rustcOpts = (if release then "-C opt-level=3" else "-C debuginfo=2"); + rustcMeta = "-C metadata=${metadata} -C extra-filename=-${metadata}"; + version_ = lib.splitString "-" crateVersion; + versionPre = if lib.tail version_ == [] then "" else builtins.elemAt version_ 1; + version = lib.splitString "." (lib.head version_); + authors = lib.concatStringsSep ":" crateAuthors; + in '' + norm="" + bold="" + green="" + boldgreen="" + if [[ "${colors}" -eq "always" ]]; then + norm="$(printf '\033[0m')" #returns to "normal" + bold="$(printf '\033[0;1m')" #set bold + green="$(printf '\033[0;32m')" #set green + boldgreen="$(printf '\033[0;1;32m')" #set bold, and set green. + fi + + echo_build_heading() { + start="" + end="" + if [[ x"${colors}" -eq x"always" ]]; then + start="$(printf '\033[0;1;32m')" #set bold, and set green. + end="$(printf '\033[0m')" #returns to "normal" + fi + if (( $# == 1 )); then + echo "$start""Building $1""$end" + else + echo "$start""Building $1 ($2)""$end" + fi + } + + noisily() { + start="" + end="" + if [[ x"${colors}" -eq x"always" ]]; then + start="$(printf '\033[0;1;32m')" #set bold, and set green. + end="$(printf '\033[0m')" #returns to "normal" + fi + ${lib.optionalString verbose '' + echo -n "$start"Running "$end" + echo $@ + ''} + $@ + } + + symlink_dependency() { + # $1 is the nix-store path of a dependency + i=$1 + dest=target/deps + if [ ! -z $2 ]; then + if [ "$2" = "--buildDep" ]; then + dest=target/buildDeps + fi + fi + ln -s -f $i/lib/*.rlib $dest #*/ + ln -s -f $i/lib/*.so $i/lib/*.dylib $dest #*/ + if [ -e "$i/lib/link" ]; then + cat $i/lib/link >> target/link + cat $i/lib/link >> target/link.final + fi + if [ -e $i/env ]; then + source $i/env + fi + } + + build_lib() { + lib_src=$1 + echo_build_heading $lib_src ${libName} + + noisily rustc --crate-name $CRATE_NAME $lib_src --crate-type ${crateType} \ + ${rustcOpts} ${rustcMeta} ${crateFeatures} --out-dir target/lib \ + --emit=dep-info,link -L dependency=target/deps ${deps} --cap-lints allow \ + $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} + + EXTRA_LIB=" --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}.rlib" + if [ -e target/deps/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary} ]; then + EXTRA_LIB="$EXTRA_LIB --extern $CRATE_NAME=target/lib/lib$CRATE_NAME-${metadata}${buildPlatform.extensions.sharedLibrary}" + fi + } + + build_bin() { + crate_name=$1 + crate_name_=$(echo $crate_name | sed -e "s/-/_/g") + main_file="" + if [[ ! -z $2 ]]; then + main_file=$2 + fi + echo_build_heading $@ + noisily rustc --crate-name $crate_name_ $main_file --crate-type bin ${rustcOpts}\ + ${crateFeatures} --out-dir target/bin --emit=dep-info,link -L dependency=target/deps \ + $LINK ${deps}$EXTRA_LIB --cap-lints allow \ + $BUILD_OUT_DIR $EXTRA_BUILD $EXTRA_FEATURES --color ${colors} + if [ "$crate_name_" -ne "$crate_name" ]; then + mv target/bin/$crate_name_ target/bin/$crate_name + fi + } + + runHook preBuild + mkdir -p target/{deps,lib,build,buildDeps} + chmod uga+w target -R + for i in ${completeDepsDir}; do + symlink_dependency $i + done + for i in ${completeBuildDepsDir}; do + symlink_dependency $i --buildDep + done + if [ -e target/link ]; then + sort -u target/link > target/link.sorted + mv target/link.sorted target/link + sort -u target/link.final > target/link.final.sorted + mv target/link.final.sorted target/link.final + tr '\n' ' ' < target/link > target/link_ + fi + EXTRA_BUILD="" + BUILD_OUT_DIR="" + export CARGO_PKG_NAME=${crateName} + export CARGO_PKG_VERSION=${crateVersion} + export CARGO_PKG_AUTHORS="${authors}" + export CARGO_CFG_TARGET_ARCH=${buildPlatform.parsed.cpu.name} + export CARGO_CFG_TARGET_OS=${buildPlatform.parsed.kernel.name} + + export CARGO_CFG_TARGET_ENV="gnu" + export CARGO_MANIFEST_DIR="." + export DEBUG="${toString (!release)}" + export OPT_LEVEL="${toString optLevel}" + export TARGET="${buildPlatform.config}" + export HOST="${buildPlatform.config}" + export PROFILE=${if release then "release" else "debug"} + export OUT_DIR=$(pwd)/target/build/${crateName}.out + export CARGO_PKG_VERSION_MAJOR=${builtins.elemAt version 0} + export CARGO_PKG_VERSION_MINOR=${builtins.elemAt version 1} + export CARGO_PKG_VERSION_PATCH=${builtins.elemAt version 2} + if [ -n "${versionPre}" ]; then + export CARGO_PKG_VERSION_PRE="${versionPre}" + fi + + BUILD="" + if [[ ! -z "${build}" ]] ; then + BUILD=${build} + elif [[ -e "build.rs" ]]; then + BUILD="build.rs" + fi + if [[ ! -z "$BUILD" ]] ; then + echo_build_heading "$BUILD" ${libName} + mkdir -p target/build/${crateName} + EXTRA_BUILD_FLAGS="" + if [ -e target/link_ ]; then + EXTRA_BUILD_FLAGS=$(cat target/link_) + fi + if [ -e target/link.build ]; then + EXTRA_BUILD_FLAGS="$EXTRA_BUILD_FLAGS $(cat target/link.build)" + fi + noisily rustc --crate-name build_script_build $BUILD --crate-type bin ${rustcOpts} \ + ${crateFeatures} --out-dir target/build/${crateName} --emit=dep-info,link \ + -L dependency=target/buildDeps ${buildDeps} --cap-lints allow $EXTRA_BUILD_FLAGS --color ${colors} + + mkdir -p target/build/${crateName}.out + export RUST_BACKTRACE=1 + BUILD_OUT_DIR="-L $OUT_DIR" + mkdir -p $OUT_DIR + target/build/${crateName}/build_script_build > target/build/${crateName}.opt + set +e + EXTRA_BUILD=$(sed -n "s/^cargo:rustc-flags=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ') + EXTRA_FEATURES=$(sed -n "s/^cargo:rustc-cfg=\(.*\)/--cfg \1/p" target/build/${crateName}.opt | tr '\n' ' ') + EXTRA_LINK=$(sed -n "s/^cargo:rustc-link-lib=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ') + EXTRA_LINK_SEARCH=$(sed -n "s/^cargo:rustc-link-search=\(.*\)/\1/p" target/build/${crateName}.opt | tr '\n' ' ') + CRATENAME=$(echo ${crateName} | sed -e "s/\(.*\)-sys$/\U\1/") + grep -P "^cargo:(?!(rustc-|warning=|rerun-if-changed=|rerun-if-env-changed))" target/build/${crateName}.opt \ + | sed -e "s/cargo:\([^=]*\)=\(.*\)/export DEP_$(echo $CRATENAME)_\U\1\E=\2/" > target/env + + set -e + if [ -n "$(ls target/build/${crateName}.out)" ]; then + + if [ -e "${libPath}" ] ; then + cp -r target/build/${crateName}.out/* $(dirname ${libPath}) #*/ + else + cp -r target/build/${crateName}.out/* src #*/ + fi + fi + fi + + EXTRA_LIB="" + CRATE_NAME=$(echo ${libName} | sed -e "s/-/_/g") + + if [ -e target/link_ ]; then + EXTRA_BUILD="$(cat target/link_) $EXTRA_BUILD" + fi + + if [ -e "${libPath}" ] ; then + build_lib ${libPath} + elif [ -e src/lib.rs ] ; then + build_lib src/lib.rs + elif [ -e src/${libName}.rs ] ; then + build_lib src/${libName}.rs + fi + + echo "$EXTRA_LINK_SEARCH" | while read i; do + if [ ! -z "$i" ]; then + for lib in $i; do + echo "-L $lib" >> target/link + L=$(echo $lib | sed -e "s#$(pwd)/target/build#$out/lib#") + echo "-L $L" >> target/link.final + done + fi + done + echo "$EXTRA_LINK" | while read i; do + if [ ! -z "$i" ]; then + for lib in $i; do + echo "-l $lib" >> target/link + echo "-l $lib" >> target/link.final + done + fi + done + + if [ -e target/link ]; then + sort -u target/link.final > target/link.final.sorted + mv target/link.final.sorted target/link.final + sort -u target/link > target/link.sorted + mv target/link.sorted target/link + + tr '\n' ' ' < target/link > target/link_ + LINK=$(cat target/link_) + fi + + mkdir -p target/bin + echo "${crateBin}" | sed -n 1'p' | tr ',' '\n' | while read BIN; do + if [ ! -z "$BIN" ]; then + build_bin $BIN + fi + done + ${lib.optionalString (crateBin == "") '' + if [[ -e src/main.rs ]]; then + build_bin ${crateName} src/main.rs + fi + for i in src/bin/*.rs; do #*/ + build_bin "$(basename $i .rs)" "$i" + done + ''} + # Remove object files to avoid "wrong ELF type" + find target -type f -name "*.o" -print0 | xargs -0 rm -f + runHook postBuild + '' + finalBins; + + installCrate = crateName: '' + mkdir -p $out + if [ -s target/env ]; then + cp target/env $out/env + fi + if [ -s target/link.final ]; then + mkdir -p $out/lib + cp target/link.final $out/lib/link + fi + if [ "$(ls -A target/lib)" ]; then + mkdir -p $out/lib + cp target/lib/* $out/lib #*/ + fi + if [ "$(ls -A target/build)" ]; then # */ + mkdir -p $out/lib + cp -r target/build/* $out/lib # */ + fi + if [ "$(ls -A target/bin)" ]; then + mkdir -p $out/bin + cp -P target/bin/* $out/bin # */ + fi + ''; +in + +crate_: lib.makeOverridable ({ rust, release, verbose, features, buildInputs, crateOverrides }: + +let crate = crate_ // (lib.attrByPath [ crate_.crateName ] (attr: {}) crateOverrides crate_); + buildInputs_ = buildInputs; +in +stdenv.mkDerivation rec { + + inherit (crate) crateName; + + src = if lib.hasAttr "src" crate then + crate.src + else + fetchCrate { inherit (crate) crateName version sha256; }; + name = "rust_${crate.crateName}-${crate.version}"; + buildInputs = [ rust ncurses ] ++ (crate.buildInputs or []) ++ buildInputs_; + dependencies = + builtins.map + (dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; }) + (crate.dependencies or []); + + buildDependencies = + builtins.map + (dep: dep.override { rust = rust; release = release; verbose = verbose; crateOverrides = crateOverrides; }) + (crate.buildDependencies or []); + + completeDeps = lib.lists.unique (dependencies ++ lib.lists.concatMap (dep: dep.completeDeps) dependencies); + completeBuildDeps = lib.lists.unique ( + buildDependencies + ++ lib.lists.concatMap (dep: dep.completeBuildDeps ++ dep.completeDeps) buildDependencies + ); + + crateFeatures = if crate ? features then + lib.concatMapStringsSep " " (f: "--cfg feature=\\\"${f}\\\"") (crate.features ++ features) + else ""; + + libName = if crate ? libName then crate.libName else crate.crateName; + libPath = if crate ? libPath then crate.libPath else ""; + + metadata = builtins.substring 0 10 (builtins.hashString "sha256" (crateName + "-" + crateVersion)); + + crateBin = if crate ? crateBin then + builtins.foldl' (bins: bin: + let name = + lib.strings.replaceStrings ["-"] ["_"] + (if bin ? name then bin.name else crateName); + path = if bin ? path then bin.path else "src/main.rs"; + in + bins + (if bin == "" then "" else ",") + "${name} ${path}" + + ) "" crate.crateBin + else ""; + + finalBins = if crate ? crateBin then + builtins.foldl' (bins: bin: + let name = lib.strings.replaceStrings ["-"] ["_"] + (if bin ? name then bin.name else crateName); + new_name = if bin ? name then bin.name else crateName; + in + if name == new_name then bins else + (bins + "mv target/bin/${name} target/bin/${new_name};") + + ) "" crate.crateBin + else ""; + + build = if crate ? build then crate.build else ""; + crateVersion = crate.version; + crateAuthors = if crate ? authors && lib.isList crate.authors then crate.authors else []; + crateType = + if lib.attrByPath ["procMacro"] false crate then "proc-macro" else + if lib.attrByPath ["plugin"] false crate then "dylib" else "lib"; + colors = lib.attrByPath [ "colors" ] "always" crate; + buildPhase = buildCrate { + inherit crateName dependencies buildDependencies completeDeps completeBuildDeps + crateFeatures libName build release libPath crateType crateVersion + crateAuthors metadata crateBin finalBins verbose colors; + }; + installPhase = installCrate crateName; + +}) { + rust = rustc; + release = true; + verbose = true; + features = []; + buildInputs = []; + crateOverrides = defaultCrateOverrides; +} diff --git a/pkgs/build-support/rust/carnix.nix b/pkgs/build-support/rust/carnix.nix new file mode 100644 index 000000000000..80c0903369af --- /dev/null +++ b/pkgs/build-support/rust/carnix.nix @@ -0,0 +1,875 @@ +# Generated by carnix 0.5.0: carnix -o carnix.nix --src ./. 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_6_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "aho-corasick"; + version = "0.6.3"; + authors = [ "Andrew Gallant <jamslam@gmail.com>" ]; + sha256 = "1cpqzf6acj8lm06z3f1cg41wn6c2n9l3v49nh0dvimv4055qib6k"; + libName = "aho_corasick"; + crateBin = [ { name = "aho-corasick-dot"; } ]; + inherit dependencies buildDependencies features; + }; + ansi_term_0_10_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "ansi_term"; + version = "0.10.2"; + authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ]; + sha256 = "07k0hfmlhv43lihyxb9d81l5mq5zlpqvv30dkfd3knmv2ginasn9"; + inherit dependencies buildDependencies features; + }; + atty_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "atty"; + version = "0.2.3"; + authors = [ "softprops <d.tangren@gmail.com>" ]; + sha256 = "0zl0cjfgarp5y78nd755lpki5bbkj4hgmi88v265m543yg29i88f"; + inherit dependencies buildDependencies features; + }; + backtrace_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "backtrace"; + version = "0.3.4"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ]; + sha256 = "1caba8w3rqd5ghr88ghyz5wgkf81dgx18bj1llkax6qmianc6gk7"; + inherit dependencies buildDependencies features; + }; + backtrace_sys_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "backtrace-sys"; + version = "0.1.16"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" ]; + sha256 = "1cn2c8q3dn06crmnk0p62czkngam4l8nf57wy33nz1y5g25pszwy"; + build = "build.rs"; + 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_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "bitflags"; + version = "1.0.1"; + authors = [ "The Rust Project Developers" ]; + sha256 = "0p4b3nr0s5nda2qmm7xdhnvh4lkqk3xd8l9ffmwbvqw137vx7mj1"; + inherit dependencies buildDependencies features; + }; + carnix_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "carnix"; + version = "0.5.0"; + authors = [ "pe@pijul.org <pe@pijul.org>" ]; + sha256 = "0mrprfa9l6q351ci77zr305jk5wdii8gamaphd2iars4xwn26lj4"; + inherit dependencies buildDependencies features; + }; + cc_1_0_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "cc"; + version = "1.0.3"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" ]; + sha256 = "193pwqgh79w6k0k29svyds5nnlrwx44myqyrw605d5jj4yk2zmpr"; + inherit dependencies buildDependencies features; + }; + cfg_if_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "cfg-if"; + version = "0.1.2"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" ]; + sha256 = "0x06hvrrqy96m97593823vvxcgvjaxckghwyy2jcyc8qc7c6cyhi"; + inherit dependencies buildDependencies features; + }; + clap_2_28_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "clap"; + version = "2.28.0"; + authors = [ "Kevin K. <kbknapp@gmail.com>" ]; + sha256 = "0m0rj9xw6mja4gdhqmaldv0q5y5jfsfzbyzfd70mm3857aynq03k"; + inherit dependencies buildDependencies features; + }; + dbghelp_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "dbghelp-sys"; + version = "0.2.0"; + authors = [ "Peter Atashian <retep998@gmail.com>" ]; + sha256 = "0ylpi3bbiy233m57hnisn1df1v0lbl7nsxn34b0anzsgg440hqpq"; + libName = "dbghelp"; + build = "build.rs"; + inherit dependencies buildDependencies features; + }; + dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "dtoa"; + version = "0.4.2"; + authors = [ "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw"; + inherit dependencies buildDependencies features; + }; + either_1_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "either"; + version = "1.4.0"; + authors = [ "bluss" ]; + sha256 = "04kpfd84lvyrkb2z4sljlz2d3d5qczd0sb1yy37fgijq2yx3vb37"; + inherit dependencies buildDependencies features; + }; + env_logger_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "env_logger"; + version = "0.4.3"; + authors = [ "The Rust Project Developers" ]; + sha256 = "0nrx04p4xa86d5kc7aq4fwvipbqji9cmgy449h47nc9f1chafhgg"; + inherit dependencies buildDependencies features; + }; + error_chain_0_11_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "error-chain"; + version = "0.11.0"; + authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ]; + sha256 = "19nz17q6dzp0mx2jhh9qbj45gkvvgcl7zq9z2ai5a8ihbisfj6d7"; + inherit dependencies buildDependencies features; + }; + fuchsia_zircon_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "fuchsia-zircon"; + version = "0.2.1"; + authors = [ "Raph Levien <raph@google.com>" ]; + sha256 = "0yd4rd7ql1vdr349p6vgq2dnwmpylky1kjp8g1zgvp250jxrhddb"; + inherit dependencies buildDependencies features; + }; + fuchsia_zircon_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "fuchsia-zircon-sys"; + version = "0.2.0"; + authors = [ "Raph Levien <raph@google.com>" ]; + sha256 = "1yrqsrjwlhl3di6prxf5xmyd82gyjaysldbka5wwk83z11mpqh4w"; + inherit dependencies buildDependencies features; + }; + itertools_0_7_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "itertools"; + version = "0.7.3"; + authors = [ "bluss" ]; + sha256 = "128a69cnmgpj38rs6lcwzya773d2vx7f9y7012iycjf9yi2pyckj"; + inherit dependencies buildDependencies features; + }; + itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "itoa"; + version = "0.3.4"; + authors = [ "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9"; + 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_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "lazy_static"; + version = "0.2.11"; + authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ]; + sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm"; + inherit dependencies buildDependencies features; + }; + libc_0_2_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "libc"; + version = "0.2.33"; + authors = [ "The Rust Project Developers" ]; + sha256 = "1l7synziccnvarsq2kk22vps720ih6chmn016bhr2bq54hblbnl1"; + inherit dependencies buildDependencies features; + }; + libsqlite3_sys_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "libsqlite3-sys"; + version = "0.9.0"; + authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ]; + sha256 = "1pnx3i9h85si6cs4nhazfb28hsvk7dn0arnfvpdzpjdnj9z38q57"; + build = "build.rs"; + inherit dependencies buildDependencies features; + }; + linked_hash_map_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "linked-hash-map"; + version = "0.4.2"; + authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" "Andrew Paseltiner <apaseltiner@gmail.com>" ]; + sha256 = "04da208h6jb69f46j37jnvsw2i1wqplglp4d61csqcrhh83avbgl"; + inherit dependencies buildDependencies features; + }; + log_0_3_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "log"; + version = "0.3.8"; + authors = [ "The Rust Project Developers" ]; + sha256 = "1c43z4z85sxrsgir4s1hi84558ab5ic7jrn5qgmsiqcv90vvn006"; + inherit dependencies buildDependencies features; + }; + lru_cache_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "lru-cache"; + version = "0.1.1"; + authors = [ "Stepan Koltsov <stepan.koltsov@gmail.com>" ]; + sha256 = "1hl6kii1g54sq649gnscv858mmw7a02xj081l4vcgvrswdi2z8fw"; + inherit dependencies buildDependencies features; + }; + memchr_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "memchr"; + version = "1.0.2"; + authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ]; + sha256 = "0dfb8ifl9nrc9kzgd5z91q6qg87sh285q1ih7xgrsglmqfav9lg7"; + inherit dependencies buildDependencies features; + }; + nom_3_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "nom"; + version = "3.2.1"; + authors = [ "contact@geoffroycouprie.com" ]; + sha256 = "1vcllxrz9hdw6j25kn020ka3psz1vkaqh1hm3yfak2240zrxgi07"; + inherit dependencies buildDependencies features; + }; + num_traits_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "num-traits"; + version = "0.1.40"; + authors = [ "The Rust Project Developers" ]; + sha256 = "1fr8ghp4i97q3agki54i0hpmqxv3s65i2mqd1pinc7w7arc3fplw"; + inherit dependencies buildDependencies features; + }; + 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; + }; + quote_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "quote"; + version = "0.3.15"; + authors = [ "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "09il61jv4kd1360spaj46qwyl21fv1qz18fsv2jra8wdnlgl5jsg"; + inherit dependencies buildDependencies features; + }; + rand_0_3_18_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "rand"; + version = "0.3.18"; + authors = [ "The Rust Project Developers" ]; + sha256 = "15d7c3myn968dzjs0a2pgv58hzdavxnq6swgj032lw2v966ir4xv"; + inherit dependencies buildDependencies features; + }; + redox_syscall_0_1_32_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "redox_syscall"; + version = "0.1.32"; + authors = [ "Jeremy Soller <jackpot51@gmail.com>" ]; + sha256 = "1axxj8x6ngh6npkzqc5h216fajkcyrdxdgb7m2f0n5xfclbk47fv"; + libName = "syscall"; + inherit dependencies buildDependencies features; + }; + redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "redox_termios"; + version = "0.1.1"; + authors = [ "Jeremy Soller <jackpot51@gmail.com>" ]; + sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh"; + libPath = "src/lib.rs"; + inherit dependencies buildDependencies features; + }; + regex_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "regex"; + version = "0.2.2"; + authors = [ "The Rust Project Developers" ]; + sha256 = "1f1zrrynfylg0vcfyfp60bybq4rp5g1yk2k7lc7fyz7mmc7k2qr7"; + inherit dependencies buildDependencies features; + }; + regex_syntax_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "regex-syntax"; + version = "0.4.1"; + authors = [ "The Rust Project Developers" ]; + sha256 = "01yrsm68lj86ad1whgg1z95c2pfsvv58fz8qjcgw7mlszc0c08ls"; + inherit dependencies buildDependencies features; + }; + rusqlite_0_13_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "rusqlite"; + version = "0.13.0"; + authors = [ "John Gallagher <jgallagher@bignerdranch.com>" ]; + sha256 = "1hj2464ar2y4324sk3jx7m9byhkcp60krrrs1v1i8dlhhlnkb9hc"; + inherit dependencies buildDependencies features; + }; + rustc_demangle_0_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "rustc-demangle"; + version = "0.1.5"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" ]; + sha256 = "096kkcx9j747700fhxj1s4rlwkj21pqjmvj64psdj6bakb2q13nc"; + inherit dependencies buildDependencies features; + }; + serde_1_0_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "serde"; + version = "1.0.21"; + authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "10almq7pvx8s4ryiqk8gf7fj5igl0yq6dcjknwc67rkmxd8q50w3"; + inherit dependencies buildDependencies features; + }; + serde_derive_1_0_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "serde_derive"; + version = "1.0.21"; + authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "0r20qyimm9scfaz7lc0swnhik9d045zklmbidd0zzpd4b2f3jsqm"; + procMacro = true; + inherit dependencies buildDependencies features; + }; + serde_derive_internals_0_17_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "serde_derive_internals"; + version = "0.17.0"; + authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "1g1j3v6pj9wbcz3v3w4smjpwrcdwjicmf6yd5cbai04as9iwhw74"; + inherit dependencies buildDependencies features; + }; + serde_json_1_0_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "serde_json"; + version = "1.0.6"; + authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "1kacyc59splwbg8gr7qs32pp9smgy1khq0ggnv07yxhs7h355vjz"; + inherit dependencies buildDependencies features; + }; + strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "strsim"; + version = "0.6.0"; + authors = [ "Danny Guo <dannyguo91@gmail.com>" ]; + sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd"; + inherit dependencies buildDependencies features; + }; + syn_0_11_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "syn"; + version = "0.11.11"; + authors = [ "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "0yw8ng7x1dn5a6ykg0ib49y7r9nhzgpiq2989rqdp7rdz3n85502"; + inherit dependencies buildDependencies features; + }; + synom_0_11_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "synom"; + version = "0.11.3"; + authors = [ "David Tolnay <dtolnay@gmail.com>" ]; + sha256 = "1l6d1s9qjfp6ng2s2z8219igvlv7gyk8gby97sdykqc1r93d8rhc"; + inherit dependencies buildDependencies features; + }; + tempdir_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "tempdir"; + version = "0.3.5"; + authors = [ "The Rust Project Developers" ]; + sha256 = "0rirc5prqppzgd15fm8ayan349lgk2k5iqdkrbwrwrv5pm4znsnz"; + inherit dependencies buildDependencies features; + }; + termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "termion"; + version = "1.5.1"; + authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ]; + sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1"; + inherit dependencies buildDependencies features; + }; + textwrap_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "textwrap"; + version = "0.9.0"; + authors = [ "Martin Geisler <martin@geisler.net>" ]; + sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb"; + inherit dependencies buildDependencies features; + }; + thread_local_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "thread_local"; + version = "0.3.4"; + authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ]; + sha256 = "1y6cwyhhx2nkz4b3dziwhqdvgq830z8wjp32b40pjd8r0hxqv2jr"; + inherit dependencies buildDependencies features; + }; + time_0_1_38_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "time"; + version = "0.1.38"; + authors = [ "The Rust Project Developers" ]; + sha256 = "1ws283vvz7c6jfiwn53rmc6kybapr4pjaahfxxrz232b0qzw7gcp"; + inherit dependencies buildDependencies features; + }; + toml_0_4_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "toml"; + version = "0.4.5"; + authors = [ "Alex Crichton <alex@alexcrichton.com>" ]; + sha256 = "06zxqhn3y58yzjfaykhcrvlf7p2dnn54kn3g4apmja3cn5b18lkk"; + inherit dependencies buildDependencies features; + }; + unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "unicode-width"; + version = "0.1.4"; + authors = [ "kwantam <kwantam@gmail.com>" ]; + sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl"; + inherit dependencies buildDependencies features; + }; + unicode_xid_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "unicode-xid"; + version = "0.0.4"; + authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ]; + sha256 = "1dc8wkkcd3s6534s5aw4lbjn8m67flkkbnajp5bl8408wdg8rh9v"; + inherit dependencies buildDependencies features; + }; + unreachable_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "unreachable"; + version = "1.0.0"; + authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ]; + sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf"; + inherit dependencies buildDependencies features; + }; + utf8_ranges_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "utf8-ranges"; + version = "1.0.0"; + authors = [ "Andrew Gallant <jamslam@gmail.com>" ]; + sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0"; + inherit dependencies buildDependencies features; + }; + vcpkg_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "vcpkg"; + version = "0.2.2"; + authors = [ "Jim McGrath <jimmc2@gmail.com>" ]; + sha256 = "1fl5j0ksnwrnsrf1b1a9lqbjgnajdipq0030vsbhx81mb7d9478a"; + 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; + }; + void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "void"; + version = "1.0.2"; + authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ]; + sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3"; + inherit dependencies buildDependencies features; + }; + winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "winapi"; + version = "0.2.8"; + authors = [ "Peter Atashian <retep998@gmail.com>" ]; + sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as"; + inherit dependencies buildDependencies features; + }; + winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate { + crateName = "winapi-build"; + version = "0.1.1"; + authors = [ "Peter Atashian <retep998@gmail.com>" ]; + sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga"; + libName = "build"; + inherit dependencies buildDependencies features; + }; + +in +rec { + aho_corasick_0_6_3 = aho_corasick_0_6_3_ rec { + dependencies = [ memchr_1_0_2 ]; + }; + memchr_1_0_2_features."default".from_aho_corasick_0_6_3__default = true; + ansi_term_0_10_2 = ansi_term_0_10_2_ rec {}; + atty_0_2_3 = atty_0_2_3_ rec { + dependencies = (if kernel == "redox" then [ termion_1_5_1 ] else []) + ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_33 ] else []) + ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []); + }; + termion_1_5_1_features."default".from_atty_0_2_3__default = true; + libc_0_2_33_features."default".from_atty_0_2_3__default = false; + kernel32_sys_0_2_2_features."default".from_atty_0_2_3__default = true; + winapi_0_2_8_features."default".from_atty_0_2_3__default = true; + backtrace_0_3_4 = backtrace_0_3_4_ rec { + dependencies = [ cfg_if_0_1_2 rustc_demangle_0_1_5 ] + ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then [ backtrace_sys_0_1_16 ] + ++ (if lib.lists.any (x: x == "backtrace-sys") features then [backtrace_sys_0_1_16] else []) else []) + ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_33 ] else []) + ++ (if kernel == "windows" then [ dbghelp_sys_0_2_0 kernel32_sys_0_2_2 winapi_0_2_8 ] + ++ (if lib.lists.any (x: x == "dbghelp-sys") features then [dbghelp_sys_0_2_0] else []) ++ (if lib.lists.any (x: x == "kernel32-sys") features then [kernel32_sys_0_2_2] else []) ++ (if lib.lists.any (x: x == "winapi") features then [winapi_0_2_8] else []) else []); + features = mkFeatures backtrace_0_3_4_features; + }; + backtrace_0_3_4_features."".self = true; + backtrace_0_3_4_features."kernel32-sys".self_dbghelp = hasFeature (backtrace_0_3_4_features."dbghelp" or {}); + backtrace_0_3_4_features."winapi".self_dbghelp = hasFeature (backtrace_0_3_4_features."dbghelp" or {}); + backtrace_0_3_4_features."dbghelp-sys".self_dbghelp = hasFeature (backtrace_0_3_4_features."dbghelp" or {}); + backtrace_0_3_4_features."libunwind".self_default = hasDefault backtrace_0_3_4_features; + backtrace_0_3_4_features."libbacktrace".self_default = hasDefault backtrace_0_3_4_features; + backtrace_0_3_4_features."coresymbolication".self_default = hasDefault backtrace_0_3_4_features; + backtrace_0_3_4_features."dladdr".self_default = hasDefault backtrace_0_3_4_features; + backtrace_0_3_4_features."dbghelp".self_default = hasDefault backtrace_0_3_4_features; + backtrace_0_3_4_features."addr2line".self_gimli-symbolize = hasFeature (backtrace_0_3_4_features."gimli-symbolize" or {}); + backtrace_0_3_4_features."findshlibs".self_gimli-symbolize = hasFeature (backtrace_0_3_4_features."gimli-symbolize" or {}); + backtrace_0_3_4_features."backtrace-sys".self_libbacktrace = hasFeature (backtrace_0_3_4_features."libbacktrace" or {}); + backtrace_0_3_4_features."rustc-serialize".self_serialize-rustc = hasFeature (backtrace_0_3_4_features."serialize-rustc" or {}); + backtrace_0_3_4_features."serde".self_serialize-serde = hasFeature (backtrace_0_3_4_features."serialize-serde" or {}); + backtrace_0_3_4_features."serde_derive".self_serialize-serde = hasFeature (backtrace_0_3_4_features."serialize-serde" or {}); + addr2line_0_0_0_features."default".from_backtrace_0_3_4__default = true; + cfg_if_0_1_2_features."default".from_backtrace_0_3_4__default = true; + cpp_demangle_0_0_0_features."default".from_backtrace_0_3_4__default = false; + findshlibs_0_0_0_features."default".from_backtrace_0_3_4__default = true; + rustc_demangle_0_1_5_features."default".from_backtrace_0_3_4__default = true; + rustc_serialize_0_0_0_features."default".from_backtrace_0_3_4__default = true; + serde_0_0_0_features."default".from_backtrace_0_3_4__default = true; + serde_derive_0_0_0_features."default".from_backtrace_0_3_4__default = true; + backtrace_sys_0_1_16_features."default".from_backtrace_0_3_4__default = true; + libc_0_2_33_features."default".from_backtrace_0_3_4__default = true; + dbghelp_sys_0_2_0_features."default".from_backtrace_0_3_4__default = true; + kernel32_sys_0_2_2_features."default".from_backtrace_0_3_4__default = true; + winapi_0_2_8_features."default".from_backtrace_0_3_4__default = true; + backtrace_sys_0_1_16 = backtrace_sys_0_1_16_ rec { + dependencies = [ libc_0_2_33 ]; + buildDependencies = [ cc_1_0_3 ]; + }; + libc_0_2_33_features."default".from_backtrace_sys_0_1_16__default = true; + bitflags_0_7_0 = bitflags_0_7_0_ rec {}; + bitflags_1_0_1 = bitflags_1_0_1_ rec { + features = mkFeatures bitflags_1_0_1_features; + }; + bitflags_1_0_1_features."example_generated".self_default = hasDefault bitflags_1_0_1_features; + carnix_0_5_0 = carnix_0_5_0_ rec { + dependencies = [ clap_2_28_0 env_logger_0_4_3 error_chain_0_11_0 itertools_0_7_3 log_0_3_8 nom_3_2_1 regex_0_2_2 rusqlite_0_13_0 serde_1_0_21 serde_derive_1_0_21 serde_json_1_0_6 tempdir_0_3_5 toml_0_4_5 ]; + }; + clap_2_28_0_features."default".from_carnix_0_5_0__default = true; + env_logger_0_4_3_features."default".from_carnix_0_5_0__default = true; + error_chain_0_11_0_features."default".from_carnix_0_5_0__default = true; + itertools_0_7_3_features."default".from_carnix_0_5_0__default = true; + log_0_3_8_features."default".from_carnix_0_5_0__default = true; + nom_3_2_1_features."default".from_carnix_0_5_0__default = true; + regex_0_2_2_features."default".from_carnix_0_5_0__default = true; + rusqlite_0_13_0_features."default".from_carnix_0_5_0__default = true; + serde_1_0_21_features."default".from_carnix_0_5_0__default = true; + serde_derive_1_0_21_features."default".from_carnix_0_5_0__default = true; + serde_json_1_0_6_features."default".from_carnix_0_5_0__default = true; + tempdir_0_3_5_features."default".from_carnix_0_5_0__default = true; + toml_0_4_5_features."default".from_carnix_0_5_0__default = true; + cc_1_0_3 = cc_1_0_3_ rec { + dependencies = []; + features = mkFeatures cc_1_0_3_features; + }; + cc_1_0_3_features."rayon".self_parallel = hasFeature (cc_1_0_3_features."parallel" or {}); + rayon_0_0_0_features."default".from_cc_1_0_3__default = true; + cfg_if_0_1_2 = cfg_if_0_1_2_ rec {}; + clap_2_28_0 = clap_2_28_0_ rec { + dependencies = [ ansi_term_0_10_2 atty_0_2_3 bitflags_1_0_1 strsim_0_6_0 textwrap_0_9_0 unicode_width_0_1_4 vec_map_0_8_0 ] + ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_10_2] else []) ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_3] else []) ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else []) ++ (if lib.lists.any (x: x == "vec_map") features then [vec_map_0_8_0] else []); + features = mkFeatures clap_2_28_0_features; + }; + clap_2_28_0_features."".self = true; + clap_2_28_0_features."ansi_term".self_color = hasFeature (clap_2_28_0_features."color" or {}); + clap_2_28_0_features."atty".self_color = hasFeature (clap_2_28_0_features."color" or {}); + clap_2_28_0_features."suggestions".self_default = hasDefault clap_2_28_0_features; + clap_2_28_0_features."color".self_default = hasDefault clap_2_28_0_features; + clap_2_28_0_features."vec_map".self_default = hasDefault clap_2_28_0_features; + clap_2_28_0_features."yaml".self_doc = hasFeature (clap_2_28_0_features."doc" or {}); + clap_2_28_0_features."clippy".self_lints = hasFeature (clap_2_28_0_features."lints" or {}); + clap_2_28_0_features."strsim".self_suggestions = hasFeature (clap_2_28_0_features."suggestions" or {}); + clap_2_28_0_features."term_size".self_wrap_help = hasFeature (clap_2_28_0_features."wrap_help" or {}); + clap_2_28_0_features."yaml-rust".self_yaml = hasFeature (clap_2_28_0_features."yaml" or {}); + ansi_term_0_10_2_features."default".from_clap_2_28_0__default = true; + atty_0_2_3_features."default".from_clap_2_28_0__default = true; + bitflags_1_0_1_features."default".from_clap_2_28_0__default = true; + clippy_0_0_0_features."default".from_clap_2_28_0__default = true; + strsim_0_6_0_features."default".from_clap_2_28_0__default = true; + term_size_0_0_0_features."default".from_clap_2_28_0__default = true; + textwrap_0_9_0_features."term_size".from_clap_2_28_0__wrap_help = hasFeature (clap_2_28_0_features."wrap_help" or {}); + textwrap_0_9_0_features."default".from_clap_2_28_0__default = true; + unicode_width_0_1_4_features."default".from_clap_2_28_0__default = true; + vec_map_0_8_0_features."default".from_clap_2_28_0__default = true; + yaml_rust_0_0_0_features."default".from_clap_2_28_0__default = true; + dbghelp_sys_0_2_0 = dbghelp_sys_0_2_0_ rec { + dependencies = [ winapi_0_2_8 ]; + buildDependencies = [ winapi_build_0_1_1 ]; + }; + winapi_0_2_8_features."default".from_dbghelp_sys_0_2_0__default = true; + dtoa_0_4_2 = dtoa_0_4_2_ rec {}; + either_1_4_0 = either_1_4_0_ rec { + dependencies = []; + features = mkFeatures either_1_4_0_features; + }; + either_1_4_0_features."use_std".self_default = hasDefault either_1_4_0_features; + serde_0_0_0_features."derive".from_either_1_4_0 = true; + serde_0_0_0_features."default".from_either_1_4_0__default = true; + env_logger_0_4_3 = env_logger_0_4_3_ rec { + dependencies = [ log_0_3_8 regex_0_2_2 ] + ++ (if lib.lists.any (x: x == "regex") features then [regex_0_2_2] else []); + features = mkFeatures env_logger_0_4_3_features; + }; + env_logger_0_4_3_features."".self = true; + env_logger_0_4_3_features."regex".self_default = hasDefault env_logger_0_4_3_features; + log_0_3_8_features."default".from_env_logger_0_4_3__default = true; + regex_0_2_2_features."default".from_env_logger_0_4_3__default = true; + error_chain_0_11_0 = error_chain_0_11_0_ rec { + dependencies = [ backtrace_0_3_4 ] + ++ (if lib.lists.any (x: x == "backtrace") features then [backtrace_0_3_4] else []); + features = mkFeatures error_chain_0_11_0_features; + }; + error_chain_0_11_0_features."".self = true; + error_chain_0_11_0_features."backtrace".self_default = hasDefault error_chain_0_11_0_features; + error_chain_0_11_0_features."example_generated".self_default = hasDefault error_chain_0_11_0_features; + backtrace_0_3_4_features."default".from_error_chain_0_11_0__default = true; + fuchsia_zircon_0_2_1 = fuchsia_zircon_0_2_1_ rec { + dependencies = [ fuchsia_zircon_sys_0_2_0 ]; + }; + fuchsia_zircon_sys_0_2_0_features."default".from_fuchsia_zircon_0_2_1__default = true; + fuchsia_zircon_sys_0_2_0 = fuchsia_zircon_sys_0_2_0_ rec { + dependencies = [ bitflags_0_7_0 ]; + }; + bitflags_0_7_0_features."default".from_fuchsia_zircon_sys_0_2_0__default = true; + itertools_0_7_3 = itertools_0_7_3_ rec { + dependencies = [ either_1_4_0 ]; + features = mkFeatures itertools_0_7_3_features; + }; + itertools_0_7_3_features."use_std".self_default = hasDefault itertools_0_7_3_features; + either_1_4_0_features."default".from_itertools_0_7_3__default = false; + itoa_0_3_4 = itoa_0_3_4_ rec { + features = mkFeatures itoa_0_3_4_features; + }; + itoa_0_3_4_features."".self = 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_11 = lazy_static_0_2_11_ rec { + dependencies = []; + features = mkFeatures lazy_static_0_2_11_features; + }; + lazy_static_0_2_11_features."compiletest_rs".self_compiletest = hasFeature (lazy_static_0_2_11_features."compiletest" or {}); + lazy_static_0_2_11_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_11_features."spin_no_std" or {}); + lazy_static_0_2_11_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_11_features."spin_no_std" or {}); + compiletest_rs_0_0_0_features."default".from_lazy_static_0_2_11__default = true; + spin_0_0_0_features."default".from_lazy_static_0_2_11__default = true; + libc_0_2_33 = libc_0_2_33_ rec { + features = mkFeatures libc_0_2_33_features; + }; + libc_0_2_33_features."use_std".self_default = hasDefault libc_0_2_33_features; + libsqlite3_sys_0_9_0 = libsqlite3_sys_0_9_0_ rec { + dependencies = (if abi == "msvc" then [] else []); + buildDependencies = [ pkg_config_0_3_9 ] + ++ (if lib.lists.any (x: x == "pkg-config") features then [pkg_config_0_3_9] else []); + features = mkFeatures libsqlite3_sys_0_9_0_features; + }; + libsqlite3_sys_0_9_0_features."bindgen".self_buildtime_bindgen = hasFeature (libsqlite3_sys_0_9_0_features."buildtime_bindgen" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_buildtime_bindgen = hasFeature (libsqlite3_sys_0_9_0_features."buildtime_bindgen" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_buildtime_bindgen = hasFeature (libsqlite3_sys_0_9_0_features."buildtime_bindgen" or {}); + libsqlite3_sys_0_9_0_features."cc".self_bundled = hasFeature (libsqlite3_sys_0_9_0_features."bundled" or {}); + libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_8".self_default = hasDefault libsqlite3_sys_0_9_0_features; + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_6_11 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_11" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_6_11 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_11" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_6_23 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_23" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_6_23 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_23" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_6_8 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_8" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_6_8 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_8" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_7_16 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_16" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_7_16 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_16" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_7_3 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_3" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_7_3 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_3" or {}); + libsqlite3_sys_0_9_0_features."pkg-config".self_min_sqlite_version_3_7_4 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_4" or {}); + libsqlite3_sys_0_9_0_features."vcpkg".self_min_sqlite_version_3_7_4 = hasFeature (libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_4" or {}); + linked_hash_map_0_4_2 = linked_hash_map_0_4_2_ rec { + dependencies = []; + features = mkFeatures linked_hash_map_0_4_2_features; + }; + linked_hash_map_0_4_2_features."heapsize".self_heapsize_impl = hasFeature (linked_hash_map_0_4_2_features."heapsize_impl" or {}); + linked_hash_map_0_4_2_features."serde".self_serde_impl = hasFeature (linked_hash_map_0_4_2_features."serde_impl" or {}); + linked_hash_map_0_4_2_features."serde_test".self_serde_impl = hasFeature (linked_hash_map_0_4_2_features."serde_impl" or {}); + clippy_0_0_0_features."default".from_linked_hash_map_0_4_2__default = true; + heapsize_0_0_0_features."default".from_linked_hash_map_0_4_2__default = true; + serde_0_0_0_features."default".from_linked_hash_map_0_4_2__default = true; + serde_test_0_0_0_features."default".from_linked_hash_map_0_4_2__default = true; + log_0_3_8 = log_0_3_8_ rec { + features = mkFeatures log_0_3_8_features; + }; + log_0_3_8_features."use_std".self_default = hasDefault log_0_3_8_features; + lru_cache_0_1_1 = lru_cache_0_1_1_ rec { + dependencies = [ linked_hash_map_0_4_2 ]; + features = mkFeatures lru_cache_0_1_1_features; + }; + lru_cache_0_1_1_features."heapsize".self_heapsize_impl = hasFeature (lru_cache_0_1_1_features."heapsize_impl" or {}); + heapsize_0_0_0_features."default".from_lru_cache_0_1_1__default = true; + linked_hash_map_0_4_2_features."heapsize_impl".from_lru_cache_0_1_1__heapsize_impl = hasFeature (lru_cache_0_1_1_features."heapsize_impl" or {}); + linked_hash_map_0_4_2_features."default".from_lru_cache_0_1_1__default = true; + memchr_1_0_2 = memchr_1_0_2_ rec { + dependencies = [ libc_0_2_33 ] + ++ (if lib.lists.any (x: x == "libc") features then [libc_0_2_33] else []); + features = mkFeatures memchr_1_0_2_features; + }; + memchr_1_0_2_features."".self = true; + memchr_1_0_2_features."use_std".self_default = hasDefault memchr_1_0_2_features; + memchr_1_0_2_features."libc".self_default = hasDefault memchr_1_0_2_features; + memchr_1_0_2_features."libc".self_use_std = hasFeature (memchr_1_0_2_features."use_std" or {}); + libc_0_2_33_features."use_std".from_memchr_1_0_2__use_std = hasFeature (memchr_1_0_2_features."use_std" or {}); + libc_0_2_33_features."default".from_memchr_1_0_2__default = false; + nom_3_2_1 = nom_3_2_1_ rec { + dependencies = [ memchr_1_0_2 ]; + features = mkFeatures nom_3_2_1_features; + }; + nom_3_2_1_features."std".self_default = hasDefault nom_3_2_1_features; + nom_3_2_1_features."stream".self_default = hasDefault nom_3_2_1_features; + nom_3_2_1_features."compiler_error".self_nightly = hasFeature (nom_3_2_1_features."nightly" or {}); + nom_3_2_1_features."regex".self_regexp = hasFeature (nom_3_2_1_features."regexp" or {}); + nom_3_2_1_features."regexp".self_regexp_macros = hasFeature (nom_3_2_1_features."regexp_macros" or {}); + nom_3_2_1_features."lazy_static".self_regexp_macros = hasFeature (nom_3_2_1_features."regexp_macros" or {}); + compiler_error_0_0_0_features."default".from_nom_3_2_1__default = true; + lazy_static_0_0_0_features."default".from_nom_3_2_1__default = true; + memchr_1_0_2_features."use_std".from_nom_3_2_1__std = hasFeature (nom_3_2_1_features."std" or {}); + memchr_1_0_2_features."default".from_nom_3_2_1__default = false; + regex_0_0_0_features."default".from_nom_3_2_1__default = true; + num_traits_0_1_40 = num_traits_0_1_40_ rec {}; + pkg_config_0_3_9 = pkg_config_0_3_9_ rec {}; + quote_0_3_15 = quote_0_3_15_ rec {}; + rand_0_3_18 = rand_0_3_18_ rec { + dependencies = [ libc_0_2_33 ] + ++ (if kernel == "fuchsia" then [ fuchsia_zircon_0_2_1 ] else []); + features = mkFeatures rand_0_3_18_features; + }; + rand_0_3_18_features."i128_support".self_nightly = hasFeature (rand_0_3_18_features."nightly" or {}); + libc_0_2_33_features."default".from_rand_0_3_18__default = true; + fuchsia_zircon_0_2_1_features."default".from_rand_0_3_18__default = true; + redox_syscall_0_1_32 = redox_syscall_0_1_32_ rec {}; + redox_termios_0_1_1 = redox_termios_0_1_1_ rec { + dependencies = [ redox_syscall_0_1_32 ]; + }; + redox_syscall_0_1_32_features."default".from_redox_termios_0_1_1__default = true; + regex_0_2_2 = regex_0_2_2_ rec { + dependencies = [ aho_corasick_0_6_3 memchr_1_0_2 regex_syntax_0_4_1 thread_local_0_3_4 utf8_ranges_1_0_0 ]; + features = mkFeatures regex_0_2_2_features; + }; + regex_0_2_2_features."simd".self_simd-accel = hasFeature (regex_0_2_2_features."simd-accel" or {}); + aho_corasick_0_6_3_features."default".from_regex_0_2_2__default = true; + memchr_1_0_2_features."default".from_regex_0_2_2__default = true; + regex_syntax_0_4_1_features."default".from_regex_0_2_2__default = true; + simd_0_0_0_features."default".from_regex_0_2_2__default = true; + thread_local_0_3_4_features."default".from_regex_0_2_2__default = true; + utf8_ranges_1_0_0_features."default".from_regex_0_2_2__default = true; + regex_syntax_0_4_1 = regex_syntax_0_4_1_ rec {}; + rusqlite_0_13_0 = rusqlite_0_13_0_ rec { + dependencies = [ bitflags_1_0_1 libsqlite3_sys_0_9_0 lru_cache_0_1_1 time_0_1_38 ]; + features = mkFeatures rusqlite_0_13_0_features; + }; + rusqlite_0_13_0_features."".self = true; + bitflags_1_0_1_features."default".from_rusqlite_0_13_0__default = true; + chrono_0_0_0_features."default".from_rusqlite_0_13_0__default = true; + libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_11".from_rusqlite_0_13_0__backup = hasFeature (rusqlite_0_13_0_features."backup" or {}); + libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_4".from_rusqlite_0_13_0__blob = hasFeature (rusqlite_0_13_0_features."blob" or {}); + libsqlite3_sys_0_9_0_features."buildtime_bindgen".from_rusqlite_0_13_0__buildtime_bindgen = hasFeature (rusqlite_0_13_0_features."buildtime_bindgen" or {}); + libsqlite3_sys_0_9_0_features."bundled".from_rusqlite_0_13_0__bundled = hasFeature (rusqlite_0_13_0_features."bundled" or {}); + libsqlite3_sys_0_9_0_features."min_sqlite_version_3_7_3".from_rusqlite_0_13_0__functions = hasFeature (rusqlite_0_13_0_features."functions" or {}); + libsqlite3_sys_0_9_0_features."sqlcipher".from_rusqlite_0_13_0__sqlcipher = hasFeature (rusqlite_0_13_0_features."sqlcipher" or {}); + libsqlite3_sys_0_9_0_features."min_sqlite_version_3_6_23".from_rusqlite_0_13_0__trace = hasFeature (rusqlite_0_13_0_features."trace" or {}); + libsqlite3_sys_0_9_0_features."default".from_rusqlite_0_13_0__default = true; + lru_cache_0_1_1_features."default".from_rusqlite_0_13_0__default = true; + serde_json_0_0_0_features."default".from_rusqlite_0_13_0__default = true; + time_0_1_38_features."default".from_rusqlite_0_13_0__default = true; + rustc_demangle_0_1_5 = rustc_demangle_0_1_5_ rec {}; + serde_1_0_21 = serde_1_0_21_ rec { + dependencies = []; + features = mkFeatures serde_1_0_21_features; + }; + serde_1_0_21_features."unstable".self_alloc = hasFeature (serde_1_0_21_features."alloc" or {}); + serde_1_0_21_features."std".self_default = hasDefault serde_1_0_21_features; + serde_1_0_21_features."serde_derive".self_derive = hasFeature (serde_1_0_21_features."derive" or {}); + serde_1_0_21_features."serde_derive".self_playground = hasFeature (serde_1_0_21_features."playground" or {}); + serde_derive_0_0_0_features."default".from_serde_1_0_21__default = true; + serde_derive_1_0_21 = serde_derive_1_0_21_ rec { + dependencies = [ quote_0_3_15 serde_derive_internals_0_17_0 syn_0_11_11 ]; + }; + quote_0_3_15_features."default".from_serde_derive_1_0_21__default = true; + serde_derive_internals_0_17_0_features."default".from_serde_derive_1_0_21__default = false; + syn_0_11_11_features."visit".from_serde_derive_1_0_21 = true; + syn_0_11_11_features."default".from_serde_derive_1_0_21__default = true; + serde_derive_internals_0_17_0 = serde_derive_internals_0_17_0_ rec { + dependencies = [ syn_0_11_11 synom_0_11_3 ]; + }; + syn_0_11_11_features."parsing".from_serde_derive_internals_0_17_0 = true; + syn_0_11_11_features."default".from_serde_derive_internals_0_17_0__default = false; + synom_0_11_3_features."default".from_serde_derive_internals_0_17_0__default = true; + serde_json_1_0_6 = serde_json_1_0_6_ rec { + dependencies = [ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_40 serde_1_0_21 ]; + features = mkFeatures serde_json_1_0_6_features; + }; + serde_json_1_0_6_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_1_0_6_features."preserve_order" or {}); + dtoa_0_4_2_features."default".from_serde_json_1_0_6__default = true; + itoa_0_3_4_features."default".from_serde_json_1_0_6__default = true; + linked_hash_map_0_0_0_features."default".from_serde_json_1_0_6__default = true; + num_traits_0_1_40_features."default".from_serde_json_1_0_6__default = true; + serde_1_0_21_features."default".from_serde_json_1_0_6__default = true; + strsim_0_6_0 = strsim_0_6_0_ rec {}; + syn_0_11_11 = syn_0_11_11_ rec { + dependencies = [ quote_0_3_15 synom_0_11_3 unicode_xid_0_0_4 ] + ++ (if lib.lists.any (x: x == "quote") features then [quote_0_3_15] else []) ++ (if lib.lists.any (x: x == "synom") features then [synom_0_11_3] else []) ++ (if lib.lists.any (x: x == "unicode-xid") features then [unicode_xid_0_0_4] else []); + features = mkFeatures syn_0_11_11_features; + }; + syn_0_11_11_features."".self = true; + syn_0_11_11_features."parsing".self_default = hasDefault syn_0_11_11_features; + syn_0_11_11_features."printing".self_default = hasDefault syn_0_11_11_features; + syn_0_11_11_features."unicode-xid".self_parsing = hasFeature (syn_0_11_11_features."parsing" or {}); + syn_0_11_11_features."synom".self_parsing = hasFeature (syn_0_11_11_features."parsing" or {}); + syn_0_11_11_features."quote".self_printing = hasFeature (syn_0_11_11_features."printing" or {}); + quote_0_3_15_features."default".from_syn_0_11_11__default = true; + synom_0_11_3_features."default".from_syn_0_11_11__default = true; + unicode_xid_0_0_4_features."default".from_syn_0_11_11__default = true; + synom_0_11_3 = synom_0_11_3_ rec { + dependencies = [ unicode_xid_0_0_4 ]; + }; + unicode_xid_0_0_4_features."default".from_synom_0_11_3__default = true; + tempdir_0_3_5 = tempdir_0_3_5_ rec { + dependencies = [ rand_0_3_18 ]; + }; + rand_0_3_18_features."default".from_tempdir_0_3_5__default = true; + termion_1_5_1 = termion_1_5_1_ rec { + dependencies = (if !(kernel == "redox") then [ libc_0_2_33 ] else []) + ++ (if kernel == "redox" then [ redox_syscall_0_1_32 redox_termios_0_1_1 ] else []); + }; + libc_0_2_33_features."default".from_termion_1_5_1__default = true; + redox_syscall_0_1_32_features."default".from_termion_1_5_1__default = true; + redox_termios_0_1_1_features."default".from_termion_1_5_1__default = true; + textwrap_0_9_0 = textwrap_0_9_0_ rec { + dependencies = [ unicode_width_0_1_4 ]; + }; + hyphenation_0_0_0_features."default".from_textwrap_0_9_0__default = true; + term_size_0_0_0_features."default".from_textwrap_0_9_0__default = true; + unicode_width_0_1_4_features."default".from_textwrap_0_9_0__default = true; + thread_local_0_3_4 = thread_local_0_3_4_ rec { + dependencies = [ lazy_static_0_2_11 unreachable_1_0_0 ]; + }; + lazy_static_0_2_11_features."default".from_thread_local_0_3_4__default = true; + unreachable_1_0_0_features."default".from_thread_local_0_3_4__default = true; + time_0_1_38 = time_0_1_38_ rec { + dependencies = [ libc_0_2_33 ] + ++ (if kernel == "redox" then [ redox_syscall_0_1_32 ] else []) + ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []); + }; + libc_0_2_33_features."default".from_time_0_1_38__default = true; + rustc_serialize_0_0_0_features."default".from_time_0_1_38__default = true; + redox_syscall_0_1_32_features."default".from_time_0_1_38__default = true; + kernel32_sys_0_2_2_features."default".from_time_0_1_38__default = true; + winapi_0_2_8_features."default".from_time_0_1_38__default = true; + toml_0_4_5 = toml_0_4_5_ rec { + dependencies = [ serde_1_0_21 ]; + }; + serde_1_0_21_features."default".from_toml_0_4_5__default = 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; + unicode_xid_0_0_4 = unicode_xid_0_0_4_ rec { + features = mkFeatures unicode_xid_0_0_4_features; + }; + unicode_xid_0_0_4_features."".self = true; + unreachable_1_0_0 = unreachable_1_0_0_ rec { + dependencies = [ void_1_0_2 ]; + }; + void_1_0_2_features."default".from_unreachable_1_0_0__default = false; + utf8_ranges_1_0_0 = utf8_ranges_1_0_0_ rec {}; + vcpkg_0_2_2 = vcpkg_0_2_2_ rec {}; + 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; + 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; + winapi_0_2_8 = winapi_0_2_8_ rec {}; + winapi_build_0_1_1 = winapi_build_0_1_1_ rec {}; +} diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix new file mode 100644 index 000000000000..c074d46a7f75 --- /dev/null +++ b/pkgs/build-support/rust/default-crate-overrides.nix @@ -0,0 +1,10 @@ +{ pkgconfig, sqlite, openssl, ... }: + +{ + libsqlite3-sys = attrs: { + buildInputs = [ pkgconfig sqlite ]; + }; + openssl-sys = attrs: { + buildInputs = [ pkgconfig openssl ]; + }; +} diff --git a/pkgs/build-support/rust/fetchcrate.nix b/pkgs/build-support/rust/fetchcrate.nix new file mode 100644 index 000000000000..95dfd38b12ae --- /dev/null +++ b/pkgs/build-support/rust/fetchcrate.nix @@ -0,0 +1,35 @@ +{ lib, fetchurl, unzip }: + +{ crateName +, version +, sha256 +, ... } @ args: + +lib.overrideDerivation (fetchurl ({ + + name = "${crateName}-${version}.tar.gz"; + url = "https://crates.io/api/v1/crates/${crateName}/${version}/download"; + recursiveHash = true; + + downloadToTemp = true; + + postFetch = + '' + export PATH=${unzip}/bin:$PATH + + unpackDir="$TMPDIR/unpack" + mkdir "$unpackDir" + cd "$unpackDir" + + renamed="$TMPDIR/${crateName}-${version}.tar.gz" + mv "$downloadedFile" "$renamed" + unpackFile "$renamed" + fn=$(cd "$unpackDir" && echo *) + if [ -f "$unpackDir/$fn" ]; then + mkdir $out + fi + mv "$unpackDir/$fn" "$out" + ''; +} // removeAttrs args [ "crateName" "version" ])) +# Hackety-hack: we actually need unzip hooks, too +(x: {nativeBuildInputs = x.nativeBuildInputs++ [unzip];}) diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix index baaa150b5a05..e31f513c6666 100644 --- a/pkgs/build-support/vm/default.nix +++ b/pkgs/build-support/vm/default.nix @@ -60,21 +60,6 @@ rec { ''; # */ - createDeviceNodes = dev: - '' - mknod -m 666 ${dev}/null c 1 3 - mknod -m 666 ${dev}/zero c 1 5 - mknod -m 666 ${dev}/full c 1 7 - mknod -m 666 ${dev}/random c 1 8 - mknod -m 666 ${dev}/urandom c 1 9 - mknod -m 666 ${dev}/tty c 5 0 - mknod -m 666 ${dev}/ttyS0 c 4 64 - mknod ${dev}/rtc c 254 0 - . /sys/class/block/${hd}/uevent - mknod ${dev}/${hd} b $MAJOR $MINOR - ''; - - stage1Init = writeScript "vm-run-stage1" '' #! ${initrdUtils}/bin/ash -e @@ -109,8 +94,7 @@ rec { insmod $i done - mount -t tmpfs none /dev - ${createDeviceNodes "/dev"} + mount -t devtmpfs devtmpfs /dev ifconfig lo up @@ -302,7 +286,6 @@ rec { touch /mnt/.debug mkdir /mnt/proc /mnt/dev /mnt/sys - ${createDeviceNodes "/mnt/dev"} ''; @@ -353,7 +336,6 @@ rec { ${kmod}/bin/modprobe iso9660 ${kmod}/bin/modprobe ufs ${kmod}/bin/modprobe cramfs - mknod /dev/loop0 b 7 0 mkdir -p $out mkdir -p tmp @@ -377,8 +359,6 @@ rec { ${kmod}/bin/modprobe mtdblock ${kmod}/bin/modprobe jffs2 ${kmod}/bin/modprobe zlib - mknod /dev/mtd0 c 90 0 - mknod /dev/mtdblock0 b 31 0 mkdir -p $out mkdir -p tmp @@ -1980,22 +1960,22 @@ rec { }; debian8i386 = { - name = "debian-8.9-jessie-i386"; - fullName = "Debian 8.9 Jessie (i386)"; + name = "debian-8.10-jessie-i386"; + fullName = "Debian 8.10 Jessie (i386)"; packagesList = fetchurl { url = mirror://debian/dists/jessie/main/binary-i386/Packages.xz; - sha256 = "3c78bdf3b693f2f37737c52d6a7718b3a545956f2a853da79f04a2d15541e811"; + sha256 = "b3aa33bfe0256f72b7aad07b6c714b790d9a20d86c1a448a6f36b35652a82ff0"; }; urlPrefix = mirror://debian; packages = commonDebianPackages; }; debian8x86_64 = { - name = "debian-8.9-jessie-amd64"; - fullName = "Debian 8.9 Jessie (amd64)"; + name = "debian-8.10-jessie-amd64"; + fullName = "Debian 8.10 Jessie (amd64)"; packagesList = fetchurl { url = mirror://debian/dists/jessie/main/binary-amd64/Packages.xz; - sha256 = "0605589ae7a63c690f37bd2567dc12e02a2eb279d9dc200a7310072ad3593e53"; + sha256 = "689e77cdf5334a3fffa5ca504e8131ee9ec88a7616f12c9ea5a3d5ac3100a710"; }; urlPrefix = mirror://debian; packages = commonDebianPackages; |