diff options
Diffstat (limited to 'nix/libstore')
-rw-r--r-- | nix/libstore/gc.cc | 11 | ||||
-rw-r--r-- | nix/libstore/globals.cc | 1 | ||||
-rw-r--r-- | nix/libstore/globals.hh | 3 |
3 files changed, 8 insertions, 7 deletions
diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 46171e116c..c466996668 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc @@ -339,14 +339,11 @@ Roots LocalStore::findRoots() static void addAdditionalRoots(StoreAPI & store, PathSet & roots) { - Path rootFinder = getEnv("NIX_ROOT_FINDER", - settings.nixLibexecDir + "/list-runtime-roots"); + debug(format("executing `%1% gc --list-busy' to find additional roots") + % settings.guixProgram); - if (rootFinder.empty()) return; - - debug(format("executing `%1%' to find additional roots") % rootFinder); - - string result = runProgram(rootFinder); + const Strings args = { "gc", "--list-busy" }; + string result = runProgram(settings.guixProgram, false, args); StringSet paths = tokenizeString<StringSet>(result, "\n"); diff --git a/nix/libstore/globals.cc b/nix/libstore/globals.cc index 6df20e7a52..8f7c976fcb 100644 --- a/nix/libstore/globals.cc +++ b/nix/libstore/globals.cc @@ -73,6 +73,7 @@ void Settings::processEnvironment() nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR)); nixBinDir = canonPath(getEnv("NIX_BIN_DIR", NIX_BIN_DIR)); nixDaemonSocketFile = canonPath(nixStateDir + DEFAULT_SOCKET_PATH); + guixProgram = canonPath(getEnv("GUIX", nixBinDir + "/guix")); } diff --git a/nix/libstore/globals.hh b/nix/libstore/globals.hh index b073f724b6..0d9315a41a 100644 --- a/nix/libstore/globals.hh +++ b/nix/libstore/globals.hh @@ -66,6 +66,9 @@ struct Settings { /* File name of the socket the daemon listens to. */ Path nixDaemonSocketFile; + /* Absolute file name of the 'guix' program. */ + Path guixProgram; + /* Whether to keep temporary directories of failed builds. */ bool keepFailed; |