Rebase to upstream 1.45.97.

resolves: rhbz#2011713
Fix -o rhv mode
resolves: rhbz#2027598
input: xen: Fix assertion error when importing from remote block device
resolves: rhbz#2041852
output: -o json: Allow -oo (output options) to work
resolves: rhbz#2041850
This commit is contained in:
Richard W.M. Jones 2022-01-17 17:02:54 +00:00
parent c553c74d10
commit 7c71720a7f
22 changed files with 166 additions and 907 deletions

View File

@ -1,44 +0,0 @@
From dc69bb6033bd41b79e6203080059d4f3b0eb8027 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:02 +0100
Subject: [PATCH] lib/types: reformat "string_of_guestcaps"
The printf format string in "string_of_guestcaps" is hard to read, because
it is not indented properly wrt. the rest of the source code. Indent it
properly without changing its behavior.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-2-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
lib/types.ml | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/lib/types.ml b/lib/types.ml
index 894391ba..dc3308dc 100644
--- a/lib/types.ml
+++ b/lib/types.ml
@@ -423,12 +423,13 @@ let string_of_machine = function
let string_of_guestcaps gcaps =
sprintf "\
-gcaps_block_bus = %s
-gcaps_net_bus = %s
-gcaps_machine = %s
-gcaps_arch = %s
-gcaps_acpi = %b
-" (string_of_block_type gcaps.gcaps_block_bus)
+ gcaps_block_bus = %s\n\
+ gcaps_net_bus = %s\n\
+ gcaps_machine = %s\n\
+ gcaps_arch = %s\n\
+ gcaps_acpi = %b\n\
+ "
+ (string_of_block_type gcaps.gcaps_block_bus)
(string_of_net_type gcaps.gcaps_net_bus)
(string_of_machine gcaps.gcaps_machine)
gcaps.gcaps_arch
--
2.31.1

View File

@ -0,0 +1,31 @@
From cdde7864f65c7c3cf3400b978a52ade727402e17 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 18 Jan 2022 12:21:05 +0000
Subject: [PATCH] output: -o json: Allow -oo (output options) to work
Because of an incorrect error message added during modularisation it
was not possible to use the -o json -oo output options. Remove the
bogus error message.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2041850
Reported-by: Xiaodai Wang
---
output/output_json.ml | 2 --
1 file changed, 2 deletions(-)
diff --git a/output/output_json.ml b/output/output_json.ml
index 770eb8ca..bb0cdfeb 100644
--- a/output/output_json.ml
+++ b/output/output_json.ml
@@ -135,8 +135,6 @@ module Json = struct
type t = unit
let setup dir options source =
- if options.output_options <> [] then
- error (f_"no -oo (output options) are allowed here");
let data = json_parse_options options in
let output_name = get_output_name options source in
let disks = get_disks dir in
--
2.31.1

View File

@ -0,0 +1,100 @@
From f3180e3c0ef59ab52983903ff806014a4a3171a5 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 18 Jan 2022 12:37:51 +0000
Subject: [PATCH] input: xen: Fix assertion error when importing from remote
block device
We never supported this because OpenSSH sftp server does not know how
to open and get the size of a block device. Before modular virt-v2v,
we would detect this situation and print an error:
virt-v2v: error: guest disk sda appears to be zero bytes in size.
There could be several reasons for this:
Check that the guest doesn't really have a zero-sized disk. virt-v2v
cannot convert such a guest.
If you are converting a guest from an ssh source and the guest has a disk
on a block device (eg. on a host partition or host LVM LV), then
conversions of this type are not supported. See the virt-v2v-input-xen(1)
manual for a workaround.
This error was lost in the conversion to modularity, but in any case
the proper way to detect this is in the input_xen driver itself.
In addition to this, when we removed the old virt-v2v-copy-to-local
tool, the text referring to the workaround in the manual became
meaningless, so I added the (ugly, manual) workaround that you have to
do back into the manual, minus the bit about the tool that we removed.
In future we could consider other ways to convert a remote block
device over SSH transparently. (Sending a "dd" command, maybe?)
I also checked what happens when we try to convert an empty disk, and
it fails during inspection with a reasonable error message, so we
don't need to do anything to restore the above error:
$ virt-v2v -i disk /var/tmp/empty -o null
[ 1.1] Opening the source
[ 7.0] Inspecting the source
virt-v2v: error: inspection could not detect the source guest (or physical
machine).
Assuming that you are running virt-v2v/virt-p2v on a source which is
supported (and not, for example, a blank disk), then this should not
happen.
No root device found in this operating system image.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2041852
Reported-by: Xiaodai Wang
---
docs/virt-v2v-input-xen.pod | 5 +++++
input/input_xen_ssh.ml | 12 +++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod
index 857a7095..c4948e5e 100644
--- a/docs/virt-v2v-input-xen.pod
+++ b/docs/virt-v2v-input-xen.pod
@@ -99,6 +99,11 @@ This happens because the qemu ssh block driver that we use to access
remote disks uses the ssh sftp protocol, and this protocol cannot
correctly detect the size of host block devices.
+The workaround is to copy the block device from the remote Xen
+server to a regular local file, copy the libvirt guest XML,
+adjust the C<disk> element to point to the local file, and use
+C<-i libvirtxml> mode instead.
+
=head1 SEE ALSO
L<virt-v2v(1)>.
diff --git a/input/input_xen_ssh.ml b/input/input_xen_ssh.ml
index 5bb46bde..cb8b1f91 100644
--- a/input/input_xen_ssh.ml
+++ b/input/input_xen_ssh.ml
@@ -87,9 +87,19 @@ let rec xen_ssh_source dir options args =
On_exit.unlink socket;
match d_type with
- | BlockDev _ | NBD _ | HTTP _ -> (* These should never happen? *)
+ | 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\".")
+
| LocalFile path ->
let cor = dir // "convert" in
let bandwidth = options.bandwidth in
--
2.31.1

View File

@ -1,55 +0,0 @@
From 08786886302cceb7ee73cfa6c01325f690a3c094 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:03 +0100
Subject: [PATCH] lib/types: update "string_of_guestcaps"
The "string_of_guestcaps" function is out of date; the following commits
did not update it, when they introduced new fields to the "guestcaps"
record type:
- d295d6e510a4 ("v2v: Extend guestcaps to record drivers for virtio-rng,
balloon and pvpanic.", 2017-04-06)
- 05f780c16f01 ("v2v: support configuration of viosock driver",
2021-02-26)
Print those fields now.
Fixes: d295d6e510a4fb251d545c52c0a9d6dccabe6f78
Fixes: 05f780c16f0135c657615520c2245b42de1efc3e
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-3-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
lib/types.ml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/types.ml b/lib/types.ml
index dc3308dc..52db1f9e 100644
--- a/lib/types.ml
+++ b/lib/types.ml
@@ -425,12 +425,20 @@ let string_of_guestcaps gcaps =
sprintf "\
gcaps_block_bus = %s\n\
gcaps_net_bus = %s\n\
+ gcaps_virtio_rng = %b\n\
+ gcaps_virtio_balloon = %b\n\
+ gcaps_isa_pvpanic = %b\n\
+ gcaps_virtio_socket = %b\n\
gcaps_machine = %s\n\
gcaps_arch = %s\n\
gcaps_acpi = %b\n\
"
(string_of_block_type gcaps.gcaps_block_bus)
(string_of_net_type gcaps.gcaps_net_bus)
+ gcaps.gcaps_virtio_rng
+ gcaps.gcaps_virtio_balloon
+ gcaps.gcaps_isa_pvpanic
+ gcaps.gcaps_virtio_socket
(string_of_machine gcaps.gcaps_machine)
gcaps.gcaps_arch
gcaps.gcaps_acpi
--
2.31.1

View File

@ -1,4 +1,4 @@
From 44314b8d8d201e6043b7148240446c98c726bc95 Mon Sep 17 00:00:00 2001
From 802cb1194c935d70194713491785537344fa816a 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,95 +0,0 @@
From 789017805ad0ddfacfb16d39313ef8b2f8f478ac Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:04 +0100
Subject: [PATCH] lib/types: introduce the "gcaps_virtio_1_0" guest capability
Add a new field to the "guestcaps" record to track whether the guest
supports the virtio devices that it does at the virtio-1.0 protocol level.
Virt-v2v's current assumption is that virtio-1.0 is supported by any
guest, namely for those virtio devices specifically that the guest
supports -- which in fact may be the empty set. Make this assumption
explicit by setting the new field to "true" in "convert/convert_linux.ml"
and "convert/convert_windows.ml".
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-4-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/convert_linux.ml | 1 +
convert/convert_windows.ml | 1 +
lib/types.ml | 3 +++
lib/types.mli | 4 ++++
4 files changed, 9 insertions(+)
diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml
index d49ecec0..3f1114ad 100644
--- a/convert/convert_linux.ml
+++ b/convert/convert_linux.ml
@@ -155,6 +155,7 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
gcaps_machine = machine;
gcaps_arch = Utils.kvm_arch inspect.i_arch;
gcaps_acpi = acpi;
+ gcaps_virtio_1_0 = true;
} in
guestcaps
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 0ebffb15..30e494ea 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -259,6 +259,7 @@ let convert (g : G.guestfs) _ inspect _ static_ips =
gcaps_machine = machine;
gcaps_arch = Utils.kvm_arch inspect.i_arch;
gcaps_acpi = true;
+ gcaps_virtio_1_0 = true;
} in
guestcaps
diff --git a/lib/types.ml b/lib/types.ml
index 52db1f9e..50c41918 100644
--- a/lib/types.ml
+++ b/lib/types.ml
@@ -404,6 +404,7 @@ type guestcaps = {
gcaps_machine : guestcaps_machine;
gcaps_arch : string;
gcaps_acpi : bool;
+ gcaps_virtio_1_0 : bool;
}
and guestcaps_block_type = Virtio_blk | IDE
and guestcaps_net_type = Virtio_net | E1000 | RTL8139
@@ -432,6 +433,7 @@ let string_of_guestcaps gcaps =
gcaps_machine = %s\n\
gcaps_arch = %s\n\
gcaps_acpi = %b\n\
+ gcaps_virtio_1_0 = %b\n\
"
(string_of_block_type gcaps.gcaps_block_bus)
(string_of_net_type gcaps.gcaps_net_bus)
@@ -442,6 +444,7 @@ let string_of_guestcaps gcaps =
(string_of_machine gcaps.gcaps_machine)
gcaps.gcaps_arch
gcaps.gcaps_acpi
+ gcaps.gcaps_virtio_1_0
type target_buses = {
target_virtio_blk_bus : target_bus_slot array;
diff --git a/lib/types.mli b/lib/types.mli
index 02913c0c..0b9b6e25 100644
--- a/lib/types.mli
+++ b/lib/types.mli
@@ -270,6 +270,10 @@ type guestcaps = {
gcaps_machine : guestcaps_machine; (** Machine model. *)
gcaps_arch : string; (** Architecture that KVM must emulate. *)
gcaps_acpi : bool; (** True if guest supports acpi. *)
+
+ gcaps_virtio_1_0 : bool;
+ (** The guest supports the virtio devices that it does at the virtio-1.0
+ protocol level. *)
}
(** Guest capabilities after conversion. eg. Was virtio found or installed? *)
--
2.31.1

View File

@ -1,4 +1,4 @@
From 1c1eb51b4f7e9d5f1e2aef7d695181a14fbd0a7d Mon Sep 17 00:00:00 2001
From 2647de6f58908eb11ff5a156793fba2926a6cdd5 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

View File

@ -1,118 +0,0 @@
From e4cf85bd3ad44aed28cf3e8d3bfd67fec38ebdab Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:05 +0100
Subject: [PATCH] output/create_libvirt_xml: pick "virtio-transitional" models
when needed
In the domain XML we generate, we do not assign PCI B/D/F addresses to
devices; that job is left to libvirtd. When using the Q35 machine type,
libvirtd places the virtio devices into PCI Express Root Ports. As a
consequence, QEMU disables virtio-0.9.5 support on these devices, and so
guest OSes without virtio-1.0 drivers cannot drive them.
Prevent QEMU from turning off the virtio-0.9.5 ("legacy") protocol by
specifying the "virtio-transitional" (not "virtio") model for our virtio
devices:
- For non-disk devices, simply change the value of the existent "model"
attribute.
- For disk devices, add the "model" attribute as a new one.
(In fact, libvirtd doesn't (only) add the "disable_legacy=off" QEMU device
property for the "virtio-transitional" devices -- libvirtd even moves
these devices from PCI Express Root Ports to a dedicated
"pcie-to-pci-bridge". This has the same effect on QEMU.)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-5-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
output/create_libvirt_xml.ml | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/output/create_libvirt_xml.ml b/output/create_libvirt_xml.ml
index 9413cc0b..87bfab17 100644
--- a/output/create_libvirt_xml.ml
+++ b/output/create_libvirt_xml.ml
@@ -312,18 +312,26 @@ let create_libvirt_xml ?pool source inspect
(* The devices. *)
let devices = ref [] in
+ (* This will affect all of the virtio devices (if any). *)
+ let virtio_transitional =
+ guestcaps.gcaps_machine = Q35 && not guestcaps.gcaps_virtio_1_0 in
+ let virtio_model =
+ if virtio_transitional then "virtio-transitional" else "virtio" in
+
(* Fixed and removable disks. *)
let () =
- let make_disk bus_name drive_prefix i = function
+ let make_disk bus_name ?(viotrans = false) drive_prefix i = function
| BusSlotEmpty -> Comment (sprintf "%s slot %d is empty" bus_name i)
| BusSlotDisk d ->
let outdisk = outdisk_name d.s_disk_id in
- e "disk" [
- "type", if pool = None then "file" else "volume";
- "device", "disk"
- ] [
+ e "disk" (
+ [
+ "type", if pool = None then "file" else "volume";
+ "device", "disk"
+ ] @ if (viotrans) then [ "model", "virtio-transitional" ] else []
+ ) [
e "driver" [
"name", "qemu";
"type", output_format;
@@ -364,7 +372,7 @@ let create_libvirt_xml ?pool source inspect
in
List.push_back_list devices
- (List.mapi (make_disk "virtio" "vd")
+ (List.mapi (make_disk "virtio" ~viotrans:virtio_transitional "vd")
(Array.to_list target_buses.target_virtio_blk_bus));
let ide_disks =
match guestcaps.gcaps_machine with
@@ -392,7 +400,7 @@ let create_libvirt_xml ?pool source inspect
let nics =
let net_model =
match guestcaps.gcaps_net_bus with
- | Virtio_net -> "virtio" | E1000 -> "e1000" | RTL8139 -> "rtl8139" in
+ | Virtio_net -> virtio_model | E1000 -> "e1000" | RTL8139 -> "rtl8139" in
List.map (
fun { s_mac = mac; s_vnet_type = vnet_type; s_vnet = vnet } ->
let vnet_type_str =
@@ -483,7 +491,7 @@ let create_libvirt_xml ?pool source inspect
(* Miscellaneous KVM devices. *)
if guestcaps.gcaps_virtio_rng then
List.push_back devices (
- e "rng" ["model", "virtio"] [
+ e "rng" ["model", virtio_model] [
(* XXX Using /dev/urandom requires libvirt >= 1.3.4. Libvirt
* was broken before that.
*)
@@ -496,7 +504,7 @@ let create_libvirt_xml ?pool source inspect
List.push_back devices (
e "memballoon"
["model",
- if guestcaps.gcaps_virtio_balloon then "virtio" else "none"]
+ if guestcaps.gcaps_virtio_balloon then virtio_model else "none"]
[]
);
if guestcaps.gcaps_isa_pvpanic then
@@ -508,7 +516,7 @@ let create_libvirt_xml ?pool source inspect
List.push_back devices (
e "viosock"
["model",
- if guestcaps.gcaps_virtio_socket then "virtio" else "none"]
+ if guestcaps.gcaps_virtio_socket then virtio_model else "none"]
[]
);
--
2.31.1

View File

@ -1,4 +1,4 @@
From 281273484f675b3ddba584ddc9751fc74653e67f Mon Sep 17 00:00:00 2001
From f3ade6efd92f4bb6bf8f00af9b7f70dc4a3125f5 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,7 +9,7 @@ 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 d6861d08..a2fccf29 100644
index 4c8998c2..7b16dd8b 100644
--- a/lib/utils.ml
+++ b/lib/utils.ml
@@ -59,13 +59,14 @@ let kvm_arch = function

View File

@ -1,33 +0,0 @@
From 511910e1f7e956fb8a032c1c04fd0a983b2108df Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:06 +0100
Subject: [PATCH] output/create_json: expose "gcaps_virtio_1_0"
Let CNV / KubeVirt know about the "gcaps_virtio_1_0" field as well, so
that it can make the same determination from "machine" and
"gcaps_virtio_1_0" as virt-v2v does in the libvirt output (from an earlier
patch in this series).
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-6-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
output/create_json.ml | 1 +
1 file changed, 1 insertion(+)
diff --git a/output/create_json.ml b/output/create_json.ml
index b48902b7..985e10a9 100644
--- a/output/create_json.ml
+++ b/output/create_json.ml
@@ -219,6 +219,7 @@ let create_json_metadata source inspect
"isa-pvpanic", JSON.Bool guestcaps.gcaps_isa_pvpanic;
"virtio-socket", JSON.Bool guestcaps.gcaps_virtio_socket;
"acpi", JSON.Bool guestcaps.gcaps_acpi;
+ "virtio-1-0", JSON.Bool guestcaps.gcaps_virtio_1_0;
] in
List.push_back doc ("guestcaps", JSON.Dict guestcaps_dict);
--
2.31.1

View File

@ -1,4 +1,4 @@
From aa4e5271d3fe02f252ace148b89e9894436a79fb Mon Sep 17 00:00:00 2001
From 952fea38a35476bc5c3b050380459ebe38006975 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.

View File

@ -1,165 +0,0 @@
From 46f5885dba1b669588d98eb840af454564d07cae Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:07 +0100
Subject: [PATCH] convert/libosinfo: wrap osinfo_os_get_all_devices()
Introduce the "osinfo_os.get_devices" OCaml method, for wrapping the
libosinfo API osinfo_os_get_all_devices().
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-7-lersek@redhat.com>
[lersek@redhat.com: call OCaml values "<something>v" (Rich)]
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/libosinfo-c.c | 66 +++++++++++++++++++++++++++++++++++++++++++
convert/libosinfo.ml | 14 +++++++++
convert/libosinfo.mli | 14 +++++++++
3 files changed, 94 insertions(+)
diff --git a/convert/libosinfo-c.c b/convert/libosinfo-c.c
index 09cf588d..b8e78bec 100644
--- a/convert/libosinfo-c.c
+++ b/convert/libosinfo-c.c
@@ -50,6 +50,7 @@
G_DEFINE_AUTOPTR_CLEANUP_FUNC(OsinfoFilter, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(OsinfoLoader, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(OsinfoOsList, g_object_unref)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(OsinfoDeviceList, g_object_unref)
#endif
typedef OsinfoDb *OsinfoDb_t;
@@ -255,3 +256,68 @@ v2v_osinfo_os_get_device_drivers (value osv)
CAMLreturn (rv);
}
+
+/* Collect OsinfoDevice properties from two levels:
+ *
+ * - The OSINFO_ENTITY_PROP_ID property, originating from the OsinfoEntity base
+ * class. This is a unique URI, identifying the device.
+ *
+ * - All currently known OSINFO_DEVICE_PROP_* properties, originating from the
+ * OsinfoDevice class.
+ *
+ * All of the above properties have string values. Thus, for uniformity, access
+ * all these properties by their names at the OsinfoEntity level (i.e., forego
+ * the class- and property-specific, dedicated property getter functions).
+ */
+static const char * const device_prop[] = {
+ OSINFO_ENTITY_PROP_ID,
+ OSINFO_DEVICE_PROP_VENDOR,
+ OSINFO_DEVICE_PROP_VENDOR_ID,
+ OSINFO_DEVICE_PROP_PRODUCT,
+ OSINFO_DEVICE_PROP_PRODUCT_ID,
+ OSINFO_DEVICE_PROP_NAME,
+ OSINFO_DEVICE_PROP_CLASS,
+ OSINFO_DEVICE_PROP_BUS_TYPE,
+ OSINFO_DEVICE_PROP_SUBSYSTEM,
+};
+#define NUM_DEVICE_PROPS (sizeof device_prop / sizeof device_prop[0])
+
+value
+v2v_osinfo_os_get_all_devices (value osv)
+{
+ CAMLparam1 (osv);
+ CAMLlocal3 (retvalv, linkv, propsv);
+ g_autoptr (OsinfoDeviceList) dev_list = NULL;
+ OsinfoList *ent_list;
+ gint ent_nr;
+
+ retvalv = Val_emptylist;
+ dev_list = osinfo_os_get_all_devices (OsinfoOs_t_val (osv), NULL);
+ ent_list = OSINFO_LIST (dev_list);
+ ent_nr = osinfo_list_get_length (ent_list);
+
+ while (ent_nr > 0) {
+ OsinfoEntity *ent;
+ size_t prop_nr;
+
+ --ent_nr;
+ ent = osinfo_list_get_nth (ent_list, ent_nr);
+
+ propsv = caml_alloc (NUM_DEVICE_PROPS, 0);
+ for (prop_nr = 0; prop_nr < NUM_DEVICE_PROPS; ++prop_nr) {
+ const gchar *prop_val;
+
+ prop_val = osinfo_entity_get_param_value (ent, device_prop[prop_nr]);
+ if (prop_val == NULL)
+ prop_val = "";
+ Store_field (propsv, prop_nr, caml_copy_string (prop_val));
+ }
+
+ linkv = caml_alloc (2, 0);
+ Store_field (linkv, 0, propsv);
+ Store_field (linkv, 1, retvalv);
+ retvalv = linkv;
+ }
+
+ CAMLreturn (retvalv);
+}
diff --git a/convert/libosinfo.ml b/convert/libosinfo.ml
index bd9ca126..78271be2 100644
--- a/convert/libosinfo.ml
+++ b/convert/libosinfo.ml
@@ -32,13 +32,27 @@ type osinfo_device_driver = {
files : string list;
}
+type osinfo_device = {
+ id : string;
+ vendor : string;
+ vendor_id : string;
+ product : string;
+ product_id : string;
+ name : string;
+ class_ : string;
+ bus_type : string;
+ subsystem : string;
+}
+
external osinfo_os_get_id : osinfo_os_t -> string = "v2v_osinfo_os_get_id"
external osinfo_os_get_device_drivers : osinfo_os_t -> osinfo_device_driver list = "v2v_osinfo_os_get_device_drivers"
+external osinfo_os_get_devices : osinfo_os_t -> osinfo_device list = "v2v_osinfo_os_get_all_devices"
class osinfo_os h =
object (self)
method get_id () = osinfo_os_get_id h
method get_device_drivers () = osinfo_os_get_device_drivers h
+ method get_devices () = osinfo_os_get_devices h
end
external osinfo_db_load : unit -> osinfo_db_t = "v2v_osinfo_db_load"
diff --git a/convert/libosinfo.mli b/convert/libosinfo.mli
index 0428ef91..1ece7b41 100644
--- a/convert/libosinfo.mli
+++ b/convert/libosinfo.mli
@@ -29,11 +29,25 @@ type osinfo_device_driver = {
files : string list;
}
+type osinfo_device = {
+ id : string;
+ vendor : string;
+ vendor_id : string;
+ product : string;
+ product_id : string;
+ name : string;
+ class_ : string;
+ bus_type : string;
+ subsystem : string;
+}
+
class osinfo_os : osinfo_os_t -> object
method get_id : unit -> string
(** Return the ID. *)
method get_device_drivers : unit -> osinfo_device_driver list
(** Return the list of device drivers. *)
+ method get_devices : unit -> osinfo_device list
+ (** Return the list of devices. *)
end
(** Minimal OsinfoOs wrapper. *)
--
2.31.1

View File

@ -1,4 +1,4 @@
From a6b21f626a74c436563c14751f19f60a6433e153 Mon Sep 17 00:00:00 2001
From 2362280ee8e20806830c1c74d31faed728c8acc0 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 0d92f256..753938f6 100644
index bcdaf78c..ba19f4b3 100644
--- a/input/input_disk.ml
+++ b/input/input_disk.ml
@@ -70,7 +70,7 @@ let rec disk_source dir options args =

View File

@ -1,77 +0,0 @@
From 00473c6ac09d85a6b6e1ce0cbe132e31407a2d00 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:08 +0100
Subject: [PATCH] convert/libosinfo_utils: introduce
"string_of_osinfo_device_list"
For debugging purposes, we'll want to print the list of devices returned
by the previously introduced "osinfo_os#get_devices" method.
Format the device list as a nice table.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-8-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/libosinfo_utils.ml | 35 +++++++++++++++++++++++++++++++++++
convert/libosinfo_utils.mli | 3 +++
2 files changed, 38 insertions(+)
diff --git a/convert/libosinfo_utils.ml b/convert/libosinfo_utils.ml
index 1fc138cc..d5eb082b 100644
--- a/convert/libosinfo_utils.ml
+++ b/convert/libosinfo_utils.ml
@@ -42,3 +42,38 @@ let string_of_osinfo_device_driver { Libosinfo.architecture; location;
(if signed then "signed" else "unsigned")
priority
(String.concat " " files)
+
+let string_of_osinfo_device_list dev_list =
+
+ (* Turn the fields of an "osinfo_device" record into a list. *)
+ let listify { Libosinfo.id; vendor; vendor_id; product; product_id; name;
+ class_; bus_type; subsystem } =
+ [ id; vendor; vendor_id; product; product_id; name;
+ class_; bus_type; subsystem ]
+
+ (* Given a list of strings, and a list of previously known maximum widths,
+ * "increase" each width, if necessary, to the length of the corresponding
+ * string.
+ *)
+ and grow_widths = List.map2 (fun s -> max (String.length s))
+ in
+
+ (* Compute the maximum width for each field in "dev_list". *)
+ let max_widths =
+ List.fold_right grow_widths (List.map listify dev_list)
+ [ 0; 0; 0; 0; 0; 0; 0; 0; 0 ]
+
+ (* Given a list of strings and a list of field widths, format "string1 |
+ * string2 | ... | stringN" such that each field is right-padded to the
+ * corresponding width.
+ *)
+ and columnate strings widths =
+ String.concat " | " (List.map2 (Printf.sprintf "%-*s") widths strings)
+ in
+
+ (* Format "dev_list" as a table by (a) printing one "osinfo_device" record
+ * per line, and (b) right-padding each field of each "osinfo_device" record
+ * to the maximum width of that field.
+ *)
+ String.concat "\n"
+ (List.map (fun dev -> columnate (listify dev) max_widths) dev_list)
diff --git a/convert/libosinfo_utils.mli b/convert/libosinfo_utils.mli
index b3714d22..5a703334 100644
--- a/convert/libosinfo_utils.mli
+++ b/convert/libosinfo_utils.mli
@@ -27,3 +27,6 @@ val get_os_by_short_id : string -> Libosinfo.osinfo_os
val string_of_osinfo_device_driver : Libosinfo.osinfo_device_driver -> string
(** Convert a [osinfo_device_driver] to a printable string for debugging. *)
+
+val string_of_osinfo_device_list : Libosinfo.osinfo_device list -> string
+(** Convert an [osinfo_device] list to a printable string for debugging. *)
--
2.31.1

View File

@ -1,4 +1,4 @@
From 621a424738cb94f387171992af5352305121da6b Mon Sep 17 00:00:00 2001
From b06fd19cd5c8a1201c27ff70d9e7ae1849380091 Mon Sep 17 00:00:00 2001
From: Pino Toscano <ptoscano@redhat.com>
Date: Wed, 8 Mar 2017 11:03:40 +0100
Subject: [PATCH] RHEL: v2v: do not mention SUSE Xen hosts (RHBZ#1430203)
@ -9,10 +9,10 @@ They are not supported in RHEL.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod
index cd3210bf..e9f336a9 100644
index c4948e5e..97727b8f 100644
--- a/docs/virt-v2v-input-xen.pod
+++ b/docs/virt-v2v-input-xen.pod
@@ -12,7 +12,7 @@ virt-v2v-input-xen - Using virt-v2v to convert guests from Xen
@@ -11,7 +11,7 @@ virt-v2v-input-xen - Using virt-v2v to convert guests from Xen
=head1 DESCRIPTION
This page documents how to use L<virt-v2v(1)> to convert guests from

View File

@ -1,77 +0,0 @@
From 2a2d7e9e1376084670dbf8587549948713341153 Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:09 +0100
Subject: [PATCH] convert/libosinfo_utils: introduce
"os_support_of_osinfo_device_list"
Add a helper function for calculating q35 support and virtio-1.0 support
from the list of devices returned by the previously introduced
"osinfo_os#get_devices" method.
(Rather than folding the list into a record of bools, implement the
function explicitly, recursively. Folding wouldn't stop (without abusing
exceptions) once all fields in the record turned "true", but a recursive
function can just return the accumulator at that point.)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-9-lersek@redhat.com>
[lersek@redhat.com: don't break "in" to a new line after a "let" that
defines a non-function (Rich)]
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/libosinfo_utils.ml | 18 ++++++++++++++++++
convert/libosinfo_utils.mli | 14 ++++++++++++++
2 files changed, 32 insertions(+)
diff --git a/convert/libosinfo_utils.ml b/convert/libosinfo_utils.ml
index d5eb082b..77f22272 100644
--- a/convert/libosinfo_utils.ml
+++ b/convert/libosinfo_utils.ml
@@ -77,3 +77,21 @@ let string_of_osinfo_device_list dev_list =
*)
String.concat "\n"
(List.map (fun dev -> columnate (listify dev) max_widths) dev_list)
+
+type os_support = {
+ q35 : bool;
+ vio10 : bool;
+}
+
+let os_support_of_osinfo_device_list =
+ let rec next accu left =
+ match accu, left with
+ | { q35 = true; vio10 = true }, _
+ | _ , [] ->
+ accu
+ | { q35; vio10 }, { Libosinfo.id } :: tail ->
+ let q35 = q35 || id = "http://qemu.org/chipset/x86/q35"
+ and vio10 = vio10 || id = "http://pcisig.com/pci/1af4/1041" in
+ next { q35; vio10 } tail
+ in
+ next { q35 = false; vio10 = false }
diff --git a/convert/libosinfo_utils.mli b/convert/libosinfo_utils.mli
index 5a703334..ab77ec97 100644
--- a/convert/libosinfo_utils.mli
+++ b/convert/libosinfo_utils.mli
@@ -30,3 +30,17 @@ val string_of_osinfo_device_driver : Libosinfo.osinfo_device_driver -> string
val string_of_osinfo_device_list : Libosinfo.osinfo_device list -> string
(** Convert an [osinfo_device] list to a printable string for debugging. *)
+
+type os_support = {
+ q35 : bool;
+ vio10 : bool;
+}
+(** Tell whether the operating system supports the Q35 board type and/or
+ non-transitional (virtio-1.0-only) virtio devices. (Internally, the
+ virtio-1.0-net device is used as a proxy for the general statement about
+ virtio-1.0.)
+ *)
+
+val os_support_of_osinfo_device_list : Libosinfo.osinfo_device list ->
+ os_support
+(** Get [os_support] from an [osinfo_device] list. *)
--
2.31.1

View File

@ -1,4 +1,4 @@
From af0265e36747be9e6e4d7f91af2529f20e91e7ab Mon Sep 17 00:00:00 2001
From f95371e7a61ae3ec8181cd330e36f13d41ad908f 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,207 +0,0 @@
From f0cea012d0183edf6f7b769c28d5038593f3fe6a Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 6 Jan 2022 15:09:10 +0100
Subject: [PATCH] convert: determine machine type and virtio-1.0 from osinfo
for x86 guests
Determine the machine type and virtio-1.0 support from osinfo, for x86
guests. This connects the previous two parts of this series.
Keep the original logic from commit ac39fa292c31 ("v2v: Set machine type
explicitly for outputs which support it (RHBZ#1581428).", 2020-12-04) for
non-x86 guests, and for the case when libosinfo does not recognize the
guest OS.
Update the "cdrom", "floppy", and "i-ova" test cases, which all use a
(phony) Windows 7 image -- Windows 7 does not support virtio-1.0-only
devices, according to libosinfo.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1942325
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20220106140910.13695-10-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
---
convert/convert_linux.ml | 51 +++++++++++++++++++++-------------
convert/convert_windows.ml | 32 ++++++++++++++-------
tests/test-v2v-cdrom.expected | 2 +-
tests/test-v2v-floppy.expected | 2 +-
tests/test-v2v-i-ova.xml | 8 +++---
5 files changed, 60 insertions(+), 35 deletions(-)
diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml
index 3f1114ad..45ce069a 100644
--- a/convert/convert_linux.ml
+++ b/convert/convert_linux.ml
@@ -123,26 +123,39 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
SELinux_relabel.relabel g;
- (* Pivot on the year 2007. Any Linux distro from earlier than
- * 2007 should use i440fx, anything 2007 or newer should use q35.
- * XXX Look up this information in libosinfo in future.
- *)
- let machine =
- match inspect.i_arch, inspect.i_distro, inspect.i_major_version with
- | ("i386"|"x86_64"), "fedora", _ -> Q35
- | ("i386"|"x86_64"), ("rhel"|"centos"|"scientificlinux"|
- "redhat-based"|"oraclelinux"), major ->
- if major <= 4 then I440FX else Q35
- | ("i386"|"x86_64"), ("sles"|"suse-based"|"opensuse"), major ->
- if major < 10 then I440FX else Q35
- | ("i386"|"x86_64"), ("debian"|"ubuntu"|"linuxmint"|
- "kalilinux"), major ->
- if major < 4 then I440FX else Q35
+ let machine, virtio_1_0 =
+ match inspect.i_arch with
+ | ("i386"|"x86_64") ->
+ (try
+ let os = Libosinfo_utils.get_os_by_short_id inspect.i_osinfo in
+ let devices = os#get_devices () in
+ debug "libosinfo devices for OS \"%s\":\n%s" inspect.i_osinfo
+ (Libosinfo_utils.string_of_osinfo_device_list devices);
+ let { Libosinfo_utils.q35; vio10 } =
+ Libosinfo_utils.os_support_of_osinfo_device_list devices in
+ (if q35 then Q35 else I440FX), vio10
+ with
+ | Not_found ->
+ (* Pivot on the year 2007. Any Linux distro from earlier than 2007
+ * should use i440fx, anything 2007 or newer should use q35.
+ *)
+ (match inspect.i_distro, inspect.i_major_version with
+ | "fedora", _ -> Q35
+ | ("rhel"|"centos"|"scientificlinux"|"redhat-based"|"oraclelinux"),
+ major ->
+ if major <= 4 then I440FX else Q35
+ | ("sles"|"suse-based"|"opensuse"), major ->
+ if major < 10 then I440FX else Q35
+ | ("debian"|"ubuntu"|"linuxmint"|"kalilinux"), major ->
+ if major < 4 then I440FX else Q35
- (* reasonable default for all modern Linux kernels *)
- | ("i386"|"x86_64"), _, _ -> Q35
+ (* reasonable default for all modern Linux kernels *)
+ | _, _ -> Q35
+ ), true
+ )
- | _ -> Virt in
+ | _ -> Virt, true
+ in
(* Return guest capabilities from the convert () function. *)
let guestcaps = {
@@ -155,7 +168,7 @@ let convert (g : G.guestfs) source inspect keep_serial_console _ =
gcaps_machine = machine;
gcaps_arch = Utils.kvm_arch inspect.i_arch;
gcaps_acpi = acpi;
- gcaps_virtio_1_0 = true;
+ gcaps_virtio_1_0 = virtio_1_0;
} in
guestcaps
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 30e494ea..1c2d17f2 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -238,15 +238,27 @@ let convert (g : G.guestfs) _ inspect _ static_ips =
warning (f_"this guest has Anti-Virus (AV) software and a new virtio block device driver was installed. In some circumstances, AV may prevent new drivers from working (resulting in a 7B boot error). If this happens, try disabling AV before doing the conversion.");
);
- (* Pivot on the year 2007. Any Windows version from earlier than
- * 2007 should use i440fx, anything 2007 or newer should use q35.
- * Luckily this coincides almost exactly with the release of NT 6.
- * XXX Look up this information in libosinfo in future.
- *)
- let machine =
- match inspect.i_arch, inspect.i_major_version with
- | ("i386"|"x86_64"), major -> if major < 6 then I440FX else Q35
- | _ -> Virt in
+ let machine, virtio_1_0 =
+ match inspect.i_arch with
+ | ("i386"|"x86_64") ->
+ (try
+ let os = Libosinfo_utils.get_os_by_short_id inspect.i_osinfo in
+ let devices = os#get_devices () in
+ debug "libosinfo devices for OS \"%s\":\n%s" inspect.i_osinfo
+ (Libosinfo_utils.string_of_osinfo_device_list devices);
+ let { Libosinfo_utils.q35; vio10 } =
+ Libosinfo_utils.os_support_of_osinfo_device_list devices in
+ (if q35 then Q35 else I440FX), vio10
+ with
+ | Not_found ->
+ (* Pivot on the year 2007. Any Windows version from earlier than
+ * 2007 should use i440fx, anything 2007 or newer should use q35.
+ * Luckily this coincides almost exactly with the release of NT 6.
+ *)
+ (if inspect.i_major_version < 6 then I440FX else Q35), true
+ )
+ | _ -> Virt, true
+ in
(* Return guest capabilities from the convert () function. *)
let guestcaps = {
@@ -259,7 +271,7 @@ let convert (g : G.guestfs) _ inspect _ static_ips =
gcaps_machine = machine;
gcaps_arch = Utils.kvm_arch inspect.i_arch;
gcaps_acpi = true;
- gcaps_virtio_1_0 = true;
+ gcaps_virtio_1_0 = virtio_1_0;
} in
guestcaps
diff --git a/tests/test-v2v-cdrom.expected b/tests/test-v2v-cdrom.expected
index 17bd152d..b9504929 100644
--- a/tests/test-v2v-cdrom.expected
+++ b/tests/test-v2v-cdrom.expected
@@ -1,4 +1,4 @@
- <disk type='file' device='disk'>
+ <disk type='file' device='disk' model='virtio-transitional'>
<driver name='qemu' type='raw'/>
<target dev='vda' bus='virtio'/>
</disk>
diff --git a/tests/test-v2v-floppy.expected b/tests/test-v2v-floppy.expected
index a718c21f..f4b67954 100644
--- a/tests/test-v2v-floppy.expected
+++ b/tests/test-v2v-floppy.expected
@@ -1,4 +1,4 @@
- <disk type='file' device='disk'>
+ <disk type='file' device='disk' model='virtio-transitional'>
<driver name='qemu' type='raw'/>
<target dev='vda' bus='virtio'/>
</disk>
diff --git a/tests/test-v2v-i-ova.xml b/tests/test-v2v-i-ova.xml
index 9f3c1974..2b6a8de0 100644
--- a/tests/test-v2v-i-ova.xml
+++ b/tests/test-v2v-i-ova.xml
@@ -21,7 +21,7 @@
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
- <disk type='file' device='disk'>
+ <disk type='file' device='disk' model='virtio-transitional'>
<driver name='qemu' type='raw'/>
<source file='TestOva-sda'/>
<target dev='vda' bus='virtio'/>
@@ -36,16 +36,16 @@
</disk>
<interface type='bridge'>
<source bridge='VM Network'/>
- <model type='virtio'/>
+ <model type='virtio-transitional'/>
</interface>
<video>
<model type='vga' vram='16384' heads='1'/>
</video>
<graphics type='vnc' autoport='yes' port='-1'/>
- <rng model='virtio'>
+ <rng model='virtio-transitional'>
<backend model='random'>/dev/urandom</backend>
</rng>
- <memballoon model='virtio'/>
+ <memballoon model='virtio-transitional'/>
<viosock model='none'/>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
--
2.31.1

View File

@ -1,4 +1,4 @@
From afec4c531c71de4f98115258d3eee17a25afae5e Mon Sep 17 00:00:00 2001
From 194556661001b51a38a8807ae257e0c19161fe17 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: Disable -o glance

View File

@ -1,4 +1,4 @@
From 39f31f9c86ed94699382b2c4d683fc1fd0d59195 Mon Sep 17 00:00:00 2001
From 1f53577af560347d1460ead3e7699f376c5853b8 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 2 Dec 2021 11:56:05 +0000
Subject: [PATCH] RHEL: Remove the --in-place option

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-1.45.96.tar.gz) = f4349ce19761db32905395a1ce4bb893eb68823808386edce656bcd452aac1c82d39a6af6e17f226c04e027199cb71b27c42a52bfc4b9153cb31e4c5c1988b49
SHA512 (virt-v2v-1.45.96.tar.gz.sig) = b0bd15eef79267ca93c0af96e5af041fd006dc9e50e25a3afb6a08257bc5ac997690dd5daf993c9fa14428fff2a4e5cca5934adeafc537a47d17c833d004ab1b
SHA512 (virt-v2v-1.45.97.tar.gz) = 9f3725099237e705142fe9563f73d34362771f2cb82af7fd976462f25a9301ec97cbecb5cd70a22903f6df16ab45354619a19e5369e29c86a58f19151664356a
SHA512 (virt-v2v-1.45.97.tar.gz.sig) = 6bc57719d5acbe8ccc895280bf3f585b31a1d87cc927d98f1f7a8a169634a69ca0787265d10e55616c0bcb430f63e8c39a41e65b439bc0ff2e90439c2f003ccd

View File

@ -14,7 +14,7 @@
Name: virt-v2v
Epoch: 1
Version: 1.45.96
Version: 1.45.97
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
@ -51,24 +51,17 @@ ExclusiveArch: x86_64
# Downstream (RHEL-only) patches.
%if 0%{?rhel}
# Patches.
Patch0001: 0001-lib-types-reformat-string_of_guestcaps.patch
Patch0002: 0002-lib-types-update-string_of_guestcaps.patch
Patch0003: 0003-lib-types-introduce-the-gcaps_virtio_1_0-guest-capab.patch
Patch0004: 0004-output-create_libvirt_xml-pick-virtio-transitional-m.patch
Patch0005: 0005-output-create_json-expose-gcaps_virtio_1_0.patch
Patch0006: 0006-convert-libosinfo-wrap-osinfo_os_get_all_devices.patch
Patch0007: 0007-convert-libosinfo_utils-introduce-string_of_osinfo_d.patch
Patch0008: 0008-convert-libosinfo_utils-introduce-os_support_of_osin.patch
Patch0009: 0009-convert-determine-machine-type-and-virtio-1.0-from-o.patch
Patch0010: 0010-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0011: 0011-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0012: 0012-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0013: 0013-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0014: 0014-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0015: 0015-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0016: 0016-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0017: 0017-RHEL-Disable-o-glance.patch
Patch0018: 0018-RHEL-Remove-the-in-place-option.patch
Patch0001: 0001-output-o-json-Allow-oo-output-options-to-work.patch
Patch0002: 0002-input-xen-Fix-assertion-error-when-importing-from-re.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-Fixes-for-libguestfs-winsupport.patch
Patch0007: 0007-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0008: 0008-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0009: 0009-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0010: 0010-RHEL-Disable-o-glance.patch
Patch0011: 0011-RHEL-Remove-the-in-place-option.patch
%endif
%if 0%{patches_touch_autotools}
@ -309,11 +302,17 @@ popd
%changelog
* Thu Jan 06 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.96-1
- Rebase to upstream 1.45.96.
* Mon Jan 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-1
- Rebase to upstream 1.45.97.
resolves: rhbz#2011713
- Add virtio-transitional for older guests when converting to q35
resolves: rhbz#1942325
- Fix -o rhv mode
resolves: rhbz#2027598
- input: xen: Fix assertion error when importing from remote block device
resolves: rhbz#2041852
- output: -o json: Allow -oo (output options) to work
resolves: rhbz#2041850
* Thu Dec 23 2021 Laszlo Ersek <lersek@redhat.com> - 1:1.45.95-3
- output_rhv: restrict block status collection to the old RHV output