Files
nixpkgs/pkgs/development/ocaml-modules/uring/default.nix
·𐑑𐑴𐑕𐑑𐑩𐑤 56c236fc6f ocamlPackages.uring: 2.14.0 → 2.15.0
2.15.x requires ocaml ≥ 5.2
2026-07-27 21:46:37 -07:00

89 lines
1.8 KiB
Nix

{
lib,
ocaml,
version ?
if lib.versionAtLeast ocaml.version "5.2" then
"2.15.0"
else if lib.versionAtLeast ocaml.version "5.1" then
"2.14.0"
else
"0.9",
fetchurl,
pkg-config,
buildDunePackage,
cstruct,
dune-configurator,
fmt,
optint,
mdx,
}:
let
param =
{
"0.9" = {
minimalOCamlVersion = "4.12";
hash = "sha256-eXWIxfL9UsKKf4sanBjKfr6Od4fPDctVnkU+wjIXW0M=";
};
"2.14.0" = {
minimalOCamlVersion = "5.1.0";
hash = "sha256-U6B3/ExryC7WLYj1iIUHoXZQluFE56Rf3dwOpux/qIE=";
};
"2.15.0" = {
minimalOCamlVersion = "5.2.0";
hash = "sha256-MK1F5tTbvZT5MkyZrz28+nj4+Yo8VxdxCBDHghUdMYY=";
};
}
.${version};
in
buildDunePackage (finalAttrs: {
pname = "uring";
inherit version;
inherit (param) minimalOCamlVersion;
src = fetchurl {
url = "https://github.com/ocaml-multicore/ocaml-uring/releases/download/v${finalAttrs.version}/uring-${version}.tbz";
inherit (param) hash;
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
dune-configurator
];
propagatedBuildInputs = [
cstruct
fmt
optint
];
checkInputs = [
mdx
];
nativeCheckInputs = [
mdx.bin
];
# Tests use io_uring, which is blocked by Lix's sandbox because it's
# opaque to seccomp.
doCheck = false;
dontStrip = true;
meta = {
homepage = "https://github.com/ocaml-multicore/ocaml-uring";
changelog = "https://raw.githubusercontent.com/ocaml-multicore/ocaml-uring/v${finalAttrs.version}/CHANGES.md";
description = "Bindings to io_uring for OCaml";
license = with lib.licenses; [
isc
mit
];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ toastal ];
};
})