diff options
author | dholland <dholland@pkgsrc.org> | 2018-03-14 14:05:37 +0000 |
---|---|---|
committer | dholland <dholland@pkgsrc.org> | 2018-03-14 14:05:37 +0000 |
commit | dfec5570bc0f8a9e6daa1e7fc48b7650078706e0 (patch) | |
tree | d3d5e3943c7637596081a3701a489dff314b5c3f /net | |
parent | 673189e11244f47af8cd37153d4a993a165fd307 (diff) | |
download | pkgsrc-dfec5570bc0f8a9e6daa1e7fc48b7650078706e0.tar.gz |
Partial build fixes for ocaml 4.06.
not at all clear this thing is worth the trouble...
Diffstat (limited to 'net')
38 files changed, 2168 insertions, 31 deletions
diff --git a/net/mldonkey/distinfo b/net/mldonkey/distinfo index f20bb724f90..e1ece5b2dc3 100644 --- a/net/mldonkey/distinfo +++ b/net/mldonkey/distinfo @@ -1,17 +1,43 @@ -$NetBSD: distinfo,v 1.64 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: distinfo,v 1.65 2018/03/14 14:05:37 dholland Exp $ SHA1 (mldonkey-3.1.5.tar.bz2) = 7bc4f9272ecfe6403eef7062766b26bf321e3015 RMD160 (mldonkey-3.1.5.tar.bz2) = 63a21aef47a7510b7f9867544345c8f03edc89c3 SHA512 (mldonkey-3.1.5.tar.bz2) = 96e75acf91d7ecc41490f898e06d284da27404c7e567f173936d8113885a3b4b6bc93341358f92a30d3f699eef681d97ce56414a37bb02a535ad2da4d4ad13a3 Size (mldonkey-3.1.5.tar.bz2) = 2847382 bytes -SHA1 (patch-config_Makefile.in) = a575c505c1f736bc3940790b43a6cf2083f29112 -SHA1 (patch-config_configure.in) = f9c3887e04a9727e13fecd47d763462a413913f3 -SHA1 (patch-src_config_unix_os_stubs.c.c) = 4cc60c1019a93212157d526e15269079c1e84e20 -SHA1 (patch-src_networks_donkey_donkeyGlobals.ml) = a9734496b883e4ced2a6a744d0b2fcf331b56ba1 -SHA1 (patch-src_utils_cdk_gdstubs.c) = 52717da3310492d3d737b5332e295573e5142f8a -SHA1 (patch-src_utils_cdk_zip.ml) = 3a511187821445040a7d53b80fb3f9682f905463 -SHA1 (patch-src_utils_cdk_zlibstubs.c) = 14d61998e620b27afbecbe5e058c8ef466a68ecb -SHA1 (patch-src_utils_lib_fst_hash.c) = f5b69a13d8ab7f3149e82b6f0f37425fdd62a945 -SHA1 (patch-src_utils_lib_options.ml4) = 9e47644d41606a2fb29f5e3c2609d2d36d97b745 -SHA1 (patch-src_utils_lib_os_stubs.h) = 4128c7507cff2f70708ab38684f7fd60af6f6bca -SHA1 (patch-src_utils_net_terminal.ml) = 8745d3d6f605c9609febfea4e84c5c6619be0d14 +SHA1 (patch-config_Makefile.in) = 84f235f7ad4e6a9cdec807a24d3f11f769a01399 +SHA1 (patch-config_configure.in) = 0f187754d590a565b22ef402351dbe18c456a8c5 +SHA1 (patch-src_config_unix_os_stubs.c.c) = 6abe8ef9a040be0716e3d6c88b48764b6dd7ed55 +SHA1 (patch-src_networks_donkey_donkeyGlobals.ml) = 5f0b36213b6e6185077cd5c8d82b314b1c50c8c2 +SHA1 (patch-src_utils_cdk_bzip2.ml) = 77f7b96a12930df3843c38baa69a90ad73a26f8d +SHA1 (patch-src_utils_cdk_bzip2.mli) = c54fcf33541ada525d33d6485a9362bb1cb5c8cf +SHA1 (patch-src_utils_cdk_bzlib.ml) = fd13e153d484ed6d07dfeaaf5e19560cac92e0a2 +SHA1 (patch-src_utils_cdk_bzlib.mli) = 2057ae8479851ad49b5fd5630e51c63f5c3d08f3 +SHA1 (patch-src_utils_cdk_filename2.ml) = 08c1da16ee18c32b2efe4342030054a8e396960b +SHA1 (patch-src_utils_cdk_gdstubs.c) = 9d8ef81fcf3515ab5337769aef12c6aacbb4eb81 +SHA1 (patch-src_utils_cdk_genlex2.ml) = 679554178ef641ae573523599ecb0587c4cefb78 +SHA1 (patch-src_utils_cdk_gzip.ml) = c044e15df645f3262664ca136fddabf7e5e2a0d1 +SHA1 (patch-src_utils_cdk_gzip.mli) = 9eaef0cfae3844742ca14a1aca3c900ae22e813c +SHA1 (patch-src_utils_cdk_string2.ml) = 8f73f9be699dfa92e2360c1ce94b26d4d5e1e62c +SHA1 (patch-src_utils_cdk_string2.mli) = 5ed5cdc6fb12b964bb65d861a33901e9ec68d504 +SHA1 (patch-src_utils_cdk_tar.mlcpp) = 75e2cab5d1e3d1e880a13bd0f7b2e29f7c0ca2be +SHA1 (patch-src_utils_cdk_unix2.ml) = 3893de3d70704fc625b6cb2e2e405911b92a32ab +SHA1 (patch-src_utils_cdk_zip.ml) = a875053a90c911e2f07fcfc75aa307e6ba7cd5b4 +SHA1 (patch-src_utils_cdk_zlib.ml) = a2ad3cdde37fe9ee329c1e9193e7744bda167a4a +SHA1 (patch-src_utils_cdk_zlib.mli) = bf6125e1812ece75d48ee3a7fda88ef9f172bd26 +SHA1 (patch-src_utils_cdk_zlibstubs.c) = cd005903f050e2c9fee1f745ada40f5dad2e3985 +SHA1 (patch-src_utils_extlib_IO.ml) = 8d889c88345ba5e622200558760b221abde4ab7a +SHA1 (patch-src_utils_extlib_IO.mli) = 8f41b20aa762f7ba22fec958862015f81adc2952 +SHA1 (patch-src_utils_lib_fst_hash.c) = c96999a09d392293fc6dc997f3a2d5465bd2e8d8 +SHA1 (patch-src_utils_lib_md4.ml) = 3d283d01ff1a95cb2893b52bccefd63d1c28f6c6 +SHA1 (patch-src_utils_lib_md4.mli) = ad6c4085f6ef803e0e97be15ad7380bc6f24555e +SHA1 (patch-src_utils_lib_misc.ml) = 947a8f24d1ea2a05b8a83d2d7da84c7f9d991602 +SHA1 (patch-src_utils_lib_misc2.mlcpp) = 077de6829a0d7367352c5b6ea5562c42e441a396 +SHA1 (patch-src_utils_lib_options.ml4) = aa7a752f894a09d2a1fe3f69e1796d560f241e24 +SHA1 (patch-src_utils_lib_os_stubs.h) = a6707829311c46dd598d269c465a02f0fa8fc701 +SHA1 (patch-src_utils_lib_syslog.ml) = e3993e6a3a008bc7e52eb414e980afb41658dafb +SHA1 (patch-src_utils_lib_tiger.c) = d4b3b9a3de0a64dee442911a4d9b30d075091a7e +SHA1 (patch-src_utils_lib_unix32.ml) = 81f4b15ece553bb7a46a046026bb3d2f74d5d2b2 +SHA1 (patch-src_utils_lib_unix32.mli) = 39ae8385f2b43bcb961476c639acfbace4774197 +SHA1 (patch-src_utils_lib_url.ml) = aa1194997f44e7437ada3012058455964c4573f2 +SHA1 (patch-src_utils_lib_verificationBitmap.ml) = f8d7af0eff1674ca83a98a800e53e2a41da9922a +SHA1 (patch-src_utils_net_terminal.ml) = f601ea7facc3f31f9f288567a094fbd3e1bda70c diff --git a/net/mldonkey/patches/patch-config_Makefile.in b/net/mldonkey/patches/patch-config_Makefile.in index 048f35d8246..e91eb986ae3 100644 --- a/net/mldonkey/patches/patch-config_Makefile.in +++ b/net/mldonkey/patches/patch-config_Makefile.in @@ -1,6 +1,7 @@ -$NetBSD: patch-config_Makefile.in,v 1.1 2012/09/14 19:23:31 jaapb Exp $ +$NetBSD: patch-config_Makefile.in,v 1.2 2018/03/14 14:05:37 dholland Exp $ Correct include paths for lablgtk 2.16 + --- config/Makefile.in.orig 2012-07-01 17:47:41.000000000 +0000 +++ config/Makefile.in @@ -655,15 +655,18 @@ install:: opt diff --git a/net/mldonkey/patches/patch-config_configure.in b/net/mldonkey/patches/patch-config_configure.in index 804df22a9f5..6f4207142c7 100644 --- a/net/mldonkey/patches/patch-config_configure.in +++ b/net/mldonkey/patches/patch-config_configure.in @@ -1,6 +1,7 @@ -$NetBSD: patch-config_configure.in,v 1.6 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-config_configure.in,v 1.7 2018/03/14 14:05:37 dholland Exp $ Correct include paths for lablgtk 2.16 + --- config/configure.in.orig 2012-08-05 15:49:02.000000000 +0000 +++ config/configure.in @@ -1347,15 +1364,15 @@ if test "$GTK_CONFIG" = "no"; then diff --git a/net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c b/net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c index 125b287a42d..7f701c06846 100644 --- a/net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c +++ b/net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c @@ -1,6 +1,7 @@ -$NetBSD: patch-src_config_unix_os_stubs.c.c,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_config_unix_os_stubs.c.c,v 1.2 2018/03/14 14:05:37 dholland Exp $ Compile with OCaml 4.03 + --- src/config/unix/os_stubs_c.c.orig 2010-07-16 13:56:35.000000000 +0000 +++ src/config/unix/os_stubs_c.c @@ -66,7 +66,7 @@ ssize_t os_read(OS_FD fd, char *buf, siz diff --git a/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml b/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml index 5e8eb8dcf40..8c81b09068b 100644 --- a/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml +++ b/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml @@ -1,6 +1,7 @@ -$NetBSD: patch-src_networks_donkey_donkeyGlobals.ml,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_networks_donkey_donkeyGlobals.ml,v 1.2 2018/03/14 14:05:37 dholland Exp $ Compile with OCaml 4.03 + --- src/networks/donkey/donkeyGlobals.ml.orig 2011-10-25 17:33:21.000000000 +0000 +++ src/networks/donkey/donkeyGlobals.ml @@ -781,7 +781,6 @@ let set_client_name c name md4 = diff --git a/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml b/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml new file mode 100644 index 00000000000..ed2158f096b --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml @@ -0,0 +1,126 @@ +$NetBSD: patch-src_utils_cdk_bzip2.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/bzip2.ml~ 2006-03-05 10:41:06.000000000 +0000 ++++ src/utils/cdk/bzip2.ml +@@ -7,7 +7,7 @@ let buffer_size = 1024 + + type in_channel = + { in_chan: Pervasives.in_channel; +- in_buffer: string; ++ in_buffer: bytes; + mutable in_pos: int; + mutable in_avail: int; + mutable in_eof: bool; +@@ -16,7 +16,7 @@ type in_channel = + + let open_in_chan ic = + { in_chan = ic; +- in_buffer = String.create buffer_size; ++ in_buffer = Bytes.create buffer_size; + in_pos = 0; + in_avail = 0; + in_eof = false; +@@ -32,12 +32,12 @@ let open_in filename = + let read_byte iz = + if iz.in_avail = 0 then begin + let n = Pervasives.input iz.in_chan iz.in_buffer 0 +- (String.length iz.in_buffer) in ++ (Bytes.length iz.in_buffer) in + if n = 0 then raise End_of_file; + iz.in_pos <- 0; + iz.in_avail <- n + end; +- let c = iz.in_buffer.[iz.in_pos] in ++ let c = Bytes.get iz.in_buffer iz.in_pos in + iz.in_pos <- iz.in_pos + 1; + iz.in_avail <- iz.in_avail - 1; + Char.code c +@@ -53,19 +53,19 @@ let read_int32 iz = + (Int32.shift_left (Int32.of_int b4) 24))) + + let rec input iz buf pos len = +- if pos < 0 || len < 0 || pos + len > String.length buf then ++ if pos < 0 || len < 0 || pos + len > Bytes.length buf then + invalid_arg "Bzip2.input"; + if iz.in_eof then 0 else begin + if iz.in_avail = 0 then begin + let n = Pervasives.input iz.in_chan iz.in_buffer 0 +- (String.length iz.in_buffer) in ++ (Bytes.length iz.in_buffer) in + if n = 0 then raise(Error("truncated file")); + iz.in_pos <- 0; + iz.in_avail <- n + end; + let (finished, used_in, used_out) = + try +- Bzlib.decompress iz.in_stream iz.in_buffer iz.in_pos iz.in_avail ++ Bzlib.decompress iz.in_stream (Bytes.to_string iz.in_buffer) iz.in_pos iz.in_avail + buf pos len + with Bzlib.Error(_, e) -> + raise(Error(Bzlib.string_of_error e)) in +@@ -88,10 +88,10 @@ let rec really_input iz buf pos len = + really_input iz buf (pos + n) (len - n) + end + +-let char_buffer = String.create 1 ++let char_buffer = Bytes.create 1 + + let input_char iz = +- if input iz char_buffer 0 1 = 0 then raise End_of_file else char_buffer.[0] ++ if input iz char_buffer 0 1 = 0 then raise End_of_file else Bytes.get char_buffer 0 + + let input_byte iz = + Char.code (input_char iz) +@@ -106,7 +106,7 @@ let close_in iz = + + type out_channel = + { out_chan: Pervasives.out_channel; +- out_buffer: string; ++ out_buffer: bytes; + mutable out_pos: int; + mutable out_avail: int; + out_stream: Bzlib.stream; +@@ -115,7 +115,7 @@ type out_channel = + let open_out_chan ?(level = 6) oc = + if level < 1 || level > 9 then invalid_arg "Bzip2.open_out: bad level"; + { out_chan = oc; +- out_buffer = String.create buffer_size; ++ out_buffer = Bytes.create buffer_size; + out_pos = 0; + out_avail = buffer_size; + out_stream = Bzlib.compress_init level 0 0; +@@ -132,7 +132,7 @@ let rec output oz buf pos len = + (* Printf.printf "Flushing out_avail\n"; *) + Pervasives.output oz.out_chan oz.out_buffer 0 oz.out_pos; + oz.out_pos <- 0; +- oz.out_avail <- String.length oz.out_buffer ++ oz.out_avail <- Bytes.length oz.out_buffer + end; + let (_, used_in, used_out) = + try +@@ -147,8 +147,8 @@ let rec output oz buf pos len = + if used_in < len then output oz buf (pos + used_in) (len - used_in) + + let output_char oz c = +- char_buffer.[0] <- c; +- output oz char_buffer 0 1 ++ let s = String.make 1 c in ++ output oz s 0 1 + + let output_byte oz b = + output_char oz (Char.unsafe_chr b) +@@ -159,10 +159,10 @@ let flush oz = + if oz.out_avail = 0 then begin + Pervasives.output oz.out_chan oz.out_buffer 0 oz.out_pos; + oz.out_pos <- 0; +- oz.out_avail <- String.length oz.out_buffer ++ oz.out_avail <- Bytes.length oz.out_buffer + end; + let (finished, _, used_out) = +- Bzlib.compress oz.out_stream oz.out_buffer 0 0 ++ Bzlib.compress oz.out_stream (Bytes.to_string oz.out_buffer) 0 0 + oz.out_buffer oz.out_pos oz.out_avail + Bzlib.BZ_FINISH in + oz.out_pos <- oz.out_pos + used_out; diff --git a/net/mldonkey/patches/patch-src_utils_cdk_bzip2.mli b/net/mldonkey/patches/patch-src_utils_cdk_bzip2.mli new file mode 100644 index 00000000000..75575e67e0c --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_bzip2.mli @@ -0,0 +1,24 @@ +$NetBSD: patch-src_utils_cdk_bzip2.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/bzip2.mli~ 2005-09-13 09:49:40.000000000 +0000 ++++ src/utils/cdk/bzip2.mli +@@ -22,7 +22,7 @@ val input_byte: in_channel -> int + (* Same as [Bzip2.input_char], but return the 8-bit integer representing + the character. + Raise [End_of_file] if no more compressed data is available. *) +-val input: in_channel -> string -> int -> int -> int ++val input: in_channel -> bytes -> int -> int -> int + (* [input ic buf pos len] uncompresses up to [len] characters + from the given channel [ic], + storing them in string [buf], starting at character number [pos]. +@@ -38,7 +38,7 @@ val input: in_channel -> string -> int - + exactly [len] characters.) + Exception [Invalid_argument "Bzip2.input"] is raised if + [pos] and [len] do not designate a valid substring of [buf]. *) +-val really_input: in_channel -> string -> int -> int -> unit ++val really_input: in_channel -> bytes -> int -> int -> unit + (* [really_input ic buf pos len] uncompresses [len] characters + from the given channel, storing them in + string [buf], starting at character number [pos]. diff --git a/net/mldonkey/patches/patch-src_utils_cdk_bzlib.ml b/net/mldonkey/patches/patch-src_utils_cdk_bzlib.ml new file mode 100644 index 00000000000..e57cba5f4de --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_bzlib.ml @@ -0,0 +1,24 @@ +$NetBSD: patch-src_utils_cdk_bzlib.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/bzlib.ml~ 2005-08-01 20:09:13.000000000 +0000 ++++ src/utils/cdk/bzlib.ml +@@ -23,7 +23,7 @@ type action = BZ_RUN | BZ_FLUSH | BZ_FIN + + external compress_init: int -> int -> int -> stream = "camlzip_bzCompressInit" + external compress: +- stream -> string -> int -> int -> string -> int -> int -> action ++ stream -> string -> int -> int -> bytes -> int -> int -> action + -> bool * int * int + = "camlzip_bzCompress_bytecode" "camlzip_bzCompress" + external compress_end: stream -> unit = "camlzip_bzCompressEnd" +@@ -31,7 +31,7 @@ external compress_end: stream -> unit = + + external decompress_init: int -> bool -> stream = "camlzip_bzDecompressInit" + external decompress: +- stream -> string -> int -> int -> string -> int -> int -> bool * int * int ++ stream -> string -> int -> int -> bytes -> int -> int -> bool * int * int + = "camlzip_bzDecompress_bytecode" "camlzip_bzDecompress" + external decompress_end: stream -> unit = "camlzip_bzDecompressEnd" + diff --git a/net/mldonkey/patches/patch-src_utils_cdk_bzlib.mli b/net/mldonkey/patches/patch-src_utils_cdk_bzlib.mli new file mode 100644 index 00000000000..8da73662ba9 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_bzlib.mli @@ -0,0 +1,24 @@ +$NetBSD: patch-src_utils_cdk_bzlib.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/bzlib.mli~ 2005-08-01 20:09:13.000000000 +0000 ++++ src/utils/cdk/bzlib.mli +@@ -10,7 +10,7 @@ type action = BZ_RUN | BZ_FLUSH | BZ_FIN + + external compress_init: int -> int -> int -> stream = "camlzip_bzCompressInit" + external compress: +- stream -> string -> int -> int -> string -> int -> int -> action ++ stream -> string -> int -> int -> bytes -> int -> int -> action + -> bool * int * int + = "camlzip_bzCompress_bytecode" "camlzip_bzCompress" + external compress_end: stream -> unit = "camlzip_bzCompressEnd" +@@ -18,7 +18,7 @@ external compress_end: stream -> unit = + + external decompress_init: int -> bool -> stream = "camlzip_bzDecompressInit" + external decompress: +- stream -> string -> int -> int -> string -> int -> int -> bool * int * int ++ stream -> string -> int -> int -> bytes -> int -> int -> bool * int * int + = "camlzip_bzDecompress_bytecode" "camlzip_bzDecompress" + external decompress_end: stream -> unit = "camlzip_bzDecompressEnd" + diff --git a/net/mldonkey/patches/patch-src_utils_cdk_filename2.ml b/net/mldonkey/patches/patch-src_utils_cdk_filename2.ml new file mode 100644 index 00000000000..7a6d21da808 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_filename2.ml @@ -0,0 +1,39 @@ +$NetBSD: patch-src_utils_cdk_filename2.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/filename2.ml~ 2012-06-24 07:59:41.000000000 +0000 ++++ src/utils/cdk/filename2.ml +@@ -116,11 +116,11 @@ let to_string filename = + List.fold_left (fun file f -> f file) filename !to_strings + + let path_of_filename filename = +- let filename = String.copy filename in ++ let change c = ++ if c = '\\' then '/' else c ++ in ++ let filename = String.map change filename in + let len = String.length filename in +- for i = 0 to len - 1 do +- if filename.[i] = '\\' then filename.[i] <- '/'; +- done; + let filename = + if len > 2 && filename.[1] = ':' && + match filename.[0] with +@@ -142,11 +142,11 @@ let filesystem_compliant name fs namemax + (* replace all illegal characters with a valid one. + assumes all filesystems accept '_'s in filenames *) + let escape_chars p filename = +- let s = String.copy filename in +- for i = 0 to String.length filename - 1 do +- if p s.[i] then s.[i] <- '_' +- done; +- s in ++ let change c = ++ if p c then '_' else c ++ in ++ String.map change filename ++ in + + (* remove all illegal characters at the beginning of filename *) + let trim_left p filename = diff --git a/net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c b/net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c index ea393c17809..bf379f8d9a0 100644 --- a/net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c +++ b/net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c @@ -1,6 +1,7 @@ -$NetBSD: patch-src_utils_cdk_gdstubs.c,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_cdk_gdstubs.c,v 1.2 2018/03/14 14:05:37 dholland Exp $ Compile with OCaml 4.03 + --- src/utils/cdk/gdstubs.c.orig 2012-06-24 07:59:41.000000000 +0000 +++ src/utils/cdk/gdstubs.c @@ -489,7 +489,7 @@ int ml_image_pngversion(void) diff --git a/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml b/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml new file mode 100644 index 00000000000..a192a33af4a --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml @@ -0,0 +1,39 @@ +$NetBSD: patch-src_utils_cdk_genlex2.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/genlex2.ml~ 2003-04-22 22:33:39.000000000 +0000 ++++ src/utils/cdk/genlex2.ml +@@ -28,7 +28,7 @@ type token = + + (* The string buffering machinery *) + +-let initial_buffer = String.create 32 ++let initial_buffer = Bytes.create 32 + + let buffer = ref initial_buffer + let bufpos = ref 0 +@@ -36,16 +36,18 @@ let bufpos = ref 0 + let reset_buffer () = buffer := initial_buffer; bufpos := 0 + + let store c = +- if !bufpos >= String.length !buffer then ++ if !bufpos >= Bytes.length !buffer then + begin +- let newbuffer = String.create (2 * !bufpos) in +- String.blit !buffer 0 newbuffer 0 !bufpos; buffer := newbuffer ++ let newbuffer = Bytes.create (2 * !bufpos) in ++ Bytes.blit !buffer 0 newbuffer 0 !bufpos; buffer := newbuffer + end; +- String.set !buffer !bufpos c; ++ Bytes.set !buffer !bufpos c; + incr bufpos + + let get_string () = +- let s = String.sub !buffer 0 !bufpos in buffer := initial_buffer; s ++ let s = Bytes.to_string (Bytes.sub !buffer 0 !bufpos) in ++ buffer := initial_buffer; ++ s + + (* The lexer *) + diff --git a/net/mldonkey/patches/patch-src_utils_cdk_gzip.ml b/net/mldonkey/patches/patch-src_utils_cdk_gzip.ml new file mode 100644 index 00000000000..1869c3b206d --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_gzip.ml @@ -0,0 +1,180 @@ +$NetBSD: patch-src_utils_cdk_gzip.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/gzip.ml~ 2010-11-07 15:01:40.000000000 +0000 ++++ src/utils/cdk/gzip.ml +@@ -21,14 +21,14 @@ let buffer_size = 1024 + + type in_channel = + { in_chan: IO.input; +- in_buffer: string; ++ in_buffer: bytes; + mutable in_pos: int; + mutable in_avail: int; + mutable in_eof: bool; + in_stream: Zlib.stream; + mutable in_size: int32; + mutable in_crc: int32; +- char_buffer: string } ++ char_buffer: bytes } + + let open_in ic = + (* Superficial parsing of header *) +@@ -66,14 +66,14 @@ let open_in ic = + raise(Error("premature end of input, not a gzip stream")) + end; + { in_chan = ic; +- in_buffer = String.create buffer_size; ++ in_buffer = Bytes.create buffer_size; + in_pos = 0; + in_avail = 0; + in_eof = false; + in_stream = Zlib.inflate_init false; + in_size = Int32.zero; + in_crc = Int32.zero; +- char_buffer = String.create 1 } ++ char_buffer = Bytes.create 1 } + + let open_in_file filename = + let ic = Pervasives.open_in_bin filename in +@@ -84,11 +84,11 @@ let open_in_file filename = + let read_byte iz = + if iz.in_avail = 0 then begin + let n = IO.input iz.in_chan iz.in_buffer 0 +- (String.length iz.in_buffer) in ++ (Bytes.length iz.in_buffer) in + iz.in_pos <- 0; + iz.in_avail <- n + end; +- let c = iz.in_buffer.[iz.in_pos] in ++ let c = Bytes.get iz.in_buffer iz.in_pos in + iz.in_pos <- iz.in_pos + 1; + iz.in_avail <- iz.in_avail - 1; + Char.code c +@@ -104,12 +104,12 @@ let read_int32 iz = + (Int32.shift_left (Int32.of_int b4) 24))) + + let rec input iz buf pos len = +- if pos < 0 || len < 0 || pos + len > String.length buf then ++ if pos < 0 || len < 0 || pos + len > Bytes.length buf then + invalid_arg "Gzip_stream.input"; + if iz.in_eof then 0 else begin + if iz.in_avail = 0 then begin + let n = try IO.input iz.in_chan iz.in_buffer 0 +- (String.length iz.in_buffer) ++ (Bytes.length iz.in_buffer) + with IO.No_more_input -> raise(Error("truncated stream")) + in + iz.in_pos <- 0; +@@ -123,7 +123,7 @@ let rec input iz buf pos len = + raise(Error("error during decompression")) in + iz.in_pos <- iz.in_pos + used_in; + iz.in_avail <- iz.in_avail - used_in; +- iz.in_crc <- Zlib.update_crc iz.in_crc buf pos used_out; ++ iz.in_crc <- Zlib.update_crc iz.in_crc (Bytes.to_string buf) pos used_out; + iz.in_size <- Int32.add iz.in_size (Int32.of_int used_out); + if finished then begin + try +@@ -152,7 +152,7 @@ let rec really_input iz buf pos len = + end + + let input_char iz = +- if input iz iz.char_buffer 0 1 = 0 then raise End_of_file else iz.char_buffer.[0] ++ if input iz iz.char_buffer 0 1 = 0 then raise End_of_file else Bytes.get iz.char_buffer 0 + + let input_byte iz = + Char.code (input_char iz) +@@ -167,13 +167,13 @@ let close_in iz = + + type 'a out_channel = + { out_chan: 'a IO.output; +- out_buffer: string; ++ out_buffer: bytes; + mutable out_pos: int; + mutable out_avail: int; + out_stream: Zlib.stream; + mutable out_size: int32; + mutable out_crc: int32; +- char_buffer: string } ++ char_buffer: bytes } + + let open_out ?(level = 6) oc = + if level < 1 || level > 9 then invalid_arg "Gzip_stream.open_output: bad level"; +@@ -186,13 +186,13 @@ let open_out ?(level = 6) oc = + IO.write_byte oc 0; (* xflags *) + IO.write_byte oc 0xFF; (* OS (unknown) *) + { out_chan = oc; +- out_buffer = String.create buffer_size; ++ out_buffer = Bytes.create buffer_size; + out_pos = 0; + out_avail = buffer_size; + out_stream = Zlib.deflate_init level false; + out_size = Int32.zero; + out_crc = Int32.zero; +- char_buffer = String.create 1 } ++ char_buffer = Bytes.create 1 } + + let open_out_file ?level filename = + let oc = Pervasives.open_out_bin filename in +@@ -202,13 +202,13 @@ let open_out_file ?level filename = + exn -> Pervasives.close_out oc; raise exn + + let rec output oz buf pos len = +- if pos < 0 || len < 0 || pos + len > String.length buf then ++ if pos < 0 || len < 0 || pos + len > Bytes.length buf then + invalid_arg "Gzip_stream.output"; + (* If output buffer is full, flush it *) + if oz.out_avail = 0 then begin +- ignore (IO.really_output oz.out_chan oz.out_buffer 0 oz.out_pos); ++ ignore (IO.really_output oz.out_chan (Bytes.to_string oz.out_buffer) 0 oz.out_pos); + oz.out_pos <- 0; +- oz.out_avail <- String.length oz.out_buffer ++ oz.out_avail <- Bytes.length oz.out_buffer + end; + let (_, used_in, used_out) = + try +@@ -220,11 +220,11 @@ let rec output oz buf pos len = + oz.out_pos <- oz.out_pos + used_out; + oz.out_avail <- oz.out_avail - used_out; + oz.out_size <- Int32.add oz.out_size (Int32.of_int used_in); +- oz.out_crc <- Zlib.update_crc oz.out_crc buf pos used_in; ++ oz.out_crc <- Zlib.update_crc oz.out_crc (Bytes.to_string buf) pos used_in; + if used_in < len then output oz buf (pos + used_in) (len - used_in) + + let output_char oz c = +- oz.char_buffer.[0] <- c; ++ Bytes.set oz.char_buffer 0 c; + output oz oz.char_buffer 0 1 + + let output_byte oz b = +@@ -241,9 +241,9 @@ let flush oz = + let rec do_flush () = + (* If output buffer is full, flush it *) + if oz.out_avail = 0 then begin +- ignore (IO.really_output oz.out_chan oz.out_buffer 0 oz.out_pos); ++ ignore (IO.really_output oz.out_chan (Bytes.to_string oz.out_buffer) 0 oz.out_pos); + oz.out_pos <- 0; +- oz.out_avail <- String.length oz.out_buffer ++ oz.out_avail <- Bytes.length oz.out_buffer + end; + let (finished, _, used_out) = + Zlib.deflate oz.out_stream oz.out_buffer 0 0 +@@ -255,7 +255,7 @@ let flush oz = + do_flush(); + (* Final data flush *) + if oz.out_pos > 0 then +- ignore (IO.really_output oz.out_chan oz.out_buffer 0 oz.out_pos); ++ ignore (IO.really_output oz.out_chan (Bytes.to_string oz.out_buffer) 0 oz.out_pos); + (* Write CRC and size *) + write_int32 oz.out_chan oz.out_crc; + write_int32 oz.out_chan oz.out_size; +@@ -277,7 +277,7 @@ let output_io io = + let oz = open_out io in + IO.create_out + ~write:(output_char oz) +- ~output:(fun s o l -> output oz s o l; l) ++ ~output:(fun s o l -> output oz (Bytes.of_string s) o l; l) + ~flush:(fun () -> IO.flush io) + ~close:(fun () -> close_out oz) + diff --git a/net/mldonkey/patches/patch-src_utils_cdk_gzip.mli b/net/mldonkey/patches/patch-src_utils_cdk_gzip.mli new file mode 100644 index 00000000000..d04f5c4029d --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_gzip.mli @@ -0,0 +1,33 @@ +$NetBSD: patch-src_utils_cdk_gzip.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/gzip.mli~ 2010-11-07 15:01:40.000000000 +0000 ++++ src/utils/cdk/gzip.mli +@@ -35,7 +35,7 @@ val input_byte: in_channel -> int + (* Same as [Gzip.input_char], but return the 8-bit integer representing + the character. + Raise [End_of_file] if no more compressed data is available. *) +-val input: in_channel -> string -> int -> int -> int ++val input: in_channel -> bytes -> int -> int -> int + (* [input ic buf pos len] uncompresses up to [len] characters + from the given channel [ic], + storing them in string [buf], starting at character number [pos]. +@@ -51,7 +51,7 @@ val input: in_channel -> string -> int - + exactly [len] characters.) + Exception [Invalid_argument "Gzip.input"] is raised if + [pos] and [len] do not designate a valid substring of [buf]. *) +-val really_input: in_channel -> string -> int -> int -> unit ++val really_input: in_channel -> bytes -> int -> int -> unit + (* [really_input ic buf pos len] uncompresses [len] characters + from the given channel, storing them in + string [buf], starting at character number [pos]. +@@ -95,7 +95,7 @@ val output_char: 'a out_channel -> char + val output_byte: 'a out_channel -> int -> unit + (* Same as [Gzip.output_char], but the output character is given + by its code. The given integer is taken modulo 256. *) +-val output: 'a out_channel -> string -> int -> int -> unit ++val output: 'a out_channel -> bytes -> int -> int -> unit + (* [output oc buf pos len] compresses and writes [len] characters + from string [buf], starting at offset [pos], and writes the + compressed data to the channel [oc]. diff --git a/net/mldonkey/patches/patch-src_utils_cdk_string2.ml b/net/mldonkey/patches/patch-src_utils_cdk_string2.ml new file mode 100644 index 00000000000..e78d40d5f5e --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_string2.ml @@ -0,0 +1,102 @@ +$NetBSD: patch-src_utils_cdk_string2.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/string2.ml~ 2007-01-28 20:39:59.000000000 +0000 ++++ src/utils/cdk/string2.ml +@@ -163,11 +163,10 @@ let check_suffix s suffix = + len >= slen && String.sub s (len - slen) slen = suffix + + let upp_initial s = +- if String.length s > 0 then +- let s = String.copy s in +- s.[0] <- Char.uppercase s.[0]; s +- else +- s ++ let change i c = ++ if i = 0 then Char.uppercase_ascii c else c ++ in ++ String.mapi change s + + (* not optimal !*) + let rec subequal s1 pos1 s2 pos2 len = +@@ -195,7 +194,7 @@ let subcontains s sub = + + let of_char c = String.make 1 c + +- ++(* problematic with immutable strings + let resize s newlen = + let len = String.length s in + if len > newlen then String.sub s 0 newlen +@@ -203,13 +202,10 @@ let resize s newlen = + let str = String.create newlen in + String.blit s 0 str 0 len; + str ++*) + + let init len f = +- let s = String.create len in +- for i = 0 to len - 1 do +- s.[i] <- f i +- done; +- s ++ String.init len f + + let is_space c = c = ' ' || c = '\n' || c = '\r' || c = '\t' + +@@ -266,30 +262,24 @@ let starts_with s1 s2 = + let len2 = String.length s2 in + len2 <= len1 && strneql s1 s2 len2 + +-let replace_char s c1 c2 = +- for i = 0 to String.length s - 1 do +- if s.[i] == c1 then s.[i] <- c2 +- done ++let replace_char' s c1 c2 = ++ let change i c = ++ if c = c1 then c2 else c ++ in ++ String.mapi change s + + let stem s = +- let s = String.lowercase (String.copy s) in +- for i = 0 to String.length s - 1 do +- let c = s.[i] in ++ let munge i c = + match c with +- 'a'..'z' | '0' .. '9' -> () +- | _ -> s.[i] <- ' '; +- done; ++ 'a'..'z' | '0' .. '9' -> c ++ | _ -> ' ' ++ in ++ let s = String.mapi munge (String.lowercase_ascii s) in + split_simplify s ' ' + + let map f s = + let len = String.length s in +- if len = 0 then [||] else +- let v = f s.[0] in +- let array = Array.create len v in +- for i = 1 to len -1 do +- array.(i) <- f s.[i] +- done; +- array ++ Array.init len (fun i -> f s.[i]) + + let iteri f s = + let len = String.length s in +@@ -298,11 +288,7 @@ let iteri f s = + done + + let init n f = +- let s = String.create n in +- for i = 0 to n - 1 do +- s.[i] <- f i +- done; +- s ++ String.init n f + + let exists p s = + let l = String.length s in diff --git a/net/mldonkey/patches/patch-src_utils_cdk_string2.mli b/net/mldonkey/patches/patch-src_utils_cdk_string2.mli new file mode 100644 index 00000000000..6d0d54453d3 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_string2.mli @@ -0,0 +1,28 @@ +$NetBSD: patch-src_utils_cdk_string2.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/string2.mli~ 2007-01-28 20:39:59.000000000 +0000 ++++ src/utils/cdk/string2.mli +@@ -79,7 +79,9 @@ val subcontains : string -> string -> bo + val of_char : char -> string + (*d [of_char c] returns the string containing one [c]. *) + ++(* problematic with immutable strings + val resize : string -> int -> string ++*) + (*d [resize s len] returns a string of length [len] starting with [s]. *) + + val init : int -> (int -> char) -> string +@@ -93,7 +95,11 @@ external contains : string -> string -> + val starts_with : (* string *) string -> (* start *) string -> bool + + (* [replace_char s c1 c2] replaces char [c1] by char [c2] in [s] *) ++(* problematic with immutable strings + val replace_char : string -> char -> char -> unit ++*) ++(* [replace_char' s c1 c2] makes a new string with [c1] replaced with [c2] *) ++val replace_char' : string -> char -> char -> string + + (* [stem s] cuts the string [s] in small words, for indexation eg *) + val stem : string -> string list diff --git a/net/mldonkey/patches/patch-src_utils_cdk_tar.mlcpp b/net/mldonkey/patches/patch-src_utils_cdk_tar.mlcpp new file mode 100644 index 00000000000..83515d76e79 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_tar.mlcpp @@ -0,0 +1,112 @@ +$NetBSD: patch-src_utils_cdk_tar.mlcpp,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/tar.mlcpp.orig 2010-12-19 10:10:24.000000000 +0000 ++++ src/utils/cdk/tar.mlcpp +@@ -169,7 +169,7 @@ let align_at_header t = + | None -> () + | Some h -> + let entry_size = ((h.t_size/blocksize) + 1) * blocksize +- and buf = String.create blocksize ++ and buf = Bytes.create blocksize + and discarded = ref 0 in + while !discarded < entry_size do + let read = t.chan#input buf 0 blocksize in +@@ -177,7 +177,7 @@ let align_at_header t = + done; + t.last_header <- None + +-let empty_block = String.make blocksize '\000' ++let empty_block = Bytes.make blocksize '\000' + + let compute_chksum buf = + let chksum = ref 256 in (* 256 is the sum of 8 ' ' characters for the chksum field *) +@@ -206,8 +206,9 @@ let read_oldgnu_header header = + } + + let read_gnu_header t = +- let buf = String.create blocksize in ++ let buf = Bytes.create blocksize in + t.chan#really_input buf 0 blocksize; ++ let buf = Bytes.to_string buf in + { t_atime = extract_int32 buf 0 12; + t_ctime = extract_int32 buf 12 12; + t_offset = extract_int32 buf 24 12; +@@ -216,9 +217,10 @@ let read_gnu_header t = + + let read_header t = + align_at_header t; +- let buf = String.create blocksize in ++ let buf = Bytes.create blocksize in + t.chan#really_input buf 0 blocksize; + if buf = empty_block then raise End_of_file; ++ let buf = Bytes.to_string buf in + let head1 = { t_name = c_string buf 0; + t_mode = extract_num buf 100 8; + t_uid = extract_num buf 108 8; +@@ -264,14 +266,14 @@ let read_body t = + let header = get_header t in + t.last_header <- None; + if header.t_size = 0 then "" +- else let buf = String.create header.t_size in ++ else let buf = Bytes.create header.t_size in + t.chan#really_input buf 0 header.t_size; + let align = blocksize - (header.t_size mod blocksize) in + if align <> blocksize then begin +- let leftover = String.create blocksize in ++ let leftover = Bytes.create blocksize in + t.chan#really_input leftover 0 align + end; +- buf ++ Bytes.to_string buf + + let read_entry t = + let head = read_header t in +@@ -291,7 +293,7 @@ end + + #ifdef USE_BZIP2 + class bzout_chan o = object +- method output str pos len = Bzip2.output o str pos len ++ method output str pos len = Bzip2.output o (Bytes.to_string str) pos len + method flush () = Bzip2.flush o + method close () = Bzip2.close_out o + end +@@ -390,14 +392,14 @@ let write_gnu_header t buf = + + let output t head body = + let size = String.length body in +- let buf = String.copy empty_block in ++ let buf = Bytes.copy empty_block in + write_str buf 0 100 head.t_name; + write_num8 buf 100 head.t_mode; + write_num8 buf 108 head.t_uid; + write_num8 buf 116 head.t_gid; + write_num12 buf 124 size; + write_int32 buf 136 head.t_mtime; +- buf.[156] <- typeflag_to_char head.t_typeflag; ++ Bytes.set buf 156 (typeflag_to_char head.t_typeflag); + write_str buf 157 100 head.t_linkname; + write_magic buf 257 head.t_format; + write_str buf 265 32 head.t_uname; +@@ -407,16 +409,16 @@ let output t head body = + write_str buf 345 155 head.t_prefix; + if head.t_format = OLDGNU_FORMAT then + write_oldgnu_header head buf; +- let chksum = compute_chksum buf in ++ let chksum = compute_chksum (Bytes.to_string buf) in + write_padded_num buf 148 chksum; + t.ochan#output buf 0 blocksize; +- if head.t_format = GNU_FORMAT && isdigit buf.[156] then begin +- let buf2 = String.copy empty_block in ++ if head.t_format = GNU_FORMAT && isdigit (Bytes.get buf 156) then begin ++ let buf2 = Bytes.copy empty_block in + write_gnu_header head buf2; + t.ochan#output buf2 0 blocksize + end; + if size > 0 then begin +- t.ochan#output body 0 size; ++ t.ochan#output (Bytes.of_string body) 0 size; + let align = blocksize - (size mod blocksize) in + if align > 0 && align < blocksize then + t.ochan#output empty_block 0 align diff --git a/net/mldonkey/patches/patch-src_utils_cdk_unix2.ml b/net/mldonkey/patches/patch-src_utils_cdk_unix2.ml new file mode 100644 index 00000000000..9b08d154149 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_unix2.ml @@ -0,0 +1,38 @@ +$NetBSD: patch-src_utils_cdk_unix2.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/unix2.ml~ 2013-07-07 10:53:52.000000000 +0000 ++++ src/utils/cdk/unix2.ml +@@ -156,7 +156,7 @@ let copy oldname newname = + (try Unix.fchmod descr stats.Unix.LargeFile.st_perm + with e -> lprintf_nl "copy: failed to preserve mode")); + let buffer_len = 8192 in +- let buffer = String.create buffer_len in ++ let buffer = Bytes.create buffer_len in + let rec copy_file () = + let n = input ic buffer 0 buffer_len in + if n = 0 then () else begin +@@ -205,18 +205,18 @@ let rec remove_all_directory dirname = + Unix.rmdir dirname + + let random () = +- let s = String.create 7 in ++ let s = Bytes.create 7 in + for i = 0 to 6 do +- s.[i] <- char_of_int (97 + Random.int 26) ++ Bytes.set s i (char_of_int (97 + Random.int 26)) + done; +- s ++ Bytes.to_string s + + let can_write_to_directory dirname = + let temp_file = Filename.concat dirname "tmp_" ^ random () ^ "_mld.tmp" in + let check () = with_remove temp_file (fun _ -> + tryopen_openfile temp_file [O_WRONLY; O_CREAT] 0o600 (fun fd -> + let test_string = "mldonkey accesstest - this file can be deleted\n" in +- really_write fd test_string 0 (String.length test_string))) ++ really_write fd (Bytes.of_string test_string) 0 (String.length test_string))) + in + try + check () diff --git a/net/mldonkey/patches/patch-src_utils_cdk_zip.ml b/net/mldonkey/patches/patch-src_utils_cdk_zip.ml index 64a24625dd3..dff85120a66 100644 --- a/net/mldonkey/patches/patch-src_utils_cdk_zip.ml +++ b/net/mldonkey/patches/patch-src_utils_cdk_zip.ml @@ -1,8 +1,30 @@ -$NetBSD: patch-src_utils_cdk_zip.ml,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_cdk_zip.ml,v 1.2 2018/03/14 14:05:37 dholland Exp $ + +Compile with OCaml 4.03 (the exception Error block) +and again with 4.06 (the rest) -Compile with OCaml 4.03 --- src/utils/cdk/zip.ml.orig 2007-02-06 22:26:59.000000000 +0000 +++ src/utils/cdk/zip.ml +@@ -27,8 +27,8 @@ let read4_int ic = + if hw > max_int lsr 16 then raise (Error("", "", "32-bit data too large")); + lw lor (hw lsl 16) + let readstring ic n = +- let s = String.create n in +- really_input ic s 0 n; s ++ let s = Bytes.create n in ++ really_input ic s 0 n; Bytes.to_string s + + let write1 = output_byte + let write2 oc n = +@@ -40,7 +40,7 @@ let write4_int oc n = + write2 oc n; + write2 oc (n lsr 16) + let writestring oc s = +- output oc s 0 (String.length s) ++ output oc (Bytes.of_string s) 0 (String.length s) + + type compression_method = Stored | Deflated + @@ -72,8 +72,6 @@ type out_file = mutable of_entries: entry list; of_comment: string } @@ -12,3 +34,160 @@ Compile with OCaml 4.03 (* Return the position of the last occurrence of s1 in s2, or -1 if not found. *) +@@ -81,7 +79,7 @@ let strrstr pattern buf ofs len = + let rec search i j = + if i < ofs then -1 + else if j >= String.length pattern then i +- else if pattern.[j] = buf.[i + j] then search i (j+1) ++ else if pattern.[j] = Bytes.get buf (i + j) then search i (j+1) + else search (i-1) 0 + in search (ofs + len - String.length pattern) 0 + +@@ -116,7 +114,7 @@ let dostime_of_unixtime t = + (* Read end of central directory record *) + + let read_ecd filename ic = +- let buf = String.create 256 in ++ let buf = Bytes.create 256 in + let filelen = in_channel_length ic in + let rec find_ecd pos len = + (* On input, bytes 0 ... len - 1 of buf reflect what is at pos in ic *) +@@ -125,7 +123,7 @@ let read_ecd filename ic = + "end of central directory not found, not a ZIP file")); + let toread = min pos 128 in + (* Make room for "toread" extra bytes, and read them *) +- String.blit buf 0 buf toread (256 - toread); ++ Bytes.blit buf 0 buf toread (256 - toread); + let newpos = pos - toread in + seek_in ic newpos; + really_input ic buf 0 toread; +@@ -134,7 +132,7 @@ let read_ecd filename ic = + let ofs = strrstr "PK\005\006" buf 0 newlen in + if ofs < 0 || newlen < 22 || + (let comment_len = +- Char.code buf.[ofs + 20] lor (Char.code buf.[ofs + 21] lsl 8) in ++ Char.code (Bytes.get buf (ofs + 20)) lor (Char.code (Bytes.get buf (ofs + 21)) lsl 8) in + newpos + ofs + 22 + comment_len <> filelen) then + find_ecd newpos newlen + else +@@ -268,14 +266,14 @@ let goto_entry ifile e = + let read_entry ifile e = + try + goto_entry ifile e; +- let res = String.create e.uncompressed_size in ++ let res = Bytes.create e.uncompressed_size in + match e.methd with + Stored -> + if e.compressed_size <> e.uncompressed_size then + raise (Error(ifile.if_filename, e.filename, + "wrong size for stored entry")); + really_input ifile.if_channel res 0 e.uncompressed_size; +- res ++ Bytes.to_string res + | Deflated -> + let in_avail = ref e.compressed_size in + let out_pos = ref 0 in +@@ -283,25 +281,25 @@ let read_entry ifile e = + Zlib.uncompress ~header:false + (fun buf -> + let read = input ifile.if_channel buf 0 +- (min !in_avail (String.length buf)) in ++ (min !in_avail (Bytes.length buf)) in + in_avail := !in_avail - read; + read) + (fun buf len -> +- if !out_pos + len > String.length res then ++ if !out_pos + len > Bytes.length res then + raise (Error(ifile.if_filename, e.filename, + "wrong size for deflated entry (too much data)")); +- String.blit buf 0 res !out_pos len; ++ Bytes.blit buf 0 res !out_pos len; + out_pos := !out_pos + len) + with Zlib.Error(_, _) -> + raise (Error(ifile.if_filename, e.filename, "decompression error")) + end; +- if !out_pos <> String.length res then ++ if !out_pos <> Bytes.length res then + raise (Error(ifile.if_filename, e.filename, + "wrong size for deflated entry (not enough data)")); +- let crc = Zlib.update_crc Int32.zero res 0 (String.length res) in ++ let crc = Zlib.update_crc Int32.zero (Bytes.to_string res) 0 (Bytes.length res) in + if crc <> e.crc then + raise (Error(ifile.if_filename, e.filename, "CRC mismatch")); +- res ++ Bytes.to_string res + with End_of_file -> + raise (Error(ifile.if_filename, e.filename, "truncated data")) + +@@ -315,10 +313,10 @@ let copy_entry_to_channel ifile e oc = + if e.compressed_size <> e.uncompressed_size then + raise (Error(ifile.if_filename, e.filename, + "wrong size for stored entry")); +- let buf = String.create 4096 in ++ let buf = Bytes.create 4096 in + let rec copy n = + if n > 0 then begin +- let r = input ifile.if_channel buf 0 (min n (String.length buf)) in ++ let r = input ifile.if_channel buf 0 (min n (Bytes.length buf)) in + output oc buf 0 r; + copy (n - r) + end in +@@ -330,12 +328,12 @@ let copy_entry_to_channel ifile e oc = + Zlib.uncompress ~header:false + (fun buf -> + let read = input ifile.if_channel buf 0 +- (min !in_avail (String.length buf)) in ++ (min !in_avail (Bytes.length buf)) in + in_avail := !in_avail - read; + read) + (fun buf len -> + output oc buf 0 len; +- crc := Zlib.update_crc !crc buf 0 len) ++ crc := Zlib.update_crc !crc (Bytes.to_string buf) 0 len) + with Zlib.Error(_, _) -> + raise (Error(ifile.if_filename, e.filename, "decompression error")) + end; +@@ -475,7 +473,7 @@ let add_entry data ofile ?(extra = "") ? + let compr_size = + match level with + 0 -> +- output ofile.of_channel data 0 (String.length data); ++ output ofile.of_channel (Bytes.of_string data) 0 (String.length data); + String.length data + | _ -> + let in_pos = ref 0 in +@@ -484,7 +482,7 @@ let add_entry data ofile ?(extra = "") ? + Zlib.compress ~header:false + (fun buf -> + let n = min (String.length data - !in_pos) +- (String.length buf) in ++ (Bytes.length buf) in + String.blit data !in_pos buf 0 n; + in_pos := !in_pos + n; + n) +@@ -506,11 +504,11 @@ let copy_channel_to_entry ic ofile ?(ext + let (compr_size, uncompr_size) = + match level with + 0 -> +- let buf = String.create 4096 in ++ let buf = Bytes.create 4096 in + let rec copy sz = +- let r = input ic buf 0 (String.length buf) in ++ let r = input ic buf 0 (Bytes.length buf) in + if r = 0 then sz else begin +- crc := Zlib.update_crc !crc buf 0 r; ++ crc := Zlib.update_crc !crc (Bytes.to_string buf) 0 r; + output ofile.of_channel buf 0 r; + copy (sz + r) + end in +@@ -522,8 +520,8 @@ let copy_channel_to_entry ic ofile ?(ext + try + Zlib.compress ~header:false + (fun buf -> +- let r = input ic buf 0 (String.length buf) in +- crc := Zlib.update_crc !crc buf 0 r; ++ let r = input ic buf 0 (Bytes.length buf) in ++ crc := Zlib.update_crc !crc (Bytes.to_string buf) 0 r; + in_pos := !in_pos + r; + r) + (fun buf n -> diff --git a/net/mldonkey/patches/patch-src_utils_cdk_zlib.ml b/net/mldonkey/patches/patch-src_utils_cdk_zlib.ml new file mode 100644 index 00000000000..7fae540dd10 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_zlib.ml @@ -0,0 +1,47 @@ +$NetBSD: patch-src_utils_cdk_zlib.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/zlib.mli~ 2005-08-01 20:09:13.000000000 +0000 ++++ src/utils/cdk/zlib.mli +@@ -2,10 +2,10 @@ exception Error of string * string + + val compress: + ?level: int -> ?header: bool -> +- (string -> int) -> (string -> int -> unit) -> unit ++ (bytes -> int) -> (bytes -> int -> unit) -> unit + + val uncompress: +- ?header: bool -> (string -> int) -> (string -> int -> unit) -> unit ++ ?header: bool -> (bytes -> int) -> (bytes -> int -> unit) -> unit + + type stream + +@@ -17,14 +17,14 @@ type flush_command = + + external deflate_init: int -> bool -> stream = "camlzip_deflateInit" + external deflate: +- stream -> string -> int -> int -> string -> int -> int -> flush_command ++ stream -> bytes -> int -> int -> bytes -> int -> int -> flush_command + -> bool * int * int + = "camlzip_deflate_bytecode" "camlzip_deflate" + external deflate_end: stream -> unit = "camlzip_deflateEnd" + + external inflate_init: bool -> stream = "camlzip_inflateInit" + external inflate: +- stream -> string -> int -> int -> string -> int -> int -> flush_command ++ stream -> bytes -> int -> int -> bytes -> int -> int -> flush_command + -> bool * int * int + = "camlzip_inflate_bytecode" "camlzip_inflate" + external inflate_end: stream -> unit = "camlzip_inflateEnd" +@@ -33,8 +33,8 @@ external update_crc: int32 -> string -> + = "camlzip_update_crc32" + + val uncompress_string : string -> string +-val uncompress_string2 : string -> string +-val compress_string : ?level:int -> string -> string ++val uncompress_string2 : bytes -> bytes ++val compress_string : ?level:int -> bytes -> bytes + val gzip_string : ?level:int -> string -> string + + val zlib_version_num : unit -> string diff --git a/net/mldonkey/patches/patch-src_utils_cdk_zlib.mli b/net/mldonkey/patches/patch-src_utils_cdk_zlib.mli new file mode 100644 index 00000000000..fd0c6ec4f5e --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_cdk_zlib.mli @@ -0,0 +1,153 @@ +$NetBSD: patch-src_utils_cdk_zlib.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/cdk/zlib.ml~ 2007-02-11 13:15:49.000000000 +0000 ++++ src/utils/cdk/zlib.ml +@@ -13,14 +13,14 @@ type flush_command = + + external deflate_init: int -> bool -> stream = "camlzip_deflateInit" + external deflate: +- stream -> string -> int -> int -> string -> int -> int -> flush_command ++ stream -> bytes -> int -> int -> bytes -> int -> int -> flush_command + -> bool * int * int + = "camlzip_deflate_bytecode" "camlzip_deflate" + external deflate_end: stream -> unit = "camlzip_deflateEnd" + + external inflate_init: bool -> stream = "camlzip_inflateInit" + external inflate: +- stream -> string -> int -> int -> string -> int -> int -> flush_command ++ stream -> bytes -> int -> int -> bytes -> int -> int -> flush_command + -> bool * int * int + = "camlzip_inflate_bytecode" "camlzip_inflate" + external inflate_end: stream -> unit = "camlzip_inflateEnd" +@@ -40,8 +40,8 @@ let zlib_version_num () = + let buffer_size = 1024 + + let compress ?(level = 6) ?(header = true) refill flush = +- let inbuf = String.create buffer_size +- and outbuf = String.create buffer_size in ++ let inbuf = Bytes.create buffer_size ++ and outbuf = Bytes.create buffer_size in + let zs = deflate_init level header in + let rec compr inpos inavail = + if inavail = 0 then begin +@@ -63,15 +63,15 @@ let compress ?(level = 6) ?(header = tru + deflate_end zs + + let grow_buffer s = +- let s' = String.create (2 * String.length s) in +- String.blit s 0 s' 0 (String.length s); ++ let s' = Bytes.create (2 * Bytes.length s) in ++ Bytes.blit s 0 s' 0 (Bytes.length s); + s' + + let compress_string ?(level = 6) inbuf = + let zs = deflate_init level true in + let rec compr inpos outbuf outpos = +- let inavail = String.length inbuf - inpos in +- let outavail = String.length outbuf - outpos in ++ let inavail = Bytes.length inbuf - inpos in ++ let outavail = Bytes.length outbuf - outpos in + if outavail = 0 + then compr inpos (grow_buffer outbuf) outpos + else begin +@@ -79,11 +79,11 @@ let compress_string ?(level = 6) inbuf = + deflate zs inbuf inpos inavail outbuf outpos outavail + (if inavail = 0 then Z_FINISH else Z_NO_FLUSH) in + if finished then +- String.sub outbuf 0 (outpos + used_out) ++ Bytes.sub outbuf 0 (outpos + used_out) + else + compr (inpos + used_in) outbuf (outpos + used_out) + end in +- let res = compr 0 (String.create (String.length inbuf)) 0 in ++ let res = compr 0 (Bytes.create (Bytes.length inbuf)) 0 in + deflate_end zs; + res + +@@ -95,22 +95,22 @@ let gzip_string ?(level = 6) inbuf = + let out_crc = ref Int32.zero in + let rec compr inpos outbuf outpos = + let inavail = String.length inbuf - inpos in +- let outavail = String.length outbuf - outpos in ++ let outavail = Bytes.length outbuf - outpos in + if outavail = 0 + then compr inpos (grow_buffer outbuf) outpos + else begin + let (finished, used_in, used_out) = +- deflate zs inbuf inpos inavail outbuf outpos outavail ++ deflate zs (Bytes.of_string inbuf) inpos inavail outbuf outpos outavail + (if inavail = 0 then Z_FINISH else Z_NO_FLUSH) in + out_crc := update_crc !out_crc inbuf inpos used_in; + if finished then +- String.sub outbuf 0 (outpos + used_out) ++ Bytes.sub outbuf 0 (outpos + used_out) + else + compr (inpos + used_in) outbuf (outpos + used_out) + end in +- let res = compr 0 (String.create (String.length inbuf)) 0 in ++ let res = compr 0 (Bytes.create (String.length inbuf)) 0 in + deflate_end zs; +- let buf = Buffer.create (18 + String.length res) in ++ let buf = Buffer.create (18 + Bytes.length res) in + let write_int wbuf n = + Buffer.add_char wbuf (char_of_int n) + in +@@ -128,15 +128,15 @@ let gzip_string ?(level = 6) inbuf = + for i = 1 to 4 do write_int buf 0 done; + write_int buf 0; + write_int buf 0xFF; +- Buffer.add_string buf res; ++ Buffer.add_bytes buf res; + write_int32 buf !out_crc; + write_int32 buf (Int32.of_int (String.length inbuf)); + Buffer.contents buf + end + + let uncompress ?(header = true) refill flush = +- let inbuf = String.create buffer_size +- and outbuf = String.create buffer_size in ++ let inbuf = Bytes.create buffer_size ++ and outbuf = Bytes.create buffer_size in + let zs = inflate_init header in + let rec uncompr inpos inavail = + if inavail = 0 then begin +@@ -164,19 +164,19 @@ let uncompress ?(header = true) refill f + let uncompress_string2 inbuf = + let zs = inflate_init true in + let rec uncompr inpos outbuf outpos = +- let inavail = String.length inbuf - inpos in +- let outavail = String.length outbuf - outpos in ++ let inavail = Bytes.length inbuf - inpos in ++ let outavail = Bytes.length outbuf - outpos in + if outavail = 0 + then uncompr inpos (grow_buffer outbuf) outpos + else begin + let (finished, used_in, used_out) = + inflate zs inbuf inpos inavail outbuf outpos outavail Z_SYNC_FLUSH in + if finished then +- String.sub outbuf 0 (outpos + used_out) ++ Bytes.sub outbuf 0 (outpos + used_out) + else + uncompr (inpos + used_in) outbuf (outpos + used_out) + end in +- let res = uncompr 0 (String.create (2 * String.length inbuf)) 0 in ++ let res = uncompr 0 (Bytes.create (2 * Bytes.length inbuf)) 0 in + inflate_end zs; + res + +@@ -185,11 +185,11 @@ let uncompress_string s = + let pos = ref 0 in + let len = String.length s in + uncompress ~header: true (fun b -> +- let n = min (String.length b) (len - !pos) in ++ let n = min (Bytes.length b) (len - !pos) in + if n < 1 then 0 else begin + String.blit s !pos b 0 n; + pos := !pos + n; + n end +- ) (fun s len -> Buffer.add_string buf (String.sub s 0 len)); ++ ) (fun s len -> Buffer.add_bytes buf (Bytes.sub s 0 len)); + Buffer.contents buf + diff --git a/net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c b/net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c index 4706505abe8..7a68a46266d 100644 --- a/net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c +++ b/net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c @@ -1,6 +1,7 @@ -$NetBSD: patch-src_utils_cdk_zlibstubs.c,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_cdk_zlibstubs.c,v 1.2 2018/03/14 14:05:37 dholland Exp $ Compile with OCaml 4.03 + --- src/utils/cdk/zlibstubs.c.orig 2009-02-24 18:34:31.000000000 +0000 +++ src/utils/cdk/zlibstubs.c @@ -191,7 +191,7 @@ value camlzip_inflateEnd(value vzs) diff --git a/net/mldonkey/patches/patch-src_utils_extlib_IO.ml b/net/mldonkey/patches/patch-src_utils_extlib_IO.ml new file mode 100644 index 00000000000..28cfff40aad --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_extlib_IO.ml @@ -0,0 +1,117 @@ +$NetBSD: patch-src_utils_extlib_IO.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/extlib/IO.ml~ 2010-11-07 15:01:40.000000000 +0000 ++++ src/utils/extlib/IO.ml +@@ -20,7 +20,7 @@ + + type input = { + mutable in_read : unit -> char; +- mutable in_input : string -> int -> int -> int; ++ mutable in_input : bytes -> int -> int -> int; + mutable in_close : unit -> unit; + } + +@@ -62,7 +62,7 @@ let nread i n = + if n = 0 then + "" + else +- let s = String.create n in ++ let s = Bytes.create n in + let l = ref n in + let p = ref 0 in + try +@@ -72,11 +72,11 @@ let nread i n = + p := !p + r; + l := !l - r; + done; +- s ++ Bytes.to_string s + with + No_more_input as e -> + if !p = 0 then raise e; +- String.sub s 0 !p ++ Bytes.to_string (Bytes.sub s 0 !p) + + let really_output o s p l' = + let sl = String.length s in +@@ -92,7 +92,7 @@ let really_output o s p l' = + l' + + let input i s p l = +- let sl = String.length s in ++ let sl = Bytes.length s in + if p + l > sl || p < 0 || l < 0 then invalid_arg "IO.input"; + if l = 0 then + 0 +@@ -100,7 +100,7 @@ let input i s p l = + i.in_input s p l + + let really_input i s p l' = +- let sl = String.length s in ++ let sl = Bytes.length s in + if p + l' > sl || p < 0 || l' < 0 then invalid_arg "IO.really_input"; + let l = ref l' in + let p = ref p in +@@ -116,10 +116,10 @@ let really_nread i n = + if n < 0 then invalid_arg "IO.really_nread"; + if n = 0 then "" + else +- let s = String.create n ++ let s = Bytes.create n + in + ignore(really_input i s 0 n); +- s ++ Bytes.to_string s + + let close_in i = + let f _ = raise Input_closed in +@@ -173,11 +173,11 @@ let read_all i = + loop() + with + No_more_input -> +- let buf = String.create !pos in ++ let buf = Bytes.create !pos in + List.iter (fun (s,p) -> + String.unsafe_blit s 0 buf p (String.length s) + ) !str; +- buf ++ Bytes.to_string buf + + let pos_in i = + let p = ref 0 in +@@ -267,7 +267,7 @@ let input_channel ch = + let output_channel ch = + { + out_write = (fun c -> output_char ch c); +- out_output = (fun s p l -> Pervasives.output ch s p l; l); ++ out_output = (fun s p l -> Pervasives.output ch (Bytes.of_string s) p l; l); + out_close = (fun () -> Pervasives.close_out ch); + out_flush = (fun () -> Pervasives.flush ch); + } +@@ -708,11 +708,11 @@ class out_chars ch = + end + + let from_in_channel ch = +- let cbuf = String.create 1 in ++ let cbuf = Bytes.create 1 in + let read() = + try + if ch#input cbuf 0 1 = 0 then raise Sys_blocked_io; +- String.unsafe_get cbuf 0 ++ Bytes.unsafe_get cbuf 0 + with + End_of_file -> raise No_more_input + in +@@ -725,9 +725,8 @@ let from_in_channel ch = + ~close:ch#close_in + + let from_out_channel ch = +- let cbuf = String.create 1 in + let write c = +- String.unsafe_set cbuf 0 c; ++ let cbuf = String.make 1 c in + if ch#output cbuf 0 1 = 0 then raise Sys_blocked_io; + in + let output s p l = diff --git a/net/mldonkey/patches/patch-src_utils_extlib_IO.mli b/net/mldonkey/patches/patch-src_utils_extlib_IO.mli new file mode 100644 index 00000000000..04d1e203fa5 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_extlib_IO.mli @@ -0,0 +1,41 @@ +$NetBSD: patch-src_utils_extlib_IO.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/extlib/IO.mli~ 2010-11-07 15:01:40.000000000 +0000 ++++ src/utils/extlib/IO.mli +@@ -59,14 +59,14 @@ val really_nread : input -> int -> strin + from the input. Raises [No_more_input] if at least [n] characters are + not available. Raises [Invalid_argument] if [n] < 0. *) + +-val input : input -> string -> int -> int -> int ++val input : input -> bytes -> int -> int -> int + (** [input i s p l] reads up to [l] characters from the given input, storing + them in string [s], starting at character number [p]. It returns the actual + number of characters read or raise [No_more_input] if no character can be + read. It will raise [Invalid_argument] if [p] and [l] do not designate a + valid substring of [s]. *) + +-val really_input : input -> string -> int -> int -> int ++val really_input : input -> bytes -> int -> int -> int + (** [really_input i s p l] reads exactly [l] characters from the given input, + storing them in the string [s], starting at position [p]. For consistency with + {!IO.input} it returns [l]. Raises [No_more_input] if at [l] characters are +@@ -126,7 +126,7 @@ val output_enum : unit -> char Enum.t ou + + val create_in : + read:(unit -> char) -> +- input:(string -> int -> int -> int) -> close:(unit -> unit) -> input ++ input:(bytes -> int -> int -> int) -> close:(unit -> unit) -> input + (** Fully create an input by giving all the needed functions. *) + + val create_out : +@@ -293,7 +293,7 @@ val drop_bits : in_bits -> unit + + class in_channel : input -> + object +- method input : string -> int -> int -> int ++ method input : bytes -> int -> int -> int + method close_in : unit -> unit + end + diff --git a/net/mldonkey/patches/patch-src_utils_lib_fst_hash.c b/net/mldonkey/patches/patch-src_utils_lib_fst_hash.c index efb2b2144cd..85633b92b29 100644 --- a/net/mldonkey/patches/patch-src_utils_lib_fst_hash.c +++ b/net/mldonkey/patches/patch-src_utils_lib_fst_hash.c @@ -1,6 +1,8 @@ -$NetBSD: patch-src_utils_lib_fst_hash.c,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_lib_fst_hash.c,v 1.2 2018/03/14 14:05:37 dholland Exp $ + +Compile with OCaml 4.03 (int64 -> int64_t) +and with 4.06 (string -> bytes) -Compile with OCaml 4.03 --- src/utils/lib/fst_hash.c.orig 2005-12-10 19:44:28.000000000 +0000 +++ src/utils/lib/fst_hash.c @@ -197,7 +197,7 @@ unsigned short fst_hash_checksum (unsign @@ -21,3 +23,20 @@ Compile with OCaml 4.03 { unsigned char * buf = file; size_t len = filesize; +@@ -323,14 +323,14 @@ void fst_hash_string (unsigned char *fth + + value fst_hash_file_ml(value digest, value filename, value filesize) + { +- if(fst_hash_file(String_val(digest), String_val(filename), ++ if(fst_hash_file(bytes_val(digest), String_val(filename), + Int64_val(filesize))) return Val_unit; + failwith("Exception during FST computation"); + } + + value fst_hash_string_ml(value digest, value s, value size) + { +- fst_hash_string(String_val(digest), String_val(s), Int_val(size)); ++ fst_hash_string(Bytes_val(digest), String_val(s), Int_val(size)); + return Val_unit; + } + diff --git a/net/mldonkey/patches/patch-src_utils_lib_md4.ml b/net/mldonkey/patches/patch-src_utils_lib_md4.ml new file mode 100644 index 00000000000..96f99a1be70 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_md4.ml @@ -0,0 +1,410 @@ +$NetBSD: patch-src_utils_lib_md4.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/md4.ml~ 2006-02-02 00:33:28.000000000 +0000 ++++ src/utils/lib/md4.ml +@@ -46,16 +46,16 @@ module Base16 = struct + else Char.chr (Char.code '0' + x) + + let to_string hash_length s = +- let p = String.create (hash_length * 2) in ++ let p = Bytes.create (hash_length * 2) in + for i = 0 to hash_length - 1 do + let c = s.[i] in + let n = int_of_char c in + let i0 = (n/16) land 15 in + let i1 = n land 15 in +- p.[2 * i] <- hexa_digit i0; +- p.[2 * i+1] <- hexa_digit i1; ++ Bytes.set p (2 * i) (hexa_digit i0); ++ Bytes.set p (2 * i+1) (hexa_digit i1); + done; +- p ++ Bytes.to_string p + + let hexa_digit_case upper x = + if x >= 10 then Char.chr (Char.code ( +@@ -63,16 +63,16 @@ module Base16 = struct + else Char.chr (Char.code '0' + x) + + let to_string_case upper hash_length s = +- let p = String.create (hash_length * 2) in ++ let p = Bytes.create (hash_length * 2) in + for i = 0 to hash_length - 1 do + let c = s.[i] in + let n = int_of_char c in + let i0 = (n/16) land 15 in + let i1 = n land 15 in +- p.[2 * i] <- hexa_digit_case upper i0; +- p.[2 * i+1] <- hexa_digit_case upper i1; ++ Bytes.set p (2 * i) (hexa_digit_case upper i0); ++ Bytes.set p (2 * i+1) (hexa_digit_case upper i1); + done; +- p ++ Bytes.to_string p + + let digit_hexa c = + let i = int_of_char c in +@@ -83,13 +83,13 @@ module Base16 = struct + + let of_string hash_length s = + assert (String.length s = hash_length*2); +- let p = String.create hash_length in ++ let p = Bytes.create hash_length in + for i = 0 to hash_length - 1 do + let c0 = s.[2*i] in + let c1 = s.[2*i+1] in +- p.[i] <- char_of_int ((16 * digit_hexa c0) + digit_hexa c1); ++ Bytes.set p i (char_of_int ((16 * digit_hexa c0) + digit_hexa c1)); + done; +- p ++ Bytes.to_string p + + end + +@@ -108,7 +108,7 @@ module Base32 = struct + let of_string hash_length r = + let len = String.length r in + assert (len = (hash_length * 8 + 4)/5); +- let s = String.make hash_length '\000' in ++ let s = Bytes.make hash_length '\000' in + for i = 0 to len - 1 do + let pos = i * 5 in + let byte = pos / 8 in +@@ -116,20 +116,20 @@ module Base32 = struct + let c = int5_of_char r.[i] in + if bit < 3 then + let x = c lsl (3-bit) in +- s.[byte] <- char_of_int (int_of_char s.[byte] lor x); ++ Bytes.set s byte (char_of_int (int_of_char (Bytes.get s byte) lor x)); + else + let x = (c lsr (bit - 3)) land 0xff in +- s.[byte] <- char_of_int (int_of_char s.[byte] lor x); ++ Bytes.set s byte (char_of_int (int_of_char (Bytes.get s byte) lor x)); + if byte+1 < hash_length then + let y = (c lsl (11 - bit)) land 0xff in +- s.[byte+1] <- char_of_int (int_of_char s.[byte+1] lor y); ++ Bytes.set s (byte+1) (char_of_int (int_of_char (Bytes.get s (byte+1)) lor y)); + done; +- s ++ Bytes.to_string s + + let to_string hash_length s = + assert (String.length s = hash_length); + let len = (hash_length * 8 + 4)/5 in +- let r = String.create len in ++ let r = Bytes.create len in + for i = 0 to len - 1 do + let pos = i * 5 in + let byte = pos / 8 in +@@ -137,16 +137,16 @@ module Base32 = struct + if bit < 3 then + let x = int_of_char s.[byte] in + let c = (x lsr (3 - bit)) land 0x1f in +- r.[i] <- char_of_int5 c ++ Bytes.set r i (char_of_int5 c) + else + let x = int_of_char s.[byte] in + let y = if byte + 1 = hash_length then 0 else + int_of_char s.[byte+1] in + let x = (x lsl 8) + y in + let c = (x lsr (11 - bit)) land 0x1f in +- r.[i] <- char_of_int5 c ++ Bytes.set r i (char_of_int5 c) + done; +- r ++ Bytes.to_string r + + let char_of_int5 upper n = + char_of_int (if n < 26 then (if upper then 65 else 97)+n else +@@ -155,7 +155,7 @@ module Base32 = struct + let to_string_case upper hash_length s = + assert (String.length s = hash_length); + let len = (hash_length * 8 + 4)/5 in +- let r = String.create len in ++ let r = Bytes.create len in + for i = 0 to len - 1 do + let pos = i * 5 in + let byte = pos / 8 in +@@ -163,16 +163,16 @@ module Base32 = struct + if bit < 3 then + let x = int_of_char s.[byte] in + let c = (x lsr (3 - bit)) land 0x1f in +- r.[i] <- char_of_int5 upper c ++ Bytes.set r i (char_of_int5 upper c) + else + let x = int_of_char s.[byte] in + let y = if byte + 1 = hash_length then 0 else + int_of_char s.[byte+1] in + let x = (x lsl 8) + y in + let c = (x lsr (11 - bit)) land 0x1f in +- r.[i] <- char_of_int5 upper c ++ Bytes.set r i (char_of_int5 upper c) + done; +- r ++ Bytes.to_string r + + end + +@@ -182,9 +182,9 @@ module Base6427 = struct + let _ = assert (String.length base64tbl = 64) + + let to_string _ hashbin = +- let hash64 = String.create 30 in ++ let hash64 = Bytes.create 30 in + let hashbin n = int_of_char hashbin.[n] in +- hash64.[0] <- '='; ++ Bytes.set hash64 0 '='; + let j = ref 1 in + for i = 0 to 6 do + let tmp = if i < 6 then +@@ -194,24 +194,24 @@ module Base6427 = struct + ((hashbin(3*i)) lsl 16) lor ((hashbin(3*i+1)) lsl 8) + in + for k = 0 to 3 do +- hash64.[!j] <- base64tbl.[(tmp lsr ((3- k)*6)) land 0x3f]; ++ Bytes.set hash64 !j (base64tbl.[(tmp lsr ((3- k)*6)) land 0x3f]); + incr j + done + done; +- hash64.[!j-1] <- '='; +- String.sub hash64 0 !j ++ Bytes.set hash64 (!j-1) '='; ++ Bytes.to_string (Bytes.sub hash64 0 !j) + +- let base64tbl_inv = String.create 126 ++ let base64tbl_inv = Bytes.create 126 + let _ = + for i = 0 to 63 do +- base64tbl_inv.[int_of_char base64tbl.[i]] <- char_of_int i ++ Bytes.set base64tbl_inv (int_of_char base64tbl.[i]) (char_of_int i) + done + + let of_string _ hash64 = +- let hashbin = String.make 20 '\000' in ++ let hashbin = Bytes.make 20 '\000' in + let hash64 n = + let c = hash64.[n] in +- int_of_char base64tbl_inv.[int_of_char c] ++ int_of_char (Bytes.get base64tbl_inv (int_of_char c)) + in + let j = ref 0 in + for i = 0 to 6 do +@@ -220,9 +220,9 @@ module Base6427 = struct + for k = 0 to 3 do + tmp := (!tmp lsl 6) lor (hash64 (i*4+k+1)) + done; +- hashbin.[!j] <- char_of_int ((!tmp lsr 16) land 0xff); +- hashbin.[!j+1] <- char_of_int ((!tmp lsr 8) land 0xff); +- hashbin.[!j+2] <- char_of_int ((!tmp lsr 0) land 0xff); ++ Bytes.set hashbin (!j) (char_of_int ((!tmp lsr 16) land 0xff)); ++ Bytes.set hashbin (!j+1) (char_of_int ((!tmp lsr 8) land 0xff)); ++ Bytes.set hashbin (!j+2) (char_of_int ((!tmp lsr 0) land 0xff)); + j := !j + 3; + else + let tmp = ref 0 in +@@ -230,11 +230,11 @@ module Base6427 = struct + tmp := (!tmp lsl 6) lor (hash64 (i*4+k+1)) + done; + tmp := (!tmp lsl 6); +- hashbin.[!j] <- char_of_int ((!tmp lsr 16) land 0xff); +- hashbin.[!j+1] <- char_of_int ((!tmp lsr 8) land 0xff); ++ Bytes.set hashbin (!j) (char_of_int ((!tmp lsr 16) land 0xff)); ++ Bytes.set hashbin (!j+1) (char_of_int ((!tmp lsr 8) land 0xff)); + j := !j + 2; + done; +- hashbin ++ Bytes.to_string hashbin + + let to_string_case _ = to_string + end +@@ -265,7 +265,7 @@ module type Digest = sig + + val string : string -> t + (* val file : string -> t *) +- val create : unit -> t ++ val create : unit -> bytes + val direct_of_string : string -> t + val direct_to_string : t -> string + val random : unit -> t +@@ -274,7 +274,7 @@ module type Digest = sig + + val option : t Options.option_class + +- val xor : t -> t -> t ++ val xor : t -> t -> bytes + val value_to_hash : Options.option_value -> t + val hash_to_value : t -> Options.option_value + +@@ -292,12 +292,12 @@ module Make(M: sig + val hash_name : string + + (* [unsafe_string digest string string_len] *) +- val unsafe_string : string -> string -> int -> unit ++ val unsafe_string : bytes -> string -> int -> unit + + (* [unsafe_file digest filename filesize] *) +- val unsafe_file : string -> string -> int64 -> unit ++ val unsafe_file : bytes -> string -> int64 -> unit + (* [unsafe_string digest file_fd offset len] *) +- val digest_subfile : string -> Unix.file_descr -> int64 -> int64 -> unit ++ val digest_subfile : bytes -> Unix.file_descr -> int64 -> int64 -> unit + + module Base : Base + end) = struct +@@ -315,44 +315,44 @@ module Make(M: sig + + let string s = + let len = String.length s in +- let digest = String.create hash_length in ++ let digest = Bytes.create hash_length in + unsafe_string digest s len; +- digest ++ Bytes.to_string digest + + let to_bits s = + let len = String.length s in +- let digest = String.create (8*len) in ++ let digest = Bytes.create (8*len) in + for i = 0 to len-1 do + let c = int_of_char s.[i] in + for j = 7 downto 0 do +- digest.[i*8 + (7-j)] <- ++ Bytes.set digest (i*8 + (7-j)) + (if c land (1 lsl j) <> 0 then '1' else '0') + + done + done; +- digest ++ Bytes.to_string digest + +- external xor_c : t -> t -> t -> unit = "md4_xor" "noalloc" ++ external xor_c : t -> t -> bytes -> unit = "md4_xor" [@@noalloc] + + let xor m1 m2 = +- let m3 = String.create hash_length in ++ let m3 = Bytes.create hash_length in + xor_c m1 m2 m3; + m3 + + let file s = +- let digest = String.create hash_length in ++ let digest = Bytes.create hash_length in + let file_size = Unix32.getsize s in + unsafe_file digest s file_size; +- digest ++ Bytes.to_string digest + + let digest_subfile fd pos len = +- let digest = String.create hash_length in ++ let digest = Bytes.create hash_length in + Unix32.apply_on_chunk fd pos len + (fun fd pos -> + digest_subfile digest fd pos len); +- digest ++ Bytes.to_string digest + +- let create () = String.create hash_length ++ let create () = Bytes.create hash_length + + let direct_to_string s = s + let direct_of_string s = s +@@ -360,9 +360,9 @@ module Make(M: sig + let random () = + let s = create () in + for i = 0 to hash_length - 1 do +- s.[i] <- char_of_int (Random.int 256) ++ Bytes.set s i (char_of_int (Random.int 256)) + done; +- s ++ Bytes.to_string s + + let of_string = Base.of_string hash_length + let to_string = Base.to_string hash_length +@@ -397,10 +397,14 @@ module Make(M: sig + module Md4 = Make(struct + let hash_length = 16 + let hash_name = "Md4" +- +- external unsafe_string : string -> string -> int -> unit = "md4_unsafe_string" +- external unsafe_file : string -> string -> int64 -> unit = "md4_unsafe_file" +- external digest_subfile : string -> Unix.file_descr -> int64 -> int64 -> unit = ++ ++(* ++ * XXX the first arg was string and I can't find the implementation; hope ++ * this is safe enough ++ *) ++ external unsafe_string : bytes -> string -> int -> unit = "md4_unsafe_string" ++ external unsafe_file : bytes -> string -> int64 -> unit = "md4_unsafe_file" ++ external digest_subfile : bytes -> Unix.file_descr -> int64 -> int64 -> unit = + "md4_unsafe64_fd" + + module Base = Base16 +@@ -410,9 +414,13 @@ module Md5 = Make(struct + let hash_length = 16 + let hash_name = "Md5" + +- external unsafe_string : string -> string -> int -> unit = "md5_unsafe_string" +- external unsafe_file : string -> string -> int64 -> unit = "md5_unsafe_file" +- external digest_subfile : string -> Unix.file_descr -> int64 -> int64 -> unit = ++(* ++ * XXX the first arg was string and I can't find the implementation; hope ++ * this is safe enough ++ *) ++ external unsafe_string : bytes -> string -> int -> unit = "md5_unsafe_string" ++ external unsafe_file : bytes -> string -> int64 -> unit = "md5_unsafe_file" ++ external digest_subfile : bytes -> Unix.file_descr -> int64 -> int64 -> unit = + "md5_unsafe64_fd" + + module Base = Base16 +@@ -422,9 +430,13 @@ module PreSha1 = Make(struct + let hash_length = 20 + let hash_name = "Sha1" + +- external unsafe_string : string -> string -> int -> unit = "sha1_unsafe_string" +- external unsafe_file : string -> string -> int64 -> unit = "sha1_unsafe_file" +- external digest_subfile : string -> Unix.file_descr -> int64 -> int64 -> unit = ++(* ++ * XXX the first arg was string and I can't find the implementation; hope ++ * this is safe enough ++ *) ++ external unsafe_string : bytes -> string -> int -> unit = "sha1_unsafe_string" ++ external unsafe_file : bytes -> string -> int64 -> unit = "sha1_unsafe_file" ++ external digest_subfile : bytes -> Unix.file_descr -> int64 -> int64 -> unit = + "sha1_unsafe64_fd" + + module Base = Base32 +@@ -465,7 +477,7 @@ module Tiger = Make(struct + let hash_length = 24 + let hash_name = "Tiger" + +- external unsafe_string : string -> string -> int -> unit = ++ external unsafe_string : bytes -> string -> int -> unit = + "tiger_unsafe_string" + + let unsafe_file digest filename = +@@ -482,8 +494,8 @@ module PreTigerTree = Make(struct + let hash_length = 24 + let hash_name = "TigerTree" + +- external unsafe_string : string -> string -> int -> unit = "tigertree_unsafe_string" +- external digest_subfile : string -> Unix.file_descr -> int64 -> int64 -> unit = ++ external unsafe_string : bytes -> string -> int -> unit = "tigertree_unsafe_string" ++ external digest_subfile : bytes -> Unix.file_descr -> int64 -> int64 -> unit = + "tigertree_unsafe64_fd" + + let unsafe_file digest filename file_size = +@@ -531,10 +543,10 @@ module PreMd5Ext = Make(struct + let hash_length = 20 + let hash_name = "Md5Ext" + +- external unsafe_string : string -> string -> int -> unit = ++ external unsafe_string : bytes -> string -> int -> unit = + "fst_hash_string_ml" + +- external unsafe_file : string -> string -> int64 -> unit = "fst_hash_file_ml" ++ external unsafe_file : bytes -> string -> int64 -> unit = "fst_hash_file_ml" + let digest_subfile _ _ _ _ = + failwith "Md5Ext.digest_subfile not implemented" + diff --git a/net/mldonkey/patches/patch-src_utils_lib_md4.mli b/net/mldonkey/patches/patch-src_utils_lib_md4.mli new file mode 100644 index 00000000000..6c5ac34b53d --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_md4.mli @@ -0,0 +1,24 @@ +$NetBSD: patch-src_utils_lib_md4.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/md4.mli~ 2004-08-04 16:59:27.000000000 +0000 ++++ src/utils/lib/md4.mli +@@ -49,7 +49,7 @@ module type Digest = sig + + val string : string -> t + (* val file : string -> t *) +- val create : unit -> t ++ val create : unit -> bytes + val direct_of_string : string -> t + val direct_to_string : t -> string + val random : unit -> t +@@ -58,7 +58,7 @@ module type Digest = sig + + val option : t Options.option_class + +- val xor : t -> t -> t ++ val xor : t -> t -> bytes + val value_to_hash : Options.option_value -> t + val hash_to_value : t -> Options.option_value + diff --git a/net/mldonkey/patches/patch-src_utils_lib_misc.ml b/net/mldonkey/patches/patch-src_utils_lib_misc.ml new file mode 100644 index 00000000000..2841012396d --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_misc.ml @@ -0,0 +1,22 @@ +$NetBSD: patch-src_utils_lib_misc.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/misc.ml~ 2008-03-31 07:58:17.000000000 +0000 ++++ src/utils/lib/misc.ml +@@ -92,13 +92,13 @@ let zip_create zipfile files = + let gz_extract filename = + let file = ref "" in + try +- let buffer = String.create 4096 in ++ let buffer = Bytes.create 4096 in + let file_out = Filename2.temp_file "arch_" ".tmp" in + file := file_out; + Unix2.tryopen_read_gzip filename (fun ic -> + Unix2.tryopen_write_bin file_out (fun oc -> + let rec decompress () = +- let n = Gzip.input ic buffer 0 (String.length buffer) in ++ let n = Gzip.input ic buffer 0 (Bytes.length buffer) in + if n = 0 then () + else + begin diff --git a/net/mldonkey/patches/patch-src_utils_lib_misc2.mlcpp b/net/mldonkey/patches/patch-src_utils_lib_misc2.mlcpp new file mode 100644 index 00000000000..aabd0344049 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_misc2.mlcpp @@ -0,0 +1,23 @@ +$NetBSD: patch-src_utils_lib_misc2.mlcpp,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/misc2.mlcpp~ 2008-03-31 07:58:17.000000000 +0000 ++++ src/utils/lib/misc2.mlcpp +@@ -26,14 +26,14 @@ let bz2_extract filename = + else begin + let file = ref "" in + try +- let buffer = String.create 4096 in ++ let buffer = Bytes.create 4096 in + let file_out = Filename2.temp_file "arch_" ".tmp" in + file := file_out; + let ic = Bzip2.open_in filename + in + let oc = open_out_bin file_out in + let rec decompress () = +- let n = Bzip2.input ic buffer 0 (String.length buffer) in ++ let n = Bzip2.input ic buffer 0 (Bytes.length buffer) in + if n = 0 then () + else + begin diff --git a/net/mldonkey/patches/patch-src_utils_lib_options.ml4 b/net/mldonkey/patches/patch-src_utils_lib_options.ml4 index 94f30d2acbe..de8b3e24898 100644 --- a/net/mldonkey/patches/patch-src_utils_lib_options.ml4 +++ b/net/mldonkey/patches/patch-src_utils_lib_options.ml4 @@ -1,17 +1,30 @@ -$NetBSD: patch-src_utils_lib_options.ml4,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_lib_options.ml4,v 1.2 2018/03/14 14:05:37 dholland Exp $ -Compile with OCaml 4.03 ---- src/utils/lib/options.ml4.orig 2013-07-07 10:56:43.000000000 +0000 +Compile with OCaml 4.03 (is_printable changes) +and 4.06 (string/bytes changes) + +--- src/utils/lib/options.ml4.dist 2013-07-07 10:56:43.000000000 +0000 +++ src/utils/lib/options.ml4 -@@ -332,7 +332,6 @@ let exit_exn = Exit +@@ -208,7 +208,7 @@ and parse_option = parser + | [< 'Int i >] -> IntValue i + | [< 'Float f >] -> FloatValue f + | [< 'Kwd "@"; 'Int i; v = parse_once_value i >] -> OnceValue v +-| [< 'Char c >] -> StringValue (let s = String.create 1 in s.[0] <- c; s) ++| [< 'Char c >] -> StringValue (String.make 1 c) + | [< 'Kwd "["; v = parse_list [] >] -> List v + | [< 'Kwd "("; v = parse_list [] >] -> List v + +@@ -332,8 +332,7 @@ let exit_exn = Exit let unsafe_get = String.unsafe_get -external is_printable : char -> bool = "caml_is_printable" - let unsafe_set = String.unsafe_set +-let unsafe_set = String.unsafe_set ++let unsafe_set = Bytes.unsafe_set let escaped s = -@@ -343,7 +342,7 @@ let escaped s = + let n = ref 0 in +@@ -343,31 +342,22 @@ let escaped s = (match unsafe_get s i with '"' | '\\' -> 2 | '\n' | '\t' -> 1 @@ -20,7 +33,11 @@ Compile with OCaml 4.03 done; if !n = String.length s then s else -@@ -354,16 +353,7 @@ let escaped s = +- let s' = String.create !n in ++ let s' = Bytes.create !n in + n := 0; + for i = 0 to String.length s - 1 do + begin match unsafe_get s i with '"' | '\\' as c -> unsafe_set s' !n '\\'; incr n; unsafe_set s' !n c | '\n' | '\t' as c -> unsafe_set s' !n c | c -> @@ -38,3 +55,8 @@ Compile with OCaml 4.03 end; incr n done; +- s' ++ Bytes.to_string s' + + let safe_string s = + if s = "" then "\"\"" diff --git a/net/mldonkey/patches/patch-src_utils_lib_os_stubs.h b/net/mldonkey/patches/patch-src_utils_lib_os_stubs.h index be352f7280b..edf0f1e1f4f 100644 --- a/net/mldonkey/patches/patch-src_utils_lib_os_stubs.h +++ b/net/mldonkey/patches/patch-src_utils_lib_os_stubs.h @@ -1,6 +1,7 @@ -$NetBSD: patch-src_utils_lib_os_stubs.h,v 1.1 2016/08/15 15:48:19 jaapb Exp $ +$NetBSD: patch-src_utils_lib_os_stubs.h,v 1.2 2018/03/14 14:05:37 dholland Exp $ Compile with OCaml 4.03 + --- src/utils/lib/os_stubs.h.orig 2010-08-01 14:05:29.000000000 +0000 +++ src/utils/lib/os_stubs.h @@ -155,8 +155,8 @@ extern OFF_T os_lseek(OS_FD fd, OFF_T po diff --git a/net/mldonkey/patches/patch-src_utils_lib_syslog.ml b/net/mldonkey/patches/patch-src_utils_lib_syslog.ml new file mode 100644 index 00000000000..66fc207c519 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_syslog.ml @@ -0,0 +1,47 @@ +$NetBSD: patch-src_utils_lib_syslog.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/syslog.ml~ 2007-06-17 01:24:28.000000000 +0000 ++++ src/utils/lib/syslog.ml +@@ -44,7 +44,7 @@ type level = [ `LOG_EMERG | `LOG_ALERT | + exception Syslog_error of string + + let facility_of_string s = +- match String.lowercase s with ++ match String.lowercase_ascii s with + "kern" -> `LOG_KERN + | "user" -> `LOG_USER + | "mail" -> `LOG_MAIL +@@ -194,7 +194,7 @@ let protected_write loginfo str = + in + let prev = Sys.signal Sys.sigpipe (Sys.Signal_handle fallback) in + try +- ignore (write loginfo.fd str 0 (String.length str)); ++ ignore (write loginfo.fd str 0 (Bytes.length str)); + Sys.set_signal Sys.sigpipe prev + with Unix_error (_, _, _) -> + (* on error, attempt to reconnect *) +@@ -220,16 +220,16 @@ let syslog ?fac loginfo lev str = + if String.length loginfo.tag > 0 then + Buffer.add_string msg ": "; + Buffer.add_string msg str; +- let realmsg = ref (Buffer.contents msg) in +- if String.length !realmsg > 1024 then begin +- realmsg := String.sub !realmsg 0 1024; +- String.blit "<truncated>" 0 !realmsg 1012 11 ++ let realmsg = ref (Bytes.of_string (Buffer.contents msg)) in ++ if Bytes.length !realmsg > 1024 then begin ++ realmsg := Bytes.sub !realmsg 0 1024; ++ Bytes.blit (Bytes.of_string "<truncated>") 0 !realmsg 1012 11 + end; + protected_write loginfo !realmsg; + if List.mem `LOG_PERROR loginfo.flags then begin + try +- ignore (Unix.write Unix.stderr !realmsg 0 (String.length !realmsg)); +- ignore (Unix.write Unix.stderr "\n" 0 1) ++ ignore (Unix.write Unix.stderr !realmsg 0 (Bytes.length !realmsg)); ++ ignore (Unix.write Unix.stderr (Bytes.of_string "\n") 0 1) + with _ -> () + end + diff --git a/net/mldonkey/patches/patch-src_utils_lib_tiger.c b/net/mldonkey/patches/patch-src_utils_lib_tiger.c new file mode 100644 index 00000000000..f043cc8e057 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_tiger.c @@ -0,0 +1,24 @@ +$NetBSD: patch-src_utils_lib_tiger.c,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/tiger.c~ 2012-06-24 07:59:41.000000000 +0000 ++++ src/utils/lib/tiger.c +@@ -827,7 +827,7 @@ OFF_T tiger_block_size(OFF_T len) + + value tigertree_unsafe_string(value digest_v, value string_v, value len_v) + { +- unsigned char *digest = String_val(digest_v); ++ unsigned char *digest = Bytes_val(digest_v); + unsigned char *string = String_val(string_v); + long len = Long_val(len_v); + +@@ -838,7 +838,7 @@ value tigertree_unsafe_string(value dige + + value tiger_unsafe_string(value digest_v, value string_v, value len_v) + { +- unsigned char *digest = String_val(digest_v); ++ unsigned char *digest = Bytes_val(digest_v); + unsigned char *string = String_val(string_v); + long len = Long_val(len_v); + diff --git a/net/mldonkey/patches/patch-src_utils_lib_unix32.ml b/net/mldonkey/patches/patch-src_utils_lib_unix32.ml new file mode 100644 index 00000000000..60fc59f7dca --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_unix32.ml @@ -0,0 +1,80 @@ +$NetBSD: patch-src_utils_lib_unix32.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/unix32.ml~ 2011-03-13 17:45:32.000000000 +0000 ++++ src/utils/lib/unix32.ml +@@ -318,7 +318,7 @@ module FDCache = struct + file_pos + len + string_pos +- (String.length string) ++ (Bytes.length string) + (Printexc2.to_string e); + raise e + +@@ -327,7 +327,7 @@ module FDCache = struct + check_destroyed t2; + let buffer_len = 128 * 1024 in + let buffer_len64 = Int64.of_int buffer_len in +- let buffer = String.make buffer_len '\001' in ++ let buffer = Bytes.make buffer_len '\001' in + let rec iter remaining pos1 pos2 = + let len64 = min remaining buffer_len64 in + let len = Int64.to_int len64 in +@@ -363,8 +363,8 @@ module type File = sig + val mtime64 : t -> float + val exists : t -> bool + val remove : t -> unit +- val read : t -> int64 -> string -> int -> int -> unit +- val write : t -> int64 -> string -> int -> int -> unit ++ val read : t -> int64 -> bytes -> int -> int -> unit ++ val write : t -> int64 -> bytes -> int -> int -> unit + val destroy : t -> unit + val is_closed : t -> bool + end +@@ -648,7 +648,7 @@ module MultiFile = struct + let possible_len = Int64.to_int possible_len64 in + if possible_len64 > zero then + FDCache.read file.fd in_file_pos s in_string_pos possible_len; +- String.fill s (in_string_pos + possible_len) (len - possible_len) '\000' ++ Bytes.fill s (in_string_pos + possible_len) (len - possible_len) '\000' + + let io f t chunk_begin string string_pos len = + let (file, tail) = find_file t chunk_begin in +@@ -1039,7 +1039,7 @@ module SparseFile = struct + len = zero; + fd = fd; + } in +- let new_array = Array.create (nchunks+1) chunk in ++ let new_array = Array.make (nchunks+1) chunk in + Array.blit t.chunks 0 new_array 0 nchunks; + t.chunks <- new_array + +@@ -1055,7 +1055,7 @@ module SparseFile = struct + len = zero; + fd = fd; + } in +- let new_array = Array.create (nchunks+1) chunk in ++ let new_array = Array.make (nchunks+1) chunk in + Array.blit t.chunks 0 new_array 0 index; + Array.blit t.chunks index new_array (index+1) (nchunks-index); + t.chunks <- new_array; +@@ -1226,7 +1226,7 @@ let flush_buffer t offset = + let len = String.length s in + try + if !verbose then lprintf_nl "seek64 %Ld" offset; +- if len > 0 then write t offset s 0 len; ++ if len > 0 then write t offset (Bytes.of_string s) 0 len; + (* + let fd, offset = fd_of_chunk t offset (Int64.of_int len) in + let final_pos = Unix2.c_seek64 fd offset Unix.SEEK_SET in +@@ -1349,7 +1349,7 @@ let copy_chunk t1 t2 pos1 pos2 len = + flush_fd t1; + flush_fd t2; + let buffer_size = 128 * 1024 in +- let buffer = String.make buffer_size '\001' in ++ let buffer = Bytes.make buffer_size '\001' in + let rec iter remaining pos1 pos2 = + let len = mini remaining buffer_size in + if len > 0 then begin diff --git a/net/mldonkey/patches/patch-src_utils_lib_unix32.mli b/net/mldonkey/patches/patch-src_utils_lib_unix32.mli new file mode 100644 index 00000000000..60ba4c452b5 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_unix32.mli @@ -0,0 +1,20 @@ +$NetBSD: patch-src_utils_lib_unix32.mli,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/unix32.mli~ 2011-01-31 17:17:07.000000000 +0000 ++++ src/utils/lib/unix32.mli +@@ -54,11 +54,11 @@ val flush : unit -> unit + val flush_fd : t -> unit + val buffered_write : t -> int64 -> string -> int -> int -> unit + val buffered_write_copy : t -> int64 -> string -> int -> int -> unit +-val write : t -> int64 -> string -> int -> int -> unit ++val write : t -> int64 -> bytes -> int -> int -> unit + val max_buffered : int64 ref + val remove : t -> unit + +-val read : t -> int64 -> string -> int -> int -> unit ++val read : t -> int64 -> bytes -> int -> int -> unit + (*val allocate_chunk : t -> int64 -> int -> unit*) + + val copy_chunk : t -> t -> int64 -> int64 -> int -> unit diff --git a/net/mldonkey/patches/patch-src_utils_lib_url.ml b/net/mldonkey/patches/patch-src_utils_lib_url.ml new file mode 100644 index 00000000000..468952b691c --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_url.ml @@ -0,0 +1,34 @@ +$NetBSD: patch-src_utils_lib_url.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/url.ml~ 2009-02-24 18:38:34.000000000 +0000 ++++ src/utils/lib/url.ml +@@ -36,21 +36,21 @@ type url = { + let encode s = + let pos = ref 0 in + let len = String.length s in +- let res = String.create (3*len) in ++ let res = Bytes.create (3*len) in + let hexa_digit x = + if x >= 10 then Char.chr (Char.code 'A' + x - 10) + else Char.chr (Char.code '0' + x) in + for i=0 to len-1 do + match s.[i] with + | 'a'..'z' | 'A'..'Z' | '0'..'9' | '.' | '-' | '*' | '_' | '\''| '(' | ')'-> +- res.[!pos] <- s.[i]; incr pos ++ Bytes.set res !pos s.[i]; incr pos + | c -> +- res.[!pos] <- '%'; +- res.[!pos+1] <- hexa_digit (Char.code c / 16); +- res.[!pos+2] <- hexa_digit (Char.code c mod 16); ++ Bytes.set res !pos '%'; ++ Bytes.set res (!pos+1) (hexa_digit (Char.code c / 16)); ++ Bytes.set res (!pos+2) (hexa_digit (Char.code c mod 16)); + pos := !pos + 3 + done; +- String.sub res 0 !pos ++ Bytes.to_string (Bytes.sub res 0 !pos) + + (** decodes a sting according RFC 1738 + or x-www-form-urlencoded ('+' with ' ') diff --git a/net/mldonkey/patches/patch-src_utils_lib_verificationBitmap.ml b/net/mldonkey/patches/patch-src_utils_lib_verificationBitmap.ml new file mode 100644 index 00000000000..ea42136a331 --- /dev/null +++ b/net/mldonkey/patches/patch-src_utils_lib_verificationBitmap.ml @@ -0,0 +1,72 @@ +$NetBSD: patch-src_utils_lib_verificationBitmap.ml,v 1.1 2018/03/14 14:05:37 dholland Exp $ + +Fix build with ocaml 4.06 + +--- src/utils/lib/verificationBitmap.ml~ 2006-06-11 17:39:51.000000000 +0000 ++++ src/utils/lib/verificationBitmap.ml +@@ -1,4 +1,4 @@ +-type t = string ++type t = bytes + type part_state = + State_missing | State_partial | State_complete | State_verified + +@@ -15,24 +15,24 @@ let char_to_state = function + | '3' -> State_verified + | _ -> assert false + +-let create n c = String.make n (state_to_char c) +-let get x i = (char_to_state x.[i]) +-let set x i c = x.[i] <- state_to_char c +-let length = String.length ++let create n c = Bytes.make n (state_to_char c) ++let get x i = char_to_state (Bytes.get x i) ++let set x i c = Bytes.set x i (state_to_char c) ++let length = Bytes.length + let init n f = +- let s = String.create n in ++ let s = Bytes.create n in + for i = 0 to n - 1 do + set s i (f i) + done; + s +-let to_string x = x +-let of_string x = x ++let to_string x = Bytes.to_string x ++let of_string x = Bytes.of_string x + + let iteri f x = +- let l = String.length x in ++ let l = Bytes.length x in + let rec aux i = + if i < l then begin +- f i (char_to_state x.[i]); ++ f i (char_to_state (Bytes.get x i)); + aux (i+1) + end in + aux 0 +@@ -41,20 +41,20 @@ let mapi f x = + Array.init (length x) (fun i -> f i (get x i)) + + let fold_lefti f acc x = +- let l = String.length x in ++ let l = Bytes.length x in + let rec aux acc i = + if i = l then acc + else aux (f acc i (get x i)) (i + 1) in + aux acc 0 + + let existsi p x = +- let l = String.length x in ++ let l = Bytes.length x in + let rec aux i = +- i < l && (p i (char_to_state x.[i]) || aux (i+1)) in ++ i < l && (p i (char_to_state (Bytes.get x i)) || aux (i+1)) in + aux 0 + + let for_all p s = +- let l = String.length s in ++ let l = Bytes.length s in + let rec aux i = +- i >= l || p (char_to_state s.[i]) && aux (i+1) in ++ i >= l || p (char_to_state (Bytes.get s i)) && aux (i+1) in + aux 0 diff --git a/net/mldonkey/patches/patch-src_utils_net_terminal.ml b/net/mldonkey/patches/patch-src_utils_net_terminal.ml index c35643a8011..84bf419ce1a 100644 --- a/net/mldonkey/patches/patch-src_utils_net_terminal.ml +++ b/net/mldonkey/patches/patch-src_utils_net_terminal.ml @@ -1,6 +1,7 @@ -$NetBSD: patch-src_utils_net_terminal.ml,v 1.1 2014/10/20 10:12:51 jaapb Exp $ +$NetBSD: patch-src_utils_net_terminal.ml,v 1.2 2018/03/14 14:05:37 dholland Exp $ Unterminated string constant cleaned up + --- src/utils/net/terminal.ml.orig 2005-11-19 17:19:45.000000000 +0000 +++ src/utils/net/terminal.ml @@ -185,7 +185,7 @@ module Output = struct |