nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 fetchpatch,
5 buildDunePackage,
6 dune-configurator,
7 either,
8 seq,
9 gen,
10 iter,
11 qcheck-core,
12 uutf,
13 yojson,
14}:
15
16buildDunePackage (finalAttrs: {
17 version = "3.16";
18 pname = "containers";
19
20 src = fetchFromGitHub {
21 owner = "c-cube";
22 repo = "ocaml-containers";
23 rev = "v${finalAttrs.version}";
24 hash = "sha256-WaHAZRLjaEJUba/I2r3Yof/iUqA3PFUuVbzm88izG1k=";
25 };
26
27 patches = [
28 # Compatibility with qcheck ≥ 0.26
29 (fetchpatch {
30 url = "https://github.com/c-cube/ocaml-containers/commit/3b49ad2a4e8cfe366d0588e1940d626f0e1b8a2d.patch";
31 hash = "sha256-LFe+LtpBBrf82SX57b4iQSvfd9tSXmnfhffjvjcfLpg=";
32 })
33 ];
34
35 buildInputs = [ dune-configurator ];
36 propagatedBuildInputs = [
37 either
38 seq
39 ];
40
41 checkInputs = [
42 gen
43 iter
44 qcheck-core
45 uutf
46 yojson
47 ];
48
49 doCheck = true;
50
51 meta = {
52 homepage = "https://github.com/c-cube/ocaml-containers";
53 description = "Modular standard library focused on data structures";
54 longDescription = ''
55 Containers is a standard library (BSD license) focused on data structures,
56 combinators and iterators, without dependencies on unix. Every module is
57 independent and is prefixed with 'CC' in the global namespace. Some modules
58 extend the stdlib (e.g. CCList provides safe map/fold_right/append, and
59 additional functions on lists).
60
61 It also features optional libraries for dealing with strings, and
62 helpers for unix and threads.
63 '';
64 license = lib.licenses.bsd2;
65 };
66})