about summary refs log tree commit diff
path: root/pkgs/build-support/trivial-builders.nix
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2010-05-03 09:13:17 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2010-05-03 09:13:17 +0000
commit796ffd9f71b94d6f78cadf4c3214778ec181dd67 (patch)
treef1dc1eac7b915da621a6ec74d3d0fad54a799cf1 /pkgs/build-support/trivial-builders.nix
parent2d9ba975e788a134c254e1967758f85f9db4e876 (diff)
downloadnixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar.gz
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar.bz2
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar.lz
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar.xz
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.tar.zst
nixlib-796ffd9f71b94d6f78cadf4c3214778ec181dd67.zip
Move "fetchurl restricted" code to requireFile.
This reverts r21474 and r21467.
Also migrate wtk (r21472) to new API.

svn path=/nixpkgs/trunk/; revision=21575
Diffstat (limited to 'pkgs/build-support/trivial-builders.nix')
-rw-r--r--pkgs/build-support/trivial-builders.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 25ae340629b1..992e28476f06 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -73,6 +73,36 @@ rec {
   linkFarm = name: entries: runCommand name {} ("mkdir -p $out; cd $out; \n" +
     (stdenv.lib.concatMapStrings (x: "ln -s '${x.path}' '${x.name}';\n") entries));
 
+  # Require file
+  requireFile = {name, sha256, url ? null, message ? null} :
+    assert (message != null) || (url != null);
+    let msg =
+      if message != null then message
+      else ''
+        Unfortunately, we may not download file ${name} automatically.
+        Please, go to ${url}, download it yourself, and add it to the Nix store
+        using either
+          nix-store --add-fixed sha256 ${name}
+        or
+          nix-prefetch-url file://path/to/${name}
+      '';
+    in
+    stdenv.mkDerivation {
+      inherit name;
+      outputHashAlgo = "sha256";
+      outputHash = sha256;
+      builder = writeScript "restrict-message" ''
+source ${stdenv}/setup
+cat <<_EOF_
+
+***
+${msg}
+***
+
+_EOF_
+      '';
+    };
+
   # Search in the environment if the same program exists with a set uid or
   # set gid bit.  If it exists, run the first program found, otherwise run
   # the default binary.