Gentoo Archives: gentoo-commits

From: Alexis Ballier <aballier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-ml/eliom/, dev-ml/eliom/files/
Date: Mon, 10 Oct 2016 14:03:46
Message-Id: 1476108214.f2518d6d2f139f677c63c9edc39511dc83c9c852.aballier@gentoo
1 commit: f2518d6d2f139f677c63c9edc39511dc83c9c852
2 Author: Alexis Ballier <aballier <AT> gentoo <DOT> org>
3 AuthorDate: Mon Oct 10 14:03:22 2016 +0000
4 Commit: Alexis Ballier <aballier <AT> gentoo <DOT> org>
5 CommitDate: Mon Oct 10 14:03:34 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f2518d6d
7
8 dev-ml/eliom: fix build with js of ocaml 2.8.2, bug #593978.
9
10 Also, make all patches mandatory and bump required versions in deps.
11
12 Package-Manager: portage-2.3.1
13
14 dev-ml/eliom/eliom-5.0.0-r2.ebuild | 13 +-
15 dev-ml/eliom/files/jsofocaml-282.patch | 361 +++++++++++++++++++++++++++++++++
16 2 files changed, 367 insertions(+), 7 deletions(-)
17
18 diff --git a/dev-ml/eliom/eliom-5.0.0-r2.ebuild b/dev-ml/eliom/eliom-5.0.0-r2.ebuild
19 index 36923d1..6b4ae4b 100644
20 --- a/dev-ml/eliom/eliom-5.0.0-r2.ebuild
21 +++ b/dev-ml/eliom/eliom-5.0.0-r2.ebuild
22 @@ -15,10 +15,10 @@ SLOT="0/${PV}"
23 KEYWORDS="~amd64"
24 IUSE="doc +ocamlopt +ppx"
25
26 -RDEPEND=">=dev-lang/ocaml-4.00:=[ocamlopt?]
27 - >=dev-ml/js_of_ocaml-2.5-r1:=
28 +RDEPEND=">=dev-lang/ocaml-4.03:=[ocamlopt?]
29 + >=dev-ml/js_of_ocaml-2.8.2:=
30 >=www-servers/ocsigenserver-2.5:=
31 - >=dev-ml/tyxml-3.6:=
32 + >=dev-ml/tyxml-4:=
33 >=dev-ml/deriving-0.6:=
34 >=dev-ml/reactiveData-0.2:=
35 dev-ml/ocaml-ipaddr:=
36 @@ -33,10 +33,9 @@ DEPEND="${RDEPEND}
37 dev-ml/opam"
38
39 src_prepare() {
40 - if has_version '>=dev-lang/ocaml-4.03' ; then
41 - epatch "${FILESDIR}/"{camlp4,oc43,oc43-2}.patch
42 - fi
43 - has_version '>=dev-ml/tyxml-4' && epatch "${FILESDIR}/tyxml4.patch"
44 + epatch "${FILESDIR}/"{camlp4,oc43,oc43-2}.patch \
45 + "${FILESDIR}/tyxml4.patch" \
46 + "${FILESDIR}/jsofocaml-282.patch"
47 }
48
49 src_compile() {
50
51 diff --git a/dev-ml/eliom/files/jsofocaml-282.patch b/dev-ml/eliom/files/jsofocaml-282.patch
52 new file mode 100644
53 index 00000000..985432f
54 --- /dev/null
55 +++ b/dev-ml/eliom/files/jsofocaml-282.patch
56 @@ -0,0 +1,361 @@
57 +Backported from:
58 +
59 +commit 4edaf2275e2f7a027f3c7dc52e1e295a6e56b19a
60 +Author: Vasilis Papavasileiou <git@×××××××××××××××.net>
61 +Date: Thu Aug 18 19:40:56 2016 +0200
62 +
63 + Fix ocsigen/js_of_ocaml#518
64 +
65 +upstream.
66 +
67 +Index: eliom-5.0.0/src/lib/eliom_client.client.ml
68 +===================================================================
69 +--- eliom-5.0.0.orig/src/lib/eliom_client.client.ml
70 ++++ eliom-5.0.0/src/lib/eliom_client.client.ml
71 +@@ -461,23 +461,29 @@ let raw_event_handler value =
72 +
73 + let closure_name_prefix = Eliom_lib_base.RawXML.closure_name_prefix
74 + let closure_name_prefix_len = String.length closure_name_prefix
75 +-let reify_caml_event name node ce : string * (#Dom_html.event Js.t -> bool) =
76 ++let reify_caml_event name node ce =
77 + match ce with
78 +- | Xml.CE_call_service None -> name,(fun _ -> true)
79 ++ | Xml.CE_call_service None -> name, `Other (fun _ -> true)
80 + | Xml.CE_call_service (Some (`A, cookies_info, tmpl)) ->
81 +- name, (fun ev ->
82 ++ name, `Other (fun ev ->
83 + let node = Js.Opt.get (Dom_html.CoerceTo.a node)
84 + (fun () -> Lwt_log.raise_error ~section "not an anchor element")
85 + in
86 + raw_a_handler node cookies_info tmpl ev)
87 + | Xml.CE_call_service
88 + (Some ((`Form_get | `Form_post) as kind, cookies_info, tmpl)) ->
89 +- name, (fun ev ->
90 ++ name, `Other (fun ev ->
91 + let form = Js.Opt.get (Dom_html.CoerceTo.form node)
92 + (fun () -> Lwt_log.raise_error ~section "not a form element") in
93 + raw_form_handler form kind cookies_info tmpl ev)
94 + | Xml.CE_client_closure f ->
95 +- name, (fun ev -> try f ev; true with False -> false)
96 ++ name, `Other (fun ev -> try f ev; true with False -> false)
97 ++ | Xml.CE_client_closure_keyboard f ->
98 ++ name,
99 ++ `Keyboard (fun ev -> try f ev; true with Eliom_lib.False -> false)
100 ++ | Xml.CE_client_closure_mouse f ->
101 ++ name,
102 ++ `Mouse (fun ev -> try f ev; true with Eliom_lib.False -> false)
103 + | Xml.CE_registered_closure (_, cv) ->
104 + let name =
105 + let len = String.length name in
106 +@@ -485,16 +491,27 @@ let reify_caml_event name node ce : stri
107 + then String.sub name closure_name_prefix_len
108 + (len - closure_name_prefix_len)
109 + else name in
110 +- name, raw_event_handler cv
111 ++ name, `Other (raw_event_handler cv)
112 +
113 + let register_event_handler, flush_load_script =
114 + let add, _, flush = create_buffer () in
115 + let register node (name, ev) =
116 +- let name,f = reify_caml_event name node ev in
117 +- if name = "onload"
118 +- then add f
119 +- else Js.Unsafe.set node (Js.bytestring name)
120 +- (Dom_html.handler (fun ev -> Js.bool (f ev)))
121 ++ match reify_caml_event name node ev with
122 ++ | "onload", `Other f ->
123 ++ add f
124 ++ | "onload", `Keyboard _ ->
125 ++ failwith "keyboard event handler for onload"
126 ++ | "onload", `Mouse _ ->
127 ++ failwith "keyboard event handler for onload"
128 ++ | name, `Other f ->
129 ++ Js.Unsafe.set node (Js.bytestring name)
130 ++ (Dom_html.handler (fun ev -> Js.bool (f ev)))
131 ++ | name, `Keyboard f ->
132 ++ Js.Unsafe.set node (Js.bytestring name)
133 ++ (Dom_html.handler (fun ev -> Js.bool (f ev)))
134 ++ | name, `Mouse f ->
135 ++ Js.Unsafe.set node (Js.bytestring name)
136 ++ (Dom_html.handler (fun ev -> Js.bool (f ev)))
137 + in
138 + let flush () =
139 + let fs = flush () in
140 +Index: eliom-5.0.0/src/lib/eliom_content.server.mli
141 +===================================================================
142 +--- eliom-5.0.0.orig/src/lib/eliom_content.server.mli
143 ++++ eliom-5.0.0/src/lib/eliom_content.server.mli
144 +@@ -114,7 +114,7 @@ module Xml : sig
145 + example {% <<a_api project="js_of_ocaml" | type
146 + Dom_html.mouseEvent>>%} or {% <<a_api project="js_of_ocaml" | type
147 + Dom_html.keyboardEvent >>%}. *)
148 +- type -'a caml_event_handler constraint 'a = #Dom_html.event
149 ++ type caml_event_handler
150 +
151 + (**/**)
152 +
153 +@@ -129,18 +129,14 @@ module Xml : sig
154 + val make_event_handler_table : elt -> Eliom_lib.RawXML.event_handler_table
155 + val make_client_attrib_table : elt -> Eliom_lib.RawXML.client_attrib_table
156 +
157 +- val caml_event_handler : ((#Dom_html.event as 'a) Js.t -> unit) Eliom_lib.client_value -> 'a caml_event_handler
158 +-
159 +- class type biggest_event = object
160 +- inherit Dom_html.event
161 +- inherit Dom_html.mouseEvent
162 +- inherit Dom_html.keyboardEvent
163 +- end
164 ++ val caml_event_handler :
165 ++ (Dom_html.event Js.t -> unit) Eliom_lib.client_value ->
166 ++ caml_event_handler
167 +
168 + type racontent =
169 + | RA of acontent
170 + | RAReact of acontent option React.signal
171 +- | RACamlEventHandler of biggest_event caml_event_handler
172 ++ | RACamlEventHandler of caml_event_handler
173 + | RALazyStr of string Eliom_lazy.request
174 + | RALazyStrL of separator * string Eliom_lazy.request list
175 + | RAClient of string * attrib option * Eliom_lib.poly
176 +Index: eliom-5.0.0/src/lib/eliom_content_core.client.ml
177 +===================================================================
178 +--- eliom-5.0.0.orig/src/lib/eliom_content_core.client.ml
179 ++++ eliom-5.0.0/src/lib/eliom_content_core.client.ml
180 +@@ -87,21 +87,19 @@ module Xml = struct
181 + let node ?(a = []) name children = make (Node (name, a, children))
182 + let lazy_node ?a name children = node ?a name (Eliom_lazy.force children)
183 +
184 +- type biggest_event_handler = biggest_event Js.t -> unit
185 +-
186 + type event_handler = Dom_html.event Js.t -> unit
187 + type mouse_event_handler = Dom_html.mouseEvent Js.t -> unit
188 + type keyboard_event_handler = Dom_html.keyboardEvent Js.t -> unit
189 +
190 + let event_handler_attrib name (value : event_handler) =
191 + internal_event_handler_attrib name
192 +- (Caml (CE_client_closure (value :> biggest_event_handler)))
193 ++ (Caml (CE_client_closure value))
194 + let mouse_event_handler_attrib name (value : mouse_event_handler) =
195 + internal_event_handler_attrib name
196 +- (Caml (CE_client_closure (value :> biggest_event_handler)))
197 ++ (Caml (CE_client_closure_mouse value))
198 + let keyboard_event_handler_attrib name (value : keyboard_event_handler) =
199 + internal_event_handler_attrib name
200 +- (Caml (CE_client_closure (value :> biggest_event_handler)))
201 ++ (Caml (CE_client_closure_keyboard value))
202 +
203 + let node_react_children ?(a = []) name children =
204 + {elt = Lazy.from_val (ReactChildren (Node (name,a,[]),children)); node_id=NoId}
205 +Index: eliom-5.0.0/src/lib/eliom_content_core.client.mli
206 +===================================================================
207 +--- eliom-5.0.0.orig/src/lib/eliom_content_core.client.mli
208 ++++ eliom-5.0.0/src/lib/eliom_content_core.client.mli
209 +@@ -35,24 +35,21 @@ module Xml : sig
210 + type aname = string
211 + type attrib
212 +
213 +- type -'a caml_event_handler =
214 ++ type caml_event_handler =
215 + | CE_registered_closure of string * Eliom_lib.poly
216 + (* 'a Js.t -> unit) client_value_server *)
217 +- | CE_client_closure of ((#Dom_html.event as 'a) Js.t -> unit)
218 ++ | CE_client_closure of
219 ++ (Dom_html.event Js.t -> unit) (* Client side-only *)
220 ++ | CE_client_closure_mouse of
221 ++ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
222 ++ | CE_client_closure_keyboard of
223 ++ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
224 + | CE_call_service of
225 + ([ `A | `Form_get | `Form_post] * (bool * string list) option * string option) option Eliom_lazy.request
226 +
227 +- (* Inherit from all events.
228 +- Necessary for subtyping since caml_event_handler is contravariant. *)
229 +- class type biggest_event = object
230 +- inherit Dom_html.event
231 +- inherit Dom_html.mouseEvent
232 +- inherit Dom_html.keyboardEvent
233 +- end
234 +-
235 + type internal_event_handler =
236 + | Raw of string
237 +- | Caml of biggest_event caml_event_handler
238 ++ | Caml of caml_event_handler
239 + type event_handler = Dom_html.event Js.t -> unit
240 + type mouse_event_handler = Dom_html.mouseEvent Js.t -> unit
241 + type keyboard_event_handler = Dom_html.keyboardEvent Js.t -> unit
242 +@@ -89,7 +86,7 @@ module Xml : sig
243 + type racontent =
244 + | RA of acontent
245 + | RAReact of acontent option React.signal
246 +- | RACamlEventHandler of biggest_event caml_event_handler
247 ++ | RACamlEventHandler of caml_event_handler
248 + | RALazyStr of string Eliom_lazy.request
249 + | RALazyStrL of separator * string Eliom_lazy.request list
250 + | RAClient of string * attrib option * Eliom_lib.poly
251 +Index: eliom-5.0.0/src/lib/eliom_content_core.server.ml
252 +===================================================================
253 +--- eliom-5.0.0.orig/src/lib/eliom_content_core.server.ml
254 ++++ eliom-5.0.0/src/lib/eliom_content_core.server.ml
255 +@@ -114,7 +114,6 @@ module Xml = struct
256 + let lazy_node ?(a = []) name children =
257 + make_lazy (Eliom_lazy.from_fun (fun () -> (Node (name, a, Eliom_lazy.force children))))
258 +
259 +- type biggest_event_handler = (biggest_event Js.t -> unit) Eliom_lib.client_value
260 + type event_handler = (Dom_html.event Js.t -> unit) Eliom_lib.client_value
261 + type mouse_event_handler = (Dom_html.mouseEvent Js.t -> unit) Eliom_lib.client_value
262 + type keyboard_event_handler = (Dom_html.keyboardEvent Js.t -> unit) Eliom_lib.client_value
263 +@@ -133,11 +132,11 @@ module Xml = struct
264 + let biggest_event_handler_attrib name cf =
265 + internal_event_handler_attrib name (event_handler cf)
266 + let event_handler_attrib name (cf : event_handler) =
267 +- biggest_event_handler_attrib name (cf :> biggest_event_handler)
268 ++ biggest_event_handler_attrib name cf
269 + let mouse_event_handler_attrib name (cf : mouse_event_handler) =
270 +- biggest_event_handler_attrib name (cf :> biggest_event_handler)
271 ++ biggest_event_handler_attrib name cf
272 + let keyboard_event_handler_attrib name (cf : keyboard_event_handler) =
273 +- biggest_event_handler_attrib name (cf :> biggest_event_handler)
274 ++ biggest_event_handler_attrib name cf
275 +
276 + let client_attrib ?init (x : attrib Eliom_lib.client_value) =
277 + let crypto = make_cryptographic_safe_string () in
278 +Index: eliom-5.0.0/src/lib/eliom_content_core.server.mli
279 +===================================================================
280 +--- eliom-5.0.0.orig/src/lib/eliom_content_core.server.mli
281 ++++ eliom-5.0.0/src/lib/eliom_content_core.server.mli
282 +@@ -28,7 +28,7 @@ module Xml : sig
283 + and type mouse_event_handler = (Dom_html.mouseEvent Js.t -> unit) Eliom_lib.client_value
284 + and type keyboard_event_handler = (Dom_html.keyboardEvent Js.t -> unit) Eliom_lib.client_value
285 +
286 +- type -'a caml_event_handler constraint 'a = #Dom_html.event
287 ++ type caml_event_handler
288 +
289 + (**/**)
290 +
291 +@@ -43,15 +43,9 @@ module Xml : sig
292 + val make_event_handler_table : elt -> Eliom_lib.RawXML.event_handler_table
293 + val make_client_attrib_table : elt -> Eliom_lib.RawXML.client_attrib_table
294 +
295 +- class type biggest_event = object
296 +- inherit Dom_html.event
297 +- inherit Dom_html.mouseEvent
298 +- inherit Dom_html.keyboardEvent
299 +- end
300 +-
301 + type internal_event_handler =
302 + | Raw of string
303 +- | Caml of biggest_event caml_event_handler
304 ++ | Caml of caml_event_handler
305 +
306 + val internal_event_handler_attrib : aname -> internal_event_handler -> attrib
307 + val internal_event_handler_of_service :
308 +@@ -59,12 +53,14 @@ module Xml : sig
309 + * (bool * string list) option
310 + * string option) option Eliom_lazy.request -> internal_event_handler
311 +
312 +- val caml_event_handler : ((#Dom_html.event as 'a) Js.t -> unit) Eliom_lib.client_value -> 'a caml_event_handler
313 ++ val caml_event_handler :
314 ++ (Dom_html.event Js.t -> unit) Eliom_lib.client_value ->
315 ++ caml_event_handler
316 +
317 + type racontent =
318 + | RA of acontent
319 + | RAReact of acontent option React.signal
320 +- | RACamlEventHandler of biggest_event caml_event_handler
321 ++ | RACamlEventHandler of caml_event_handler
322 + | RALazyStr of string Eliom_lazy.request
323 + | RALazyStrL of separator * string Eliom_lazy.request list
324 + | RAClient of string * attrib option * Eliom_lib.poly
325 +Index: eliom-5.0.0/src/lib/eliom_lib_base.shared.ml
326 +===================================================================
327 +--- eliom-5.0.0.orig/src/lib/eliom_lib_base.shared.ml
328 ++++ eliom-5.0.0/src/lib/eliom_lib_base.shared.ml
329 +@@ -70,26 +70,22 @@ module RawXML = struct
330 +
331 + type cookie_info = (bool * string list) deriving (Json)
332 +
333 +- type -'a caml_event_handler =
334 ++ type caml_event_handler =
335 + | CE_registered_closure of
336 + string * poly (* 'a Js.t -> unit) client_value *)
337 + | CE_client_closure of
338 +- ((#Dom_html.event as 'a) Js.t -> unit) (* Client side-only *)
339 ++ (Dom_html.event Js.t -> unit) (* Client side-only *)
340 ++ | CE_client_closure_mouse of
341 ++ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
342 ++ | CE_client_closure_keyboard of
343 ++ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
344 + | CE_call_service of
345 + ([ `A | `Form_get | `Form_post] * (cookie_info option) * string option)
346 + option Eliom_lazy.request
347 +
348 +- (* Inherit from all events.
349 +- Necessary for subtyping since caml_event_handler is contravariant. *)
350 +- class type biggest_event = object
351 +- inherit Dom_html.event
352 +- inherit Dom_html.mouseEvent
353 +- inherit Dom_html.keyboardEvent
354 +- end
355 +-
356 + type internal_event_handler =
357 + | Raw of string
358 +- | Caml of biggest_event caml_event_handler
359 ++ | Caml of caml_event_handler
360 +
361 + type uri = string Eliom_lazy.request
362 + let string_of_uri = Eliom_lazy.force
363 +@@ -128,7 +124,7 @@ module RawXML = struct
364 + type racontent =
365 + | RA of acontent
366 + | RAReact of acontent option React.signal
367 +- | RACamlEventHandler of biggest_event caml_event_handler
368 ++ | RACamlEventHandler of caml_event_handler
369 + | RALazyStr of string Eliom_lazy.request
370 + | RALazyStrL of separator * string Eliom_lazy.request list
371 + | RAClient of string * attrib option * poly (*attrib client_value *)
372 +Index: eliom-5.0.0/src/lib/eliom_lib_base.shared.mli
373 +===================================================================
374 +--- eliom-5.0.0.orig/src/lib/eliom_lib_base.shared.mli
375 ++++ eliom-5.0.0/src/lib/eliom_lib_base.shared.mli
376 +@@ -73,24 +73,21 @@ module RawXML : sig
377 +
378 + type cookie_info = (bool * string list) deriving (Json)
379 +
380 +- type -'a caml_event_handler =
381 ++ type caml_event_handler =
382 + | CE_registered_closure of
383 + string * poly (* 'a Js.t -> unit) client_value *)
384 +- | CE_client_closure of ((#Dom_html.event as 'a) Js.t -> unit)
385 ++ | CE_client_closure of
386 ++ (Dom_html.event Js.t -> unit) (* Client side-only *)
387 ++ | CE_client_closure_mouse of
388 ++ (Dom_html.mouseEvent Js.t -> unit) (* Client side-only *)
389 ++ | CE_client_closure_keyboard of
390 ++ (Dom_html.keyboardEvent Js.t -> unit) (* Client side-only *)
391 + | CE_call_service of
392 + ([ `A | `Form_get | `Form_post] * (cookie_info option) * string option) option Eliom_lazy.request
393 +
394 +- (* Inherit from all events.
395 +- Necessary for subtyping since caml_event_handler is contravariant. *)
396 +- class type biggest_event = object
397 +- inherit Dom_html.event
398 +- inherit Dom_html.mouseEvent
399 +- inherit Dom_html.keyboardEvent
400 +- end
401 +-
402 + type internal_event_handler =
403 + | Raw of string
404 +- | Caml of biggest_event caml_event_handler
405 ++ | Caml of caml_event_handler
406 +
407 + type uri = string Eliom_lazy.request
408 + val string_of_uri : uri -> string
409 +@@ -127,7 +124,7 @@ module RawXML : sig
410 + type racontent =
411 + | RA of acontent
412 + | RAReact of acontent option React.signal
413 +- | RACamlEventHandler of biggest_event caml_event_handler
414 ++ | RACamlEventHandler of caml_event_handler
415 + | RALazyStr of string Eliom_lazy.request
416 + | RALazyStrL of separator * string Eliom_lazy.request list
417 + | RAClient of string * attrib option * poly (* attrib client_value *)