summary refs log tree commit diff
path: root/pkgs/development/libraries/gnutls/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/gnutls/default.nix')
-rw-r--r--pkgs/development/libraries/gnutls/default.nix31
1 files changed, 20 insertions, 11 deletions
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 4bd0dfdc5291..93f5dab537e9 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,17 +1,18 @@
 { fetchurl, stdenv, zlib, lzo, libtasn1, nettle
-, guileBindings, guile, perl, psmisc }:
+, guileBindings, guile, perl, gmp }:
 
 assert guileBindings -> guile != null;
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
 
-  name = "gnutls-3.0.18";
+  name = "gnutls-3.0.22";
 
   src = fetchurl {
     url = "mirror://gnu/gnutls/${name}.tar.xz";
-    sha256 = "1ynqnj1j6rrzplk2i64dik34829r0y7lwk4qlvjx993q3mj7z863";
+    sha256 = "1pp90fm27qi5cd0pq18xcmnl79xcbfwxc54bg1xi1wv0vryqdpcr";
   };
 
+  # FIXME: Turn into a Nix list.
   configurePhase = ''
     ./configure --prefix="$out"                                 \
       --disable-dependency-tracking --enable-fast-install       \
@@ -19,6 +20,11 @@ stdenv.mkDerivation rec {
       --with-lzo --with-libtasn1-prefix="${libtasn1}"		\
       ${if guileBindings
         then "--enable-guile --with-guile-site-dir=\"$out/share/guile/site\""
+        else ""}${if stdenv.isSunOS
+          # TODO: Use `--with-libnettle-prefix' on all platforms
+          # Note: GMP is a dependency of Nettle, whose public headers include
+          # GMP headers, hence the hack.
+        then " --with-libnettle-prefix=${nettle} CPPFLAGS=-I${gmp}/include"
         else ""}
   '';
 
@@ -29,13 +35,9 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ nettle libtasn1 ];
 
-  # XXX: Disable tests on non-Linux because of the `mini-loss-time' hack
-  # below, which is Linux-specific.
-  doCheck = stdenv.isLinux;
-
-  postCheck =
-    # Kill a process that's left behind.
-    stdenv.lib.optionalString doCheck "${psmisc}/bin/killall mini-loss-time";
+  # XXX: Gnulib's `test-select' fails on FreeBSD:
+  # http://hydra.nixos.org/build/2962084/nixlog/1/raw .
+  doCheck = (!stdenv.isFreeBSD);
 
   meta = {
     description = "The GNU Transport Layer Security Library";
@@ -60,3 +62,10 @@ stdenv.mkDerivation rec {
     maintainers = [ stdenv.lib.maintainers.ludo ];
   };
 }
+
+//
+
+(stdenv.lib.optionalAttrs stdenv.isFreeBSD {
+  # FreeBSD doesn't have <alloca.h>, and Gnulib's `alloca' module isn't used.
+  patches = [ ./guile-gnulib-includes.patch ];
+}))