summary refs log tree commit diff
path: root/pkgs/development/libraries/http-parser/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/http-parser/default.nix')
-rw-r--r--pkgs/development/libraries/http-parser/default.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
new file mode 100644
index 00000000000..bb1f6b63084
--- /dev/null
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchurl, gyp, utillinux, python, fixDarwinDylibNames }:
+
+let
+  version = "2.2.1";
+in stdenv.mkDerivation {
+  name = "http-parser-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/joyent/http-parser/archive/v${version}.tar.gz";
+    sha256 = "0p8wmchqsj9kwa8pg2is7v0h83q5lqns3vnm6sxrld7gaz979zh5";
+  };
+
+  patches = [ ./build-shared.patch ];
+
+  configurePhase = "gyp -f make --depth=`pwd` http_parser.gyp";
+
+  buildFlags = [ "BUILDTYPE=Release" ];
+
+  buildInputs =
+    [ gyp ]
+    ++ stdenv.lib.optional stdenv.isLinux utillinux
+    ++ stdenv.lib.optionals stdenv.isDarwin [ python fixDarwinDylibNames ];
+
+  doCheck = !stdenv.isDarwin;
+
+  checkPhase = ''
+    out/Release/test-nonstrict
+    out/Release/test-strict
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib
+    mv out/Release/${if stdenv.isDarwin then "*.dylib" else "lib.target/*"} $out/lib
+
+    mkdir -p $out/include
+    mv http_parser.h $out/include
+  '';
+
+  meta = {
+    description = "An HTTP message parser written in C";
+
+    homepage = https://github.com/joyent/http-parser;
+
+    license = stdenv.lib.licenses.mit;
+
+    maintainers = [ stdenv.lib.maintainers.shlevy ];
+  };
+}