From 8278df916dde49d50cef8396458c18a688e40c13 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 5 Dec 2017 18:10:30 +0000 Subject: [PATCH 1/5] ocamlPackages.psq: init at 0.1.0 psq provides a functional priority search queue for OCaml. Homepage: https://github.com/pqwy/psq --- .../development/ocaml-modules/psq/default.nix | 29 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/ocaml-modules/psq/default.nix diff --git a/pkgs/development/ocaml-modules/psq/default.nix b/pkgs/development/ocaml-modules/psq/default.nix new file mode 100644 index 000000000000..fc3fa81a02a9 --- /dev/null +++ b/pkgs/development/ocaml-modules/psq/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.02" +then throw "psq is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-psq-${version}"; + version = "0.1.0"; + + src = fetchurl { + url = "https://github.com/pqwy/psq/releases/download/v${version}/psq-${version}.tbz"; + sha256 = "08ghgdivbjrxnaqc3hsb69mr9s2ql5ds0fb97b7z6zimzqibz6lp"; + }; + + unpackCmd = "tar -xjf $curSrc"; + + buildInputs = [ ocaml findlib ocamlbuild topkg ]; + + inherit (topkg) buildPhase installPhase; + + meta = { + description = "Functional Priority Search Queues for OCaml"; + homepage = "https://github.com/pqwy/psq"; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + license = stdenv.lib.licenses.isc; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 215dfd6d6038..a9f1dfab633d 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -500,6 +500,8 @@ let piqi = callPackage ../development/ocaml-modules/piqi { }; piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { }; + psq = callPackage ../development/ocaml-modules/psq { }; + ptime = callPackage ../development/ocaml-modules/ptime { }; re2_p4 = callPackage ../development/ocaml-modules/re2 { }; From 14608047f42066db72229b232debf9aec26e49ee Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 5 Dec 2017 18:12:56 +0000 Subject: [PATCH 2/5] ocamlPackages.lru: init at 0.2.0 lru provides LRU caches for OCaml. Homepage: https://github.com/pqwy/lru --- .../development/ocaml-modules/lru/default.nix | 27 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 pkgs/development/ocaml-modules/lru/default.nix diff --git a/pkgs/development/ocaml-modules/lru/default.nix b/pkgs/development/ocaml-modules/lru/default.nix new file mode 100644 index 000000000000..3e474c5653a7 --- /dev/null +++ b/pkgs/development/ocaml-modules/lru/default.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, psq }: + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-lru-${version}"; + version = "0.2.0"; + + src = fetchurl { + url = "https://github.com/pqwy/lru/releases/download/v${version}/lru-${version}.tbz"; + sha256 = "0bd7js9rrma1fjjjjc3fgr9l5fjbhgihx2nsaf96g2b35iiaimd0"; + }; + + unpackCmd = "tar -xjf $curSrc"; + + buildInputs = [ ocaml findlib ocamlbuild topkg ]; + + propagatedBuildInputs = [ psq ]; + + inherit (topkg) buildPhase installPhase; + + meta = { + homepage = "https://github.com/pqwy/lru"; + description = "Scalable LRU caches for OCaml"; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + license = stdenv.lib.licenses.isc; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index a9f1dfab633d..5bc0398e90df 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -349,6 +349,8 @@ let lwt = ocaml_lwt; }; + lru = callPackage ../development/ocaml-modules/lru { }; + lwt2 = callPackage ../development/ocaml-modules/lwt { }; lwt3 = if lib.versionOlder "4.02" ocaml.version From 3582a974646f96da553775a5afc9f4796005c577 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 5 Dec 2017 18:16:19 +0000 Subject: [PATCH 3/5] ocamlPackages.faraday: init at 0.5.0 Faraday is a library for writing fast and memory-efficient serializers in OCaml. Homepage: https://github.com/inhabitedtype/faraday --- .../ocaml-modules/faraday/default.nix | 34 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/ocaml-modules/faraday/default.nix diff --git a/pkgs/development/ocaml-modules/faraday/default.nix b/pkgs/development/ocaml-modules/faraday/default.nix new file mode 100644 index 000000000000..8f30ec519777 --- /dev/null +++ b/pkgs/development/ocaml-modules/faraday/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, alcotest }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.02" +then throw "faraday is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-faraday-${version}"; + version = "0.5.0"; + + src = fetchFromGitHub { + owner = "inhabitedtype"; + repo = "faraday"; + rev = version; + sha256 = "1kql0il1frsbx6rvwqd7ahi4m14ik6la5an6c2w4x7k00ndm4d7n"; + }; + + buildInputs = [ ocaml findlib jbuilder alcotest ]; + + buildPhase = "jbuilder build -p faraday"; + + doCheck = true; + checkPhase = "jbuilder runtest"; + + inherit (jbuilder) installPhase; + + meta = { + description = "Serialization library built for speed and memory efficiency"; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (src.meta) homepage; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 5bc0398e90df..b83e77627efb 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -231,6 +231,8 @@ let faillib = callPackage ../development/ocaml-modules/faillib { }; + faraday = callPackage ../development/ocaml-modules/faraday { }; + fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { }; fileutils = callPackage ../development/ocaml-modules/fileutils { }; From 8a5d33ed527e16d458f323331e935ac74517f361 Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 5 Dec 2017 18:17:54 +0000 Subject: [PATCH 4/5] ocamlPackages.farfadet: init at 0.2 Farfadet is a printf-like for Faraday library. Homepage: https://github.com/oklm-wsh/Farfadet --- .../ocaml-modules/farfadet/default.nix | 34 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/ocaml-modules/farfadet/default.nix diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix new file mode 100644 index 000000000000..080cc74998df --- /dev/null +++ b/pkgs/development/ocaml-modules/farfadet/default.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg +, faraday +}: + +if !stdenv.lib.versionAtLeast ocaml.version "4.3" +then throw "farfadet is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-farfadet-${version}"; + version = "0.2"; + + src = fetchurl { + url = "https://github.com/oklm-wsh/Farfadet/releases/download/v${version}/farfadet-${version}.tbz"; + sha256 = "06wvd57c8khpq0c2hvm15zng269zvabsw1lcaqphqdcckl67nsxr"; + }; + + unpackCmd = "tar -xjf $curSrc"; + + buildInputs = [ ocaml findlib ocamlbuild topkg ]; + + propagatedBuildInputs = [ faraday ]; + + inherit (topkg) buildPhase installPhase; + + meta = { + description = "A printf-like for Faraday library"; + homepage = "https://github.com/oklm-wsh/Farfadet"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} + diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index b83e77627efb..7fd18a664637 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -233,6 +233,8 @@ let faraday = callPackage ../development/ocaml-modules/faraday { }; + farfadet = callPackage ../development/ocaml-modules/farfadet { }; + fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { }; fileutils = callPackage ../development/ocaml-modules/fileutils { }; From d39886db5a26d813aebfecb07f196f1d9bca26da Mon Sep 17 00:00:00 2001 From: Vincent Laporte Date: Tue, 5 Dec 2017 18:19:25 +0000 Subject: [PATCH 5/5] ocamlPackages.digestif: init at 0.5 Digestif provides some hash functions in OCaml. Homepage: https://github.com/mirage/digestif --- .../ocaml-modules/digestif/default.nix | 29 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 pkgs/development/ocaml-modules/digestif/default.nix diff --git a/pkgs/development/ocaml-modules/digestif/default.nix b/pkgs/development/ocaml-modules/digestif/default.nix new file mode 100644 index 000000000000..cf8b5335d594 --- /dev/null +++ b/pkgs/development/ocaml-modules/digestif/default.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg }: + +if !stdenv.lib.versionAtLeast ocaml.version "4.3" +then throw "digestif is not available for OCaml ${ocaml.version}" +else + +stdenv.mkDerivation rec { + name = "ocaml${ocaml.version}-digestif-${version}"; + version = "0.5"; + + src = fetchurl { + url = "https://github.com/mirage/digestif/releases/download/v${version}/digestif-${version}.tbz"; + sha256 = "0fsyfi5ps17j3wjav5176gf6z3a5xcw9aqhcr1gml9n9ayfbkhrd"; + }; + + unpackCmd = "tar -xjf $curSrc"; + + buildInputs = [ ocaml findlib ocamlbuild topkg ]; + + inherit (topkg) buildPhase installPhase; + + meta = { + description = "Simple hash algorithms in OCaml"; + homepage = "https://github.com/mirage/digestif"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.vbgl ]; + inherit (ocaml.meta) platforms; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 7fd18a664637..bab1e08ab8eb 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -200,6 +200,8 @@ let decompress = callPackage ../development/ocaml-modules/decompress { }; + digestif = callPackage ../development/ocaml-modules/digestif { }; + dolmen = callPackage ../development/ocaml-modules/dolmen { }; dolog = callPackage ../development/ocaml-modules/dolog { };