From d1270ac85b811c476ae3bff22a60b11b1788b7db Mon Sep 17 00:00:00 2001 From: wucke13 Date: Mon, 21 Oct 2019 01:37:16 +0200 Subject: [PATCH] gnugp: adding option for minimal build Basically a flavour of gnugpg, which solely containts `bin/gnupg`. --- pkgs/tools/security/gnupg/22.nix | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/pkgs/tools/security/gnupg/22.nix b/pkgs/tools/security/gnupg/22.nix index f62f10c8cf9d..e54a1e1c5db9 100644 --- a/pkgs/tools/security/gnupg/22.nix +++ b/pkgs/tools/security/gnupg/22.nix @@ -1,17 +1,17 @@ { fetchurl, fetchpatch, stdenv, pkgconfig, libgcrypt, libassuan, libksba -, libgpgerror, libiconv, npth, gettext, texinfo, pcsclite, sqlite -, buildPackages +, libgpgerror, libiconv, npth, gettext, texinfo, buildPackages # Each of the dependencies below are optional. # Gnupg can be built without them at the cost of reduced functionality. -, pinentry ? null, guiSupport ? false -, adns ? null, gnutls ? null, libusb ? null, openldap ? null -, readline ? null, zlib ? null, bzip2 ? null +, guiSupport ? true, enableMinimal ? false +, adns ? null , bzip2 ? null , gnutls ? null , libusb ? null , openldap ? null +, pcsclite ? null , pinentry ? null , readline ? null , sqlite ? null , zlib ? +null }: with stdenv.lib; -assert guiSupport -> pinentry != null; +assert guiSupport -> pinentry != null && enableMinimal == false; stdenv.mkDerivation rec { pname = "gnupg"; @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { postPatch = '' sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' \ configure doc/dirmngr.texi doc/gnupg.info-1 - '' + stdenv.lib.optionalString stdenv.isLinux '' + '' + stdenv.lib.optionalString ( stdenv.isLinux && pcsclite != null) '' sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c ''; #" fix Emacs syntax highlighting :-( @@ -50,7 +50,14 @@ stdenv.mkDerivation rec { "--with-npth-prefix=${npth}" ] ++ optional guiSupport "--with-pinentry-pgm=${pinentry}/${pinentryBinaryPath}"; - postInstall = '' + postInstall = if enableMinimal + then '' + rm -r $out/{libexec,sbin,share} + for f in `find $out/bin -type f -not -name gpg` + do + rm $f + done + '' else '' mkdir -p $out/lib/systemd/user for f in doc/examples/systemd-user/*.{service,socket} ; do substitute $f $out/lib/systemd/user/$(basename $f) \