fetchRepoProject: Fix the GnuPG verification

The verification was failing with the following error:
gpg: keyblock resource '/tmp/nix-build-XYZ.drv-0/.repo/repo/./.repoconfig/gnupg/pubring.kbx': No such file or directory

Using an absolute path for $HOME fixes this.

And since 175ecbab91 the dependencies on
"git" and "gnupg" aren't required anymore as "gitRepo" already covers
them.
This commit is contained in:
Michael Weiss 2017-09-16 17:57:14 +02:00
parent 50ce8abccf
commit 62b9d78b18

View File

@ -1,4 +1,4 @@
{ stdenv, git, gitRepo, gnupg ? null, cacert, copyPathsToStore }: { stdenv, gitRepo, cacert, copyPathsToStore }:
{ name, manifest, rev ? "HEAD", sha256 { name, manifest, rev ? "HEAD", sha256
, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "" , repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
@ -45,11 +45,14 @@ in stdenv.mkDerivation {
"GIT_PROXY_COMMAND" "SOCKS_SERVER" "GIT_PROXY_COMMAND" "SOCKS_SERVER"
]; ];
buildInputs = [ git gitRepo cacert ] ++ optional (gnupg != null) [ gnupg ]; buildInputs = [ gitRepo cacert ];
GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt"; GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
buildCommand = '' buildCommand = ''
# Path must be absolute (e.g. for GnuPG: ~/.repoconfig/gnupg/pubring.kbx)
export HOME="$(pwd)"
mkdir .repo mkdir .repo
${optionalString (local_manifests != []) '' ${optionalString (local_manifests != []) ''
mkdir .repo/local_manifests mkdir .repo/local_manifests
@ -58,7 +61,6 @@ in stdenv.mkDerivation {
done done
''} ''}
export HOME=.repo
repo init ${concatStringsSep " " repoInitFlags} repo init ${concatStringsSep " " repoInitFlags}
repo sync --jobs=$NIX_BUILD_CORES --current-branch repo sync --jobs=$NIX_BUILD_CORES --current-branch
${optionalString (!createMirror) "rm -rf $out/.repo"} ${optionalString (!createMirror) "rm -rf $out/.repo"}