mlguestfs.cmxa needs to be recompiled. In Fedora we encode the hashes that the compiler looks for into dependencies to avoid this class of problems, for example look at the ocaml() dependencies here: https://koji.fedoraproject.org/koji/rpminfo?rpmID=38131851
Search Criteria
Package Details: virt-v2v 2.5.4-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/virt-v2v.git (read-only, click to copy) |
---|---|
Package Base: | virt-v2v |
Description: | Convert a guest image to use with KVM |
Upstream URL: | https://libguestfs.org/virt-v2v.1.html |
Keywords: | kvm libvirt qemu |
Licenses: | GPL |
Submitter: | solsticedhiver |
Maintainer: | solsticedhiver |
Last Packager: | solsticedhiver |
Votes: | 2 |
Popularity: | 0.006814 |
First Submitted: | 2022-01-26 22:25 (UTC) |
Last Updated: | 2024-07-09 17:29 (UTC) |
Dependencies (9)
- libguestfs (libguestfs-gitAUR)
- libnbd (libnbd-ocaml-gitAUR)
- libosinfo
- nbdkitAUR
- ocaml (make)
- ocaml-findlib (make)
- ocaml-libvirt (ocaml-libvirt-gitAUR) (make)
- mingw-w64-rhsrvanyAUR (optional) – for Windows based VM
- virtio-winAUR (optional) – for windows based VM
Required by (0)
Sources (2)
rwmjones commented on 2024-04-04 16:12 (UTC)
parovoz commented on 2024-04-04 15:37 (UTC)
Error: Files /usr/lib/ocaml/guestfs/mlguestfs.cmxa
and /usr/lib/ocaml/stdlib.cmxa
make inconsistent assumptions over interface Stdlib__Gc
solsticedhiver commented on 2023-11-15 21:57 (UTC)
With the newer libnbd package from [extra] version 1.18.1-2 or above, everything should work smoothly and as expected ...
dreieck commented on 2023-10-14 16:06 (UTC) (edited on 2023-10-14 17:29 (UTC) by dreieck)
But for me, building with it fails with a lot of linking errors.
You need to be sure to remove src and kg directory before rebuilding virt-v2v
No, it was that libguestfs
[1] and libnbd
[2] were compiled by me with LTO by default. I had to add options+=('!lto')
to their PKGBUILD
to make linking to the OCaml libraries work.
Regards!
[1] Needed my own local compilation since I am on Artix which intentionally does not use systemd. Compiling libguestfs-git
on that system results in a build without systemd dependency.
[2] libnbd-ocaml-git
.
solsticedhiver commented on 2023-10-14 15:05 (UTC)
@dreieck You need to be sure to remove src and kg directory before rebuilding virt-v2v. And possible cache like ccache. And also other possible old libnbd binding lying around.
I just noticed that libnbd has moved from AUR to [extra] So I opened a bug https://bugs.archlinux.org/task/79958 Not sure something will come out of this.
I am not sure I want to depend on your ocaml-nbd. Not for now. May be later.
dreieck commented on 2023-10-14 14:51 (UTC) (edited on 2023-10-14 14:53 (UTC) by dreieck)
I have now created a package libnbd-ocaml-git
that provides ocaml-nbd
, and actually while building depends on ocaml
so OCaml-bindings are guaranteed and no user needs to locally edit PKGBUILD
s for each upstream/ AUR update to keep dependencies correct.
But for me, building with it fails with a lot of linking errors.
Excerpt, full error output ↗ here:
[...]
Making all in v2v
make[2]: Entering directory '/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/v2v'
CC virt_v2v-dummy.o
OCAMLCMI v2v.cmi
OCAMLOPT v2v.cmx
GEN virt-v2v
/usr/bin/ld: ../output/mloutput.a(output.o): in function `camlOutput__output_to_local_file_inner_3114':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/output/output.ml:96:(.text+0x3a7): undefined reference to `nbd_internal_ocaml_nbd_create'
/usr/bin/ld: /tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/output/output.ml:96:(.text+0x3b6): undefined reference to `nbd_internal_ocaml_nbd_get_version'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__with_nbd_connect_unix_inner_3729':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:219:(.text+0xc7e): undefined reference to `nbd_internal_ocaml_nbd_create'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__fun_3735':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:222:(.text+0xd76): undefined reference to `nbd_internal_ocaml_nbd_set_debug'
/usr/bin/ld: /tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:224:(.text+0xde6): undefined reference to `nbd_internal_ocaml_nbd_connect_unix'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__fun_3763':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:223:(.text+0xe9e): undefined reference to `nbd_internal_ocaml_nbd_add_meta_context'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__fun_3773':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:227:(.text+0xef0): undefined reference to `nbd_internal_ocaml_nbd_shutdown'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__fun_3778':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:229:(.text+0xf0b): undefined reference to `nbd_internal_ocaml_nbd_close'
/usr/bin/ld: ../lib/mlv2vlib.a(utils.o): in function `camlUtils__fun_3787':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:236:(.text+0xfbc): undefined reference to `nbd_internal_ocaml_nbd_can_meta_context'
/usr/bin/ld: /tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:238:(.text+0xfd7): undefined reference to `nbd_internal_ocaml_nbd_get_size'
/usr/bin/ld: /tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/lib/utils.ml:244:(.text+0x10e3): undefined reference to `nbd_internal_ocaml_nbd_block_status'
/usr/bin/ld: ../common/mltools/mltools.a(tools_utils.o): in function `camlTools_utils__inspect_decrypt_2604':
/tmp/makepkg/build/virt-v2v/src/virt-v2v-2.2.0/common/mltools/tools_utils.ml:710:(.text+0x4ec0): undefined reference to `guestfs_int_ocaml_c_pointer'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1461':
(.text+0xa): undefined reference to `nbd_internal_ocaml_nbd_get_uri'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1463':
(.text+0x2a): undefined reference to `nbd_internal_ocaml_nbd_supports_uri'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1465':
(.text+0x4a): undefined reference to `nbd_internal_ocaml_nbd_supports_vsock'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1467':
(.text+0x6a): undefined reference to `nbd_internal_ocaml_nbd_supports_tls'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1469':
(.text+0x8d): undefined reference to `nbd_internal_ocaml_nbd_kill_subprocess'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1471':
(.text+0xaa): undefined reference to `nbd_internal_ocaml_nbd_get_version'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__fun_1473':
(.text+0xca): undefined reference to `nbd_internal_ocaml_nbd_get_package_name'
[...]
/usr/bin/ld: (.text+0x1551): undefined reference to `nbd_internal_ocaml_nbd_close'
/usr/bin/ld: /usr/lib/ocaml/nbd/mlnbd.a(NBD.o): in function `camlNBD__1':
(.data+0x1ae8): undefined reference to `nbd_internal_ocaml_nbd_get_uri'
/usr/bin/ld: (.data+0x1af0): undefined reference to `nbd_internal_ocaml_nbd_supports_uri'
/usr/bin/ld: (.data+0x1af8): undefined reference to `nbd_internal_ocaml_nbd_supports_vsock'
/usr/bin/ld: (.data+0x1b00): undefined reference to `nbd_internal_ocaml_nbd_supports_tls'
/usr/bin/ld: (.data+0x1b08): undefined reference to `nbd_internal_ocaml_nbd_kill_subprocess'
/usr/bin/ld: (.data+0x1b10): undefined reference to `nbd_internal_ocaml_nbd_get_version'
/usr/bin/ld: (.data+0x1b18): undefined reference to `nbd_internal_ocaml_nbd_get_package_name'
/usr/bin/ld: (.data+0x1b20): undefined reference to `nbd_internal_ocaml_nbd_connection_state'
/usr/bin/ld: (.data+0x1b28): undefined reference to `nbd_internal_ocaml_nbd_aio_in_flight'
[...]
/usr/bin/ld: (.data+0x1fd0): undefined reference to `nbd_internal_ocaml_buffer_to_bytes'
/usr/bin/ld: (.data+0x1fd8): undefined reference to `nbd_internal_ocaml_buffer_alloc'
/usr/bin/ld: /usr/lib/ocaml/guestfs/mlguestfs.a(guestfs.o): in function `camlGuestfs__fun_23062':
(.text+0x4f0): undefined reference to `guestfs_int_ocaml_yara_destroy'
/usr/bin/ld: /usr/lib/ocaml/guestfs/mlguestfs.a(guestfs.o): in function `camlGuestfs__fun_22748':
(.text+0x930): undefined reference to `guestfs_int_ocaml_wait_ready'
[...]
/usr/bin/ld: /usr/lib/ocaml/guestfs/mlguestfs.a(guestfs.o): in function `camlGuestfs__entry':
(.text+0x39256): undefined reference to `guestfs_int_ocaml_get_EINVAL'
/usr/bin/ld: (.text+0x3928a): undefined reference to `guestfs_int_ocaml_get_ENOTSUP'
/usr/bin/ld: (.text+0x392be): undefined reference to `guestfs_int_ocaml_get_EPERM'
[...]
/usr/bin/ld: (.data+0x12018): undefined reference to `guestfs_int_ocaml_close'
/usr/bin/ld: (.data+0x12020): undefined reference to `guestfs_int_ocaml_create'
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking (exit code 1)
[...]
Regards!
I don't know any further since I don't know deeper about dynamic libraries and the linker.
solsticedhiver commented on 2023-10-14 14:16 (UTC)
@dreieck same answer as before rebuilt libnbd with ocaml installed first
not sure ocaml-nbd will fix that. and this is not really the archlinux'way, right?
dreieck commented on 2023-10-14 13:50 (UTC) (edited on 2023-10-14 13:51 (UTC) by dreieck)
Ahoj,
I have libnbd
installed but get the following ./configure
error:
checking for OCaml findlib package nbd... not found
configure: error: the OCaml module 'nbd' (from libnbd) is required
Same as already reported on 2023-06-01.
Maybe a package ocaml-nbd
needs to be made and we need to depend on that?
Regards!
Pinned Comments
solsticedhiver commented on 2023-11-15 21:57 (UTC)
With the newer libnbd package from [extra] version 1.18.1-2 or above, everything should work smoothly and as expected ...