Package: src:sks Version: 1.1.1-2 Severity: normal User: debian-ocaml-ma...@lists.debian.org Usertags: ocaml312-ftbfs
Hello, While rebuilding all packages with a SVN snapshot of OCaml (version 3.12.0+dev17, revision 10268), your package failed to build on amd64. Relevant part: > ocamlopt -I lib -I bdb -I +cryptokit -ccopt -Lbdb -dtypes -ccopt -pthread > -warn-error A -inline 40 unix.cmxa str.cmxa bdb.cmxa nums.cmxa bigarray.cmxa > cryptokit.cmxa -c channel.ml > File "channel.ml", line 212, characters 2-36: > Warning 7: the method read_string is overridden. > File "channel.ml", line 253, characters 2-159: > Warning 7: the method read_string is overridden. > File "channel.ml", line 278, characters 2-145: > Warning 7: the method read_byte is overridden. > File "channel.ml", line 1, characters 0-1: > Error: Error-enabled warnings (3 occurrences) > make[1]: *** [channel.cmx] Error 2 > make[1]: Leaving directory `/tmp/sks-1.1.1/build-tree/sks-1.1.1' The full build log is available at: http://debian.glondu.net/debian/ocaml31120dev17r10268/failures/sks_1.1.1-2%2B3.12.0%2Bdev17%2B10268_amd64.build As said in the attached patch: > OCaml 3.12 introduces a new warning for undeclared overridden methods, > that makes sks FTBFS because of error-enabled warnings. This patch > should fix the issue. However, it seems that camlp4o doesn't cope well > with the new syntax (see [1]), so sks doesn't build yet with this > patch. > > Note: I believe this is the "right" fix, but it is not > backward-compatible with OCaml < 3.12. The only backward-compatible > fix I can think of would be to disable error-enabled warnings > (i.e. compile without -warn-error A). > > [1] http://caml.inria.fr/mantis/view.php?id=5042 I do not tag this bugreport with patch because sks doesn't build with it, but I submit it nonetheless for future reference. Best regards, -- Stéphane -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-3-amd64 (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
>From bc08b0b70f67a0673dde3db83d8d0671b13e702a Mon Sep 17 00:00:00 2001 From: Stephane Glondu <st...@glondu.net> Date: Mon, 3 May 2010 11:50:34 +0200 Subject: [PATCH] Add 250_ocaml312 OCaml 3.12 introduces a new warning for undeclared overridden methods, that makes sks FTBFS because of error-enabled warnings. This patch should fix the issue. However, it seems that camlp4o doesn't cope well with the new syntax (see [1]), so sks doesn't build yet with this patch. Note: I believe this is the "right" fix, but it is not backward-compatible with OCaml < 3.12. The only backward-compatible fix I can think of would be to disable error-enabled warnings (i.e. compile without -warn-error A). [1] http://caml.inria.fr/mantis/view.php?id=5042 --- debian/patches/250_ocaml312 | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 49 insertions(+), 0 deletions(-) create mode 100644 debian/patches/250_ocaml312 diff --git a/debian/patches/250_ocaml312 b/debian/patches/250_ocaml312 new file mode 100644 index 0000000..55a06d0 --- /dev/null +++ b/debian/patches/250_ocaml312 @@ -0,0 +1,49 @@ +--- sks-1.1.1-old/channel.ml ++++ sks-1.1.1/channel.ml +@@ -209,7 +209,7 @@ object (self) + + method close = close_in cin + method read_all = read_all cin () +- method read_string len = input len ++ method! read_string len = input len + method read_string_pos ~buf ~pos ~len = + let s = input len in + String.blit ~src:s ~dst:buf ~src_pos:0 ~dst_pos:pos ~len +@@ -250,7 +250,7 @@ object (self) + val slength = String.length string + val mutable pos = pos + +- method read_string len = ++ method! read_string len = + if pos + len > slength then raise End_of_file; + let rval = String.sub string ~pos ~len in + pos <- pos + len; +@@ -275,7 +275,7 @@ object (self) + pos <- pos + 1; + char + +- method read_byte = ++ method! read_byte = + if pos + 1 > slength then raise End_of_file; + let byte = int_of_char string.[pos] in + pos <- pos + 1; +--- sks-1.1.1-old/meteredChannel.ml ++++ sks-1.1.1/meteredChannel.ml +@@ -47,7 +47,7 @@ object (self) + self#incr 1 + + method flush : unit = outc#flush +- method upcast = (self :> Channel.out_channel_obj) ++ method! upcast = (self :> Channel.out_channel_obj) + method reset = count <- 0 + method bytes = count + +@@ -78,7 +78,7 @@ object (self) + self#incr 1; + inc#read_byte + +- method upcast = (self :> Channel.in_channel_obj) ++ method! upcast = (self :> Channel.in_channel_obj) + method reset = count <- 0 + method bytes = count + -- 1.7.0