diff --git a/pkgs/applications/science/logic/easycrypt/default.nix b/pkgs/applications/science/logic/easycrypt/default.nix new file mode 100644 index 00000000000..5f28ca73c4e --- /dev/null +++ b/pkgs/applications/science/logic/easycrypt/default.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchFromGitHub, ocamlPackages, why3 }: + +stdenv.mkDerivation rec { + pname = "easycrypt"; + version = "2022.04"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "r${version}"; + sha256 = "sha256:09rdwcj70lkamkhd895p284rfpz4bcnsf55mcimhiqncd2a21ml7"; + }; + + nativeBuildInputs = with ocamlPackages; [ + dune_3 + findlib + menhir + ocaml + ]; + buildInputs = with ocamlPackages; [ + batteries + dune-build-info + inifiles + yojson + zarith + ]; + + propagatedBuildInputs = [ why3 ]; + + strictDeps = true; + + postPatch = '' + substituteInPlace dune-project --replace '(name easycrypt)' '(name easycrypt)(version ${version})' + ''; + + installPhase = '' + runHook preInstall + dune install --prefix $out ${pname} + rm $out/bin/ec-runtest + runHook postInstall + ''; + + meta = { + license = lib.licenses.mit; + maintainers = [ lib.maintainers.vbgl ]; + platforms = lib.platforms.all; + homepage = "https://easycrypt.info/"; + description = "Computer-Aided Cryptographic Proofs"; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ced4afa7e98..32e10a11a19 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3362,6 +3362,8 @@ with pkgs; earlyoom = callPackage ../os-specific/linux/earlyoom { }; + easycrypt = callPackage ../applications/science/logic/easycrypt { }; + EBTKS = callPackage ../development/libraries/science/biology/EBTKS { }; ecasound = callPackage ../applications/audio/ecasound { };