Rebase to virt-v2v 2.7.15

related: RHEL-81735
Print nbdcopy command in debug output
resolves: RHEL-86088
Remove usage of nbdkit-cacheextents-filter
resolves: RHEL-88860
Print better mountpoint stats in debug output
resolves: RHEL-88862
Add virt-v2v -io vddk-noextents=true so we can test noextents
resolves: RHEL-88864
Remove several ancient, deprecated options
resolves: RHEL-88867
virt-v2v-inspector is failing on snapshots of running VMs
resolves: RHEL-88544
Add virt-v2v-open tool
resolves: RHEL-89993
This commit is contained in:
Richard W.M. Jones 2025-05-13 16:55:29 +01:00
parent 853e6d8f47
commit e5999487d2
19 changed files with 1282 additions and 942 deletions

View File

@ -0,0 +1,168 @@
From b49ee1436870f720cd0a4aee7593f38fa9f4089f Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 12 May 2025 15:33:09 +0100
Subject: [PATCH] input: vddk: Use single nbdkit-vddk-plugin instance with
exports
nbdkit >= 1.43.8 VDDK plugin supports a new 'export' parameter which
allows the client (virt-v2v) to select which file on the VMware server
to serve. This allows us to run a single nbdkit instance (if nbdkit
has this feature), which is potentially more efficient for guests with
multiple disks.
This also requires nbdkit-cow-filter to be export-safe. This change
was made in the same version of nbdkit, so checking for the new
'export' parameter is sufficient.
---
input/input_vddk.ml | 95 ++++++++++++++++++++++++++++++++-------------
lib/utils.ml | 15 +++++++
lib/utils.mli | 3 ++
3 files changed, 86 insertions(+), 27 deletions(-)
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index c6485b25..f5e2aa98 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -410,34 +410,75 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
cmd
in
- (* Create an nbdkit instance for each disk. *)
- let uris =
+ (* Collect all the VDDK filename(s) we will be accessing, one
+ * for each input disk. This takes into account the
+ * '-io vddk-file' override.
+ *)
+ let files =
List.combine disks file_overrides |>
- List.mapi (
- fun i ({ d_type }, file_override) ->
- let socket = sprintf "%s/in%d" dir i in
- On_exit.unlink socket;
-
- (match d_type with
- | BlockDev _ | NBD _ | HTTP _ -> (* These should never happen? *)
- assert false
-
- | LocalFile orig_file ->
- (* If -io vddk-file, override it here. *)
- let file = Option.value file_override ~default:orig_file in
-
- (* The <source file=...> attribute returned by the libvirt
- * VMX driver looks like "[datastore] path". We can use it
- * directly as the nbdkit file= parameter, and it is passed
- * directly in this form to VDDK.
- *)
- let nbdkit = create_nbdkit_vddk () in
- Nbdkit.add_arg nbdkit "file" file;
- let _, pid = Nbdkit.run_unix socket nbdkit in
- On_exit.kill pid
- );
-
- NBD_URI.Unix (socket, None)
+ List.map (
+ function
+ (* These should never happen? *)
+ | { d_type = BlockDev _ | NBD _ | HTTP _ }, _ ->
+ assert false
+
+ | { d_type = LocalFile file }, None ->
+ (* The <source file=...> attribute returned by the libvirt
+ * VMX driver looks like "[datastore] path". We can use it
+ * directly as the nbdkit file= parameter, and it is passed
+ * directly in this form to VDDK.
+ *)
+ file
+
+ | { d_type = LocalFile _ }, Some file_override ->
+ (* If -io vddk-file, override it here. *)
+ file_override
+ ) in
+ assert (files <> []);
+
+ let uris =
+ (* If nbdkit-vddk-plugin has the 'export' feature (added in
+ * nbdkit 1.43.8) then we only have to run a single
+ * instance of nbdkit.
+ *)
+ if Nbdkit.probe_plugin_parameter "vddk" "export=" then (
+ let wildcard =
+ match files with
+ | [] -> assert false (* can't happen, see assert above *)
+ | [f] -> f
+ | files ->
+ (* Calculate the longest common prefix across all the files,
+ * then set the wildcard to this.
+ * XXX May not work if there are subdirectories?
+ * XXX Is every file we want to read called *.vmdk?
+ *)
+ let prefix = String.longest_common_prefix files in
+ fnmatch_escape prefix ^ "*.vmdk" in
+
+ let socket = sprintf "%s/in0" dir in
+ On_exit.unlink socket;
+
+ let nbdkit = create_nbdkit_vddk () in
+ Nbdkit.add_arg nbdkit "export" wildcard;
+ let _, pid = Nbdkit.run_unix socket nbdkit in
+ On_exit.kill pid;
+
+ (* Use NBD export names to select the right disk to read. *)
+ List.map (fun file -> NBD_URI.Unix (socket, Some file)) files
+ ) else (
+ (* Create an nbdkit instance for each disk. *)
+ List.mapi (
+ fun i file ->
+ let socket = sprintf "%s/in%d" dir i in
+ On_exit.unlink socket;
+
+ let nbdkit = create_nbdkit_vddk () in
+ Nbdkit.add_arg nbdkit "file" file;
+ let _, pid = Nbdkit.run_unix socket nbdkit in
+ On_exit.kill pid;
+
+ NBD_URI.Unix (socket, None)
+ ) files
) in
source, uris
diff --git a/lib/utils.ml b/lib/utils.ml
index acf5fb07..f3f7a205 100644
--- a/lib/utils.ml
+++ b/lib/utils.ml
@@ -54,6 +54,21 @@ let uri_quote str =
done;
String.concat "" (List.rev !xs)
+(* Escape characters like [?] and [*] which are special for fnmatch(3). *)
+let fnmatch_escape str =
+ let len = String.length str in
+ let xs = ref [] in
+ for i = 0 to len-1 do
+ xs :=
+ (match str.[i] with
+ | '[' | ']' | '?' | '*' as c ->
+ sprintf "\\%c" c
+ | c ->
+ String.make 1 c
+ ) :: !xs
+ done;
+ String.concat "" (List.rev !xs)
+
(* Map guest architecture found by inspection to the architecture
* that KVM must emulate. Note for x86 we assume a 64 bit hypervisor.
*)
diff --git a/lib/utils.mli b/lib/utils.mli
index 565bebca..1eb24ae7 100644
--- a/lib/utils.mli
+++ b/lib/utils.mli
@@ -33,6 +33,9 @@ val have_selinux : bool
val uri_quote : string -> string
(** Take a string and perform %xx escaping as used in some parts of URLs. *)
+val fnmatch_escape : string -> string
+(** Escape characters like [?] and [*] which are special for fnmatch(3). *)
+
val kvm_arch : string -> string
(** Map guest architecture found by inspection to the architecture
that KVM must emulate. Note for x86 we assume a 64 bit hypervisor. *)

View File

@ -0,0 +1,74 @@
From ab311a7399dd372a190e88b731b69e92767eb5e6 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 May 2025 11:45:42 +0100
Subject: [PATCH] docs: Further updates to virt-v2v release notes for 2.8
---
docs/virt-v2v-release-notes-2.8.pod | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/docs/virt-v2v-release-notes-2.8.pod b/docs/virt-v2v-release-notes-2.8.pod
index 0ca0abe2..07bbafcf 100644
--- a/docs/virt-v2v-release-notes-2.8.pod
+++ b/docs/virt-v2v-release-notes-2.8.pod
@@ -138,6 +138,9 @@ OCaml E<ge> 4.08 is now required.
libnbd E<ge> 1.14 is now required.
+nbdkit E<ge> 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 C<__attribute__((cleanup))> always works. This
@@ -169,16 +172,29 @@ L<nbdkit-cacheextents-filter(1)> is no longer used, as it did not help
performance now that we have switched to using L<nbdcopy(1)> (thanks
Martin Kletzander).
+With multi-disk guests, in some common cases we are now able to use a
+single L<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 E<ge> 1.44.
+
Several typos and spelling mistakes in the documentation were fixed
(thanks Eric Blake).
+Duplicated code used to parse input (I<-i>) and output (I<-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.
+
=head2 Bugs fixed
=begin comment
./bugs-in-changelog.sh v2.6.0..
-# List below updated to d6990738b05d91a9491e9dbfe6480033e1f4ea86
+# List below updated to b49ee1436870f720cd0a4aee7593f38fa9f4089f
=end comment
@@ -261,11 +277,19 @@ There is no nbdcopy info in v2v debug log since virt-v2v version
virt-v2v-inspector is failing on snapshots of running VMs [rhel-9.7]
+=item L<https://issues.redhat.com/browse/RHEL-88985>
+
+Add possible roots to the virt-v2v-inspector output [rhel-9.7]
+
=item L<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
+=item L<https://github.com/libguestfs/virt-v2v/issues/86>
+
+Rename RHV to oVirt
+
=back
=head1 SEE ALSO

View File

@ -0,0 +1,23 @@
From ac371ca18a152a2fb5351eb2a6c6326cf7c91fef Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 May 2025 12:00:26 +0100
Subject: [PATCH] input: vddk: Break long line of code
---
input/input_vddk.ml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/input/input_vddk.ml b/input/input_vddk.ml
index f5e2aa98..cf6e9be6 100644
--- a/input/input_vddk.ml
+++ b/input/input_vddk.ml
@@ -166,7 +166,8 @@ information on these settings.
match uri.Xml.uri_server with
| Some server -> server
| None ->
- error (f_"-ic %s URL does not contain a host name field") input_conn in
+ error (f_"-ic %s URL does not contain a host name field")
+ input_conn in
(* For VDDK we require some user. If it's not supplied, assume root. *)
let user = uri.Xml.uri_user |> Option.value ~default:"root" in

View File

@ -0,0 +1,76 @@
From fe46c3df89dd597777e017b7a2cbc43f401d8364 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 13 May 2025 12:08:09 +0100
Subject: [PATCH] TODO: Rewrite this document
Remove to-do items about ovirt-upload, since that is unmaintained at
the moment.
Add an item about how we open too many connections to the NBD
endpoint.
---
TODO | 49 ++++++++++++++++++++++---------------------------
1 file changed, 22 insertions(+), 27 deletions(-)
diff --git a/TODO b/TODO
index e30e18e8..34d8f957 100644
--- a/TODO
+++ b/TODO
@@ -1,35 +1,30 @@
-virt-v2v -o ovirt-upload
-----------------------
+To-do list for virt-v2v
+======================================================================
-* Set or disable the ticket timeout. The default is going to be
- increased (from current 60 seconds), so maybe we won't have to
- set it. See also:
- https://bugzilla.redhat.com/show_bug.cgi?id=1563278
+We open the input NBD endpoint up to 5 times per disk during a
+conversion (especially if --verbose mode is used):
-* qcow2 cannot be supported yet because there is not yet any
- concept in imageio of read+write handles.
- https://bugzilla.redhat.com/show_bug.cgi?id=1563299
+ * Once for conversion
-* preallocated cannot be supported yet because imageio doesn't
- know how to zero the image efficiently, instead it runs an
- fallocate process which writes to every block and that takes
- many minutes.
+ * nbdinfo opens the connection twice (because we're using --content)
-* Really check what insecure/rhv_cafile do and implement it correctly.
+ * The output side opens the input connection just to get the virtual
+ size of the disk, so it knows how large to create the output disk.
+ (Could be avoided if conversion kept this information, but that's a
+ layering violation.)
-* Measure and resolve performance problems.
+ * once for nbdcopy
-* Allocated image size is unknown for v2v uploads, but imageio needs
- to know it. We pass initial_size == provisioned_size == virtual size.
- That can't be fixed from the v2v side.
+This has quite a lot of overhead for some inputs. For VDDK, opening a
+connection is very slow. In one conversion of a guest with 5 disks I
+measured 10% of the total run time of virt-v2v being spent simply
+opening VDDK connections (5 x 5 = 25 times in all).
-* There are unresolved issues about how to clean up disks on failure.
+--
-virt-v2v -o openstack
----------------------
-
-Use the metadata service to find the -oo server-id setting. It would
-no longer need to be specified on the command line. Note there are
-two variations of metadata service in OpenStack, either the config
-disk or link-local network address. We would need to support both, or
-the possibility that there is no metadata service.
+In virt-v2v -o openstack Use the metadata service to find the -oo
+server-id setting. It would no longer need to be specified on the
+command line. Note there are two variations of metadata service in
+OpenStack, either the config disk or link-local network address. We
+would need to support both, or the possibility that there is no
+metadata service.

View File

@ -1,7 +1,7 @@
From 6922ab78c58d6c6da604d88f0be482bb0d2e8273 Mon Sep 17 00:00:00 2001
From d974b64916edb1b8f49237572c2cf6daae026ecf 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
Subject: [PATCH] RHEL: Fixes for libguestfs-winsupport.
In tests we cannot use guestfish for arbitrary Windows edits.
In virt-v2v helpers we must set the program name to virt-v2v.
@ -9,20 +9,19 @@ In virt-v2v helpers we must set the program name to virt-v2v.
For RHEL 9.3 and above, see this comment:
https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1
---
convert/convert.ml | 1 +
test-data/phony-guests/make-windows-img.sh | 1 +
tests/test-block-driver.sh | 6 +++++-
tests/test-in-place.sh | 8 +++++++-
tests/test-virtio-win-iso.sh | 8 +++++++-
tests/test-windows-conversion.sh | 8 +++++++-
tests/test-windows-phony.sh | 13 ++++++++++++-
7 files changed, 40 insertions(+), 5 deletions(-)
convert/convert.ml | 1 +
test-data/phony-guests/make-windows-img.sh | 1 +
tests/test-block-driver.sh | 6 +++++-
tests/test-in-place.sh | 8 +++++++-
tests/test-virtio-win-iso.sh | 8 +++++++-
tests/test-windows-conversion.sh | 8 +++++++-
6 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index c05ed61f..676a4f2a 100644
index 66d1361f..15845a20 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -53,6 +53,7 @@ let rec convert dir options source =
@@ -53,6 +53,7 @@ let rec convert input_disks options source =
message (f_"Opening the source");
let g = open_guestfs ~identifier:"v2v" () in
@ -135,32 +134,3 @@ index bfe04904..eeddcb86 100755
diff -u "$expected" "$response"
# We also update the Registry several times, for firstboot, and (ONLY
diff --git a/tests/test-windows-phony.sh b/tests/test-windows-phony.sh
index 4e931731..007e6dc9 100755
--- a/tests/test-windows-phony.sh
+++ b/tests/test-windows-phony.sh
@@ -71,6 +71,17 @@ mktest ()
:> "$script"
:> "$expected"
+cat >> "$script" <<EOF
+ set-program virt-testing
+ run
+ inspect-os
+ mount /dev/sda2 /
+EOF
+
+cat >> "$expected" <<EOF
+/dev/sda2
+EOF
+
firstboot_dir="/Program Files/Guestfs/Firstboot"
mktest "is-dir \"$firstboot_dir\"" true
mktest "is-file \"$firstboot_dir/firstboot.bat\"" true
@@ -80,5 +91,5 @@ mktest "ls \"$virtio_dir\"" "$(cat test-phony-$guestname-ls.txt)"
osinfo_name="${guestname%-32}"
mktest "inspect-get-osinfo /dev/sda2" "$osinfo_name"
-guestfish --ro -a "$d/$guestname-sda" -i < "$script" > "$response"
+guestfish --ro -a "$d/$guestname-sda" < "$script" > "$response"
diff -u "$expected" "$response"

View File

@ -1,4 +1,4 @@
From 6db9961b52eee526f5a685c78d48e64e5ef429db Mon Sep 17 00:00:00 2001
From 3f4ccc36b8f87b5dad4b63572c3da77b6156bcc5 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
@ -16,10 +16,10 @@ support cases.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
index 2a21b5cf..39778724 100644
index 47a6f4ff..909b6e10 100644
--- a/output/output_qemu.ml
+++ b/output/output_qemu.ml
@@ -159,7 +159,7 @@ module QEMU = struct
@@ -164,7 +164,7 @@ module QEMU = struct
* module deals with shell and qemu comma quoting.
*)
let cmd = Qemuopts.create () in

View File

@ -1,4 +1,4 @@
From f6ee4c28511072d5091048b482c7a1fb6751bc48 Mon Sep 17 00:00:00 2001
From 356fce60d60427361053bf4e2e4f2db9de891ebd 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
@ -11,10 +11,9 @@ In addition you will have to edit the -display option in the
qemu script.
---
docs/virt-v2v-output-local.pod | 6 ++----
docs/virt-v2v.pod | 17 -----------------
docs/virt-v2v.pod | 13 -------------
output/output_qemu.ml | 3 +++
v2v/v2v.ml | 2 --
4 files changed, 5 insertions(+), 23 deletions(-)
3 files changed, 5 insertions(+), 17 deletions(-)
diff --git a/docs/virt-v2v-output-local.pod b/docs/virt-v2v-output-local.pod
index 5a342434..bdf12c5d 100644
@ -44,7 +43,7 @@ index 5a342434..bdf12c5d 100644
=item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index dfeefed5..d4b87e7f 100644
index e4ceafc2..100befd7 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -159,11 +159,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -59,17 +58,17 @@ index dfeefed5..d4b87e7f 100644
=head1 OPTIONS
=over 4
@@ -535,9 +530,6 @@ This is similar to I<-o local>, except that a shell script is written
@@ -543,9 +538,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>.
-When using this output mode, you can also specify the I<-oo qemu-boot>
-option which boots the guest under qemu immediately.
-
=item B<-o> B<rhev>
=item B<-o> B<vdsm>
This is the same as I<-o rhv>.
@@ -620,11 +612,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
Set the output method to I<vdsm>.
@@ -603,11 +595,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.
@ -81,19 +80,8 @@ index dfeefed5..d4b87e7f 100644
=item B<-oo verify-server-certificate>
=item B<-oo verify-server-certificate=>C<true|false>
@@ -808,10 +795,6 @@ Print information about the source guest and stop. This option is
useful when you are setting up network and bridge maps.
See L</Networks and bridges>.
-=item B<--qemu-boot>
-
-This is the same as I<-oo qemu-boot>.
-
=item B<-q>
=item B<--quiet>
diff --git a/output/output_qemu.ml b/output/output_qemu.ml
index 39778724..416000cd 100644
index 909b6e10..37371aad 100644
--- a/output/output_qemu.ml
+++ b/output/output_qemu.ml
@@ -65,6 +65,9 @@ module QEMU = struct
@ -106,16 +94,3 @@ index 39778724..416000cd 100644
(* -os must be set to a directory. *)
let output_storage =
match options.output_storage with
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index d0a5432f..70f506cd 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -273,8 +273,6 @@ let rec main () =
s_"Run up to N instances of nbdcopy in parallel";
[ L"print-source" ], Getopt.Set print_source,
s_"Print source and stop";
- [ L"qemu-boot" ], Getopt.Unit (fun () -> set_output_option_compat "qemu-boot" ""),
- s_"Boot in qemu (-o qemu only)";
[ L"root" ], Getopt.String ("ask|... ", set_root_choice),
s_"How to choose root filesystem";
[ L"vddk-config" ], Getopt.String ("filename", set_input_option_compat "vddk-config"),

View File

@ -1,4 +1,4 @@
From 32759b5c09eded1f9203deab4bbdd2e18aff15ec Mon Sep 17 00:00:00 2001
From 92faf39ff792662037068ae01231bc102e222962 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
@ -9,10 +9,10 @@ Subject: [PATCH] RHEL: Fix list of supported sound cards to match RHEL qemu
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/utils.ml b/lib/utils.ml
index 9568a9d9..b30ac256 100644
index f3f7a205..7b0d2327 100644
--- a/lib/utils.ml
+++ b/lib/utils.ml
@@ -66,13 +66,14 @@ let kvm_arch = function
@@ -81,13 +81,14 @@ let kvm_arch = function
(* Does qemu support the given sound card? *)
let qemu_supports_sound_card = function
| Types.AC97

View File

@ -0,0 +1,43 @@
From f86881542194d3abb9337cde07b66ae87d14ac6d 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
In tests we cannot use guestfish for arbitrary Windows edits.
In virt-v2v helpers we must set the program name to virt-v2v.
For RHEL 9.3 and above, see this comment:
https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1
---
tests/test-windows-phony.sh | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/tests/test-windows-phony.sh b/tests/test-windows-phony.sh
index 4e931731..007e6dc9 100755
--- a/tests/test-windows-phony.sh
+++ b/tests/test-windows-phony.sh
@@ -71,6 +71,17 @@ mktest ()
:> "$script"
:> "$expected"
+cat >> "$script" <<EOF
+ set-program virt-testing
+ run
+ inspect-os
+ mount /dev/sda2 /
+EOF
+
+cat >> "$expected" <<EOF
+/dev/sda2
+EOF
+
firstboot_dir="/Program Files/Guestfs/Firstboot"
mktest "is-dir \"$firstboot_dir\"" true
mktest "is-file \"$firstboot_dir/firstboot.bat\"" true
@@ -80,5 +91,5 @@ mktest "ls \"$virtio_dir\"" "$(cat test-phony-$guestname-ls.txt)"
osinfo_name="${guestname%-32}"
mktest "inspect-get-osinfo /dev/sda2" "$osinfo_name"
-guestfish --ro -a "$d/$guestname-sda" -i < "$script" > "$response"
+guestfish --ro -a "$d/$guestname-sda" < "$script" > "$response"
diff -u "$expected" "$response"

View File

@ -1,4 +1,4 @@
From 10b274ecf973868431abe20073684d74934bff4d Mon Sep 17 00:00:00 2001
From 03c59620c41498c9d5e00b30850c33f0d1b635b2 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)
@ -9,7 +9,7 @@ The SDL output mode is not supported in RHEL's qemu-kvm.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/input/input_disk.ml b/input/input_disk.ml
index 61ac9a8b..a54f06f9 100644
index 8b027fed..6dd1b0cf 100644
--- a/input/input_disk.ml
+++ b/input/input_disk.ml
@@ -78,7 +78,7 @@ module Disk = struct

View File

@ -1,4 +1,4 @@
From 868473dc34a7c9764bd3369cb0c98d6a46c851c4 Mon Sep 17 00:00:00 2001
From 5b648f5fb38d84a2308e128a197c553c9a4e97fb 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
@ -8,7 +8,7 @@ Subject: [PATCH] RHEL: point to KB for supported v2v hypervisors/guests
1 file changed, 4 insertions(+), 92 deletions(-)
diff --git a/docs/virt-v2v-support.pod b/docs/virt-v2v-support.pod
index 60cd1b69..f563389e 100644
index f8ba7e13..e1c5c1eb 100644
--- a/docs/virt-v2v-support.pod
+++ b/docs/virt-v2v-support.pod
@@ -8,98 +8,10 @@ systems and guests in virt-v2v
@ -70,7 +70,7 @@ index 60cd1b69..f563389e 100644
-
-=item OpenStack
-
-=item Red Hat Virtualization (RHV) 4.1 and up
-=item oVirt 4.1 and up
-
-=item Local libvirt
-

View File

@ -1,4 +1,4 @@
From 3bac67c131798ee43018302260e4e3f28a283d1b Mon Sep 17 00:00:00 2001
From c20502fd651748ca1183fcbf696b8b846c390589 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 8 Jul 2024 09:35:54 +0100
Subject: [PATCH] RHEL: Remove input from Xen
@ -12,18 +12,18 @@ Fixes: https://issues.redhat.com/browse/RHEL-37687
docs/Makefile.am | 14 ----
docs/virt-v2v-input-xen.pod | 154 ------------------------------------
docs/virt-v2v.pod | 50 ++----------
input/Makefile.am | 4 +-
input/input_xen_ssh.ml | 132 -------------------------------
input/Makefile.am | 2 -
input/input_xen_ssh.ml | 136 -------------------------------
input/input_xen_ssh.mli | 21 -----
inspector/inspector.ml | 4 -
v2v/v2v.ml | 5 --
8 files changed, 6 insertions(+), 378 deletions(-)
input/select_input.ml | 4 -
v2v/v2v.ml | 1 -
8 files changed, 5 insertions(+), 377 deletions(-)
delete mode 100644 docs/virt-v2v-input-xen.pod
delete mode 100644 input/input_xen_ssh.ml
delete mode 100644 input/input_xen_ssh.mli
diff --git a/docs/Makefile.am b/docs/Makefile.am
index e86ee777..3faa8c7d 100644
index 14b0b074..aa899304 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -23,7 +23,6 @@ EXTRA_DIST = \
@ -32,25 +32,25 @@ index e86ee777..3faa8c7d 100644
virt-v2v-input-vmware.pod \
- virt-v2v-input-xen.pod \
virt-v2v-inspector.pod \
virt-v2v-open.pod \
virt-v2v-output-local.pod \
virt-v2v-output-openstack.pod \
@@ -44,7 +43,6 @@ man_MANS = \
@@ -45,7 +44,6 @@ man_MANS = \
virt-v2v-hacking.1 \
virt-v2v-in-place.1 \
virt-v2v-input-vmware.1 \
- virt-v2v-input-xen.1 \
virt-v2v-inspector.1 \
virt-v2v-open.1 \
virt-v2v-output-local.1 \
virt-v2v-output-openstack.1 \
@@ -62,7 +60,6 @@ noinst_DATA = \
@@ -64,7 +62,6 @@ noinst_DATA = \
$(top_builddir)/website/virt-v2v-hacking.1.html \
$(top_builddir)/website/virt-v2v-in-place.1.html \
$(top_builddir)/website/virt-v2v-input-vmware.1.html \
- $(top_builddir)/website/virt-v2v-input-xen.1.html \
$(top_builddir)/website/virt-v2v-inspector.1.html \
$(top_builddir)/website/virt-v2v-open.1.html \
$(top_builddir)/website/virt-v2v-output-local.1.html \
$(top_builddir)/website/virt-v2v-output-openstack.1.html \
@@ -122,17 +119,6 @@ stamp-virt-v2v-input-vmware.pod: virt-v2v-input-vmware.pod
@@ -125,17 +122,6 @@ stamp-virt-v2v-input-vmware.pod: virt-v2v-input-vmware.pod
$<
touch $@
@ -229,7 +229,7 @@ index 0417e89f..00000000
-
-Copyright (C) 2009-2025 Red Hat Inc.
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index d4b87e7f..db28b91f 100644
index 100befd7..e0baa16f 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -12,7 +12,7 @@ virt-v2v - Convert a guest to use KVM
@ -239,8 +239,8 @@ index d4b87e7f..db28b91f 100644
-KVM. It can read Linux and Windows guests running on VMware, Xen,
+KVM. It can read Linux and Windows guests running on VMware,
Hyper-V and some other hypervisors, and convert them to KVM managed by
libvirt, OpenStack, oVirt, Red Hat Virtualisation (RHV) or several
other targets. It can modify the guest to make it bootable on KVM and
libvirt, OpenStack, oVirt, or several other targets. It can modify
the guest to make it bootable on KVM and install virtio drivers so it
@@ -59,8 +59,6 @@ management systems, guests.
L<virt-v2v-input-vmware(1)> — Input from VMware.
@ -249,7 +249,7 @@ index d4b87e7f..db28b91f 100644
-
L<virt-v2v-output-local(1)> — Output to local files or local libvirt.
L<virt-v2v-output-rhv(1)> — Output to oVirt or RHV.
L<virt-v2v-output-ovirt(1)> — Output to oVirt
@@ -188,10 +186,6 @@ This is only supported for:
=item *
@ -261,7 +261,7 @@ index d4b87e7f..db28b91f 100644
L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX>
when using the SSH transport method
@@ -307,12 +301,10 @@ hypervisor. See L<virt-v2v-input-vmware(1)>.
@@ -303,12 +297,10 @@ hypervisor. See L<virt-v2v-input-vmware(1)>.
Specify a libvirt connection URI to use when reading the guest. This
is only used when S<I<-i libvirt>>.
@ -277,7 +277,7 @@ index d4b87e7f..db28b91f 100644
=item B<-if> format
@@ -871,38 +863,6 @@ __CUSTOMIZE_OPTIONS__
@@ -857,38 +849,6 @@ __CUSTOMIZE_OPTIONS__
=head1 NOTES
@ -326,7 +326,7 @@ index d4b87e7f..db28b91f 100644
=head3 Disk space
diff --git a/input/Makefile.am b/input/Makefile.am
index 19f30b47..a33b826a 100644
index d5e77f76..98ea5223 100644
--- a/input/Makefile.am
+++ b/input/Makefile.am
@@ -29,7 +29,6 @@ SOURCES_MLI = \
@ -337,22 +337,20 @@ index 19f30b47..a33b826a 100644
name_from_disk.mli \
nbdkit_curl.mli \
nbdkit_ssh.mli \
@@ -60,8 +59,7 @@ SOURCES_ML = \
input_ova.ml \
@@ -60,7 +59,6 @@ SOURCES_ML = \
input_vcenter_https.ml \
input_vddk.ml \
- input_vmx.ml \
- input_xen_ssh.ml
+ input_vmx.ml
input_vmx.ml \
- input_xen_ssh.ml \
select_input.ml
# We pretend that we're building a C library. automake handles the
# compilation of the C sources for us. At the end we take the C
diff --git a/input/input_xen_ssh.ml b/input/input_xen_ssh.ml
deleted file mode 100644
index 77ee0ea1..00000000
index 45864cfe..00000000
--- a/input/input_xen_ssh.ml
+++ /dev/null
@@ -1,132 +0,0 @@
@@ -1,136 +0,0 @@
-(* helper-v2v-input
- * Copyright (C) 2009-2025 Red Hat Inc.
- *
@ -455,35 +453,39 @@ index 77ee0ea1..00000000
- | Some ip -> Some (Nbdkit_ssh.PasswordFile ip) in
-
- (* Create an nbdkit instance for each disk. *)
- List.iteri (
- fun i { d_format = format; d_type } ->
- let socket = sprintf "%s/in%d" dir i in
- On_exit.unlink socket;
- let uris =
- List.mapi (
- fun i { d_format = format; d_type } ->
- let socket = sprintf "%s/in%d" dir i in
- On_exit.unlink socket;
-
- match d_type with
- | NBD _ | HTTP _ -> (* These should never happen? *)
- assert false
- (match d_type with
- | NBD _ | HTTP _ -> (* These should never happen? *)
- assert false
-
- | BlockDev _ ->
- (* Conversion from a remote block device over SSH isn't
- * supported because OpenSSH sftp server doesn't know how
- * to get the size of a block device. Therefore we disallow
- * this and refer users to the manual.
- *)
- error (f_"input from xen over ssh does not support disks stored on \
- remote block devices. See virt-v2v-input-xen(1) \
- section \"Xen or ssh conversions from block devices\".")
- | BlockDev _ ->
- (* Conversion from a remote block device over SSH isn't
- * supported because OpenSSH sftp server doesn't know how
- * to get the size of a block device. Therefore we disallow
- * this and refer users to the manual.
- *)
- error (f_"input from xen over ssh does not support disks stored \
- on remote block devices. See virt-v2v-input-xen(1) \
- section \"Xen or ssh conversions from block devices\".")
-
- | LocalFile path ->
- let cor = dir // "convert" in
- let bandwidth = options.bandwidth in
- let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password
- ?port ~server ?user path in
- let _, pid = Nbdkit.run_unix socket nbdkit in
- On_exit.kill pid
- ) disks;
- | LocalFile path ->
- let cor = dir // "convert" in
- let bandwidth = options.bandwidth in
- let nbdkit = Nbdkit_ssh.create_ssh ?bandwidth ~cor ?password
- ?port ~server ?user path in
- let _, pid = Nbdkit.run_unix socket nbdkit in
- On_exit.kill pid
- );
-
- source
- NBD_URI.Unix (socket, None)
- ) disks in
-
- source, uris
-end
diff --git a/input/input_xen_ssh.mli b/input/input_xen_ssh.mli
deleted file mode 100644
@ -512,26 +514,26 @@ index 339309b8..00000000
-(** Input from Xen over SSH *)
-
-module XenSSH : Input.INPUT
diff --git a/inspector/inspector.ml b/inspector/inspector.ml
index d4e07e60..63a6f24f 100644
--- a/inspector/inspector.ml
+++ b/inspector/inspector.ml
@@ -289,10 +289,6 @@ read the man page virt-v2v-inspector(1).
| Some server, Some ("esx"|"gsx"|"vpx"), Some `VDDK ->
(module Input_vddk.VDDK)
diff --git a/input/select_input.ml b/input/select_input.ml
index 785fcae6..e1c2002f 100644
--- a/input/select_input.ml
+++ b/input/select_input.ml
@@ -70,10 +70,6 @@ let select_input ?(allow_remote = true) input_mode input_conn input_transport =
| Some server, Some ("esx"|"gsx"|"vpx"), Some Input.VDDK, true ->
(module Input_vddk.VDDK)
- (* Xen over SSH *)
- | Some server, Some "xen+ssh", _ ->
- (module Input_xen_ssh.XenSSH)
- (* Xen over SSH *)
- | Some server, Some "xen+ssh", _, true ->
- (module Input_xen_ssh.XenSSH)
-
(* Old virt-v2v also supported qemu+ssh://. However I am
* deliberately not supporting this in new virt-v2v. Don't
* use virt-v2v if a guest already runs on KVM.
(* Old virt-v2v also supported qemu+ssh://. However I am
* deliberately not supporting this in new virt-v2v. Don't
* use virt-v2v if a guest already runs on KVM.
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 70f506cd..edd2ba0f 100644
index cb62d847..b5e479bd 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -397,7 +397,6 @@ read the man page virt-v2v(1).
@@ -327,7 +327,6 @@ read the man page virt-v2v(1).
pr "virt-v2v-2.0\n";
pr "libguestfs-rewrite\n";
pr "vcenter-https\n";
@ -539,14 +541,3 @@ index 70f506cd..edd2ba0f 100644
pr "vddk\n";
pr "colours-option\n";
pr "vdsm-compat-option\n";
@@ -463,10 +462,6 @@ read the man page virt-v2v(1).
| Some server, Some ("esx"|"gsx"|"vpx"), Some `VDDK ->
(module Input_vddk.VDDK)
- (* Xen over SSH *)
- | Some server, Some "xen+ssh", _ ->
- (module Input_xen_ssh.XenSSH)
-
(* Old virt-v2v also supported qemu+ssh://. However I am
* deliberately not supporting this in new virt-v2v. Don't
* use virt-v2v if a guest already runs on KVM.

View File

@ -1,4 +1,4 @@
From 02e759299c0da04d589f3909b45835d27829d322 Mon Sep 17 00:00:00 2001
From 2bd28ced53017ac11ac8350c0dba78edc8ee4577 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Jun 2021 11:15:52 +0100
Subject: [PATCH] RHEL: Remove -o glance
@ -8,9 +8,11 @@ Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1977539
docs/virt-v2v-output-openstack.pod | 54 ++----------------------------
docs/virt-v2v.pod | 20 -----------
output/output_glance.mli | 2 +-
output/select_output.ml | 4 +--
output/select_output.mli | 2 +-
tests/test-o-glance.sh | 3 ++
v2v/v2v.ml | 7 +---
5 files changed, 7 insertions(+), 79 deletions(-)
v2v/v2v.ml | 5 +--
7 files changed, 9 insertions(+), 81 deletions(-)
diff --git a/docs/virt-v2v-output-openstack.pod b/docs/virt-v2v-output-openstack.pod
index 9bef76ea..04595816 100644
@ -98,10 +100,10 @@ index 9bef76ea..04595816 100644
=head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index db28b91f..040baae2 100644
index e0baa16f..c32e6db6 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -440,14 +440,6 @@ See L</Networks and bridges> below.
@@ -436,14 +436,6 @@ See L</Networks and bridges> below.
This is the same as I<-o local>.
@ -152,6 +154,44 @@ index 83d67576..7ab1503c 100644
-module Glance : Output.OUTPUT
+(*module Glance : Output.OUTPUT*)
diff --git a/output/select_output.ml b/output/select_output.ml
index 299d8463..eaee5bb5 100644
--- a/output/select_output.ml
+++ b/output/select_output.ml
@@ -19,11 +19,10 @@
open Tools_utils
open Common_gettext.Gettext
-type output_mode = Disk | Glance | Kubevirt | Libvirt | Null
+type output_mode = Disk | Kubevirt | Libvirt | Null
| Openstack | OVirt | OVirt_Upload | QEmu | VDSM
let output_mode_of_string = function
- | "glance" -> Glance
| "kubevirt" -> Kubevirt
| "libvirt" -> Libvirt
| "disk" | "local" -> Disk
@@ -41,7 +40,6 @@ let select_output = function
| Some Disk -> (module Output_disk.Disk)
| Some Null -> (module Output_null.Null)
| Some QEmu -> (module Output_qemu.QEMU)
- | Some Glance -> (module Output_glance.Glance)
| Some Kubevirt -> (module Output_kubevirt.Kubevirt)
| Some Openstack -> (module Output_openstack.Openstack)
| Some OVirt_Upload -> (module Output_ovirt_upload.OVirtUpload)
diff --git a/output/select_output.mli b/output/select_output.mli
index ff9d3d32..5c13572e 100644
--- a/output/select_output.mli
+++ b/output/select_output.mli
@@ -16,7 +16,7 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*)
-type output_mode = Disk | Glance | Kubevirt | Libvirt | Null
+type output_mode = Disk | Kubevirt | Libvirt | Null
| Openstack | OVirt | OVirt_Upload | QEmu | VDSM
(** [-o] option on the command line *)
diff --git a/tests/test-o-glance.sh b/tests/test-o-glance.sh
index 9e32d2bf..632579ee 100755
--- a/tests/test-o-glance.sh
@ -167,27 +207,19 @@ index 9e32d2bf..632579ee 100755
set -e
set -x
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index edd2ba0f..08177280 100644
index b5e479bd..284af43c 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -191,7 +191,6 @@ let rec main () =
if !output_mode <> `Not_set then
error (f_"%s option used more than once on the command line") "-o";
match mode with
- | "glance" -> output_mode := `Glance
| "kubevirt" -> output_mode := `Kubevirt
| "libvirt" -> output_mode := `Libvirt
| "disk" | "local" -> output_mode := `Disk
@@ -251,7 +250,7 @@ let rec main () =
@@ -213,7 +213,7 @@ let rec main () =
s_"Map NIC to network or bridge or assign static IP";
[ S 'n'; L"network" ], Getopt.String ("in:out", add_network),
s_"Map network in to out";
[ L"no-trim" ], Getopt.String ("-", no_trim_warning),
s_"Ignored for backwards compatibility";
- [ S 'o' ], Getopt.String ("glance|kubevirt|libvirt|local|null|openstack|qemu|rhv|rhv-upload|vdsm", set_output_mode),
+ [ S 'o' ], Getopt.String ("kubevirt|libvirt|local|null|openstack|qemu|rhv|rhv-upload|vdsm", set_output_mode),
- [ S 'o' ], Getopt.String ("glance|kubevirt|libvirt|local|null|openstack|ovirt|ovirt-upload|qemu|vdsm", set_output_mode),
+ [ S 'o' ], Getopt.String ("kubevirt|libvirt|local|null|openstack|ovirt|ovirt-upload|qemu|vdsm", set_output_mode),
s_"Set output mode (default: libvirt)";
[ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc),
s_"Set output allocation mode";
@@ -329,8 +328,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp
@@ -259,8 +259,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp
virt-v2v -i disk disk.img -o local -os /var/tmp
@ -196,7 +228,7 @@ index edd2ba0f..08177280 100644
There is a companion front-end called \"virt-p2v\" which comes as an
ISO or CD image that can be booted on physical machines.
@@ -411,7 +408,6 @@ read the man page virt-v2v(1).
@@ -341,7 +339,6 @@ read the man page virt-v2v(1).
pr "input:libvirtxml\n";
pr "input:ova\n";
pr "input:vmx\n";
@ -204,11 +236,3 @@ index edd2ba0f..08177280 100644
pr "output:kubevirt\n";
pr "output:libvirt\n";
pr "output:local\n";
@@ -504,7 +500,6 @@ read the man page virt-v2v(1).
| `Disk -> (module Output_disk.Disk)
| `Null -> (module Output_null.Null)
| `QEmu -> (module Output_qemu.QEMU)
- | `Glance -> (module Output_glance.Glance)
| `Kubevirt -> (module Output_kubevirt.Kubevirt)
| `Openstack -> (module Output_openstack.Openstack)
| `RHV_Upload -> (module Output_rhv_upload.RHVUpload)

View File

@ -1,4 +1,4 @@
From 5b58bee765577287069b3e51fc41079ed980b61c Mon Sep 17 00:00:00 2001
From 1ffbc2996a92e7baa01f0bc9960f0dfff311d5d6 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
@ -9,7 +9,7 @@ RHEL does not have btrfs so this test always fails.
1 file changed, 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 07819679..cedd99bc 100644
index 62237092..51d84bc9 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -64,7 +64,6 @@ TESTS = \

View File

@ -1,4 +1,4 @@
From 26f191d0762238d0f5b76b5c055cd01d128d0db5 Mon Sep 17 00:00:00 2001
From 8258ebaa6ee4106f4fcb447aabc84838101c44a1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 28 Apr 2023 12:28:19 +0100
Subject: [PATCH] RHEL: Remove --block-driver option
@ -37,7 +37,7 @@ index 6c02a99c..3d0d1b28 100644
=item B<--colours>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 040baae2..af19bfb0 100644
index c32e6db6..2afd6182 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -211,16 +211,6 @@ The options are silently ignored for other input methods.
@ -58,7 +58,7 @@ index 040baae2..af19bfb0 100644
=item B<--colours>
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index 5b00884d..84e783dc 100644
index 01fa9d24..dc19dca7 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -49,7 +49,6 @@ let rec main () =
@ -69,7 +69,7 @@ index 5b00884d..84e783dc 100644
let input_conn = ref None in
let input_format = ref None in
let input_password = ref None in
@@ -165,8 +164,6 @@ let rec main () =
@@ -158,8 +157,6 @@ let rec main () =
let argspec = [
[ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge),
s_"Map bridge in to out";
@ -78,7 +78,7 @@ index 5b00884d..84e783dc 100644
[ S 'i' ], Getopt.String ("disk|libvirt|libvirtxml|ova|vmx", set_input_mode),
s_"Set input mode (default: libvirt)";
[ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn),
@@ -233,12 +230,6 @@ read the man page virt-v2v-in-place(1).
@@ -226,12 +223,6 @@ read the man page virt-v2v-in-place(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -91,7 +91,7 @@ index 5b00884d..84e783dc 100644
let customize_ops = get_customize_ops () in
let input_conn = !input_conn in
let input_mode = !input_mode in
@@ -326,7 +317,7 @@ read the man page virt-v2v-in-place(1).
@@ -296,7 +287,7 @@ read the man page virt-v2v-in-place(1).
(* Get the conversion options. *)
let conv_options = {
@ -101,7 +101,7 @@ index 5b00884d..84e783dc 100644
ks = opthandle.ks;
network_map;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index cedd99bc..befa9337 100644
index 51d84bc9..f64316fd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -57,7 +57,6 @@ TESTS_ENVIRONMENT = $(top_builddir)/run --test
@ -113,7 +113,7 @@ index cedd99bc..befa9337 100644
test-checksum-bad.sh \
test-checksum-good-qcow2.sh \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 08177280..e656afa3 100644
index 284af43c..673ce688 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -48,7 +48,6 @@ let rec main () =
@ -124,16 +124,16 @@ index 08177280..e656afa3 100644
let input_conn = ref None in
let input_format = ref None in
let input_password = ref None in
@@ -226,8 +225,6 @@ let rec main () =
@@ -193,8 +192,6 @@ let rec main () =
s_"Set bandwidth dynamically from file";
[ S 'b'; L"bridge" ], Getopt.String ("in:out", add_bridge),
s_"Map bridge in to out";
- [ L"block-driver" ], Getopt.String ("driver", set_string_option_once "--block-driver" block_driver),
- s_"Prefer 'virtio-blk' or 'virtio-scsi'";
[ L"compressed" ], Getopt.Unit (fun () -> set_output_option_compat "compressed" ""),
s_"Compress output file (-of qcow2 only)";
[ S 'i' ], Getopt.String ("disk|libvirt|libvirtxml|ova|vmx", set_input_mode),
@@ -356,12 +353,6 @@ read the man page virt-v2v(1).
s_"Set input mode (default: libvirt)";
[ M"ic" ], Getopt.String ("uri", set_string_option_once "-ic" input_conn),
@@ -287,12 +284,6 @@ read the man page virt-v2v(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -146,7 +146,7 @@ index 08177280..e656afa3 100644
let customize_ops = get_customize_ops () in
let input_conn = !input_conn in
let input_mode = !input_mode in
@@ -534,7 +525,7 @@ read the man page virt-v2v(1).
@@ -415,7 +406,7 @@ read the man page virt-v2v(1).
(* Get the conversion options. *)
let conv_options = {

View File

@ -1,4 +1,4 @@
From 597a67b31d506ff076e694be21e2e45d767f7e46 Mon Sep 17 00:00:00 2001
From d529bc6e02c0de394c6c90c34bc25659c7d97824 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
@ -25,10 +25,10 @@ index 3d0d1b28..9714bbac 100644
run on KVM. It does this conversion in place, modifying the original
disk.
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index 84e783dc..0b9cc753 100644
index dc19dca7..530ee9af 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -214,6 +214,9 @@ read the man page virt-v2v-in-place(1).
@@ -207,6 +207,9 @@ read the man page virt-v2v-in-place(1).
let opthandle = create_standard_options argspec ~anon_fun ~key_opts:true ~machine_readable:true usage_msg in
Getopt.parse opthandle.getopt;

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-2.7.12.tar.gz) = 0de36782f19570ca48610e6d8a277ec6d3ed77f1dbe084bbc485fa21b380282c71311de650eaa2c1bff8f17e2073a9b5fd97bca67d576ba7c83a4b0c0a6d2d91
SHA512 (virt-v2v-2.7.12.tar.gz.sig) = ec991f3e6444b9fa58a6b645649458c13b3ba76833d75087a0cdb733d628ef5f82ac6ed8ab35a7ec8b0bd4cd086faa62db1877a769c9832a71038c3161ac5531
SHA512 (virt-v2v-2.7.15.tar.gz) = 3762a48dbb8ebb04e39496a816b6a367b78fb6a1137f5bc7b11c369692f80790afea8a0314a0f2e5dfbd9891f055f3f163e77fb6203029f1b2c17c444e3b7343
SHA512 (virt-v2v-2.7.15.tar.gz.sig) = 1e9d2bab8a1cb757cd3222c2f77f4ff887fffd3b82ce380ce9b9850f183a31c1686f054b5b48cf0dad286d0fc5c5a12a7fe5a8b708b9f3b1b1ab0227ff35bac3

View File

@ -6,7 +6,7 @@
Name: virt-v2v
Epoch: 1
Version: 2.7.12
Version: 2.7.15
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
@ -27,18 +27,23 @@ Source3: copy-patches.sh
# https://github.com/libguestfs/virt-v2v/commits/rhel-10.1
# Patches.
Patch0001: 0001-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0002: 0002-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0003: 0003-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0004: 0004-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0005: 0005-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0006: 0006-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0007: 0007-RHEL-Remove-input-from-Xen.patch
Patch0008: 0008-RHEL-Remove-o-glance.patch
Patch0009: 0009-RHEL-tests-Remove-btrfs-test.patch
Patch0010: 0010-RHEL-Remove-block-driver-option.patch
Patch0011: 0011-RHEL-Remove-o-rhv-o-rhv-upload-and-o-vdsm-modes.patch
Patch0012: 0012-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
Patch0001: 0001-input-vddk-Use-single-nbdkit-vddk-plugin-instance-wi.patch
Patch0002: 0002-docs-Further-updates-to-virt-v2v-release-notes-for-2.patch
Patch0003: 0003-input-vddk-Break-long-line-of-code.patch
Patch0004: 0004-TODO-Rewrite-this-document.patch
Patch0005: 0005-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0006: 0006-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0007: 0007-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0008: 0008-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0009: 0009-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0010: 0010-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0011: 0011-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0012: 0012-RHEL-Remove-input-from-Xen.patch
Patch0013: 0013-RHEL-Remove-o-glance.patch
Patch0014: 0014-RHEL-tests-Remove-btrfs-test.patch
Patch0015: 0015-RHEL-Remove-block-driver-option.patch
Patch0016: 0016-RHEL-Remove-o-ovirt-o-ovirt-upload-and-o-vdsm-modes.patch
Patch0017: 0017-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
%if !0%{?rhel}
# libguestfs hasn't been built on i686 for a while since there is no
@ -160,9 +165,9 @@ Requires: nbdkit-ssh-plugin
Requires: nbdkit-vddk-plugin
%endif
Requires: nbdkit-blocksize-filter
Requires: nbdkit-cacheextents-filter
Requires: nbdkit-cow-filter >= 1.28.3-1.el9
Requires: nbdkit-multi-conn-filter
Requires: nbdkit-noextents-filter
Requires: nbdkit-rate-filter
Requires: nbdkit-retry-filter
@ -180,9 +185,9 @@ Recommends: virtio-win
Virt-v2v converts a single guest from a foreign hypervisor to run on
KVM. It can read Linux and Windows guests running on VMware, Xen,
Hyper-V and some other hypervisors, and convert them to KVM managed by
libvirt, OpenStack, oVirt, Red Hat Virtualisation (RHV) or several
other targets. It can modify the guest to make it bootable on KVM and
install virtio drivers so it will run quickly.
libvirt, OpenStack or several other targets. It can modify the guest
to make it bootable on KVM and install virtio drivers so it will run
quickly.
%package bash-completion
@ -249,6 +254,9 @@ find $RPM_BUILD_ROOT -name '*.la' -delete
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}
mv $RPM_BUILD_ROOT%{_bindir}/virt-v2v-in-place $RPM_BUILD_ROOT%{_libexecdir}/
rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-in-place.1*
# these are also not supported on RHEL
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-input-xen.1*
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-output-ovirt.1*
%endif
# Find locale files.
@ -290,6 +298,7 @@ done
%{_libexecdir}/virt-v2v-in-place
%endif
%{_bindir}/virt-v2v-inspector
%{_bindir}/virt-v2v-open
%{_mandir}/man1/virt-v2v.1*
%{_mandir}/man1/virt-v2v-hacking.1*
%{_mandir}/man1/virt-v2v-input-vmware.1*
@ -298,10 +307,11 @@ done
%{_mandir}/man1/virt-v2v-in-place.1*
%endif
%{_mandir}/man1/virt-v2v-inspector.1*
%{_mandir}/man1/virt-v2v-open.1*
%{_mandir}/man1/virt-v2v-output-local.1*
%{_mandir}/man1/virt-v2v-output-openstack.1*
%if !0%{?rhel}
%{_mandir}/man1/virt-v2v-output-rhv.1*
%{_mandir}/man1/virt-v2v-output-ovirt.1*
%endif
%{_mandir}/man1/virt-v2v-release-notes-1.42.1*
%{_mandir}/man1/virt-v2v-release-notes-2.*.1*
@ -324,15 +334,29 @@ done
%changelog
* Tue Apr 15 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.12-1
- Rebase to virt-v2v 2.7.12
* Tue May 13 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.15-1
- Rebase to virt-v2v 2.7.15
related: RHEL-81735
- Fix virt-v2v -v --install dnf5 error
resolves: RHEL-83288
- Print blkhash of converted image in virt-v2v debugging output
resolves: RHEL-85514
- Document dracut network-legacy conversion failure
related: RHEL-55732
resolves: RHEL-55732
- Print nbdcopy command in debug output
resolves: RHEL-86088
- Remove usage of nbdkit-cacheextents-filter
resolves: RHEL-88860
- Print better mountpoint stats in debug output
resolves: RHEL-88862
- Add virt-v2v -io vddk-noextents=true so we can test noextents
resolves: RHEL-88864
- Remove several ancient, deprecated options
resolves: RHEL-88867
- virt-v2v-inspector is failing on snapshots of running VMs
resolves: RHEL-88544
- Add virt-v2v-open tool
resolves: RHEL-89993
* Tue Feb 11 2025 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-4
- Rebase to virt-v2v 2.7.1