libguestfs / guestfs-tools

Tools for accessing and modifying guest disk images
https://libguestfs.org
GNU General Public License v2.0
15 stars 7 forks source link

`./configure --disable-ocaml` does not disable ocaml #8

Closed smwltr closed 2 years ago

smwltr commented 2 years ago

Documentation says: " --disable-ocaml disable OCaml language bindings and tools" However ./configure --disable-ocaml && make check results in:

Making check in gnulib/lib
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/gnulib/lib'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/gnulib/lib'
Making check in common/utils
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/utils'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/utils'
Making check in common/structs
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/structs'
warning: Run 'make' at the top level to build ../../generator/generator
warning: Run 'make' at the top level to build structs-cleanups.c structs-cleanups.h structs-print.c structs-print.h
make  check-am
make[2]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/structs'
warning: Run 'make' at the top level to build ../../generator/generator
warning: Run 'make' at the top level to build structs-cleanups.c structs-cleanups.h structs-print.c structs-print.h
make[2]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/structs'
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/structs'
Making check in common/mlstdutils
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
  OCAMLOPT guestfs_config.cmx
  OCAMLOPT std_utils.cmx
File "std_utils.ml", line 310, characters 30-48:
310 |     let rec assoc_lbl ?(cmp = Pervasives.compare) ~default x = function
                                    ^^^^^^^^^^^^^^^^^^
Alert deprecated: module Stdlib.Pervasives
Use Stdlib instead.

If you need to stay compatible with OCaml < 4.07, you can use the 
stdlib-shims library: https://github.com/ocaml/stdlib-shims
File "std_utils.ml", line 315, characters 21-39:
315 |     let uniq ?(cmp = Pervasives.compare) xs =
                           ^^^^^^^^^^^^^^^^^^
Alert deprecated: module Stdlib.Pervasives
Use Stdlib instead.

If you need to stay compatible with OCaml < 4.07, you can use the 
stdlib-shims library: https://github.com/ocaml/stdlib-shims
  AR       libmlstdutils.a
  OCAMLC   guestfs_config.cmo
ocamlfind ocamlc -package str,unix -I . -a guestfs_config.cmo stringMap.cmo stringSet.cmo std_utils.cmo -o mlstdutils.cma
ocamlfind ocamlopt -package str,unix -I . -a guestfs_config.cmx stringMap.cmx stringSet.cmx std_utils.cmx -o mlstdutils.cmxa
make  
make[2]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
make  check-TESTS
make[2]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
make[3]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
============================================================================
Testsuite summary for guestfs-tools 1.48.0
============================================================================
# TOTAL: 0
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[3]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
make[2]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlstdutils'
Making check in common/mlutils
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
  OCAMLOPT unix_utils.cmx
  AR       libmlcutils.a
ocamlfind mklib -package str,unix -I ../../gnulib/lib/.libs -I ../../common/utils/.libs -I ../../common/mlstdutils -I . \
    c_utils.cmx unix_utils.cmx libmlcutils_a-c_utils-c.o libmlcutils_a-unix_utils-c.o \
    -cclib -lutils \
    -o mlcutils
make  
make[2]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
make  check-TESTS
make[2]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
make[3]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
============================================================================
Testsuite summary for guestfs-tools 1.48.0
============================================================================
# TOTAL: 0
# PASS:  0
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[3]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
make[2]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlutils'
Making check in common/mlpcre
make[1]: Entering directory '/home/siwalter/tmp/guestfs-tools/common/mlpcre'
  CC       libmlpcre_a-pcre-c.o
pcre-c.c:47:1: error: static declaration of ‘caml_alloc_initialized_string’ follows non-static declaration
   47 | caml_alloc_initialized_string (mlsize_t len, const char *p)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from pcre-c.c:31:
/usr/lib64/ocaml/caml/alloc.h:38:18: note: previous declaration of ‘caml_alloc_initialized_string’ with type ‘value(mlsize_t,  const char *)’ {aka ‘long int(long unsigned int,  const char *)’}
   38 | CAMLextern value caml_alloc_initialized_string (mlsize_t len, const char *);
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:902: libmlpcre_a-pcre-c.o] Error 1
make[1]: Leaving directory '/home/siwalter/tmp/guestfs-tools/common/mlpcre'
make: *** [Makefile:857: check-recursive] Error 1
[10:43 PM -siwalter@siwalter:~/tmp/guestfs-tools]$

./configure --disable-ocaml --disable-perl && make check is similar I would have expected ocaml and perl tools to not be built and tested. Is this a bug? Can this be explained some other way? Thanks!

rwmjones commented 2 years ago

Fixed in this commit: https://github.com/rwmjones/guestfs-tools/commit/b24eae8216ea515b41d94291551f080963d9f591