Compare commits

...

No commits in common. 'c9' and 'cs10' have entirely different histories.
c9 ... cs10

2
.gitignore vendored

@ -1,2 +1,2 @@
SOURCES/libguestfs.keyring
SOURCES/virt-v2v-2.5.6.tar.gz
SOURCES/virt-v2v-2.7.1.tar.gz

@ -1,2 +1,2 @@
1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring
7c49844a2ffb54d6fcb58eca1dbf57b110d5d47e SOURCES/virt-v2v-2.5.6.tar.gz
e25884dd89561fc32072849c1cbc7b020ce75b34 SOURCES/virt-v2v-2.7.1.tar.gz

@ -1,28 +0,0 @@
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.

@ -0,0 +1,60 @@
From 8dd5577174fe23ace5ecba7a81d2516315a0b301 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 30 Oct 2024 10:16:35 +0000
Subject: [PATCH] lib: OVF: Add preliminary support for Windows Server 2025
Unfortunately support has not yet been added to oVirt. However I have
inferred the correct ostype value based on existing entries.
Also pull in the following commit from the common submodule:
Richard W.M. Jones (1):
mlcustomize: Add heuristic support for Windows Server 2025
Related: https://issues.redhat.com/browse/RHEL-65009
Related: https://issues.redhat.com/browse/RHEL-65010
Reported-by: Ming Xie
---
common | 2 +-
lib/create_ovf.ml | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
Submodule common e9eea65a..2d42128e:
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index 88c1c8cf..7e46f318 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -522,6 +522,8 @@ and virtio_iso_path_matches_guest_os t path =
(10, 0, not_client, ((=) "win2k19"))
else if pathelem "2k22" || pathelem "win2022" then
(10, 0, not_client, ((=) "win2k22"))
+ else if pathelem "2k25" || pathelem "win2025" then
+ (10, 0, not_client, ((=) "win2k25"))
else
raise Not_found in
diff --git a/lib/create_ovf.ml b/lib/create_ovf.ml
index f0b32e01..e2c19b08 100644
--- a/lib/create_ovf.ml
+++ b/lib/create_ovf.ml
@@ -242,10 +242,11 @@ and get_ostype = function
| "win2k16" -> "windows_2016x64"
| "win2k19" -> "windows_2019x64"
| "win2k22" -> "windows_2022"
+ | "win2k25" -> "windows_2025"
| _ ->
warning (f_"unknown Windows 10 variant: %s (%s)")
osinfo product;
- "windows_2022"
+ "windows_2025"
)
| { i_type = typ; i_distro = distro;
@@ -448,6 +449,7 @@ and get_ovirt_osid = function
| "win2k16" -> (* windows_2016x64 *) 29
| "win2k19" -> (* windows_2019x64 *) 31
| "win2k22" -> (* windows_2022 *) 37
+ (*| "win2k25" -> (* windows_2025 *) not yet known - 2024/10 *)
| _ ->
warning (f_"unknown Windows 10 variant: %s (%s)")
osinfo product;

@ -1,4 +1,4 @@
From ed515103ba0d4054c7000568b39df42abb503f3c Mon Sep 17 00:00:00 2001
From 8d792ee85d5fc188cba79faff477ef5f73d73022 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

@ -1,207 +0,0 @@
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

@ -1,4 +1,4 @@
From 84afa8cb6933daee1585facc00557826f1fd2273 Mon Sep 17 00:00:00 2001
From f2dbe2f1c595c1201b0f404950b3c4c57f11c04b 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,10 +44,10 @@ index d2a1c270..0be37f5e 100644
=item B<-o null>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 346be606..81a4b45a 100644
index 5345a6c9..a1e8fb30 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
@@ -157,11 +157,6 @@ Since F<guest-domain.xml> contains the path(s) to the guest disk
image(s) you do not need to specify the name of the disk image on the
command line.
@ -59,7 +59,7 @@ index 346be606..81a4b45a 100644
=head1 OPTIONS
=over 4
@@ -522,9 +517,6 @@ This is similar to I<-o local>, except that a shell script is written
@@ -533,9 +528,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>.
@ -69,7 +69,7 @@ index 346be606..81a4b45a 100644
=item B<-o> B<rhev>
This is the same as I<-o rhv>.
@@ -607,11 +599,6 @@ For I<-o openstack> (L<virt-v2v-output-openstack(1)>) only, set a guest ID
@@ -618,11 +610,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,7 +81,7 @@ index 346be606..81a4b45a 100644
=item B<-oo verify-server-certificate>
=item B<-oo verify-server-certificate=>C<true|false>
@@ -782,10 +769,6 @@ Print information about the source guest and stop. This option is
@@ -793,10 +780,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>.
@ -107,7 +107,7 @@ index 07dae8c2..b6f24565 100644
let output_storage =
match options.output_storage with
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 48c8cfba..fca5f6e9 100644
index 194e6233..6baa111f 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -277,8 +277,6 @@ let rec main () =

@ -1,116 +0,0 @@
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

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

@ -1,45 +0,0 @@
From c952f310c902e438a8b0b5240a4b486b698bede8 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 5 Aug 2024 10:08:34 +0100
Subject: [PATCH] docs: Add a note about removal of VMware Tools on Windows
We use VMware's recommended method for removal, but we know from
experience that this rarely works. The alternate method being
proposed involves making very invasive changes to the Registry and
filesystem, which are inappropriate for virt-v2v to do and highly
risky. Therefore simply document this, with notes for the virt-v2v
user if they want to try the risky method.
Fixes: https://issues.redhat.com/browse/RHEL-51169
Thanks: Yan Vugenfirer
Reported-by: Ming Xie
---
docs/virt-v2v.pod | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index dfe92d77..92941026 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -1299,6 +1299,21 @@ B<N.B.> Take care not to interrupt the automatic driver installation
process when logging in to the guest for the first time, as this may
prevent the guest from subsequently booting correctly.
+=head3 Removing VMware Tools from Windows guests
+
+Virt-v2v attempts to remove VMware Tools. For Windows guests this is
+supposed to happen during the first boot after conversion.
+
+We use VMware's recommended uninstallation method as that is the
+safest choice. However our experience has shown that this method
+usually fails. If so, VMware Tools must be removed by some other
+method.
+
+One possible method is described here:
+L<https://gist.github.com/broestls/f872872a00acee2fca02017160840624>
+You should carefully check this script since it makes very invasive
+changes to the Windows Registry and filesystem.
+
=head2 Free space for conversion
=head3 Free space in the guest

@ -1,4 +1,4 @@
From 2039580744223840a09b8aab7ff2fbf94a563a6c Mon Sep 17 00:00:00 2001
From de77ecd123658dd28362da72783424f4a3ff5deb 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,10 +18,10 @@ 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 344c5858..ecc48ad4 100644
index 64b36c97..604902d1 100644
--- a/convert/convert.ml
+++ b/convert/convert.ml
@@ -52,6 +52,7 @@ let rec convert dir options source =
@@ -53,6 +53,7 @@ let rec convert dir options source =
message (f_"Opening the source");
let g = open_guestfs ~identifier:"v2v" () in
@ -30,7 +30,7 @@ index 344c5858..ecc48ad4 100644
(* Setting the number of vCPUs allows parallel mkinitrd, but make
* sure this is not too large because each vCPU consumes guest RAM.
diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh
index 30908a91..73cf5144 100755
index 501c2a93..28b2744f 100755
--- a/test-data/phony-guests/make-windows-img.sh
+++ b/test-data/phony-guests/make-windows-img.sh
@@ -37,6 +37,7 @@ fi
@ -85,7 +85,7 @@ index 4373f140..2b31b0bb 100755
# Test the base image remained untouched
diff --git a/tests/test-v2v-virtio-win-iso.sh b/tests/test-v2v-virtio-win-iso.sh
index 69f6f414..b9b806fb 100755
index 68fb879b..2e133034 100755
--- a/tests/test-v2v-virtio-win-iso.sh
+++ b/tests/test-v2v-virtio-win-iso.sh
@@ -82,6 +82,12 @@ mktest ()

@ -1,25 +0,0 @@
From 7bc9b115baba6df2969451cd6907e2d7543ef22d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 5 Aug 2024 10:18:31 +0100
Subject: [PATCH] Update common submodule
Richard W.M. Jones (1):
mlcustomize: Write qemu-ga log file name to log.txt
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common 04116678..7b84a370:
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index 2981bff5..afec1e45 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -606,6 +606,8 @@ and configure_qemu_ga t tempdir_win files =
add "# Run qemu-ga installers";
List.iter (
fun msi ->
+ add (sprintf "Write-Host \"Writing log to %s\\%s.log\""
+ tempdir_win 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)

@ -1,78 +0,0 @@
From 50f005f8b7034916588855c15b10a0195bf54b23 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 8 Aug 2024 10:40:24 +0100
Subject: [PATCH] Pull in a fix to make Windows firstboot more reliable.
Update the common submodule to get:
Richard W.M. Jones (2):
mlcustomize: Add some comments to firstboot batch file
mlcustomize: Reboot Windows between each firstboot script
Document that Windows may now reboot several times after conversion.
---
common | 2 +-
docs/virt-v2v.pod | 9 ++++++---
2 files changed, 7 insertions(+), 4 deletions(-)
Submodule common 7b84a370..a7883967:
diff --git a/common/mlcustomize/firstboot.ml b/common/mlcustomize/firstboot.ml
index 3bbba714..52e76401 100644
--- a/common/mlcustomize/firstboot.ml
+++ b/common/mlcustomize/firstboot.ml
@@ -278,6 +278,9 @@ module Windows = struct
(* Write a firstboot.bat control script which just runs the other
* scripts in the directory. Note we need to use CRLF line endings
* in this script.
+ *
+ * XXX It would be better to use powershell here. For some ideas see
+ * https://github.com/HCK-CI/HLK-Setup-Scripts/
*)
let firstboot_script = sprintf "\
@echo off
@@ -299,6 +302,7 @@ if not exist \"%%scripts_done%%\" (
mkdir \"%%scripts_done%%\"
)
+:: Pick the next script to run.
for %%%%f in (\"%%scripts%%\"\\*.bat) do (
echo running \"%%%%f\"
move \"%%%%f\" \"%%scripts_done%%\"
@@ -307,8 +311,17 @@ for %%%%f in (\"%%scripts%%\"\\*.bat) do (
set elvl=!errorlevel!
echo .... exit code !elvl!
popd
+
+ :: Reboot the computer. This is necessary to free any locked
+ :: files which may prevent later scripts from running.
+ shutdown /r /t 0 /y
+
+ :: Exit the script (in case shutdown returns before rebooting).
+ :: On next boot, the whole firstboot service will be called again.
+ exit /b
)
+:: Fallthrough here if there are no scripts.
echo uninstalling firstboot service
\"%%firstboot%%\\%s\" -s firstboot uninstall
" firstboot_dir_win srvany in
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 92941026..587b4604 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -1295,9 +1295,12 @@ The guest will be bootable after the offline conversion stage, but
will not yet have all necessary drivers installed to work correctly.
These will be installed automatically the first time the guest boots.
-B<N.B.> Take care not to interrupt the automatic driver installation
-process when logging in to the guest for the first time, as this may
-prevent the guest from subsequently booting correctly.
+B<N.B.> Windows may reboot 4 or more times the first time after
+conversion. This is required to install the required drivers, guest
+agents, remove VMware Tools, and configure the network. Take care not
+to interrupt the automatic driver installation process when logging in
+to the guest for the first time, as this may prevent the guest from
+subsequently booting correctly.
=head3 Removing VMware Tools from Windows guests

@ -1,4 +1,4 @@
From 13970ce5d6be475cf6e06185636a730584303a6e Mon Sep 17 00:00:00 2001
From 1c85b582fc38f379b54efe344dc2323db95acc78 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)

@ -1,17 +1,17 @@
From be45d1e5bca42148c295da10c27c485c72de28c3 Mon Sep 17 00:00:00 2001
From 6b7b2934d54d5273bb6c444ddabccef3a64c5eee 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
---
docs/virt-v2v-support.pod | 104 ++------------------------------------
1 file changed, 4 insertions(+), 100 deletions(-)
docs/virt-v2v-support.pod | 96 ++-------------------------------------
1 file changed, 4 insertions(+), 92 deletions(-)
diff --git a/docs/virt-v2v-support.pod b/docs/virt-v2v-support.pod
index 8b64a5ea..1ffc0f9d 100644
index e6415692..1ffc0f9d 100644
--- a/docs/virt-v2v-support.pod
+++ b/docs/virt-v2v-support.pod
@@ -8,106 +8,10 @@ systems and guests in virt-v2v
@@ -8,98 +8,10 @@ systems and guests in virt-v2v
This page documents which foreign hypervisors, virtualization
management systems and guest types that L<virt-v2v(1)> can support.
@ -84,9 +84,9 @@ index 8b64a5ea..1ffc0f9d 100644
-
-=over 4
-
-=item Red Hat Enterprise Linux 4, 5, 6, 7
-=item Red Hat Enterprise Linux 4, 5, 6, 7, 8, 9, 10
-
-=item CentOS 4, 5, 6, 7
-=item CentOS 4, 5, 6, 7, 8, 9, 10
-
-=item Scientific Linux 4, 5, 6, 7
-
@ -104,15 +104,7 @@ index 8b64a5ea..1ffc0f9d 100644
-
-=item Ubuntu 10.04, 12.04, 14.04, 16.04, and up
-
-=item Windows XP to Windows 10 / Windows Server 2016
-
-We use Windows internal version numbers, see
-L<https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions>
-
-Currently NT 5.2 to NT 6.3 are supported.
-
-See L</WINDOWS> below for additional notes on converting Windows
-guests.
-=item Windows XP to Windows 11 / Windows Server 2025
-
-=back
+For more information on supported hypervisors, and guest types in

@ -1,30 +0,0 @@
From e9c0d63b22bcb4c31cfaac00fc1271713c8bd3b3 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 8 Aug 2024 10:56:16 +0100
Subject: [PATCH] docs: Restate position on removal of VMware Tools
With the "reboot after every step" change made in the previous commit,
it seems removal of VMware Tools is now more reliable. Update the
notes about this.
Updates: commit c952f310c902e438a8b0b5240a4b486b698bede8
---
docs/virt-v2v.pod | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 587b4604..346be606 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -1308,9 +1308,8 @@ Virt-v2v attempts to remove VMware Tools. For Windows guests this is
supposed to happen during the first boot after conversion.
We use VMware's recommended uninstallation method as that is the
-safest choice. However our experience has shown that this method
-usually fails. If so, VMware Tools must be removed by some other
-method.
+safest choice. If this fails, VMware Tools must be manually removed
+by some other method.
One possible method is described here:
L<https://gist.github.com/broestls/f872872a00acee2fca02017160840624>

@ -0,0 +1,554 @@
From 0b4fc69b54bf5a8fafc9bed62749ff2c91eeb21d 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
Originally this bug was to remove input from RHEL 5 Xen only. This
change actually removes all conversions from Xen as in RHEL 9 we only
supported RHEL 5 Xen.
Fixes: https://issues.redhat.com/browse/RHEL-37687
---
docs/Makefile.am | 14 ----
docs/virt-v2v-input-xen.pod | 154 ------------------------------------
docs/virt-v2v.pod | 52 ++----------
input/Makefile.am | 4 +-
input/input_xen_ssh.ml | 132 -------------------------------
input/input_xen_ssh.mli | 21 -----
inspector/inspector.ml | 4 -
v2v/v2v.ml | 5 --
8 files changed, 6 insertions(+), 380 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 0f6a3e21..7cb6e09a 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -23,7 +23,6 @@ EXTRA_DIST = \
virt-v2v-hacking.pod \
virt-v2v-in-place.pod \
virt-v2v-input-vmware.pod \
- virt-v2v-input-xen.pod \
virt-v2v-inspector.pod \
virt-v2v-output-local.pod \
virt-v2v-output-openstack.pod \
@@ -43,7 +42,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-output-local.1 \
virt-v2v-output-openstack.1 \
@@ -60,7 +58,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-output-local.1.html \
$(top_builddir)/website/virt-v2v-output-openstack.1.html \
@@ -119,17 +116,6 @@ stamp-virt-v2v-input-vmware.pod: virt-v2v-input-vmware.pod
$<
touch $@
-virt-v2v-input-xen.1 $(top_builddir)/website/virt-v2v-input-xen.1.html: stamp-virt-v2v-input-xen.pod
-
-stamp-virt-v2v-input-xen.pod: virt-v2v-input-xen.pod
- $(PODWRAPPER) \
- --man virt-v2v-input-xen.1 \
- --html $(top_builddir)/website/virt-v2v-input-xen.1.html \
- --license GPLv2+ \
- --warning safe \
- $<
- touch $@
-
virt-v2v-inspector.1 $(top_builddir)/website/virt-v2v-inspector.1.html: stamp-virt-v2v-inspector.pod
stamp-virt-v2v-inspector.pod: virt-v2v-inspector.pod
diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod
deleted file mode 100644
index 4a0544f8..00000000
--- a/docs/virt-v2v-input-xen.pod
+++ /dev/null
@@ -1,154 +0,0 @@
-=head1 NAME
-
-virt-v2v-input-xen - Using virt-v2v to convert guests from Xen
-
-=head1 SYNOPSIS
-
- virt-v2v -ic 'xen+ssh://root@xen.example.com'
- -ip passwordfile
- GUEST_NAME [-o* options]
-
-=head1 DESCRIPTION
-
-This page documents how to use L<virt-v2v(1)> to convert guests from
-RHEL 5 Xen, or SLES and OpenSUSE Xen hosts.
-
-=head1 INPUT FROM XEN
-
-=head2 SSH authentication
-
-You can use SSH password authentication, by supplying the name of a
-file containing the password to the I<-ip> option (note this option
-does I<not> take the password directly). You may need to adjust
-F</etc/ssh/sshd_config> on the Xen server to set
-C<PasswordAuthentication yes>.
-
-If you are not using password authentication, an alternative is to use
-ssh-agent, and add your ssh public key to
-F</root/.ssh/authorized_keys> (on the Xen host). After doing this,
-you should check that passwordless access works from the virt-v2v
-server to the Xen host. For example:
-
- $ ssh root@xen.example.com
- [ logs straight into the shell, no password is requested ]
-
-Note that support for non-interactive authentication via the I<-ip>
-option is incomplete. Some operations remain that still require the
-user to enter the password manually. Therefore ssh-agent is recommended
-over the I<-ip> option. See L<https://bugzilla.redhat.com/1854275>.
-
-With some modern ssh implementations, legacy crypto algorithms required
-to interoperate with RHEL 5 sshd are disabled. To enable them, you may
-need to add the following C<Host> stanza to your F<~/.ssh/config>:
-
- Host xen.example.com
- KexAlgorithms +diffie-hellman-group14-sha1
- MACs +hmac-sha1
- HostKeyAlgorithms +ssh-rsa
- PubkeyAcceptedKeyTypes +ssh-rsa
- PubkeyAcceptedAlgorithms +ssh-rsa
-
-(C<PubkeyAcceptedKeyTypes> and C<PubkeyAcceptedAlgorithms> have
-identical meaning; the former is the old option name, the latter is the
-new one. Virt-v2v uses both C<libssh> and C<ssh> when converting a guest
-from Xen, and on some operating systems, C<libssh> and C<ssh> may not
-both accept the same option variant.)
-
-When connecting to RHEL 5 sshd from RHEL 9, the SHA1 algorithm's use in
-signatures has to be re-enabled at the OpenSSL level, in addition to the
-above SSH configuration. Create a file called F<$HOME/openssl-sha1.cnf>
-with the following contents:
-
- .include /etc/ssl/openssl.cnf
- [openssl_init]
- alg_section = evp_properties
- [evp_properties]
- rh-allow-sha1-signatures = yes
-
-and export the following variable into the environment of the
-C<virt-v2v> process:
-
- OPENSSL_CONF=$HOME/openssl-sha1.cnf
-
-Note that the C<OPENSSL_CONF> environment variable will only take effect
-if the libvirt client library used by virt-v2v is at least version
-8.6.0.
-
-=head2 Test libvirt connection to remote Xen host
-
-Use the L<virsh(1)> command to list the guests on the remote Xen host:
-
- $ virsh -c xen+ssh://root@xen.example.com list --all
- Id Name State
- ----------------------------------------------------
- 0 Domain-0 running
- - rhel49-x86_64-pv shut off
-
-You should also try dumping the metadata from any guest on your
-server, like this:
-
- $ virsh -c xen+ssh://root@xen.example.com dumpxml rhel49-x86_64-pv
- <domain type='xen'>
- <name>rhel49-x86_64-pv</name>
- [...]
- </domain>
-
-B<If the above commands do not work, then virt-v2v is not going to
-work either>. Fix your libvirt configuration or the remote server
-before continuing.
-
-B<If the guest disks are located on a host block device>, then the
-conversion will fail. See L</Xen or ssh conversions from block devices>
-below for a workaround.
-
-=head2 Importing a guest
-
-To import a particular guest from a Xen server, do:
-
- $ virt-v2v -ic 'xen+ssh://root@xen.example.com' \
- rhel49-x86_64-pv \
- -o local -os /var/tmp
-
-where C<rhel49-x86_64-pv> is the name of the guest (which must be shut
-down).
-
-In this case the output flags are set to write the converted guest to
-a temporary directory as this is just an example, but you can also
-write to libvirt or any other supported target.
-
-=head2 Xen or ssh conversions from block devices
-
-Currently virt-v2v cannot directly access a Xen guest (or any guest
-located remotely over ssh) if that guests disks are located on host
-block devices.
-
-To tell if a Xen guest uses host block devices, look at the guest XML.
-You will see:
-
- <disk type='block' device='disk'>
- ...
- <source dev='/dev/VG/guest'/>
-
-where C<type='block'>, C<source dev=> and C</dev/...> are all
-indications that the disk is located on a host block device.
-
-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)>.
-
-=head1 AUTHOR
-
-Richard W.M. Jones
-
-=head1 COPYRIGHT
-
-Copyright (C) 2009-2020 Red Hat Inc.
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index a1e8fb30..ca75c255 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -12,7 +12,7 @@ virt-v2v - Convert a guest to use KVM
=head1 DESCRIPTION
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,
+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
@@ -59,8 +59,6 @@ management systems, guests.
L<virt-v2v-input-vmware(1)> — Input from VMware.
-L<virt-v2v-input-xen(1)> — Input from Xen.
-
L<virt-v2v-output-local(1)> — Output to local files or local libvirt.
L<virt-v2v-output-rhv(1)> — Output to oVirt or RHV.
@@ -186,10 +184,6 @@ This is only supported for:
=item *
-L<input from Xen|virt-v2v-input-xen(1)>
-
-=item *
-
L<input from VMware VMX|virt-v2v-input-vmware(1)/INPUT FROM VMWARE VMX>
when using the SSH transport method
@@ -305,12 +299,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>>.
-Only local libvirt connections, VMware vCenter connections, or RHEL 5
-Xen remote connections can be used. Other remote libvirt connections
-will not work in general.
+Only local libvirt connections or VMware vCenter connections.
+Other remote libvirt connections will not work in general.
-See also L<virt-v2v-input-vmware(1)>,
-L<virt-v2v-input-xen(1)>.
+See also L<virt-v2v-input-vmware(1)>.
=item B<-if> format
@@ -859,40 +851,6 @@ __CUSTOMIZE_OPTIONS__
=head1 NOTES
-=head2 Xen paravirtualized guests
-
-Older versions of virt-v2v could turn a Xen paravirtualized (PV) guest
-into a KVM guest by installing a new kernel. This version of virt-v2v
-does I<not> attempt to install any new kernels. Instead it will give
-you an error if there are I<only> Xen PV kernels available.
-
-Therefore before conversion you should check that a regular kernel is
-installed. For some older Linux distributions, this means installing
-a kernel from the table below:
-
- RHEL 3 (Does not apply, as there was no Xen PV kernel)
-
- RHEL 4 i686 with > 10GB of RAM: install 'kernel-hugemem'
- i686 SMP: install 'kernel-smp'
- other i686: install 'kernel'
- x86-64 SMP with > 8 CPUs: install 'kernel-largesmp'
- x86-64 SMP: install 'kernel-smp'
- other x86-64: install 'kernel'
-
- RHEL 5 i686: install 'kernel-PAE'
- x86-64: install 'kernel'
-
- SLES 10 i586 with > 10GB of RAM: install 'kernel-bigsmp'
- i586 SMP: install 'kernel-smp'
- other i586: install 'kernel-default'
- x86-64 SMP: install 'kernel-smp'
- other x86-64: install 'kernel-default'
-
- SLES 11+ i586: install 'kernel-pae'
- x86-64: install 'kernel-default'
-
- Windows (Does not apply, as there is no Xen PV Windows kernel)
-
=head2 Enabling virtio
"Virtio" is the name for a set of drivers which make disk (block
@@ -1184,7 +1142,7 @@ bandwidth. Virt-v2v should be able to copy guest data at gigabit
ethernet speeds or greater.
Ensure that the network connections between servers (conversion
-server, NFS server, vCenter, Xen) are as fast and as low latency as
+server, NFS server, vCenter) are as fast and as low latency as
possible.
=head3 Disk space
diff --git a/input/Makefile.am b/input/Makefile.am
index 4153f878..2f4ceb0c 100644
--- a/input/Makefile.am
+++ b/input/Makefile.am
@@ -29,7 +29,6 @@ SOURCES_MLI = \
input_vcenter_https.mli \
input_vddk.mli \
input_vmx.mli \
- input_xen_ssh.mli \
name_from_disk.mli \
nbdkit_curl.mli \
nbdkit_ssh.mli \
@@ -60,8 +59,7 @@ SOURCES_ML = \
input_ova.ml \
input_vcenter_https.ml \
input_vddk.ml \
- input_vmx.ml \
- input_xen_ssh.ml
+ input_vmx.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 c4235a4b..00000000
--- a/input/input_xen_ssh.ml
+++ /dev/null
@@ -1,132 +0,0 @@
-(* helper-v2v-input
- * Copyright (C) 2009-2021 Red Hat Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *)
-
-open Printf
-open Unix
-
-open Std_utils
-open Tools_utils
-open Common_gettext.Gettext
-
-open Types
-open Utils
-
-open Parse_libvirt_xml
-open Input
-
-module XenSSH = struct
- let to_string options args =
- let xs = args in
- let xs =
- match options.input_conn with
- | Some ic -> ("-ic " ^ ic) :: xs
- | None -> xs in
- let xs = "-i libvirt" :: xs in
- String.concat " " xs
-
- let query_input_options () =
- printf (f_"No input options can be used in this mode.\n")
-
- let setup dir options args =
- if options.input_options <> [] then
- error (f_"no -io (input options) are allowed here");
-
- if not options.read_only then
- error (f_"in-place mode does not work with Xen over SSH source");
-
- (* Get the guest name. *)
- let guest =
- match args with
- | [arg] -> arg
- | _ ->
- error (f_"-i libvirt: expecting a libvirt guest name \
- on the command line") in
-
- (* -ic must be set. *)
- let input_conn =
- match options.input_conn with
- | Some ic -> ic
- | None ->
- error (f_"-i libvirt: expecting -ic parameter for \
- Xen over SSH connection") in
-
- let uri =
- try Xml.parse_uri input_conn
- with Invalid_argument msg ->
- error (f_"could not parse '-ic %s'. Original error message was: %s")
- input_conn msg in
-
- (* Connect to the hypervisor. *)
- let conn =
- let auth = Libvirt_utils.auth_for_password_file
- ?password_file:options.input_password () in
- Libvirt.Connect.connect_auth ~name:input_conn auth in
-
- (* Parse the libvirt XML. *)
- let source, disks, _ = parse_libvirt_domain conn guest in
-
- let server =
- 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
-
- let port =
- match uri.uri_port with
- | 0 | 22 -> None
- | i -> Some (string_of_int i) in
-
- let user = uri.uri_user in
-
- let password =
- match options.input_password with
- | None -> None
- | 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;
-
- 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\".")
-
- | 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;
-
- source
-end
diff --git a/input/input_xen_ssh.mli b/input/input_xen_ssh.mli
deleted file mode 100644
index fa048231..00000000
--- a/input/input_xen_ssh.mli
+++ /dev/null
@@ -1,21 +0,0 @@
-(* virt-v2v
- * Copyright (C) 2009-2021 Red Hat Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *)
-
-(** Input from Xen over SSH *)
-
-module XenSSH : Input.INPUT
diff --git a/inspector/inspector.ml b/inspector/inspector.ml
index 1ad67bbc..d7cbf449 100644
--- a/inspector/inspector.ml
+++ b/inspector/inspector.ml
@@ -296,10 +296,6 @@ read the man page virt-v2v-inspector(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.
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 6baa111f..9a622da0 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -398,7 +398,6 @@ read the man page virt-v2v(1).
pr "virt-v2v-2.0\n";
pr "libguestfs-rewrite\n";
pr "vcenter-https\n";
- pr "xen-ssh\n";
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.

@ -1,7 +1,7 @@
From b0386851d539e414302cb646567836717fd027d9 Mon Sep 17 00:00:00 2001
From dce2fe3c583cb6a8259667337df31c6c361fa670 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
Subject: [PATCH] RHEL: Remove -o glance
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1977539
---
@ -98,10 +98,10 @@ index cd4862b1..54cd276e 100644
=head1 AUTHOR
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 81a4b45a..7c7069df 100644
index ca75c255..6e26e62c 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -435,14 +435,6 @@ See L</Networks and bridges> below.
@@ -438,14 +438,6 @@ See L</Networks and bridges> below.
This is the same as I<-o local>.
@ -116,7 +116,7 @@ index 81a4b45a..7c7069df 100644
=item B<-o> B<kubevirt>
Set the output method to I<kubevirt>. B<Note the way this mode works
@@ -1191,11 +1183,6 @@ and output methods may use disk space, as outlined in the table below.
@@ -1164,11 +1156,6 @@ and output methods may use disk space, as outlined in the table below.
This temporarily places a full copy of the uncompressed source disks
in C<$VIRT_V2V_TMPDIR> (or F</var/tmp>).
@ -128,7 +128,7 @@ index 81a4b45a..7c7069df 100644
=item I<-o local>
=item I<-o qemu>
@@ -1398,13 +1385,6 @@ See also L</Starting the libvirt system instance>.
@@ -1371,13 +1358,6 @@ See also L</Starting the libvirt system instance>.
Because of how Cinder volumes are presented as F</dev> block devices,
using I<-o openstack> normally requires that virt-v2v is run as root.
@ -167,7 +167,7 @@ index c0db9115..074b5e16 100755
set -e
set -x
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index fca5f6e9..4148fa50 100644
index 9a622da0..801aaf7d 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -197,7 +197,6 @@ let rec main () =
@ -187,7 +187,7 @@ index fca5f6e9..4148fa50 100644
s_"Set output mode (default: libvirt)";
[ M"oa" ], Getopt.String ("sparse|preallocated", set_output_alloc),
s_"Set output allocation mode";
@@ -325,8 +324,6 @@ virt-v2v -i libvirtxml guest-domain.xml -o local -os /var/tmp
@@ -333,8 +332,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 fca5f6e9..4148fa50 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.
@@ -401,7 +398,6 @@ read the man page virt-v2v(1).
@@ -411,7 +408,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 fca5f6e9..4148fa50 100644
pr "output:kubevirt\n";
pr "output:libvirt\n";
pr "output:local\n";
@@ -498,7 +494,6 @@ read the man page virt-v2v(1).
@@ -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)

@ -1,4 +1,4 @@
From 7cbdcc0d3acf0bc50e331ad994987c26c5917b63 Mon Sep 17 00:00:00 2001
From af62ac81540fc6baf10c572ae5440dd4b678b073 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,10 +12,10 @@ wish to support in RHEL.
3 files changed, 17 deletions(-)
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 7c7069df..9da6c851 100644
index 6e26e62c..2230a556 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -24,9 +24,6 @@ virtualize those machines (physical to virtual, or p2v).
@@ -25,9 +25,6 @@ virtualize those machines (physical to virtual, or p2v).
To estimate the disk space needed before conversion, see
L<virt-v2v-inspector(1)>.
@ -25,7 +25,7 @@ index 7c7069df..9da6c851 100644
=head2 Input and Output
You normally run virt-v2v with several I<-i*> options controlling the
@@ -39,10 +36,6 @@ The input and output sides of virt-v2v are separate and unrelated.
@@ -40,10 +37,6 @@ The input and output sides of virt-v2v are separate and unrelated.
Virt-v2v can read from any input and write to any output. Therefore
these sides of virt-v2v are documented separately in this manual.
@ -33,10 +33,10 @@ index 7c7069df..9da6c851 100644
-mode". In this case the source guest is always left unchanged.
-In-place conversions may be done using L<virt-v2v-in-place(1)>.
-
=head2 Other virt-v2v topics
=head2 Customization
L<virt-v2v-support(1)> — Supported hypervisors, virtualization
@@ -1666,7 +1659,6 @@ L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#c
Virt-v2v can also customize the guest during conversion, using the
@@ -1639,7 +1632,6 @@ L<https://rwmj.wordpress.com/2015/09/18/importing-kvm-guests-to-ovirt-or-rhev/#c
L<virt-p2v(1)>,
L<virt-v2v-inspector(1)>,
@ -45,7 +45,7 @@ index 7c7069df..9da6c851 100644
L<virt-df(1)>,
L<virt-filesystems(1)>,
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 723a6506..4bfa1c7a 100644
index 1c3d6064..cee516c4 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -77,7 +77,6 @@ TESTS = \
@ -57,7 +57,7 @@ index 723a6506..4bfa1c7a 100644
test-v2v-inspector.sh \
test-v2v-mac.sh \
diff --git a/v2v/v2v.ml b/v2v/v2v.ml
index 4148fa50..834f023d 100644
index 801aaf7d..c18aeaa1 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -219,12 +219,6 @@ let rec main () =

@ -1,7 +1,7 @@
From 28311593d57777fd4d19a9ce93b4b06502a154be Mon Sep 17 00:00:00 2001
From b7614e03e7e6584296fb4b74d951997bfd24b848 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
Subject: [PATCH] RHEL: tests: Remove btrfs test
RHEL does not have btrfs so this test always fails.
---
@ -9,10 +9,10 @@ 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 f38342f0..810b5b50 100644
index cee516c4..ddecdfbf 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -100,7 +100,6 @@ TESTS = \
@@ -101,7 +101,6 @@ TESTS = \
test-v2v-sound.sh \
test-v2v-virtio-win-iso.sh \
test-v2v-fedora-conversion.sh \

@ -1,7 +1,7 @@
From 9b289e8d0f03c9d98d2b950feb889cad883779ea Mon Sep 17 00:00:00 2001
From e0af932e291fdb9f87b071a873152f757f8ad71c 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
Subject: [PATCH] RHEL: Remove --block-driver option
Go back to the old default of always installing virtio-blk drivers in
Windows guests.
@ -16,10 +16,10 @@ Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2190387
5 files changed, 2 insertions(+), 41 deletions(-)
diff --git a/docs/virt-v2v-in-place.pod b/docs/virt-v2v-in-place.pod
index ce57e229..6e1c5363 100644
index 4304c0d6..b7384210 100644
--- a/docs/virt-v2v-in-place.pod
+++ b/docs/virt-v2v-in-place.pod
@@ -47,16 +47,6 @@ Display help.
@@ -51,16 +51,6 @@ Display help.
See I<--network> below.
@ -37,10 +37,10 @@ index ce57e229..6e1c5363 100644
=item B<--colours>
diff --git a/docs/virt-v2v.pod b/docs/virt-v2v.pod
index 9da6c851..d3406be0 100644
index 2230a556..eb7da9ca 100644
--- a/docs/virt-v2v.pod
+++ b/docs/virt-v2v.pod
@@ -197,16 +197,6 @@ The options are silently ignored for other input methods.
@@ -202,16 +202,6 @@ The options are silently ignored for other input methods.
See I<--network> below.
@ -58,7 +58,7 @@ index 9da6c851..d3406be0 100644
=item B<--colours>
diff --git a/in-place/in_place.ml b/in-place/in_place.ml
index 1fbd29d3..1c690a54 100644
index 8286dbc5..2dc406e2 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -43,7 +43,6 @@ let rec main () =
@ -78,7 +78,7 @@ index 1fbd29d3..1c690a54 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),
@@ -216,12 +213,6 @@ read the man page virt-v2v-in-place(1).
@@ -225,12 +222,6 @@ read the man page virt-v2v-in-place(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -88,10 +88,10 @@ index 1fbd29d3..1c690a54 100644
- | Some "virtio-scsi" -> Virtio_SCSI
- | Some driver ->
- error (f_"unknown block driver --block-driver %s") driver in
let customize_ops = get_customize_ops () in
let input_conn = !input_conn in
let input_mode = !input_mode in
let print_source = !print_source in
@@ -305,7 +296,7 @@ read the man page virt-v2v-in-place(1).
@@ -316,7 +307,7 @@ read the man page virt-v2v-in-place(1).
(* Get the conversion options. *)
let conv_options = {
@ -101,7 +101,7 @@ index 1fbd29d3..1c690a54 100644
ks = opthandle.ks;
network_map;
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 810b5b50..03c71882 100644
index ddecdfbf..b41fed7f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -77,7 +77,6 @@ TESTS = \
@ -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 834f023d..be5a66e2 100644
index c18aeaa1..d09c200c 100644
--- a/v2v/v2v.ml
+++ b/v2v/v2v.ml
@@ -48,7 +48,6 @@ let rec main () =
@ -133,7 +133,7 @@ index 834f023d..be5a66e2 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),
@@ -343,12 +340,6 @@ read the man page virt-v2v(1).
@@ -352,12 +349,6 @@ read the man page virt-v2v(1).
(* Dereference the arguments. *)
let args = List.rev !args in
@ -143,10 +143,10 @@ index 834f023d..be5a66e2 100644
- | Some "virtio-scsi" -> Virtio_SCSI
- | Some driver ->
- error (f_"unknown block driver --block-driver %s") driver in
let customize_ops = get_customize_ops () in
let input_conn = !input_conn in
let input_mode = !input_mode in
let input_transport =
@@ -520,7 +511,7 @@ read the man page virt-v2v(1).
@@ -526,7 +517,7 @@ read the man page virt-v2v(1).
(* Get the conversion options. *)
let conv_options = {

@ -1,23 +0,0 @@
From 98a14fe2f8a428ed4bba85aba3889467d48a5743 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)
They are not supported in RHEL.
---
docs/virt-v2v-input-xen.pod | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/virt-v2v-input-xen.pod b/docs/virt-v2v-input-xen.pod
index 4a0544f8..9c3981e1 100644
--- a/docs/virt-v2v-input-xen.pod
+++ b/docs/virt-v2v-input-xen.pod
@@ -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
-RHEL 5 Xen, or SLES and OpenSUSE Xen hosts.
+RHEL 5 Xen hosts.
=head1 INPUT FROM XEN

@ -1,4 +1,4 @@
From 1dec94e52974e45fd3962dcbd51882fde7e9c306 Mon Sep 17 00:00:00 2001
From fe167d94ed81b41b025f55cbd6ca97ce404986ce 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 1c690a54..a70e812b 100644
index 2dc406e2..9d24de78 100644
--- a/in-place/in_place.ml
+++ b/in-place/in_place.ml
@@ -197,6 +197,9 @@ read the man page virt-v2v-in-place(1).
@@ -206,6 +206,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;

@ -1,47 +0,0 @@
From f98822497a4a60a56cb4da2d5609d30150bdd718 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
In RHEL 9 nbdcopy 1.12.4-2 will be sufficient (vs nbdcopy 1.13.5
upstream). We will enforce this through RPM dependencies and test it
separately. Thus remove the version check and test.
---
output/output.ml | 11 -----------
tests/Makefile.am | 1 -
2 files changed, 12 deletions(-)
diff --git a/output/output.ml b/output/output.ml
index 53d4bb1b..14288bdc 100644
--- a/output/output.ml
+++ b/output/output.ml
@@ -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");
-
- (* Check nbdcopy is new enough. This assumes that the version of
- * libnbd is the same as the version of nbdcopy, but parsing this
- * is easier. We can remove this check when we build-depend on
- * libnbd >= 1.14.
- *)
- let version =
- NBD.create () |> NBD.get_version |>
- String.nsplit "." |> List.map int_of_string in
- if version < [1; 13; 5] then
- error (f_"-oo compressed option requires nbdcopy >= 1.13.5")
);
let g = open_guestfs () in
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4bfa1c7a..f38342f0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -86,7 +86,6 @@ TESTS = \
test-v2v-o-kubevirt-fedora.sh \
test-v2v-o-kubevirt-windows.sh \
test-v2v-o-libvirt.sh \
- test-v2v-o-local-qcow2-compressed.sh \
test-v2v-o-null.sh \
test-v2v-o-openstack.sh \
test-v2v-o-qemu.sh \

@ -1,93 +0,0 @@
From d26ed76801f9d3ce5d3863ca09dfa653b4bcd1b2 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 27 Aug 2024 12:36:41 +0100
Subject: [PATCH] convert: windows: Online all virtio disks at first boot
Windows 2022 (and possibly earlier versions back to around 2019) will
force offline any non-boot disks which change bus, apparently as a
security mitigation. The effect of this is that although the system
drive (C:) is present after conversion, other drives may seem to
disappear.
Running a Powershell script to bring all disks online seems risky.
The compromise is to bring online only virtio disks at first boot.
To further reduce risk, we only do this if there are non-system disks
(ie. > 1 disks in total), and only if we installed virtio drivers.
Fixes: https://issues.redhat.com/browse/RHEL-55763
Fixes: https://issues.redhat.com/browse/RHEL-55837
Related: https://issues.redhat.com/browse/MTV-1299
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1662286
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Thanks: Martin Necas
Acked-by: Martin Necas
(cherry picked from commit cb56f6f94dc153051515fc7aa0d9ca646f5e2340)
---
convert/convert_windows.ml | 39 +++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml
index 52ca5bbe..352e1218 100644
--- a/convert/convert_windows.ml
+++ b/convert/convert_windows.ml
@@ -38,7 +38,8 @@ module G = Guestfs
* time the Windows VM is booted on KVM.
*)
-let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
+let convert (g : G.guestfs) source inspect i_firmware
+ block_driver _ static_ips =
(*----------------------------------------------------------------------*)
(* Inspect the Windows guest. *)
@@ -272,6 +273,8 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
Registry.with_hive_write g inspect.i_windows_software_hive
update_software_hive;
+ configure_online_disks block_driver;
+
configure_network_interfaces net_driver;
fix_ntfs_heads ();
@@ -668,6 +671,40 @@ let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips =
warning (f_"could not find registry key \
HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion")
+ and configure_online_disks block_driver =
+ (* If there are > 1 disks, run a script which will force Windows
+ * to bring them all online. Windows 2022 will offline non-boot disks
+ * where the bus changes as some sort of "security" mitigation.
+ * https://issues.redhat.com/browse/RHEL-55837
+ * https://issues.redhat.com/browse/MTV-1299
+ * https://bugzilla.redhat.com/show_bug.cgi?id=1662286
+ *)
+ let virtio_installed =
+ match block_driver with
+ | Inject_virtio_win.Virtio_blk | Virtio_SCSI -> true
+ | IDE -> false in
+ let more_than_one_disk = List.length source.s_disks > 1 in
+
+ if virtio_installed && more_than_one_disk then (
+ let psh_filename = "online-disks" in
+ let psh = ref [] in
+ let add = List.push_back psh in
+
+ add "# Uncomment this line for lots of debug output.";
+ add "# Set-PSDebug -Trace 1";
+ add "";
+ add "Write-Host \"Online all virtio disks\"";
+ add "";
+ add "Get-Disk | Where { $_.FriendlyName -like '*VirtIO*' } | % {";
+ add " Write-Host (' - ' + $_.Number + ': ' + $_.FriendlyName + '(' + [math]::Round($_.Size/1GB,2) + 'GB)')";
+ add " $_ | Set-Disk -IsOffline $false";
+ add " $_ | Set-Disk -IsReadOnly $false";
+ add "}";
+
+ (* Install the Powershell script to run late at firstboot. *)
+ Firstboot.add_firstboot_powershell g inspect.i_root psh_filename !psh
+ )
+
and configure_network_interfaces net_driver =
(* If we were asked to force network interfaces to have particular
* static IP addresses then it is done here by installing a

@ -1,43 +0,0 @@
From 94619ded353081255409eb3ffae51061adcbf9a4 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 29 Aug 2024 13:17:13 +0100
Subject: [PATCH] mlcustomize: Ignore sriov drivers on virtio-win disk
Fixes: https://issues.redhat.com/browse/RHEL-56383
Thanks: Vadim Rozenfeld
---
common/mlcustomize/inject_virtio_win.ml | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/common/mlcustomize/inject_virtio_win.ml b/common/mlcustomize/inject_virtio_win.ml
index afec1e4..88c1c8c 100644
--- a/common/mlcustomize/inject_virtio_win.ml
+++ b/common/mlcustomize/inject_virtio_win.ml
@@ -478,7 +478,10 @@ and virtio_iso_path_matches_guest_os t path =
* "./drivers/amd64/Win2012R2/netkvm.sys".
* Note we check lowercase paths.
*)
- let pathelem elem = String.find lc_path ("/" ^ elem ^ "/") >= 0 in
+ let pathelem elem =
+ String.find lc_path ("/" ^ elem ^ "/") >= 0 ||
+ String.is_prefix lc_path (elem ^ "/")
+ in
let p_arch =
if pathelem "x86" || pathelem "i386" then "i386"
else if pathelem "amd64" then "x86_64"
@@ -522,7 +525,11 @@ and virtio_iso_path_matches_guest_os t path =
else
raise Not_found in
- arch = p_arch && os_major = p_os_major && os_minor = p_os_minor &&
+ let p_sriov = pathelem "sriov" in
+
+ arch = p_arch &&
+ not p_sriov && (* always ignored, see RHEL-56383 *)
+ os_major = p_os_major && os_minor = p_os_minor &&
match_os_variant os_variant &&
match_osinfo osinfo
--
2.43.0

@ -7,7 +7,7 @@ set -e
# ./copy-patches.sh
project=virt-v2v
rhel_version=9.5
rhel_version=10.0
# Check we're in the right directory.
if [ ! -f $project.spec ]; then

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmapDYsRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKATow//dAt+/eD4WANTgt82gOK5VLuhlp/il6/L
IsErVntOsmAlr1Ukag6lAFmrQrxDHbRo1g9w+P3dabEbedqeAy0vlyE7feifbzfn
8dAGAYJBPqyhG5w5Y1YKU/ZfJF5OjxuD9kjn5YTBNmNNva2wqrb4vQqLfmfhpMlx
hf3xMlqJ3plXvaqPFk69BzSgA1hKP9Z/f522RQs9lRq+aSP00zatLX9DK5oXynas
6DbInkrfUjbMaENoYcuUzC1w45DUcTcq6Or36+h86G78yIkQpfwlS82G0/f4wVnv
QlD5pC6dCmowuCrr5/xMoYt5ah7L+qcEUIRJ4uB0xQgQtQV32eLIFjpcHsN973ot
ji2ievMtoM5Ncu2Hq1R02Hvx5PUvVZamEpEWf+HzqJl2VATw2F63CMALLjxR6mw4
WORi90ZLQWtbt7lJgZEI29WOabuBWGG/cn+01gWLh8swqQpAgkGsbJhCxNXLiUfy
0PE7K+zoWVZzSiuOVeIh1Gn2p75gSTRQXfY+l+IfPPfOUBOuNN+w1J5HRUaT7ZAk
zBbPGFA2Y6x2zR9TD5n87QftXF6LPhf715qh5URI4Wl0pE+C9gxhQk+nf1aMKJ5J
/fOAtU8N+PtZPUm95NTaQxpkraspwHmhLRygWzA7wUGANmVUiX0fE3qgxW9NE2bI
paYjGigt040=
=FGlR
-----END PGP SIGNATURE-----

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmcX1vARHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKAx9xAAgHsZ9z7uoEC70+xxZIS3UVVzfSb/4Vik
lMgZr1+lTsFRT7cFwog+7xl/KCAfxSpNyBCfmLH3IKSSiKzVJjw4CwfbIDmRsc+5
dJeaFJaOFeaANhqxStYWwXwG9WdmPGghM3tLJZhoeYBieZ80ei2wZrh3H+cK3/hl
0mzFonLLmKFAR0AhuiLDmITGRg/SCSEZuopLLvL9n8LKQ+v8LCf0pKjZjinD4IGY
J0sSbHF9e4hwaHKpOqerEnMZgkKaKG6JtKf9cj5uTdANIT3e5xfCkYjsPIDzhOpg
7irOa2zpQJoVzqiYavSdxKdp/Uvw6+Zkb54rjwAxZSlPTSWHMFQfRSs1aY8o+mkQ
YkEo2jiDDzB9PdrJre062kiA/J+aSvHwy5AivJxX/N7pMoida5H9ERfV4h79NHgA
Vy/jQ237lO0DE/Fn4O1mchxWKozbFuwajo7a+/XocskrJNpOgBhukl8fQiNfqFHp
LP1KshvRlXljw2f0yuTm2gb2NNN2axu+1QzBp37V5MmA4WEbJwuMRILn8ntK0979
pQjtVGkYdA1aBOAX1ZJaaz6xEjwk2h9eNlY4Uu+eIUdIVgtUk7pfatOMApETmbUf
ilLiPhWZrFCqLNHAe9uG+wEbYcf7Glx1jP5wpHXR7DSVl2ZLydNpFC/YHttIXoF5
sJbNDeHwEVU=
=FH7a
-----END PGP SIGNATURE-----

@ -1,14 +1,13 @@
%undefine _package_note_flags
# If we should verify tarball signature with GPGv2.
%global verify_tarball_signature 1
# The source directory.
%global source_directory 2.5-development
%global source_directory 2.7-development
Name: virt-v2v
Epoch: 1
Version: 2.5.6
Release: 7%{?dist}
Version: 2.7.1
Release: 1%{?dist}
Summary: Convert a virtual machine to run on KVM
License: GPL-2.0-or-later AND LGPL-2.0-or-later
@ -25,31 +24,23 @@ Source2: libguestfs.keyring
Source3: copy-patches.sh
# Patches are maintained in the following repository:
# https://github.com/libguestfs/virt-v2v/commits/rhel-9.5
# https://github.com/libguestfs/virt-v2v/commits/rhel-10.0
# Patches.
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-docs-Add-a-note-about-removal-of-VMware-Tools-on-Win.patch
Patch0005: 0005-Update-common-submodule.patch
Patch0006: 0006-Pull-in-a-fix-to-make-Windows-firstboot-more-reliabl.patch
Patch0007: 0007-docs-Restate-position-on-removal-of-VMware-Tools.patch
Patch0008: 0008-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0009: 0009-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0010: 0010-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0011: 0011-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0012: 0012-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0013: 0013-RHEL-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-1430203.patch
Patch0014: 0014-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0015: 0015-RHEL-Disable-o-glance.patch
Patch0016: 0016-RHEL-Remove-the-in-place-option.patch
Patch0017: 0017-RHEL-9-oo-compressed-Remove-nbdcopy-version-check-an.patch
Patch0018: 0018-RHEL-9-tests-Remove-btrfs-test.patch
Patch0019: 0019-RHEL-9-Remove-block-driver-option.patch
Patch0020: 0020-RHEL-Add-warning-about-virt-v2v-in-place-not-being-s.patch
Patch0021: 0021-convert-windows-Online-all-virtio-disks-at-first-boo.patch
Patch0022: 0022-convert-windows-Ignore-sriov-drivers-on-virtio-win-d.patch
Patch0001: 0001-lib-OVF-Add-preliminary-support-for-Windows-Server-2.patch
Patch0002: 0002-RHEL-v2v-Select-correct-qemu-binary-for-o-qemu-mode-.patch
Patch0003: 0003-RHEL-v2v-Disable-the-qemu-boot-oo-qemu-boot-option-R.patch
Patch0004: 0004-RHEL-Fix-list-of-supported-sound-cards-to-match-RHEL.patch
Patch0005: 0005-RHEL-Fixes-for-libguestfs-winsupport.patch
Patch0006: 0006-RHEL-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch
Patch0007: 0007-RHEL-point-to-KB-for-supported-v2v-hypervisors-guest.patch
Patch0008: 0008-RHEL-Remove-input-from-Xen.patch
Patch0009: 0009-RHEL-Remove-o-glance.patch
Patch0010: 0010-RHEL-Remove-the-in-place-option.patch
Patch0011: 0011-RHEL-tests-Remove-btrfs-test.patch
Patch0012: 0012-RHEL-Remove-block-driver-option.patch
Patch0013: 0013-RHEL-Remove-o-rhv-o-rhv-upload-and-o-vdsm-modes.patch
Patch0014: 0014-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
@ -79,7 +70,7 @@ BuildRequires: augeas-devel
BuildRequires: bash-completion
BuildRequires: file-devel
BuildRequires: gettext-devel
BuildRequires: jansson-devel
BuildRequires: json-c-devel
BuildRequires: libnbd-devel
BuildRequires: libosinfo-devel
BuildRequires: libvirt-daemon-kvm
@ -102,16 +93,19 @@ BuildRequires: ocaml-ounit-devel
%endif
# These are for running our limited test.
BuildRequires: glibc-utils
BuildRequires: %{_bindir}/qemu-nbd
BuildRequires: %{_bindir}/nbdcopy
BuildRequires: %{_bindir}/nbdinfo
BuildRequires: nbdkit-file-plugin
BuildRequires: nbdkit-null-plugin
%if !0%{?rhel}
BuildRequires: nbdkit-python-plugin
%endif
BuildRequires: nbdkit-cow-filter >= 1.28.3-1.el9
BuildRequires: mingw-srvany-redistributable >= 1.1-6
%ifarch x86_64
BuildRequires: glibc-static
BuildRequires: sqlite
%endif
%if 0%{verify_tarball_signature}
@ -124,7 +118,7 @@ Requires: guestfs-tools >= 1.49.7-1
# XFS is the default filesystem in Fedora and RHEL.
Requires: libguestfs-xfs
%if 0%{?rhel}
%if 0%{?rhel} && ! 0%{?eln}
# For Windows conversions on RHEL.
Requires: libguestfs-winsupport >= 7.2
%endif
@ -133,7 +127,7 @@ Requires: gawk
Requires: gzip
Requires: unzip
Requires: curl
Requires: openssh-clients >= 8.7p1
Requires: openssh-clients >= 8.8p1
Requires: %{_bindir}/virsh
# Ensure the UEFI firmware is available, to properly convert
@ -147,10 +141,11 @@ Requires: edk2-aarch64
%if !0%{?rhel}
Requires: python3
%else
%elif %{?rhel} == 9
Requires: platform-python
# Python is not needed by RHEL 10.
%endif
Requires: libnbd >= 1.12.4-2.el9
Requires: libnbd >= 1.10
Requires: %{_bindir}/qemu-nbd
Requires: %{_bindir}/nbdcopy
Requires: %{_bindir}/nbdinfo
@ -159,7 +154,9 @@ Requires: nbdkit-curl-plugin
Requires: nbdkit-file-plugin
Requires: nbdkit-nbd-plugin
Requires: nbdkit-null-plugin
%if !0%{?rhel}
Requires: nbdkit-python-plugin
%endif
Requires: nbdkit-ssh-plugin
%ifarch x86_64
Requires: nbdkit-vddk-plugin
@ -172,7 +169,7 @@ Requires: nbdkit-rate-filter
Requires: nbdkit-retry-filter
# For rhsrvany.exe, used to install firstboot scripts in Windows guests.
Requires: mingw32-srvany >= 1.0-13
Requires: mingw-srvany-redistributable >= 1.1-6
# On RHEL, virtio-win should be used to install virtio drivers
# and qemu-ga in converted guests. (RHBZ#1972644)
@ -248,15 +245,6 @@ make V=1 %{?_smp_mflags}
# Delete libtool crap.
find $RPM_BUILD_ROOT -name '*.la' -delete
# Virt-tools data directory. This contains symlinks to rhsrvany.exe
# and pnp_wait.exe which are satisfied by the dependency on
# mingw32-srvany.
mkdir -p $RPM_BUILD_ROOT%{_datadir}/virt-tools
pushd $RPM_BUILD_ROOT%{_datadir}/virt-tools
ln -sf ../../i686-w64-mingw32/sys-root/mingw/bin/rhsrvany.exe
ln -sf ../../i686-w64-mingw32/sys-root/mingw/bin/pnp_wait.exe
popd
%if 0%{?rhel}
# On RHEL move virt-v2v-in-place to libexec since it is not supported,
# and remove the documentation.
@ -282,9 +270,6 @@ fi
export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=1
# Work around RHBZ#2216496.
export LIBGUESTFS_APPEND=nosmp
# The built in tests take a very long time to run under TCG (in Koji),
# so just perform a very simple conversion to check things are
# working.
@ -294,17 +279,6 @@ for f in windows.img fedora.img; do
./run virt-v2v -v -x -i disk test-data/phony-guests/$f -o null
fi
done
# Individual tests we do want to run for checking backports.
# The "windows.img" target below is harmless; it is already made by the
# loop above (even if only with zero size, due to RHEL9 lacking NTFS
# support). Repeat it here effectively for documentation purposes, as
# the upstream test suite depends on "windows.img", for formatting
# "windows.vmdk", regardless of the TESTS we want to run. The real
# target we need to make here is "fedora-luks-on-lvm.img".
make -C test-data/phony-guests windows.img fedora-luks-on-lvm.img
make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
%endif
@ -321,25 +295,24 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
%{_mandir}/man1/virt-v2v.1*
%{_mandir}/man1/virt-v2v-hacking.1*
%{_mandir}/man1/virt-v2v-input-vmware.1*
%{_mandir}/man1/virt-v2v-input-xen.1*
%if !0%{?rhel}
%{_mandir}/man1/virt-v2v-input-xen.1*
%{_mandir}/man1/virt-v2v-in-place.1*
%endif
%{_mandir}/man1/virt-v2v-inspector.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*
%endif
%{_mandir}/man1/virt-v2v-release-notes-1.42.1*
%{_mandir}/man1/virt-v2v-release-notes-2.0.1*
%{_mandir}/man1/virt-v2v-release-notes-2.2.1*
%{_mandir}/man1/virt-v2v-release-notes-2.4.1*
%{_mandir}/man1/virt-v2v-release-notes-2.*.1*
%{_mandir}/man1/virt-v2v-support.1*
%{_datadir}/virt-tools
%files bash-completion
%license COPYING
%{_datadir}/bash-completion/completions/virt-v2v
%{bash_completions_dir}/virt-v2v
%files man-pages-ja
@ -353,278 +326,251 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
%changelog
* Thu Sep 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-7
- Bump and rebuild to resolve rhel-9.5.0 branch issue
related: RHEL-56383
* Fri Sep 06 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-6
- convert: windows: Ignore sriov drivers on virtio-win disk
resolves: RHEL-56383
* Tue Aug 27 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-4
* Wed Oct 30 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.7.1-1
- Rebase to virt-v2v 2.7.1
resolves: RHEL-56814
- Replace Jansson with json-c
resolves: RHEL-65297
- Find drivers for win2025 guests
resolves: RHEL-65009
* Wed Aug 28 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-2
- convert: windows: Online all virtio disks at first boot
resolves: RHEL-55763
resolves: RHEL-56318
* Thu Aug 08 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-3
* Mon Aug 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-1
- Further fixes for QEMU Guest Agent install & VMware Tools removal
resolves: RHEL-49761, RHEL-51169
* Mon Aug 05 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.6-2
- Document uninstallation of VMware Tools on Windows
resolves: RHEL-51169
* 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
resolves: RHEL-50563
* Thu Jul 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.5-2
- Fix installation of QEMU Guest Agent
resolves: RHEL-49761
resolves: RHEL-50563
* Thu Jul 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.5-1
- Rebase to virt-v2v 2.5.5
- Enhance -o kubevirt output
resolves: RHEL-45992
* Tue Jul 09 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-2
- Package virt-v2v-in-place in libexec as unsupported tool
- Add warning about virt-v2v-in-place not being supported
resolves: RHEL-40903
- Add more fields to virt-inspector output
related: MTV-1079
- Revert "docs: Remove paragraph about -ip passwords and ssh/scp"
resolves: RHEL-45527
* Thu May 16 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-1
- Rebase to virt-v2v 2.5.4
- Add missing firmware types and enhance -o kubevirt
resolves: RHEL-28197
- Fix RHV JSON transfer bug
resolves: RHEL-32105
- docs: Add VDDK prereq that server must not be in maintenance mode
resolves: RHEL-33699
- convert: windows: Install blnsvr from virtio-win
resolves: RHEL-36591
* Mon Jan 22 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-2
- Rebase to virt-v2v 2.4.0
- -it ssh: Double quote ssh command which tests remote file exists
resolves: RHEL-12105
- Implement --key all:...
resolves: RHEL-18142
- Fix off-by-one error causing rare crash
resolves: RHEL-19061
- Improve the error message for -i vmx with a .vmdk file
resolves: RHEL-19564
- Fix -i vmx when remote filename contains literal '*'
resolves: RHEL-21365
- Fix virt-v2v --version output
resolves: RHEL-22262
* Mon Jul 03 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.3.4-5
- improve UX when running as root and we can't chown v2v tmpdir or socks
- make the appliance kernel UP in %check, for working around RHBZ#2216496
resolves: rhbz#2182024
* Tue Jun 20 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.3.4-3
- recognize "--key /dev/mapper/VG-LV:key:password"
- enable the %%check tests for real
resolves: rhbz#2168506
* Fri Apr 28 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.4-2
- Rebase to virt-v2v 2.3.4
resolves: rhbz#2187961, rhbz#2175703, rhbz#2172075, rhbz#2168082,
rhbz#1986386
- Remove --block-driver option downstream
resolves: rhbz#2190387
* Sun Apr 09 2023 Laszlo Ersek <lersek@redhat.com> - 1:2.2.0-6
- cope with kernel-core / kernel-modules-core subpackage split in RHEL-9.2 guests
resolves: rhbz#2184970
* Mon Feb 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.2.0-5
- Rebase to virt-v2v 2.2.0
resolves: rhbz#2135762
- Copy drivers for Windows 11, Windows 2019 & Windows 2022
resolves: rhbz#2149811
- Fix Description field for Windows >= 10 in -o rhv/vdsm modes
resolves: rhbz#2149863
- Fix UEFI fallback boot loader if broken
resolves: rhbz#2149629
- Document Windows system on Dynamic Disk is not supported (2140548 comment 5)
- Include the BOCHS DRM driver in the initial ram disk
resolves: rhbz#2131123
- windows_virtio: favor "fwcfg" over "qemufwcfg"
resolves: rhbz#2151752
- -o rhv-upload: set ovirt:id correctly
resolves: rhbz#2152465
- Enable the %%check tests
- -o kubevirt: Fix position of cpu field
resolves: rhbz#2162331
- -o kubevirt: Fix incorrect error message
resolves: rhbz#2162441
- -o kubevirt: Error if invalid guest name on target
resolves: rhbz#2162332
- -o kubevirt: Enable -oo compressed option
resolves: rhbz#2162444
- Remove -oo qemu-boot option completely
resolves: rhbz#2166565
- Remove warning when converting Rocky Linux
resolves: rhbz#2166618
- Fix kernel panic after converting Rocky Linux 9
resolves: rhbz#2166619
* Thu Aug 18 2022 Laszlo Ersek <lersek@redhat.com> - 1:2.0.7-6
- Install qemu-ga package during conversion
resolves: rhbz#2028764
* Wed Aug 10 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.0.7-5
- Remove LVM2 "devices file" during conversion
resolves: rhbz#2112801
- Add support for Zstandard compressed kernel modules
resolves: rhbz#2116811
* Fri Jul 29 2022 Laszlo Ersek <lersek@redhat.com> - 1:2.0.7-4
- Remove legacy crypto advice and replace with targeted mechanism
resolves: rhbz#2062360
* Mon Jul 25 2022 Laszlo Ersek <lersek@redhat.com> - 1:2.0.7-3
- relax qemu64 VCPU feature checking in the libvirt output
resolves rhbz#2107503
* Fri Jul 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.0.7-2
- Rebase to stable branch version 2.0.7
resolves: rhbz#2059287, rhbz#1658126, rhbz#1788823, rhbz#1854275
- Fix openssh-clients dependency
resolves: rhbz#2064178
- Fix security issue when running virt-v2v as root
resolves: rhbz#2066773
- Remove -o json mode
resolves: rhbz#2074026
- Allow conversion of guests with NVMe drives from VMX files
resolves: rhbz#2070530
- Cleanly reject guests with snapshots when using -it ssh
resolves: rhbz#1774386
- Document that vmx+ssh "-ip" auth doesn't cover ssh / scp shell commands
resolves: rhbz#1854275
- Fix conversion if swap partition isn't encrypted with root directory
resolves: rhbz#1658128
- Document permissions when importing OVA using RHV UI
resolves: rhbz#2039597
- Multiple fixes for -o qemu mode
resolves: rhbz#2074805
- Work around blocking bug in OpenStack
resolves: rhbz#2074801
- If multiple open-vm-tools packages are installed, remove all (2076436)
- For -o rhv-upload wait for VM creation task
resolves: rhbz#1985830
- For -i vmx add full support for SATA hard disks
resolves: rhbz#1883802
- Fix booting of RHEL 9.1 guests after conversion
resolves: rhbz#2076013
- Fix -o qemu warning
resolves: rhbz#2082603
- If listing RPM applications fails, rebuild DB and retry (2089623)
- Document -i vmx -it ssh percent encoding in ssh URIs
resolves: rhbz#1938954
- Document extra permissions needed for VMware 7 (1817050)
- Remove osprober devices left around by grub2
resolves: rhbz#2003503
- Add Requires python3 / platform-python
resolves: rhbz#2094779
- Fix CVE-2022-2211 Denial of Service in --key parameter
resolves: rhbz#2102719
- Add -oo compressed support
resolves: rhbz#2047660
- Limit the maximum of disks per guest
resolves: rhbz#2051564
- Add support for LUKS encrypted guests using Clevis & Tang
resolves: rhbz#1809453
- Fix remapping of nvme devices in /boot/grub2/device.map
resolves: rhbz#2101665
- Improve documentation of vmx+ssh and -ip option
resolves: rhbz#1854275
- Fix race condition when unmounting in -o rhv mode (1953286#c26)
- New upstream development version 2.5.5
resolves: RHEL-46869
* Mon Jul 08 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-5
- RHEL patches:
* Select correct qemu binary for -o qemu mode
* Disable the --qemu-boot / -oo qemu-boot option
* Fix list of supported sound cards to match RHEL qemu
* Fixes for libguestfs-winsupport
* -i disk: force VNC as display
* point to KB for supported v2v hypervisors/guests
* Remove -o glance
* Remove the --in-place option
* tests: Remove btrfs test
* Remove --block-driver option
- Remove input from Xen
resolves: RHEL-37687
- Remove -o rhv, -o rhv-upload and -o vdsm modes
resolves: RHEL-36712
* Tue Jun 25 2024 Troy Dawson <tdawson@redhat.com> - 1:2.5.4-4
- Bump release for June 2024 mass rebuild
* Wed Jun 19 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-3
- OCaml 5.2.0 ppc64le fix
* Wed May 29 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-2
- OCaml 5.2.0 for Fedora 41
* Thu Apr 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.4-1
- New upstream development version 2.5.4
* Fri Apr 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.3-2
- Fix bytecode compilation (RHBZ#2274708)
* Thu Apr 11 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.3-1
- New development branch version 2.5.3
- Unconditionally run autoreconf.
* Mon Mar 25 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.2-2
- Use %%{bash_completions_dir} macro
* Tue Mar 12 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.2-1
- New development branch version 2.5.2
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.5.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Jan 18 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.5.1-1
- New development branch version 2.5.1
* Thu Jan 4 2024 Richard W.M. Jones <rjones@redhat.com> - 1:2.4.0-1
- New stable branch version 2.4.0
* Tue Dec 19 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.8-1
- New development branch version 2.3.8
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.7-4
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.7-3
- OCaml 5.1.1 rebuild for Fedora 40
* Sat Dec 09 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.7-2
- New development branch version 2.3.7
* Mon Nov 27 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.6-2
- Fix build for libxml2 2.12.1
* Thu Nov 02 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.6-1
- New development branch version 2.3.6
* Fri Oct 20 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1:2.3.5-4
- Use mingw-srvany-redistributable
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.5-3
- OCaml 5.1 rebuild for Fedora 40
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.3.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jul 14 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.5-1
- New development branch version 2.3.5
* Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.4-4
- OCaml 5.0 rebuild for Fedora 39
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 1:2.3.4-3
- OCaml 5.0.0 rebuild
* Mon Jun 05 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.4-2
- Migrated to SPDX license
- Fix installation on newer RHEL
* Wed Apr 19 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.4-1
- New development branch version 2.3.4
* Mon Feb 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.3-1
- New development branch version 2.3.3
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.2-2
- Rebuild OCaml packages for F38
* Thu Jan 19 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.2-1
- New development branch version 2.3.2
* Tue Jan 17 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.3.1-1
- New development branch version 2.3.1
* Tue Jan 10 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.2.0-1
- New stable branch version 2.2.0
* Fri Jan 06 2023 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.12-1
- New upstream development version 2.1.12
- Add release notes for future virt-v2v 2.2
* Sat Dec 10 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.11-2
- New upstream development version 2.1.11
* Sat Nov 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.10-1
- New upstream development version 2.1.10
- New tool: virt-v2v-inspector
* Tue Oct 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.9-1
- New upstream development version 2.1.9
* Tue Aug 23 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.8-2
- Add BR glibc-static for tests on x86_64.
* Mon Aug 01 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.8-1
- New upstream development version 2.1.8
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.1.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jul 05 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.7-1
- New upstream development version 2.1.7
* Sun Jun 19 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.6-2
- OCaml 4.14.0 rebuild
* Fri Jun 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.6-1
- New upstream development version 2.1.6
* Sat Jun 11 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.5-1
- New upstream development version 2.1.5
- Add Requires python3 / platform-python (RHBZ#2094779)
- Remove nbdkit-readahead-filter as it is no longer used
- Enable the tests
* Thu May 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.4-1
- New upstream development version 2.1.4
* Thu May 12 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.3-1
- New upstream development version 2.1.3
* Tue Apr 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.2-1
- New upstream development version 2.1.2
* Tue Apr 12 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.1.1-1
- New upstream development version 2.1.1
* Mon Apr 04 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.0.2-1
- New upstream stable branch version 2.0.2
* Wed Mar 23 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.0.1-1
- New upstream stable branch version 2.0.1
- Fixes security issue when running virt-v2v as root (RHBZ#2066773).
* Mon Mar 14 2022 Richard W.M. Jones <rjones@redhat.com> - 1:2.0.0-1
- New upstream stable branch version 2.0.0
- New virt-v2v-in-place and release notes man pages.
- Remove the RHEL (downstream) patches which are out of date.
- Don't use absolute symlinks.
* Tue Feb 15 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.99-1
- Rebase to upstream 1.45.99.
- Add check for sufficient free space in the host
resolves: rhbz#2051394
- Update documentation of -ip for conversions from VMware over HTTPS
related: rhbz#1960087
- -o rhv-upload: Keep connections alive
resolves: rhbz#2032324
- -o rhv-upload: Improve conversion performance
resolves: rhbz#2039255
- -o rhv-upload: Replace -oo rhv-direct with -oo rhv-proxy
resolves: rhbz#2033096
- Fix log line wrapping making log parsing difficult (1820221)
* Wed Feb 2 2022 Laszlo Ersek <lersek@redhat.com> - 1:1.45.97-4
- v2v import from vCenter fails when using interactive password because
cookie-script tries to be interactive
(pick commit 8abc07a8589a)
resolves: rhbz#1960087
- model='virtio-transitional' is wrongly added when converting windows
guest to local by rhel9 v2v
(pick commit range commit range 8abc07a8589a..cacedec64072)
resolves: rhbz#2043333
* Wed Jan 26 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-3
- 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
- Fix virt-v2v hang when given incorrect vpx:// URL
resolves: rhbz#2041886
- Fix hang when converting with virt-p2v
resolves: rhbz#2044911
- Send nbdinfo debugging information to stderr
resolves: rhbz#2044922
- Explicitly require platform-python
resolves: rhbz#2046178
* 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
- Rebase from upstream commit 702a511b7f33 to direct child commit 07b12fe99fb9
resolves: rhbz#2034240
* Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.95-2
- Rebase to upstream 1.45.95.
- Change video type to VGA (instead of QXL).
- Remove --in-place support properly.
- Remove -o glance support properly.
- Fix quoting with openssh >= 8.7 (RHEL) / 8.8
- Fix q35 error "IDE controllers are unsupported"
- Add virt-v2v and libvirt version in debug output
- Fix -o rhv output mode showing no guests listed
resolves: rhbz#2011713, rhbz#1961107, rhbz#2027673,
rhbz#1637857, rhbz#2032112, rhbz#2027598
* Wed Aug 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.3-3
- Fix conversion of Windows BitLocker guests
resolves: rhbz#1994984
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1:1.45.3-2
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
- New upstream development version 1.45.99 (preview of 2.0)
- Requires nbdkit-blocksize-filter.
* Thu Feb 10 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.98-1
- New upstream development version 1.45.98 (preview of 2.0)
* Fri Feb 04 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-3
- OCaml 4.13.1 rebuild to remove package notes
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.45.97-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Jan 17 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.97-1
- New upstream development version 1.45.97 (preview of 2.0)
* Thu Jan 06 2022 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.96-1
- New upstream development version 1.45.96 (preview of 2.0)
* Sat Dec 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.95-1
- New upstream development version 1.45.95 (preview of 2.0)
* Tue Dec 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.94-1
- New upstream development version 1.45.94 (preview of 2.0)
* Fri Dec 03 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.93-1
- New upstream development version 1.45.93 (preview of 2.0)
* Thu Dec 02 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.92-1
- New upstream development version 1.45.92 (preview of 2.0)
* Thu Nov 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.91-2
- Bump release and rebuild
* Tue Nov 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.91-1
- New upstream development version 1.45.91 (preview of 2.0)
* Tue Oct 05 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.90-2
- OCaml 4.13.1 build
* Tue Sep 21 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.90-1
- New upstream development version 1.45.90 (preview of 2.0)
* Fri Aug 06 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.3-1
- New upstream development version 1.45.3.
- Rebase RHEL patches.
resolves: rhbz#1950634
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.45.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 30 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.2-1
- New upstream development version 1.45.2.
@ -632,7 +578,7 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
- Remove -o glance option on RHEL 9 (RHBZ#1977539).
- Remove support for RHEV-APT (RHBZ#1945549).
* Wed Jun 16 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-1.el9.1
* Wed Jun 16 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-1
- New upstream development version 1.45.1.
- Require virtio-win on RHEL (RHBZ#1972644).
- v2v-test-harness, virt-v2v-copy-to-local have been removed upstream.
@ -640,10 +586,6 @@ make -C tests TESTS=test-v2v-fedora-luks-on-lvm-conversion.sh check
* Thu Jun 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-2
- nbdkit-vddk-plugin dep only exists on x86-64.
* Mon May 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-1.el9.1
- Rebuild in RHEL 9 against libguestfs 1.45.5
resolves: rhbz#1959042
* Fri Apr 30 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-1
- New upstream stable branch version 1.44.0.

Loading…
Cancel
Save