nixpkgs/pkgs/tools/security/gnupg/1.nix
Artturin f9fdf2d402 treewide: move NIX_CFLAGS_COMPILE to the env attrset
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper

this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
2023-02-22 21:23:04 +02:00

40 lines
1.6 KiB
Nix

{ lib, stdenv, fetchurl, readline, bzip2 }:
stdenv.mkDerivation rec {
pname = "gnupg";
version = "1.4.23";
src = fetchurl {
url = "mirror://gnupg/gnupg/gnupg-${version}.tar.bz2";
sha256 = "1fkq4sqldvf6a25mm2qz95swv1qjg464736091w51djiwqbjyin9";
};
buildInputs = [ readline bzip2 ];
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: ../util/libutil.a(estream-printf.o):/build/gnupg-1.4.23/util/../include/memory.h:100: multiple definition of
# `memory_debug_mode'; gpgsplit.o:/build/gnupg-1.4.23/tools/../include/memory.h:100: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
doCheck = true;
meta = with lib; {
homepage = "https://gnupg.org";
description = "Classic (1.4) 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
"classic" (1.4) is the old standalone version which is most suitable for
older or embedded platforms. 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.
'';
platforms = platforms.all;
mainProgram = "gpg";
};
}