about summary refs log tree commit diff
path: root/pkgs/tools/security
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2010-05-19 20:58:47 +0000
committerYury G. Kudryashov <urkud.urkud@gmail.com>2010-05-19 20:58:47 +0000
commitea1953d7445ac719db975e6bdaf84e381c6f9803 (patch)
tree76c70b0fb4294adb7f6c610d7d3b5ddbfc94ca93 /pkgs/tools/security
parent7751f8bd6218890b36579bde4b566fad25c36cef (diff)
downloadnixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar.gz
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar.bz2
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar.lz
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar.xz
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.tar.zst
nixlib-ea1953d7445ac719db975e6bdaf84e381c6f9803.zip
Move gnupg to gnupg1 and gnupg2 to gnupg
Also add gnupg1-compatibility symlinks to gnupg2.
Most packages should be able to use gnupg2 instead of gnupg1.

svn path=/nixpkgs/trunk/; revision=21883
Diffstat (limited to 'pkgs/tools/security')
-rw-r--r--pkgs/tools/security/gnupg/default.nix66
-rw-r--r--pkgs/tools/security/gnupg1/default.nix36
-rw-r--r--pkgs/tools/security/gnupg2/default.nix51
3 files changed, 80 insertions, 73 deletions
diff --git a/pkgs/tools/security/gnupg/default.nix b/pkgs/tools/security/gnupg/default.nix
index dc396d9f35b3..2312d3ff06d6 100644
--- a/pkgs/tools/security/gnupg/default.nix
+++ b/pkgs/tools/security/gnupg/default.nix
@@ -1,36 +1,58 @@
-{ # Support for the IDEA cipher (used by the old PGP) should only be
-  # enabled if it is legal for you to do so.
-  ideaSupport ? false
+# Remember to install Pinentry and
+# 'echo "pinentry-program `which pinentry-gtk-2`" >> ~/.gnupg/gpg-agent.conf'.
 
-, stdenv, fetchurl, readline, bzip2
+{ fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan, libksba
+, useLdap ? true, openldap ? null, useBzip2 ? true, bzip2 ? null, useUsb ? true, libusb ? null
+, useCurl ? true, curl ? null
 }:
 
-let
-
-  idea = fetchurl {
-    url = http://nixos.org/tarballs/idea.c.gz;
-    md5 = "9dc3bc086824a8c7a331f35e09a3e57f";
-  };
-
-in
+assert useLdap -> (openldap != null);
+assert useBzip2 -> (bzip2 != null);
+assert useUsb -> (libusb != null);
+assert useCurl -> (curl != null);
 
 stdenv.mkDerivation rec {
-  name = "gnupg-1.4.10";
+  name = "gnupg-2.0.15";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "0f5v8c8fkxcnrlmnijaq2sqfqq6xhmbyi2p44pj98y6n6927z452";
+    sha256 = "070diybdiwf45d8xqbb5lwf3jjvhja1lcr6sf4fcw8519lpqi0aq";
   };
 
-  buildInputs = [ readline bzip2 ];
+  buildInputs = [ readline zlib libgpgerror pth libgcrypt libassuan libksba ]
+    ++ stdenv.lib.optional useLdap openldap
+    ++ stdenv.lib.optional useBzip2 bzip2
+    ++ stdenv.lib.optional useUsb libusb
+    ++ stdenv.lib.optional useCurl curl;
+
+  patchPhase = "sed -e 's@/bin/pwd@pwd@g' -i tests/pkits/*";
+
+  postInstall = ''
+    ln -s gpg2 $out/bin/gpg
+    ln -s gpgv2 $out/bin/gpgv
+  '';
+
+  doCheck = true;
 
-  preConfigure = stdenv.lib.optionalString ideaSupport
-    ''
-      gunzip < ${idea} > ./cipher/idea.c
-    '';
-  
   meta = {
-    description = "A free implementation of the OpenPGP standard for encrypting and signing data";
-    homepage = http://www.gnupg.org/;
+    description = "GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard";
+
+    longDescription = ''
+      GnuPG is the GNU project's complete and free implementation of
+      the OpenPGP standard as defined by RFC4880.  GnuPG allows to
+      encrypt and sign your data and communication, features a
+      versatile key managment 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.
+    '';
+
+    homepage = http://gnupg.org/;
+
+    license = "GPLv3+";
+
+    maintainers = with stdenv.lib.maintainers; [ ludo urkud ];
   };
 }
diff --git a/pkgs/tools/security/gnupg1/default.nix b/pkgs/tools/security/gnupg1/default.nix
new file mode 100644
index 000000000000..dc396d9f35b3
--- /dev/null
+++ b/pkgs/tools/security/gnupg1/default.nix
@@ -0,0 +1,36 @@
+{ # Support for the IDEA cipher (used by the old PGP) should only be
+  # enabled if it is legal for you to do so.
+  ideaSupport ? false
+
+, stdenv, fetchurl, readline, bzip2
+}:
+
+let
+
+  idea = fetchurl {
+    url = http://nixos.org/tarballs/idea.c.gz;
+    md5 = "9dc3bc086824a8c7a331f35e09a3e57f";
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "gnupg-1.4.10";
+
+  src = fetchurl {
+    url = "mirror://gnupg/gnupg/${name}.tar.bz2";
+    sha256 = "0f5v8c8fkxcnrlmnijaq2sqfqq6xhmbyi2p44pj98y6n6927z452";
+  };
+
+  buildInputs = [ readline bzip2 ];
+
+  preConfigure = stdenv.lib.optionalString ideaSupport
+    ''
+      gunzip < ${idea} > ./cipher/idea.c
+    '';
+  
+  meta = {
+    description = "A free implementation of the OpenPGP standard for encrypting and signing data";
+    homepage = http://www.gnupg.org/;
+  };
+}
diff --git a/pkgs/tools/security/gnupg2/default.nix b/pkgs/tools/security/gnupg2/default.nix
deleted file mode 100644
index b52d8bcf56ab..000000000000
--- a/pkgs/tools/security/gnupg2/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-# Remember to install Pinentry and
-# 'echo "pinentry-program `which pinentry-gtk-2`" >> ~/.gnupg/gpg-agent.conf'.
-
-{ fetchurl, stdenv, readline, openldap, bzip2, zlib, libgpgerror
-, pth, libgcrypt, libassuan, libksba, libusb, curl }:
-
-stdenv.mkDerivation rec {
-  name = "gnupg-2.0.12";
-
-  src = fetchurl {
-    url = "mirror://gnupg/gnupg/${name}.tar.bz2";
-    sha256 = "1klw3m32s6d81qkslin4pibb2f84yz8l6n6fkwfdxyhrql2f2cwn";
-  };
-
-  buildInputs = [ readline openldap bzip2 zlib libgpgerror pth libgcrypt
-    libassuan libksba libusb curl ];
-
-  patchPhase = ''
-    for file in tests/pkits/*
-    do
-      if [ -f "$file" ]
-      then
-          sed -i "$file" -es'|/bin/pwd|pwd|g'
-      fi
-    done
-  '';
-
-  doCheck = true;
-
-  meta = {
-    description = "GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard";
-
-    longDescription = ''
-      GnuPG is the GNU project's complete and free implementation of
-      the OpenPGP standard as defined by RFC4880.  GnuPG allows to
-      encrypt and sign your data and communication, features a
-      versatile key managment 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.
-    '';
-
-    homepage = http://gnupg.org/;
-
-    license = "GPLv3+";
-
-    maintainers = [ stdenv.lib.maintainers.ludo ];
-  };
-}