Files
nixpkgs/pkgs/by-name/ht/http-parser/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

75 lines
2.2 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
enableShared ? !stdenv.hostPlatform.isStatic,
enableStatic ? stdenv.hostPlatform.isStatic,
}:
stdenv.mkDerivation rec {
pname = "http-parser";
version = "2.9.4";
src = fetchFromGitHub {
owner = "nodejs";
repo = "http-parser";
rev = "v${version}";
sha256 = "1vda4dp75pjf5fcph73sy0ifm3xrssrmf927qd1x8g3q46z0cv6c";
};
env.NIX_CFLAGS_COMPILE = "-Wno-error";
patches = [
./enable-static-shared.patch
]
++ lib.optionals stdenv.hostPlatform.isAarch32 [
# https://github.com/nodejs/http-parser/pull/510
(fetchpatch {
url = "https://github.com/nodejs/http-parser/commit/4f15b7d510dc7c6361a26a7c6d2f7c3a17f8d878.patch";
sha256 = "sha256-rZZMJeow3V1fTnjadRaRa+xTq3pdhZn/eJ4xjxEDoU4=";
})
];
makeFlags = [
"DESTDIR="
"PREFIX=$(out)"
"BINEXT=${stdenv.hostPlatform.extensions.executable}"
"Platform=${lib.toLower stdenv.hostPlatform.uname.system}"
"AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}"
"ENABLE_SHARED=${if enableShared then "1" else "0"}"
"ENABLE_STATIC=${if enableStatic then "1" else "0"}"
]
++ lib.optionals enableShared [
"SOEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.sharedLibrary}"
]
++ lib.optionals enableStatic [
"AEXT=${lib.strings.removePrefix "." stdenv.hostPlatform.extensions.staticLibrary}"
]
++ lib.optionals (enableShared && stdenv.hostPlatform.isWindows) [
"SONAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOEXT)"
"LIBNAME=$(SOLIBNAME).$(SOMAJOR).$(SOMINOR).$(SOREV).$(SOEXT)"
"LDFLAGS=-Wl,--out-implib=$(LIBNAME).a"
];
buildFlags = lib.optional enableShared "library" ++ lib.optional enableStatic "package";
doCheck = true;
checkTarget = "test";
enableParallelBuilding = true;
postInstall = lib.optionalString stdenv.hostPlatform.isWindows ''
install -D *.dll.a $out/lib
ln -sf libhttp_parser.${version}.dll.a $out/lib/libhttp_parser.dll.a
'';
meta = with lib; {
description = "HTTP message parser written in C";
homepage = "https://github.com/nodejs/http-parser";
maintainers = with maintainers; [ matthewbauer ];
license = licenses.mit;
platforms = platforms.all;
};
}