summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2022-06-29 07:54:38 +0000
committerwiz <wiz@pkgsrc.org>2022-06-29 07:54:38 +0000
commit74fe70c55235afcd2fbff0301c006af09dc1e84e (patch)
treeaeabc24ce706303c56caa52427318ca074d70afa /net
parentbf03d7255e4433cabe0273897950d4d33cf7bc64 (diff)
downloadpkgsrc-74fe70c55235afcd2fbff0301c006af09dc1e84e.tar.gz
camlp4: remove
camlp4 is an outdated way to build packages with caml and does not work with pkgsrc ocaml versions for more than a year. Remove camlp4 and all packages using it. Ok jaapb@
Diffstat (limited to 'net')
-rw-r--r--net/Makefile4
-rw-r--r--net/mldonkey-gui/DESCR8
-rw-r--r--net/mldonkey-gui/Makefile33
-rw-r--r--net/mldonkey-gui/PLIST5
-rw-r--r--net/mldonkey/DESCR9
-rw-r--r--net/mldonkey/MESSAGE13
-rw-r--r--net/mldonkey/Makefile38
-rw-r--r--net/mldonkey/Makefile.common44
-rw-r--r--net/mldonkey/PLIST2
-rw-r--r--net/mldonkey/distinfo42
-rw-r--r--net/mldonkey/files/mldonkey.sh57
-rw-r--r--net/mldonkey/patches/patch-config_Makefile.in45
-rw-r--r--net/mldonkey/patches/patch-config_configure.in34
-rw-r--r--net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c33
-rw-r--r--net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml14
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml126
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_bzip2.mli24
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_bzlib.ml24
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_bzlib.mli24
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_filename2.ml39
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c15
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml39
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_gzip.ml180
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_gzip.mli33
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_string2.ml102
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_string2.mli28
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_tar.mlcpp112
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_unix2.ml38
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_zip.ml193
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_zlib.ml47
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_zlib.mli153
-rw-r--r--net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c15
-rw-r--r--net/mldonkey/patches/patch-src_utils_extlib_IO.ml117
-rw-r--r--net/mldonkey/patches/patch-src_utils_extlib_IO.mli41
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_fst_hash.c42
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_md4.ml410
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_md4.mli24
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_misc.ml22
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_misc2.mlcpp23
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_options.ml462
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_os_stubs.h17
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_syslog.ml47
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_tiger.c24
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_unix32.ml80
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_unix32.mli20
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_url.ml34
-rw-r--r--net/mldonkey/patches/patch-src_utils_lib_verificationBitmap.ml72
-rw-r--r--net/mldonkey/patches/patch-src_utils_net_terminal.ml15
48 files changed, 1 insertions, 2622 deletions
diff --git a/net/Makefile b/net/Makefile
index f128e0ef6fb..4d7779d8c5a 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1468 2022/06/18 10:07:10 pin Exp $
+# $NetBSD: Makefile,v 1.1469 2022/06/29 07:54:40 wiz Exp $
#
COMMENT= Networking tools
@@ -381,8 +381,6 @@ SUBDIR+= mirror
SUBDIR+= miruo
SUBDIR+= mitmproxy
SUBDIR+= mkvserver_mk2
-SUBDIR+= mldonkey
-SUBDIR+= mldonkey-gui
SUBDIR+= modpcap
SUBDIR+= mono-nat
SUBDIR+= monotorrent
diff --git a/net/mldonkey-gui/DESCR b/net/mldonkey-gui/DESCR
deleted file mode 100644
index 6eb1706b732..00000000000
--- a/net/mldonkey-gui/DESCR
+++ /dev/null
@@ -1,8 +0,0 @@
-mldonkey is a client to access the eDonkey network, a peer-to-peer network
-particularly efficient for big files thanks to a multi-sources download
-protocol. It is written in Objective-Caml, and comes with its own GTK GUI,
-an HTTP interface and a telnet interface. It works on most UNIX platforms.
-
-This package provides the GTK GUI interface, but not the core. You will
-have to install it (using the mldonkey package) in the same machine or
-another one.
diff --git a/net/mldonkey-gui/Makefile b/net/mldonkey-gui/Makefile
deleted file mode 100644
index f0c492c62d8..00000000000
--- a/net/mldonkey-gui/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# $NetBSD: Makefile,v 1.139 2022/05/24 18:51:54 jaapb Exp $
-
-PKGREVISION= 52
-.include "../../net/mldonkey/Makefile.common"
-
-PKGNAME= ${DISTNAME:S/mldonkey/mldonkey-gui/}
-
-COMMENT+= (GTK interface)
-
-DEPENDS+= mldonkey-[0-9]*:../../net/mldonkey
-
-USE_TOOLS+= pkg-config
-
-INSTALLATION_DIRS= bin libexec/mldonkey
-
-CONFIGURE_ARGS+= --enable-gui=newgui2
-CONFIGURE_ARGS+= --disable-option-checking
-
-do-install:
- ${RM} -f ${DESTDIR}${PREFIX}/bin/mlgui
- cd ${DESTDIR}${PREFIX}/bin && ${LN} -s ../libexec/mldonkey/mlgui mlgui
- ${INSTALL_PROGRAM} ${WRKSRC}/mlgui ${DESTDIR}${PREFIX}/libexec/mldonkey
- ${INSTALL_PROGRAM} ${WRKSRC}/mlguistarter \
- ${DESTDIR}${PREFIX}/libexec/mldonkey
- ${INSTALL_PROGRAM} ${WRKSRC}/mlnet+gui \
- ${DESTDIR}${PREFIX}/libexec/mldonkey
-
-.include "../../graphics/librsvg/buildlink3.mk"
-.include "../../x11/gtk2/buildlink3.mk"
-# 2.16.0 is the first version that installs in the right location
-BUILDLINK_API_DEPENDS.ocaml-lablgtk+= ocaml-lablgtk>=2.16.0
-.include "../../x11/ocaml-lablgtk/buildlink3.mk"
-.include "../../mk/bsd.pkg.mk"
diff --git a/net/mldonkey-gui/PLIST b/net/mldonkey-gui/PLIST
deleted file mode 100644
index 143d088cc6e..00000000000
--- a/net/mldonkey-gui/PLIST
+++ /dev/null
@@ -1,5 +0,0 @@
-@comment $NetBSD: PLIST,v 1.3 2006/09/16 06:21:40 wiz Exp $
-bin/mlgui
-libexec/mldonkey/mlgui
-libexec/mldonkey/mlguistarter
-libexec/mldonkey/mlnet+gui
diff --git a/net/mldonkey/DESCR b/net/mldonkey/DESCR
deleted file mode 100644
index 5ae0a362942..00000000000
--- a/net/mldonkey/DESCR
+++ /dev/null
@@ -1,9 +0,0 @@
-mldonkey is a client to access the eDonkey network, a peer-to-peer
-network particularly efficient for big files thanks to a multi-sources
-download protocol. It is written in Objective-Caml, and comes with
-its own GTK GUI, an HTTP interface and a telnet interface. It
-works on most UNIX platforms.
-
-This package provides mldonkey's core, which can be accessed through
-a web browser. You may want to install the mldonkey-gui package
-which provides a nice graphical interface for mldonkey.
diff --git a/net/mldonkey/MESSAGE b/net/mldonkey/MESSAGE
deleted file mode 100644
index 5bd2fef759e..00000000000
--- a/net/mldonkey/MESSAGE
+++ /dev/null
@@ -1,13 +0,0 @@
-===========================================================================
-$NetBSD: MESSAGE,v 1.3 2004/12/25 19:19:21 wiz Exp $
-
-This package only installs mldonkey's core program, which does not have a
-GUI frontend. To ease its management, it includes an rc.d startup script
-that will safely start the daemon as an independent and unprivileged user.
-Once started, you will be able to access it at a later time by accessing
-http://localhost:4080/.
-
-However, if you want a GUI, install the mldonkey-gui package, which will
-be able to connect to a local core as well as a remote one.
-
-===========================================================================
diff --git a/net/mldonkey/Makefile b/net/mldonkey/Makefile
deleted file mode 100644
index a1278db0e91..00000000000
--- a/net/mldonkey/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# $NetBSD: Makefile,v 1.104 2022/06/28 11:35:02 wiz Exp $
-
-PKGREVISION= 22
-.include "Makefile.common"
-
-RCD_SCRIPTS= mldonkey
-
-PKG_GROUPS_VARS+= MLDONKEY_GROUP
-PKG_USERS_VARS+= MLDONKEY_USER
-
-BUILD_DEFS+= MLDONKEY_HOME VARBASE
-
-INSTALLATION_DIRS= libexec/mldonkey
-
-OWN_DIRS_PERMS= ${MLDONKEY_HOME} ${MLDONKEY_USER} ${MLDONKEY_GROUP} 0700
-OWN_DIRS_PERMS+= ${VARBASE}/log/mldonkey \
- ${MLDONKEY_USER} ${MLDONKEY_GROUP} 0700
-OWN_DIRS_PERMS+= ${VARBASE}/run/mldonkey \
- ${MLDONKEY_USER} ${MLDONKEY_GROUP} 0700
-
-PKG_GROUPS= ${MLDONKEY_GROUP}
-PKG_USERS= ${MLDONKEY_USER}:${MLDONKEY_GROUP}
-
-PKG_GECOS.${MLDONKEY_USER}= Dedicated mldonkey server
-PKG_HOME.${MLDONKEY_USER}= ${MLDONKEY_HOME}
-PKG_SHELL.${MLDONKEY_USER}= ${SH}
-
-FILES_SUBST+= MLDONKEY_GROUP=${MLDONKEY_GROUP:Q}
-FILES_SUBST+= MLDONKEY_HOME=${MLDONKEY_HOME:Q}
-FILES_SUBST+= MLDONKEY_USER=${MLDONKEY_USER:Q}
-
-do-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/mlnet ${DESTDIR}${PREFIX}/libexec/mldonkey
-
-.include "../../lang/camlp4/buildlink3.mk"
-.include "../../sysutils/file/buildlink3.mk"
-.include "../../converters/libiconv/buildlink3.mk"
-.include "../../mk/bsd.pkg.mk"
diff --git a/net/mldonkey/Makefile.common b/net/mldonkey/Makefile.common
deleted file mode 100644
index 736fcbefacc..00000000000
--- a/net/mldonkey/Makefile.common
+++ /dev/null
@@ -1,44 +0,0 @@
-# $NetBSD: Makefile.common,v 1.54 2020/03/20 11:58:08 nia Exp $
-#
-# used by net/mldonkey/Makefile
-# used by net/mldonkey-gui/Makefile
-
-DISTNAME= mldonkey-3.1.5
-CATEGORIES= net
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=mldonkey/}
-EXTRACT_SUFX= .tar.bz2
-
-MAINTAINER= pkgsrc-users@NetBSD.org
-HOMEPAGE= http://mldonkey.sourceforge.net/Main_Page
-COMMENT= Free peer-to-peer client with eDonkey support and more
-LICENSE= gnu-gpl-v2
-
-DISTINFO_FILE= ${.CURDIR}/../../net/mldonkey/distinfo
-PATCHDIR= ${.CURDIR}/../../net/mldonkey/patches
-
-GNU_CONFIGURE= yes
-USE_LANGUAGES= c c++
-USE_TOOLS+= gmake perl autoconf
-MAKE_JOBS_SAFE= no
-
-CONFIGURE_ENV+= WGET=""
-CONFIGURE_ENV+= ac_cv_prog_WGET="no"
-CONFIGURE_ARGS+= --enable-directconnect
-LDFLAGS+= ${PTHREAD_LDFLAGS}
-MAKE_ENV+= BUILDLINK_PREFIX.pthread=${BUILDLINK_PREFIX.pthread}
-CONFIGURE_ARGS+= --enable-pthread-lib
-
-UNLIMIT_RESOURCES= stacksize
-
-# needs 3.10.1 or newer to work correctly on NetBSD/amd64
-BUILDLINK_API_DEPENDS.ocaml+= ocaml>=3.10.1
-
-pre-configure:
- cd ${WRKSRC}/config && autoconf
-
-.include "../../archivers/bzip2/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
-.include "../../graphics/gd/buildlink3.mk"
-.include "../../lang/ocaml/buildlink3.mk"
-.include "../../math/ocaml-num/buildlink3.mk"
-.include "../../mk/pthread.buildlink3.mk"
diff --git a/net/mldonkey/PLIST b/net/mldonkey/PLIST
deleted file mode 100644
index 5f30ba4ea6d..00000000000
--- a/net/mldonkey/PLIST
+++ /dev/null
@@ -1,2 +0,0 @@
-@comment $NetBSD: PLIST,v 1.6 2014/03/11 14:05:09 jperkin Exp $
-libexec/mldonkey/mlnet
diff --git a/net/mldonkey/distinfo b/net/mldonkey/distinfo
deleted file mode 100644
index 21f1fd0a1e2..00000000000
--- a/net/mldonkey/distinfo
+++ /dev/null
@@ -1,42 +0,0 @@
-$NetBSD: distinfo,v 1.67 2021/10/26 11:06:00 nia Exp $
-
-BLAKE2s (mldonkey-3.1.5.tar.bz2) = 4d0a6d475147de0e8c2054a566c90affee9bbfb299724dc395fa484c3a15e09a
-SHA512 (mldonkey-3.1.5.tar.bz2) = 96e75acf91d7ecc41490f898e06d284da27404c7e567f173936d8113885a3b4b6bc93341358f92a30d3f699eef681d97ce56414a37bb02a535ad2da4d4ad13a3
-Size (mldonkey-3.1.5.tar.bz2) = 2847382 bytes
-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/files/mldonkey.sh b/net/mldonkey/files/mldonkey.sh
deleted file mode 100644
index a25ede20171..00000000000
--- a/net/mldonkey/files/mldonkey.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!@RCD_SCRIPTS_SHELL@
-#
-# $NetBSD: mldonkey.sh,v 1.7 2006/08/10 11:35:26 jmmv Exp $
-#
-# KEYWORD: shutdown
-# PROVIDE: mldonkey
-# REQUIRE: DAEMON
-#
-
-if [ -f /etc/rc.subr ]; then
- . /etc/rc.subr
-fi
-
-: ${mldonkey_group=@MLDONKEY_GROUP@}
-: ${mldonkey_home=@MLDONKEY_HOME@}
-: ${mldonkey_logdir=@VARBASE@/log/mldonkey}
-: ${mldonkey_rundir=@VARBASE@/run/mldonkey}
-: ${mldonkey_user=@MLDONKEY_USER@}
-
-name="mldonkey"
-rcvar=${name}
-command="@PREFIX@/libexec/mldonkey/mlnet"
-command_args="-pid ${mldonkey_rundir} >${mldonkey_logdir}/mlnet.log 2>&1 &"
-pidfile="${mldonkey_rundir}/mlnet.pid"
-required_dirs="${mldonkey_home}"
-start_cmd="mldonkey_start"
-
-mldonkey_start() {
- if [ -f /etc/rc.subr ]; then
- @ECHO@ "Starting mldonkey."
- else
- @ECHO@ " ${name}"
- fi
-
- if [ ! -d ${mldonkey_logdir} ]; then
- mkdir -p ${mldonkey_logdir}
- chown ${mldonkey_user}:${mldonkey_group} ${mldonkey_logdir}
- chmod 0700 ${mldonkey_logdir}
- fi
-
- if [ ! -d ${mldonkey_rundir} ]; then
- mkdir -p ${mldonkey_rundir}
- chown ${mldonkey_user}:${mldonkey_group} ${mldonkey_rundir}
- chmod 0700 ${mldonkey_rundir}
- fi
-
- @SU@ -l ${mldonkey_user} -c \
- "HOME=${mldonkey_home} \
- ${command} ${mldonkey_flags} ${command_args}"
-}
-
-if [ -f /etc/rc.subr ]; then
- load_rc_config ${name}
- run_rc_command "${1}"
-else
- mldonkey_start
-fi
diff --git a/net/mldonkey/patches/patch-config_Makefile.in b/net/mldonkey/patches/patch-config_Makefile.in
deleted file mode 100644
index e91eb986ae3..00000000000
--- a/net/mldonkey/patches/patch-config_Makefile.in
+++ /dev/null
@@ -1,45 +0,0 @@
-$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
-
- ifneq ("$(GUI)" , "no")
- ifeq ("$(GUI)", "newgui2")
-- SUBDIRS += $(SRC_GUI) $(SRC_GUI)/x11 $(SRC_GUI)/win32 $(ICONS_CHOICE) +lablgtk2
-- GTK_LIBS_byte=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 $(LABLGL_CMA) lablgtk.cma gtkInit.cmo lablrsvg.cma
-- GTK_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 $(LABLGL_CMXA) lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
-- GTK_STATIC_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I +lablgtk2 lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
-+ SL_DIR=$(OCAMLLIB)/site-lib
-+ SUBDIRS += $(SRC_GUI) $(SRC_GUI)/x11 $(SRC_GUI)/win32 $(ICONS_CHOICE) $(SL_DIR)/lablgtk2
-+ GTK_LIBS_byte=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I $(SL_DIR)/lablgtk2 $(LABLGL_CMA) lablgtk.cma gtkInit.cmo lablrsvg.cma
-+ GTK_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I $(SL_DIR)/lablgtk2 $(LABLGL_CMXA) lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
-+ GTK_STATIC_LIBS_opt=-ccopt "$(GTKLLIBS)" -cclib "$(GTKLFLAGS)" -I $(SL_DIR)/lablgtk2 lablgtk.cmxa gtkInit.cmx lablrsvg.cmxa
-+ LIBS_flags+=-ccopt "-I $(SL_DIR)"
- else
-- SUBDIRS += $(SRC_GUI) $(CONFIGWIN) $(OKEY) $(GPATTERN) $(ICONS_CHOICE) +lablgtk $(SRC_PROGRESS)
-- GTK_LIBS_byte=-I +lablgtk $(LABLGL_CMA) lablgtk.cma
-- GTK_LIBS_opt=-I +lablgtk $(LABLGL_CMXA) lablgtk.cmxa
-- GTK_STATIC_LIBS_opt=-I +lablgtk lablgtk.cmxa
-+ SUBDIRS += $(SRC_GUI) $(CONFIGWIN) $(OKEY) $(GPATTERN) $(ICONS_CHOICE) $(SL_DIR)/lablgtk $(SRC_PROGRESS)
-+ GTK_LIBS_byte=-I $(SL_DIR)/lablgtk $(LABLGL_CMA) lablgtk.cma
-+ GTK_LIBS_opt=-I $(SL_DIR)/lablgtk $(LABLGL_CMXA) lablgtk.cmxa
-+ GTK_STATIC_LIBS_opt=-I $(SL_DIR)/lablgtk lablgtk.cmxa
-+ LIBS_flags+=-ccopt "-I $(SL_DIR)"
- endif
-
- SVG_CONVERTER_SRCS = \
-@@ -1561,9 +1564,9 @@ resfile.o:
-
- depend: $(RESFILE) \
- $(PA_ZOG) $(LIB)/http_lexer.ml $(TMPSOURCES)
-- @$(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I +labl$(GTK),,$(INCLUDES)) *.ml *.mli > .depend
-+ @$(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I $(OCAMLLIB)/site-lib/labl$(GTK),,$(INCLUDES)) *.ml *.mli > .depend
- @(for i in $(SUBDIRS); do \
-- $(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I +labl$(GTK),,$(INCLUDES)) $$i/*.ml $$i/*.mli >> .depend; \
-+ $(OCAMLDEP) $(OCAMLDEP_OPTIONS) $(patsubst -I $(OCAMLLIB)/site-lib/labl$(GTK),,$(INCLUDES)) $$i/*.ml $$i/*.mli >> .depend; \
- $(OCAMLPP) $$i/*.mlt >> .depend; \
- done)
- @if test "$(GUI)" = "newgui2"; then \
diff --git a/net/mldonkey/patches/patch-config_configure.in b/net/mldonkey/patches/patch-config_configure.in
deleted file mode 100644
index 6f4207142c7..00000000000
--- a/net/mldonkey/patches/patch-config_configure.in
+++ /dev/null
@@ -1,34 +0,0 @@
-$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
- LABLGTK_CONFIG=no
- else
- AC_MSG_CHECKING(for native code $LABLGTK_NAME)
-- if test -f $OCAMLLIB/$LABLGTK_NAME/lablgtk.$OCAMLLIB_EXT; then
-+ if test -f $OCAMLLIB/site-lib/$LABLGTK_NAME/lablgtk.$OCAMLLIB_EXT; then
- if test "$GUI" = "newgui2"; then
-- if test -f $OCAMLLIB/$LABLGTK_NAME/lablrsvg.$OCAMLLIB_EXT; then
-+ if test -f $OCAMLLIB/site-lib/$LABLGTK_NAME/lablrsvg.$OCAMLLIB_EXT; then
- AC_MSG_RESULT(yes)
- LABLGTK_CONFIG=yes
- else
- AC_MSG_RESULT(no)
- LABLGTK_CONFIG=no
-- if test -f $OCAMLLIB/$LABLGTK_NAME/lablrsvg.cma; then
-+ if test -f $OCAMLLIB/site-lib/$LABLGTK_NAME/lablrsvg.cma; then
- echo "---------------------------------------------------------"
- echo "lablrsvg is not installed properly. See the INSTALL.txt"
- echo "file of mldonkey to see how to compile $LABLGTK_NAME. You"
-@@ -1376,7 +1393,7 @@ else
- else
- AC_MSG_RESULT(no)
- LABLGTK_CONFIG=no
-- if test -f $OCAMLLIB/$LABLGTK_NAME/lablgtk.cma; then
-+ if test -f $OCAMLLIB/site-lib/$LABLGTK_NAME/lablgtk.cma; then
- echo "-------------------------------------------------------------"
- echo "$LABLGTK_NAME is not installed properly. See the INSTALL.txt"
- echo "file of mldonkey to see how to compile $LABLGTK_NAME. You"
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
deleted file mode 100644
index 7f701c06846..00000000000
--- a/net/mldonkey/patches/patch-src_config_unix_os_stubs.c.c
+++ /dev/null
@@ -1,33 +0,0 @@
-$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
-
- void os_ftruncate(OS_FD fd, OFF_T len, /* bool */ int sparse)
- {
-- int64 cursize;
-+ int64_t cursize;
- if(!fd) failwith("ftruncate32: file is closed");
-
- cursize = os_getfdsize(fd);
-@@ -109,7 +109,7 @@ int os_getdtablesize()
-
- *******************************************************************/
-
--int64 os_getfdsize(OS_FD fd)
-+int64_t os_getfdsize(OS_FD fd)
- {
- struct stat buf;
-
-@@ -127,7 +127,7 @@ int64 os_getfdsize(OS_FD fd)
-
- *******************************************************************/
-
--int64 os_getfilesize(char *path)
-+int64_t os_getfilesize(char *path)
- {
- struct stat buf;
-
diff --git a/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml b/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml
deleted file mode 100644
index 8c81b09068b..00000000000
--- a/net/mldonkey/patches/patch-src_networks_donkey_donkeyGlobals.ml
+++ /dev/null
@@ -1,14 +0,0 @@
-$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 =
- c.client_md4 <- md4;
- end
-
--exception ClientFound of client
- let find_client_by_name name =
- try
- H.iter (fun c ->
diff --git a/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml b/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml
deleted file mode 100644
index ed2158f096b..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_bzip2.ml
+++ /dev/null
@@ -1,126 +0,0 @@
-$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
deleted file mode 100644
index 75575e67e0c..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_bzip2.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-$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
deleted file mode 100644
index e57cba5f4de..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_bzlib.ml
+++ /dev/null
@@ -1,24 +0,0 @@
-$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
deleted file mode 100644
index 8da73662ba9..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_bzlib.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-$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
deleted file mode 100644
index 7a6d21da808..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_filename2.ml
+++ /dev/null
@@ -1,39 +0,0 @@
-$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
deleted file mode 100644
index bf379f8d9a0..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_gdstubs.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$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)
- CAMLlocal1 (v);
- #ifdef HAVE_PNGVERSION
- #include <png.h>
-- v = copy_int32 ((int32)png_access_version_number());
-+ v = copy_int32 ((int32_t)png_access_version_number());
- CAMLreturn (v);
- #else
- raise_constant(*(value *)caml_named_value("gd type not supported"));
diff --git a/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml b/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml
deleted file mode 100644
index a192a33af4a..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_genlex2.ml
+++ /dev/null
@@ -1,39 +0,0 @@
-$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
deleted file mode 100644
index 1869c3b206d..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_gzip.ml
+++ /dev/null
@@ -1,180 +0,0 @@
-$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
deleted file mode 100644
index d04f5c4029d..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_gzip.mli
+++ /dev/null
@@ -1,33 +0,0 @@
-$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
deleted file mode 100644
index e78d40d5f5e..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_string2.ml
+++ /dev/null
@@ -1,102 +0,0 @@
-$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
deleted file mode 100644
index 6d0d54453d3..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_string2.mli
+++ /dev/null
@@ -1,28 +0,0 @@
-$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
deleted file mode 100644
index 83515d76e79..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_tar.mlcpp
+++ /dev/null
@@ -1,112 +0,0 @@
-$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
deleted file mode 100644
index 9b08d154149..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_unix2.ml
+++ /dev/null
@@ -1,38 +0,0 @@
-$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
deleted file mode 100644
index dff85120a66..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_zip.ml
+++ /dev/null
@@ -1,193 +0,0 @@
-$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)
-
---- 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 }
-
--exception Error of string * string * string
--
- (* 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
deleted file mode 100644
index 7fae540dd10..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_zlib.ml
+++ /dev/null
@@ -1,47 +0,0 @@
-$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
deleted file mode 100644
index fd0c6ec4f5e..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_zlib.mli
+++ /dev/null
@@ -1,153 +0,0 @@
-$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
deleted file mode 100644
index 7a68a46266d..00000000000
--- a/net/mldonkey/patches/patch-src_utils_cdk_zlibstubs.c
+++ /dev/null
@@ -1,15 +0,0 @@
-$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)
-
- value camlzip_update_crc32(value crc, value buf, value pos, value len)
- {
-- return copy_int32(crc32((uint32) Int32_val(crc),
-+ return copy_int32(crc32((uint32_t) Int32_val(crc),
- &Byte_u(buf, Long_val(pos)),
- Long_val(len)));
- }
diff --git a/net/mldonkey/patches/patch-src_utils_extlib_IO.ml b/net/mldonkey/patches/patch-src_utils_extlib_IO.ml
deleted file mode 100644
index 28cfff40aad..00000000000
--- a/net/mldonkey/patches/patch-src_utils_extlib_IO.ml
+++ /dev/null
@@ -1,117 +0,0 @@
-$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
deleted file mode 100644
index 04d1e203fa5..00000000000
--- a/net/mldonkey/patches/patch-src_utils_extlib_IO.mli
+++ /dev/null
@@ -1,41 +0,0 @@
-$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
deleted file mode 100644
index 85633b92b29..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_fst_hash.c
+++ /dev/null
@@ -1,42 +0,0 @@
-$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)
-
---- 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
- /*****************************************************************************/
-
- // hash file
--int fst_hash_file (unsigned char *fth, char *file, int64 filesize)
-+int fst_hash_file (unsigned char *fth, char *file, int64_t filesize)
- {
- FILE *fp;
- unsigned char *buf;
-@@ -271,7 +271,7 @@ int fst_hash_file (unsigned char *fth, c
- }
-
-
--void fst_hash_string (unsigned char *fth, unsigned char *file, int64 filesize)
-+void fst_hash_string (unsigned char *fth, unsigned char *file, int64_t filesize)
- {
- 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
deleted file mode 100644
index 96f99a1be70..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_md4.ml
+++ /dev/null
@@ -1,410 +0,0 @@
-$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
deleted file mode 100644
index 6c5ac34b53d..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_md4.mli
+++ /dev/null
@@ -1,24 +0,0 @@
-$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
deleted file mode 100644
index 2841012396d..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_misc.ml
+++ /dev/null
@@ -1,22 +0,0 @@
-$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
deleted file mode 100644
index aabd0344049..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_misc2.mlcpp
+++ /dev/null
@@ -1,23 +0,0 @@
-$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
deleted file mode 100644
index de8b3e24898..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_options.ml4
+++ /dev/null
@@ -1,62 +0,0 @@
-$NetBSD: patch-src_utils_lib_options.ml4,v 1.2 2018/03/14 14:05:37 dholland Exp $
-
-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
-@@ -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 = Bytes.unsafe_set
-
- 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
-- | c -> if is_printable c then 1 else 4)
-+ | c -> 1)
- done;
- if !n = String.length s then s
- else
-- 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 ->
-- if is_printable c then unsafe_set s' !n c
-- else
-- let a = int_of_char c in
-- unsafe_set s' !n '\\';
-- incr n;
-- unsafe_set s' !n (char_of_int (48 + a / 100));
-- incr n;
-- unsafe_set s' !n (char_of_int (48 + a / 10 mod 10));
-- incr n;
-- unsafe_set s' !n (char_of_int (48 + a mod 10))
-+ unsafe_set s' !n c
- 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
deleted file mode 100644
index edf0f1e1f4f..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_os_stubs.h
+++ /dev/null
@@ -1,17 +0,0 @@
-$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
- extern void os_ftruncate(OS_FD fd, OFF_T len, int sparse);
- extern ssize_t os_read(OS_FD fd, char *buf, size_t len);
- extern int os_getdtablesize();
--extern int64 os_getfdsize(OS_FD fd);
--extern int64 os_getfilesize(char *path);
-+extern int64_t os_getfdsize(OS_FD fd);
-+extern int64_t os_getfilesize(char *path);
- extern void os_set_nonblock(OS_SOCKET fd);
- extern void os_uname(char buf[]);
- extern int os_os_supported();
diff --git a/net/mldonkey/patches/patch-src_utils_lib_syslog.ml b/net/mldonkey/patches/patch-src_utils_lib_syslog.ml
deleted file mode 100644
index 66fc207c519..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_syslog.ml
+++ /dev/null
@@ -1,47 +0,0 @@
-$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
deleted file mode 100644
index f043cc8e057..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_tiger.c
+++ /dev/null
@@ -1,24 +0,0 @@
-$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
deleted file mode 100644
index 60fc59f7dca..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_unix32.ml
+++ /dev/null
@@ -1,80 +0,0 @@
-$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
deleted file mode 100644
index 60ba4c452b5..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_unix32.mli
+++ /dev/null
@@ -1,20 +0,0 @@
-$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
deleted file mode 100644
index 468952b691c..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_url.ml
+++ /dev/null
@@ -1,34 +0,0 @@
-$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
deleted file mode 100644
index ea42136a331..00000000000
--- a/net/mldonkey/patches/patch-src_utils_lib_verificationBitmap.ml
+++ /dev/null
@@ -1,72 +0,0 @@
-$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
deleted file mode 100644
index 84bf419ce1a..00000000000
--- a/net/mldonkey/patches/patch-src_utils_net_terminal.ml
+++ /dev/null
@@ -1,15 +0,0 @@
-$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
- let canal = List.assoc chan !chanmap in
- etat.chan <- Some (chan, canal);
- info (sprintf "connecte au canal '%s'" chan);
-- (* {| canal ALL } *)
-+ (* { | canal ALL } *)
- with Not_found -> (* pas encore de recepteur pour ce canal *)
- try (* on en cree un *)
- let serveur = nsrecord.get_loc chan in