1{
2 lib,
3 buildDunePackage,
4 cstruct,
5 dune-configurator,
6 fetchurl,
7 fmt,
8 optint,
9 mdx,
10}:
11
12buildDunePackage rec {
13 pname = "uring";
14 version = "0.9";
15
16 minimalOCamlVersion = "4.12";
17
18 src = fetchurl {
19 url = "https://github.com/ocaml-multicore/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
20 hash = "sha256-eXWIxfL9UsKKf4sanBjKfr6Od4fPDctVnkU+wjIXW0M=";
21 };
22
23 propagatedBuildInputs = [
24 cstruct
25 fmt
26 optint
27 ];
28
29 buildInputs = [
30 dune-configurator
31 ];
32
33 checkInputs = [
34 mdx
35 ];
36
37 nativeCheckInputs = [
38 mdx.bin
39 ];
40
41 # Tests use io_uring, which is blocked by Lix's sandbox because it's
42 # opaque to seccomp.
43 doCheck = false;
44
45 dontStrip = true;
46
47 meta = {
48 homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
49 changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/v${version}/CHANGES.md";
50 description = "Bindings to io_uring for OCaml";
51 license = with lib.licenses; [
52 isc
53 mit
54 ];
55 platforms = lib.platforms.linux;
56 maintainers = with lib.maintainers; [ toastal ];
57 };
58}