I applied the first 4 patches to my local repo.
'make clean' now fails at:

  error: failed to load manifest for dependency `libnbd-sys`
  Caused by:
    failed to parse manifest at 
`/home/rjones/d/libnbd/rust/libnbd-sys/Cargo.toml`
  Caused by:
    no targets specified in the manifest
    either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be 
present
  make[1]: *** [Makefile:1057: clean-local] Error 101
  make[1]: Leaving directory '/home/rjones/d/libnbd/rust'

I'm not sure what that means.  rust/libnbd-sys/Cargo.toml exists.

./configure works which is good:

  checking for cargo... cargo
  checking for rustfmt... rustfmt
  checking if cargo is usable... yes
  ...
    Rust ................................... yes

However the generator fails to compile with:

  make[3]: Entering directory '/home/rjones/d/libnbd/generator'
  ocamlc.opt -g -annot -safe-string -warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3 
-I . -I . \
    -I +str str.cma -I +unix unix.cma utils.mli utils.ml state_machine.mli 
state_machine.ml API.mli API.ml state_machine_generator.mli 
state_machine_generator.ml C.mli C.ml Python.mli Python.ml OCaml.mli OCaml.ml 
GoLang.mli GoLang.ml RustSys.mli RustSys.ml Rust.mli Rust.ml generator.ml  -o 
generator
File "generator.ml", line 65, characters 2-11:
  65 |   output_to ~formatter:(Some Rustfmt) "rust/libnbd-sys/src/lib.rs" 
RustSys.generate_rust_sys_bindings;
         ^^^^^^^^^
  Error: This function has type string -> (unit -> 'weak1) -> unit
         It is applied to too many arguments; maybe you forgot a `;'.

This confused me for a while, but I think it's because this series
depends on another series or needs to be rebased?

I removed the ~formatter parameter to get it to compile.

The next problem is:

  /home/rjones/d/libnbd/run cargo build
     Compiling libnbd v0.1.0 (/home/rjones/d/libnbd/rust)
  error: expected one of `:`, `;`, or `=`, found `-`
     --> src/bindings.rs:116:29
      |
  116 | pub const CONTEXT_QEMU_DIRTY-BITMAP:: &[u8] = b"qemu:dirty-bitmap:";
      |                             ^ expected one of `:`, `;`, or `=`

  error[E0599]: no method named `set_debug_callback` found for struct `Handle` 
in the current scope
    --> src/handle.rs:38:21
     |
  23 | pub struct Handle {
     | ----------------- method `set_debug_callback` not found for this struct
  ...
  38 |                 nbd.set_debug_callback(|func_name, msg| {
     |                 ----^^^^^^^^^^^^^^^^^^ method not found in `Handle`
  [and some more]

It might be an idea to run this command to check that the series is
bisectable:

  git rebase -i HEAD~12 -x 'make clean && make && make check'

It will generate a series of rebase commands which look like:

  pick 7475e8560a rust: create basic Rust bindings
  exec make clean && make && make check
  pick c48c7eee0f rust: Add a couple of integration tests
  exec make clean && make && make check
  pick 16debe7848 rust: Make it possible to run tests with Valgrind
  exec make clean && make && make check
  [etc]

which will do a full build cycle after every patch to make sure they
all work incrementally.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to