Rebase to virt-v2v 2.9.6

resolves: RHEL-111241
Tighten permissions on windows C:\Program Files\Guestfs
resolves: RHEL-104352
Don't output floppy XML with qemu lacks support
resolves: RHEL-90175
This commit is contained in:
Richard W.M. Jones 2025-09-11 16:52:57 +01:00
parent 7bf384bc0d
commit f79affa10c
14 changed files with 345 additions and 79 deletions

View File

@ -0,0 +1,134 @@
From 06fa7bf0f9078d8035eab7ad4689a5018136e712 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 10 Sep 2025 14:39:18 +0100
Subject: [PATCH] convert: Look for GRUB signature first to identify boot
device
In commit ca6ec6317e ("convert: Detect target boot device for Linux
guests") we tried to identify the boot order by looking for the device
containing the /boot filesystem. However during our testing we found
a guest where GRUB was installed on /dev/sda but the /boot partition
was found on /dev/sdd. This guest would not boot with the boot order
indicating that disk 4 (sdd) was the boot disk.
Change how we search for the boot device by first trying to find a
GRUB signature in the boot sector of any disk. The first matching
disk (if any) would then be picked as the boot device. If this fails
then we fall back to looking at the device containing /boot as before.
This also updates the common module to get:
Richard W.M. Jones (1):
mlstdutils: Export List.find_opt
Reported-by: Ming Xie
Thanks: Gerd Hoffmann
Fixes: commit ca6ec6317e20a633315f783a8ba4ece3c2fc01f2
Fixes: https://issues.redhat.com/browse/RHEL-108991
See-also: https://thestarman.pcministry.com/asm/mbr/GRUB.htm
---
common | 2 +-
convert/convert.ml | 77 +++++++++++++++++++++++++++++-----------------
2 files changed, 49 insertions(+), 30 deletions(-)
Submodule common 7ecf3992..5be8d552:
diff --git a/common/mlstdutils/std_utils.mli b/common/mlstdutils/std_utils.mli
index a20e720c..6c1911da 100644
--- a/common/mlstdutils/std_utils.mli
+++ b/common/mlstdutils/std_utils.mli
@@ -46,6 +46,7 @@ module List : sig
val mem : 'a -> 'a list -> bool
val memq : 'a -> 'a list -> bool
val find : ('a -> bool) -> 'a list -> 'a
+ val find_opt : ('a -> bool) -> 'a list -> 'a option
val filter : ('a -> bool) -> 'a list -> 'a list
val find_all : ('a -> bool) -> 'a list -> 'a list
val partition : ('a -> bool) -> 'a list -> 'a list * 'a list
diff --git a/convert/convert.ml b/convert/convert.ml
index 304bbb52..1bdfdd69 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -395,35 +395,54 @@ and get_target_firmware i_firmware guestcaps source output =
target_firmware
and get_target_boot_device g inspect =
- (* We only do it for Linux, as most likely Windows never(?) boots
- * from any drive other than C:. We can revisit this decision
- * if someone reports a bug.
- *)
- match inspect.i_type with
- | "linux" ->
- (try
- (* In sane cases, the Grub stage1/boot.img (ie. the boot sector) is
- * always on the same drive as /boot. So we can just find out
- * where /boot is mounted and use that.
- *)
- let boot_mountpoint = List.assoc "/boot" inspect.i_mountpoints in
- let boot_device = g#part_to_dev boot_mountpoint in
- let boot_device = g#device_index boot_device in
- Some boot_device
- with
- | Not_found -> None
- | G.Error msg
- (* Returned by part_to_dev if the /boot mountpoint is not
- * a partition name.
- *)
- when String.find msg "device name is not a partition" >= 0 -> None
- | G.Error msg
- (* Returned by device_index if the /boot device is not
- * a normal drive name (eg. /dev/mdX).
- *)
- when String.find msg "device not found" >= 0 -> None
- )
- | _ -> None
+ with_return (fun {return} ->
+ (* We only do it for Linux, as most likely Windows never(?) boots
+ * from any drive other than C:. We can revisit this decision
+ * if someone reports a bug.
+ *)
+ if inspect.i_type <> "linux" then return None;
+
+ (* Look for "GRUB" signature in the boot sector of each disk.
+ * If we find it, choose that disk.
+ *)
+ let devices = g#list_devices () |> Array.to_list in
+ let boot_device = List.find_opt (has_grub_signature g) devices in
+ let boot_device = Option.map g#device_index boot_device in
+ if boot_device <> None then return boot_device;
+
+ (* If that fails, in sane cases, the Grub stage1/boot.img (ie. the boot
+ * sector) is always on the same drive as /boot. So we can just find
+ * out where /boot is mounted and use that.
+ *)
+ get_device_of_boot_filesystem g inspect
+ )
+
+and has_grub_signature g dev =
+ let boot_sector = g#pread_device dev 512 0_L in
+ let r = String.find boot_sector "GRUB" >= 0 in
+ debug "has_grub_signature: \"GRUB\" signature on %s? %b" dev r;
+ r
+
+and get_device_of_boot_filesystem g inspect =
+ try
+ let boot_mountpoint = List.assoc "/boot" inspect.i_mountpoints in
+ let boot_device = g#part_to_dev boot_mountpoint in
+ debug "get_device_of_boot_filesystem: found /boot filesystem on device %s"
+ boot_device;
+ let boot_device = g#device_index boot_device in
+ Some boot_device
+ with
+ | Not_found -> None
+ (* Returned by part_to_dev if the /boot mountpoint is not
+ * a partition name.
+ *)
+ | G.Error msg
+ when String.find msg "device name is not a partition" >= 0 -> None
+ (* Returned by device_index if the /boot device is not
+ * a normal drive name (eg. /dev/mdX).
+ *)
+ | G.Error msg
+ when String.find msg "device not found" >= 0 -> None
(* After conversion we dump as much information about the guest
* as we can in one place. Note this is only called when verbose

View File

@ -1,25 +0,0 @@
From a6978649ccf9e8c8412db98a6af47f4fbae1c8cf Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 29 Aug 2025 11:06:01 +0100
Subject: [PATCH] m4/guestfs-perl.m4: IPC::Run3 is now required by podwrapper
Add it to the list of perl module that we check.
Fixes: commit bdcc947b4e968e8e7ac4e56b87563e0e3d456294
---
m4/guestfs-perl.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/m4/guestfs-perl.m4 b/m4/guestfs-perl.m4
index 27d91011..68100df2 100644
--- a/m4/guestfs-perl.m4
+++ b/m4/guestfs-perl.m4
@@ -42,7 +42,7 @@ dnl Check for Perl modules needed by Perl documentation and tests.
dnl XXX These should probably be required.
AS_IF([test "x$PERL" != "xno"],[
missing_perl_modules=no
- for pm in Pod::Usage Getopt::Long Sys::Guestfs ; do
+ for pm in Pod::Usage Getopt::Long IPC::Run3 Sys::Guestfs ; do
AC_MSG_CHECKING([for $pm])
if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then
AC_MSG_RESULT([no])

View File

@ -0,0 +1,178 @@
From cd027b7c9a176dc9591c521ce6a935d4225aa866 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 10 Sep 2025 16:52:41 +0100
Subject: [PATCH] vddk: Make the thumbprint optional
If -io vddk-thumbprint=XX:XX:... is not specified, fetch it from the
server. Doing this mildly reduces security (but you're already using
?no_verify=1), but greatly increases convenience.
---
docs/virt-v2v-input-vmware.pod | 29 +++++++++++-----------
docs/virt-v2v.pod | 3 +--
input/input_vddk.ml | 44 +++++++++++++++++++++-------------
3 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/docs/virt-v2v-input-vmware.pod b/docs/virt-v2v-input-vmware.pod
index 164eef49..9ce5bd1e 100644
--- a/docs/virt-v2v-input-vmware.pod
+++ b/docs/virt-v2v-input-vmware.pod
@@ -16,7 +16,6 @@ virt-v2v-input-vmware - Using virt-v2v to convert guests from VMware
-ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1'
-it vddk
-io vddk-libdir=/path/to/vmware-vix-disklib-distrib
- -io vddk-thumbprint=xx:xx:xx:...
"GUEST NAME"
[-o* options]
@@ -227,15 +226,9 @@ enabled unconditionally.
=item 3.
-You must find the SSL "thumbprint" of your VMware server. How to do
-this is explained in L<nbdkit-vddk-plugin(1)>, also available at the
-link above.
-
-=item 4.
-
VDDK imports require a feature added in libvirt E<ge> 3.7.
-=item 5.
+=item 4.
The VMware server must not be in maintenance mode.
@@ -329,23 +322,31 @@ continuing.
The I<-it vddk> parameter selects VDDK as the input transport for disks.
To import a particular guest from vCenter server or ESXi hypervisor,
-use a command like the following, substituting the URI, guest name and
-SSL thumbprint:
+use a command like the following, substituting the URI and guest name:
$ virt-v2v \
-ic 'vpx://root@vcenter.example.com/Datacenter/esxi?no_verify=1' \
-it vddk \
-io vddk-libdir=/path/to/vmware-vix-disklib-distrib \
- -io vddk-thumbprint=xx:xx:xx:... \
"Windows 2003" \
-o local -os /var/tmp
Other options that you might need to add in rare circumstances include
I<-io vddk-compression>, I<-io vddk-config>, I<-io vddk-cookie>, I<-io
vddk-file>, I<-io vddk-nfchostport>, I<-io vddk-port>, I<-io
-vddk-snapshot>, and I<-io vddk-transports>, which are all explained in
-the L<nbdkit-vddk-plugin(1)> documentation. Do not use these options
-unless you know what you are doing.
+vddk-snapshot>, I<-io vddk-thumbprint> and I<-io vddk-transports>,
+which are all explained in the L<nbdkit-vddk-plugin(1)> documentation.
+Do not use these options unless you know what you are doing.
+
+=head2 VDDK: Thumbprint
+
+You may specify the thumbprint of the VMware server using the I<-io
+vddk-thumbprint=XX:XX...> parameter. Doing so increases security
+against some man-in-the-middle attacks.
+
+Since virt-v2v 2.10, this parameter is not required. Virt-v2v will
+get the thumbprint from the server if it is not specified (but the
+L<openssl(1)> command must be installed for this to work).
=head2 VDDK: Debugging VDDK failures
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index fbb5bbd6..328a7c44 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -354,8 +354,7 @@ In most cases this parameter is required when using the I<-it vddk>
Set the thumbprint of the remote VMware server.
-This parameter is required when using the I<-it vddk> (VDDK) transport.
-See L<virt-v2v-input-vmware(1)> for details.
+See L<virt-v2v-input-vmware(1)/VDDK: Thumbprint> for details.
=item B<-io vddk-compression=>COMPRESSION
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index 6029e6bf..9f9436dd 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -46,12 +46,8 @@ module VDDK = struct
String.concat " " xs
let query_input_options () =
- printf (f_"Input options (-io) which can be used with -it vddk:
-
- -io vddk-thumbprint=xx:xx:xx:...
- VDDK server thumbprint (required)
-
-All other settings are optional:
+ printf (f_"Input options (-io) which can be used with -it vddk
+(all settings are optional):
-io vddk-compression=COMPR Set VDDK compression mode (see
nbdkit-vddk-plugin documentation)
@@ -63,6 +59,8 @@ All other settings are optional:
-io vddk-port=PORT VDDK port
-io vddk-snapshot=SNAPSHOT-MOREF
VDDK snapshot moref
+ -io vddk-thumbprint=xx:xx:xx:...
+ VDDK server thumbprint
-io vddk-transports=MODE:MODE:..
VDDK transports
@@ -98,13 +96,6 @@ information on these settings.
(key, value)
) options.input_options in
- (* thumbprint is mandatory. *)
- if not (List.mem_assoc "thumbprint" io_options) then
- error (f_"You must pass the -io vddk-thumbprint option with the \
- SSL thumbprint of the VMware server. To find the thumbprint, \
- see the nbdkit-vddk-plugin(1) manual. See also the \
- virt-v2v-input-vmware(1) manual.");
-
(* Get the guest name. *)
let guest =
match args with
@@ -201,6 +192,30 @@ information on these settings.
| Some password_file ->
password_file in
+ (* Thumbprint has to be passed to nbdkit. If we don't have it
+ * then get it from the server.
+ *)
+ let thumbprint =
+ try List.assoc "thumbprint" io_options
+ with Not_found ->
+ let openssl =
+ try which "openssl"
+ with Executable_not_found _ ->
+ error (f_"openssl command not found: automatically detecting \
+ thumbprint is not possible, so you must use \
+ -io vddk-thumbprint=XX:XX...") in
+ let cmd = sprintf {|
+%s s_client -connect %s:443 </dev/null 2>/dev/null |
+%s x509 -in /dev/stdin -fingerprint -sha1 -noout 2>/dev/null |
+grep -i '^sha1 Fingerprint=' |
+sed 's/.*Fingerprint=\([A-F0-9:]\+\)/\1/' |}
+ openssl (quote server) openssl in
+ let lines = external_command cmd in
+ if List.length lines = 0 then
+ error (f_"could not fetch thumbprint from the server, you mus use \
+ -io vddk-thumbprint=XX:XX...");
+ List.hd lines in
+
let compression =
try Some (List.assoc "compression" io_options) with Not_found -> None in
let config =
@@ -215,9 +230,6 @@ information on these settings.
try Some (List.assoc "port" io_options) with Not_found -> None in
let snapshot =
try Some (List.assoc "snapshot" io_options) with Not_found -> None in
- let thumbprint =
- try List.assoc "thumbprint" io_options
- with Not_found -> assert false (* checked above *) in
let transports =
try Some (List.assoc "transports" io_options) with Not_found -> None in

View File

@ -1,4 +1,4 @@
From 340400e92649a4124d00fa0f6a8e95c7d99e89f4 Mon Sep 17 00:00:00 2001
From f7cf3e5f586fec88b1955664f51bc02a65b508ca Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 30 Aug 2015 03:21:57 -0400
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.
@ -19,7 +19,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1
7 files changed, 40 insertions(+), 5 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index 74160f1d..32a954c6 100644
index 1bdfdd69..b91cc136 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -55,6 +55,7 @@ let rec convert input_disks options source =

View File

@ -1,4 +1,4 @@
From 3234be3b16565e4bee797bcf9e29be764ff7268c Mon Sep 17 00:00:00 2001
From 3360e6b8fcfaab0f03836bac2f1292ba41a4e73b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Sep 2014 19:14:43 +0100
Subject: [PATCH] RHEL: v2v: Select correct qemu binary for -o qemu mode

View File

@ -1,4 +1,4 @@
From 59db6c7c45273b404d2a97143dfa9c0a9686511c Mon Sep 17 00:00:00 2001
From c08c7c740d2d54a9ae0bbd3924926faf157532e7 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 30 Sep 2014 10:50:27 +0100
Subject: [PATCH] RHEL: v2v: Disable the --qemu-boot / -oo qemu-boot option
@ -43,7 +43,7 @@ index 49f00754..bdf12c5d 100644
=item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index fbb5bbd6..faf6b355 100644
index 328a7c44..b46a0d43 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -167,11 +167,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -58,7 +58,7 @@ index fbb5bbd6..faf6b355 100644
=head1 OPTIONS
=over 4
@@ -575,9 +570,6 @@ This is similar to I<-o local>, except that a shell script is written
@@ -574,9 +569,6 @@ This is similar to I<-o local>, except that a shell script is written
which you can use to boot the guest in qemu. The converted disks and
shell script are written to the directory specified by I<-os>.
@ -68,7 +68,7 @@ index fbb5bbd6..faf6b355 100644
ifelse(ENABLE_OVIRT, yes, `
=item B<-o> B<vdsm>
@@ -650,11 +642,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
@@ -649,11 +641,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
which is saved on each Cinder volume in the C<virt_v2v_guest_id>
volume property.

View File

@ -1,4 +1,4 @@
From 0a943cb304e66aba748b2d36cb2d65cd1a55180b Mon Sep 17 00:00:00 2001
From 7a9779d640148f3ac727423dd02e2a01a18c475f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 24 Apr 2015 09:45:41 -0400
Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu

View File

@ -1,4 +1,4 @@
From d0244f8ef20d18dd7c26c441f80261661d413e1f Mon Sep 17 00:00:00 2001
From 7334270d0037d43309e12ee985818e7af7ea89fd Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Mar 2017 14:21:37 +0100
Subject: [PATCH] RHEL: v2v: -i disk: force VNC as display (RHBZ#1372671)

View File

@ -1,4 +1,4 @@
From ba4244a69a6b0aa104c5801204542ae0dcb3a104 Mon Sep 17 00:00:00 2001
From 26945c86859c1d0b047aa3f16f19effa2cf844e5 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Tue, 26 Mar 2019 09:42:25 +0100
Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests

View File

@ -1,4 +1,4 @@
From a3c45a46b4011ec3c363cac6b66897fa11ef95de Mon Sep 17 00:00:00 2001
From 6a49ca69b3e8d9639c76dad95d0b33859a8f70e0 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:58:09 +0100
Subject: [PATCH] RHEL: tests: Remove btrfs test

View File

@ -1,25 +0,0 @@
From 6954c74fcd5c5da71e20ec7f4613bcc9c7e3f934 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 13 Aug 2025 18:03:41 +0100
Subject: [PATCH] RHEL 10: m4: Depend on libguestfs 1.56.1-2.el10 for
guestfs_setfiles
---
m4/guestfs-libraries.m4 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/m4/guestfs-libraries.m4 b/m4/guestfs-libraries.m4
index f1d5d127..1bd39074 100644
--- a/m4/guestfs-libraries.m4
+++ b/m4/guestfs-libraries.m4
@@ -19,8 +19,8 @@ dnl Any C libraries required by virt-v2v.
dnl Of course we need libguestfs.
dnl
-dnl We need libguestfs 1.57.1 for guestfs_setfiles.
-PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.57.1])
+dnl We need libguestfs 1.56.1-2.el10 for guestfs_setfiles.
+PKG_CHECK_MODULES([LIBGUESTFS], [libguestfs >= 1.56.1])
printf "libguestfs version is "; $PKG_CONFIG --modversion libguestfs
dnl And libnbd.

View File

@ -1,4 +1,4 @@
From f16be60b633c5a9ca47e51c31a42755c4747ce59 Mon Sep 17 00:00:00 2001
From 51db9a96627e87b547df801cffbe913eb68da20a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 9 Jul 2024 11:30:09 +0100
Subject: [PATCH] RHEL: Add warning about virt-v2v-in-place not being supported

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-2.9.5.tar.gz) = 035a9bcbae6143364bd5b0c5236520a89e1d2543e46c4fdfaba1fe0f71db09af8899e75f67669f77318340dce54bcdc4810462e97c2913ef2663f9bc0264398d
SHA512 (virt-v2v-2.9.5.tar.gz.sig) = bc7963e14432b945b688d3efc88d8df13a7a3960c949add5a4de6c128a5db9b2f769333b12e9a255e96663a932d1789de8a1253d6934610d81f376205941b3a5
SHA512 (virt-v2v-2.9.6.tar.gz) = 983c784d5190c0590f83357dea1ccb2c1f9a528a26f39122b24ef35dd0209151e89acb749f11cb0d7201d33ada31330f858becc049d11790229cadcaa306bcc4
SHA512 (virt-v2v-2.9.6.tar.gz.sig) = 28199a3d7d38148b16033831c5b26f3e5013d47d769dbd7e5571deb64e4bf094e31c8df62f5c55a0bae621b19a5011b209917d671e7c34531e6b95d304d88aaf

View File

@ -44,7 +44,7 @@ ExclusiveArch: x86_64
Name: virt-v2v
Epoch: 1
Version: 2.9.5
Version: 2.9.6
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
@ -65,16 +65,16 @@ Source3: copy-patches.sh
# https://github.com/libguestfs/virt-v2v/commits/rhel-10.2
# Patches.
Patch0001: 0001-m4-guestfs-perl.m4-IPC-Run3-is-now-required-by-podwr.patch
Patch0002: 0002-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0003: 0003-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0004: 0004-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0005: 0005-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0006: 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0008: 0008-RHEL-tests-Remove-btrfs-test.patch
Patch0009: 0009-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
Patch0010: 0010-RHEL-10-m4-Depend-on-libguestfs-1.56.1-2.el10-for-gu.patch
Patch0001: 0001-convert-Look-for-GRUB-signature-first-to-identify-bo.patch
Patch0002: 0002-vddk-Make-the-thumbprint-optional.patch
Patch0003: 0003-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0004: 0004-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0005: 0005-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0006: 0006-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0007: 0007-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0008: 0008-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0009: 0009-RHEL-tests-Remove-btrfs-test.patch
Patch0010: 0010-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
BuildRequires: autoconf, automake, libtool
BuildRequires: make
@ -85,7 +85,7 @@ BuildRequires: perl(IPC::Run3)
BuildRequires: gcc
BuildRequires: ocaml >= 4.08
BuildRequires: libguestfs-devel >= 1:1.56.1-2.el10
BuildRequires: libguestfs-devel >= 1:1.57.3-1.el10
BuildRequires: augeas-devel
BuildRequires: bash-completion
%if !0%{?rhel}
@ -131,7 +131,7 @@ BuildRequires: glibc-static
BuildRequires: gnupg2
%endif
Requires: libguestfs%{?_isa} >= 1:1.56.1-2.el10
Requires: libguestfs%{?_isa} >= 1:1.57.3-1.el10
Requires: guestfs-tools >= 1.49.7-1
# XFS is the default filesystem in Fedora and RHEL.
@ -379,9 +379,13 @@ done
%changelog
* Fri Aug 29 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.9.5-1
- Rebase to virt-v2v 2.9.5
* Thu Sep 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.9.6-1
- Rebase to virt-v2v 2.9.6
resolves: RHEL-111241
- Tighten permissions on windows C:\Program Files\Guestfs
resolves: RHEL-104352
- Don't output floppy XML with qemu lacks support
resolves: RHEL-90175
* Thu Aug 21 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.8.1-9
- Rebase to virt-v2v 2.8.1