gpgme: Use fixed path for GnuPG binaries

By default, GPGME tries to search in $PATH for the gpg and gpgconf
binaries. This has the downside, that the library won't work by its own
and needs to have GnuPG in systemPackages or the user environment.

I've stumbled on this while working on one of the dependencies of
nixos-assimilate and nixpart (volume_key), where the testing environment
didn't come with GnuPG in $PATH and thus the tests have failed.

After testing this with a few programs using GPGME, I haven't found any
weird behavior in conjunction with the GnuPG agent.

However one possible implication could be that if the GnuPG used in
$PATH (and the config files in the user's home directory) should be
vastly incompatible, it could lead to failures.

In practice however, the GnuPG1/2 versions pretty much seem to stay
compatible within their major releases so it shouldn't pose a problem.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2016-01-21 01:26:17 +01:00
parent 313faf07ba
commit 39a07cabe8
No known key found for this signature in database
GPG key ID: D0EBD0EC8C2DC961

View file

@ -5,10 +5,8 @@ assert useGnupg1 -> gnupg1 != null;
assert !useGnupg1 -> gnupg != null;
let
gpgPath = if useGnupg1 then
"${gnupg1}/bin/gpg"
else
"${gnupg}/bin/gpg2";
gpgStorePath = if useGnupg1 then gnupg1 else gnupg;
gpgProgram = if useGnupg1 then "gpg" else "gpg2";
in
stdenv.mkDerivation rec {
name = "gpgme-1.6.0";
@ -22,7 +20,10 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig gnupg ];
configureFlags = "--with-gpg=${gpgPath}";
configureFlags = [
"--with-gpg=${gpgStorePath}/bin/${gpgProgram}"
"--enable-fixed-path=${gpgStorePath}/bin"
];
meta = {
homepage = "http://www.gnupg.org/related_software/gpgme";