From 994b21d1c198d8896db00cbc1e39fd41aaef18df Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Wed, 30 Mar 2022 06:33:47 +0200 Subject: [PATCH] ocamlPackages.ocsipersist: init at 1.1.0 With support for SQLite and PostgreSQL --- .../ocaml-modules/ocsipersist/default.nix | 20 ++++++++++++++ .../ocaml-modules/ocsipersist/lib.nix | 27 +++++++++++++++++++ .../ocaml-modules/ocsipersist/pgsql.nix | 24 +++++++++++++++++ .../ocaml-modules/ocsipersist/sqlite.nix | 23 ++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 8 ++++++ 5 files changed, 102 insertions(+) create mode 100644 pkgs/development/ocaml-modules/ocsipersist/default.nix create mode 100644 pkgs/development/ocaml-modules/ocsipersist/lib.nix create mode 100644 pkgs/development/ocaml-modules/ocsipersist/pgsql.nix create mode 100644 pkgs/development/ocaml-modules/ocsipersist/sqlite.nix diff --git a/pkgs/development/ocaml-modules/ocsipersist/default.nix b/pkgs/development/ocaml-modules/ocsipersist/default.nix new file mode 100644 index 00000000000..8006477dad9 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocsipersist/default.nix @@ -0,0 +1,20 @@ +{ buildDunePackage, ocsipersist-lib +, ocsipersist-pgsql +, ocsipersist-sqlite +}: + +buildDunePackage { + pname = "ocsipersist"; + inherit (ocsipersist-lib) src version useDune2; + + buildInputs = [ + ocsipersist-pgsql + ocsipersist-sqlite + ]; + + propagatedBuildInputs = [ ocsipersist-lib ]; + + meta = ocsipersist-lib.meta // { + description = "Persistent key/value storage (for Ocsigen) using multiple backends"; + }; +} diff --git a/pkgs/development/ocaml-modules/ocsipersist/lib.nix b/pkgs/development/ocaml-modules/ocsipersist/lib.nix new file mode 100644 index 00000000000..a2abc5d9b39 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocsipersist/lib.nix @@ -0,0 +1,27 @@ +{ lib, buildDunePackage, fetchFromGitHub +, lwt_ppx, lwt +}: + +buildDunePackage rec { + pname = "ocsipersist-lib"; + version = "1.1.0"; + + useDune2 = true; + + src = fetchFromGitHub { + owner = "ocsigen"; + repo = "ocsipersist"; + rev = version; + sha256 = "sha256:1d6kdcfjvrz0dl764mnyxc477aa57rvmzkg154qc915w2y1nbz9a"; + }; + + buildInputs = [ lwt_ppx ]; + propagatedBuildInputs = [ lwt ]; + + meta = { + description = "Persistent key/value storage (for Ocsigen) - support library"; + license = lib.licenses.lgpl21Only; + maintainers = [ lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + }; +} diff --git a/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix b/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix new file mode 100644 index 00000000000..e93c8b47903 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocsipersist/pgsql.nix @@ -0,0 +1,24 @@ +{ buildDunePackage, ocsipersist-lib +, lwt_log +, ocsigen_server +, pgocaml +, xml-light +}: + +buildDunePackage { + pname = "ocsipersist-pgsql"; + inherit (ocsipersist-lib) version src useDune2; + + propagatedBuildInputs = [ + lwt_log + ocsigen_server + ocsipersist-lib + pgocaml + xml-light + ]; + + meta = ocsipersist-lib.meta // { + description = "Persistent key/value storage (for Ocsigen) using PostgreSQL"; + }; +} + diff --git a/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix b/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix new file mode 100644 index 00000000000..2cfa30bc908 --- /dev/null +++ b/pkgs/development/ocaml-modules/ocsipersist/sqlite.nix @@ -0,0 +1,23 @@ +{ buildDunePackage, ocsipersist-lib +, lwt_log +, ocaml_sqlite3 +, ocsigen_server +, xml-light +}: + +buildDunePackage { + pname = "ocsipersist-sqlite"; + inherit (ocsipersist-lib) version src useDune2; + + propagatedBuildInputs = [ + lwt_log + ocaml_sqlite3 + ocsigen_server + ocsipersist-lib + xml-light + ]; + + meta = ocsipersist-lib.meta // { + description = "Persistent key/value storage (for Ocsigen) using SQLite"; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 255ba4eb478..62394a00c6d 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -982,6 +982,14 @@ let ocsigen-toolkit = callPackage ../development/ocaml-modules/ocsigen-toolkit { }; + ocsipersist = callPackage ../development/ocaml-modules/ocsipersist {}; + + ocsipersist-lib = callPackage ../development/ocaml-modules/ocsipersist/lib.nix { }; + + ocsipersist-pgsql = callPackage ../development/ocaml-modules/ocsipersist/pgsql.nix { }; + + ocsipersist-sqlite = callPackage ../development/ocaml-modules/ocsipersist/sqlite.nix { }; + octavius = callPackage ../development/ocaml-modules/octavius { }; odate = callPackage ../development/ocaml-modules/odate { };