diff --git a/pkgs/development/ocaml-modules/ptime/default.nix b/pkgs/development/ocaml-modules/ptime/default.nix new file mode 100644 index 000000000000..bb8500197311 --- /dev/null +++ b/pkgs/development/ocaml-modules/ptime/default.nix @@ -0,0 +1,47 @@ +{stdenv, fetchurl, buildOcaml, ocaml, findlib, ocamlbuild, topkg, result, opam}: + +let ocaml-version = stdenv.lib.getVersion ocaml; in + +buildOcaml rec { + version = "0.8.2"; + name = "ptime"; + + src = fetchurl { + url = "http://erratique.ch/software/ptime/releases/ptime-${version}.tbz"; + sha256 = "1lihkhzskzwxskiarh4mvf7gbz5nfv25vmazbfz81m344i32a5pj"; + }; + + unpackCmd = "tar -xf $curSrc"; + + buildInputs = [ ocaml findlib ocamlbuild topkg opam ]; + + propagatedBuildInputs = [ result ]; + + buildPhase = '' + ocaml -I ${findlib}/lib/ocaml/${ocaml-version}/site-lib/ pkg/pkg.ml build --with-js_of_ocaml false + ''; + + installPhase = '' + opam-installer --script --prefix=$out ptime.install | sh + ln -s $out/lib/ptime $out/lib/ocaml/${ocaml.version}/site-lib + ''; + + meta = { + homepage = http://erratique.ch/software/ptime; + description = "POSIX time for OCaml."; + longDescription = '' + Ptime has platform independent POSIX time support in pure OCaml. + It provides a type to represent a well-defined range of POSIX timestamps + with picosecond precision, conversion with date-time values, conversion + with RFC 3339 timestamps and pretty printing to a human-readable, + locale-independent representation. + + The additional Ptime_clock library provides access to a system POSIX clock + and to the system's current time zone offset. + + Ptime is not a calendar library. + ''; + license = stdenv.lib.licenses.isc; + maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 58e9512e31c6..c4381ea484be 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -340,6 +340,8 @@ let piqi = callPackage ../development/ocaml-modules/piqi { }; piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { }; + ptime = callPackage ../development/ocaml-modules/ptime { }; + re2_p4 = callPackage ../development/ocaml-modules/re2 { }; result = callPackage ../development/ocaml-modules/ocaml-result { };