From 959eaa1eb834fd47ceab3c5bbbe4967e808d530b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 4 Feb 2019 16:14:09 +0100 Subject: [PATCH] daemon: Add "/guix" to default 'nixLibexecDir'. This makes it easier to run the uninstalled daemon. * nix/local.mk (libstore_a_CPPFLAGS): Append "/guix" to NIX_LIBEXEC_DIR. * build-aux/pre-inst-env.in (NIX_LIBEXEC_DIR): Adjust comment. * nix/libstore/builtins.cc (builtinDownload): Remove SUBDIR and its use. * nix/libstore/local-store.cc (runAuthenticationProgram): Ditto. * nix/libstore/gc.cc (addAdditionalRoots): Remove "/guix" prefix. * nix/nix-daemon/guix-daemon.cc (main): Ditto. --- build-aux/pre-inst-env.in | 2 +- nix/libstore/builtins.cc | 10 ++-------- nix/libstore/gc.cc | 2 +- nix/libstore/local-store.cc | 10 ++-------- nix/local.mk | 2 +- nix/nix-daemon/guix-daemon.cc | 14 +++----------- 6 files changed, 10 insertions(+), 30 deletions(-) diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in index 050b1b8007..3efab69e7d 100644 --- a/build-aux/pre-inst-env.in +++ b/build-aux/pre-inst-env.in @@ -45,7 +45,7 @@ export PATH # Daemon helpers. NIX_ROOT_FINDER="$abs_top_builddir/nix/scripts/list-runtime-roots" -NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate' +NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'authenticate', etc. export NIX_ROOT_FINDER NIX_LIBEXEC_DIR diff --git a/nix/libstore/builtins.cc b/nix/libstore/builtins.cc index 1f52511c80..f7c7d42484 100644 --- a/nix/libstore/builtins.cc +++ b/nix/libstore/builtins.cc @@ -1,5 +1,5 @@ /* GNU Guix --- Functional package management for GNU - Copyright (C) 2016, 2017, 2018 Ludovic Courtès + Copyright (C) 2016, 2017, 2018, 2019 Ludovic Courtès This file is part of GNU Guix. @@ -50,13 +50,7 @@ static void builtinDownload(const Derivation &drv, /* Tell it about options such as "print-extended-build-trace". */ setenv("_NIX_OPTIONS", settings.pack().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. */ - const string subdir = getenv("GUIX_UNINSTALLED") != NULL - ? "" : "/guix"; - - const string program = settings.nixLibexecDir + subdir + "/download"; + const string program = settings.nixLibexecDir + "/download"; execv(program.c_str(), (char *const *) argv); throw SysError(format("failed to run download program '%1%'") % program); diff --git a/nix/libstore/gc.cc b/nix/libstore/gc.cc index 125f242814..310b8792fe 100644 --- a/nix/libstore/gc.cc +++ b/nix/libstore/gc.cc @@ -340,7 +340,7 @@ Roots LocalStore::findRoots() static void addAdditionalRoots(StoreAPI & store, PathSet & roots) { Path rootFinder = getEnv("NIX_ROOT_FINDER", - settings.nixLibexecDir + "/guix/list-runtime-roots"); + settings.nixLibexecDir + "/list-runtime-roots"); if (rootFinder.empty()) return; diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index eb8a51cc23..892d9300b1 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc @@ -1224,14 +1224,8 @@ static void checkSecrecy(const Path & path) static std::string runAuthenticationProgram(const Strings & args) { - /* Use the 'authenticate' script from 'LIBEXECDIR/guix' or just - 'LIBEXECDIR', depending on whether we're uninstalled or not. */ - const bool installed = getenv("GUIX_UNINSTALLED") == NULL; - const string program = settings.nixLibexecDir - + (installed ? "/guix" : "") - + "/authenticate"; - - return runProgram(program, false, args); + return runProgram(settings.nixLibexecDir + "/authenticate", + false, args); } void LocalStore::exportPath(const Path & path, bool sign, diff --git a/nix/local.mk b/nix/local.mk index ca958ff500..6d7e60e9fb 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -110,7 +110,7 @@ libstore_a_CPPFLAGS = \ -DNIX_STATE_DIR=\"$(localstatedir)/guix\" \ -DNIX_LOG_DIR=\"$(localstatedir)/log/guix\" \ -DGUIX_CONFIGURATION_DIRECTORY=\"$(sysconfdir)/guix\" \ - -DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \ + -DNIX_LIBEXEC_DIR=\"$(libexecdir)/guix\" \ -DNIX_BIN_DIR=\"$(bindir)\" \ -DDEFAULT_CHROOT_DIRS="\"\"" diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 23ef46ef8c..f47d142612 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -480,7 +480,7 @@ main (int argc, char *argv[]) { std::string build_hook; - build_hook = settings.nixLibexecDir + "/guix/offload"; + build_hook = settings.nixLibexecDir + "/offload"; setenv ("NIX_BUILD_HOOK", build_hook.c_str (), 1); } #else @@ -498,16 +498,8 @@ main (int argc, char *argv[]) format ("build log compression: %1%") % settings.logCompression); if (settings.useSubstitutes) - { - /* 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"); - } + settings.substituters.push_back (settings.nixLibexecDir + + "/substitute"); else /* Clear the substituter list to make sure nothing ever gets substituted, regardless of the client's settings. */