From 0bea6212ce59f53fe81d0806798b659480a67882 Mon Sep 17 00:00:00 2001 From: Alexis Ballier Date: Mon, 27 Mar 2017 14:04:39 +0200 Subject: [PATCH] dev-ml/camomile: Backport upstream patch to build with ocaml 4.05 Package-Manager: Portage-2.3.5, Repoman-2.3.2 --- dev-ml/camomile/camomile-0.8.5-r1.ebuild | 6 +++- dev-ml/camomile/files/ocaml405.patch | 40 ++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 dev-ml/camomile/files/ocaml405.patch diff --git a/dev-ml/camomile/camomile-0.8.5-r1.ebuild b/dev-ml/camomile/camomile-0.8.5-r1.ebuild index 14fd515c631d..68d9d15dcc3e 100644 --- a/dev-ml/camomile/camomile-0.8.5-r1.ebuild +++ b/dev-ml/camomile/camomile-0.8.5-r1.ebuild @@ -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 index 000000000000..3fec6955a27c --- /dev/null +++ b/dev-ml/camomile/files/ocaml405.patch @@ -0,0 +1,40 @@ +commit 0fa0a19f15998e89e4b04150dd74529bbd406f42 +Author: Gabriel Scherer +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 *) -- 2.26.2