summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-02-04 14:17:46 +0100
committerLudovic Courtès <ludo@gnu.org>2019-02-04 16:20:01 +0100
commit4d4a38f620520acc787ff5db2be3736923e14235 (patch)
treef562db4b438358b74cab73cd471308ed7051dc1e
parent44cfbb6233408255d948c02f6c32cbd43707864e (diff)
downloadguix-4d4a38f620520acc787ff5db2be3736923e14235.tar.gz
daemon: Remove the 'NIX_SUBSTITUTERS' environment variable.
* nix/libstore/globals.cc (Settings:update): Remove changes to
'substituters'.
* nix/nix-daemon/guix-daemon.cc (main): Set 'settings.substituters'
directly instead of changing the 'NIX_SUBSTITUTERS' environment variable.
* build-aux/pre-inst-env.in: Remove reference to 'NIX_SUBSTITUTERS'.
-rw-r--r--build-aux/pre-inst-env.in5
-rw-r--r--nix/libstore/globals.cc12
-rw-r--r--nix/nix-daemon/guix-daemon.cc23
3 files changed, 12 insertions, 28 deletions
diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in
index 286a81591c..050b1b8007 100644
--- a/build-aux/pre-inst-env.in
+++ b/build-aux/pre-inst-env.in
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # GNU Guix --- Functional package management for GNU
-# Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
 # Copyright © 2017 Eric Bavier <bavier@cray.com>
 #
 # This file is part of GNU Guix.
@@ -45,10 +45,9 @@ export PATH
 # Daemon helpers.
 
 NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots"
-NIX_SUBSTITUTERS="$abs_top_builddir/nix/scripts/substitute"
 NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate'
 
-export NIX_ROOT_FINDER NIX_SUBSTITUTERS NIX_LIBEXEC_DIR
+export NIX_ROOT_FINDER NIX_LIBEXEC_DIR
 
 NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload"
 @BUILD_DAEMON_OFFLOAD_TRUE@export NIX_BUILD_HOOK
diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc
index 130b0937fd..69f6d06563 100644
--- a/nix/libstore/globals.cc
+++ b/nix/libstore/globals.cc
@@ -141,18 +141,6 @@ void Settings::update()
     _get(gcKeepDerivations, "gc-keep-derivations");
     _get(autoOptimiseStore, "auto-optimise-store");
     _get(envKeepDerivations, "env-keep-derivations");
-
-    string subs = getEnv("NIX_SUBSTITUTERS", "default");
-    if (subs == "default") {
-        substituters.clear();
-#if 0
-        if (getEnv("NIX_OTHER_STORES") != "")
-            substituters.push_back(nixLibexecDir + "/nix/substituters/copy-from-other-stores.pl");
-#endif
-        substituters.push_back(nixLibexecDir + "/nix/substituters/download-using-manifests.pl");
-        substituters.push_back(nixLibexecDir + "/nix/substituters/download-from-binary-cache.pl");
-    } else
-        substituters = tokenizeString<Strings>(subs, ":");
 }
 
 
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc
index 8fdab2d116..23ef46ef8c 100644
--- a/nix/nix-daemon/guix-daemon.cc
+++ b/nix/nix-daemon/guix-daemon.cc
@@ -1,5 +1,5 @@
 /* GNU Guix --- Functional package management for GNU
-   Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+   Copyright (C) 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
    Copyright (C) 2006, 2010, 2012, 2014 Eelco Dolstra <e.dolstra@tudelft.nl>
 
    This file is part of GNU Guix.
@@ -499,22 +499,19 @@ main (int argc, char *argv[])
 
       if (settings.useSubstitutes)
 	{
-	  string subs = getEnv ("NIX_SUBSTITUTERS", "default");
-
-	  if (subs == "default")
-	    {
-	      string subst =
-		settings.nixLibexecDir + "/guix/substitute";
-	      setenv ("NIX_SUBSTITUTERS", subst.c_str (), 1);
-	    }
+	  /* XXX: Hack our way to use the 'substitute' script from
+	     'LIBEXECDIR/guix' or just 'LIBEXECDIR', depending on whether
+	     we're running uninstalled or not.  */
+	  const string subdir = getenv("GUIX_UNINSTALLED") != NULL
+	    ? "" : "/guix";
+
+	  settings.substituters.push_back (settings.nixLibexecDir
+					   + subdir + "/substitute");
 	}
       else
 	/* Clear the substituter list to make sure nothing ever gets
 	   substituted, regardless of the client's settings.  */
-	setenv ("NIX_SUBSTITUTERS", "", 1);
-
-      /* Effect the $NIX_SUBSTITUTERS change.  */
-      settings.update ();
+	settings.substituters.clear ();
 
       if (geteuid () == 0 && settings.buildUsersGroup.empty ())
 	fprintf (stderr, _("warning: daemon is running as root, so \