dev-ml/camomile: Backport upstream patch to build with ocaml 4.05
authorAlexis Ballier <aballier@gentoo.org>
Mon, 27 Mar 2017 12:04:39 +0000 (14:04 +0200)
committerAlexis Ballier <aballier@gentoo.org>
Mon, 27 Mar 2017 13:59:25 +0000 (15:59 +0200)
Package-Manager: Portage-2.3.5, Repoman-2.3.2

dev-ml/camomile/camomile-0.8.5-r1.ebuild
dev-ml/camomile/files/ocaml405.patch [new file with mode: 0644]

index 14fd515c631db4ada904722a1ebbb66d6fabbbe0..68d9d15dcc3e77d8dd387f780b15fa15706ff6e4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -20,6 +20,10 @@ RDEPEND="
 "
 DEPEND="${RDEPEND}"
 
+src_prepare() {
+       has_version '>=dev-lang/ocaml-4.05_beta' && epatch "${FILESDIR}/ocaml405.patch"
+}
+
 src_configure() {
        econf $(use_enable debug)
 }
diff --git a/dev-ml/camomile/files/ocaml405.patch b/dev-ml/camomile/files/ocaml405.patch
new file mode 100644 (file)
index 0000000..3fec695
--- /dev/null
@@ -0,0 +1,40 @@
+commit 0fa0a19f15998e89e4b04150dd74529bbd406f42
+Author: Gabriel Scherer <gabriel.scherer@gmail.com>
+Date:   Fri Feb 24 22:30:23 2017 -0500
+
+    4.05 compatibility: use explicit module signatures
+    
+    In 4.05, checking for non-generalizable inference variable ('_a)
+    (forbidden in toplevel modules and functors) happens before checking
+    the .ml file against the .mli signature, so non-generalizable
+    variables that were previously resolved through the .mli constraint
+    are now underspecified and result in a compilation failure
+    (see MPR#7414, GPR#929). This commit adds enough annotations to avoid
+    such underspecified variables in functors.
+
+diff --git a/Camomile/internal/unimap.ml b/Camomile/internal/unimap.ml
+index b6fdbde..6a7cc30 100644
+--- a/Camomile/internal/unimap.ml
++++ b/Camomile/internal/unimap.ml
+@@ -58,7 +58,7 @@ val of_name : string -> t
+ end
+-module Make (Config : ConfigInt.Type) = struct
++module Make (Config : ConfigInt.Type) : Type = struct
+ type mapping = {no_char : int; tbl : Tbl31.Bytes.t}
+diff --git a/Camomile/public/uCharInfo.ml b/Camomile/public/uCharInfo.ml
+index 69bf141..6a0337a 100644
+--- a/Camomile/public/uCharInfo.ml
++++ b/Camomile/public/uCharInfo.ml
+@@ -298,7 +298,7 @@ val load_composition_exclusion_tbl : unit -> UCharTbl.Bool.t
+ end
+-module Make (Config : ConfigInt.Type) = struct
++module Make (Config : ConfigInt.Type) : Type = struct
+ include Unidata.Make(Config)
+ (* General category *)