Further fixes for QEMU Guest Agent

Place Windows firstboot files under C:\Program Files\Guestfs\Firstboot
Improve debugging output

resolves: RHEL-49761
This commit is contained in:
Richard W.M. Jones 2024-08-01 11:13:04 +01:00
parent 300e8d4355
commit 98d79352dc
21 changed files with 420 additions and 339 deletions

View File

@ -0,0 +1,28 @@
From 7800049c5612e6ffb30be7f8862d147d82976ae8 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 31 Jul 2024 10:09:50 +0100
Subject: [PATCH] docs: Note that --mac len field is now optional
Reported-by: Ming Xie
Updates: commit 159fda411d2f75b087106e7293d273ae142c9fbe
---
docs/virt-v2v.pod | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index b53face6..dfe92d77 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -394,9 +394,9 @@ Force a particular interface (controlled by its MAC address) to have a
static IP address after boot.
The fields in the parameter are: C<ipaddr> is the IP address. C<gw>
-is the optional gateway IP address. C<len> is the subnet mask length
-(an integer). The final parameters are zero or more nameserver IP
-addresses.
+is the optional gateway IP address. C<len> is the optional subnet
+mask length (an integer). The final parameters are zero or more
+nameserver IP addresses.
This option can be supplied zero or more times.

View File

@ -0,0 +1,207 @@
From c57ec4fd5d4942d2320aec4a6b01977dabb87f83 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 1 Aug 2024 09:01:47 +0100
Subject: [PATCH] convert: More robust qemu-ga installation, change paths
Add a commit from the common submodule to attempt to make qemu-ga
installation more robust on Windows.
Rename network configuration Powershell script from "v2vnetcf" to
"network-configuration". I also dropped the ".ps1" extension as the
modified Firstboot.add_firstboot_powershell function now adds this.
Update the common submodule to get these changes:
Richard W.M. Jones (3):
mlcustomize: Use Start-Process -Wait to run qemu-ga installer
mlcustomize: Add Firstboot.firstboot_dir function
mlcustomize: Place powershell scripts into <firstboot_dir>\Temp
---
common | 2 +-
convert/convert_windows.ml | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
Submodule common ae639ba3..d489469f:
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
index 4b9b910b..3bbba714 100644
--- a/common/mlcustomize/firstboot.ml
+++ b/common/mlcustomize/firstboot.ml
@@ -239,7 +239,22 @@ WantedBy=%s
end
module Windows = struct
- let rec install_service (g : Guestfs.guestfs) root =
+ (* Create and return the firstboot directory. *)
+ let create_firstboot_dir (g : Guestfs.guestfs) =
+ let rec loop firstboot_dir firstboot_dir_win = function
+ | [] -> firstboot_dir, firstboot_dir_win
+ | dir :: path ->
+ let firstboot_dir =
+ if firstboot_dir = "" then "/" ^ dir else firstboot_dir // dir in
+ let firstboot_dir_win = firstboot_dir_win ^ "\\" ^ dir in
+ let firstboot_dir = g#case_sensitive_path firstboot_dir in
+ g#mkdir_p firstboot_dir;
+ loop firstboot_dir firstboot_dir_win path
+ in
+ loop "" "C:" ["Program Files"; "Guestfs"; "Firstboot"]
+
+ let rec install_service (g : Guestfs.guestfs) root
+ firstboot_dir firstboot_dir_win =
(* Either rhsrvany.exe or pvvxsvc.exe must exist.
*
* (Check also that it's not a dangling symlink but a real file).
@@ -254,20 +269,7 @@ module Windows = struct
error (f_"One of rhsrvany.exe or pvvxsvc.exe is missing in %s. One of them is required in order to install Windows firstboot scripts. You can get one by building rhsrvany (https://github.com/rwmjones/rhsrvany)")
(virt_tools_data_dir ()) in
- (* Create a directory for firstboot files in the guest. *)
- let firstboot_dir, firstboot_dir_win =
- let rec loop firstboot_dir firstboot_dir_win = function
- | [] -> firstboot_dir, firstboot_dir_win
- | dir :: path ->
- let firstboot_dir =
- if firstboot_dir = "" then "/" ^ dir else firstboot_dir // dir in
- let firstboot_dir_win = firstboot_dir_win ^ "\\" ^ dir in
- let firstboot_dir = g#case_sensitive_path firstboot_dir in
- g#mkdir_p firstboot_dir;
- loop firstboot_dir firstboot_dir_win path
- in
- loop "" "C:" ["Program Files"; "Guestfs"; "Firstboot"] in
-
+ (* Create a directory for firstboot scripts in the guest. *)
g#mkdir_p (firstboot_dir // "scripts");
(* Copy pvvxsvc or rhsrvany to the guest. *)
@@ -339,11 +341,25 @@ echo uninstalling firstboot service
"PWD", REG_SZ firstboot_dir_win ];
] in
reg_import reg regedits
- );
-
- firstboot_dir
+ )
end
+let firstboot_dir (g : Guestfs.guestfs) root =
+ let typ = g#inspect_get_type root in
+
+ match typ with
+ | "linux" ->
+ let dir = Linux.firstboot_dir in
+ g#mkdir_p dir;
+ dir, None
+
+ | "windows" ->
+ let dir, dir_win = Windows.create_firstboot_dir g in
+ dir, Some dir_win
+
+ | _ ->
+ error (f_"guest type %s is not supported") typ
+
let script_count = ref 0
let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
@@ -363,7 +379,8 @@ let add_firstboot_script (g : Guestfs.guestfs) root ?(prio = 5000) name
g#chmod 0o755 filename
| "windows", _ ->
- let firstboot_dir = Windows.install_service g root in
+ let firstboot_dir, firstboot_dir_win = Windows.create_firstboot_dir g in
+ Windows.install_service g root firstboot_dir firstboot_dir_win;
let filename = firstboot_dir // "scripts" // filename ^ ".bat" in
g#write filename (String.unix2dos content)
@@ -382,15 +399,18 @@ let add_firstboot_powershell g root ?prio name code =
*)
assert (g#inspect_get_type root = "windows");
- let windows_systemroot = g#inspect_get_windows_systemroot root in
-
- (* Create the temporary directory to put the Powershell file. *)
- let tempdir = sprintf "%s/Temp" windows_systemroot in
+ (* Place the Powershell script into firstboot_dir/Temp *)
+ let firstboot_dir, firstboot_dir_win = Windows.create_firstboot_dir g in
+ let tempdir = sprintf "%s/Temp" firstboot_dir in
g#mkdir_p tempdir;
- let ps_path = sprintf "%s/%s" tempdir name in
+
+ let ps_path = sprintf "%s/%s.ps1" tempdir name in
+ let ps_path_win = sprintf "%s\\Temp\\%s.ps1" firstboot_dir_win name in
let code = String.concat "\r\n" code ^ "\r\n" in
g#write ps_path code;
- let fb = sprintf "powershell.exe -ExecutionPolicy ByPass -NoProfile -file %s"
- ps_path in
+ (* Create a regular firstboot bat that just invokes powershell *)
+ let fb =
+ sprintf "powershell.exe -ExecutionPolicy ByPass -NoProfile -file \"%s\""
+ ps_path_win in
add_firstboot_script g root ?prio name fb
diff --git a/common/mlcustomize/firstboot.mli b/common/mlcustomize/firstboot.mli
index 8231af65..34ff0690 100644
--- a/common/mlcustomize/firstboot.mli
+++ b/common/mlcustomize/firstboot.mli
@@ -16,6 +16,23 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*)
+val firstboot_dir : Guestfs.guestfs -> string -> string * string option
+(** [firstboot_dir g root]
+ returns the path of the firstboot directory, creating it in
+ the guest if necessary.
+
+ This returns the name of the directory as a guestfs path, and
+ optionally the name as a Windows path (only for Windows guests).
+
+ For Linux this could be [/usr/lib/virt-sysprep, None]
+
+ For Windows this could be ["/Program Files/Guestfs/Firstboot",
+ Some "C:\Program Files\Guestfs\Firstboot"]
+
+ Additional files that are used during firstboot can be placed
+ in this directory, but be careful not to conflict with files
+ and scripts added by the firstboot process itself. *)
+
val add_firstboot_script : Guestfs.guestfs -> string -> ?prio:int -> string ->
string -> unit
(** [add_firstboot_script g root prio name content] adds a firstboot
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index eee93669..b04a3b38 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -592,11 +592,11 @@ and configure_qemu_ga t files =
add "# Run qemu-ga installers";
List.iter (
fun msi_path ->
- add (sprintf "C:\\%s /norestart /qn /l+*vx C:\\%s.log"
+ add (sprintf "Start-Process -Wait -FilePath \"C:\\%s\" -ArgumentList \"/norestart\",\"/qn\",\"/l+*vx\",\"C:\\%s.log\""
msi_path msi_path)
) files;
- Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga.ps1" !script
+ Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga" !script
and configure_blnsvr t blnsvr =
let cmd = sprintf "\
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 2d6e2059..52ca5bbe 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -397,7 +397,7 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
%systemroot%\\Sysnative\\PnPutil -i -a \
%systemroot%\\Drivers\\Virtio\\*.inf" in
- (* Set priority higher than that of "v2vnetcf.ps1" firstboot script. *)
+ (* Set priority higher than that of "network-configure" firstboot script. *)
Firstboot.add_firstboot_script g inspect.i_root ~prio:2000
"pnputil install drivers" fb_script;
@@ -674,7 +674,7 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
* Powershell script which runs at boot.
*)
if static_ips <> [] then (
- let psh_filename = "v2vnetcf.ps1" in
+ let psh_filename = "network-configure" in
let psh = ref [] in
let add = List.push_back psh in

View File

@ -0,0 +1,116 @@
From 168eacf977ca49e96bc63ddc4109c27515ac0277 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 1 Aug 2024 10:36:52 +0100
Subject: [PATCH] common: mlcustomize: Inject qemu-ga & blnsvr into
<firstboot_dir>/Temp
Update common submodule to pick up this further change which should
mean that for all Windows conversions, everything is confined to
C:\Program Files\Guestfs\Firstboot (except the virtio drivers
themselves).
Richard W.M. Jones (1):
mlcustomize: Inject qemu-ga & blnsvr into <firstboot_dir>/Temp
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common d489469f..04116678:
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index b04a3b38..2981bff5 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -263,14 +263,28 @@ let rec inject_virtio_win_drivers ({ g } as t) reg =
}
)
-and inject_qemu_ga t =
- let msi_files = copy_qemu_ga t in
+and inject_qemu_ga ({ g; root } as t) =
+ (* Copy the qemu-ga MSI(s) to the guest. *)
+ let dir, dir_win = Firstboot.firstboot_dir g root in
+ let dir_win = Option.value dir_win ~default:dir in
+ let tempdir = sprintf "%s/Temp" dir in
+ let tempdir_win = sprintf "%s\\Temp" dir_win in
+ g#mkdir_p tempdir;
+
+ let msi_files = copy_qemu_ga t tempdir in
if msi_files <> [] then
- configure_qemu_ga t msi_files;
+ configure_qemu_ga t tempdir_win msi_files;
msi_files <> [] (* return true if we found some qemu-ga MSI files *)
-and inject_blnsvr t =
- let files = copy_blnsvr t in
+and inject_blnsvr ({ g; root } as t) =
+ (* Copy the files to the guest. *)
+ let dir, dir_win = Firstboot.firstboot_dir g root in
+ let dir_win = Option.value dir_win ~default:dir in
+ let tempdir = sprintf "%s/Temp" dir in
+ let tempdir_win = sprintf "%s\\Temp" dir_win in
+ g#mkdir_p tempdir;
+
+ let files = copy_blnsvr t tempdir in
match files with
| [] -> false (* Didn't find or install anything. *)
@@ -278,7 +292,7 @@ and inject_blnsvr t =
* drivers/by-driver). Pick the first.
*)
| blnsvr :: _ ->
- configure_blnsvr t blnsvr;
+ configure_blnsvr t tempdir_win blnsvr;
true
and add_guestor_to_registry t ((g, root) as reg) drv_name drv_pciid =
@@ -360,13 +374,13 @@ and copy_drivers t driverdir =
(fun () ->
error (f_"root directory / is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log."))
-and copy_qemu_ga t =
- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_qemu_ga t)
+and copy_qemu_ga t tempdir =
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_qemu_ga t)
(fun () ->
error (f_"root directory / is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log."))
-and copy_blnsvr t =
- copy_from_virtio_win t "/" "/" (virtio_iso_path_matches_blnsvr t)
+and copy_blnsvr t tempdir =
+ copy_from_virtio_win t "/" tempdir (virtio_iso_path_matches_blnsvr t)
(fun () ->
error (f_"root directory / is missing from the virtio-win directory or ISO.\n\nThis should not happen and may indicate that virtio-win or virt-v2v is broken in some way. Please report this as a bug with a full debug log."))
@@ -578,7 +592,7 @@ and copy_from_libosinfo { g; i_osinfo; i_arch } destdir =
(* Install qemu-ga. [files] is the non-empty list of possible qemu-ga
* installers we detected.
*)
-and configure_qemu_ga t files =
+and configure_qemu_ga t tempdir_win files =
let script = ref [] in
let add = List.push_back script in
@@ -591,16 +605,17 @@ and configure_qemu_ga t files =
add "";
add "# Run qemu-ga installers";
List.iter (
- fun msi_path ->
- add (sprintf "Start-Process -Wait -FilePath \"C:\\%s\" -ArgumentList \"/norestart\",\"/qn\",\"/l+*vx\",\"C:\\%s.log\""
- msi_path msi_path)
+ fun msi ->
+ (* [`] is an escape char for quotes *)
+ add (sprintf "Start-Process -Wait -FilePath \"%s\\%s\" -ArgumentList \"/norestart\",\"/qn\",\"/l+*vx\",\"`\"%s\\%s.log`\"\""
+ tempdir_win msi tempdir_win msi)
) files;
Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga" !script
-and configure_blnsvr t blnsvr =
+and configure_blnsvr t tempdir_win blnsvr =
let cmd = sprintf "\
@echo off\n\
echo Installing %s\n\
- c:\\%s -i\n" blnsvr blnsvr in
- Firstboot.add_firstboot_script t.g t.root (sprintf "install-%s" blnsvr) cmd
+ \"%s\\%s\" -i\n" blnsvr tempdir_win blnsvr in
+ Firstboot.add_firstboot_script t.g t.root "install-blnsvr" cmd

View File

@ -1,4 +1,4 @@
From aa67c07182107bb8cd89a6397a506e6ce7a97ccb Mon Sep 17 00:00:00 2001
From a568f61299465179ff13b99e5710756f659d1dca 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 ec237d33705cdd6b2e34fa4c5ca1ff7542ec6474 Mon Sep 17 00:00:00 2001
From e587c788aacc67b83931fc2fb4fddf402dd7f065 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
@ -44,7 +44,7 @@ index d2a1c270..0be37f5e 100644
=item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index b53face6..725d6436 100644
index dfe92d77..0729571f 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -146,11 +146,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
@ -107,10 +107,10 @@ index 07dae8c2..b6f24565 100644
let output_storage =
match options.output_storage with
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 3b2eafbd..696ef75e 100644
index 48c8cfba..fca5f6e9 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -275,8 +275,6 @@ let rec main () =
@@ -277,8 +277,6 @@ let rec main () =
s_"Same as -ip filename";
[ L"print-source" ], Getopt.Set print_source,
s_"Print source and stop";

View File

@ -1,4 +1,4 @@
From 1594393855b0512af9a99da98fb2bfeee11037e8 Mon Sep 17 00:00:00 2001
From 87fd400284565dfea49da03b158ced8efa1a4517 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 ccd0cef31a8ff164354843652d1392803efa730e Mon Sep 17 00:00:00 2001
From 54b614122415c9d52bf872f66561b74cd5139b42 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.
@ -18,7 +18,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=2187961#c1
6 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/convert/convert.ml b/convert/convert.ml
index d1dfcae8..e424930c 100644
index 344c5858..ecc48ad4 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -52,6 +52,7 @@ let rec convert dir options source =

View File

@ -1,4 +1,4 @@
From 7f4537e4cfd20d4f05ab10c963fc57ef52434cca Mon Sep 17 00:00:00 2001
From d7ff9e90054d4d19519d40c36415224918a91216 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 279250fe..c6b819c0 100644
index cf1f811b..27fc80de 100644
--- a/input/input_disk.ml
+++ b/input/input_disk.ml
@@ -77,7 +77,7 @@ module Disk = struct

View File

@ -1,4 +1,4 @@
From 8717c34c79c317586e995a7865e0eec5e1e900bf Mon Sep 17 00:00:00 2001
From 0adb9255ebd89e127336e942d088099b25b80005 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)

View File

@ -1,4 +1,4 @@
From bd843ec5942660f2a436ba0301e8c2908489db33 Mon Sep 17 00:00:00 2001
From 397dbf5e9ebc22e31736663fa97b18bd82f283ba 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 b4718d6e970f1efc8cc7e3ee0b679a4f52956017 Mon Sep 17 00:00:00 2001
From d9386ae9de3ab7f66d61958cdf8f5f29ad801a91 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
@ -98,7 +98,7 @@ index cd4862b1..54cd276e 100644
=head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 725d6436..4f0693e2 100644
index 0729571f..d428a326 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -435,14 +435,6 @@ See L</Networks and bridges> below.
@ -167,10 +167,10 @@ index c0db9115..074b5e16 100755
set -e
set -x
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 696ef75e..47d2da79 100644
index fca5f6e9..4148fa50 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -195,7 +195,6 @@ let rec main () =
@@ -197,7 +197,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
@ -178,7 +178,7 @@ index 696ef75e..47d2da79 100644
| "kubevirt" -> output_mode := `Kubevirt
| "libvirt" -> output_mode := `Libvirt
| "disk" | "local" -> output_mode := `Disk
@@ -255,7 +254,7 @@ let rec main () =
@@ -257,7 +256,7 @@ let rec main () =
s_"Map network in to out";
[ L"no-trim" ], Getopt.String ("-", no_trim_warning),
s_"Ignored for backwards compatibility";
@ -187,7 +187,7 @@ index 696ef75e..47d2da79 100644
s_"Set output mode (default: libvirt)";
[ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc),
s_"Set output allocation mode";
@@ -323,8 +322,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp
@@ -325,8 +324,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 +196,7 @@ index 696ef75e..47d2da79 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.
@@ -399,7 +396,6 @@ read the man page virt-v2v(1).
@@ -401,7 +398,6 @@ read the man page virt-v2v(1).
pr "input:libvirtxml\n";
pr "input:ova\n";
pr "input:vmx\n";
@ -204,7 +204,7 @@ index 696ef75e..47d2da79 100644
pr "output:kubevirt\n";
pr "output:libvirt\n";
pr "output:local\n";
@@ -496,7 +492,6 @@ read the man page virt-v2v(1).
@@ -498,7 +494,6 @@ read the man page virt-v2v(1).
| `Disk -> (module Output_disk.Disk)
| `Null -> (module Output_null.Null)
| `QEmu -> (module Output_qemu.QEMU)

View File

@ -1,4 +1,4 @@
From 97ca8fd46a808f2a225b1664933e688165326d96 Mon Sep 17 00:00:00 2001
From 5fc3541d455a6a47643ef028597d21c9cfcf7b62 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
@ -12,7 +12,7 @@ wish to support in RHEL.
3 files changed, 17 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 4f0693e2..c6535d71 100644
index d428a326..d206e4fa 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -24,9 +24,6 @@ virtualize those machines (physical to virtual, or p2v).
@ -57,10 +57,10 @@ index 723a6506..4bfa1c7a 100644
test-v2v-inspector.sh \
test-v2v-mac.sh \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 47d2da79..19f08aae 100644
index 4148fa50..834f023d 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -217,12 +217,6 @@ let rec main () =
@@ -219,12 +219,6 @@ let rec main () =
warning (f_"the --vmtype option has been removed and now does nothing")
in
@ -73,7 +73,7 @@ index 47d2da79..19f08aae 100644
let argspec = [
[ L"bandwidth" ], Getopt.String ("bps", set_string_option_once "--bandwidth" bandwidth),
s_"Set bandwidth to bits per sec";
@@ -246,8 +240,6 @@ let rec main () =
@@ -248,8 +242,6 @@ let rec main () =
s_"Use password from file to connect to input hypervisor";
[ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport),
s_"Input transport";

View File

@ -1,4 +1,4 @@
From 9ebcbf072257f57ce54428eb002ff4f00e43d9cd Mon Sep 17 00:00:00 2001
From 3d01b1301476ddb77c7327ee86f2c8054c16226b Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Jul 2022 11:56:54 +0100
Subject: [PATCH] RHEL 9: -oo compressed: Remove nbdcopy version check and test
@ -12,10 +12,10 @@ separately. Thus remove the version check and test.
2 files changed, 12 deletions(-)
diff --git a/output/output.ml b/output/output.ml
index e419c13d..c8f743c2 100644
index 53d4bb1b..14288bdc 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -87,17 +87,6 @@ let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false)
@@ -86,17 +86,6 @@ let output_to_local_file ?(changeuid = fun f -> f ()) ?(compressed = false)
if output_format <> "qcow2" then
error (f_"-oo compressed is only allowed when the output format \
is a local qcow2-format file, i.e. -of qcow2");

View File

@ -1,4 +1,4 @@
From f8261b357faa7f7c036564c948437866d1febf10 Mon Sep 17 00:00:00 2001
From 1b2973841cfad867380f124b22ee00255cf2f94f 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 9: tests: Remove btrfs test

View File

@ -1,43 +0,0 @@
From af17b542c5b1a427c80f8eed7b6b5b48dc64ed0d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 25 Jul 2024 08:53:46 +0100
Subject: [PATCH] -i ova: Ignore dot-underscore-files in OVA files
I received an OVA created by a mac which contained various files
prefixed by "._" that contain some sort of extra information. Ignore
those files when decoding OVAs:
$ tar tvf win22ktest.tar 2>/dev/null
drwxr-xr-x markd/staff 0 2024-07-23 18:23 win22test/
-rw-r--r-- markd/staff 619 2024-07-23 15:16 win22test/._win22test.mf
-rw-r--r-- markd/staff 271 2024-07-23 15:16 win22test/win22test.mf
-rw-r--r-- markd/staff 623 2024-07-23 15:16 win22test/._win22test-1.vmdk
-rw-r--r-- markd/staff 8348649984 2024-07-23 15:16 win22test/win22test-1.vmdk
-rw-r--r-- markd/staff 624 2024-07-23 15:00 win22test/._win22test-2.nvram
-rw-r--r-- markd/staff 270840 2024-07-23 15:00 win22test/win22test-2.nvram
-rw-r--r-- markd/staff 620 2024-07-23 15:00 win22test/._win22test.ovf
-rw-r--r-- markd/staff 12052 2024-07-23 15:00 win22test/win22test.ovf
(cherry picked from commit 3d26e48af39b26f3c8a368ce320555b995bdf20b)
---
input/OVA.ml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/input/OVA.ml b/input/OVA.ml
index 8d4606ef..1db337a7 100644
--- a/input/OVA.ml
+++ b/input/OVA.ml
@@ -253,8 +253,13 @@ and find_files dir ext =
| [] -> []
| dir :: rest ->
let files = Array.to_list (Sys.readdir dir) in
+ (* Ignore dot-underscore-files, added when using 'tar' on some Macs. *)
+ let files =
+ List.filter (fun x -> not (String.is_prefix x "._")) files in
+ (* Prefix with the directory to form a path. *)
let files = List.map (Filename.concat dir) files in
let dirs, files = List.partition Sys.is_directory files in
+ (* Only files with the given extension. *)
let files =
List.filter (fun x -> Filename.check_suffix x ext) files in
files @ loop (rest @ dirs)

View File

@ -1,4 +1,4 @@
From 41142627e326ec03918b7048e3c864e7674f731d Mon Sep 17 00:00:00 2001
From d3dfe4d958a5454498ca87ecf98ac42c0533d603 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 9: Remove --block-driver option
@ -37,7 +37,7 @@ index ce57e229..6e1c5363 100644
=item B<--colours>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index c6535d71..b7b30899 100644
index d206e4fa..39deddc7 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -197,16 +197,6 @@ The options are silently ignored for other input methods.
@ -58,7 +58,7 @@ index c6535d71..b7b30899 100644
=item B<--colours>
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index e8c260c2..2049db16 100644
index 1fbd29d3..1c690a54 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -43,7 +43,6 @@ let rec main () =
@ -69,7 +69,7 @@ index e8c260c2..2049db16 100644
let input_conn = ref None in
let input_format = ref None in
let input_password = ref None in
@@ -157,8 +156,6 @@ let rec main () =
@@ -159,8 +158,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 e8c260c2..2049db16 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),
@@ -214,12 +211,6 @@ read the man page virt-v2v-in-place(1).
@@ -216,12 +213,6 @@ read the man page virt-v2v-in-place(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -91,7 +91,7 @@ index e8c260c2..2049db16 100644
let input_conn = !input_conn in
let input_mode = !input_mode in
let print_source = !print_source in
@@ -303,7 +294,7 @@ read the man page virt-v2v-in-place(1).
@@ -305,7 +296,7 @@ read the man page virt-v2v-in-place(1).
(* Get the conversion options. *)
let conv_options = {
@ -113,7 +113,7 @@ index 810b5b50..03c71882 100644
test-v2v-mac.sh \
test-v2v-machine-readable.sh \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 19f08aae..89c08fc5 100644
index 834f023d..be5a66e2 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -48,7 +48,6 @@ let rec main () =
@ -124,7 +124,7 @@ index 19f08aae..89c08fc5 100644
let input_conn = ref None in
let input_format = ref None in
let input_password = ref None in
@@ -224,8 +223,6 @@ let rec main () =
@@ -226,8 +225,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";
@ -133,7 +133,7 @@ index 19f08aae..89c08fc5 100644
[ 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),
@@ -341,12 +338,6 @@ read the man page virt-v2v(1).
@@ -343,12 +340,6 @@ read the man page virt-v2v(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -146,7 +146,7 @@ index 19f08aae..89c08fc5 100644
let input_conn = !input_conn in
let input_mode = !input_mode in
let input_transport =
@@ -518,7 +509,7 @@ read the man page virt-v2v(1).
@@ -520,7 +511,7 @@ read the man page virt-v2v(1).
(* Get the conversion options. *)
let conv_options = {

View File

@ -1,109 +0,0 @@
From 8f8cd939ec7cbddad48cb03e522a21525b2a7706 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 25 Jul 2024 09:08:41 +0100
Subject: [PATCH] Update common submodule
This pulls in the commits below which simplify the installation of
Qemu Guest Agent on Windows.
Richard W.M. Jones (4):
mlcustomize: firstboot: Use Linux path for Powershell script path
mlcustomize: firstboot: Use powershell.exe instead of path
mlcustomize: firstboot: Use Powershell -NoProfile flag
mlcustomize: Revert delay installation of qemu-ga MSI
Fixes: https://issues.redhat.com/browse/RHEL-49761
(cherry picked from commit 4ba18d2d6d1155db7cd83641a650477c0a13dbec)
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common 830cbdcf..5d1f5b84:
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
index 5dc01234..4b9b910b 100644
--- a/common/mlcustomize/firstboot.ml
+++ b/common/mlcustomize/firstboot.ml
@@ -387,16 +387,10 @@ let add_firstboot_powershell g root ?prio name code =
(* Create the temporary directory to put the Powershell file. *)
let tempdir = sprintf "%s/Temp" windows_systemroot in
g#mkdir_p tempdir;
+ let ps_path = sprintf "%s/%s" tempdir name in
let code = String.concat "\r\n" code ^ "\r\n" in
- g#write (sprintf "%s/%s" tempdir name) code;
+ g#write ps_path code;
- (* Powershell interpreter. Should we check this exists? XXX *)
- let ps_exe =
- windows_systemroot ^
- "\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" in
-
- (* Windows path to the Powershell script. *)
- let ps_path = windows_systemroot ^ "\\Temp\\" ^ name in
-
- let fb = sprintf "%s -ExecutionPolicy ByPass -file %s" ps_exe ps_path in
+ let fb = sprintf "powershell.exe -ExecutionPolicy ByPass -NoProfile -file %s"
+ ps_path in
add_firstboot_script g root ?prio name fb
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index 4e0ed0e0..eee93669 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -575,40 +575,28 @@ and copy_from_libosinfo { g; i_osinfo; i_arch } destdir =
) driver.Libosinfo.files
with Not_found -> []
+(* Install qemu-ga. [files] is the non-empty list of possible qemu-ga
+ * installers we detected.
+ *)
and configure_qemu_ga t files =
+ let script = ref [] in
+ let add = List.push_back script in
+
+ add "# Virt-v2v script which installs QEMU Guest Agent";
+ add "";
+ add "# Uncomment this line for lots of debug output.";
+ add "# Set-PSDebug -Trace 2";
+ add "";
+ add "Write-Host Installing QEMU Guest Agent";
+ add "";
+ add "# Run qemu-ga installers";
List.iter (
fun msi_path ->
- (* Windows is a trashfire.
- * https://stackoverflow.com/a/18730884
- * https://bugzilla.redhat.com/show_bug.cgi?id=1895323
- *)
- let psh_script = ref [] in
- let add = List.push_back psh_script in
+ add (sprintf "C:\\%s /norestart /qn /l+*vx C:\\%s.log"
+ msi_path msi_path)
+ ) files;
- add "# Uncomment this line for lots of debug output.";
- add "# Set-PSDebug -Trace 2";
- add "";
- add "Write-Host Removing any previously scheduled qemu-ga installation";
- add "schtasks.exe /Delete /TN Firstboot-qemu-ga /F";
- add "";
- add (sprintf
- "Write-Host Scheduling delayed installation of qemu-ga from %s"
- msi_path);
- add "$d = (get-date).AddSeconds(120)";
- add "$dtfinfo = [System.Globalization.DateTimeFormatInfo]::CurrentInfo";
- add "$sdp = $dtfinfo.ShortDatePattern";
- add "$sdp = $sdp -replace 'y+', 'yyyy'";
- add "$sdp = $sdp -replace 'M+', 'MM'";
- add "$sdp = $sdp -replace 'd+', 'dd'";
- add "schtasks.exe /Create /SC ONCE `";
- add " /ST $d.ToString('HH:mm') /SD $d.ToString($sdp) `";
- add " /RU SYSTEM /TN Firstboot-qemu-ga `";
- add (sprintf " /TR \"C:\\%s /forcerestart /qn /l+*vx C:\\%s.log\""
- msi_path msi_path);
-
- Firstboot.add_firstboot_powershell t.g t.root
- (sprintf "install-%s.ps1" msi_path) !psh_script;
- ) files
+ Firstboot.add_firstboot_powershell t.g t.root "install-qemu-ga.ps1" !script
and configure_blnsvr t blnsvr =
let cmd = sprintf "\

View File

@ -1,4 +1,4 @@
From 3a99ae6c6a6d46b8426d3851a46ac67ec90a125c Mon Sep 17 00:00:00 2001
From 5ffec2063cd7075e70400214e6a5b99e6e747b3b 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
@ -9,10 +9,10 @@ Fixes: https://issues.redhat.com/browse/RHEL-40903
1 file changed, 3 insertions(+)
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index 2049db16..b74dbc8a 100644
index 1c690a54..a70e812b 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -195,6 +195,9 @@ read the man page virt-v2v-in-place(1).
@@ -197,6 +197,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;
@ -20,5 +20,5 @@ index 2049db16..b74dbc8a 100644
+ It is almost always better to use virt-v2v instead of this tool.";
+
(* Print the version, easier than asking users to tell us. *)
debug "%s: %s %s (%s)"
debug "info: %s: %s %s (%s)"
prog Config.package_name Config.package_version_full

View File

@ -1,124 +0,0 @@
From bc48a548e753d6c9108bdecb9d6a711617521c23 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Sun, 28 Jul 2024 14:49:42 +0100
Subject: [PATCH] v2v: --mac: Allow gw and len fields to be empty
Even if these appear in the middle of the list, allow them to be
empty. For example this is now permitted whereas previously it was an
error:
virt-v2v --mac <MAC>:ip:<ADDR>,,,nameserver
Reported-by: Arik Hadas
(cherry picked from commit 159fda411d2f75b087106e7293d273ae142c9fbe)
---
in-place/in_place.ml | 12 +++++++-----
inspector/inspector.ml | 12 +++++++-----
v2v/v2v.ml | 12 +++++++-----
3 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index b74dbc8a..d55f49a0 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -90,10 +90,10 @@ let rec main () =
| "ip" ->
(match String.nsplit "," out with
| [] -> error (f_"invalid --mac ip option")
- | [ip] -> add_static_ip mac ip None None []
- | [ip; gw] -> add_static_ip mac ip (Some gw) None []
+ | [ip] -> add_static_ip mac ip "" "" []
+ | [ip; gw] -> add_static_ip mac ip gw "" []
| ip :: gw :: len :: nameservers ->
- add_static_ip mac ip (Some gw) (Some len) nameservers
+ add_static_ip mac ip gw len nameservers
)
| _ -> assert false
and add_static_ip if_mac_addr if_ip_address if_default_gateway
@@ -108,12 +108,14 @@ let rec main () =
an IP address") what addr
in
error_unless_ip_addr "ipaddr" if_ip_address;
+ let if_default_gateway =
+ match if_default_gateway with "" -> None | gw -> Some gw in
Option.iter (error_unless_ip_addr "gw") if_default_gateway;
List.iter (error_unless_ip_addr "nameserver") if_nameservers;
let if_prefix_length =
match if_prefix_length_str with
- | None -> None
- | Some len ->
+ | "" -> None
+ | len ->
let len =
try int_of_string len with
| Failure _ -> error (f_"cannot parse --mac ip prefix length \
diff --git a/inspector/inspector.ml b/inspector/inspector.ml
index c79dd687..7c9d2919 100644
--- a/inspector/inspector.ml
+++ b/inspector/inspector.ml
@@ -97,10 +97,10 @@ let rec main () =
| "ip" ->
(match String.nsplit "," out with
| [] -> error (f_"invalid --mac ip option")
- | [ip] -> add_static_ip mac ip None None []
- | [ip; gw] -> add_static_ip mac ip (Some gw) None []
+ | [ip] -> add_static_ip mac ip "" "" []
+ | [ip; gw] -> add_static_ip mac ip gw "" []
| ip :: gw :: len :: nameservers ->
- add_static_ip mac ip (Some gw) (Some len) nameservers
+ add_static_ip mac ip gw len nameservers
)
| _ -> assert false
and add_static_ip if_mac_addr if_ip_address if_default_gateway
@@ -115,12 +115,14 @@ let rec main () =
is an IP address") what addr
in
error_unless_ip_addr "ipaddr" if_ip_address;
+ let if_default_gateway =
+ match if_default_gateway with "" -> None | gw -> Some gw in
Option.iter (error_unless_ip_addr "gw") if_default_gateway;
List.iter (error_unless_ip_addr "nameserver") if_nameservers;
let if_prefix_length =
match if_prefix_length_str with
- | None -> None
- | Some len ->
+ | "" -> None
+ | len ->
let len =
try int_of_string len with
| Failure _ -> error (f_"cannot parse --mac ip prefix \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 89c08fc5..6d9e3792 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -109,10 +109,10 @@ let rec main () =
| "ip" ->
(match String.nsplit "," out with
| [] -> error (f_"invalid --mac ip option")
- | [ip] -> add_static_ip mac ip None None []
- | [ip; gw] -> add_static_ip mac ip (Some gw) None []
+ | [ip] -> add_static_ip mac ip "" "" []
+ | [ip; gw] -> add_static_ip mac ip gw "" []
| ip :: gw :: len :: nameservers ->
- add_static_ip mac ip (Some gw) (Some len) nameservers
+ add_static_ip mac ip gw len nameservers
)
| _ -> assert false
and add_static_ip if_mac_addr if_ip_address if_default_gateway
@@ -127,12 +127,14 @@ let rec main () =
is an IP address") what addr
in
error_unless_ip_addr "ipaddr" if_ip_address;
+ let if_default_gateway =
+ match if_default_gateway with "" -> None | gw -> Some gw in
Option.iter (error_unless_ip_addr "gw") if_default_gateway;
List.iter (error_unless_ip_addr "nameserver") if_nameservers;
let if_prefix_length =
match if_prefix_length_str with
- | None -> None
- | Some len ->
+ | "" -> None
+ | len ->
let len =
try int_of_string len with
| Failure _ -> error (f_"cannot parse --mac ip prefix length field \

View File

@ -1,2 +1,2 @@
SHA512 (virt-v2v-2.5.5.tar.gz) = 06c8ba67cb604387c5aa371815b0be333378eac2bc3672f6f5c61d6914ed93b49d72355a9e549aca1e3f6d4bf07b357b800aa4e30cd7fe14de05d39f1c4a4007
SHA512 (virt-v2v-2.5.5.tar.gz.sig) = 74397d5d890018ac604d1f563ec2d2298c34dd01b406a90d8e3db52a0f80696938dd7d93a08c93130780a2b6e9f47c74c9eb9be5b7c7c2e0a4fdf72561d40d08
SHA512 (virt-v2v-2.5.6.tar.gz) = 86cc41042518d1ea62627c6fa0605f42dcc397e7ddc3c549bcdc3f54e3703426c14f8b42e102483afb0fad818ff569e1440042c624e9fecf3d04f14233b7a3f5
SHA512 (virt-v2v-2.5.6.tar.gz.sig) = 39d7fcdb88b1abe325b3f3c2e8bda506fb8ecf41d5adb09e7c6bcd84f881cb73a897c1556735c49e420955ae0cc79614c42930495088d8ae6a3bc0cf39ff93f9

View File

@ -7,8 +7,8 @@
Name: virt-v2v
Epoch: 1
Version: 2.5.5
Release: 3%{?dist}
Version: 2.5.6
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -28,22 +28,22 @@ Source3: copy-patches.sh
# https://github.com/libguestfs/virt-v2v/commits/rhel-9.5
# 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-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0008: 0008-RHEL-Disable-o-glance.patch
Patch0009: 0009-RHEL-Remove-the-in-place-option.patch
Patch0010: 0010-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
Patch0011: 0011-RHEL-9-tests-Remove-btrfs-test.patch
Patch0012: 0012-RHEL-9-Remove-block-driver-option.patch
Patch0013: 0013-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
Patch0014: 0014-i-ova-Ignore-dot-underscore-files-in-OVA-files.patch
Patch0015: 0015-Update-common-submodule.patch
Patch0016: 0016-v2v-mac-Allow-gw-and-len-fields-to-be-empty.patch
Patch0001: 0001-docs-Note-that-mac-len-field-is-now-optional.patch
Patch0002: 0002-convert-More-robust-qemu-ga-installation-change-path.patch
Patch0003: 0003-common-mlcustomize-Inject-qemu-ga-blnsvr-into-firstb.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-Fixes-for-libguestfs-winsupport.patch
Patch0008: 0008-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0009: 0009-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0010: 0010-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0011: 0011-RHEL-Disable-o-glance.patch
Patch0012: 0012-RHEL-Remove-the-in-place-option.patch
Patch0013: 0013-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
Patch0014: 0014-RHEL-9-tests-Remove-btrfs-test.patch
Patch0015: 0015-RHEL-9-Remove-block-driver-option.patch
Patch0016: 0016-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
@ -347,6 +347,12 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
%changelog
* Thu Aug 01 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-1
- Further fixes for QEMU Guest Agent
resolves: RHEL-49761
- Place Windows firstboot files under C:\Program Files\Guestfs\Firstboot
- Improve debugging output
* Sun Jul 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.5-3
- Allow virt-v2v --mac gw and len fields to be optional
resolves: RHEL-50731