diff --git a/src/libmain/Makefile.am b/src/libmain/Makefile.am index 5b90297fe1..ebf64a2fb9 100644 --- a/src/libmain/Makefile.am +++ b/src/libmain/Makefile.am @@ -8,6 +8,7 @@ AM_CXXFLAGS = \ -DNIX_STATE_DIR=\"$(localstatedir)/nix\" \ -DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \ -DNIX_CONF_DIR=\"$(sysconfdir)/nix\" \ + -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \ -DNIX_VERSION=\"$(VERSION)\" \ -I$(srcdir)/.. ${aterm_include} -I$(srcdir)/../libutil \ -I$(srcdir)/../libstore diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index fb24e83298..d176db7a78 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -92,6 +92,7 @@ static void initAndRun(int argc, char * * argv) nixStateDir = canonPath(getEnv("NIX_STATE_DIR", NIX_STATE_DIR)); nixDBPath = getEnv("NIX_DB_DIR", nixStateDir + "/db"); nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR)); + nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR)); thisSystem = querySetting("system", SYSTEM); diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index f25aabb3dc..d646dd3dec 100644 --- a/src/libstore/gc.cc +++ b/src/libstore/gc.cc @@ -319,7 +319,7 @@ static void findRoots(const Path & path, bool recurseSymlinks, static void addAdditionalRoots(PathSet & roots) { Path rootFinder = getEnv("NIX_ROOT_FINDER", - "/nix/libexec/nix/find-runtime-roots.pl"); /* !!! */ + nixLibexecDir + "/nix/find-runtime-roots.pl"); if (rootFinder.empty()) return; diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc index ac8e19b7d4..f61fe167d8 100644 --- a/src/libstore/globals.cc +++ b/src/libstore/globals.cc @@ -10,6 +10,7 @@ string nixLogDir = "/UNINIT"; string nixStateDir = "/UNINIT"; string nixDBPath = "/UNINIT"; string nixConfDir = "/UNINIT"; +string nixLibexecDir = "/UNINIT"; bool keepFailed = false; bool keepGoing = false; diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh index 408076b751..03aaa13d89 100644 --- a/src/libstore/globals.hh +++ b/src/libstore/globals.hh @@ -28,6 +28,10 @@ extern string nixDBPath; stored. */ extern string nixConfDir; +/* nixLibexecDir is the directory where internal helper programs are + stored. */ +extern string nixLibexecDir; + /* Misc. global flags. */