nixpkgs/pkgs/tools/security/gnupg/20.nix

67 lines
2.5 KiB
Nix
Raw Normal View History

{ fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan
2015-03-09 22:16:03 +00:00
, libksba, coreutils, libiconv, pcsclite
2015-03-21 13:01:52 +00:00
# Each of the dependencies below are optional.
# Gnupg can be built without them at the cost of reduced functionality.
, pinentry ? null, guiSupport ? false
2020-04-28 04:29:39 +01:00
, openldap ? null, bzip2 ? null, libusb-compat-0_1 ? null, curl ? null
}:
2015-03-21 13:01:52 +00:00
with stdenv.lib;
assert guiSupport -> pinentry != null;
2015-03-21 13:01:52 +00:00
stdenv.mkDerivation rec {
pname = "gnupg";
version = "2.0.30";
src = fetchurl {
url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
sha256 = "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3";
};
2013-06-11 08:30:54 +01:00
buildInputs
= [ readline zlib libgpgerror libgcrypt libassuan libksba pth
2020-04-28 04:29:39 +01:00
openldap bzip2 libusb-compat-0_1 curl libiconv ];
patches = [ ./gpgkey2ssh-20.patch ];
prePatch = ''
find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
2015-03-18 00:25:51 +00:00
'' + stdenv.lib.optionalString stdenv.isLinux ''
2018-06-21 11:40:15 +01:00
sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
'' + stdenv.lib.optionalString stdenv.isDarwin ''
find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
'' + ''
2014-08-17 21:17:13 +01:00
patch gl/stdint_.h < ${./clang.patch}
'';
pinentryBinaryPath = pinentry.binaryPath or "bin/pinentry";
configureFlags = optional guiSupport "--with-pinentry-pgm=${pinentry}/${pinentryBinaryPath}";
postConfigure = "substituteAllInPlace tools/gpgkey2ssh.c";
checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check";
doCheck = true;
meta = with stdenv.lib; {
homepage = "https://gnupg.org";
description = "Stable (2.0) release of the GNU Privacy Guard, a GPL OpenPGP implementation";
license = licenses.gpl3Plus;
longDescription = ''
The GNU Privacy Guard is the GNU project's complete and free
implementation of the OpenPGP standard as defined by RFC4880. GnuPG
"stable" (2.0) is the current stable version for general use. This is
what most users are still using. GnuPG allows to encrypt and sign your
data and communication, features a versatile key management system as well
as access modules for all kind of public key directories. GnuPG, also
known as GPG, is a command line tool with features for easy integration
with other applications. A wealth of frontend applications and libraries
are available. Version 2 of GnuPG also provides support for S/MIME.
'';
maintainers = with maintainers; [ roconnor ];
platforms = platforms.all;
};
}