{ stdenv, fetchurl, gyp, utillinux, python, fixDarwinDylibNames }: let version = "2.7.0"; in stdenv.mkDerivation { name = "http-parser-${version}"; src = fetchurl { url = "https://github.com/joyent/http-parser/archive/v${version}.tar.gz"; sha256 = "0rqij6v6wv1giwx4prfa082kw1nka5d9vlb06zkc8mwszq1vzidh"; }; 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; platforms = stdenv.lib.platforms.linux; # Broken on pure-darwin, wants xcode }; }