From e73fe64d31e8eea2d2b2349da711f248280c08f0 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Mon, 30 Jun 2025 19:21:04 -0400 Subject: [PATCH] cerberus: init at 0-unstable-2025-06-29 --- pkgs/by-name/ce/cerberus/package.nix | 92 ++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 pkgs/by-name/ce/cerberus/package.nix diff --git a/pkgs/by-name/ce/cerberus/package.nix b/pkgs/by-name/ce/cerberus/package.nix new file mode 100644 index 000000000000..58e4b988930b --- /dev/null +++ b/pkgs/by-name/ce/cerberus/package.nix @@ -0,0 +1,92 @@ +{ + lib, + fetchFromGitHub, + writableTmpDirAsHomeHook, + unstableGitUpdater, + ocamlPackages, + opam, +}: +ocamlPackages.buildDunePackage { + pname = "cerberus"; + version = "0-unstable-2025-06-29"; + + src = fetchFromGitHub { + owner = "rems-project"; + repo = "cerberus"; + rev = "61700b301f0f1fbc1940db51c50240c397759057"; + hash = "sha256-QpgHOQqiJMlMf2RH5/TI3AirdqYPS7HwE9YIlxgorqg="; + }; + + minimalOCamlVersion = "4.12"; + + strictDeps = true; + + nativeBuildInputs = [ + opam + writableTmpDirAsHomeHook + ocamlPackages.lem + ocamlPackages.menhir + ]; + + buildInputs = with ocamlPackages; [ + sha + pprint + cmdliner + yojson + lem + result + ppx_deriving + zarith + sexplib + menhirLib + janeStreet.ppx_sexp_conv + ]; + + env.OPAM_SWITCH_PREFIX = placeholder "out"; + buildPhase = '' + runHook preBuild + + make Q= cerberus + + runHook postBuild + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + + PATH="$out/bin":$PATH + + patchShebangs --build tests + + tests/run-ci.sh + + runHook postInstallCheck + ''; + + passthru.updateScript = unstableGitUpdater { branch = "master"; }; + + meta = { + homepage = "https://www.cl.cam.ac.uk/~pes20/cerberus/"; + license = with lib.licenses; [ + # Most of Cerberus + bsd2 + # https://github.com/rems-project/cerberus/blob/master/THIRD_PARTY_FILES.md + # Files from Linux kernel + gpl2Only + # Files from cppmem + bsd3 + # Files from musl + mit + # Files from BSD + bsdOriginal + # Slightly modified vendored SibylFS + isc + ]; + mainProgram = "cerberus"; + maintainers = with lib.maintainers; [ + RossSmyth + ]; + platforms = lib.platforms.unix; + }; +}