commit:     465a0b6ddf8ec19f73947a28719bf7c472e975fa
Author:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
AuthorDate: Tue May  3 18:16:11 2016 +0000
Commit:     Alexis Ballier <aballier <AT> gentoo <DOT> org>
CommitDate: Tue May  3 18:29:42 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=465a0b6d

dev-ml/async_unix: fix build with ocaml 4.03

Package-Manager: portage-2.2.28
Signed-off-by: Alexis Ballier <aballier <AT> gentoo.org>

 dev-ml/async_unix/async_unix-113.33.00.ebuild |  4 ++
 dev-ml/async_unix/files/oc43.patch            | 87 +++++++++++++++++++++++++++
 2 files changed, 91 insertions(+)

diff --git a/dev-ml/async_unix/async_unix-113.33.00.ebuild 
b/dev-ml/async_unix/async_unix-113.33.00.ebuild
index ab692ee..ed75add 100644
--- a/dev-ml/async_unix/async_unix-113.33.00.ebuild
+++ b/dev-ml/async_unix/async_unix-113.33.00.ebuild
@@ -35,6 +35,10 @@ RDEPEND="
 "
 DEPEND="${RDEPEND} dev-ml/opam"
 
+src_prepare() {
+       has_version '>=dev-lang/ocaml-4.03' && epatch "${FILESDIR}/oc43.patch"
+}
+
 src_configure() {
        emake setup.exe
        OASIS_SETUP_COMMAND="./setup.exe" oasis_src_configure

diff --git a/dev-ml/async_unix/files/oc43.patch 
b/dev-ml/async_unix/files/oc43.patch
new file mode 100644
index 0000000..8d8cc17
--- /dev/null
+++ b/dev-ml/async_unix/files/oc43.patch
@@ -0,0 +1,87 @@
+diff -uNr async_unix-113.33.00/_oasis async_unix-113.33.00+4.03/_oasis
+--- async_unix-113.33.00/_oasis        2016-03-09 16:44:52.000000000 +0100
++++ async_unix-113.33.00+4.03/_oasis   2016-03-22 15:13:48.000000000 +0100
+@@ -1,8 +1,8 @@
+ OASISFormat:           0.4
+-OCamlVersion:          >= 4.02.3
++OCamlVersion:          >= 4.03.0
+ FindlibVersion:        >= 1.3.2
+ Name:                  async_unix
+-Version:               113.33.00
++Version:               113.33.00+4.03
+ Synopsis:              Monadic concurrency library
+ Authors:               Jane Street Group, LLC <[email protected]>
+ Copyrights:            (C) 2008-2016 Jane Street Group LLC 
<[email protected]>
+diff -uNr async_unix-113.33.00/opam async_unix-113.33.00+4.03/opam
+--- async_unix-113.33.00/opam  2016-03-18 12:08:01.000000000 +0100
++++ async_unix-113.33.00+4.03/opam     2016-03-22 17:51:33.000000000 +0100
+@@ -26,4 +26,4 @@
+   "typerep"
+   "variantslib"
+ ]
+-available: [ ocaml-version >= "4.02.3" ]
++available: [ ocaml-version >= "4.03.0" ]
+diff -uNr async_unix-113.33.00/src/raw_scheduler.ml 
async_unix-113.33.00+4.03/src/raw_scheduler.ml
+--- async_unix-113.33.00/src/raw_scheduler.ml  2016-03-09 16:44:52.000000000 
+0100
++++ async_unix-113.33.00+4.03/src/raw_scheduler.ml     2016-03-22 
15:13:48.000000000 +0100
+@@ -587,7 +587,7 @@
+ 
+ let sync_changed_fds_to_file_descr_watcher t =
+   let module F = (val t.file_descr_watcher : File_descr_watcher.S) in
+-  let make_file_descr_watcher_agree_with (fd : Fd.t) =
++  let make_file_descr_watcher_agree_with = (fun (fd : Fd.t) ->
+     fd.watching_has_changed <- false;
+     let desired =
+       Read_write.mapi fd.watching ~f:(fun read_or_write watching ->
+@@ -607,7 +607,7 @@
+     with exn ->
+       failwiths "sync_changed_fds_to_file_descr_watcher unable to set fd"
+         (desired, fd, exn, t) [%sexp_of: bool Read_write.t * Fd.t * exn * t]
+-  in
++  ) [@inline always] in
+   let changed = t.fds_whose_watching_has_changed in
+   t.fds_whose_watching_has_changed <- [];
+   List.iter changed ~f:make_file_descr_watcher_agree_with;
+diff -uNr async_unix-113.33.00/src/std.ml async_unix-113.33.00+4.03/src/std.ml
+--- async_unix-113.33.00/src/std.ml    2016-03-09 16:44:52.000000000 +0100
++++ async_unix-113.33.00+4.03/src/std.ml       2016-03-22 15:13:48.000000000 
+0100
+@@ -60,10 +60,9 @@
+ 
+   module Overwrite_ = struct
+     let overwrite1 (`This_is_async__Think_about_blocking as x) = x
+-    let wrap f `This_is_async__Think_about_blocking = f
+-    let overwrite2 = wrap overwrite1
+-    let overwrite3 = wrap overwrite2
+-    let overwrite4 = wrap overwrite3
++    let overwrite2 `This_is_async__Think_about_blocking = overwrite1
++    let overwrite3 `This_is_async__Think_about_blocking = overwrite2
++    let overwrite4 `This_is_async__Think_about_blocking = overwrite3
+     let overwritef f = ksprintf (fun _ -> 
`This_is_async__Think_about_blocking) f
+   end
+   open Overwrite_
+diff -uNr async_unix-113.33.00/src/unix_syscalls.ml 
async_unix-113.33.00+4.03/src/unix_syscalls.ml
+--- async_unix-113.33.00/src/unix_syscalls.ml  2016-03-09 16:44:52.000000000 
+0100
++++ async_unix-113.33.00+4.03/src/unix_syscalls.ml     2016-03-22 
15:13:48.000000000 +0100
+@@ -365,8 +365,8 @@
+ ;;
+ 
+ (* symlinks *)
+-let symlink ~src ~dst =
+-  In_thread.syscall_exn ~name:"symlink" (fun () -> Unix.symlink ~src ~dst)
++let symlink ?to_dir ~src ~dst =
++  In_thread.syscall_exn ~name:"symlink" (fun () -> Unix.symlink ?to_dir ~src 
~dst)
+ ;;
+ 
+ let readlink filename =
+diff -uNr async_unix-113.33.00/src/unix_syscalls.mli 
async_unix-113.33.00+4.03/src/unix_syscalls.mli
+--- async_unix-113.33.00/src/unix_syscalls.mli 2016-03-09 16:44:52.000000000 
+0100
++++ async_unix-113.33.00+4.03/src/unix_syscalls.mli    2016-03-22 
15:13:48.000000000 +0100
+@@ -223,7 +223,7 @@
+   -> string
+   -> unit Deferred.t
+ 
+-val symlink : src:string -> dst:string -> unit Deferred.t
++val symlink : ?to_dir:bool -> src:string -> dst:string -> unit Deferred.t
+ 
+ val readlink : string -> string Deferred.t
+ 

Reply via email to