diff --git a/pkgs/development/libraries/libgcrypt/1.5.nix b/pkgs/development/libraries/libgcrypt/1.5.nix index ebafd0747d8c..990e73d0a63e 100644 --- a/pkgs/development/libraries/libgcrypt/1.5.nix +++ b/pkgs/development/libraries/libgcrypt/1.5.nix @@ -1,20 +1,7 @@ -{ stdenv, fetchurl -, libgpgerror +{ lib, stdenv, fetchurl, libgpgerror, enableCapabilities ? false, libcap }: -# Optional Dependencies -, libcap ? null -}: +assert enableCapabilities -> stdenv.isLinux; -let - mkFlag = trueStr: falseStr: cond: name: val: - if cond == null then null else - "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; - mkWith = mkFlag "with-" "without-"; - - shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; - - optLibcap = shouldUsePkg libcap; -in stdenv.mkDerivation rec { name = "libgcrypt-1.5.4"; @@ -23,18 +10,16 @@ stdenv.mkDerivation rec { sha256 = "0czvqxkzd5y872ipy6s010ifwdwv29sqbnqc4pf56sd486gqvy6m"; }; - buildInputs = [ libgpgerror optLibcap ]; - - configureFlags = [ - (mkWith (optLibcap != null) "capabilities" null) - ]; + buildInputs = + [ libgpgerror ] + ++ lib.optional enableCapabilities libcap; # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config postInstall = '' sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h - '' + stdenv.lib.optionalString (!stdenv.isDarwin && optLibcap != null) '' - sed -i 's,\(-lcap\),-L${optLibcap}/lib \1,' $out/lib/libgcrypt.la + '' + stdenv.lib.optionalString enableCapabilities '' + sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la ''; doCheck = true; diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix index 7d327a499bcc..b01caeb5dd35 100644 --- a/pkgs/development/libraries/libgcrypt/default.nix +++ b/pkgs/development/libraries/libgcrypt/default.nix @@ -1,24 +1,7 @@ -{ stdenv, fetchurl -, libgpgerror +{ lib, stdenv, fetchurl, libgpgerror, enableCapabilities ? false, libcap }: -# Optional Dependencies -, libcap ? null, pth ? null -}: +assert enableCapabilities -> stdenv.isLinux; -let - mkFlag = trueStr: falseStr: cond: name: val: - if cond == null then null else - "--${if cond != false then trueStr else falseStr}${name}${if val != null && cond != false then "=${val}" else ""}"; - mkEnable = mkFlag "enable-" "disable-"; - mkWith = mkFlag "with-" "without-"; - mkOther = mkFlag "" "" true; - - shouldUsePkg = pkg: if pkg != null && stdenv.lib.any (x: x == stdenv.system) pkg.meta.platforms then pkg else null; - - optLibcap = shouldUsePkg libcap; - #optPth = shouldUsePkg pth; - optPth = null; # Broken as of 1.6.3 -in stdenv.mkDerivation rec { name = "libgcrypt-1.6.3"; @@ -27,29 +10,26 @@ stdenv.mkDerivation rec { sha256 = "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21"; }; - buildInputs = [ libgpgerror optLibcap optPth ]; - - configureFlags = [ - (mkWith (optLibcap != null) "capabilities" null) - (mkEnable (optPth != null) "random-daemon" null) - ]; + buildInputs = + [ libgpgerror ] + ++ lib.optional enableCapabilities libcap; # Make sure libraries are correct for .pc and .la files # Also make sure includes are fixed for callers who don't use libgpgcrypt-config postInstall = '' sed -i 's,#include ,#include "${libgpgerror}/include/gpg-error.h",g' $out/include/gcrypt.h - '' + stdenv.lib.optionalString (!stdenv.isDarwin && optLibcap != null) '' - sed -i 's,\(-lcap\),-L${optLibcap}/lib \1,' $out/lib/libgcrypt.la + '' + stdenv.lib.optionalString enableCapabilities '' + sed -i 's,\(-lcap\),-L${libcap}/lib \1,' $out/lib/libgcrypt.la ''; doCheck = true; - meta = with stdenv.lib; { + meta = { homepage = https://www.gnu.org/software/libgcrypt/; description = "General-pupose cryptographic library"; - license = licenses.lgpl2Plus; - platforms = platforms.all; - maintainers = with maintainers; [ wkennington ]; + license = lib.licenses.lgpl2Plus; + platforms = lib.platforms.all; + maintainers = [ lib.maintainers.wkennington ]; repositories.git = git://git.gnupg.org/libgcrypt.git; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b06895ecb058..f39a2836a1c5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6787,13 +6787,9 @@ let libftdi1 = callPackage ../development/libraries/libftdi/1.x.nix { }; - libgcrypt = callPackage ../development/libraries/libgcrypt { - # Breaks packages that expect to have elevated privileges - # Ex. Lightdm, cryptsetup - libcap = null; - }; + libgcrypt = callPackage ../development/libraries/libgcrypt { }; - libgcrypt_1_5 = lowPrio (callPackage ../development/libraries/libgcrypt/1.5.nix { }); + libgcrypt_1_5 = callPackage ../development/libraries/libgcrypt/1.5.nix { }; libgdiplus = callPackage ../development/libraries/libgdiplus { };