1{
2 lib,
3 stdenv,
4 fetchurl,
5 ocaml,
6 findlib,
7 ocamlbuild,
8 topkg,
9 cmdliner,
10 version ? if lib.versionAtLeast ocaml.version "4.14" then "0.9.10" else "0.9.8",
11}:
12
13lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
14 "uuidm is not available for OCaml ${ocaml.version}"
15
16 stdenv.mkDerivation
17 {
18 inherit version;
19 pname = "uuidm";
20 src = fetchurl {
21 url = "https://erratique.ch/software/uuidm/releases/uuidm-${version}.tbz";
22 hash =
23 {
24 "0.9.10" = "sha256-kWVZSofWMyky5nAuxoh1xNhwMKZ2qUahL3Dh27J36Vc=";
25 "0.9.8" = "sha256-/GZbkJVDQu1UY8SliK282kUWAVMfOnpQadUlRT/tJrM=";
26 }
27 ."${version}";
28 };
29
30 strictDeps = true;
31
32 nativeBuildInputs = [
33 ocaml
34 findlib
35 ocamlbuild
36 topkg
37 ];
38 configurePlatforms = [ ];
39 buildInputs = [
40 topkg
41 cmdliner
42 ];
43
44 inherit (topkg) buildPhase installPhase;
45
46 meta = with lib; {
47 description = "OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
48 homepage = "https://erratique.ch/software/uuidm";
49 license = licenses.bsd3;
50 maintainers = [ maintainers.maurer ];
51 mainProgram = "uuidtrip";
52 inherit (ocaml.meta) platforms;
53 };
54 }