diff options
Diffstat (limited to 'nixpkgs/pkgs/top-level/ocaml-packages.nix')
-rw-r--r-- | nixpkgs/pkgs/top-level/ocaml-packages.nix | 1187 |
1 files changed, 1187 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix new file mode 100644 index 000000000000..4be489c76ebb --- /dev/null +++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix @@ -0,0 +1,1187 @@ +{ lib, newScope, pkgs, config }: + +let + liftJaneStreet = self: super: super.janeStreet // super; + + mkOcamlPackages = ocaml: + (lib.makeScope newScope (self: with self; + { + inherit ocaml; + + # Libs + + buildOcaml = callPackage ../build-support/ocaml { }; + + buildOasisPackage = callPackage ../build-support/ocaml/oasis.nix { }; + + buildDunePackage = callPackage ../build-support/ocaml/dune.nix {}; + + afl-persistent = callPackage ../development/ocaml-modules/afl-persistent { }; + + alcotest = callPackage ../development/ocaml-modules/alcotest {}; + + alcotest-lwt = callPackage ../development/ocaml-modules/alcotest/lwt.nix {}; + + angstrom = callPackage ../development/ocaml-modules/angstrom { }; + + angstrom-async = callPackage ../development/ocaml-modules/angstrom-async { }; + + angstrom-lwt-unix = callPackage ../development/ocaml-modules/angstrom-lwt-unix { }; + + angstrom-unix = callPackage ../development/ocaml-modules/angstrom-unix { }; + + ansiterminal = callPackage ../development/ocaml-modules/ansiterminal { }; + + apron = callPackage ../development/ocaml-modules/apron { }; + + asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { }; + + astring = callPackage ../development/ocaml-modules/astring { }; + + atd = callPackage ../development/ocaml-modules/atd { }; + + atdgen = callPackage ../development/ocaml-modules/atdgen { }; + + base64_2 = callPackage ../development/ocaml-modules/base64/2.0.nix { }; + + base64 = callPackage ../development/ocaml-modules/base64 { }; + + bap = callPackage ../development/ocaml-modules/bap { + llvm = pkgs.llvm_8; + }; + + batteries = callPackage ../development/ocaml-modules/batteries { }; + + bigarray-compat = callPackage ../development/ocaml-modules/bigarray-compat { }; + + bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { }; + + bigstring = callPackage ../development/ocaml-modules/bigstring { }; + + biocaml = callPackage ../development/ocaml-modules/biocaml { }; + + bistro = callPackage ../development/ocaml-modules/bistro { }; + + bitstring = callPackage ../development/ocaml-modules/bitstring { }; + + bitv = callPackage ../development/ocaml-modules/bitv { }; + + bolt = callPackage ../development/ocaml-modules/bolt { }; + + bos = callPackage ../development/ocaml-modules/bos { }; + + camlidl = callPackage ../development/tools/ocaml/camlidl { }; + + camlp4 = + if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/tools/ocaml/camlp4 { } + else null; + + camlp5 = callPackage ../development/tools/ocaml/camlp5 { }; + + # Compatibility alias + camlp5_strict = camlp5; + + camlpdf = callPackage ../development/ocaml-modules/camlpdf { }; + + calendar = callPackage ../development/ocaml-modules/calendar { }; + + camlzip = callPackage ../development/ocaml-modules/camlzip { }; + + camomile_0_8_2 = callPackage ../development/ocaml-modules/camomile/0.8.2.nix { }; + camomile = + if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/camomile { } + else callPackage ../development/ocaml-modules/camomile/0.8.5.nix { }; + + camlimages_4_0 = + if lib.versionOlder "4.02" ocaml.version + then null + else callPackage ../development/ocaml-modules/camlimages/4.0.nix { + libpng = pkgs.libpng12; + giflib = pkgs.giflib_4_1; + }; + camlimages_4_1 = callPackage ../development/ocaml-modules/camlimages/4.1.nix { + giflib = pkgs.giflib_4_1; + }; + camlimages = + if lib.versionOlder "4.06" ocaml.version + then callPackage ../development/ocaml-modules/camlimages { } + else camlimages_4_1; + + benchmark = callPackage ../development/ocaml-modules/benchmark { }; + + biniou = + if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/biniou { } + else callPackage ../development/ocaml-modules/biniou/1.0.nix { }; + + bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { }; + + bisect_ppx = callPackage ../development/ocaml-modules/bisect_ppx { }; + bisect_ppx-ocamlbuild = callPackage ../development/ocaml-modules/bisect_ppx-ocamlbuild { }; + + ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { }; + + cairo2 = callPackage ../development/ocaml-modules/cairo2 { }; + + cfstream = callPackage ../development/ocaml-modules/cfstream { }; + + charInfo_width = callPackage ../development/ocaml-modules/charInfo_width { }; + + checkseum = callPackage ../development/ocaml-modules/checkseum { }; + + cil = callPackage ../development/ocaml-modules/cil { }; + + cmdliner = callPackage ../development/ocaml-modules/cmdliner { }; + + cohttp = callPackage ../development/ocaml-modules/cohttp { }; + + cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { }; + + cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { }; + + conduit = callPackage ../development/ocaml-modules/conduit { }; + + conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { }; + + conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { }; + + config-file = callPackage ../development/ocaml-modules/config-file { }; + + containers = callPackage ../development/ocaml-modules/containers { }; + + cow = callPackage ../development/ocaml-modules/cow { }; + + cpdf = callPackage ../development/ocaml-modules/cpdf { }; + + cppo = callPackage ../development/tools/ocaml/cppo { }; + + cpu = callPackage ../development/ocaml-modules/cpu { }; + + cpuid = callPackage ../development/ocaml-modules/cpuid { }; + + crowbar = callPackage ../development/ocaml-modules/crowbar { }; + + crunch = callPackage ../development/tools/ocaml/crunch { }; + + cryptokit = callPackage ../development/ocaml-modules/cryptokit { }; + + cstruct = + if lib.versionAtLeast ocaml.version "4.2" + then callPackage ../development/ocaml-modules/cstruct {} + else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; }; + + cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix { + lwt = ocaml_lwt; + }; + + cstruct-sexp = callPackage ../development/ocaml-modules/cstruct/sexp.nix {}; + + cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {}; + + csv = + if lib.versionAtLeast ocaml.version "4.2" + then callPackage ../development/ocaml-modules/csv { } + else callPackage ../development/ocaml-modules/csv/1.5.nix { }; + + csv-lwt = callPackage ../development/ocaml-modules/csv/lwt.nix { }; + + curly = callPackage ../development/ocaml-modules/curly { + inherit (pkgs) curl; + }; + + curses = callPackage ../development/ocaml-modules/curses { }; + + ctypes = callPackage ../development/ocaml-modules/ctypes { }; + + decompress = callPackage ../development/ocaml-modules/decompress { }; + + digestif = callPackage ../development/ocaml-modules/digestif { }; + + dispatch = callPackage ../development/ocaml-modules/dispatch { }; + + dns = callPackage ../development/ocaml-modules/dns { }; + + dns-client = callPackage ../development/ocaml-modules/dns/client.nix { }; + + dolmen = callPackage ../development/ocaml-modules/dolmen { }; + + dolog = callPackage ../development/ocaml-modules/dolog { }; + + domain-name = callPackage ../development/ocaml-modules/domain-name { }; + + dtoa = callPackage ../development/ocaml-modules/dtoa { }; + + duff = callPackage ../development/ocaml-modules/duff { }; + + dum = callPackage ../development/ocaml-modules/dum { }; + + dune = callPackage ../development/tools/ocaml/dune { }; + + dune_2 = + if lib.versionAtLeast ocaml.version "4.07" + then callPackage ../development/tools/ocaml/dune/2.nix { } + else if lib.versionAtLeast ocaml.version "4.02" + then pkgs.dune_2 + else throw "dune_2 is not available for OCaml ${ocaml.version}"; + + dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { }; + + dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { }; + + dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { }; + + duration = callPackage ../development/ocaml-modules/duration { }; + + earley = callPackage ../development/ocaml-modules/earley { }; + + earlybird = callPackage ../development/ocaml-modules/earlybird { }; + + easy-format = callPackage ../development/ocaml-modules/easy-format { }; + + eigen = callPackage ../development/ocaml-modules/eigen { }; + + elina = callPackage ../development/ocaml-modules/elina { }; + + eliom = callPackage ../development/ocaml-modules/eliom { }; + + elpi = callPackage ../development/ocaml-modules/elpi { }; + + encore = callPackage ../development/ocaml-modules/encore { }; + + enumerate = callPackage ../development/ocaml-modules/enumerate { }; + + eqaf = callPackage ../development/ocaml-modules/eqaf { }; + + erm_xml = callPackage ../development/ocaml-modules/erm_xml { }; + + erm_xmpp = callPackage ../development/ocaml-modules/erm_xmpp { }; + + estring = callPackage ../development/ocaml-modules/estring { }; + + ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { }; + + ezxmlm = callPackage ../development/ocaml-modules/ezxmlm { }; + + facile = callPackage ../development/ocaml-modules/facile { }; + + faillib = callPackage ../development/ocaml-modules/faillib { }; + + faraday = callPackage ../development/ocaml-modules/faraday { }; + + farfadet = callPackage ../development/ocaml-modules/farfadet { }; + + fiat-p256 = callPackage ../development/ocaml-modules/fiat-p256 { }; + + fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { }; + + fileutils = callPackage ../development/ocaml-modules/fileutils { }; + + findlib = callPackage ../development/tools/ocaml/findlib { }; + + fix = callPackage ../development/ocaml-modules/fix { }; + + fmt = callPackage ../development/ocaml-modules/fmt { }; + + fontconfig = callPackage ../development/ocaml-modules/fontconfig { + inherit (pkgs) fontconfig; + }; + + fpath = callPackage ../development/ocaml-modules/fpath { }; + + functoria = callPackage ../development/ocaml-modules/functoria { }; + + functoria-runtime = callPackage ../development/ocaml-modules/functoria/runtime.nix { }; + + functory = callPackage ../development/ocaml-modules/functory { }; + + gen = callPackage ../development/ocaml-modules/gen { }; + + gmap = callPackage ../development/ocaml-modules/gmap { }; + + gnuplot = callPackage ../development/ocaml-modules/gnuplot { + inherit (pkgs) gnuplot; + }; + + hacl_x25519 = callPackage ../development/ocaml-modules/hacl_x25519 { }; + + herelib = callPackage ../development/ocaml-modules/herelib { }; + + higlo = callPackage ../development/ocaml-modules/higlo { }; + + hkdf = callPackage ../development/ocaml-modules/hkdf { }; + + hmap = callPackage ../development/ocaml-modules/hmap { }; + + imagelib = callPackage ../development/ocaml-modules/imagelib { }; + + imagelib-unix = callPackage ../development/ocaml-modules/imagelib/unix.nix { }; + + inotify = callPackage ../development/ocaml-modules/inotify { }; + + integers = callPackage ../development/ocaml-modules/integers { }; + + io-page = callPackage ../development/ocaml-modules/io-page { }; + + io-page-unix = callPackage ../development/ocaml-modules/io-page/unix.nix { }; + + ipaddr = callPackage ../development/ocaml-modules/ipaddr { }; + + irmin_1 = callPackage ../development/ocaml-modules/irmin/1.4.nix { }; + + iso8601 = callPackage ../development/ocaml-modules/iso8601 { }; + + iter = callPackage ../development/ocaml-modules/iter { }; + + javalib = callPackage ../development/ocaml-modules/javalib { + extlib = ocaml_extlib; + }; + + dypgen = callPackage ../development/ocaml-modules/dypgen { }; + + gapi_ocaml = callPackage ../development/ocaml-modules/gapi-ocaml { }; + + gg = callPackage ../development/ocaml-modules/gg { }; + + git = callPackage ../development/ocaml-modules/git { inherit (pkgs) git; }; + + git-http = callPackage ../development/ocaml-modules/git-http { }; + + git-unix = callPackage ../development/ocaml-modules/git-unix { }; + + gmetadom = callPackage ../development/ocaml-modules/gmetadom { }; + + graphics = + if lib.versionOlder "4.09" ocaml.version + then callPackage ../development/ocaml-modules/graphics { } + else null; + + graphql = callPackage ../development/ocaml-modules/graphql { }; + + graphql-cohttp = callPackage ../development/ocaml-modules/graphql/cohttp.nix { }; + + graphql-lwt = callPackage ../development/ocaml-modules/graphql/lwt.nix { }; + + graphql_parser = callPackage ../development/ocaml-modules/graphql/parser.nix { }; + + graphql_ppx = callPackage ../development/ocaml-modules/graphql_ppx { }; + + gtktop = callPackage ../development/ocaml-modules/gtktop { }; + + hex = callPackage ../development/ocaml-modules/hex { }; + + httpaf = callPackage ../development/ocaml-modules/httpaf { }; + + index = callPackage ../development/ocaml-modules/index { }; + + inifiles = callPackage ../development/ocaml-modules/inifiles { }; + + iri = callPackage ../development/ocaml-modules/iri { }; + + irmin = callPackage ../development/ocaml-modules/irmin { }; + + irmin-fs = callPackage ../development/ocaml-modules/irmin/fs.nix { }; + + irmin-git = callPackage ../development/ocaml-modules/irmin/git.nix { }; + + irmin-graphql = callPackage ../development/ocaml-modules/irmin/graphql.nix { }; + + irmin-http = callPackage ../development/ocaml-modules/irmin/http.nix { }; + + irmin-mem = callPackage ../development/ocaml-modules/irmin/mem.nix { }; + + irmin-pack = callPackage ../development/ocaml-modules/irmin/pack.nix { }; + + irmin-test = callPackage ../development/ocaml-modules/irmin/test.nix { }; + + irmin-unix = callPackage ../development/ocaml-modules/irmin/unix.nix { }; + + irmin-watcher = callPackage ../development/ocaml-modules/irmin-watcher { }; + + jingoo = callPackage ../development/ocaml-modules/jingoo { }; + + js_of_ocaml = callPackage ../development/tools/ocaml/js_of_ocaml { }; + + js_of_ocaml-camlp4 = callPackage ../development/tools/ocaml/js_of_ocaml/camlp4.nix {}; + + js_of_ocaml-compiler = callPackage ../development/tools/ocaml/js_of_ocaml/compiler.nix {}; + + js_of_ocaml-lwt = callPackage ../development/tools/ocaml/js_of_ocaml/lwt.nix {}; + + js_of_ocaml-ocamlbuild = callPackage ../development/tools/ocaml/js_of_ocaml/ocamlbuild.nix {}; + + js_of_ocaml-ppx = callPackage ../development/tools/ocaml/js_of_ocaml/ppx.nix {}; + + js_of_ocaml-ppx_deriving_json = callPackage ../development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix { }; + + js_of_ocaml-tyxml = callPackage ../development/tools/ocaml/js_of_ocaml/tyxml.nix {}; + + jsonm = callPackage ../development/ocaml-modules/jsonm { }; + + kafka = callPackage ../development/ocaml-modules/kafka { }; + + ke = callPackage ../development/ocaml-modules/ke { }; + + lablgl = callPackage ../development/ocaml-modules/lablgl { }; + + lablgtk3 = callPackage ../development/ocaml-modules/lablgtk3 { }; + + lablgtk3-gtkspell3 = callPackage ../development/ocaml-modules/lablgtk3/gtkspell3.nix { }; + + lablgtk3-sourceview3 = callPackage ../development/ocaml-modules/lablgtk3/sourceview3.nix { }; + + lablgtk_2_14 = callPackage ../development/ocaml-modules/lablgtk/2.14.0.nix { + inherit (pkgs.gnome2) libgnomecanvas libglade gtksourceview; + }; + lablgtk = callPackage ../development/ocaml-modules/lablgtk { + inherit (pkgs.gnome2) libgnomecanvas libglade gtksourceview; + }; + + lablgtk-extras = + if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/lablgtk-extras { } + else callPackage ../development/ocaml-modules/lablgtk-extras/1.4.nix { }; + + labltk = callPackage ../development/ocaml-modules/labltk { }; + + lacaml = callPackage ../development/ocaml-modules/lacaml { }; + + lambdasoup = callPackage ../development/ocaml-modules/lambdasoup { }; + + lambdaTerm = callPackage ../development/ocaml-modules/lambda-term { }; + + lens = callPackage ../development/ocaml-modules/lens { }; + + linenoise = callPackage ../development/ocaml-modules/linenoise { }; + + llvm = callPackage ../development/ocaml-modules/llvm { + llvm = pkgs.llvm_8; + }; + + logs = callPackage ../development/ocaml-modules/logs { + lwt = ocaml_lwt; + }; + + lru = callPackage ../development/ocaml-modules/lru { }; + + lua-ml = callPackage ../development/ocaml-modules/lua-ml { }; + + lwt2 = callPackage ../development/ocaml-modules/lwt/legacy.nix { }; + + lwt4 = callPackage ../development/ocaml-modules/lwt/4.x.nix { }; + + ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt4 else lwt2; + + lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { }; + + lwt_log = callPackage ../development/ocaml-modules/lwt_log { + lwt = lwt4; + }; + + lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { + lwt = ocaml_lwt; + }; + + lwt_react = callPackage ../development/ocaml-modules/lwt_react { + lwt = ocaml_lwt; + }; + + lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl { + lwt = ocaml_lwt; + }; + + macaddr = callPackage ../development/ocaml-modules/macaddr { }; + + macaque = callPackage ../development/ocaml-modules/macaque { }; + + magic-mime = callPackage ../development/ocaml-modules/magic-mime { }; + + magick = callPackage ../development/ocaml-modules/magick { }; + + markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; }; + + mdx = callPackage ../development/ocaml-modules/mdx { }; + + menhir = callPackage ../development/ocaml-modules/menhir { }; + + merlin = callPackage ../development/tools/ocaml/merlin { }; + + merlin-extend = callPackage ../development/ocaml-modules/merlin-extend { }; + + metrics = callPackage ../development/ocaml-modules/metrics { }; + + metrics-lwt = callPackage ../development/ocaml-modules/metrics/lwt.nix { }; + + metrics-unix = callPackage ../development/ocaml-modules/metrics/unix.nix { + inherit (pkgs) gnuplot; + }; + + mezzo = callPackage ../development/compilers/mezzo { }; + + minisat = callPackage ../development/ocaml-modules/minisat { }; + + mirage-clock = callPackage ../development/ocaml-modules/mirage-clock { }; + + mirage-clock-unix = callPackage ../development/ocaml-modules/mirage-clock/unix.nix { }; + + mirage-crypto = callPackage ../development/ocaml-modules/mirage-crypto { }; + + mirage-crypto-pk = callPackage ../development/ocaml-modules/mirage-crypto/pk.nix { }; + + mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { }; + + mirage-device = callPackage ../development/ocaml-modules/mirage-device { }; + + mirage-flow = callPackage ../development/ocaml-modules/mirage-flow { }; + + mirage-flow-combinators = callPackage ../development/ocaml-modules/mirage-flow/combinators.nix { }; + + mirage-flow-unix = callPackage ../development/ocaml-modules/mirage-flow/unix.nix { }; + + mirage-protocols = callPackage ../development/ocaml-modules/mirage-protocols { }; + + mirage-random = callPackage ../development/ocaml-modules/mirage-random { }; + + mirage-runtime = callPackage ../development/ocaml-modules/mirage/runtime.nix { }; + + mirage-stack = callPackage ../development/ocaml-modules/mirage-stack { }; + + mirage-time = callPackage ../development/ocaml-modules/mirage-time { }; + + mirage-time-unix = callPackage ../development/ocaml-modules/mirage-time/unix.nix { }; + + mirage-unix = callPackage ../development/ocaml-modules/mirage-unix { }; + + mlgmp = callPackage ../development/ocaml-modules/mlgmp { }; + + mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { }; + + mmap = callPackage ../development/ocaml-modules/mmap { }; + + mparser = callPackage ../development/ocaml-modules/mparser { }; + + mstruct = callPackage ../development/ocaml-modules/mstruct { }; + + mtime = callPackage ../development/ocaml-modules/mtime { }; + + nocrypto = callPackage ../development/ocaml-modules/nocrypto { }; + + notty = callPackage ../development/ocaml-modules/notty { + lwt = ocaml_lwt; + }; + + npy = callPackage ../development/ocaml-modules/npy { + inherit (pkgs.python3Packages) numpy; + }; + + num = if lib.versionOlder "4.06" ocaml.version + then callPackage ../development/ocaml-modules/num {} + else null; + + parmap = callPackage ../development/ocaml-modules/parmap { }; + + comparelib = callPackage ../development/ocaml-modules/comparelib { }; + + ocamlbuild = + if lib.versionOlder "4.03" ocaml.version then + callPackage ../development/tools/ocaml/ocamlbuild { } + else + null; + + ocaml_cryptgps = callPackage ../development/ocaml-modules/cryptgps { }; + + ocaml_data_notation = callPackage ../development/ocaml-modules/odn { }; + + ocaml_expat = + if lib.versionAtLeast ocaml.version "4.02" + then callPackage ../development/ocaml-modules/expat { } + else callPackage ../development/ocaml-modules/expat/0.9.nix { }; + + frontc = callPackage ../development/ocaml-modules/frontc { }; + + ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { }; + + ocaml_gettext = callPackage ../development/ocaml-modules/ocaml-gettext { }; + + gettext-stub = callPackage ../development/ocaml-modules/ocaml-gettext/stub.nix { }; + + ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { }; + + ocaml_http = callPackage ../development/ocaml-modules/http { }; + + ocaml_libvirt = callPackage ../development/ocaml-modules/ocaml-libvirt { }; + + ocamlify = callPackage ../development/tools/ocaml/ocamlify { }; + + ocaml-migrate-parsetree = callPackage ../development/ocaml-modules/ocaml-migrate-parsetree { }; + + ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { }; + + ocaml-monadic = callPackage ../development/ocaml-modules/ocaml-monadic { }; + + ocaml_mysql = callPackage ../development/ocaml-modules/mysql { }; + + ocamlnet = callPackage ../development/ocaml-modules/ocamlnet { }; + + ocaml_oasis = callPackage ../development/tools/ocaml/oasis { }; + + ocaml_optcomp = callPackage ../development/ocaml-modules/optcomp { }; + + ocaml_pcre = callPackage ../development/ocaml-modules/pcre {}; + + pgocaml = callPackage ../development/ocaml-modules/pgocaml {}; + + pgocaml_ppx = callPackage ../development/ocaml-modules/pgocaml/ppx.nix {}; + + ocaml-r = callPackage ../development/ocaml-modules/ocaml-r { }; + + ocaml-sat-solvers = callPackage ../development/ocaml-modules/ocaml-sat-solvers { }; + + ocamlscript = callPackage ../development/tools/ocaml/ocamlscript { }; + + ocamlsdl= callPackage ../development/ocaml-modules/ocamlsdl { }; + + ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { }; + + ocaml-syntax-shims = callPackage ../development/ocaml-modules/ocaml-syntax-shims { }; + + syslog = callPackage ../development/ocaml-modules/syslog { }; + + ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { }; + + ocaml-version = callPackage ../development/ocaml-modules/ocaml-version { }; + + ocf = callPackage ../development/ocaml-modules/ocf { }; + + ocp-build = callPackage ../development/tools/ocaml/ocp-build { }; + + ocp-indent = callPackage ../development/tools/ocaml/ocp-indent { }; + + ocp-index = callPackage ../development/tools/ocaml/ocp-index { }; + + ocp-ocamlres = callPackage ../development/ocaml-modules/ocp-ocamlres { }; + + ocplib-endian = callPackage ../development/ocaml-modules/ocplib-endian { }; + + ocplib-json-typed = callPackage ../development/ocaml-modules/ocplib-json-typed { }; + + ocplib-json-typed-browser = callPackage ../development/ocaml-modules/ocplib-json-typed/browser.nix { }; + + ocplib-json-typed-bson = callPackage ../development/ocaml-modules/ocplib-json-typed/bson.nix { }; + + ocplib-simplex = callPackage ../development/ocaml-modules/ocplib-simplex { }; + + ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { }; + + ocsigen-start = callPackage ../development/ocaml-modules/ocsigen-start { }; + + ocsigen-toolkit = callPackage ../development/ocaml-modules/ocsigen-toolkit { }; + + octavius = callPackage ../development/ocaml-modules/octavius { }; + + odoc = callPackage ../development/ocaml-modules/odoc { }; + + omd = callPackage ../development/ocaml-modules/omd { }; + + opam-file-format = callPackage ../development/ocaml-modules/opam-file-format { }; + + opium = callPackage ../development/ocaml-modules/opium { }; + + opium_kernel = callPackage ../development/ocaml-modules/opium_kernel { }; + + opti = callPackage ../development/ocaml-modules/opti { }; + + optint = callPackage ../development/ocaml-modules/optint { }; + + otfm = callPackage ../development/ocaml-modules/otfm { }; + + otr = callPackage ../development/ocaml-modules/otr { }; + + owee = callPackage ../development/ocaml-modules/owee { }; + + owl-base = callPackage ../development/ocaml-modules/owl-base { }; + + owl = callPackage ../development/ocaml-modules/owl { }; + + ounit = callPackage ../development/ocaml-modules/ounit { }; + + ounit2 = callPackage ../development/ocaml-modules/ounit2 { }; + + pgsolver = callPackage ../development/ocaml-modules/pgsolver { }; + + phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { }; + + piqi = callPackage ../development/ocaml-modules/piqi { + base64 = base64_2; + }; + + piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { }; + + ppxfind = callPackage ../development/ocaml-modules/ppxfind { }; + + ppxlib = callPackage ../development/ocaml-modules/ppxlib { }; + + psmt2-frontend = callPackage ../development/ocaml-modules/psmt2-frontend { }; + + psq = callPackage ../development/ocaml-modules/psq { }; + + ptime = callPackage ../development/ocaml-modules/ptime { }; + + resource-pooling = callPackage ../development/ocaml-modules/resource-pooling { }; + + result = callPackage ../development/ocaml-modules/ocaml-result { }; + + secp256k1 = callPackage ../development/ocaml-modules/secp256k1 { + inherit (pkgs) secp256k1; + }; + + seq = callPackage ../development/ocaml-modules/seq { }; + + spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { }; + + sqlexpr = callPackage ../development/ocaml-modules/sqlexpr { }; + + tuntap = callPackage ../development/ocaml-modules/tuntap { }; + + tyxml = callPackage ../development/ocaml-modules/tyxml { }; + + ulex = callPackage ../development/ocaml-modules/ulex { }; + + tls = callPackage ../development/ocaml-modules/tls { }; + + torch = callPackage ../development/ocaml-modules/torch { + inherit (pkgs.python3Packages) pytorch; + }; + + type_conv_108_08_00 = callPackage ../development/ocaml-modules/type_conv/108.08.00.nix { }; + type_conv_109_60_01 = callPackage ../development/ocaml-modules/type_conv/109.60.01.nix { }; + type_conv_112_01_01 = callPackage ../development/ocaml-modules/type_conv/112.01.01.nix { }; + type_conv = + if lib.versionOlder "4.02" ocaml.version + then type_conv_112_01_01 + else if lib.versionOlder "4.00" ocaml.version + then type_conv_109_60_01 + else if lib.versionOlder "3.12" ocaml.version + then type_conv_108_08_00 + else null; + + ocaml-protoc = callPackage ../development/ocaml-modules/ocaml-protoc { }; + + ocaml_extlib = callPackage ../development/ocaml-modules/extlib { }; + + ocb-stubblr = callPackage ../development/ocaml-modules/ocb-stubblr { }; + + ocurl = callPackage ../development/ocaml-modules/ocurl { }; + + pa_ounit = callPackage ../development/ocaml-modules/pa_ounit { }; + + pa_bench = callPackage ../development/ocaml-modules/pa_bench { }; + + parany = callPackage ../development/ocaml-modules/parany { }; + + pipebang = callPackage ../development/ocaml-modules/pipebang { }; + + pprint = callPackage ../development/ocaml-modules/pprint { }; + + ppx_blob = + if lib.versionAtLeast ocaml.version "4.02" + then callPackage ../development/ocaml-modules/ppx_blob {} + else null; + + ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {}; + + ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {}; + + ppx_deriving = + if lib.versionAtLeast ocaml.version "4.02" + then callPackage ../development/ocaml-modules/ppx_deriving {} + else null; + + ppx_deriving_protobuf = callPackage ../development/ocaml-modules/ppx_deriving_protobuf {}; + + ppx_deriving_rpc = callPackage ../development/ocaml-modules/ppx_deriving_rpc { + ppxlib = ppxlib.override { legacy = true; }; + }; + + ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {}; + + ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {}; + + ppx_import = callPackage ../development/ocaml-modules/ppx_import {}; + + ppx_irmin = callPackage ../development/ocaml-modules/irmin/ppx.nix { + }; + + ppx_sqlexpr = callPackage ../development/ocaml-modules/sqlexpr/ppx.nix {}; + + ppx_tools = + if lib.versionAtLeast ocaml.version "4.02" + then callPackage ../development/ocaml-modules/ppx_tools {} + else null; + + ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { }; + + printbox = callPackage ../development/ocaml-modules/printbox { }; + + process = callPackage ../development/ocaml-modules/process { }; + + ptmap = callPackage ../development/ocaml-modules/ptmap { }; + + pycaml = callPackage ../development/ocaml-modules/pycaml { }; + + qcheck = callPackage ../development/ocaml-modules/qcheck { }; + + qtest = callPackage ../development/ocaml-modules/qtest { }; + + randomconv = callPackage ../development/ocaml-modules/randomconv { }; + + re = callPackage ../development/ocaml-modules/re { }; + + react = callPackage ../development/ocaml-modules/react { }; + + reactivedata = callPackage ../development/ocaml-modules/reactivedata {}; + + reason = callPackage ../development/compilers/reason { }; + + rope = callPackage ../development/ocaml-modules/rope { }; + + rpclib = callPackage ../development/ocaml-modules/rpclib { }; + + rresult = callPackage ../development/ocaml-modules/rresult { }; + + safepass = callPackage ../development/ocaml-modules/safepass { }; + + sedlex = callPackage ../development/ocaml-modules/sedlex { }; + + sedlex_2 = callPackage ../development/ocaml-modules/sedlex/2.nix { }; + + sodium = callPackage ../development/ocaml-modules/sodium { }; + + spelll = callPackage ../development/ocaml-modules/spelll { }; + + sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { }; + + ssl = callPackage ../development/ocaml-modules/ssl { }; + + stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { }; + + stog = callPackage ../applications/misc/stog { }; + + stringext = callPackage ../development/ocaml-modules/stringext { }; + + tcslib = callPackage ../development/ocaml-modules/tcslib { }; + + toml = callPackage ../development/ocaml-modules/toml { }; + + topkg = callPackage ../development/ocaml-modules/topkg { }; + + tsdl = callPackage ../development/ocaml-modules/tsdl { }; + + twt = callPackage ../development/ocaml-modules/twt { }; + + typerep_p4 = callPackage ../development/ocaml-modules/typerep { }; + + uchar = callPackage ../development/ocaml-modules/uchar { }; + + utop = callPackage ../development/tools/ocaml/utop { }; + + uuidm = callPackage ../development/ocaml-modules/uuidm { }; + + sawja = callPackage ../development/ocaml-modules/sawja { }; + + stdint = callPackage ../development/ocaml-modules/stdint { }; + + uucd = callPackage ../development/ocaml-modules/uucd { }; + uucp = callPackage ../development/ocaml-modules/uucp { }; + uunf = callPackage ../development/ocaml-modules/uunf { }; + + uri = callPackage ../development/ocaml-modules/uri { }; + + uri-sexp = callPackage ../development/ocaml-modules/uri/sexp.nix { }; + + uuseg = callPackage ../development/ocaml-modules/uuseg { }; + uutf = callPackage ../development/ocaml-modules/uutf { }; + + variantslib_p4 = callPackage ../development/ocaml-modules/variantslib { }; + + vg = callPackage ../development/ocaml-modules/vg { }; + + visitors = callPackage ../development/ocaml-modules/visitors { }; + + wasm = callPackage ../development/ocaml-modules/wasm { }; + + webmachine = callPackage ../development/ocaml-modules/webmachine { }; + + wtf8 = callPackage ../development/ocaml-modules/wtf8 { }; + + x509 = callPackage ../development/ocaml-modules/x509 { }; + + xmlm = callPackage ../development/ocaml-modules/xmlm { }; + + xml-light = callPackage ../development/ocaml-modules/xml-light { }; + + xtmpl = callPackage ../development/ocaml-modules/xtmpl { }; + + yaml = callPackage ../development/ocaml-modules/yaml { }; + + yojson = callPackage ../development/ocaml-modules/yojson { }; + + zarith = callPackage ../development/ocaml-modules/zarith { }; + + zed = callPackage ../development/ocaml-modules/zed { }; + + zmq = callPackage ../development/ocaml-modules/zmq { }; + + zmq-lwt = callPackage ../development/ocaml-modules/zmq/lwt.nix { }; + + ocsigen_deriving = callPackage ../development/ocaml-modules/ocsigen-deriving { + oasis = ocaml_oasis; + }; + + # Jane Street + + janePackage = + if lib.versionOlder "4.08" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/janePackage_0_13.nix {} + else if lib.versionOlder "4.07" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/janePackage_0_12.nix {} + else callPackage ../development/ocaml-modules/janestreet/janePackage.nix {}; + + janeStreet = + if lib.versionOlder "4.08" ocaml.version + then import ../development/ocaml-modules/janestreet/0.13.nix { + inherit ctypes janePackage num octavius ppxlib re; + inherit (pkgs) openssl; + } + else if lib.versionOlder "4.07" ocaml.version + then import ../development/ocaml-modules/janestreet/0.12.nix { + inherit ctypes janePackage num octavius re; + inherit (pkgs) openssl; + ppxlib = ppxlib.override { legacy = true; }; + } + else import ../development/ocaml-modules/janestreet { + inherit janePackage ocamlbuild angstrom ctypes cryptokit; + inherit magic-mime num ocaml-migrate-parsetree octavius ounit; + inherit ppx_deriving re; + inherit (pkgs) openssl; + ppxlib = ppxlib.override { legacy = true; }; + }; + + janeStreet_0_9_0 = import ../development/ocaml-modules/janestreet/old.nix { + janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix { defaultVersion = "0.9.0"; }; + inherit lib ocaml ocamlbuild ctypes cryptokit; + inherit magic-mime num ocaml-migrate-parsetree octavius ounit; + inherit ppx_deriving re zarith; + inherit (pkgs) stdenv openssl; + }; + + js_build_tools = callPackage ../development/ocaml-modules/janestreet/js-build-tools.nix {}; + + buildOcamlJane = callPackage ../development/ocaml-modules/janestreet/buildOcamlJane.nix {}; + + ppx_core = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_core + else callPackage ../development/ocaml-modules/janestreet/ppx-core.nix {}; + + ppx_optcomp = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_optcomp + else callPackage ../development/ocaml-modules/janestreet/ppx-optcomp.nix {}; + + ppx_driver = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_driver + else callPackage ../development/ocaml-modules/janestreet/ppx-driver.nix {}; + + ppx_type_conv = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_type_conv + else callPackage ../development/ocaml-modules/janestreet/ppx-type-conv.nix {}; + + ppx_compare = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_compare + else callPackage ../development/ocaml-modules/janestreet/ppx-compare.nix {}; + + ppx_here = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_here + else callPackage ../development/ocaml-modules/janestreet/ppx-here.nix {}; + + ppx_sexp_conv = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_sexp_conv + else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-conv.nix {}; + + ppx_assert = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_assert + else callPackage ../development/ocaml-modules/janestreet/ppx-assert.nix {}; + + ppx_inline_test = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_inline_test + else callPackage ../development/ocaml-modules/janestreet/ppx-inline-test.nix {}; + + ppx_bench = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_bench + else callPackage ../development/ocaml-modules/janestreet/ppx-bench.nix {}; + + ppx_bin_prot = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_bin_prot + else callPackage ../development/ocaml-modules/janestreet/ppx-bin-prot.nix {}; + + ppx_custom_printf = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_custom_printf + else callPackage ../development/ocaml-modules/janestreet/ppx-custom-printf.nix {}; + + ppx_enumerate = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_enumerate + else callPackage ../development/ocaml-modules/janestreet/ppx-enumerate.nix {}; + + ppx_fail = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_fail + else callPackage ../development/ocaml-modules/janestreet/ppx-fail.nix {}; + + ppx_fields_conv = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_fields_conv + else callPackage ../development/ocaml-modules/janestreet/ppx-fields-conv.nix {}; + + ppx_let = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_let + else callPackage ../development/ocaml-modules/janestreet/ppx-let.nix {}; + + ppx_pipebang = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_pipebang + else callPackage ../development/ocaml-modules/janestreet/ppx-pipebang.nix {}; + + ppx_sexp_message = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_sexp_message + else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-message.nix {}; + + ppx_sexp_value = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_sexp_value + else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-value.nix {}; + + ppx_typerep_conv = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_typerep_conv + else callPackage ../development/ocaml-modules/janestreet/ppx-typerep-conv.nix {}; + + ppx_variants_conv = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_variants_conv + else callPackage ../development/ocaml-modules/janestreet/ppx-variants-conv.nix {}; + + ppx_expect = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_expect + else callPackage ../development/ocaml-modules/janestreet/ppx-expect.nix {}; + + ppx_jane = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.ppx_jane + else callPackage ../development/ocaml-modules/janestreet/ppx-jane.nix {}; + + + # Core sublibs + typerep = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.typerep + else if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/typerep.nix {} + else typerep_p4; + + fieldslib = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.fieldslib + else if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/fieldslib.nix {} + else fieldslib_p4; + + sexplib = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.sexplib + else if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/sexplib.nix {} + else null; + + variantslib = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.variantslib + else if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/variantslib.nix {} + else variantslib_p4; + + bin_prot = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.bin_prot + else if lib.versionOlder "4.02" ocaml.version + then callPackage ../development/ocaml-modules/janestreet/bin_prot.nix {} + else bin_prot_p4; + + core_bench = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.core_bench else + callPackage ../development/ocaml-modules/janestreet/core_bench.nix {}; + + async_rpc_kernel = + if lib.versionOlder "4.03" ocaml.version + then janeStreet.async_rpc_kernel + else callPackage ../development/ocaml-modules/janestreet/async-rpc-kernel.nix {}; + + # Apps / from all-packages + + ocamlnat = callPackage ../development/ocaml-modules/ocamlnat { }; + + omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { }; + + google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { }; + + hol_light = callPackage ../applications/science/logic/hol_light { }; + + })).overrideScope' liftJaneStreet; + +in let inherit (pkgs) callPackage; in rec +{ + + ocamlPackages_4_00_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.00.1.nix { }); + + ocamlPackages_4_01_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.01.0.nix { }); + + ocamlPackages_4_02 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.02.nix { }); + + ocamlPackages_4_03 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.03.nix { }); + + ocamlPackages_4_04 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.04.nix { }); + + ocamlPackages_4_05 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.05.nix { }); + + ocamlPackages_4_06 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.06.nix { }); + + ocamlPackages_4_07 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.07.nix { }); + + ocamlPackages_4_08 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.08.nix { }); + + ocamlPackages_4_09 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.09.nix { }); + + ocamlPackages_4_10 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.10.nix { }); + + ocamlPackages_4_11 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.11.nix { }); + + ocamlPackages_latest = ocamlPackages_4_10; + + ocamlPackages = ocamlPackages_4_10; +} |