From e47428d0e2bd314c330356865f9a56234afa7af7 Mon Sep 17 00:00:00 2001 From: Moritz Ulrich Date: Thu, 9 Oct 2014 20:49:15 +0200 Subject: Infrastructure to build chicken eggs. --- pkgs/build-support/fetchegg/builder.sh | 9 +++++++++ pkgs/build-support/fetchegg/default.nix | 28 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/build-support/fetchegg/builder.sh create mode 100644 pkgs/build-support/fetchegg/default.nix (limited to 'pkgs/build-support') diff --git a/pkgs/build-support/fetchegg/builder.sh b/pkgs/build-support/fetchegg/builder.sh new file mode 100644 index 000000000000..204661063090 --- /dev/null +++ b/pkgs/build-support/fetchegg/builder.sh @@ -0,0 +1,9 @@ +source $stdenv/setup + +header "exporting egg ${eggName} (version $version) into $out" + +mkdir -p $out +chicken-install -r "${eggName}:${version}" +cp -r ${eggName}/* $out/ + +stopNest diff --git a/pkgs/build-support/fetchegg/default.nix b/pkgs/build-support/fetchegg/default.nix new file mode 100644 index 000000000000..223d2098c770 --- /dev/null +++ b/pkgs/build-support/fetchegg/default.nix @@ -0,0 +1,28 @@ +# Fetches a chicken egg from henrietta using `chicken-install -r' +# See: http://wiki.call-cc.org/chicken-projects/egg-index-4.html + +{ stdenv, chicken }: +{ name, version, md5 ? "", sha256 ? "" }: + +stdenv.mkDerivation { + name = "chicken-${name}-export"; + builder = ./builder.sh; + buildInputs = [ chicken ]; + + outputHashAlgo = if sha256 == "" then "md5" else "sha256"; + outputHashMode = "recursive"; + outputHash = if sha256 == "" then md5 else sha256; + + inherit version; + + eggName = name; + + impureEnvVars = [ + # We borrow these environment variables from the caller to allow + # easy proxy configuration. This is impure, but a fixed-output + # derivation like fetchurl is allowed to do so since its result is + # by definition pure. + "http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy" + ]; +} + -- cgit 1.4.1