94 lines
1.5 KiB
Nix
94 lines
1.5 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchFromGitHub,
|
|
pkg-config,
|
|
cmake,
|
|
makeWrapper,
|
|
ninja,
|
|
perl,
|
|
brotli,
|
|
openssl,
|
|
libcap,
|
|
libuv,
|
|
wslay,
|
|
zlib,
|
|
withMruby ? true,
|
|
bison,
|
|
ruby,
|
|
withUring ? stdenv.hostPlatform.isLinux,
|
|
liburing,
|
|
nixosTests,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "h2o";
|
|
version = "2.3.0.20250430";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "h2o";
|
|
repo = "h2o";
|
|
rev = "f1918a5b9f75f4da9db801b442886cb13b3c7bcd";
|
|
sha256 = "sha256-sfOkyEhlLGmXjYqRoI/8pD6/NBY7q6K9y2vS7qwJmrw=";
|
|
};
|
|
|
|
outputs = [
|
|
"out"
|
|
"man"
|
|
"dev"
|
|
"lib"
|
|
];
|
|
|
|
nativeBuildInputs =
|
|
[
|
|
pkg-config
|
|
cmake
|
|
makeWrapper
|
|
ninja
|
|
]
|
|
++ lib.optionals withMruby [
|
|
bison
|
|
ruby
|
|
]
|
|
++ lib.optional withUring liburing;
|
|
|
|
buildInputs = [
|
|
brotli
|
|
openssl
|
|
libcap
|
|
libuv
|
|
perl
|
|
zlib
|
|
wslay
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DWITH_MRUBY=${if withMruby then "ON" else "OFF"}"
|
|
];
|
|
|
|
postInstall = ''
|
|
EXES="$(find "$out/share/h2o" -type f -executable)"
|
|
for exe in $EXES; do
|
|
wrapProgram "$exe" \
|
|
--set "H2O_PERL" "${lib.getExe perl}" \
|
|
--prefix "PATH" : "${lib.getBin openssl}/bin"
|
|
done
|
|
'';
|
|
|
|
passthru = {
|
|
tests = { inherit (nixosTests) h2o; };
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Optimized HTTP/1.x, HTTP/2, HTTP/3 server";
|
|
homepage = "https://h2o.examp1e.net";
|
|
license = licenses.mit;
|
|
maintainers = with maintainers; [
|
|
toastal
|
|
thoughtpolice
|
|
];
|
|
mainProgram = "h2o";
|
|
platforms = platforms.linux;
|
|
};
|
|
})
|