From 82a23ceb05668f6d9dbd39b2ef895c8bdc7413dc Mon Sep 17 00:00:00 2001 From: Chen Date: Thu, 28 Nov 2024 11:33:32 +0800 Subject: [PATCH] abella-master: init at 0-unstable-2024-11-27 --- default.nix | 3 +++ pkgs/abella-master/default.nix | 44 ++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 pkgs/abella-master/default.nix diff --git a/default.nix b/default.nix index a23f797..d13d161 100644 --- a/default.nix +++ b/default.nix @@ -14,6 +14,9 @@ modules = import ./modules; # NixOS modules overlays = import ./overlays; # nixpkgs overlays + abella-master = pkgs.callPackage ./pkgs/abella-master { + ocamlPackages = pkgs.ocaml-ng.ocamlPackages_4_12; + }; abella-modded = pkgs.callPackage ./pkgs/abella-modded { ocamlPackages = pkgs.ocaml-ng.ocamlPackages_4_12; }; diff --git a/pkgs/abella-master/default.nix b/pkgs/abella-master/default.nix new file mode 100644 index 0000000..a8781f5 --- /dev/null +++ b/pkgs/abella-master/default.nix @@ -0,0 +1,44 @@ +{ lib, stdenv, fetchFromGitHub, rsync, ocamlPackages, nodejs }: + +stdenv.mkDerivation (finalAttrs: { + pname = "abella-master"; + version = "0-unstable-2024-11-27"; + + src = fetchFromGitHub { + owner = "abella-prover"; + repo = "abella"; + rev = "f97da8c9ea10cf2123696a1595e3e0f84b795a14"; + sha256 = "sha256-PmIyKk0lLes/JVQ8XHchKEkx3qkGv8Ssn+AEAMba70E="; + }; + + strictDeps = true; + + nativeBuildInputs = [ nodejs rsync ] ++ (with ocamlPackages; [ ocaml dune_3 menhir findlib ]); + buildInputs = with ocamlPackages; [ cmdliner yojson ]; + + installPhase = '' + mkdir -p $out/bin + rsync -av _build/default/src/abella.exe $out/bin/abella + + mkdir -p $out/share/emacs/site-lisp/abella/ + rsync -av emacs/ $out/share/emacs/site-lisp/abella/ + + mkdir -p $out/share/abella/examples + rsync -av examples/ $out/share/abella/examples/ + ''; + + meta = { + description = "Interactive theorem prover"; + mainProgram = "abella"; + longDescription = '' + Abella is an interactive theorem prover based on lambda-tree syntax. + This means that Abella is well-suited for reasoning about the meta-theory + of programming languages and other logical systems which manipulate + objects with binding. + ''; + homepage = "https://abella-prover.org"; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ chen ]; + platforms = lib.platforms.unix; + }; +})