buildDunePackage: new support function; use it to refactor some OCaml derivations

This commit is contained in:
Théo Zimmermann
2018-11-07 10:08:03 +01:00
parent 5fc73fd52e
commit 794158fcd5
64 changed files with 506 additions and 828 deletions
@@ -1,11 +1,11 @@
{ stdenv, fetchFromGitHub, ocaml, findlib, dune
{ stdenv, fetchFromGitHub, buildDunePackage
, ppx_fields_conv, ppx_sexp_conv, ppx_deriving
, base64, fieldslib, jsonm, re, stringext, uri
}:
stdenv.mkDerivation rec {
buildDunePackage rec {
pname = "cohttp";
version = "1.1.1";
name = "ocaml${ocaml.version}-cohttp-${version}";
src = fetchFromGitHub {
owner = "mirage";
@@ -14,19 +14,14 @@ stdenv.mkDerivation rec {
sha256 = "1dzd6vy43b7p9xplzg2whylz5br59zxaqywa14b4l377f31gnwq1";
};
buildInputs = [ ocaml findlib dune jsonm ppx_fields_conv ppx_sexp_conv ];
buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
propagatedBuildInputs = [ ppx_deriving base64 fieldslib re stringext uri ];
buildPhase = "dune build -p cohttp";
inherit (dune) installPhase;
meta = {
description = "HTTP(S) library for Lwt, Async and Mirage";
license = stdenv.lib.licenses.isc;
maintainers = [ stdenv.lib.maintainers.vbgl ];
inherit (src.meta) homepage;
inherit (ocaml.meta) platforms;
};
}
@@ -1,4 +1,4 @@
{ stdenv, ocaml, findlib, dune, cohttp-lwt
{ stdenv, buildDunePackage, cohttp-lwt
, conduit-lwt-unix, ppx_sexp_conv
, cmdliner, fmt, magic-mime
}:
@@ -7,13 +7,11 @@ if !stdenv.lib.versionAtLeast cohttp-lwt.version "0.99"
then cohttp-lwt
else
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-cohttp-lwt-unix-${version}";
inherit (cohttp-lwt) version src installPhase meta;
buildDunePackage rec {
pname = "cohttp-lwt-unix";
inherit (cohttp-lwt) version src meta;
buildInputs = [ ocaml findlib dune cmdliner ppx_sexp_conv ];
buildInputs = [ cmdliner ppx_sexp_conv ];
propagatedBuildInputs = [ cohttp-lwt conduit-lwt-unix fmt magic-mime ];
buildPhase = "dune build -p cohttp-lwt-unix";
}
@@ -1,16 +1,14 @@
{ stdenv, ocaml, findlib, dune, cohttp, ocaml_lwt, uri, ppx_sexp_conv }:
{ stdenv, buildDunePackage, cohttp, ocaml_lwt, uri, ppx_sexp_conv }:
if !stdenv.lib.versionAtLeast cohttp.version "0.99"
then cohttp
else
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-cohttp-lwt-${version}";
inherit (cohttp) version src installPhase meta;
buildDunePackage rec {
pname = "cohttp-lwt";
inherit (cohttp) version src meta;
buildInputs = [ ocaml findlib dune uri ppx_sexp_conv ];
buildInputs = [ uri ppx_sexp_conv ];
propagatedBuildInputs = [ cohttp ocaml_lwt ];
buildPhase = "dune build -p cohttp-lwt";
}