From 0120d2b898386c95065c7aa590478fedcccc98ed Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 15:11:44 +0200 Subject: [PATCH 01/12] ocaml-markup: init at 0.7.2 --- .../ocaml-modules/markup/default.nix | 31 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 33 insertions(+) create mode 100644 pkgs/development/ocaml-modules/markup/default.nix diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix new file mode 100644 index 000000000000..ed285dc58523 --- /dev/null +++ b/pkgs/development/ocaml-modules/markup/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, ocaml, findlib, uutf, lwt }: + +stdenv.mkDerivation rec { + pname = "markup"; + version = "0.7.2"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://github.com/aantron/markup.ml/archive/${version}.tar.gz"; + sha256 = "0d3wi22v7h0iqzq8dgl0g4fj2wb67gvmbzdckacifghinrx762k3"; + }; + + buildInputs = [ocaml findlib]; + + installPhase = "make ocamlfind-install"; + + propagatedBuildInputs = [uutf lwt]; + + createFindlibDestdir = true; + + meta = with stdenv.lib; { + homepage = https://github.com/aantron/markup.ml/; + description = "A pair of best-effort parsers implementing the HTML5 and XML specifications"; + license = licenses.bsd3; + platforms = ocaml.meta.platforms or []; + maintainers = with maintainers; [ + gal_bolle + ]; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index dfa5560a1850..ea416f730e33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5007,6 +5007,8 @@ in magick = callPackage ../development/ocaml-modules/magick { }; + markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; }; + menhir = callPackage ../development/ocaml-modules/menhir { }; merlin = callPackage ../development/tools/ocaml/merlin { }; From 8724b716c613373ed4dd06884a6f8813489324ce Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 15:32:42 +0200 Subject: [PATCH 02/12] ocaml-re: 1.4.2 -> 1.5.0 --- pkgs/development/ocaml-modules/re/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/ocaml-modules/re/default.nix b/pkgs/development/ocaml-modules/re/default.nix index 6b7ba1a13b23..072754fc60fd 100644 --- a/pkgs/development/ocaml-modules/re/default.nix +++ b/pkgs/development/ocaml-modules/re/default.nix @@ -1,11 +1,11 @@ { stdenv, fetchzip, ocaml, findlib, ounit }: stdenv.mkDerivation rec { - name = "ocaml-re-1.4.1"; + name = "ocaml-re-1.5.0"; src = fetchzip { url = "https://github.com/ocaml/ocaml-re/archive/${name}.tar.gz"; - sha256 = "1wmfgazydd20hc796zisqpmsw0sb5lv9g3x77ckmf50v3z8hyhvk"; + sha256 = "17avk7kwmgdjkri1sj5q4a59ykc9rj0bxj6ixxpl6i0n49br3f92"; }; buildInputs = [ ocaml findlib ounit ]; From 51fd238d80d6ba15ea2f32783f815bbb6e37256e Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 15:36:33 +0200 Subject: [PATCH 03/12] ocaml-ppx_tools: 4.02.3 -> 5.0+4.02 --- pkgs/development/ocaml-modules/ppx_tools/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix index c64e84869d62..377dc32751a7 100644 --- a/pkgs/development/ocaml-modules/ppx_tools/default.nix +++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix @@ -1,10 +1,10 @@ { stdenv, fetchzip, ocaml, findlib }: stdenv.mkDerivation { - name = "ocaml-ppx_tools-4.02.3"; + name = "ocaml-ppx_tools-5.0+4.02"; src = fetchzip { - url = https://github.com/alainfrisch/ppx_tools/archive/v4.02.3.tar.gz; - sha256 = "0varkd93hgrarwwkrjp2yy735q7jqzba75sskyanmvkb576wpcxv"; + url = https://github.com/alainfrisch/ppx_tools/archive/5.0+4.02.0.tar.gz; + sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"; }; buildInputs = [ ocaml findlib ]; From 7e6f5cc561a3d62893a336627b1790860ab15471 Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 15:55:30 +0200 Subject: [PATCH 04/12] tyxml: 3.4.0 -> 3.6.0 --- .../ocaml-modules/tyxml/default.nix | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix index 64c1de13fb35..4f9644ea5be0 100644 --- a/pkgs/development/ocaml-modules/tyxml/default.nix +++ b/pkgs/development/ocaml-modules/tyxml/default.nix @@ -1,19 +1,23 @@ -{ stdenv, fetchurl, ocaml, findlib, ocaml_oasis, camlp4, uutf }: +{ stdenv, fetchurl, ocaml, findlib, ocaml_oasis, camlp4, uutf, markup, ppx_tools, re }: -stdenv.mkDerivation { - name = "tyxml-3.4.0"; +stdenv.mkDerivation rec { + pname = "tyxml"; + version = "3.6.0"; + name = "${pname}-${version}"; src = fetchurl { - url = http://github.com/ocsigen/tyxml/archive/3.4.0.tar.gz; - sha256 = "10hb0b2j33fjqzmx450ns7dmf4pqmx3gyvr6dk99mghqk13cj5ww"; + url = "http://github.com/ocsigen/tyxml/archive/${version}.tar.gz"; + sha256 = "1rz0f48x8p1m30723rn5v85pp7rd0spr04sd7gzryy99vn3ianga"; }; - buildInputs = [ocaml findlib ocaml_oasis camlp4]; + buildInputs = [ocaml findlib camlp4]; - propagatedBuildInputs = [uutf]; + propagatedBuildInputs = [uutf re ppx_tools markup]; createFindlibDestdir = true; + configureFlags = "--enable-syntax"; + meta = with stdenv.lib; { homepage = http://ocsigen.org/tyxml/; description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing"; From dab153bf7290e677e57598387a879d281673cf4b Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 17:35:42 +0200 Subject: [PATCH 05/12] ocaml-react: 1.1.0 -> 1.2.0 --- pkgs/development/ocaml-modules/react/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/ocaml-modules/react/default.nix b/pkgs/development/ocaml-modules/react/default.nix index 943e5e1e8dc9..f9fe95b89dc2 100644 --- a/pkgs/development/ocaml-modules/react/default.nix +++ b/pkgs/development/ocaml-modules/react/default.nix @@ -1,10 +1,10 @@ {stdenv, fetchurl, ocaml, findlib, opam}: stdenv.mkDerivation { - name = "ocaml-react-1.1.0"; + name = "ocaml-react-1.2.0"; src = fetchurl { - url = http://erratique.ch/software/react/releases/react-1.1.0.tbz; + url = http://erratique.ch/software/react/releases/react-1.2.0.tbz; sha256 = "1gymn8hy7ga0l9qymmb1jcnnkqvy7l2zr87xavzqz0dfi9ci8dm7"; }; From 2ddee12a422ad6307696df7f74ec6b98f98faa01 Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 17:36:49 +0200 Subject: [PATCH 06/12] =?UTF-8?q?ocaml-reactiveData=20:=C2=A00.1=20->=200.?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocaml-modules/reactivedata/default.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix index ef0197f60f57..4b335496500b 100644 --- a/pkgs/development/ocaml-modules/reactivedata/default.nix +++ b/pkgs/development/ocaml-modules/reactivedata/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchurl, ocaml, findlib, ocaml_react, opam}: +{stdenv, fetchurl, ocaml, findlib, ocaml_react, camlp4, opam}: let ocamlVersion = stdenv.lib.getVersion ocaml; @@ -7,13 +7,13 @@ in assert stdenv.lib.versionAtLeast ocamlVersion "3.11"; stdenv.mkDerivation { - name = "ocaml-reactiveData-0.1"; + name = "ocaml-reactiveData-0.2"; src = fetchurl { - url = https://github.com/hhugo/reactiveData/archive/0.1.tar.gz; - sha256 = "056y9in6j6rpggdf8apailvs1m30wxizpyyrj08xyfxgv91mhxgw"; + url = https://github.com/ocsigen/reactiveData/archive/0.2.tar.gz; + sha256 = "0rskcxnyjn8sxqnncdm6rh9wm99nha5m5sc83fywgzs64xfl43fq"; }; - buildInputs = [ocaml findlib opam]; + buildInputs = [ocaml findlib opam camlp4 ]; propagatedBuildInputs = [ocaml_react]; buildPhase = "ocaml pkg/build.ml native=true native-dynlink=true"; @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "An OCaml module for functional reactive programming (FRP) based on React"; - homepage = https://github.com/hhugo/reactiveData; + homepage = https://github.com/ocsigen/reactiveData; license = licenses.lgpl21; platforms = ocaml.meta.platforms or []; maintainers = with maintainers; [ vbgl ]; From 527c1cba37d541011a6b53dfa5f4b0ba1fc8b865 Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 17:45:20 +0200 Subject: [PATCH 07/12] js_of_ocaml: 2.6 -> 2.7 --- .../tools/ocaml/js_of_ocaml/default.nix | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix index 3258aaf08c2f..3f5bd770dcf0 100644 --- a/pkgs/development/tools/ocaml/js_of_ocaml/default.nix +++ b/pkgs/development/tools/ocaml/js_of_ocaml/default.nix @@ -1,24 +1,18 @@ {stdenv, fetchurl, ocaml, findlib, ocaml_lwt, menhir, ocsigen_deriving, camlp4, cmdliner, tyxml, reactivedata, cppo, which, base64}: -let camlp4_patch = fetchurl { - url = "https://github.com/FlorentBecker/js_of_ocaml/commit/3b511c5bb777d5049c49d7a04c01f142de7096b9.patch"; - sha256 = "c92eda8be504cd41eb242166fc815af496243b63d4d21b169f5b62ec5ace2d39"; - }; -in - stdenv.mkDerivation { - name = "js_of_ocaml-2.6"; + name = "js_of_ocaml-2.7"; src = fetchurl { - url = https://github.com/ocsigen/js_of_ocaml/archive/2.6.tar.gz; - sha256 = "0q34lrn70dvz41m78bwgriyq6dxk97g8gcyg80nvxii4jp86dw61"; + url = https://github.com/ocsigen/js_of_ocaml/archive/2.7.tar.gz; + sha256 = "1dali1akyd4zmkwav0d957ynxq2jj6cc94r4xiaql7ca89ajz4jj"; }; buildInputs = [ocaml findlib menhir ocsigen_deriving cmdliner tyxml reactivedata cppo which base64]; propagatedBuildInputs = [ ocaml_lwt camlp4 ]; - patches = [ ./Makefile.conf.diff camlp4_patch ]; + patches = [ ./Makefile.conf.diff ]; createFindlibDestdir = true; From 7fda41cd903e21c13e9777b2eaf822a2f779ce2c Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 17:46:11 +0200 Subject: [PATCH 08/12] ocsigenserver: 2.6 -> 2.7 --- pkgs/development/ocaml-modules/ocsigen-server/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix index d2613830a7c2..e5c5439fda33 100644 --- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix +++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix @@ -9,11 +9,11 @@ let mkpath = p: n: in stdenv.mkDerivation { - name = "ocsigenserver-2.6"; + name = "ocsigenserver-2.7"; src = fetchurl { - url = https://github.com/ocsigen/ocsigenserver/archive/2.6.tar.gz; - sha256 = "0638xvlr0sssvjarmdwhgh7vbgdx8wiyjwq73w1bkjfwl7qm21zp"; + url = https://github.com/ocsigen/ocsigenserver/archive/2.7.tar.gz; + sha256 = "0gv9nchsx9z74hh46gn7bd0053j4694fhxriannf13sqh2qpg901"; }; buildInputs = [ocaml which findlib ocaml_react ocaml_ssl ocaml_lwt From abfe632ce2b9a0d5cf61be273c8ade9cad6dd0da Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 17:46:49 +0200 Subject: [PATCH 09/12] eliom: 4 -> 5.0 --- .../ocaml-modules/eliom/camlp4.patch | 18 +++--------------- .../ocaml-modules/eliom/default.nix | 10 +++++----- 2 files changed, 8 insertions(+), 20 deletions(-) diff --git a/pkgs/development/ocaml-modules/eliom/camlp4.patch b/pkgs/development/ocaml-modules/eliom/camlp4.patch index 561d5305befd..06d5ba1b7ed4 100644 --- a/pkgs/development/ocaml-modules/eliom/camlp4.patch +++ b/pkgs/development/ocaml-modules/eliom/camlp4.patch @@ -1,24 +1,12 @@ --- a/src/_tags 2014-10-01 16:19:35.000000000 +0100 +++ b/src/_tags 2014-11-09 16:55:34.470663377 +0000 -@@ -39,7 +39,7 @@ +@@ -40,7 +40,7 @@ :I(src/lib/server) - : syntax(camlp4o),package(camlp4.quotations.o,camlp4.extend) + : syntax(camlp4o),package(camlp4.quotations.o,camlp4.extend,bytes) -: I(+camlp4/Camlp4Parsers) +: use_camlp4_full + : package(ppx_tools, compiler-libs.common, ppx_tools.metaquot) - : package(ocamlbuild,js_of_ocaml.ocamlbuild) - ---- a/src/lib/eliom_registration.server.ml 2014-10-01 16:19:35.000000000 +0100 -+++ b/src/lib/eliom_registration.server.ml 2014-11-09 17:26:16.093198699 +0000 -@@ -2440,7 +2440,7 @@ - (Ocaml.register_post_coservice' - ?scope ?options ?charset ?code ?content_type ?headers ?secure_session ?name - ?csrf_safe ?csrf_scope ?csrf_secure ?max_use ?timeout ?https ?error_handler -- ~post_params:Eliom_parameter.(ocaml "argument" argument_type) -+ ~post_params:(Eliom_parameter.ocaml "argument" argument_type) - (fun () argument -> f argument)) - (Eliom_wrap.create_unwrapper - (Eliom_wrap.id_of_int Eliom_common_base.server_function_unwrap_id_int)) diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix index 80b5b9eae0e6..1147c3054170 100644 --- a/pkgs/development/ocaml-modules/eliom/default.nix +++ b/pkgs/development/ocaml-modules/eliom/default.nix @@ -1,25 +1,25 @@ { stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving, js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml, ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp, - reactivedata, opam}: + reactivedata, opam, ppx_tools, camlp4}: assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4"; stdenv.mkDerivation rec { pname = "eliom"; - version = "4.2.0"; + version = "5.0.0"; name = "${pname}-${version}"; src = fetchurl { - url = https://github.com/ocsigen/eliom/archive/4.2.tar.gz; - sha256 = "0gbqzgn6xgpq6irz2sfr92qj3hjcwl45wy0inc4ps5r15nvq1l9h"; + url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz"; + sha256 = "1g9wq2qpn0sgzyb6iq0h9afq5p68il4h8pc7jppqsislk87m09k7"; }; patches = [ ./camlp4.patch ]; buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving - js_of_ocaml ocaml_optcomp opam]; + js_of_ocaml ocaml_optcomp opam ppx_tools camlp4 ]; propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ipaddr calendar cryptokit ocamlnet ocaml_react ocaml_ssl From 33a5a132e574bf2ef41a7285edb03f2a71098a19 Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Mon, 30 May 2016 18:18:09 +0200 Subject: [PATCH 10/12] eliom 5.0 is only available with a ppx-enabled ocaml --- pkgs/top-level/all-packages.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ea416f730e33..86c5329a14a8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4908,7 +4908,10 @@ in eff = callPackage ../development/interpreters/eff { }; - eliom = callPackage ../development/ocaml-modules/eliom { }; + eliom = + if lib.versionAtLeast ocaml_version "4.02" + then callPackage ../development/ocaml-modules/eliom { } + else null; enumerate = callPackage ../development/ocaml-modules/enumerate { }; From 71888e7973a967bdfdfd41cdc1632e8b659752cd Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Tue, 31 May 2016 18:06:38 +0200 Subject: [PATCH 11/12] ocaml-markup: fix name and license --- pkgs/development/ocaml-modules/markup/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix index ed285dc58523..d4a38d9bd9e4 100644 --- a/pkgs/development/ocaml-modules/markup/default.nix +++ b/pkgs/development/ocaml-modules/markup/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, ocaml, findlib, uutf, lwt }: stdenv.mkDerivation rec { - pname = "markup"; + pname = "ocaml-markup"; version = "0.7.2"; name = "${pname}-${version}"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { homepage = https://github.com/aantron/markup.ml/; description = "A pair of best-effort parsers implementing the HTML5 and XML specifications"; - license = licenses.bsd3; + license = licenses.bsd2; platforms = ocaml.meta.platforms or []; maintainers = with maintainers; [ gal_bolle From 7395020b657ccec75881d62d05a8997cadaf3304 Mon Sep 17 00:00:00 2001 From: Florent Becker Date: Tue, 31 May 2016 18:36:45 +0200 Subject: [PATCH 12/12] allow eliom with ocaml-4.01 --- pkgs/development/ocaml-modules/eliom/default.nix | 14 ++++++++++---- pkgs/top-level/all-packages.nix | 5 +---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix index 1147c3054170..219f104271d3 100644 --- a/pkgs/development/ocaml-modules/eliom/default.nix +++ b/pkgs/development/ocaml-modules/eliom/default.nix @@ -3,7 +3,11 @@ ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp, reactivedata, opam, ppx_tools, camlp4}: -assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4"; +let ocamlVersion = (stdenv.lib.getVersion ocaml); + in + +( +assert stdenv.lib.versionAtLeast ocamlVersion "4"; stdenv.mkDerivation rec { @@ -25,9 +29,11 @@ stdenv.mkDerivation rec calendar cryptokit ocamlnet ocaml_react ocaml_ssl ocaml_pcre ]; + preConfigure = stdenv.lib.optionalString (!stdenv.lib.versionAtLeast ocamlVersion "4.02") '' + export PPX=false + ''; + installPhase = - let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version; - in ''opam-installer --script --prefix=$out ${pname}.install > install.sh sh install.sh ln -s $out/lib/${pname} $out/lib/ocaml/${ocamlVersion}/site-lib/ @@ -55,4 +61,4 @@ stdenv.mkDerivation rec maintainers = [ stdenv.lib.maintainers.gal_bolle ]; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 86c5329a14a8..ea416f730e33 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4908,10 +4908,7 @@ in eff = callPackage ../development/interpreters/eff { }; - eliom = - if lib.versionAtLeast ocaml_version "4.02" - then callPackage ../development/ocaml-modules/eliom { } - else null; + eliom = callPackage ../development/ocaml-modules/eliom { }; enumerate = callPackage ../development/ocaml-modules/enumerate { };