summary refs log tree commit diff
path: root/pkgs/development/libraries/nghttp2/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/nghttp2/default.nix')
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix30
1 files changed, 24 insertions, 6 deletions
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 57ed5891275..939f137ac3e 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -9,14 +9,16 @@
 , enableGetAssets ? false, libxml2 ? null
 , enableJemalloc ? false, jemalloc ? null
 , enableApp ? !stdenv.hostPlatform.isWindows
+, enablePython ? false, python ? null, cython ? null, ncurses ? null, setuptools ? null
 }:
 
 assert enableHpack -> jansson != null;
 assert enableAsioLib -> boost != null;
 assert enableGetAssets -> libxml2 != null;
 assert enableJemalloc -> jemalloc != null;
+assert enablePython -> python != null && cython != null && ncurses != null && setuptools != null;
 
-let inherit (stdenv.lib) optional; in
+let inherit (stdenv.lib) optional optionals optionalString; in
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
@@ -27,7 +29,8 @@ stdenv.mkDerivation rec {
     sha256 = "0kyrgd4s2pq51ps5z385kw1hn62m8qp7c4h6im0g4ibrf89qwxc2";
   };
 
-  outputs = [ "bin" "out" "dev" "lib" ];
+  outputs = [ "bin" "out" "dev" "lib" ]
+    ++ optional enablePython "python";
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ]
@@ -37,21 +40,36 @@ stdenv.mkDerivation rec {
     ++ optional enableHpack jansson
     ++ optional enableAsioLib boost
     ++ optional enableGetAssets libxml2
-    ++ optional enableJemalloc jemalloc;
+    ++ optional enableJemalloc jemalloc
+    ++ optionals enablePython [ python ncurses setuptools ];
 
   enableParallelBuilding = true;
 
   configureFlags = [
     "--with-spdylay=no"
     "--disable-examples"
-    "--disable-python-bindings"
     (stdenv.lib.enableFeature enableApp "app")
-  ] ++ optional enableAsioLib "--enable-asio-lib --with-boost-libdir=${boost}/lib";
+  ] ++ optional enableAsioLib "--enable-asio-lib --with-boost-libdir=${boost}/lib"
+    ++ (if enablePython then [
+    "--with-cython=${cython}/bin/cython"
+  ] else [
+    "--disable-python-bindings"
+  ]);
+
+  preInstall = optionalString enablePython ''
+    mkdir -p $out/${python.sitePackages}
+    # convince installer it's ok to install here
+    export PYTHONPATH="$PYTHONPATH:$out/${python.sitePackages}"
+  '';
+  postInstall = optionalString enablePython ''
+    mkdir -p $python/${python.sitePackages}
+    mv $out/${python.sitePackages}/* $python/${python.sitePackages}
+  '';
 
   #doCheck = true;  # requires CUnit ; currently failing at test_util_localtime_date in util_test.cc
 
   meta = with stdenv.lib; {
-    homepage = https://nghttp2.org/;
+    homepage = "https://nghttp2.org/";
     description = "A C implementation of HTTP/2";
     license = licenses.mit;
     platforms = platforms.all;