about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2016-04-18 20:42:50 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2016-04-18 21:13:18 +0200
commitb4bf4327097265d855ad04f09759bd2eeb73aed1 (patch)
tree6446870bcaab983e69460a8dbfc4966cca683348 /pkgs/development
parent21a2f2ba3bc8962845f0b45cacac4e47557ebf13 (diff)
downloadnixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar.gz
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar.bz2
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar.lz
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar.xz
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.tar.zst
nixlib-b4bf4327097265d855ad04f09759bd2eeb73aed1.zip
nghttp2: 1.8.0 -> 1.9.2, unify with libnghttp2, and use multiple outputs
Note: I ignored the C++ libraries, but it appears we're not currently
using them. Once we do, we'll probably want to put them in a separate
output as well (to prevent non-C++ users from depending on Boost).
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix61
1 files changed, 10 insertions, 51 deletions
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 761f6933f5c4..29175fbb7d45 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -1,77 +1,36 @@
 { stdenv, fetchurl, pkgconfig
 
-# Optinal Dependencies
+# Optional Dependencies
 , openssl ? null, libev ? null, zlib ? null, jansson ? null, boost ? null
 , libxml2 ? null, jemalloc ? null
-
-# Extra argument
-, prefix ? ""
 }:
 
-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;
-
-  isLib = prefix == "lib";
-
-  optOpenssl = if isLib then null else shouldUsePkg openssl;
-  optLibev = if isLib then null else shouldUsePkg libev;
-  optZlib = if isLib then null else shouldUsePkg zlib;
-
-  hasApp = optOpenssl != null && optLibev != null && optZlib != null;
-
-  optJansson = if isLib then null else shouldUsePkg jansson;
-  #optBoost = if isLib then null else shouldUsePkg boost;
-  optBoost = null; # Currently detection is broken
-  optLibxml2 = if !hasApp then null else shouldUsePkg libxml2;
-  optJemalloc = if !hasApp then null else shouldUsePkg jemalloc;
-in
 stdenv.mkDerivation rec {
-  name = "${prefix}nghttp2-${version}";
-  version = "1.8.0";
+  name = "nghttp2-${version}";
+  version = "1.9.2";
 
   # Don't use fetchFromGitHub since this needs a bootstrap curl
   src = fetchurl {
     url = "https://github.com/nghttp2/nghttp2/releases/download/v${version}/nghttp2-${version}.tar.bz2";
-    sha256 = "10xz3s624w208pr9xgm4ammc8bc5mi17vy4357hjfd5vmmp5m8b0";
+    sha256 = "1jnms0mmf73cwdqvbzpdyi974f8xq7p8bxgba2ippw70pz8y0ac0";
   };
 
   # Configure script searches for a symbol which does not exist in jemalloc on Darwin
   # Reported upstream in https://github.com/tatsuhiro-t/nghttp2/issues/233
-  postPatch = if (stdenv.isDarwin && optJemalloc != null) then ''
+  postPatch = if stdenv.isDarwin && jemalloc != null then ''
     substituteInPlace configure --replace "malloc_stats_print" "je_malloc_stats_print"
   '' else null;
 
+  outputs = [ "dev" "out" "lib" ];
+
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ optJansson optBoost optLibxml2 optJemalloc ]
-    ++ stdenv.lib.optionals hasApp [ optOpenssl optLibev optZlib ];
+  buildInputs = [ openssl libev zlib ];
 
-  configureFlags = [
-    (mkEnable false                 "werror"          null)
-    (mkEnable false                 "debug"           null)
-    (mkEnable true                  "threads"         null)
-    (mkEnable hasApp                "app"             null)
-    (mkEnable (optJansson != null)  "hpack-tools"     null)
-    (mkEnable (optBoost != null)    "asio-lib"        null)
-    (mkEnable false                 "examples"        null)
-    (mkEnable false                 "python-bindings" null)
-    (mkEnable false                 "failmalloc"      null)
-    (mkWith   (optLibxml2 != null)  "libxml2"         null)
-    (mkWith   (optJemalloc != null) "jemalloc"        null)
-    (mkWith   false                 "spdylay"         null)
-    (mkWith   false                 "cython"          null)
-    (mkWith   false                 "mruby"           null)
-  ];
+  enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     homepage = http://nghttp2.org/;
-    description = "an implementation of HTTP/2 in C";
+    description = "A C implementation of HTTP/2";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ wkennington ];