summary refs log tree commit diff
path: root/pkgs/development/libraries/libgcrypt
diff options
context:
space:
mode:
authorEmil Rangden <emil.rangden@chas.se>2015-06-03 16:50:53 +0200
committerEmil Rangden <emil.rangden@chas.se>2015-06-03 16:50:53 +0200
commit165cb05ea5f42866a5b38521a8266f10045d48b2 (patch)
treed3757e34072844a6831add78f027b25bdb67a76f /pkgs/development/libraries/libgcrypt
parent0645f5eab7b98e57cbbf51cab7fc77b4762b44b7 (diff)
downloadnixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar.gz
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar.bz2
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar.lz
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar.xz
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.tar.zst
nixpkgs-165cb05ea5f42866a5b38521a8266f10045d48b2.zip
fix spotify by using older libgcrypt
Diffstat (limited to 'pkgs/development/libraries/libgcrypt')
-rw-r--r--pkgs/development/libraries/libgcrypt/1.5.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libgcrypt/1.5.nix b/pkgs/development/libraries/libgcrypt/1.5.nix
new file mode 100644
index 00000000000..ebafd0747d8
--- /dev/null
+++ b/pkgs/development/libraries/libgcrypt/1.5.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl
+, libgpgerror
+
+# Optional Dependencies
+, libcap ? null
+}:
+
+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";
+
+  src = fetchurl {
+    url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
+    sha256 = "0czvqxkzd5y872ipy6s010ifwdwv29sqbnqc4pf56sd486gqvy6m";
+  };
+
+  buildInputs = [ libgpgerror optLibcap ];
+
+  configureFlags = [
+    (mkWith   (optLibcap != null) "capabilities"  null)
+  ];
+
+  # 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 <gpg-error.h>,#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
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://www.gnu.org/software/libgcrypt/;
+    description = "General-pupose cryptographic library";
+    license = licenses.lgpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ wkennington ];
+    repositories.git = git://git.gnupg.org/libgcrypt.git;
+  };
+}