Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ocaml-camlbz2 for openSUSE:Factory 
checked in at 2021-04-29 01:36:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ocaml-camlbz2 (Old)
 and      /work/SRC/openSUSE:Factory/.ocaml-camlbz2.new.12324 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ocaml-camlbz2"

Thu Apr 29 01:36:42 2021 rev:2 rq:867926 version:0.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ocaml-camlbz2/ocaml-camlbz2.changes      
2020-03-03 10:19:35.887067199 +0100
+++ /work/SRC/openSUSE:Factory/.ocaml-camlbz2.new.12324/ocaml-camlbz2.changes   
2021-04-29 01:37:09.538472862 +0200
@@ -1,0 +2,6 @@
+Thu Jan 21 21:21:21 UTC 2021 - [email protected]
+
+- Update to version 0.7.0
+- build with dune via ocaml-camlbz2.patch
+
+-------------------------------------------------------------------

Old:
----
  ocaml-camlbz2-0.6.0.tar.xz

New:
----
  ocaml-camlbz2-0.7.0.tar.xz
  ocaml-camlbz2.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ocaml-camlbz2.spec ++++++
--- /var/tmp/diff_new_pack.ZIutgs/_old  2021-04-29 01:37:09.938473429 +0200
+++ /var/tmp/diff_new_pack.ZIutgs/_new  2021-04-29 01:37:09.938473429 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ocaml-camlbz2
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,18 @@
 
 
 Name:           ocaml-camlbz2
-Version:        0.6.0
+Version:        0.7.0
 Release:        0
 %{?ocaml_preserve_bytecode}
 Summary:        OCaml bindings for bz2
 License:        LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception
 Group:          Development/Languages/OCaml
-URL:            https://github.com/olafhering/camlbz2
+URL:            https://opam.ocaml.org/packages/camlbz2
 Source0:        %{name}-%{version}.tar.xz
+Patch0:         ocaml-camlbz2.patch
 BuildRequires:  ocaml
 BuildRequires:  ocaml-dune
-BuildRequires:  ocaml-rpm-macros >= 20191101
+BuildRequires:  ocaml-rpm-macros >= 20210121
 BuildRequires:  ocamlfind(dune.configurator)
 BuildRequires:  ocamlfind(stdlib-shims)
 BuildRequires:  pkgconfig(bzip2)

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ZIutgs/_old  2021-04-29 01:37:09.966473469 +0200
+++ /var/tmp/diff_new_pack.ZIutgs/_new  2021-04-29 01:37:09.966473469 +0200
@@ -1,11 +1,13 @@
 <services>
   <service name="tar_scm" mode="disabled">
     <param name="filename">ocaml-camlbz2</param>
-    <param name="revision">dune</param>
+    <param name="revision">e5a008a9672f28d281ff9bc3e39838b1b90186f1</param>
     <param name="scm">git</param>
     <param name="submodules">disable</param>
-    <param name="url">https://github.com/olafhering/ocaml-camlbz2.git</param>
-    <param name="versionformat">0.6.0</param>
+    <param name="url">https://gitlab.com/irill/camlbz2.git</param>
+    <param name="versionformat">@PARENT_TAG@</param>
+    <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param>
+    <param name="versionrewrite-replacement">\1</param>
   </service>
   <service name="recompress" mode="disabled">
     <param name="file">*.tar</param>

++++++ ocaml-camlbz2-0.6.0.tar.xz -> ocaml-camlbz2-0.7.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/BUGS new/ocaml-camlbz2-0.7.0/BUGS
--- old/ocaml-camlbz2-0.6.0/BUGS        1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/BUGS        2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,9 @@
+
+BUGS
+====
+
+Please look for them and report them into the CamlBZ2 bug tracker,
+available at:
+
+  http://forge.ocamlcore.org/tracker/?group_id=63
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/ChangeLog 
new/ocaml-camlbz2-0.7.0/ChangeLog
--- old/ocaml-camlbz2-0.6.0/ChangeLog   1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/ChangeLog   2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,23 @@
+2021-01-18  Johannes Schauer Marin Rodrigues  <[email protected]>
+
+       * Version 0.7.0 released
+       * No changes to the last version but bumping the version number to
+         indicate a breaking change compared to 0.6.0
+
+2021-01-11  Johannes Schauer Marin Rodrigues  <[email protected]>
+
+       * Version 0.6.1 released
+       * Changes with respect to 0.6.0:
+         - add examples/ dir, with a "bunzip2" replacement example
+         - change interface to use bytes instead of string because the latter
+           is immutable
+
+2008-11-08  Stefano Zacchiroli  <[email protected]>
+
+       * Version 0.6.0 released
+       * Changes with respect to 0.5.99:
+         - update copyright headers
+         - get rid of bashisms in Makefile
+         - add docs pointing to forge entry points
+         - fix Findlib names: now consistently "bz2"
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/INSTALL 
new/ocaml-camlbz2-0.7.0/INSTALL
--- old/ocaml-camlbz2-0.6.0/INSTALL     1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/INSTALL     2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,20 @@
+
+INSTALLING
+==========
+
+* `./configure`
+* `make all` builds the bytecode and native-code libraries (where
+  available), and the stub code
+* `make install` (or `make install DESTDIR=/shome/where/else`)
+
+Options:
+
+* for configure : 
+  CPPFLAGS="-I <location of zlib header>"
+  LIBS="-L <location of zlib library>"
+
+Requirements:
+
+- OCaml >= 3.10
+- Findlib
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/META new/ocaml-camlbz2-0.7.0/META
--- old/ocaml-camlbz2-0.6.0/META        1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/META        2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,3 @@
+version           = "x.y.z"
+archive(byte)     = "bz2.cma"
+archive(native)   = "bz2.cmxa"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/Makefile.in 
new/ocaml-camlbz2-0.7.0/Makefile.in
--- old/ocaml-camlbz2-0.6.0/Makefile.in 1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/Makefile.in 2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,135 @@
+OCAMLC := @OCAMLC@
+OCAMLOPT := @OCAMLOPT@
+OCAMLDEP := @OCAMLDEP@
+OCAMLLIB := @OCAMLLIB@
+OCAMLFIND := @OCAMLFIND@
+OCAMLDOC := @OCAMLDOC@
+OCAMLMKLIB := @OCAMLMKLIB@
+
+INSTALL := @INSTALL@
+INSTALL_DATA := @INSTALL_DATA@
+INSTALLDIR := @INSTALLDIR@
+
+CLIBS := $(filter -l%,@LIBS@)
+CLIBSDIR := $(filter -L%,@LIBS@)
+BZ_PREFIX := @BZ_PREFIX@
+CPPFLAGS = $(if $(BZ_PREFIX),-D BZ_PREFIX) @CPPFLAGS@
+
+NAME := camlbz2
+SHORTNAME := bz2
+VERSION := 0.6.0
+
+INSTALLFILES := \
+       $(SHORTNAME).cmi $(SHORTNAME).mli $(SHORTNAME).cma \
+       dll$(NAME).so lib$(NAME).a
+
+DISTSRC := $(SHORTNAME).ml $(SHORTNAME).mli \
+       c_bz.c io.h \
+       aclocal.m4 install-sh \
+       Makefile.in configure configure.in \
+       META doc \
+       BUGS COPYING INSTALL LICENSE README ROADMAP ChangeLog
+
+DESTDIR =
+
+ifndef OCAMLOPT
+all : stub lib
+else
+INSTALLFILES += $(SHORTNAME).cmx $(SHORTNAME).cmxa $(SHORTNAME).a
+all : stub lib libopt
+endif
+
+ifdef OCAMLFIND
+install : findlib-install
+ifeq ($(DESTDIR),)
+DESTDIR_FLAGS =
+else
+DESTDIR_FLAGS = -destdir $(DESTDIR)
+findlib-install : install-mkdir
+install-mkdir :
+       test -d $(DESTDIR) || mkdir -p $(DESTDIR)
+endif
+else
+install : normal-install
+endif
+
+stub   : dll$(NAME).so lib$(NAME).a
+lib    : $(SHORTNAME).cma
+libopt : $(SHORTNAME).cmxa
+
+lib$(NAME).a dll$(NAME).so : c_bz.o
+       $(OCAMLMKLIB) -oc $(NAME) $^ $(CLIBS) $(CLIBSDIR)
+
+$(SHORTNAME).cma : $(SHORTNAME).cmo
+       $(OCAMLMKLIB) -oc $(NAME) -o $(SHORTNAME) $^ $(CLIBS) $(CLIBSDIR)
+
+$(SHORTNAME).cmxa : bz2.cmx
+       $(OCAMLMKLIB) -oc $(NAME) -o $(SHORTNAME) $^ $(CLIBS) $(CLIBSDIR)
+
+
+test : INCDIR= $(if $(OCAMLFIND),$(shell ocamlfind query 
$(SHORTNAME)),$(INSTALLDIR))
+test : test.ml
+       $(OCAMLC) -o $@ -dllpath $(INCDIR) -I $(INCDIR) $(SHORTNAME).cma $^
+
+test.opt : INCDIR= $(if $(OCAMLFIND),$(shell ocamlfind query 
$(SHORTNAME)),$(INSTALLDIR))
+test.opt : test.ml
+       $(OCAMLOPT) -o $@ -I $(INCDIR) $(SHORTNAME).cmxa $^
+
+normal-install: all
+       mkdir -p $(INSTALLDIR)
+       $(INSTALL_DATA) $(INSTALLFILES) $(INSTALLDIR)
+       @echo "You need to put a link to the shared stub in $$($(OCAMLC) 
-where)/stublibs"
+
+findlib-install: all
+       -$(OCAMLFIND) remove $(DESTDIR_FLAGS) $(SHORTNAME)
+       $(OCAMLFIND) install $(DESTDIR_FLAGS) \
+               -patch-version $(VERSION) -ldconf ignore \
+               $(SHORTNAME) META $(INSTALLFILES)
+
+clean:
+       rm -f *.cm* *.a *.so *.o *.opt test test.opt .depend
+distclean: clean
+       rm -f config.log config.status Makefile
+maintainer-clean: distclean
+       rm -rf aclocal.m4 doc/
+       rm -f aclocal.m4 configure
+
+ifdef OCAMLDOC
+doc : doc/index.html
+doc/index.html : bz2.mli
+       mkdir -p doc/
+       $(OCAMLDOC) -html -d doc $^ 
+else
+doc : ; $(error "you need ocamldoc to generate the documentation")
+endif
+
+dist: doc $(NAME)-$(VERSION).tar.gz
+
+$(NAME)-$(VERSION).tar.gz: dummy
+       cd .. && mv $(NAME) $(NAME)-$(VERSION) && \
+       tar zcvf $@ $(addprefix $(NAME)-$(VERSION)/, $(DISTSRC)) && \
+       mv $(NAME)-$(VERSION) $(NAME)
+
+.PHONY: all lib libopt clean doc dist normal-install findlib-install dummy stub
+
+%.cmo : %.ml
+       $(OCAMLC) -c $<
+
+%.cmx : %.ml
+       $(OCAMLOPT) -c $<
+
+%.cmi : %.mli
+       $(OCAMLC) -c $<
+
+%.o : %.c
+       $(OCAMLC) -ccopt "$(CPPFLAGS) $(CFLAGS)" -c $<
+
+.depend : $(wildcard *.ml *.mli)
+       -@$(OCAMLDEP) $^ > .depend
+
+-include .depend
+
+configure : configure.in aclocal.m4
+       autoconf
+aclocal.m4 : ocaml.m4
+       aclocal -I .
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/ROADMAP 
new/ocaml-camlbz2-0.7.0/ROADMAP
--- old/ocaml-camlbz2-0.6.0/ROADMAP     1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/ROADMAP     2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,20 @@
+
+ROADMAP
+=======
+
+* 0.7.0
+
+- bindings for the "low-level" bzip2 (de)compression API
+
+   http://www.bzip.org/1.0.5/bzip2-manual-1.0.5.html#low-level
+
+   That API would enable to (de)compress in memory, without forcibly
+   having to (de)compress all the data at once (as currently supported
+   by Bz2.{un,}compress). Low-level API bindings are a must for
+   integration into Batteries (http://batteries.forge.ocamlcore.org).
+
+* 0.6.0
+
+- feature complete wrt the latest "GZ" release
+   (of course excluding zlib bindings, which have been removed)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/bz2.ml 
new/ocaml-camlbz2-0.7.0/bz2.ml
--- old/ocaml-camlbz2-0.6.0/bz2.ml      2019-10-17 12:01:44.000000000 +0200
+++ new/ocaml-camlbz2-0.7.0/bz2.ml      2021-01-18 17:38:53.000000000 +0100
@@ -28,31 +28,31 @@
 
 let version = library_version ()
 
-external open_in : ?small:bool -> ?unused:string -> 
Stdlib.Pervasives.in_channel ->
+external open_in : ?small:bool -> ?unused:bytes -> Pervasives.in_channel ->
   in_channel 
   = "mlbz_readopen"
 
-external read : in_channel -> string -> int -> int -> int
+external read : in_channel -> bytes -> int -> int -> int
   = "mlbz_read"
 
-external read_get_unused : in_channel -> string
+external read_get_unused : in_channel -> bytes
   = "mlbz_readgetunused"
 
 external close_in : in_channel -> unit
   = "mlbz_readclose"
 
-external open_out : ?block:int -> Stdlib.Pervasives.out_channel -> out_channel
+external open_out : ?block:int -> Pervasives.out_channel -> out_channel
   = "mlbz_writeopen"
 
-external write : out_channel -> string -> int -> int -> unit
+external write : out_channel -> bytes -> int -> int -> unit
   = "mlbz_write"
 
 external close_out : out_channel -> unit
   = "mlbz_writeclose"
 
 
-external compress : ?block:int -> string -> int -> int -> string
+external compress : ?block:int -> bytes -> int -> int -> bytes
   = "mlbz_compress"
 
-external uncompress : ?small:bool -> string -> int -> int -> string
+external uncompress : ?small:bool -> bytes -> int -> int -> bytes
   = "mlbz_uncompress"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/bz2.mli 
new/ocaml-camlbz2-0.7.0/bz2.mli
--- old/ocaml-camlbz2-0.6.0/bz2.mli     2019-10-17 12:01:44.000000000 +0200
+++ new/ocaml-camlbz2-0.7.0/bz2.mli     2021-01-18 17:38:53.000000000 +0100
@@ -51,7 +51,7 @@
     decompressing that is slower but uses less memory. Defaults:
     [false]
 *)
-val open_in : ?small:bool -> ?unused:string -> Stdlib.Pervasives.in_channel ->
+val open_in : ?small:bool -> ?unused:bytes -> Pervasives.in_channel ->
   in_channel
 
 (** [read buf pos len] reads up to [len] characters and store them in
@@ -61,12 +61,12 @@
     [len] means end of stream).
 
     @raise End_of_file if end of stream was already reached. *)
-val read : in_channel -> string -> int -> int -> int
+val read : in_channel -> bytes -> int -> int -> int
 
 (** If there's some data after the compressed stream that you want to
     read from the same [Pervasives] [in_channel], use
     [read_get_unused]. *)
-val read_get_unused : in_channel -> string
+val read_get_unused : in_channel -> bytes
 
 val close_in : in_channel -> unit
 
@@ -81,11 +81,11 @@
     @param block block size to use for compresion. It is a value
     between 1 and 9 inclusive. 9 is the default and provides best
     compression but takes most memory. *)
-val open_out : ?block:int -> Stdlib.Pervasives.out_channel -> out_channel
+val open_out : ?block:int -> Pervasives.out_channel -> out_channel
 
 (** [write oc buf pos len] writes [len] characters, coming from [buf]
     and starting at position [pos], to [oc] *)
-val write : out_channel -> string -> int -> int -> unit
+val write : out_channel -> bytes -> int -> int -> unit
 
 val close_out : out_channel -> unit
 
@@ -98,11 +98,11 @@
     [len] character long, and starting at [pos].
 
     @return compressed data chunk as string *)
-val compress : ?block:int -> string -> int -> int -> string
+val compress : ?block:int -> bytes -> int -> int -> bytes
 
 (** [uncompress buf pos len] uncompress a data chunk comfing from
     [buf], [len] character long, and starting at [pos].
 
     @param small see [Bz2.open_in] above
     @return uncompressed data chunk as string *)
-val uncompress : ?small:bool -> string -> int -> int -> string
+val uncompress : ?small:bool -> bytes -> int -> int -> bytes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/config/discover.ml 
new/ocaml-camlbz2-0.7.0/config/discover.ml
--- old/ocaml-camlbz2-0.6.0/config/discover.ml  2019-10-17 12:01:44.000000000 
+0200
+++ new/ocaml-camlbz2-0.7.0/config/discover.ml  1970-01-01 01:00:00.000000000 
+0100
@@ -1,21 +0,0 @@
-module C = Configurator.V1
-
-let () =
-C.main ~name:"bz2" (fun c ->
-
-let stale_bzip2 : C.Pkg_config.package_conf = {
- libs = [ "-lbz2" ];
- cflags = []
-} in
-
-let conf =
-  match C.Pkg_config.get c with
-  | None -> C.die "'pkg-config' missing"
-  | Some pc ->
-    match (C.Pkg_config.query pc ~package:"bzip2") with
-      | None -> stale_bzip2
-      | Some deps -> deps
-  in
-
-  C.Flags.write_sexp "c_flags.sexp"         conf.cflags;
-  C.Flags.write_sexp "c_library_flags.sexp" conf.libs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/config/dune 
new/ocaml-camlbz2-0.7.0/config/dune
--- old/ocaml-camlbz2-0.6.0/config/dune 2019-10-17 12:01:44.000000000 +0200
+++ new/ocaml-camlbz2-0.7.0/config/dune 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-(executable
- (name discover)
- (libraries dune.configurator))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/configure.in 
new/ocaml-camlbz2-0.7.0/configure.in
--- old/ocaml-camlbz2-0.6.0/configure.in        1970-01-01 01:00:00.000000000 
+0100
+++ new/ocaml-camlbz2-0.7.0/configure.in        2021-01-18 17:38:53.000000000 
+0100
@@ -0,0 +1,42 @@
+# autoconf input using ocaml.m4
+
+AC_INIT(bz2.mli)
+
+use_findlib=yes
+# check for OCaml compiler
+AC_PROG_OCAML
+AC_PROG_FINDLIB
+AC_ARG_OCAML_INSTALLDIR
+
+AC_CACHE_SAVE
+
+# check the C compiler
+if test "$CFLAGS" = "" ; then
+       CFLAGS="-O2"
+fi
+AC_PROG_CC
+AC_PROG_INSTALL
+
+# check for bzlib
+AC_CHECK_HEADER(bzlib.h,,AC_MSG_ERROR(not found))
+
+BZ_PREFIX="BZ2_"
+not_ok=""
+AC_CHECK_LIB(bz2,${BZ_PREFIX}bzReadOpen,,not_ok=y)
+if test $not_ok
+then 
+  not_ok=""
+  BZ_PREFIX=""
+  AC_CHECK_LIB(bz2,${BZ_PREFIX}bzReadOpen,,not_ok=y)
+fi  
+if test $not_ok
+then AC_MSG_ERROR(libbz2 not found)
+fi
+unset not_ok
+
+AC_SUBST(CFLAGS)
+AC_SUBST(LIBS)
+AC_SUBST(BZ_PREFIX)
+
+# Finally create the Makefile from Makefile.in
+AC_OUTPUT(Makefile)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/dune new/ocaml-camlbz2-0.7.0/dune
--- old/ocaml-camlbz2-0.6.0/dune        2019-10-17 12:01:44.000000000 +0200
+++ new/ocaml-camlbz2-0.7.0/dune        1970-01-01 01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-(library
- (public_name bz2)
- (synopsis "bindings for bzip2")
- (modules bz2)
- (libraries stdlib-shims)
- (c_names c_bz)
- (c_flags
-  "-DBZ_PREFIX"
-  (:include c_flags.sexp))
- (c_library_flags
-  (:include c_library_flags.sexp)))
-
-(rule
- (targets c_flags.sexp c_library_flags.sexp)
- (deps
-  (:discover config/discover.exe))
- (action
-  (run %{discover})))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/dune-project 
new/ocaml-camlbz2-0.7.0/dune-project
--- old/ocaml-camlbz2-0.6.0/dune-project        2019-10-17 12:01:44.000000000 
+0200
+++ new/ocaml-camlbz2-0.7.0/dune-project        1970-01-01 01:00:00.000000000 
+0100
@@ -1,22 +0,0 @@
-(lang dune 1.10)
-
-(generate_opam_files true)
-
-(license "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception")
-
-(authors
-  "Olivier Andrieu <[email protected]>, Nicolas George 
<[email protected]>")
-
-(maintainers
-  "Stefano Zacchiroli <[email protected]>, Olivier Andrieu <[email protected]>")
-
-(homepage "http://camlbz2.forge.ocamlcore.org/";)
-
-(bug_reports "http://forge.ocamlcore.org/tracker/?atid=338&group_id=63";)
-
-(package
- (name bz2)
- (synopsis "OCaml bindings for bzip2")
- (description
-   "This is CamlBZ2, OCaml bindings for the libbz2 (AKA, bzip2) 
(de)compression library.")
- (depends "dune.configurator"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/examples/bunzip2.ml 
new/ocaml-camlbz2-0.7.0/examples/bunzip2.ml
--- old/ocaml-camlbz2-0.6.0/examples/bunzip2.ml 2019-10-17 12:01:44.000000000 
+0200
+++ new/ocaml-camlbz2-0.7.0/examples/bunzip2.ml 2021-01-18 17:38:53.000000000 
+0100
@@ -30,13 +30,13 @@
   open_out (Filename.chop_suffix iname ".bz2")
 
 let buflen = 8192
-let buf = String.make buflen (char_of_int 0x0)
+let buf = String.create buflen
 let bzic = Bz2.open_in ic
 let _ =
   try
     while true do
       let bytes = Bz2.read bzic buf 0 buflen in
-       output oc (Bytes.of_string buf) 0 bytes;
+       output oc buf 0 bytes;
        if bytes < buflen then raise End_of_file
     done
   with End_of_file -> ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/examples/dune 
new/ocaml-camlbz2-0.7.0/examples/dune
--- old/ocaml-camlbz2-0.6.0/examples/dune       2019-10-17 12:01:44.000000000 
+0200
+++ new/ocaml-camlbz2-0.7.0/examples/dune       1970-01-01 01:00:00.000000000 
+0100
@@ -1,4 +0,0 @@
-(executable
- (name bunzip2)
- (public_name ocaml-bunzip2)
- (libraries bz2))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/install-sh 
new/ocaml-camlbz2-0.7.0/install-sh
--- old/ocaml-camlbz2-0.6.0/install-sh  1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/install-sh  2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,323 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2005-05-14.22
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+chmodcmd="$chmodprog 0755"
+chowncmd=
+chgrpcmd=
+stripcmd=
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c         (ignored)
+-d         create directories instead of installing files.
+-g GROUP   $chgrpprog installed files to GROUP.
+-m MODE    $chmodprog installed files to MODE.
+-o USER    $chownprog installed files to USER.
+-s         $stripprog installed files.
+-t DIRECTORY  install into DIRECTORY.
+-T         report an error if DSTFILE is a directory.
+--help     display this help and exit.
+--version  display version info and exit.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+  case $1 in
+    -c) shift
+        continue;;
+
+    -d) dir_arg=true
+        shift
+        continue;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift
+        shift
+        continue;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) chmodcmd="$chmodprog $2"
+        shift
+        shift
+        continue;;
+
+    -o) chowncmd="$chownprog $2"
+        shift
+        shift
+        continue;;
+
+    -s) stripcmd=$stripprog
+        shift
+        continue;;
+
+    -t) dstarg=$2
+       shift
+       shift
+       continue;;
+
+    -T) no_target_directory=true
+       shift
+       continue;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    *)  # When -d is used, all remaining arguments are directories to create.
+       # When -t is used, the destination is already specified.
+       test -n "$dir_arg$dstarg" && break
+        # Otherwise, the last argument is the destination.  Remove it from $@.
+       for arg
+       do
+          if test -n "$dstarg"; then
+           # $@ is not empty: it contains at least $arg.
+           set fnord "$@" "$dstarg"
+           shift # fnord
+         fi
+         shift # arg
+         dstarg=$arg
+       done
+       break;;
+  esac
+done
+
+if test -z "$1"; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src ;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    src=
+
+    if test -d "$dst"; then
+      mkdircmd=:
+      chmodcmd=
+    else
+      mkdircmd=$mkdirprog
+    fi
+  else
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dstarg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dstarg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst ;;
+    esac
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+       echo "$0: $dstarg: Is a directory" >&2
+       exit 1
+      fi
+      dst=$dst/`basename "$src"`
+    fi
+  fi
+
+  # This sed command emulates the dirname command.
+  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+  # Make sure that the destination directory exists.
+
+  # Skip lots of stat calls in the usual case.
+  if test ! -d "$dstdir"; then
+    defaultIFS='
+        '
+    IFS="${IFS-$defaultIFS}"
+
+    oIFS=$IFS
+    # Some sh's can't handle IFS=/ for some reason.
+    IFS='%'
+    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+    shift
+    IFS=$oIFS
+
+    pathcomp=
+
+    while test $# -ne 0 ; do
+      pathcomp=$pathcomp$1
+      shift
+      if test ! -d "$pathcomp"; then
+        $mkdirprog "$pathcomp"
+       # mkdir can fail with a `File exist' error in case several
+       # install-sh are creating the directory concurrently.  This
+       # is OK.
+       test -d "$pathcomp" || exit
+      fi
+      pathcomp=$pathcomp/
+    done
+  fi
+
+  if test -n "$dir_arg"; then
+    $doit $mkdircmd "$dst" \
+      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+  else
+    dstfile=`basename "$dst"`
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+    trap '(exit $?); exit' 1 2 13 15
+
+    # Copy the file name to the temp name.
+    $doit $cpprog "$src" "$dsttmp" &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+    # Now rename the file to the real destination.
+    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+      || {
+          # The rename failed, perhaps because mv can't rename something else
+          # to itself, or perhaps because mv is so ancient that it does not
+          # support -f.
+
+          # Now remove or move aside any old file at destination location.
+          # We try this two ways since rm can't unlink itself on some
+          # systems and the destination file might be busy for other
+          # reasons.  In this case, the final cleanup might fail but the new
+          # file should still install successfully.
+          {
+            if test -f "$dstdir/$dstfile"; then
+              $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+              || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+              || {
+                echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+                (exit 1); exit 1
+              }
+            else
+              :
+            fi
+          } &&
+
+          # Now rename the file to the real destination.
+          $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+        }
+    }
+  fi || { (exit 1); exit 1; }
+done
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+  (exit 0); exit 0
+}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ocaml-camlbz2-0.6.0/ocaml.m4 
new/ocaml-camlbz2-0.7.0/ocaml.m4
--- old/ocaml-camlbz2-0.6.0/ocaml.m4    1970-01-01 01:00:00.000000000 +0100
+++ new/ocaml-camlbz2-0.7.0/ocaml.m4    2021-01-18 17:38:53.000000000 +0100
@@ -0,0 +1,207 @@
+dnl -*- autoconf -*- macros for OCaml
+dnl by Olivier Andrieu
+dnl from a configure.in by Jean-Christophe Filli?tre,
+dnl from a first script by Georges Mariano
+dnl
+dnl defines AC_PROG_OCAML that will check the OCaml compiler
+dnl and set the following variables :
+dnl   OCAMLC        "ocamlc" if present in the path, or a failure
+dnl                 or "ocamlc.opt" if present with same version number as 
ocamlc
+dnl   OCAMLOPT      "ocamlopt" (or "ocamlopt.opt" if present), or unset
+dnl   OCAMLBEST     either "byte" if no native compiler was found, 
+dnl                 "opt" otherwise
+dnl   OCAMLDEP      "ocamldep"
+dnl   OCAMLLIB      the path to the ocaml standard library
+dnl   OCAMLVERSION  the ocaml version number
+dnl
+dnl   OCAMLMKTOP    
+dnl   OCAMLMKLIB    
+dnl   OCAMLDOC
+AC_DEFUN(AC_PROG_OCAML,
+[dnl
+# checking for ocamlc
+AC_CHECK_PROG(OCAMLC,ocamlc,ocamlc,AC_MSG_ERROR(Cannot find ocamlc.))
+OCAMLVERSION=$($OCAMLC -version)
+AC_MSG_RESULT(OCaml version is $OCAMLVERSION)
+OCAMLLIB=$($OCAMLC -where)
+AC_MSG_RESULT(OCaml library path is $OCAMLLIB)
+# checking for ocamlopt
+AC_CHECK_PROG(OCAMLOPT,ocamlopt,ocamlopt)
+OCAMLBEST=byte
+if test -z "$OCAMLOPT"; then
+       AC_MSG_WARN(Cannot find ocamlopt; bytecode compilation only.)
+else
+       TMPVERSION=$($OCAMLOPT -version)
+       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+           AC_MSG_RESULT(versions differs from ocamlc; ocamlopt discarded.)
+           unset OCAMLOPT
+       else
+           OCAMLBEST=opt
+       fi
+fi
+# checking for ocamlc.opt
+AC_CHECK_PROG(OCAMLCDOTOPT,ocamlc.opt,ocamlc.opt)
+if test "$OCAMLCDOTOPT"; then
+       TMPVERSION=$($OCAMLCDOTOPT -version)
+       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+           AC_MSG_RESULT(versions differs from ocamlc; ocamlc.opt discarded.)
+       else
+           OCAMLC=$OCAMLCDOTOPT
+       fi
+fi
+# checking for ocamlopt.opt
+if test "$OCAMLOPT" ; then
+    AC_CHECK_PROG(OCAMLOPTDOTOPT,ocamlopt.opt,ocamlopt.opt)
+    if test "$OCAMLOPTDOTOPT"; then
+       TMPVERSION=$($OCAMLOPTDOTOPT -version)
+       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+           AC_MSG_RESULT(version differs from ocamlc; ocamlopt.opt discarded.)
+       else
+           OCAMLOPT=$OCAMLOPTDOTOPT
+       fi
+    fi
+fi
+# checking for ocamldep
+AC_CHECK_PROG(OCAMLDEP,ocamldep,ocamldep,AC_MSG_ERROR(Cannot find ocamldep.))
+
+#checking for ocamlmktop
+AC_CHECK_PROG(OCAMLMKTOP,ocamlmktop,ocamlmktop, AC_MSG_WARN(Cannot find 
ocamlmktop.))
+#checking for ocamlmklib
+AC_CHECK_PROG(OCAMLMKLIB,ocamlmklib,ocamlmklib, AC_MSG_WARN(Cannot find 
ocamlmklib.))
+# checking for ocamldoc
+AC_CHECK_PROG(OCAMLDOC,ocamldoc,ocamldoc, AC_MSG_WARN(Cannot find ocamldoc.))
+
+# get the C compiler used by ocamlc
+if test -z "$CC" ; then
+  touch conftest.c
+  CC=$($OCAMLC -verbose conftest.c 2>&1 | awk '/^+/ {print $[]2 ; exit}')
+  echo OCaml uses $CC to compile C files
+fi
+
+AC_SUBST(OCAMLC)
+AC_SUBST(OCAMLOPT)
+AC_SUBST(OCAMLDEP)
+AC_SUBST(OCAMLBEST)
+AC_SUBST(OCAMLVERSION)
+AC_SUBST(OCAMLLIB)
+AC_SUBST(OCAMLMKLIB)
+AC_SUBST(OCAMLMKTOP)
+AC_SUBST(OCAMLDOC)
+])
+dnl
+dnl
+dnl
+dnl macro AC_PROG_OCAML_TOOLS will check OCamllex and OCamlyacc :
+dnl   OCAMLLEX      "ocamllex" or "ocamllex.opt" if present
+dnl   OCAMLYACC     "ocamlyac"
+AC_DEFUN(AC_PROG_OCAML_TOOLS,
+[dnl
+# checking for ocamllex and ocamlyacc
+AC_CHECK_PROG(OCAMLLEX,ocamllex,ocamllex,AC_MSG_ERROR(Cannot find ocamllex.))
+if test "$OCAMLLEX"; then
+    AC_CHECK_PROG(OCAMLLEXDOTOPT,ocamllex.opt,ocamllex.opt)
+    if test "$OCAMLLEXDOTOPT"; then
+       OCAMLLEX=$OCAMLLEXDOTOPT
+    fi
+fi
+AC_CHECK_PROG(OCAMLYACC,ocamlyacc,ocamlyacc,AC_MSG_ERROR(Cannot find 
ocamlyacc.))
+AC_SUBST(OCAMLLEX)
+AC_SUBST(OCAMLYACC)
+])
+dnl
+dnl
+dnl
+dnl AC_PROG_CAMLP4 checks for Camlp4
+AC_DEFUN(AC_PROG_CAMLP4,
+[dnl
+AC_REQUIRE([AC_PROG_OCAML])
+# checking for camlp4
+AC_CHECK_PROG(CAMLP4,camlp4,camlp4)
+if test "$CAMLP4"; then
+       TMPVERSION=$($CAMLP4 -v 2>&1| sed -n -e 's|.*version *\(.*\)$|\1|p')
+       if test "$TMPVERSION" != "$OCAMLVERSION" ; then
+           AC_MSG_ERROR(versions differs from ocamlc)
+       else
+           AC_CHECK_PROG(CAMLP4O,camlp4o,camlp4o)
+       fi
+fi
+AC_SUBST(CAMLP4)
+AC_SUBST(CAMLP4O)
+])
+dnl
+dnl
+dnl
+dnl macro AC_PROG_FINDLIB will check for the presence of
+dnl   ocamlfind if configure is called with --with-findlib
+AC_DEFUN(AC_PROG_FINDLIB,
+[dnl
+AC_ARG_WITH(findlib,[  --with-findlib    use findlib package system],
+  use_findlib="$withval")
+# checking for ocamlfind
+if test "$use_findlib" = yes ; then 
+       AC_CHECK_PROG(OCAMLFIND,ocamlfind,ocamlfind,
+         AC_MSG_ERROR(ocamlfind not found))
+else
+       unset OCAMLFIND
+fi
+AC_SUBST(OCAMLFIND)
+])
+dnl
+dnl
+dnl
+dnl AC_CHECK_OCAML_PKG checks wether a findlib package is present
+dnl   defines pkg_name to name
+AC_DEFUN(AC_CHECK_OCAML_PKG,
+[dnl
+AC_REQUIRE([AC_PROG_FINDLIB])
+if test "$use_findlib" = yes ; then 
+       AC_MSG_CHECKING(findlib package $1)
+       if $OCAMLFIND query $1 >/dev/null 2>/dev/null; then
+       AC_MSG_RESULT(found)
+       pkg_$1="$1"
+       else
+       AC_MSG_WARN(not found)
+       unset pkg_$1
+       fi
+fi
+])
+dnl
+dnl
+dnl
+dnl AC_ARG_OCAML_INSTALLDIR adds a --with-installdir option
+AC_DEFUN(AC_ARG_OCAML_INSTALLDIR,
+[dnl
+AC_ARG_WITH(installdir,[  --with-installdir=DIR          specify installation 
directory],INSTALLDIR="$withval")
+if ! test "$INSTALLDIR" -o "$use_findlib" ; then
+    INSTALLDIR='$(OCAMLLIB)/$(NAME)'
+fi
+AC_SUBST(INSTALLDIR)
+])
+dnl
+dnl
+dnl
+dnl AC_CHECK_OCAML_MODULE looks for a module in a given path
+dnl 1 -> name (for printing)
+dnl 2 -> env var name
+dnl 3 -> module to check
+dnl 4 -> default dirs
+AC_DEFUN(AC_CHECK_OCAML_MODULE,
+[dnl
+AC_MSG_CHECKING($1 directory)
+cat > conftest.ml <<EOF
+open $3
+EOF
+unset found
+for $2 in $$2 $4 ; do
+  if $OCAMLC -c -I "$$2" conftest.ml > /dev/null 2>&1 ; then
+    found=yes
+    break
+  fi
+done
+if test "$found" ; then
+  AC_MSG_RESULT($$2)
+else
+  AC_MSG_RESULT(not found)
+  unset $2
+fi
+AC_SUBST($2)])

++++++ ocaml-camlbz2.patch ++++++
--- a/c_bz.c
+++ b/c_bz.c
@@ -118,7 +118,7 @@ value mlbz_readopen(value small, value u
   if(Is_block(small))
     c_small = Bool_val(Field(small, 0)) ;
   if(Is_block(unused)){
-    c_unused  = String_val(Field(unused, 0)) ;
+    c_unused  = &Byte(Field(unused, 0), 0);
     c_nunused = string_length(Field(unused, 0));
   }
   c_chan = stream_of_channel(chan, "rb") ;
@@ -140,7 +140,7 @@ value mlbz_read(value chan, value buf, v
   if((c_len + c_pos > string_length(buf))
      || (c_len < 0) || (c_pos < 0))
     invalid_argument("Bz.read") ;
-  c_buf = String_val(buf) + c_pos ;
+  c_buf = &Byte(buf, c_pos);
   res = BZ_P(bzRead)(&bzerror, Bzfile_val(chan), c_buf, c_len) ;
   if(bzerror == BZ_STREAM_END)
     set_eof_flag(chan) ;
@@ -171,7 +171,7 @@ value mlbz_readgetunused(value chan)
   BZ_P(bzReadGetUnused)(&bzerror, Bzfile_val(chan), &unused, &nunused) ;
   mlbz_error(bzerror, "Bz.read_get_unused: not at end of stream", chan, 1) ;
   result = alloc_string(nunused) ;
-  memcpy(String_val(result), unused, nunused) ;
+  memcpy(&Byte(result, 0), unused, nunused) ;
   return result;
 }
 
@@ -201,7 +201,7 @@ value mlbz_write(value chan, value buf,
   if((c_len + c_pos > string_length(buf))
      || (c_len < 0) || (c_pos < 0))
     invalid_argument("Bz.write") ;
-  c_buf = String_val(buf) + c_pos ;
+  c_buf = &Byte(buf, c_pos);
   BZ_P(bzWrite)(&bzerror, Bzfile_val(chan), c_buf, c_len) ;
   mlbz_error(bzerror, "Bz.write", chan, 0) ;
   return Val_unit;
@@ -239,7 +239,7 @@ value mlbz_compress(value block, value s
      || c_pos < 0 || c_len < 0
      || c_pos + c_len > string_length(src))
     invalid_argument("Bz.compress") ;
-  src_buf = String_val(src) + c_pos;
+  src_buf = &Byte(src, c_pos);
   dst_buf_len = c_len * 1.01 + 600 ;
   dst_buf = malloc(dst_buf_len) ;
   if(dst_buf == NULL)
@@ -264,7 +264,7 @@ value mlbz_compress(value block, value s
     }
   }
   result = alloc_string(dst_len);
-  memcpy(String_val(result), dst_buf, dst_len);
+  memcpy(&Byte(result, 0), dst_buf, dst_len);
   free(dst_buf);
   return result ;
 }
@@ -284,7 +284,7 @@ value mlbz_uncompress(value small, value
   if(c_pos < 0 || c_len < 0
      || c_pos + c_len > string_length(src))
     invalid_argument("Bz.uncompress") ;
-  src_buf = String_val(src) + c_pos;
+  src_buf = &Byte(src, c_pos);
   dst_buf_len = c_len * 2 ;
   dst_buf = malloc(dst_buf_len) ;
   if(dst_buf == NULL)
@@ -317,7 +317,7 @@ value mlbz_uncompress(value small, value
       }
   }
   result = alloc_string(dst_len);
-  memcpy(String_val(result), dst_buf, dst_len);
+  memcpy(&Byte(result, 0), dst_buf, dst_len);
   free(dst_buf);
   return result ;
 }
--- /dev/null
+++ b/config/discover.ml
@@ -0,0 +1,21 @@
+module C = Configurator.V1
+
+let () =
+C.main ~name:"bz2" (fun c ->
+
+let stale_bzip2 : C.Pkg_config.package_conf = {
+ libs = [ "-lbz2" ];
+ cflags = []
+} in
+
+let conf =
+  match C.Pkg_config.get c with
+  | None -> C.die "'pkg-config' missing"
+  | Some pc ->
+    match (C.Pkg_config.query pc ~package:"bzip2") with
+      | None -> stale_bzip2
+      | Some deps -> deps
+  in
+
+  C.Flags.write_sexp "c_flags.sexp"         conf.cflags;
+  C.Flags.write_sexp "c_library_flags.sexp" conf.libs)
--- /dev/null
+++ b/config/dune
@@ -0,0 +1,3 @@
+(executable
+ (name discover)
+ (libraries dune.configurator))
--- /dev/null
+++ b/dune
@@ -0,0 +1,17 @@
+(library
+ (public_name bz2)
+ (synopsis "bindings for bzip2")
+ (modules bz2)
+ (c_names c_bz)
+ (c_flags
+  "-DBZ_PREFIX"
+  (:include c_flags.sexp))
+ (c_library_flags
+  (:include c_library_flags.sexp)))
+
+(rule
+ (targets c_flags.sexp c_library_flags.sexp)
+ (deps
+  (:discover config/discover.exe))
+ (action
+  (run %{discover})))
--- /dev/null
+++ b/dune-project
@@ -0,0 +1,22 @@
+(lang dune 1.10)
+
+(generate_opam_files true)
+
+(license "LGPL-2.1-or-later WITH OCaml-LGPL-linking-exception")
+
+(authors
+  "Olivier Andrieu <[email protected]>, Nicolas George 
<[email protected]>")
+
+(maintainers
+  "Stefano Zacchiroli <[email protected]>, Olivier Andrieu <[email protected]>")
+
+(homepage "http://camlbz2.forge.ocamlcore.org/";)
+
+(bug_reports "http://forge.ocamlcore.org/tracker/?atid=338&group_id=63";)
+
+(package
+ (name bz2)
+ (synopsis "OCaml bindings for bzip2")
+ (description
+   "This is CamlBZ2, OCaml bindings for the libbz2 (AKA, bzip2) 
(de)compression library.")
+ (depends "dune.configurator"))
--- /dev/null
+++ b/examples/dune
@@ -0,0 +1,4 @@
+(executable
+ (name bunzip2)
+ (public_name ocaml-bunzip2)
+ (libraries bz2))

Reply via email to