From eda2c3c2537562e3b18c02a47b19e47ba3d37598 Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue, 22 Feb 2005 15:23:24 +0000
Subject: [PATCH] * Compatibility hack so that Nixpkgs can continue to do hash
 checking   in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8.

---
 src/libstore/build.cc | 9 +++++++++
 src/nix-store/main.cc | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 2dd8caf15..1ba521eb3 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -989,6 +989,15 @@ void DerivationGoal::startBuilder()
     /* Also set TMPDIR and variants to point to this directory. */
     env["TMPDIR"] = env["TEMPDIR"] = env["TMP"] = env["TEMP"] = tmpDir;
 
+    /* Compatibility hack with Nix <= 0.7: if this is a fixed-output
+       derivation, tell the builder, so that for instance `fetchurl'
+       can skip checking the output.  On older Nixes, this environment
+       variable won't be set, so `fetchurl' will do the check. */
+    for (DerivationOutputs::iterator i = drv.outputs.begin(); 
+         i != drv.outputs.end(); ++i)
+        if (i->second.hash != "")
+            env["NIX_OUTPUT_CHECKED"] = "1";
+
     /* Run the builder. */
     printMsg(lvlChatty, format("executing builder `%1%'") %
         drv.builder);
diff --git a/src/nix-store/main.cc b/src/nix-store/main.cc
index 545df0638..6e590ba06 100644
--- a/src/nix-store/main.cc
+++ b/src/nix-store/main.cc
@@ -209,7 +209,7 @@ static void printDrvTree(const Path & drvPath,
          i != drv.inputDrvs.end(); ++i)
         inputs.insert(i->first);
 
-    /* Topologically sorted under the relation A < B iff A \in
+    /* Topologically sort under the relation A < B iff A \in
        closure(B).  That is, if derivation A is an (possibly indirect)
        input of B, then A is printed first.  This has the effect of
        flattening the tree, preventing deeply nested structures.  */
-- 
GitLab