dev-ml/extlib: Fix build with ocaml 4.05
authorAlexis Ballier <aballier@gentoo.org>
Mon, 27 Mar 2017 12:54:36 +0000 (14:54 +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/extlib/extlib-1.7.1.ebuild
dev-ml/extlib/files/ocaml405.patch [new file with mode: 0644]

index 17444f6a3568aca0abe5c4273f6336f5e36895a5..50788c3c05400ecf65fc121b5859349f8534fb33 100644 (file)
@@ -19,6 +19,10 @@ KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos"
 IUSE="doc +ocamlopt"
 S="${WORKDIR}/ocaml-${P}"
 
+src_prepare() {
+       epatch "${FILESDIR}/ocaml405.patch"
+}
+
 src_compile() {
        cd src
        emake -j1 all
diff --git a/dev-ml/extlib/files/ocaml405.patch b/dev-ml/extlib/files/ocaml405.patch
new file mode 100644 (file)
index 0000000..4e3b04a
--- /dev/null
@@ -0,0 +1,35 @@
+Index: ocaml-extlib-1.7.1/src/configure.ml
+===================================================================
+--- ocaml-extlib-1.7.1.orig/src/configure.ml
++++ ocaml-extlib-1.7.1/src/configure.ml
+@@ -3,5 +3,6 @@ let () =
+   print_endline (if Sys.ocaml_version >= "4.02.0" then "-D OCAML4_02 " else "");
+   print_endline (if Sys.ocaml_version >= "4.03.0" then "-D OCAML4_03 " else "");
+   print_endline (if Sys.ocaml_version >= "4.04.0" then "-D OCAML4_04 " else "");
++  print_endline (if Sys.ocaml_version >= "4.05.0" then "-D OCAML4_05 " else "");
+   let (_:int) = Sys.command "ocamlfind query -format \"-D WITH_BYTES\" bytes" in ();
+   exit 0
+Index: ocaml-extlib-1.7.1/src/extHashtbl.mli
+===================================================================
+--- ocaml-extlib-1.7.1.orig/src/extHashtbl.mli
++++ ocaml-extlib-1.7.1/src/extHashtbl.mli
+@@ -132,6 +132,9 @@ module type S =
+     val add : 'a t -> key -> 'a -> unit
+     val remove : 'a t -> key -> unit
+     val find : 'a t -> key -> 'a
++#ifdef OCAML4_05
++    val find_opt:  'a t -> key -> 'a option
++#endif
+     val find_all : 'a t -> key -> 'a list
+     val replace : 'a t -> key -> 'a -> unit
+     val mem : 'a t -> key -> bool
+@@ -167,6 +170,9 @@ module type SeededS =
+     val add : 'a t -> key -> 'a -> unit
+     val remove : 'a t -> key -> unit
+     val find : 'a t -> key -> 'a
++#ifdef OCAML4_05
++    val find_opt : 'a t -> key -> 'a option
++#endif
+     val find_all : 'a t -> key -> 'a list
+     val replace : 'a t -> key -> 'a -> unit
+     val mem : 'a t -> key -> bool