diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-02-07 14:44:55 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-02-07 14:51:17 +0100 |
commit | 328f7cbe435d79d61f57129d9e3ee90404d6bfda (patch) | |
tree | b7cd83cf01444389ffe68bf80ad92e8b18e972c7 /nix/libstore | |
parent | ef753a1a8f9e7c971957abfda9b672a7728cd073 (diff) |
daemon: Define 'NIX_STORE' before invoking 'guix perform-download'.
Reported by rohit yadav <rohityadav@utexas.edu>
at <https://lists.gnu.org/archive/html/guix-devel/2017-02/msg00191.html>.
This fixes a regression whereby 'guix perform-download' would always see
NIX_STORE as unset and thus use "/gnu/store", leading it to miscompute
the hydra.gnu.org content-addressed URLs when the store file name is not
"/gnu/store".
* nix/libstore/builtins.cc (builtinDownload): Add 'setenv' call for
'NIX_STORE'.
Diffstat (limited to 'nix/libstore')
-rw-r--r-- | nix/libstore/builtins.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/nix/libstore/builtins.cc b/nix/libstore/builtins.cc index 7ed75e5079..a5ebb47737 100644 --- a/nix/libstore/builtins.cc +++ b/nix/libstore/builtins.cc @@ -21,6 +21,7 @@ #include <globals.hh> #include <unistd.h> +#include <cstdlib> namespace nix { @@ -41,6 +42,11 @@ static void builtinDownload(const Derivation &drv, "download", drvPath.c_str(), output.c_str(), NULL }; + /* Tell the script what the store file name is, so that + 'strip-store-file-name' (used for instance to determine the URL of + content-addressed mirrors) works correctly. */ + setenv("NIX_STORE", settings.nixStore.c_str(), 1); + /* XXX: Hack our way to use the 'download' script from 'LIBEXECDIR/guix' or just 'LIBEXECDIR', depending on whether we're running uninstalled or not. */ |