I'm pleased to announce the stable releases of libguestfs (1.56) and
virt-v2v (2.8).  Libguestfs is a library for reading and writing
virtual machines and disk images.  Virt-v2v is program for converting
virtual machines from foreign hypervisors to run on qemu/KVM.

These were last released over a year ago.  There are some major new
features and many fixes, especially in virt-v2v.  Thanks to the many
people who contributed to these.  Their names and the new features are
covered in the release notes below.

Please note this version of libguestfs proposes to deprecate GObject
(ie. Javascript) bindings, with their eventual removal scheduled for 1.58.

Downloads:

https://download.libguestfs.org/1.56-stable/
https://download.libguestfs.org/virt-v2v/2.8-stable/

Fedora packages are available in Fedora 41, 42 testing; and Fedora
Rawhide.  These versions will also be available in RHEL 10.1 later in
the year.

Release notes are below or online at:

https://libguestfs.org/guestfs-release-notes-1.56.1.html
https://libguestfs.org/virt-v2v-release-notes-2.8.1.html


RELEASE NOTES FOR LIBGUESTFS 1.56
       These are the release notes for libguestfs stable release 1.56.  This
       describes the major changes since 1.54.

       Libguestfs 1.56.0 was released on 11th June 2025.

   Inspection
       Add support for Windows 2025 (thanks Ming Xie).

       Add support for TencentOS (Denise Cheng).

       Inspection of Ubuntu 22+ guests that use a split /usr configuration now
       works properly (thanks Jaroslav Spanko, Daniel Berrange).

       Inspecting guests that have duplicated root mountpoints now works.

       Inspection of SUSE Linux guests using btrfs snapshots now ignores
       snapshots that mirror content in the root filesystem (thanks Ming Xie).

       Inspection of SUSE Linux >= 15 now returns the correct osinfo short name
       (eg. "sle15") (thanks Ming Xie).

   API
       New "command_out" and "sh_out" APIs which allow you to capture output
       from guest commands that generate more output than the protocol limit
       allows.

       New "btrfs_scrub_full" API which runs a full Btrfs scrub, synchronously.
       It works more like fsck for other filesystems.

       The "fstrim" API has been modified to work around several issues in
       upstream and RHEL 9 kernels related to XFS support (Eric Sandeen, Dave
       Chinner).

       The existing "e2fsck" API has a new "FORCENO" option enabling use of the
       command line -n flag.

   Language bindings
       Previously "-L../lib/.libs" got embedded in the distributed OCaml
       bindings.  This has been fixed.

       GObject bindings have been deprecated and will be removed in
       libguestfs 1.58.

   Build changes
       json-c is now required.  This replaces Jansson which was previously used
       for parsing JSON input files.

       OCaml ≥ 4.08 is now required.

       OCaml oUnit is no longer used.

       We now assume that "__attribute__((cleanup))" always works.  This
       requires gcc or Clang.

       Fix compatibility with file(1) ≥ 5.46.

       Fix compatibility with Fedora ≥ 42 which merges /usr/sbin into /usr/bin.

       Fix compatibility with latest Rust compiler (Jacob Reger).

       lex(1), yacc(1) and libmagic (part of file(1)) have not been required by
       libguestfs for a long time, but were still checked by the ./configure
       script.  This has been fixed, they are no longer build dependencies
       (thanks Mohamed Akram).

       When using "./configure --disable-daemon" we no longer require augeas
       and hivex (thanks Mohamed Akram).

       "zfs-fuse" support has been dropped.  The project is unmaintained
       upstream (thanks Paul Bolle, Gwyn Ciesla, Timothée Ravier).

       Fix compatibility with GNU gettext 0.25.

   Internals
       The tests were modified to use a set of common functions and remove use
       of the weird $TEST_FUNCTIONS macro, similar to how we do it in nbdkit.

       Fix dhcpcd failing on systemd-resolved stub (Thomas Wouters).

       Add support for dhcpcd and sfdisk on Debian (Daniel Gomez).

       Print the kernel utsname in debug output.

       The legacy "pvs_full", "vgs_full" and "lvs_full" APIs were completely
       rewritten in OCaml.

       Some deprecated autoconf macros are no longer used.

       We no longer emit a false warning about "BLKDISCARD" when creating a
       block device.

       Some internal OCaml List and String functions that we used have been
       replaced by ones from the OCaml stdlib, reducing code maintenance.

       If qemu-img(1) commands fail during snapshot creation, make sure we
       capture and print stderr from the qemu command (Cole Robinson).

   Bugs fixed
       https://issues.redhat.com/browse/RHEL-62935
           [rhel 9.6] windows version of win2025 guest shows incorrect during
           v2v conversion

       https://issues.redhat.com/browse/RHEL-80159
           Add new APIs to allow command output > 4MB

       https://issues.redhat.com/browse/RHEL-87493
           The Ubuntu 22.04 VM from VMware fails with Inspection field ‘i_arch’
           was ‘unknown’ [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-88450
           fstrim on a RHEL 7.2-created XFS filesystem does not trim as much as
           expected

       https://issues.redhat.com/browse/RHEL-88508
           Run fstrim twice to work around incorrect fstrim behaviour in RHEL 9
           kernel

       https://issues.redhat.com/browse/RHEL-90168
           virt-v2v fails with mount exited with status 32: mount: /sysroot:
           /dev/sda2 already mounted on /sysroot. [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-92239
           Lost error when opening wrong format of image readonly [rhel-10.1]

       https://issues.redhat.com/browse/RHEL-93109
           RFE: Investigate & do something useful with btrfsvol:...snapshots in
           SUSE Linux guests

       https://issues.redhat.com/browse/RHEL-95791
           libguestfs generates the wrong osinfo for SLES 15 guests [rhel-9.6]

       https://github.com/libguestfs/libguestfs/issues/155
           1.54.0: gdisk/test-expand-gpt.pl fails

       https://github.com/libguestfs/libguestfs/issues/162
           New test suite failure in c-api with file-5.46

       https://github.com/libguestfs/libguestfs/issues/167
           Weblate | erroneous source strings

       https://github.com/libguestfs/libguestfs/issues/182
           sed: RE error: illegal byte sequence in build

       https://github.com/libguestfs/libguestfs/issues/183
           bash-completion fails to install on macOS

       https://github.com/libguestfs/libguestfs/issues/184
           augeas, hivex and libmagic required even when daemon is disabled

       https://github.com/libguestfs/libguestfs/issues/191
           Failing to build ocaml/examples

SEE ALSO
       guestfs-examples(1), guestfs-faq(1), guestfs-performance(1),
       guestfs-recipes(1), guestfs-testing(1), guestfs(3), guestfish(1),
       http://libguestfs.org/

AUTHORS
       Cole Robinson
       Daniel Gomez
       Denise Cheng
       Ettore Atalan
       Jacob Reger
       Krascovict Petrov
       Léane GRASSER
       Richard W.M. Jones
       Ricky Tigg
       Thomas Wouters
       Yuri Chornoivan



RELEASE NOTES FOR VIRT-V2V 2.8
       These are the release notes for virt-v2v 2.8.  This describes the major
       changes since 2.6.

       Virt-v2v 2.8.0 was released on 11th June 2025.

   New features
       New virt-v2v-open(1) tool.  This can be used to open the virt-v2v source
       and run a user program on it.  For example virt-inspector(1) or
       guestfish(1) can be used to examine the source to discover what
       operating systems or files are present before conversion.

       Windows Server 2025 is supported (thanks Ming Xie).

       Two features have been added to enhance data integrity.  Firstly you can
       specify a "<checksum>" field for each input disk (when importing from
       libvirt).  Virt-v2v will verify the checksum of the actual disk matches
       the expected checksum.  Secondly virt-v2v in debug mode now computes the
       blkhash (a type of checksum) of the converted disk and prints it out,
       allowing you to compare the blkhash with the final output.

       The UEFI secureboot property is now modelled correctly, and (for outputs
       which support it) is reflected in the output metadata (thanks Daniel
       Berrange, Andrea Bolognani, Ming Xie).

       Parallel disk copies are now possible, using the --parallel=N option.
       The default behaviour is still to do serial copies.

       virt-v2v-in-place(1) has a new -O option.  This generates the same
       output as virt-v2v-inspector(1), allowing callers to combine both passes
       into one.

       Virtio-win driver selection has been made more robust.  It now selects
       the correct drivers to install in more cases, and avoids installing
       unnecessary debugging and SRIOV files.  Libosinfo is no longer used for
       this as the osinfo metadata used had grown out of date.  (Cole Robinson)

       We now check filesystem integrity (using tools like fsck(8)) before and
       after conversion, to ensure both that we fully understand the filesystem
       before conversion and that no corruption has happened during conversion.
       At the moment this is only implemented for Btrfs, ext4 and XFS.

   Features removed
       Handling of kmod-xenpv has been removed.  This only applied to RHEL 3
       and RHEL 4 guests being converted from very ancient versions of Xen
       (Cole Robinson).

       Some options that have been deprecated since 2018 and earlier were
       removed:

       --compressed
           Use -oo compressed instead.

       --no-trim
           This did nothing.

       --password-file
           Use --ip instead.

       --qemu-boot
           Use -oo qemu-boot instead.

       --vddk-*
           Use --io vddk-* instead.

       --vdsm-*
           Use --oo vdsm-* instead.

       --vmtype
           This did nothing.

       The options -o rhv-upload and -o rhv have been renamed to -o
       ovirt-upload and -o ovirt respectively, although aliases for the other
       names remain.

   Other fixes
       Update support page to cover RHEL 10 and Windows Server 2025.

       When importing from libvirt sources, trim whitespace from around the
       "<name>" element, rather than creating a guest name containing that
       whitespace.

       We no longer overwrite the EFI grub2 wrapper file
       (/boot/efi/EFI/<OS>/grub.cfg) on Fedora ≥ 34 and RHEL ≥ 9.0.

       When removing packages during conversion, use yum, apt, and similar
       tools so that dependencies are also removed (Cole Robinson).

       When some rpm commands run in the context of the guest produced more
       than 4MB of output, virt-v2v conversions would fail.  This has now been
       fixed (thanks Nijin Ashok).

       Virt-v2v is now compatible with guests that use dnf5.

       -i vmx mode now supports importing guests with SATA-emulated disks.

       Converting from a VMware snapshot is now possible, when using VDDK,
       using the io vddk-file=... options (thanks Martin Necas).

       Conversion failures when guest /etc/resolv.conf is immutable are common
       enough that we have now documented this problem in the manual (thanks
       Dan Clark).

       Debug information now contains much more readable information about
       guest mountpoints, similar to the output of virt-df(1).

       -o libvirt mode no longer generates its own osinfo short IDs.  Instead
       we use the osinfo short IDs from libguestfs inspection (Cole Robinson).

       Document how to activate Bitlocker for Windows 11 with vTPM (thanks Ming
       Xie).

   Build changes
       json-c is now required.  This replaces Jansson which was previously used
       for parsing JSON input files.

       libguestfs ≥ 1.56 is now required.

       OCaml ≥ 4.08 is now required.

       libnbd ≥ 1.14 is now required.

       nbdkit ≥ 1.28 is now required, although it is better to use more recent
       versions where possible.

       OCaml oUnit is no longer used.

       We now assume that "__attribute__((cleanup))" always works.  This
       requires gcc or Clang.

       The configure option --with-virt-v2v-nbdkit-python-plugin has been
       removed.  It was only needed for very old versions of nbdkit and Python.

       Tests should no longer break if ntfs-3g is not supported by libguestfs.

       Fix compatibility with GNU gettext 0.25.

   Internals
       The tests were modified to use a set of common functions and remove use
       of the weird $TEST_FUNCTIONS macro, similar to how we do it in nbdkit.

       The way we generate the phony virtio-win drivers (for testing) has been
       simplified.  Also there are new regression tests to ensure that virt-v2v
       installs the correct set of driver files.  (Cole Robinson).

       Phony Windows guests are now generated for several different versions of
       Windows, allowing more broad testing (Cole Robinson).

       Some deprecated autoconf macros are no longer used.

       nbdkit-cacheextents-filter(1) is no longer used, as it did not help
       performance now that we have switched to using nbdcopy(1) (thanks Martin
       Kletzander).

       With multi-disk guests, in some common cases we are now able to use a
       single nbdkit(1) instance to read or write all disks, instead of needing
       to run an nbdkit instance per disk, which can greatly reduce the number
       of external processes that virt-v2v will run.  The performance and
       results should not be different.  To take full advantage of this you
       have to use nbdkit ≥ 1.44.

       Several typos and spelling mistakes in the documentation were fixed
       (thanks Eric Blake).

       Duplicated code used to parse input (-i) and output (-o) options across
       the tools has been refactored in one place.

       Some internal OCaml List and String functions that we used have been
       replaced by ones from the OCaml stdlib, reducing code maintenance.

   Bugs fixed
       https://issues.redhat.com/browse/MTV-2256
           Document issues with upgrading Windows guests after conversion

       https://issues.redhat.com/browse/RHEL-32099
           Harden grub2-mkconfig to avoid overwriting
           /boot/efi/EFI/redhat/grub.cfg

       https://issues.redhat.com/browse/RHEL-39077
           v2v can't convert the guest if info "add_dracutmodules+="
           network-legacy " is added to network-legacy.conf [rhel-9.6]

       https://issues.redhat.com/browse/RHEL-58032
           v2v: add output file after virt-v2v-in-place conversion [rhel-9.6]

       https://issues.redhat.com/browse/RHEL-65009
           Can't find drivers from virtio-win for win2025 guests during v2v
           conversion [rhel 10.0]

       https://issues.redhat.com/browse/RHEL-65010
           Can't find drivers from virtio-win for win2025 guests during v2v
           conversion [rhel 9.6]

       https://issues.redhat.com/browse/RHEL-66197
           [MTV] migration failed with module "network-legacy" configured in
           RHEL 8 guests

       https://issues.redhat.com/browse/RHEL-67007
           [RFE] Add secureboot info in kubevirt output [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-67836
           RFE: Get the uefi.secureBoot.enabled setting from VMware sources
           [rhel-9.6]

       https://issues.redhat.com/browse/RHEL-71522
           Migration Plan / vddk pod cannot remove open-vm-tools in case of
           dependencies [rhel-9.6]

       https://issues.redhat.com/browse/RHEL-77989
           CentOS 9 Migration from VMWare to Openshift Virt fails [rhel-9.6]

       https://issues.redhat.com/browse/RHEL-80080
           Converting a SUSE VM will fail if the kernel-source package is
           installed in the source VM

       https://issues.redhat.com/browse/RHEL-85508
           Improve checksumming and data consistency checks in virt-v2v,
           libnbd, nbdkit

       https://issues.redhat.com/browse/RHEL-85512
           Print blkhash of converted image in virt-v2v debugging output [9.7]

       https://issues.redhat.com/browse/RHEL-85514
           Print blkhash of converted image in virt-v2v debugging output [10.1]

       https://issues.redhat.com/browse/RHEL-86022
           There is no nbdcopy info in v2v debug log since virt-v2v version
           2.7.1-2 [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-88543
           virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-88985
           Add possible roots to the virt-v2v-inspector output [rhel-9.7]

       https://issues.redhat.com/browse/RHEL-70840
           v2v can't convert win11-efi-secure guest with vtpm: "Activation of
           partially decrypted BITLK device is not supported" [rhel-9.6]

       https://github.com/libguestfs/virt-v2v/issues/79
           virt-v2v 2.7.4 error: libguestfs error: you must call
           guestfs_add_drive before guestfs_launch

       https://github.com/libguestfs/virt-v2v/issues/86
           Rename RHV to oVirt

SEE ALSO
       virt-v2v(1).

AUTHORS
       Authors of virt-v2v 2.8:

       Cole Robinson
       Krascovict Petrov
       Richard W.M. Jones
       Ricky Tigg
       Yuri Chornoivan



-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html
_______________________________________________
Libguestfs mailing list -- guestfs@lists.libguestfs.org
To unsubscribe send an email to guestfs-le...@lists.libguestfs.org

Reply via email to