commit: fec5a15d92a88b7a3143c0f9c43355ff9aa4fb34
Author: Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 13 22:39:19 2017 +0000
Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Thu Jul 13 23:24:40 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fec5a15d
dev-ml/js_of_ocaml: fix build with ocaml 4.05
Package-Manager: Portage-2.3.6, Repoman-2.3.2
dev-ml/js_of_ocaml/files/ocaml405.patch | 41 ++++++++++++++++++++++++++
dev-ml/js_of_ocaml/js_of_ocaml-2.8.4-r1.ebuild | 1 +
2 files changed, 42 insertions(+)
diff --git a/dev-ml/js_of_ocaml/files/ocaml405.patch
b/dev-ml/js_of_ocaml/files/ocaml405.patch
new file mode 100644
index 00000000000..552dff425c4
--- /dev/null
+++ b/dev-ml/js_of_ocaml/files/ocaml405.patch
@@ -0,0 +1,41 @@
+Index: js_of_ocaml-2.8.4/lib/ppx/ppx_js.ml
+===================================================================
+--- js_of_ocaml-2.8.4.orig/lib/ppx/ppx_js.ml
++++ js_of_ocaml-2.8.4/lib/ppx/ppx_js.ml
+@@ -162,7 +162,8 @@ let invoker ?(extra_types = []) uplift d
+ {[ fun (type res t0 t1 ..) arg1 arg2 -> e ]}
+ *)
+ let local_types =
+- res :: List.map Arg.name (extra_types @ arguments)
++ List.map Location.mknoloc
++ (res :: List.map Arg.name (extra_types @ arguments))
+ in
+ let result = List.fold_right Exp.newtype local_types invoker in
+
+@@ -210,7 +211,7 @@ let method_call ~loc obj meth args =
+ (Exp.fun_ ~loc ~attrs:[merlin_noloc] Label.nolabel None
+ (Pat.var ~loc ~attrs:[merlin_noloc] (Location.mknoloc "x"))
+ (Exp.send ~loc ~attrs:[merlin_noloc]
+- (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) meth))]
++ (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) (Location.mknoloc
meth)))]
+ )
+
+ (* {[ obj##.prop ]} generates
+@@ -244,7 +245,7 @@ let prop_get ~loc:_ ~prop_loc obj prop =
+ (Exp.fun_ ~loc:gloc Label.nolabel None
+ (Pat.var ~loc:gloc ~attrs:[merlin_noloc] (Location.mknoloc "x"))
+ (Exp.send ~loc:prop_loc ~attrs:[merlin_noloc]
+- (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) prop))
++ (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) (Location.mknoloc
prop)))
+ ]
+ )
+
+@@ -289,7 +290,7 @@ let prop_set ~loc ~prop_loc obj prop val
+ (Exp.fun_ ~loc Label.nolabel None
+ (Pat.var ~loc:gloc ~attrs:[merlin_noloc] (Location.mknoloc "x"))
+ (Exp.send ~loc:prop_loc ~attrs:[merlin_noloc]
+- (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) prop))
++ (Exp.ident ~loc:gloc (lid ~loc:gloc "x")) (Location.mknoloc
prop)))
+ ]
+ )
+
diff --git a/dev-ml/js_of_ocaml/js_of_ocaml-2.8.4-r1.ebuild
b/dev-ml/js_of_ocaml/js_of_ocaml-2.8.4-r1.ebuild
index 9331122157d..cac8f1d0da5 100644
--- a/dev-ml/js_of_ocaml/js_of_ocaml-2.8.4-r1.ebuild
+++ b/dev-ml/js_of_ocaml/js_of_ocaml-2.8.4-r1.ebuild
@@ -41,6 +41,7 @@ DEPEND="${RDEPEND}"
src_prepare() {
epatch "${FILESDIR}/ppx.patch"
+ has_version '>=dev-lang/ocaml-4.05_rc' && epatch
"${FILESDIR}/ocaml405.patch"
}
src_configure() {