1{
2 lib,
3 stdenv,
4 fetchurl,
5 ocaml,
6 findlib,
7 topkg,
8 ocamlbuild,
9 cmdliner,
10}:
11
12let
13
14in
15lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
16 "b0 is not available for OCaml ${ocaml.version}"
17
18 stdenv.mkDerivation
19 rec {
20
21 pname = "ocaml${ocaml.version}-b0";
22 version = "0.0.5";
23
24 src = fetchurl {
25 url = "${meta.homepage}/releases/b0-${version}.tbz";
26 sha256 = "sha256-ty04JQcP4RCme/VQw0ko2IBebWWX5cBU6nRTTeV1I/I=";
27 };
28
29 strictDeps = true;
30
31 nativeBuildInputs = [
32 ocaml
33 findlib
34 ocamlbuild
35 topkg
36 ];
37 buildInputs = [
38 topkg
39 cmdliner
40 ];
41
42 inherit (topkg) buildPhase installPhase;
43
44 meta = with lib; {
45 description = "Software construction and deployment kit";
46 longDescription = ''
47 WARNING this package is unstable and work in progress, do not depend on
48 it.
49 B0 describes software construction and deployments using modular and
50 customizable definitions written in OCaml. B0 describes:
51 * Build environments.
52 * Software configuration, build and testing.
53 * Source and binary deployments.
54 * Software life-cycle procedures.
55 B0 also provides the B00 build library which provides abitrary build
56 abstraction with reliable and efficient incremental rebuilds. The B00
57 library can be – and has been – used on its own to devise domain specific
58 build systems.
59 '';
60 homepage = "https://erratique.ch/software/b0";
61 inherit (ocaml.meta) platforms;
62 license = licenses.isc;
63 maintainers = [ maintainers.Julow ];
64 };
65 }