From cc74c0399ecee6291b25084c17a5e355671263d9 Mon Sep 17 00:00:00 2001
From: Michael Raskin <7c6f434c@mail.ru>
Date: Sun, 27 Jan 2019 01:56:56 +0100
Subject: [PATCH] leo3: init at 1.2

---
 .../science/logic/leo3/binary.nix             | 29 +++++++++++++++++++
 pkgs/top-level/all-packages.nix               |  2 ++
 2 files changed, 31 insertions(+)
 create mode 100644 pkgs/applications/science/logic/leo3/binary.nix

diff --git a/pkgs/applications/science/logic/leo3/binary.nix b/pkgs/applications/science/logic/leo3/binary.nix
new file mode 100644
index 00000000000..a3834dc70b6
--- /dev/null
+++ b/pkgs/applications/science/logic/leo3/binary.nix
@@ -0,0 +1,29 @@
+{stdenv, fetchurl, openjdk}:
+stdenv.mkDerivation rec {
+  pname = "leo3";
+  version = "1.2";
+
+  jar = fetchurl {
+    url = "https://github.com/leoprover/Leo-III/releases/download/v${version}/leo3.jar";
+    sha256 = "1lgwxbr1rnk72rnvc8raq5i1q71ckhn998pwd9xk6zf27wlzijk7";
+  };
+
+  phases=["installPhase" "fixupPhase"];
+
+  installPhase = ''
+    mkdir -p "$out"/{bin,lib/java/leo3}
+    cp "${jar}" "$out/lib/java/leo3/leo3.jar"
+    echo "#!${stdenv.shell}" > "$out/bin/leo3"
+    echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\""  > "$out/bin/leo3"
+    chmod a+x "$out/bin/leo3"
+  '';
+
+  meta = {
+    inherit version;
+    description = "An automated theorem prover for classical higher-order logic with choice";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = [stdenv.lib.maintainers.raskin];
+    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://page.mi.fu-berlin.de/lex/leo3/";
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 22b41d9468e..18325912609 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -21893,6 +21893,8 @@ in
   leo2 = callPackage ../applications/science/logic/leo2 {
      ocaml = ocaml-ng.ocamlPackages_4_01_0.ocaml;};
 
+  leo3-bin = callPackage ../applications/science/logic/leo3/binary.nix {};
+
   logisim = callPackage ../applications/science/logic/logisim {};
 
   ltl2ba = callPackage ../applications/science/logic/ltl2ba {};