diff options
author | Marius Bakke <mbakke@fastmail.com> | 2018-11-20 01:14:12 +0100 |
---|---|---|
committer | Marius Bakke <mbakke@fastmail.com> | 2018-11-20 01:14:12 +0100 |
commit | 4f70db97a040b35f125484ce8885766ca5807dd4 (patch) | |
tree | 30274f4a57e4a149127125fb6df626dd1d9f9cf0 /nix/libstore/local-store.cc | |
parent | 2d546858b139e5fcf2cbdf9958a17fd98803ac4c (diff) | |
parent | 9acfe275adf1bc27483ba58c6d86a84ba20aa08f (diff) | |
download | guix-4f70db97a040b35f125484ce8885766ca5807dd4.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'nix/libstore/local-store.cc')
-rw-r--r-- | nix/libstore/local-store.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/nix/libstore/local-store.cc b/nix/libstore/local-store.cc index 4c55c6ea0d..0aed59710f 100644 --- a/nix/libstore/local-store.cc +++ b/nix/libstore/local-store.cc @@ -1222,6 +1222,18 @@ 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); +} + void LocalStore::exportPath(const Path & path, bool sign, Sink & sink) { @@ -1276,7 +1288,8 @@ void LocalStore::exportPath(const Path & path, bool sign, args.push_back(secretKey); args.push_back("-in"); args.push_back(hashFile); - string signature = runProgram(OPENSSL_PATH, true, args); + + string signature = runAuthenticationProgram(args); writeString(signature, hashAndWriteSink); @@ -1366,7 +1379,7 @@ Path LocalStore::importPath(bool requireSignature, Source & source) args.push_back("-pubin"); args.push_back("-in"); args.push_back(sigFile); - string hash2 = runProgram(OPENSSL_PATH, true, args); + string hash2 = runAuthenticationProgram(args); /* Note: runProgram() throws an exception if the signature is invalid. */ |