diff --git a/pkgs/development/ocaml-modules/hacl-star/default.nix b/pkgs/development/ocaml-modules/hacl-star/default.nix new file mode 100644 index 00000000000..8a29439c7a5 --- /dev/null +++ b/pkgs/development/ocaml-modules/hacl-star/default.nix @@ -0,0 +1,18 @@ +{ lib, buildDunePackage, hacl-star-raw, zarith, cppo }: + +buildDunePackage { + pname = "hacl-star"; + + inherit (hacl-star-raw) version src meta doCheck minimalOCamlVersion; + + useDune2 = true; + + propagatedBuildInputs = [ + hacl-star-raw + zarith + ]; + + buildInputs = [ + cppo + ]; +} diff --git a/pkgs/development/ocaml-modules/hacl-star/raw.nix b/pkgs/development/ocaml-modules/hacl-star/raw.nix new file mode 100644 index 00000000000..cd1217b9710 --- /dev/null +++ b/pkgs/development/ocaml-modules/hacl-star/raw.nix @@ -0,0 +1,51 @@ +{ lib, which, stdenv, fetchzip, ocaml, findlib, hacl-star, ctypes, cppo }: + +stdenv.mkDerivation rec { + pname = "ocaml${ocaml.version}-hacl-star-raw"; + version = "0.3.2"; + + src = fetchzip { + url = "https://github.com/project-everest/hacl-star/releases/download/ocaml-v${version}/hacl-star.${version}.tar.gz"; + sha256 = "1wp27vf0g43ggs7cv85hpa62jjvzkwzzg5rfznbwac6j6yr17zc7"; + stripRoot = false; + }; + + sourceRoot = "./source/raw"; + + minimalOCamlVersion = "4.05"; + + postPatch = '' + patchShebangs ./ + ''; + + preInstall = '' + mkdir -p $OCAMLFIND_DESTDIR/stublibs + ''; + + installTargets = "install-hacl-star-raw"; + + dontAddPrefix = true; + + buildInputs = [ + which + ocaml + findlib + ]; + + propagatedBuildInputs = [ + ctypes + ]; + + checkInputs = [ + cppo + ]; + + doCheck = true; + + meta = { + description = "Auto-generated low-level OCaml bindings for EverCrypt/HACL*"; + license = lib.licenses.asl20; + maintainers = [ lib.maintainers.ulrikstrid ]; + platforms = ocaml.meta.platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index d124d388ef9..28f8436ea99 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -417,6 +417,9 @@ let hacl_x25519 = callPackage ../development/ocaml-modules/hacl_x25519 { }; + hacl-star = callPackage ../development/ocaml-modules/hacl-star { }; + hacl-star-raw = callPackage ../development/ocaml-modules/hacl-star/raw.nix { }; + herelib = callPackage ../development/ocaml-modules/herelib { }; hidapi = callPackage ../development/ocaml-modules/hidapi { };