summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/licenses.nix6
-rw-r--r--pkgs/development/ocaml-modules/zelus-gtk/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/zelus/default.nix42
-rw-r--r--pkgs/top-level/ocaml-packages.nix4
4 files changed, 76 insertions, 0 deletions
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 291f41e1cacc6..b9d6dc44e6d00 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -620,6 +620,12 @@ in mkLicense lset) ({
     free     = false;
   };
 
+  inria-zelus = {
+    fullName = "INRIA Non-Commercial License Agreement for the ZĂ©lus compiler";
+    url = "https://github.com/INRIA/zelus/raw/829f2b97cba93b0543a9ca0272269e6b8fdad356/LICENSE";
+    free = false;
+  };
+
   ipa = {
     spdxId = "IPA";
     fullName = "IPA Font License";
diff --git a/pkgs/development/ocaml-modules/zelus-gtk/default.nix b/pkgs/development/ocaml-modules/zelus-gtk/default.nix
new file mode 100644
index 0000000000000..c0e0e586066af
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zelus-gtk/default.nix
@@ -0,0 +1,24 @@
+{ buildDunePackage
+, zelus
+, lablgtk
+}:
+
+buildDunePackage {
+  pname = "zelus-gtk";
+  inherit (zelus) version src postPatch;
+
+  minimalOCamlVersion = "4.08.1";
+
+  nativeBuildInputs = [
+    zelus
+  ];
+
+  buildInputs = [
+    lablgtk
+  ];
+
+  meta = {
+    description = "Zelus GTK library";
+    inherit (zelus.meta) homepage license maintainers;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/zelus/default.nix b/pkgs/development/ocaml-modules/zelus/default.nix
new file mode 100644
index 0000000000000..d326e234c0d02
--- /dev/null
+++ b/pkgs/development/ocaml-modules/zelus/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, buildDunePackage
+, fetchFromGitHub
+, menhir
+, menhirLib
+}:
+
+buildDunePackage rec {
+  pname = "zelus";
+  version = "2.2";
+
+  minimalOCamlVersion = "4.08.1";
+
+  src = fetchFromGitHub {
+    owner = "INRIA";
+    repo = "zelus";
+    rev = version;
+    hash = "sha256-NcGX343LProADtzJwlq1kmihLaya1giY6xv9ScvdgTA=";
+  };
+
+  # ./configure: cannot execute: required file not found
+  postPatch = lib.optionalString stdenv.isLinux ''
+    patchShebangs configure
+  '';
+
+  nativeBuildInputs = [
+    menhir
+  ];
+
+  buildInputs = [
+    menhirLib
+  ];
+
+  meta = with lib; {
+    description = "A synchronous language with ODEs";
+    homepage = "https://zelus.di.ens.fr";
+    license = licenses.inria-zelus;
+    mainProgram = "zeluc";
+    maintainers = with maintainers; [ wegank ];
+  };
+}
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index f7ce96f135fa7..ae48af74bc0b0 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -1886,6 +1886,10 @@ let
 
     zed = callPackage ../development/ocaml-modules/zed { };
 
+    zelus = callPackage ../development/ocaml-modules/zelus { };
+
+    zelus-gtk = callPackage ../development/ocaml-modules/zelus-gtk { };
+
     zmq = callPackage ../development/ocaml-modules/zmq { };
 
     zmq-lwt = callPackage ../development/ocaml-modules/zmq/lwt.nix { };