nixpkgs/pkgs/top-level/ocaml-packages.nix

1081 lines
37 KiB
Nix
Raw Normal View History

{ lib, callPackage, newScope, pkgs, config }:
2016-09-19 17:00:42 +00:00
let
inherit (pkgs.stdenv.hostPlatform) system;
2016-09-19 17:00:42 +00:00
mkOcamlPackages = ocaml: overrides:
let
packageSet = self:
with self; let inherit (self) callPackage; in
let ocamlPackages =
2016-09-19 17:00:42 +00:00
{
callPackage = newScope self;
inherit ocaml;
# Libs
buildOcaml = callPackage ../build-support/ocaml { };
alcotest = callPackage ../development/ocaml-modules/alcotest {};
2017-02-17 22:18:48 +00:00
angstrom = callPackage ../development/ocaml-modules/angstrom { };
2016-09-19 17:00:42 +00:00
ansiterminal = callPackage ../development/ocaml-modules/ansiterminal { };
apron = callPackage ../development/ocaml-modules/apron { };
2016-09-19 17:00:42 +00:00
asn1-combinators = callPackage ../development/ocaml-modules/asn1-combinators { };
2016-11-03 01:12:14 +00:00
astring = callPackage ../development/ocaml-modules/astring { };
2016-09-19 17:00:42 +00:00
async_extra_p4 = callPackage ../development/ocaml-modules/async_extra { };
async_find =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_find
else callPackage ../development/ocaml-modules/async_find { };
2016-09-19 17:00:42 +00:00
async_kernel_p4 = callPackage ../development/ocaml-modules/async_kernel { };
async_shell =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_shell
else callPackage ../development/ocaml-modules/async_shell { };
2016-09-19 17:00:42 +00:00
async_unix_p4 = callPackage ../development/ocaml-modules/async_unix { };
async_p4 =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/async { }
else null;
atd = callPackage ../development/ocaml-modules/atd { };
base64 = callPackage ../development/ocaml-modules/base64 { };
2018-03-06 14:26:12 +00:00
bap = callPackage ../development/ocaml-modules/bap {
inherit (janeStreet_0_9_0) core_kernel ppx_jane parsexp;
2018-07-05 19:40:30 +00:00
ezjsonm = ezjsonm.override {
inherit (janeStreet_0_9_0) sexplib;
hex = hex.override {
cstruct = cstruct.override {
inherit (janeStreet_0_9_0) sexplib;
};
};
};
uri = uri.override {
inherit (janeStreet_0_9_0) ppx_sexp_conv sexplib;
};
2018-03-06 14:26:12 +00:00
};
2017-01-25 07:08:03 +00:00
batteries = callPackage ../development/ocaml-modules/batteries { };
bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { };
2017-03-29 05:24:58 +00:00
bitstring = callPackage ../development/ocaml-modules/bitstring { };
bitv = callPackage ../development/ocaml-modules/bitv { };
2016-09-19 17:00:42 +00:00
bolt = callPackage ../development/ocaml-modules/bolt { };
bos = callPackage ../development/ocaml-modules/bos { };
2016-09-19 17:00:42 +00:00
camlidl = callPackage ../development/tools/ocaml/camlidl { };
camlp4 =
2016-10-08 06:45:59 +00:00
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/tools/ocaml/camlp4 { }
else null;
camlp5_old_strict =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.00" ocaml.version
2016-09-19 17:00:42 +00:00
then camlp5_6_strict
else callPackage ../development/tools/ocaml/camlp5/5.15.nix { };
camlp5_old_transitional =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.00" ocaml.version
2016-09-19 17:00:42 +00:00
then camlp5_6_transitional
else callPackage ../development/tools/ocaml/camlp5/5.15.nix {
transitional = true;
};
camlp5_6_strict = callPackage ../development/tools/ocaml/camlp5 { };
camlp5_6_transitional = callPackage ../development/tools/ocaml/camlp5 {
transitional = true;
};
camlp5_strict = camlp5_6_strict;
camlp5_transitional = camlp5_6_transitional;
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 { };
2017-10-19 21:09:20 +00:00
camomile =
2017-11-09 18:52:03 +00:00
if lib.versionOlder "4.02" ocaml.version
2017-10-19 21:09:20 +00:00
then callPackage ../development/ocaml-modules/camomile { }
else callPackage ../development/ocaml-modules/camomile/0.8.5.nix { };
2016-09-19 17:00:42 +00:00
camlimages_4_0 =
if lib.versionOlder "4.02" ocaml.version
then null
else callPackage ../development/ocaml-modules/camlimages/4.0.nix {
2016-09-19 17:00:42 +00:00
libpng = pkgs.libpng12;
giflib = pkgs.giflib_4_1;
};
camlimages_4_1 = callPackage ../development/ocaml-modules/camlimages/4.1.nix {
giflib = pkgs.giflib_4_1;
};
2018-03-07 10:09:32 +00:00
camlimages =
2018-03-08 02:49:48 +00:00
if lib.versionOlder "4.06" ocaml.version
2018-03-07 10:09:32 +00:00
then callPackage ../development/ocaml-modules/camlimages { }
else camlimages_4_1;
2016-09-19 17:00:42 +00:00
benchmark = callPackage ../development/ocaml-modules/benchmark { };
2017-10-06 20:23:12 +00:00
biniou =
if lib.versionOlder "4.02" ocaml.version
then callPackage ../development/ocaml-modules/biniou { }
else callPackage ../development/ocaml-modules/biniou/1.0.nix { };
2016-09-19 17:00:42 +00:00
bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { };
ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
2017-12-09 08:38:50 +00:00
cairo2 = callPackage ../development/ocaml-modules/cairo2 { };
2016-09-19 17:00:42 +00:00
cil = callPackage ../development/ocaml-modules/cil { };
cmdliner = callPackage ../development/ocaml-modules/cmdliner { };
cohttp_p4 = callPackage ../development/ocaml-modules/cohttp/0.19.3.nix {
lwt = lwt2;
2016-09-19 17:00:42 +00:00
};
cohttp =
if lib.versionOlder "4.03" ocaml.version
then callPackage ../development/ocaml-modules/cohttp { }
else cohttp_p4;
cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { };
cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { };
conduit_p4 = callPackage ../development/ocaml-modules/conduit/0.10.0.nix {
lwt = lwt2;
};
conduit =
if lib.versionOlder "4.03" ocaml.version
then callPackage ../development/ocaml-modules/conduit { }
else conduit_p4;
conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { };
conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { };
2016-09-19 17:00:42 +00:00
config-file = callPackage ../development/ocaml-modules/config-file { };
containers = callPackage ../development/ocaml-modules/containers { };
2017-02-18 21:58:29 +00:00
cow = callPackage ../development/ocaml-modules/cow { };
2016-09-19 17:00:42 +00:00
cpdf = callPackage ../development/ocaml-modules/cpdf { };
cppo = callPackage ../development/tools/ocaml/cppo { };
cpuid = callPackage ../development/ocaml-modules/cpuid { };
2016-09-19 17:00:42 +00:00
cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
2017-11-27 19:08:40 +00:00
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 {
2016-09-19 17:00:42 +00:00
lwt = ocaml_lwt;
};
2017-11-27 19:08:40 +00:00
cstruct-unix = callPackage ../development/ocaml-modules/cstruct/unix.nix {};
2017-09-20 05:38:42 +00:00
csv =
if lib.versionAtLeast ocaml.version "4.2"
then callPackage ../development/ocaml-modules/csv { }
else callPackage ../development/ocaml-modules/csv/1.5.nix { };
2016-09-19 17:00:42 +00:00
curses = callPackage ../development/ocaml-modules/curses { };
2017-02-04 15:07:45 +00:00
2016-09-19 17:00:42 +00:00
custom_printf = callPackage ../development/ocaml-modules/custom_printf { };
ctypes = callPackage ../development/ocaml-modules/ctypes { };
decompress = callPackage ../development/ocaml-modules/decompress { };
digestif = callPackage ../development/ocaml-modules/digestif { };
2018-09-16 04:24:06 +00:00
doc-ock = callPackage ../development/ocaml-modules/doc-ock { };
dolmen = callPackage ../development/ocaml-modules/dolmen { };
2016-09-19 17:00:42 +00:00
dolog = callPackage ../development/ocaml-modules/dolog { };
2018-01-01 09:43:27 +00:00
dtoa = callPackage ../development/ocaml-modules/dtoa { };
earley = callPackage ../development/ocaml-modules/earley { };
earley_ocaml = callPackage ../development/ocaml-modules/earley_ocaml { };
2016-09-19 17:00:42 +00:00
easy-format = callPackage ../development/ocaml-modules/easy-format { };
2018-03-31 05:41:24 +00:00
eliom = callPackage ../development/ocaml-modules/eliom { };
2016-09-19 17:00:42 +00:00
enumerate = callPackage ../development/ocaml-modules/enumerate { };
erm_xml = callPackage ../development/ocaml-modules/erm_xml { };
erm_xmpp = callPackage ../development/ocaml-modules/erm_xmpp { };
estring = callPackage ../development/ocaml-modules/estring { };
2018-07-05 20:31:18 +00:00
ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
2016-09-19 17:00:42 +00:00
facile = callPackage ../development/ocaml-modules/facile { };
2016-09-19 17:00:42 +00:00
faillib = callPackage ../development/ocaml-modules/faillib { };
faraday = callPackage ../development/ocaml-modules/faraday { };
farfadet = callPackage ../development/ocaml-modules/farfadet { };
2016-09-19 17:00:42 +00:00
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 { };
2016-09-19 17:00:42 +00:00
fontconfig = callPackage ../development/ocaml-modules/fontconfig {
inherit (pkgs) fontconfig;
};
fpath = callPackage ../development/ocaml-modules/fpath { };
functoria = callPackage ../development/ocaml-modules/functoria { };
2016-09-19 17:00:42 +00:00
functory = callPackage ../development/ocaml-modules/functory { };
gen = callPackage ../development/ocaml-modules/gen { };
herelib = callPackage ../development/ocaml-modules/herelib { };
2017-03-23 07:58:25 +00:00
higlo = callPackage ../development/ocaml-modules/higlo { };
imagelib = callPackage ../development/ocaml-modules/imagelib { };
inotify = callPackage ../development/ocaml-modules/inotify { };
2017-07-11 21:11:53 +00:00
integers = callPackage ../development/ocaml-modules/integers { };
2016-09-19 17:00:42 +00:00
io-page = callPackage ../development/ocaml-modules/io-page { };
ipaddr_p4 = callPackage ../development/ocaml-modules/ipaddr/2.6.1.nix { };
ipaddr =
if lib.versionOlder "4.02" ocaml.version
then callPackage ../development/ocaml-modules/ipaddr { }
else ipaddr_p4;
2016-09-19 17:00:42 +00:00
iso8601 = callPackage ../development/ocaml-modules/iso8601 { };
javalib = callPackage ../development/ocaml-modules/javalib {
extlib = ocaml_extlib;
2016-09-19 17:00:42 +00:00
};
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 { };
git-http = callPackage ../development/ocaml-modules/git-http { };
git-unix = callPackage ../development/ocaml-modules/git-unix { };
2016-09-19 17:00:42 +00:00
gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
gtktop = callPackage ../development/ocaml-modules/gtktop { };
hex = callPackage ../development/ocaml-modules/hex { };
httpaf = callPackage ../development/ocaml-modules/httpaf { };
inifiles = callPackage ../development/ocaml-modules/inifiles { };
iri = callPackage ../development/ocaml-modules/iri { };
2016-09-19 17:00:42 +00:00
jingoo = callPackage ../development/ocaml-modules/jingoo {
pcre = ocaml_pcre;
};
js_of_ocaml =
if lib.versionOlder "4.02" ocaml.version
then callPackage ../development/tools/ocaml/js_of_ocaml/3.0.nix { }
else js_of_ocaml_2;
js_of_ocaml_2 = callPackage ../development/tools/ocaml/js_of_ocaml { lwt = lwt2; };
js_of_ocaml-camlp4 = callPackage ../development/tools/ocaml/js_of_ocaml/camlp4.nix {};
2016-09-19 17:00:42 +00:00
2017-08-27 14:29:57 +00:00
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 {};
2017-08-27 14:32:39 +00:00
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 {};
2016-09-19 17:00:42 +00:00
jsonm = callPackage ../development/ocaml-modules/jsonm { };
lablgl = callPackage ../development/ocaml-modules/lablgl { };
2016-09-19 17:00:42 +00:00
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 =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/lablgtk-extras { }
else callPackage ../development/ocaml-modules/lablgtk-extras/1.4.nix { };
lablgtkmathview = callPackage ../development/ocaml-modules/lablgtkmathview {
gtkmathview = callPackage ../development/libraries/gtkmathview { };
};
labltk = callPackage ../development/ocaml-modules/labltk { };
lambdaTerm-1_6 = callPackage ../development/ocaml-modules/lambda-term/1.6.nix { lwt = lwt2; };
2016-09-19 17:00:42 +00:00
lambdaTerm =
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/lambda-term { }
else lambdaTerm-1_6;
linenoise = callPackage ../development/ocaml-modules/linenoise { };
2016-09-19 17:00:42 +00:00
llvm = callPackage ../development/ocaml-modules/llvm {
2017-03-12 18:22:01 +00:00
llvm = pkgs.llvm_39;
2016-09-19 17:00:42 +00:00
};
2017-02-18 21:57:45 +00:00
logs = callPackage ../development/ocaml-modules/logs {
lwt = ocaml_lwt;
};
lru = callPackage ../development/ocaml-modules/lru { };
2018-03-25 18:26:39 +00:00
lwt2 = callPackage ../development/ocaml-modules/lwt/legacy.nix { };
2017-07-02 11:06:16 +00:00
lwt3 = if lib.versionOlder "4.02" ocaml.version
2018-03-25 18:26:39 +00:00
then callPackage ../development/ocaml-modules/lwt { }
2017-07-02 11:06:16 +00:00
else throw "lwt3 is not available for OCaml ${ocaml.version}";
ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt3 else lwt2;
2018-07-12 21:25:59 +00:00
lwt_log = callPackage ../development/ocaml-modules/lwt_log {
lwt = lwt3;
};
2018-03-27 20:34:08 +00:00
lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix {
lwt = lwt3;
};
2017-07-02 11:39:53 +00:00
lwt_react = callPackage ../development/ocaml-modules/lwt_react {
lwt = lwt3;
};
2018-02-02 06:39:50 +00:00
lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl {
lwt = lwt3;
};
2016-09-19 17:00:42 +00:00
macaque = callPackage ../development/ocaml-modules/macaque { };
magic-mime = callPackage ../development/ocaml-modules/magic-mime { };
magick = callPackage ../development/ocaml-modules/magick { };
2017-12-09 09:33:32 +00:00
markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; };
2016-09-19 17:00:42 +00:00
menhir = callPackage ../development/ocaml-modules/menhir { };
merlin = callPackage ../development/tools/ocaml/merlin { };
2017-04-08 11:34:41 +00:00
merlin_extend = callPackage ../development/ocaml-modules/merlin_extend { };
2016-09-19 17:00:42 +00:00
mezzo = callPackage ../development/compilers/mezzo { };
mlgmp = callPackage ../development/ocaml-modules/mlgmp { };
mlgmpidl = callPackage ../development/ocaml-modules/mlgmpidl { };
mparser = callPackage ../development/ocaml-modules/mparser { };
mstruct = callPackage ../development/ocaml-modules/mstruct { };
mtime = callPackage ../development/ocaml-modules/mtime { };
2017-11-27 19:08:40 +00:00
nocrypto = callPackage ../development/ocaml-modules/nocrypto { };
2016-11-03 02:06:14 +00:00
2016-11-03 02:06:14 +00:00
notty = callPackage ../development/ocaml-modules/notty {
lwt = ocaml_lwt;
};
2017-11-03 23:45:18 +00:00
num = if lib.versionOlder "4.06" ocaml.version
then callPackage ../development/ocaml-modules/num {}
else null;
2016-09-19 17:00:42 +00:00
comparelib = callPackage ../development/ocaml-modules/comparelib { };
core_extended_p4 = callPackage ../development/ocaml-modules/core_extended { };
core_kernel_p4 = callPackage ../development/ocaml-modules/core_kernel { };
core_p4 = callPackage ../development/ocaml-modules/core { };
ocamlbuild =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.03" ocaml.version then
2016-09-19 17:00:42 +00:00
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 { };
2016-09-19 17:00:42 +00:00
frontc = callPackage ../development/ocaml-modules/frontc { };
ocamlfuse = callPackage ../development/ocaml-modules/ocamlfuse { };
2017-02-04 15:07:45 +00:00
ocaml_gettext = callPackage ../development/ocaml-modules/ocaml-gettext { };
2016-09-19 17:00:42 +00:00
ocamlgraph = callPackage ../development/ocaml-modules/ocamlgraph { };
ocaml_http = callPackage ../development/ocaml-modules/http { };
2017-02-04 15:07:45 +00:00
ocaml_libvirt = callPackage ../development/ocaml-modules/ocaml-libvirt { };
2016-09-19 17:00:42 +00:00
ocamlify = callPackage ../development/tools/ocaml/ocamlify { };
ocaml-migrate-parsetree = callPackage ../development/ocaml-modules/ocaml-migrate-parsetree { };
2016-09-19 17:00:42 +00:00
ocamlmod = callPackage ../development/tools/ocaml/ocamlmod { };
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 {};
ocamlscript = callPackage ../development/tools/ocaml/ocamlscript { };
ocamlsdl= callPackage ../development/ocaml-modules/ocamlsdl { };
ocaml_sqlite3 = callPackage ../development/ocaml-modules/sqlite3 { };
ocaml_text = callPackage ../development/ocaml-modules/ocaml-text { };
2017-03-23 07:40:21 +00:00
ocf = callPackage ../development/ocaml-modules/ocf { };
ocp-build = callPackage ../development/tools/ocaml/ocp-build { };
2016-09-19 17:00:42 +00:00
ocp-indent = callPackage ../development/tools/ocaml/ocp-indent { };
2016-09-19 17:00:42 +00:00
ocp-index = callPackage ../development/tools/ocaml/ocp-index { };
2016-09-19 17:00:42 +00:00
ocp-ocamlres = callPackage ../development/ocaml-modules/ocp-ocamlres { };
2016-09-19 17:00:42 +00:00
ocplib-endian = callPackage ../development/ocaml-modules/ocplib-endian { };
ocplib-json-typed = callPackage ../development/ocaml-modules/ocplib-json-typed { };
2016-09-19 17:00:42 +00:00
ocplib-simplex = callPackage ../development/ocaml-modules/ocplib-simplex { };
ocsigen_server = callPackage ../development/ocaml-modules/ocsigen-server { };
2016-09-19 17:00:42 +00:00
ocsigen-start = callPackage ../development/ocaml-modules/ocsigen-start { };
ocsigen-toolkit = callPackage ../development/ocaml-modules/ocsigen-toolkit { };
octavius = callPackage ../development/ocaml-modules/octavius { };
2016-09-19 17:00:42 +00:00
ojquery = callPackage ../development/ocaml-modules/ojquery { };
omd = callPackage ../development/ocaml-modules/omd { };
opam-file-format = callPackage ../development/ocaml-modules/opam-file-format { };
2016-09-19 17:00:42 +00:00
otfm = callPackage ../development/ocaml-modules/otfm { };
2016-11-03 09:39:14 +00:00
otr = callPackage ../development/ocaml-modules/otr { };
owee = callPackage ../development/ocaml-modules/owee { };
2016-09-19 17:00:42 +00:00
ounit = callPackage ../development/ocaml-modules/ounit { };
piqi = callPackage ../development/ocaml-modules/piqi { };
piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
2018-07-05 19:40:30 +00:00
ppxlib = callPackage ../development/ocaml-modules/ppxlib { };
psmt2-frontend = callPackage ../development/ocaml-modules/psmt2-frontend { };
psq = callPackage ../development/ocaml-modules/psq { };
2016-11-02 13:35:40 +00:00
ptime = callPackage ../development/ocaml-modules/ptime { };
2016-09-19 17:00:42 +00:00
re2_p4 = callPackage ../development/ocaml-modules/re2 { };
result = callPackage ../development/ocaml-modules/ocaml-result { };
2018-09-05 17:12:13 +00:00
seq = callPackage ../development/ocaml-modules/seq { };
2016-09-19 17:00:42 +00:00
sequence = callPackage ../development/ocaml-modules/sequence { };
spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
2016-09-19 17:00:42 +00:00
sqlexpr = callPackage ../development/ocaml-modules/sqlexpr { };
tuntap = callPackage ../development/ocaml-modules/tuntap { };
tyxml = callPackage ../development/ocaml-modules/tyxml { };
ulex = callPackage ../development/ocaml-modules/ulex { };
ulex08 = callPackage ../development/ocaml-modules/ulex/0.8 {
camlp5 = camlp5_transitional;
};
textutils_p4 = callPackage ../development/ocaml-modules/textutils { };
2016-11-03 00:23:53 +00:00
tls = callPackage ../development/ocaml-modules/tls {
lwt = ocaml_lwt;
};
2016-09-19 17:00:42 +00:00
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 =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then type_conv_112_01_01
2016-10-05 07:32:30 +00:00
else if lib.versionOlder "4.00" ocaml.version
2016-09-19 17:00:42 +00:00
then type_conv_109_60_01
2016-10-05 07:32:30 +00:00
else if lib.versionOlder "3.12" ocaml.version
2016-09-19 17:00:42 +00:00
then type_conv_108_08_00
else null;
sexplib_108_08_00 = callPackage ../development/ocaml-modules/sexplib/108.08.00.nix { };
sexplib_111_25_00 = callPackage ../development/ocaml-modules/sexplib/111.25.00.nix { };
sexplib_112_24_01 = callPackage ../development/ocaml-modules/sexplib/112.24.01.nix { };
sexplib_p4 =
2016-10-05 07:32:30 +00:00
if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then sexplib_112_24_01
2016-10-05 07:32:30 +00:00
else if lib.versionOlder "4.00" ocaml.version
2016-09-19 17:00:42 +00:00
then sexplib_111_25_00
2016-10-05 07:32:30 +00:00
else if lib.versionOlder "3.12" ocaml.version
2016-09-19 17:00:42 +00:00
then sexplib_108_08_00
else null;
ocaml_extlib = callPackage ../development/ocaml-modules/extlib { };
ocb-stubblr = callPackage ../development/ocaml-modules/ocb-stubblr { };
2016-09-19 17:00:42 +00:00
ocurl = callPackage ../development/ocaml-modules/ocurl { };
pa_ounit = callPackage ../development/ocaml-modules/pa_ounit { };
pa_bench = callPackage ../development/ocaml-modules/pa_bench { };
pa_test = callPackage ../development/ocaml-modules/pa_test { };
pipebang = callPackage ../development/ocaml-modules/pipebang { };
pprint = callPackage ../development/ocaml-modules/pprint { };
ppx_blob =
2016-10-05 07:32:30 +00:00
if lib.versionAtLeast ocaml.version "4.02"
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/ppx_blob {}
else null;
2017-11-27 19:08:40 +00:00
ppx_cstruct = callPackage ../development/ocaml-modules/cstruct/ppx.nix {};
ppx_derivers = callPackage ../development/ocaml-modules/ppx_derivers {};
2016-09-19 17:00:42 +00:00
ppx_deriving =
2016-10-05 07:32:30 +00:00
if lib.versionAtLeast ocaml.version "4.02"
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/ppx_deriving {}
else null;
ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {};
ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {};
2016-11-03 16:34:36 +00:00
ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
ppx_sqlexpr = callPackage ../development/ocaml-modules/sqlexpr/ppx.nix {};
2016-09-19 17:00:42 +00:00
ppx_tools =
2016-10-05 07:32:30 +00:00
if lib.versionAtLeast ocaml.version "4.02"
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/ppx_tools {}
else null;
2017-04-08 11:34:41 +00:00
ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
process = callPackage ../development/ocaml-modules/process { };
ptmap = callPackage ../development/ocaml-modules/ptmap { };
2016-09-19 17:00:42 +00:00
pycaml = callPackage ../development/ocaml-modules/pycaml { };
qcheck = callPackage ../development/ocaml-modules/qcheck { };
2016-09-19 17:00:42 +00:00
qtest = callPackage ../development/ocaml-modules/qtest { };
re = callPackage ../development/ocaml-modules/re { };
2017-10-05 05:57:03 +00:00
react = callPackage ../development/ocaml-modules/react { };
reactivedata = callPackage ../development/ocaml-modules/reactivedata {};
2017-04-08 11:34:41 +00:00
reason = callPackage ../development/compilers/reason { };
rope = callPackage ../development/ocaml-modules/rope { };
rresult = callPackage ../development/ocaml-modules/rresult { };
2016-09-19 17:00:42 +00:00
safepass = callPackage ../development/ocaml-modules/safepass { };
sedlex = callPackage ../development/ocaml-modules/sedlex { };
2016-09-19 17:00:42 +00:00
sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
2017-10-05 17:09:50 +00:00
ssl = callPackage ../development/ocaml-modules/ssl { };
2018-07-29 13:32:10 +00:00
stog = callPackage ../applications/misc/stog { };
2017-03-23 08:02:21 +00:00
2016-09-19 17:00:42 +00:00
stringext = callPackage ../development/ocaml-modules/stringext { };
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 { };
2016-09-19 17:00:42 +00:00
utop = callPackage ../development/tools/ocaml/utop { };
uuidm = callPackage ../development/ocaml-modules/uuidm { };
sawja = callPackage ../development/ocaml-modules/sawja { };
2017-10-02 10:18:35 +00:00
stdint = callPackage ../development/ocaml-modules/stdint { };
2016-09-19 17:00:42 +00:00
uucd = callPackage ../development/ocaml-modules/uucd { };
uucp = callPackage ../development/ocaml-modules/uucp { };
uunf = callPackage ../development/ocaml-modules/uunf { };
2018-01-11 07:57:57 +00:00
uri =
if lib.versionAtLeast ocaml.version "4.3"
then callPackage ../development/ocaml-modules/uri { }
else callPackage ../development/ocaml-modules/uri/legacy.nix { };
uri_p4 = callPackage ../development/ocaml-modules/uri/legacy.nix {
legacyVersion = true;
};
2016-09-19 17:00:42 +00:00
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 { };
wasm = callPackage ../development/ocaml-modules/wasm { };
2018-01-01 09:43:46 +00:00
wtf8 = callPackage ../development/ocaml-modules/wtf8 { };
2016-09-19 17:00:42 +00:00
x509 = callPackage ../development/ocaml-modules/x509 { };
xmlm = callPackage ../development/ocaml-modules/xmlm { };
xml-light = callPackage ../development/ocaml-modules/xml-light { };
2017-03-23 07:56:01 +00:00
xtmpl = callPackage ../development/ocaml-modules/xtmpl { };
2016-09-19 17:00:42 +00:00
yojson = callPackage ../development/ocaml-modules/yojson { };
zarith = callPackage ../development/ocaml-modules/zarith { };
zed = callPackage ../development/ocaml-modules/zed { };
ocsigen_deriving = callPackage ../development/ocaml-modules/ocsigen-deriving {
oasis = ocaml_oasis;
};
# Jane Street
janePackage = callPackage ../development/ocaml-modules/janestreet/janePackage.nix {};
janeStreet = import ../development/ocaml-modules/janestreet {
inherit janePackage ocamlbuild angstrom ctypes cryptokit;
2018-02-24 02:42:35 +00:00
inherit magic-mime num ocaml-migrate-parsetree octavius ounit;
2018-07-05 19:40:30 +00:00
inherit ppx_deriving re zarith ppxlib;
inherit (pkgs) stdenv openssl;
};
2018-03-06 14:26:12 +00:00
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;
};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_optcomp =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_optcomp
else callPackage ../development/ocaml-modules/janestreet/ppx-optcomp.nix {};
2016-09-19 17:00:42 +00:00
ppx_driver =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_driver
else callPackage ../development/ocaml-modules/janestreet/ppx-driver.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_compare =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_compare
else callPackage ../development/ocaml-modules/janestreet/ppx-compare.nix {};
2016-09-19 17:00:42 +00:00
ppx_here =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_here
else callPackage ../development/ocaml-modules/janestreet/ppx-here.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_assert =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_assert
else callPackage ../development/ocaml-modules/janestreet/ppx-assert.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_bench =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_bench
else callPackage ../development/ocaml-modules/janestreet/ppx-bench.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_enumerate =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_enumerate
else callPackage ../development/ocaml-modules/janestreet/ppx-enumerate.nix {};
2016-09-19 17:00:42 +00:00
ppx_fail =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_fail
else callPackage ../development/ocaml-modules/janestreet/ppx-fail.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_let =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_let
else callPackage ../development/ocaml-modules/janestreet/ppx-let.nix {};
2016-09-19 17:00:42 +00:00
ppx_pipebang =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_pipebang
else callPackage ../development/ocaml-modules/janestreet/ppx-pipebang.nix {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
ppx_expect =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_expect
else callPackage ../development/ocaml-modules/janestreet/ppx-expect.nix {};
2016-09-19 17:00:42 +00:00
ppx_jane =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.ppx_jane
else callPackage ../development/ocaml-modules/janestreet/ppx-jane.nix {};
2016-09-19 17:00:42 +00:00
# Core sublibs
typerep =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.typerep
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
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
2016-09-19 17:00:42 +00:00
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
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/sexplib.nix {}
else sexplib_p4;
variantslib =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.variantslib
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
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
2016-09-19 17:00:42 +00:00
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 {};
2016-09-19 17:00:42 +00:00
core_kernel =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.core_kernel
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/core_kernel.nix {}
else core_kernel_p4;
core =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.core
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/core.nix {}
else core_p4;
re2 =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.re2
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/re2.nix {}
else re2_p4;
textutils =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.textutils
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/textutils.nix {}
else textutils_p4;
core_extended =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.core_extended
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/core-extended.nix {}
else core_extended_p4;
async_kernel =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_kernel
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/async-kernel.nix {}
else async_kernel_p4;
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 {};
2016-09-19 17:00:42 +00:00
async_unix =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_unix
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/async-unix.nix {}
else async_unix_p4;
async_extra =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_extra
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/async-extra.nix {}
else async_extra_p4;
async =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async
else if lib.versionOlder "4.02" ocaml.version
2016-09-19 17:00:42 +00:00
then callPackage ../development/ocaml-modules/janestreet/async.nix {}
else async_p4;
async_ssl =
if lib.versionOlder "4.03" ocaml.version
then janeStreet.async_ssl
else callPackage ../development/ocaml-modules/janestreet/async_ssl.nix { };
2016-09-19 17:00:42 +00:00
# Apps / from all-packages
haxe = callPackage ../development/compilers/haxe { };
ocamlnat = callPackage ../development/ocaml-modules/ocamlnat { };
trv = callPackage ../development/tools/misc/trv { };
omake_rc1 = callPackage ../development/tools/ocaml/omake/0.9.8.6-rc1.nix { };
2016-09-19 17:00:42 +00:00
verasco = callPackage ../development/tools/analysis/verasco (
if system == "x86_64-linux"
then { tools = pkgs.pkgsi686Linux.stdenv.cc; }
else {}
);
2016-11-03 09:39:14 +00:00
2016-09-19 17:00:42 +00:00
google-drive-ocamlfuse = callPackage ../applications/networking/google-drive-ocamlfuse { };
monotoneViz = callPackage ../applications/version-management/monotone-viz {
inherit (pkgs.gnome2) libgnomecanvas glib;
};
unison = callPackage ../applications/networking/sync/unison {
enableX11 = config.unison.enableX11 or true;
};
hol_light = callPackage ../applications/science/logic/hol_light {
camlp5 = camlp5_strict;
};
matita = callPackage ../applications/science/logic/matita {
ulex08 = ulex08.override { camlp5 = camlp5_old_transitional; };
};
matita_130312 = callPackage ../applications/science/logic/matita/130312.nix { };
};
in (ocamlPackages.janeStreet // ocamlPackages);
2016-09-19 17:00:42 +00:00
in lib.fix' (lib.extends overrides packageSet);
in rec
{
2016-10-16 18:10:05 +00:00
inherit mkOcamlPackages;
2016-09-19 17:00:42 +00:00
ocamlPackages_3_08_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/3.08.0.nix { }) (self: super: { lablgtk = self.lablgtk_2_14; });
ocamlPackages_3_10_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/3.10.0.nix { }) (self: super: { lablgtk = self.lablgtk_2_14; });
ocamlPackages_3_11_2 = mkOcamlPackages (callPackage ../development/compilers/ocaml/3.11.2.nix { }) (self: super: { lablgtk = self.lablgtk_2_14; });
ocamlPackages_3_12_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/3.12.1.nix { }) (self: super: { camlimages = self.camlimages_4_0; });
ocamlPackages_4_00_1 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.00.1.nix { }) (self: super: { });
ocamlPackages_4_01_0 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.01.0.nix { }) (self: super: { });
ocamlPackages_4_02 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.02.nix { }) (self: super: { });
2016-10-08 06:45:59 +00:00
ocamlPackages_4_03 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.03.nix { }) (self: super: { });
2016-09-19 17:00:42 +00:00
2016-11-09 12:58:34 +00:00
ocamlPackages_4_04 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.04.nix { }) (self: super: { });
2017-07-13 17:57:55 +00:00
ocamlPackages_4_05 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.05.nix { }) (self: super: { });
2017-11-03 22:48:50 +00:00
ocamlPackages_4_06 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.06.nix { }) (self: super: { });
2018-04-18 12:47:27 +00:00
ocamlPackages_4_07 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.07.nix { }) (self: super: { });
2018-07-14 18:25:44 +00:00
ocamlPackages_latest = ocamlPackages_4_07;
2016-09-19 17:00:42 +00:00
2018-08-21 12:34:43 +00:00
ocamlPackages = ocamlPackages_4_06;
2016-09-19 17:00:42 +00:00
}