diff options
Diffstat (limited to 'pkgs/development/ocaml-modules')
40 files changed, 908 insertions, 101 deletions
diff --git a/pkgs/development/ocaml-modules/graphql_ppx/default.nix b/pkgs/development/ocaml-modules/graphql_ppx/default.nix index f75465e99a27..aa149d60e4d8 100644 --- a/pkgs/development/ocaml-modules/graphql_ppx/default.nix +++ b/pkgs/development/ocaml-modules/graphql_ppx/default.nix @@ -1,32 +1,37 @@ -{ lib, buildDunePackage, fetchFromGitHub, alcotest, cppo -, ocaml-migrate-parsetree, ppx_tools_versioned, reason, yojson }: +{ lib, buildDunePackage, fetchFromGitHub, alcotest, reason +, ppxlib +, yojson }: buildDunePackage rec { pname = "graphql_ppx"; - version = "1.0.1"; + version = "1.2.0"; - minimumOCamlVersion = "4.06"; + minimalOCamlVersion = "4.08"; src = fetchFromGitHub { owner = "reasonml-community"; repo = "graphql-ppx"; rev = "v${version}"; - sha256 = "0lvmv1sb0ca9mja6di1dbmsgjqgj3w9var4amv1iz9nhwjjx4cpi"; + sha256 = "1fymmvk616wv5xkwfdmqibdgfl47ry6idc5wfh20a3mz9mpaa13s"; }; - propagatedBuildInputs = - [ cppo ocaml-migrate-parsetree ppx_tools_versioned reason yojson ]; + buildInputs = [ ppxlib ]; - checkInputs = lib.optional doCheck alcotest; + propagatedBuildInputs = [ + reason + yojson + ]; - doCheck = false; + checkInputs = [ alcotest ]; + + doCheck = true; useDune2 = true; meta = { homepage = "https://github.com/reasonml-community/graphql_ppx"; description = "GraphQL PPX rewriter for Bucklescript/ReasonML"; - license = lib.licenses.bsd3; + license = lib.licenses.mit; maintainers = with lib.maintainers; [ Zimmi48 jtcoolen ]; }; } diff --git a/pkgs/development/ocaml-modules/hack_parallel/default.nix b/pkgs/development/ocaml-modules/hack_parallel/default.nix new file mode 100644 index 000000000000..f9bc67772125 --- /dev/null +++ b/pkgs/development/ocaml-modules/hack_parallel/default.nix @@ -0,0 +1,26 @@ +{ lib, fetchFromGitHub, buildDunePackage, core, core_kernel, pkg-config, sqlite +}: +buildDunePackage rec { + pname = "hack_parallel"; + version = "1.0.1"; + useDune2 = true; + minimumOcamlVersion = "4.04.1"; + + src = fetchFromGitHub { + owner = "rvantonder"; + repo = "hack_parallel"; + rev = version; + sha256 = "0qjlkw35r4q2cm0n2x0i73zvx1xgrp6axaia2nm8zxpm49mid629"; + }; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ core core_kernel sqlite ]; + + meta = { + description = + "Core parallel and shared memory library used by Hack, Flow, and Pyre"; + license = lib.licenses.mit; + homepage = "https://github.com/rvantonder/hack_parallel"; + }; +} diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix index 673238843ff3..8d57e18dc814 100644 --- a/pkgs/development/ocaml-modules/irmin/ppx.nix +++ b/pkgs/development/ocaml-modules/irmin/ppx.nix @@ -2,11 +2,11 @@ buildDunePackage rec { pname = "ppx_irmin"; - version = "2.7.1"; + version = "2.7.2"; src = fetchurl { url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz"; - sha256 = "fac7c032f472fb369378ad2d8fe77e7cd3b3c1c6a0d7bf59980b69528891b399"; + sha256 = "29c68c5001a727aaa7a6842d6204ffa3e24b3544fa4f6af2234cdbfa032f7fdf"; }; minimumOCamlVersion = "4.08"; diff --git a/pkgs/development/ocaml-modules/letsencrypt/app.nix b/pkgs/development/ocaml-modules/letsencrypt/app.nix new file mode 100644 index 000000000000..dc9006d6d16b --- /dev/null +++ b/pkgs/development/ocaml-modules/letsencrypt/app.nix @@ -0,0 +1,45 @@ +{ lib +, buildDunePackage +, letsencrypt +, letsencrypt-dns +, cmdliner +, cohttp-lwt-unix +, logs +, fmt +, lwt +, mirage-crypto-rng +, ptime +, bos +, fpath +, randomconv +}: + +buildDunePackage { + pname = "letsencrypt-app"; + + inherit (letsencrypt) + src + version + useDune2 + minimumOCamlVersion + ; + + buildInputs = [ + letsencrypt + letsencrypt-dns + cmdliner + cohttp-lwt-unix + logs + fmt + lwt + mirage-crypto-rng + ptime + bos + fpath + randomconv + ]; + + meta = letsencrypt.meta // { + description = "An ACME client implementation of the ACME protocol (RFC 8555) for OCaml"; + }; +} diff --git a/pkgs/development/ocaml-modules/letsencrypt/default.nix b/pkgs/development/ocaml-modules/letsencrypt/default.nix index 0a70bf302428..623fba942f2f 100644 --- a/pkgs/development/ocaml-modules/letsencrypt/default.nix +++ b/pkgs/development/ocaml-modules/letsencrypt/default.nix @@ -6,11 +6,6 @@ , uri , rresult , base64 -, cmdliner -, cohttp -, cohttp-lwt -, cohttp-lwt-unix -, zarith , logs , fmt , lwt @@ -20,38 +15,25 @@ , x509 , yojson , ounit -, dns -, dns-tsig , ptime -, bos -, fpath -, randomconv , domain-name }: buildDunePackage rec { pname = "letsencrypt"; - version = "0.2.5"; + version = "0.3.0"; src = fetchurl { url = "https://github.com/mmaker/ocaml-letsencrypt/releases/download/v${version}/letsencrypt-v${version}.tbz"; - sha256 = "6e3bbb5f593823d49e83e698c06cf9ed48818695ec8318507b311ae74731e607"; + sha256 = "8772b7e6dbda0559a03a7b23b75c1431d42ae09a154eefd64b4c7e23b8d92deb"; }; minimumOCamlVersion = "4.08"; useDune2 = true; buildInputs = [ - cmdliner - cohttp - cohttp-lwt-unix - zarith fmt - mirage-crypto-rng ptime - bos - fpath - randomconv domain-name ]; @@ -65,11 +47,8 @@ buildDunePackage rec { asn1-combinators x509 uri - dns - dns-tsig rresult astring - cohttp-lwt ]; doCheck = true; diff --git a/pkgs/development/ocaml-modules/letsencrypt/dns.nix b/pkgs/development/ocaml-modules/letsencrypt/dns.nix new file mode 100644 index 000000000000..99058f48d069 --- /dev/null +++ b/pkgs/development/ocaml-modules/letsencrypt/dns.nix @@ -0,0 +1,35 @@ +{ lib +, buildDunePackage +, letsencrypt +, logs +, fmt +, lwt +, dns +, dns-tsig +, domain-name +}: + +buildDunePackage { + pname = "letsencrypt-dns"; + + inherit (letsencrypt) + version + src + useDune2 + minimumOCamlVersion + ; + + propagatedBuildInputs = [ + letsencrypt + dns + dns-tsig + domain-name + logs + lwt + fmt + ]; + + meta = letsencrypt.meta // { + description = "A DNS solver for the ACME implementation in OCaml"; + }; +} diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix index b0f73546eed9..7d6424564d2f 100644 --- a/pkgs/development/ocaml-modules/lwt/default.nix +++ b/pkgs/development/ocaml-modules/lwt/default.nix @@ -1,5 +1,5 @@ { lib, fetchzip, pkg-config, ncurses, libev, buildDunePackage, ocaml -, cppo, dune-configurator, ocaml-migrate-parsetree, ocplib-endian, result +, cppo, dune-configurator, ocplib-endian, result , mmap, seq , ocaml-syntax-shims }: @@ -18,7 +18,7 @@ buildDunePackage rec { }; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ cppo dune-configurator ocaml-migrate-parsetree ] + buildInputs = [ cppo dune-configurator ] ++ optional (!versionAtLeast ocaml.version "4.08") ocaml-syntax-shims ++ optional (!versionAtLeast ocaml.version "4.07") ncurses; propagatedBuildInputs = [ libev mmap ocplib-endian seq result ]; diff --git a/pkgs/development/ocaml-modules/mparser/default.nix b/pkgs/development/ocaml-modules/mparser/default.nix index 90c24718dd15..5f63a98a1309 100644 --- a/pkgs/development/ocaml-modules/mparser/default.nix +++ b/pkgs/development/ocaml-modules/mparser/default.nix @@ -1,25 +1,21 @@ -{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild }: +{ lib, fetchFromGitHub, buildDunePackage }: -stdenv.mkDerivation { - name = "ocaml${ocaml.version}-mparser-1.2.3"; - src = fetchzip { - url = "https://github.com/cakeplus/mparser/archive/1.2.3.tar.gz"; - sha256 = "1f8vpagmv0jdm50pxs2xwh2xcmvgaprx4kw871hlml9ahsflxgnw"; - }; - - buildInputs = [ ocaml findlib ocamlbuild ]; +buildDunePackage rec { + pname = "mparser"; + version = "1.3"; + useDune2 = true; - configurePhase = "ocaml setup.ml -configure"; - buildPhase = "ocaml setup.ml -build"; - installPhase = "ocaml setup.ml -install"; - - createFindlibDestdir = true; + src = fetchFromGitHub { + owner = "murmour"; + repo = "mparser"; + rev = version; + sha256 = "16j19v16r42gcsii6a337zrs5cxnf12ig0vaysxyr7sq5lplqhkx"; + }; meta = { description = "A simple monadic parser combinator OCaml library"; license = lib.licenses.lgpl21Plus; - homepage = "https://github.com/cakeplus/mparser"; + homepage = "https://github.com/murmour/mparser"; maintainers = [ lib.maintainers.vbgl ]; - inherit (ocaml.meta) platforms; }; } diff --git a/pkgs/development/ocaml-modules/mparser/pcre.nix b/pkgs/development/ocaml-modules/mparser/pcre.nix new file mode 100644 index 000000000000..0f26e140ed87 --- /dev/null +++ b/pkgs/development/ocaml-modules/mparser/pcre.nix @@ -0,0 +1,12 @@ +{ fetchFromGitHub, buildDunePackage, ocaml_pcre, mparser }: + +buildDunePackage rec { + pname = "mparser-pcre"; + useDune2 = true; + + inherit (mparser) src version; + + propagatedBuildInputs = [ ocaml_pcre mparser ]; + + meta = mparser.meta // { description = "PCRE-based regular expressions"; }; +} diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix index b501282c1558..6e172dee6ee6 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix @@ -1,4 +1,5 @@ { buildDunePackage +, cppo , stdlib-shims , ppx_yojson_conv_lib , ocaml-syntax-shims @@ -26,16 +27,20 @@ buildDunePackage { ''; buildInputs = [ - stdlib-shims + cppo ppx_yojson_conv_lib ocaml-syntax-shims octavius - uutf - csexp dune-build-info omd cmdliner + ]; + + propagatedBuildInputs = [ + csexp jsonrpc + stdlib-shims + uutf ]; meta = jsonrpc.meta // { diff --git a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix index 69fa4cba8511..9a6dd1f7cb66 100644 --- a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix @@ -1,10 +1,10 @@ { lib, fetchFromGitHub, buildDunePackage -, ocaml-migrate-parsetree, ppx_tools_versioned +, ppxlib }: buildDunePackage rec { pname = "ocaml-monadic"; - version = "0.4.1"; + version = "0.5.0"; useDune2 = true; @@ -12,11 +12,10 @@ buildDunePackage rec { owner = "zepalmer"; repo = pname; rev = version; - sha256 = "1zcwydypk5vwfn1g7srnl5076scwwq5a5y8xwcjl70pc4cpzszll"; + sha256 = "1ynv3yhdqmkhkgnz6c5kv6ryjcc934sdvw9rhh8rjg2dlzlffgbw"; }; - buildInputs = [ ppx_tools_versioned ]; - propagatedBuildInputs = [ ocaml-migrate-parsetree ]; + buildInputs = [ ppxlib ]; meta = { inherit (src.meta) homepage; diff --git a/pkgs/development/ocaml-modules/parany/default.nix b/pkgs/development/ocaml-modules/parany/default.nix index a4378016b47c..6892a7a2e4d5 100644 --- a/pkgs/development/ocaml-modules/parany/default.nix +++ b/pkgs/development/ocaml-modules/parany/default.nix @@ -2,15 +2,16 @@ buildDunePackage rec { pname = "parany"; - version = "8.0.0"; + version = "12.0.3"; useDune2 = true; + minimumOCamlVersion = "4.03.0"; src = fetchFromGitHub { owner = "UnixJunkie"; - repo = pname; - rev = "v${version}"; - sha256 = "19yz1yqyqx6gawy93jlh3x6vji2p9qsy6nsbj65q5pii8p1fjlsm"; + repo = pname; + rev = "v${version}"; + sha256 = "1j962ak68kvv62bczjqxwlwvdgcvjfcs36qwq12nnm0pwlzkhg33"; }; propagatedBuildInputs = [ ocamlnet cpu ]; diff --git a/pkgs/development/ocaml-modules/tezos/base.nix b/pkgs/development/ocaml-modules/tezos/base.nix new file mode 100644 index 000000000000..2f5d76581318 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/base.nix @@ -0,0 +1,33 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-crypto +, tezos-micheline +, ptime +, ezjsonm +, ipaddr +, qcheck-alcotest +, crowbar +}: + +buildDunePackage { + pname = "tezos-base"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-crypto + tezos-micheline + ptime + ezjsonm + ipaddr + ]; + + checkInputs = [ + qcheck-alcotest + crowbar + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: meta-package and pervasive type definitions for Tezos"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/clic.nix b/pkgs/development/ocaml-modules/tezos/clic.nix new file mode 100644 index 000000000000..d69174e5f298 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/clic.nix @@ -0,0 +1,25 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-stdlib-unix +, alcotest +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-clic"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-stdlib-unix + ]; + + checkInputs = [ + alcotest + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: library of auto-documented command-line-parsing combinators"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/crypto.nix b/pkgs/development/ocaml-modules/tezos/crypto.nix new file mode 100644 index 000000000000..9c5bd45f94f1 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/crypto.nix @@ -0,0 +1,38 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-clic +, tezos-rpc +, bls12-381 +, hacl-star +, secp256k1-internal +, uecc +, ringo +, ff +, alcotest +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-crypto"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-clic + tezos-rpc + bls12-381 + hacl-star + secp256k1-internal + uecc + ringo + ]; + + checkInputs = [ + alcotest + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: library with all the cryptographic primitives used by Tezos"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/error-monad.nix b/pkgs/development/ocaml-modules/tezos/error-monad.nix new file mode 100644 index 000000000000..70cdff0c0aca --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/error-monad.nix @@ -0,0 +1,30 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, data-encoding +, lwt +, lwt-canceler +, alcotest +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-error-monad"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-stdlib + data-encoding + lwt + lwt-canceler + ]; + + checkInputs = [ + alcotest + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: error monad"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/event-logging.nix b/pkgs/development/ocaml-modules/tezos/event-logging.nix new file mode 100644 index 000000000000..30d6c12087ee --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/event-logging.nix @@ -0,0 +1,22 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-lwt-result-stdlib +, lwt_log +, alcotest +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-event-logging"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-lwt-result-stdlib + lwt_log + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: event logging library"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/lmdb.nix b/pkgs/development/ocaml-modules/tezos/lmdb.nix new file mode 100644 index 000000000000..960b2532c378 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/lmdb.nix @@ -0,0 +1,51 @@ +{ lib +, fetchFromGitLab +, pkg-config +, buildDunePackage +, lmdb +, rresult +, cstruct +, alcotest +}: + +buildDunePackage rec { + pname = "tezos-lmdb"; + version = "7.4"; + src = fetchFromGitLab { + owner = "tezos"; + repo = "tezos"; + rev = "v${version}"; + sha256 = "18q02j74aa8mxv233kvyb62xbhjngzpgppp6kgr4m53d7a78wgsm"; + }; + + useDune2 = true; + + preBuild = '' + rm dune + rm -rf src + rm -rf docs + ls vendors | grep -v ocaml-lmdb |xargs rm -rf + ''; + + buildInputs = [ + pkg-config + ]; + + propagatedBuildInputs = [ + rresult + lmdb + ]; + + checkInputs = [ + cstruct + alcotest + ]; + + doCheck = false; + + meta = { + description = "Legacy Tezos OCaml binding to LMDB (Consider ocaml-lmdb instead)"; + license = lib.licenses.isc; + maintainers = [ lib.maintainers.ulrikstrid ]; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/lwt-result-stdlib.nix b/pkgs/development/ocaml-modules/tezos/lwt-result-stdlib.nix new file mode 100644 index 000000000000..fe32b7aba74e --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/lwt-result-stdlib.nix @@ -0,0 +1,32 @@ +{ lib +, buildDunePackage +, ocaml +, tezos-stdlib +, tezos-error-monad +, alcotest +, alcotest-lwt +, crowbar +}: + +if lib.versionAtLeast ocaml.version "4.12" then + throw "tezos-lwt-result-stdlib-${tezos-stdlib.version} is not available for OCaml > 4.10" +else + +buildDunePackage { + pname = "tezos-lwt-result-stdlib"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-error-monad + ]; + + checkInputs = [ + alcotest + alcotest-lwt + crowbar + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: error-aware stdlib replacement"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/micheline.nix b/pkgs/development/ocaml-modules/tezos/micheline.nix new file mode 100644 index 000000000000..a729cdef155a --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/micheline.nix @@ -0,0 +1,28 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-error-monad +, uutf +, alcotest +, alcotest-lwt +, ppx_inline_test +}: + +buildDunePackage { + pname = "tezos-micheline"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-error-monad + uutf + ]; + + checkInputs = [ + alcotest + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: internal AST and parser for the Michelson language"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/p2p-services.nix b/pkgs/development/ocaml-modules/tezos/p2p-services.nix new file mode 100644 index 000000000000..b4243f589f0b --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/p2p-services.nix @@ -0,0 +1,18 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +}: + +buildDunePackage { + pname = "tezos-p2p-services"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-base + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: descriptions of RPCs exported by `tezos-p2p`"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/p2p.nix b/pkgs/development/ocaml-modules/tezos/p2p.nix new file mode 100644 index 000000000000..b75c03debfa2 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/p2p.nix @@ -0,0 +1,25 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-p2p-services +, alcotest-lwt +, lwt-watcher +}: + +buildDunePackage { + pname = "tezos-p2p"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-p2p-services + lwt-watcher + ]; + + checkInputs = [ + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: library for a pool of P2P connections"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk-parameters.nix b/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk-parameters.nix new file mode 100644 index 000000000000..5b043eede93d --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk-parameters.nix @@ -0,0 +1,19 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-protocol-008-PtEdo2Zk +, qcheck-alcotest +}: + +buildDunePackage { + pname = "tezos-protocol-008-PtEdo2Zk-parameters"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-protocol-008-PtEdo2Zk + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos/Protocol: parameters"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk.nix b/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk.nix new file mode 100644 index 000000000000..49a7f0e63801 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-008-PtEdo2Zk.nix @@ -0,0 +1,23 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-protocol-compiler +}: + +buildDunePackage { + pname = "tezos-protocol-008-PtEdo2Zk"; + inherit (tezos-stdlib) version src useDune2 doCheck; + + preBuild = '' + rm -rf vendors + substituteInPlace src/proto_008_PtEdo2Zk/lib_protocol/dune.inc --replace "-nostdlib" "" + ''; + + propagatedBuildInputs = [ + tezos-protocol-compiler + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos/Protocol: economic-protocol definition"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-compiler.nix b/pkgs/development/ocaml-modules/tezos/protocol-compiler.nix new file mode 100644 index 000000000000..a43356d9cbe3 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-compiler.nix @@ -0,0 +1,29 @@ +{ lib +, buildDunePackage +, ocaml +, tezos-stdlib +, tezos-protocol-environment +, ocp-ocamlres +, pprint +}: + +if lib.versionAtLeast ocaml.version "4.12" then + throw "tezos-protocol-compiler-${tezos-stdlib.version} is not available for OCaml > 4.10" +else + +buildDunePackage { + pname = "tezos-protocol-compiler"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + minimalOCamlVersion = "4.09"; + + propagatedBuildInputs = [ + tezos-protocol-environment + ocp-ocamlres + pprint + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: economic-protocol compiler"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-demo-noops.nix b/pkgs/development/ocaml-modules/tezos/protocol-demo-noops.nix new file mode 100644 index 000000000000..51efe6941840 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-demo-noops.nix @@ -0,0 +1,18 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-protocol-compiler +}: + +buildDunePackage { + pname = "tezos-protocol-demo-noops"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-protocol-compiler + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos/Protocol: demo_noops economic-protocol definition"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-environment-packer.nix b/pkgs/development/ocaml-modules/tezos/protocol-environment-packer.nix new file mode 100644 index 000000000000..42662105b95f --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-environment-packer.nix @@ -0,0 +1,15 @@ +{ lib +, buildDunePackage +, tezos-stdlib +}: + +buildDunePackage { + pname = "tezos-protocol-environment-packer"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + minimalOCamlVersion = "4.03"; + + meta = tezos-stdlib.meta // { + description = "Tezos: sigs/structs packer for economic protocol environment"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-environment-sigs.nix b/pkgs/development/ocaml-modules/tezos/protocol-environment-sigs.nix new file mode 100644 index 000000000000..79b84360a9d1 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-environment-sigs.nix @@ -0,0 +1,30 @@ +{ lib +, buildDunePackage +, ocaml +, tezos-stdlib +, tezos-protocol-environment-packer +, zarith +}: + +buildDunePackage { + pname = "tezos-protocol-environment-sigs"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-protocol-environment-packer + ]; + + checkInputs = [ + tezos-stdlib + ]; + + postPatch = '' + cp -f ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith/z.mli ./src/lib_protocol_environment/sigs/v1/z.mli + sed -i 's/out_channel/Stdlib.out_channel/g' ./src/lib_protocol_environment/sigs/v1/z.mli + sed -i 's/Buffer/Stdlib.Buffer/g' ./src/lib_protocol_environment/sigs/v1/z.mli + ''; + + meta = tezos-stdlib.meta // { + description = "Tezos: restricted typing environment for the economic protocols"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-environment-structs.nix b/pkgs/development/ocaml-modules/tezos/protocol-environment-structs.nix new file mode 100644 index 000000000000..feddca046f8c --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-environment-structs.nix @@ -0,0 +1,20 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-crypto +, tezos-protocol-environment-packer +}: + +buildDunePackage { + pname = "tezos-protocol-environment-structs"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-crypto + tezos-protocol-environment-packer + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: restricted typing environment for the economic protocols"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/protocol-environment.nix b/pkgs/development/ocaml-modules/tezos/protocol-environment.nix new file mode 100644 index 000000000000..60d9ae29222e --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/protocol-environment.nix @@ -0,0 +1,33 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +, tezos-sapling +, tezos-protocol-environment-sigs +, tezos-protocol-environment-structs +, zarith +, alcotest-lwt +, crowbar +}: + +buildDunePackage { + pname = "tezos-protocol-environment"; + inherit (tezos-stdlib) version src useDune2 doCheck preBuild; + + propagatedBuildInputs = [ + tezos-sapling + tezos-base + tezos-protocol-environment-sigs + tezos-protocol-environment-structs + zarith # this might break, since they actually want 1.11 + ]; + + checkInputs = [ + alcotest-lwt + crowbar + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: custom economic-protocols environment implementation for `tezos-client` and testing"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/requester.nix b/pkgs/development/ocaml-modules/tezos/requester.nix new file mode 100644 index 000000000000..d4a2b69eaa8a --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/requester.nix @@ -0,0 +1,27 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +, tezos-test-services +, lwt-watcher +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-requester"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-base + lwt-watcher + ]; + + checkInputs = [ + alcotest-lwt + tezos-test-services + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: generic resource fetching service"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/rpc.nix b/pkgs/development/ocaml-modules/tezos/rpc.nix new file mode 100644 index 000000000000..33450bdf1675 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/rpc.nix @@ -0,0 +1,22 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-error-monad +, resto +, resto-directory +}: + +buildDunePackage { + pname = "tezos-rpc"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-error-monad + resto + resto-directory + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: library of auto-documented RPCs (service and hierarchy descriptions)"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/sapling.nix b/pkgs/development/ocaml-modules/tezos/sapling.nix new file mode 100644 index 000000000000..40665e380548 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/sapling.nix @@ -0,0 +1,31 @@ +{ lib +, buildDunePackage +, ocaml +, tezos-stdlib +, tezos-crypto +, tezos-rust-libs +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-sapling"; + inherit (tezos-stdlib) version src useDune2 preBuild; + + propagatedBuildInputs = [ + tezos-crypto + tezos-rust-libs + ]; + + checkInputs = [ + alcotest-lwt + ]; + + doCheck = false; + + # This is a hack to work around the hack used in the dune files + OPAM_SWITCH_PREFIX = "${tezos-rust-libs}"; + + meta = tezos-stdlib.meta // { + description = "Tezos/Protocol: economic-protocol definition"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/shell-services.nix b/pkgs/development/ocaml-modules/tezos/shell-services.nix new file mode 100644 index 000000000000..4e2f40497eb8 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/shell-services.nix @@ -0,0 +1,22 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-workers +, tezos-p2p-services +, tezos-version +}: + +buildDunePackage { + pname = "tezos-shell-services"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-workers + tezos-p2p-services + tezos-version + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: descriptions of RPCs exported by `tezos-shell`"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/stdlib-unix.nix b/pkgs/development/ocaml-modules/tezos/stdlib-unix.nix new file mode 100644 index 000000000000..2b3a01469a71 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/stdlib-unix.nix @@ -0,0 +1,30 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-event-logging +, lwt +, ptime +, mtime +, ipaddr +, re +, alcotest +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-stdlib-unix"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-event-logging + lwt + ptime + mtime + ipaddr + re + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: yet-another local-extension of the OCaml standard library (unix-specific fragment)"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/stdlib.nix b/pkgs/development/ocaml-modules/tezos/stdlib.nix new file mode 100644 index 000000000000..d0a734800c43 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/stdlib.nix @@ -0,0 +1,53 @@ +{ lib +, fetchFromGitLab +, buildDunePackage +, hex +, lwt +, zarith +, alcotest +, alcotest-lwt +, crowbar +, bigstring +, lwt_log +}: + +buildDunePackage rec { + pname = "tezos-stdlib"; + version = "8.3"; + src = fetchFromGitLab { + owner = "tezos"; + repo = "tezos"; + rev = "v${version}"; + sha256 = "12cv2cssnw60jbpnh6xjysxgsgcj7d72454k4zs2b8fjx7mkgksk"; + }; + + minimalOCamlVersion = "4.0.8"; + + useDune2 = true; + + preBuild = '' + rm -rf vendors + ''; + + propagatedBuildInputs = [ + hex + lwt + zarith + ]; + + checkInputs = [ + alcotest + alcotest-lwt + crowbar + bigstring + lwt_log + ]; + + doCheck = true; + + meta = { + description = "Tezos: yet-another local-extension of the OCaml standard library"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.ulrikstrid ]; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/test-services.nix b/pkgs/development/ocaml-modules/tezos/test-services.nix new file mode 100644 index 000000000000..ba30b922d174 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/test-services.nix @@ -0,0 +1,20 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +, alcotest-lwt +}: + +buildDunePackage { + pname = "tezos-test-services"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-base + alcotest-lwt + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: Alcotest-based test services"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/version.nix b/pkgs/development/ocaml-modules/tezos/version.nix new file mode 100644 index 000000000000..3b4bdd4bf6f3 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/version.nix @@ -0,0 +1,18 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +}: + +buildDunePackage { + pname = "tezos-version"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-base + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: version information generated from Git"; + }; +} diff --git a/pkgs/development/ocaml-modules/tezos/workers.nix b/pkgs/development/ocaml-modules/tezos/workers.nix new file mode 100644 index 000000000000..ca659f8adfb3 --- /dev/null +++ b/pkgs/development/ocaml-modules/tezos/workers.nix @@ -0,0 +1,18 @@ +{ lib +, buildDunePackage +, tezos-stdlib +, tezos-base +}: + +buildDunePackage { + pname = "tezos-workers"; + inherit (tezos-stdlib) version src useDune2 preBuild doCheck; + + propagatedBuildInputs = [ + tezos-base + ]; + + meta = tezos-stdlib.meta // { + description = "Tezos: worker library"; + }; +} diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix index 07025be296ce..2be9ce1b0210 100644 --- a/pkgs/development/ocaml-modules/yojson/default.nix +++ b/pkgs/development/ocaml-modules/yojson/default.nix @@ -1,48 +1,22 @@ -{ lib, stdenv, fetchzip, ocaml, findlib, dune_2, cppo, easy-format, biniou }: -let - pname = "yojson"; - param = - if lib.versionAtLeast ocaml.version "4.02" then rec { - version = "1.7.0"; - url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz"; - sha256 = "08llz96if8bcgnaishf18si76cv11zbkni0aldb54k3cn7ipiqvd"; - nativeBuildInputs = [ dune_2 ]; - extra = { - installPhase = '' - dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} - ''; - }; - } else rec { - version = "1.2.3"; - url = "https://github.com/ocaml-community/yojson/archive/v${version}.tar.gz"; - sha256 = "10dvkndgwanvw4agbjln7kgb1n9s6lii7jw82kwxczl5rd1sgmvl"; - extra = { - createFindlibDestdir = true; +{ lib, fetchurl, buildDunePackage, cppo, easy-format, biniou }: - makeFlags = [ "PREFIX=$(out)" ]; - - preBuild = "mkdir $out/bin"; - }; - }; -in -stdenv.mkDerivation ({ - - name = "ocaml${ocaml.version}-${pname}-${param.version}"; +buildDunePackage rec { + pname = "yojson"; + version = "1.7.0"; + useDune2 = true; - src = fetchzip { - inherit (param) url sha256; + src = fetchurl { + url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz"; + sha256 = "1iich6323npvvs8r50lkr4pxxqm9mf6w67cnid7jg1j1g5gwcvv5"; }; - nativeBuildInputs = [ ocaml findlib ] ++ (param.nativeBuildInputs or []); - propagatedNativeBuildInputs = [ cppo ]; + nativeBuildInputs = [ cppo ]; propagatedBuildInputs = [ easy-format biniou ]; - configurePlatforms = []; meta = with lib; { description = "An optimized parsing and printing library for the JSON format"; homepage = "https://github.com/ocaml-community/${pname}"; license = licenses.bsd3; maintainers = [ maintainers.vbgl ]; - platforms = ocaml.meta.platforms or []; }; -} // param.extra) +} |